{"id":"604c4f333c3bbe6850cc56ac00165ee8","_format":"hh-sol-build-info-1","solcVersion":"0.8.25","solcLongVersion":"0.8.25+commit.b61c2a91","input":{"language":"Solidity","sources":{"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"content":"// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá <goncalo.sa@consensys.net>\n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\nlibrary BytesLib {\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\n        bytes memory tempBytes;\n\n        assembly {\n            // Get a location of some free memory and store it in tempBytes as\n            // Solidity does for memory variables.\n            tempBytes := mload(0x40)\n\n            // Store the length of the first bytes array at the beginning of\n            // the memory for tempBytes.\n            let length := mload(_preBytes)\n            mstore(tempBytes, length)\n\n            // Maintain a memory counter for the current write location in the\n            // temp bytes array by adding the 32 bytes for the array length to\n            // the starting location.\n            let mc := add(tempBytes, 0x20)\n            // Stop copying when the memory counter reaches the length of the\n            // first bytes array.\n            let end := add(mc, length)\n\n            for {\n                // Initialize a copy counter to the start of the _preBytes data,\n                // 32 bytes into its memory.\n                let cc := add(_preBytes, 0x20)\n            } lt(mc, end) {\n                // Increase both counters by 32 bytes each iteration.\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                // Write the _preBytes data into the tempBytes memory 32 bytes\n                // at a time.\n                mstore(mc, mload(cc))\n            }\n\n            // Add the length of _postBytes to the current length of tempBytes\n            // and store it as the new length in the first 32 bytes of the\n            // tempBytes memory.\n            length := mload(_postBytes)\n            mstore(tempBytes, add(length, mload(tempBytes)))\n\n            // Move the memory counter back from a multiple of 0x20 to the\n            // actual end of the _preBytes data.\n            mc := end\n            // Stop copying when the memory counter reaches the new combined\n            // length of the arrays.\n            end := add(mc, length)\n\n            for {\n                let cc := add(_postBytes, 0x20)\n            } lt(mc, end) {\n                mc := add(mc, 0x20)\n                cc := add(cc, 0x20)\n            } {\n                mstore(mc, mload(cc))\n            }\n\n            // Update the free-memory pointer by padding our last write location\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n            // next 32 byte block, then round down to the nearest multiple of\n            // 32. If the sum of the length of the two arrays is zero then add\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\n            mstore(\n                0x40,\n                and(\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n                    not(31) // Round down to the nearest 32 bytes.\n                )\n            )\n        }\n\n        return tempBytes;\n    }\n\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n        assembly {\n            // Read the first 32 bytes of _preBytes storage, which is the length\n            // of the array. (We don't need to use the offset into the slot\n            // because arrays use the entire slot.)\n            let fslot := sload(_preBytes.slot)\n            // Arrays of 31 bytes or less have an even value in their slot,\n            // while longer arrays have an odd value. The actual length is\n            // the slot divided by two for odd values, and the lowest order\n            // byte divided by two for even values.\n            // If the slot is even, bitwise and the slot with 255 and divide by\n            // two to get the length. If the slot is odd, bitwise and the slot\n            // with -1 and divide by two.\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n            let newlength := add(slength, mlength)\n            // slength can contain both the length and contents of the array\n            // if length < 32 bytes so let's prepare for that\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n            switch add(lt(slength, 32), lt(newlength, 32))\n            case 2 {\n                // Since the new array still fits in the slot, we just need to\n                // update the contents of the slot.\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n                sstore(\n                    _preBytes.slot,\n                    // all the modifications to the slot are inside this\n                    // next block\n                    add(\n                        // we can just add to the slot contents because the\n                        // bytes we want to change are the LSBs\n                        fslot,\n                        add(\n                            mul(\n                                div(\n                                    // load the bytes from memory\n                                    mload(add(_postBytes, 0x20)),\n                                    // zero all bytes to the right\n                                    exp(0x100, sub(32, mlength))\n                                ),\n                                // and now shift left the number of bytes to\n                                // leave space for the length in the slot\n                                exp(0x100, sub(32, newlength))\n                            ),\n                            // increase length by the double of the memory\n                            // bytes length\n                            mul(mlength, 2)\n                        )\n                    )\n                )\n            }\n            case 1 {\n                // The stored value fits in the slot, but the combined value\n                // will exceed it.\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // The contents of the _postBytes array start 32 bytes into\n                // the structure. Our first read should obtain the `submod`\n                // bytes that can fit into the unused space in the last word\n                // of the stored array. To get this, we read 32 bytes starting\n                // from `submod`, so the data we read overlaps with the array\n                // contents by `submod` bytes. Masking the lowest-order\n                // `submod` bytes allows us to add that value directly to the\n                // stored value.\n\n                let submod := sub(32, slength)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\n\n                for {\n                    mc := add(mc, 0x20)\n                    sc := add(sc, 1)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n            default {\n                // get the keccak hash to get the contents of the array\n                mstore(0x0, _preBytes.slot)\n                // Start copying to the last used word of the stored array.\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n                // save new length\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n                // Copy over the first `submod` bytes of the new data as in\n                // case 1 above.\n                let slengthmod := mod(slength, 32)\n                let mlengthmod := mod(mlength, 32)\n                let submod := sub(32, slengthmod)\n                let mc := add(_postBytes, submod)\n                let end := add(_postBytes, mlength)\n                let mask := sub(exp(0x100, submod), 1)\n\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n                for {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } lt(mc, end) {\n                    sc := add(sc, 1)\n                    mc := add(mc, 0x20)\n                } {\n                    sstore(sc, mload(mc))\n                }\n\n                mask := exp(0x100, sub(mc, end))\n\n                sstore(sc, mul(div(mload(mc), mask), mask))\n            }\n        }\n    }\n\n    function slice(\n        bytes memory _bytes,\n        uint _start,\n        uint _length\n    ) internal pure returns (bytes memory) {\n        require(_length + 31 >= _length, \"slice_overflow\");\n        require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n        bytes memory tempBytes;\n\n        assembly {\n            switch iszero(_length)\n            case 0 {\n                // Get a location of some free memory and store it in tempBytes as\n                // Solidity does for memory variables.\n                tempBytes := mload(0x40)\n\n                // The first word of the slice result is potentially a partial\n                // word read from the original array. To read it, we calculate\n                // the length of that partial word and start copying that many\n                // bytes into the array. The first word we copy will start with\n                // data we don't care about, but the last `lengthmod` bytes will\n                // land at the beginning of the contents of the new array. When\n                // we're done copying, we overwrite the full first word with\n                // the actual length of the slice.\n                let lengthmod := and(_length, 31)\n\n                // The multiplication in the next line is necessary\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\n                // the following copy loop was copying the origin's length\n                // and then ending prematurely not copying everything it should.\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n                let end := add(mc, _length)\n\n                for {\n                    // The multiplication in the next line has the same exact purpose\n                    // as the one above.\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n                } lt(mc, end) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    mstore(mc, mload(cc))\n                }\n\n                mstore(tempBytes, _length)\n\n                //update free-memory pointer\n                //allocating the array padded to 32 bytes like the compiler does now\n                mstore(0x40, and(add(mc, 31), not(31)))\n            }\n            //if we want a zero-length slice let's just return a zero-length array\n            default {\n                tempBytes := mload(0x40)\n                //zero out the 32 bytes slice we are about to return\n                //we need to do it because Solidity does not garbage collect\n                mstore(tempBytes, 0)\n\n                mstore(0x40, add(tempBytes, 0x20))\n            }\n        }\n\n        return tempBytes;\n    }\n\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\n        require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n        address tempAddress;\n\n        assembly {\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n        }\n\n        return tempAddress;\n    }\n\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\n        require(_bytes.length >= _start + 1, \"toUint8_outOfBounds\");\n        uint8 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x1), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\n        require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n        uint16 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x2), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\n        require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n        uint32 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x4), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\n        require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n        uint64 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x8), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\n        require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n        uint96 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0xc), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\n        require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n        uint128 tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x10), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\n        require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n        uint tempUint;\n\n        assembly {\n            tempUint := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempUint;\n    }\n\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\n        require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n        bytes32 tempBytes32;\n\n        assembly {\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n        }\n\n        return tempBytes32;\n    }\n\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n        bool success = true;\n\n        assembly {\n            let length := mload(_preBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(length, mload(_postBytes))\n            case 1 {\n                // cb is a circuit breaker in the for loop since there's\n                //  no said feature for inline assembly loops\n                // cb = 1 - don't breaker\n                // cb = 0 - break\n                let cb := 1\n\n                let mc := add(_preBytes, 0x20)\n                let end := add(mc, length)\n\n                for {\n                    let cc := add(_postBytes, 0x20)\n                    // the next line is the loop condition:\n                    // while(uint256(mc < end) + cb == 2)\n                } eq(add(lt(mc, end), cb), 2) {\n                    mc := add(mc, 0x20)\n                    cc := add(cc, 0x20)\n                } {\n                    // if any of these checks fails then arrays are not equal\n                    if iszero(eq(mload(mc), mload(cc))) {\n                        // unsuccess:\n                        success := 0\n                        cb := 0\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\n        bool success = true;\n\n        assembly {\n            // we know _preBytes_offset is 0\n            let fslot := sload(_preBytes.slot)\n            // Decode the length of the stored array like in concatStorage().\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n            let mlength := mload(_postBytes)\n\n            // if lengths don't match the arrays are not equal\n            switch eq(slength, mlength)\n            case 1 {\n                // slength can contain both the length and contents of the array\n                // if length < 32 bytes so let's prepare for that\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n                if iszero(iszero(slength)) {\n                    switch lt(slength, 32)\n                    case 1 {\n                        // blank the last byte which is the length\n                        fslot := mul(div(fslot, 0x100), 0x100)\n\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n                            // unsuccess:\n                            success := 0\n                        }\n                    }\n                    default {\n                        // cb is a circuit breaker in the for loop since there's\n                        //  no said feature for inline assembly loops\n                        // cb = 1 - don't breaker\n                        // cb = 0 - break\n                        let cb := 1\n\n                        // get the keccak hash to get the contents of the array\n                        mstore(0x0, _preBytes.slot)\n                        let sc := keccak256(0x0, 0x20)\n\n                        let mc := add(_postBytes, 0x20)\n                        let end := add(mc, mlength)\n\n                        // the next line is the loop condition:\n                        // while(uint256(mc < end) + cb == 2)\n                        for {\n\n                        } eq(add(lt(mc, end), cb), 2) {\n                            sc := add(sc, 1)\n                            mc := add(mc, 0x20)\n                        } {\n                            if iszero(eq(sload(sc), mload(mc))) {\n                                // unsuccess:\n                                success := 0\n                                cb := 0\n                            }\n                        }\n                    }\n                }\n            }\n            default {\n                // unsuccess:\n                success := 0\n            }\n        }\n\n        return success;\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity >=0.7.6;\n\nlibrary ExcessivelySafeCall {\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n\n    /// @notice Use when you _really_ really _really_ don't trust the called\n    /// contract. This prevents the called contract from causing reversion of\n    /// the caller in as many ways as we can.\n    /// @dev The main difference between this and a solidity low-level call is\n    /// that we limit the number of bytes that the callee can cause to be\n    /// copied to caller memory. This prevents stupid things like malicious\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\n    /// to memory.\n    /// @param _target The address to call\n    /// @param _gas The amount of gas to forward to the remote contract\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\n    /// to memory.\n    /// @param _calldata The data to send to the remote contract\n    /// @return success and returndata, as `.call()`. Returndata is capped to\n    /// `_maxCopy` bytes.\n    function excessivelySafeCall(\n        address _target,\n        uint _gas,\n        uint16 _maxCopy,\n        bytes memory _calldata\n    ) internal returns (bool, bytes memory) {\n        // set up for assembly call\n        uint _toCopy;\n        bool _success;\n        bytes memory _returnData = new bytes(_maxCopy);\n        // dispatch message to recipient\n        // by assembly calling \"handle\" function\n        // we call via assembly to avoid memcopying a very large returndata\n        // returned by a malicious contract\n        assembly {\n            _success := call(\n                _gas, // gas\n                _target, // recipient\n                0, // ether value\n                add(_calldata, 0x20), // inloc\n                mload(_calldata), // inlen\n                0, // outloc\n                0 // outlen\n            )\n            // limit our copy to 256 bytes\n            _toCopy := returndatasize()\n            if gt(_toCopy, _maxCopy) {\n                _toCopy := _maxCopy\n            }\n            // Store the length of the copied bytes\n            mstore(_returnData, _toCopy)\n            // copy the bytes from returndata[0:_toCopy]\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n        }\n        return (_success, _returnData);\n    }\n\n    /// @notice Use when you _really_ really _really_ don't trust the called\n    /// contract. This prevents the called contract from causing reversion of\n    /// the caller in as many ways as we can.\n    /// @dev The main difference between this and a solidity low-level call is\n    /// that we limit the number of bytes that the callee can cause to be\n    /// copied to caller memory. This prevents stupid things like malicious\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\n    /// to memory.\n    /// @param _target The address to call\n    /// @param _gas The amount of gas to forward to the remote contract\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\n    /// to memory.\n    /// @param _calldata The data to send to the remote contract\n    /// @return success and returndata, as `.call()`. Returndata is capped to\n    /// `_maxCopy` bytes.\n    function excessivelySafeStaticCall(\n        address _target,\n        uint _gas,\n        uint16 _maxCopy,\n        bytes memory _calldata\n    ) internal view returns (bool, bytes memory) {\n        // set up for assembly call\n        uint _toCopy;\n        bool _success;\n        bytes memory _returnData = new bytes(_maxCopy);\n        // dispatch message to recipient\n        // by assembly calling \"handle\" function\n        // we call via assembly to avoid memcopying a very large returndata\n        // returned by a malicious contract\n        assembly {\n            _success := staticcall(\n                _gas, // gas\n                _target, // recipient\n                add(_calldata, 0x20), // inloc\n                mload(_calldata), // inlen\n                0, // outloc\n                0 // outlen\n            )\n            // limit our copy to 256 bytes\n            _toCopy := returndatasize()\n            if gt(_toCopy, _maxCopy) {\n                _toCopy := _maxCopy\n            }\n            // Store the length of the copied bytes\n            mstore(_returnData, _toCopy)\n            // copy the bytes from returndata[0:_toCopy]\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\n        }\n        return (_success, _returnData);\n    }\n\n    /**\n     * @notice Swaps function selectors in encoded contract calls\n     * @dev Allows reuse of encoded calldata for functions with identical\n     * argument types but different names. It simply swaps out the first 4 bytes\n     * for the new selector. This function modifies memory in place, and should\n     * only be used with caution.\n     * @param _newSelector The new 4-byte selector\n     * @param _buf The encoded contract args\n     */\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\n        require(_buf.length >= 4);\n        uint _mask = LOW_28_MASK;\n        assembly {\n            // load the first word of\n            let _word := mload(add(_buf, 0x20))\n            // mask out the top 4 bytes\n            // /x\n            _word := and(_word, _mask)\n            _word := or(_newSelector, _word)\n            mstore(add(_buf, 0x20), _word)\n        }\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ILayerZeroUserApplicationConfig.sol\";\n\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\n    // @param _dstChainId - the destination chain identifier\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\n    // @param _payload - a custom bytes payload to send to the destination contract\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\n    function send(\n        uint16 _dstChainId,\n        bytes calldata _destination,\n        bytes calldata _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes calldata _adapterParams\n    ) external payable;\n\n    // @notice used by the messaging library to publish verified payload\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source contract (as bytes) at the source chain\n    // @param _dstAddress - the address on destination chain\n    // @param _nonce - the unbound message ordering nonce\n    // @param _gasLimit - the gas limit for external contract execution\n    // @param _payload - verified payload to send to the destination contract\n    function receivePayload(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        address _dstAddress,\n        uint64 _nonce,\n        uint _gasLimit,\n        bytes calldata _payload\n    ) external;\n\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\n\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\n    // @param _srcAddress - the source chain contract address\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\n\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\n    // @param _dstChainId - the destination chain identifier\n    // @param _userApplication - the user app address on this EVM chain\n    // @param _payload - the custom message to send over LayerZero\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\n    function estimateFees(\n        uint16 _dstChainId,\n        address _userApplication,\n        bytes calldata _payload,\n        bool _payInZRO,\n        bytes calldata _adapterParam\n    ) external view returns (uint nativeFee, uint zroFee);\n\n    // @notice get this Endpoint's immutable source identifier\n    function getChainId() external view returns (uint16);\n\n    // @notice the interface to retry failed message on this Endpoint destination\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    // @param _payload - the payload to be retried\n    function retryPayload(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        bytes calldata _payload\n    ) external;\n\n    // @notice query if any STORED payload (message blocking) at the endpoint.\n    // @param _srcChainId - the source chain identifier\n    // @param _srcAddress - the source chain contract address\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\n\n    // @notice query if the _libraryAddress is valid for sending msgs.\n    // @param _userApplication - the user app address on this EVM chain\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\n\n    // @notice query if the _libraryAddress is valid for receiving msgs.\n    // @param _userApplication - the user app address on this EVM chain\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\n\n    // @notice query if the non-reentrancy guard for send() is on\n    // @return true if the guard is on. false otherwise\n    function isSendingPayload() external view returns (bool);\n\n    // @notice query if the non-reentrancy guard for receive() is on\n    // @return true if the guard is on. false otherwise\n    function isReceivingPayload() external view returns (bool);\n\n    // @notice get the configuration of the LayerZero messaging library of the specified version\n    // @param _version - messaging library version\n    // @param _chainId - the chainId for the pending config change\n    // @param _userApplication - the contract address of the user application\n    // @param _configType - type of configuration. every messaging library has its own convention.\n    function getConfig(\n        uint16 _version,\n        uint16 _chainId,\n        address _userApplication,\n        uint _configType\n    ) external view returns (bytes memory);\n\n    // @notice get the send() LayerZero messaging library version\n    // @param _userApplication - the contract address of the user application\n    function getSendVersion(address _userApplication) external view returns (uint16);\n\n    // @notice get the lzReceive() LayerZero messaging library version\n    // @param _userApplication - the contract address of the user application\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroReceiver {\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\n    // @param _srcChainId - the source endpoint identifier\n    // @param _srcAddress - the source sending contract address from the source chain\n    // @param _nonce - the ordered message nonce\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\n    function lzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\ninterface ILayerZeroUserApplicationConfig {\n    // @notice set the configuration of the LayerZero messaging library of the specified version\n    // @param _version - messaging library version\n    // @param _chainId - the chainId for the pending config change\n    // @param _configType - type of configuration. every messaging library has its own convention.\n    // @param _config - configuration in the bytes. can encode arbitrary content.\n    function setConfig(\n        uint16 _version,\n        uint16 _chainId,\n        uint _configType,\n        bytes calldata _config\n    ) external;\n\n    // @notice set the send() LayerZero messaging library version to _version\n    // @param _version - new messaging library version\n    function setSendVersion(uint16 _version) external;\n\n    // @notice set the lzReceive() LayerZero messaging library version to _version\n    // @param _version - new messaging library version\n    function setReceiveVersion(uint16 _version) external;\n\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\n    // @param _srcChainId - the chainId of the source chain\n    // @param _srcAddress - the contract address of the source contract at the source chain\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.6.0;\npragma experimental ABIEncoderV2;\n\nlibrary LzLib {\n    // LayerZero communication\n    struct CallParams {\n        address payable refundAddress;\n        address zroPaymentAddress;\n    }\n\n    //---------------------------------------------------------------------------\n    // Address type handling\n\n    struct AirdropParams {\n        uint airdropAmount;\n        bytes32 airdropAddress;\n    }\n\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\n        } else {\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\n        }\n    }\n\n    // Build Adapter Params\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\n        // txType 1\n        // bytes  [2       32      ]\n        // fields [txType  extraGas]\n        return abi.encodePacked(uint16(1), _uaGas);\n    }\n\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\n        require(_params.airdropAmount > 0, \"Airdrop amount must be greater than 0\");\n        require(_params.airdropAddress != bytes32(0x0), \"Airdrop address must be set\");\n\n        // txType 2\n        // bytes  [2       32        32            bytes[]         ]\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\n    }\n\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n        assembly {\n            gasLimit := mload(add(_adapterParams, 34))\n        }\n    }\n\n    // Decode Adapter Params\n    function decodeAdapterParams(bytes memory _adapterParams)\n        internal\n        pure\n        returns (\n            uint16 txType,\n            uint uaGas,\n            uint airdropAmount,\n            address payable airdropAddress\n        )\n    {\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \"Invalid adapterParams\");\n        assembly {\n            txType := mload(add(_adapterParams, 2))\n            uaGas := mload(add(_adapterParams, 34))\n        }\n        require(txType == 1 || txType == 2, \"Unsupported txType\");\n        require(uaGas > 0, \"Gas too low\");\n\n        if (txType == 2) {\n            assembly {\n                airdropAmount := mload(add(_adapterParams, 66))\n                airdropAddress := mload(add(_adapterParams, 86))\n            }\n        }\n    }\n\n    //---------------------------------------------------------------------------\n    // Address type handling\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\n        return address(uint160(uint(_bytes32Address)));\n    }\n\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\n        return bytes32(uint(uint160(_address)));\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"./interfaces/ILayerZeroReceiver.sol\";\nimport \"./interfaces/ILayerZeroUserApplicationConfig.sol\";\nimport \"./interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libraries/BytesLib.sol\";\n\n/*\n * a generic LzReceiver implementation\n */\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\n    using BytesLib for bytes;\n\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\n\n    ILayerZeroEndpoint public immutable lzEndpoint;\n    mapping(uint16 => bytes) public trustedRemoteLookup;\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\n    address public precrime;\n\n    event SetPrecrime(address precrime);\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\n\n    constructor(address _endpoint) {\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\n    }\n\n    function lzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public virtual override {\n        // lzReceive must be called by the endpoint for security\n        require(_msgSender() == address(lzEndpoint), \"LzApp: invalid endpoint caller\");\n\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n        require(\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\n            \"LzApp: invalid source sending contract\"\n        );\n\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n    }\n\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\n    function _blockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual;\n\n    function _lzSend(\n        uint16 _dstChainId,\n        bytes memory _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams,\n        uint _nativeFee\n    ) internal virtual {\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\n        require(trustedRemote.length != 0, \"LzApp: destination chain is not a trusted source\");\n        _checkPayloadSize(_dstChainId, _payload.length);\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\n    }\n\n    function _checkGasLimit(\n        uint16 _dstChainId,\n        uint16 _type,\n        bytes memory _adapterParams,\n        uint _extraGas\n    ) internal view virtual {\n        uint providedGasLimit = _getGasLimit(_adapterParams);\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\n        require(minGasLimit > 0, \"LzApp: minGasLimit not set\");\n        require(providedGasLimit >= minGasLimit + _extraGas, \"LzApp: gas limit is too low\");\n    }\n\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\n        require(_adapterParams.length >= 34, \"LzApp: invalid adapterParams\");\n        assembly {\n            gasLimit := mload(add(_adapterParams, 34))\n        }\n    }\n\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\n        if (payloadSizeLimit == 0) {\n            // use default if not set\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\n        }\n        require(_payloadSize <= payloadSizeLimit, \"LzApp: payload size is too large\");\n    }\n\n    //---------------------------UserApplication config----------------------------------------\n    function getConfig(\n        uint16 _version,\n        uint16 _chainId,\n        address,\n        uint _configType\n    ) external view returns (bytes memory) {\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\n    }\n\n    // generic config for LayerZero user Application\n    function setConfig(\n        uint16 _version,\n        uint16 _chainId,\n        uint _configType,\n        bytes calldata _config\n    ) external override onlyOwner {\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\n    }\n\n    function setSendVersion(uint16 _version) external override onlyOwner {\n        lzEndpoint.setSendVersion(_version);\n    }\n\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\n        lzEndpoint.setReceiveVersion(_version);\n    }\n\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\n    }\n\n    // _path = abi.encodePacked(remoteAddress, localAddress)\n    // this function set the trusted path for the cross-chain communication\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\n        trustedRemoteLookup[_remoteChainId] = _path;\n        emit SetTrustedRemote(_remoteChainId, _path);\n    }\n\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\n    }\n\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\n        require(path.length != 0, \"LzApp: no trusted path record\");\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\n    }\n\n    function setPrecrime(address _precrime) external onlyOwner {\n        precrime = _precrime;\n        emit SetPrecrime(_precrime);\n    }\n\n    function setMinDstGas(\n        uint16 _dstChainId,\n        uint16 _packetType,\n        uint _minGas\n    ) external onlyOwner {\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\n    }\n\n    // if the size is 0, it means default size limit\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\n        payloadSizeLimitLookup[_dstChainId] = _size;\n    }\n\n    //--------------------------- VIEW FUNCTION ----------------------------------------\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\n        return keccak256(trustedSource) == keccak256(_srcAddress);\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../interfaces/ILayerZeroReceiver.sol\";\nimport \"../interfaces/ILayerZeroEndpoint.sol\";\nimport \"../libs/LzLib.sol\";\n\n/*\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\nunlike a real LayerZero endpoint, it is\n- no messaging library versioning\n- send() will short circuit to lzReceive()\n- no user application configuration\n*/\ncontract LZEndpointMock is ILayerZeroEndpoint {\n    uint8 internal constant _NOT_ENTERED = 1;\n    uint8 internal constant _ENTERED = 2;\n\n    mapping(address => address) public lzEndpointLookup;\n\n    uint16 public mockChainId;\n    bool public nextMsgBlocked;\n\n    // fee config\n    RelayerFeeConfig public relayerFeeConfig;\n    ProtocolFeeConfig public protocolFeeConfig;\n    uint public oracleFee;\n    bytes public defaultAdapterParams;\n\n    // path = remote addrss + local address\n    // inboundNonce = [srcChainId][path].\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\n    //todo: this is a hack\n    // outboundNonce = [dstChainId][srcAddress]\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\n    //    // outboundNonce = [dstChainId][path].\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\n    // storedPayload = [srcChainId][path]\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\n    // msgToDeliver = [srcChainId][path]\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\n\n    // reentrancy guard\n    uint8 internal _send_entered_state = 1;\n    uint8 internal _receive_entered_state = 1;\n\n    struct ProtocolFeeConfig {\n        uint zroFee;\n        uint nativeBP;\n    }\n\n    struct RelayerFeeConfig {\n        uint128 dstPriceRatio; // 10^10\n        uint128 dstGasPriceInWei;\n        uint128 dstNativeAmtCap;\n        uint64 baseGas;\n        uint64 gasPerByte;\n    }\n\n    struct StoredPayload {\n        uint64 payloadLength;\n        address dstAddress;\n        bytes32 payloadHash;\n    }\n\n    struct QueuedPayload {\n        address dstAddress;\n        uint64 nonce;\n        bytes payload;\n    }\n\n    modifier sendNonReentrant() {\n        require(_send_entered_state == _NOT_ENTERED, \"LayerZeroMock: no send reentrancy\");\n        _send_entered_state = _ENTERED;\n        _;\n        _send_entered_state = _NOT_ENTERED;\n    }\n\n    modifier receiveNonReentrant() {\n        require(_receive_entered_state == _NOT_ENTERED, \"LayerZeroMock: no receive reentrancy\");\n        _receive_entered_state = _ENTERED;\n        _;\n        _receive_entered_state = _NOT_ENTERED;\n    }\n\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\n\n    constructor(uint16 _chainId) {\n        mockChainId = _chainId;\n\n        // init config\n        relayerFeeConfig = RelayerFeeConfig({\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\n            dstGasPriceInWei: 1e10,\n            dstNativeAmtCap: 1e19,\n            baseGas: 100,\n            gasPerByte: 1\n        });\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\n        oracleFee = 1e16;\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\n    }\n\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\n    function send(\n        uint16 _chainId,\n        bytes memory _path,\n        bytes calldata _payload,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams\n    ) external payable override sendNonReentrant {\n        require(_path.length == 40, \"LayerZeroMock: incorrect remote address size\"); // only support evm chains\n\n        address dstAddr;\n        assembly {\n            dstAddr := mload(add(_path, 20))\n        }\n\n        address lzEndpoint = lzEndpointLookup[dstAddr];\n        require(lzEndpoint != address(0), \"LayerZeroMock: destination LayerZero Endpoint not found\");\n\n        // not handle zro token\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\n        require(msg.value >= nativeFee, \"LayerZeroMock: not enough native for fees\");\n\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\n\n        // refund if they send too much\n        uint amount = msg.value - nativeFee;\n        if (amount > 0) {\n            (bool success, ) = _refundAddress.call{value: amount}(\"\");\n            require(success, \"LayerZeroMock: failed to refund\");\n        }\n\n        // Mock the process of receiving msg on dst chain\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\n        if (dstNativeAmt > 0) {\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\"\");\n            if (!success) {\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\n            }\n        }\n\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\n        bytes memory payload = _payload;\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\n    }\n\n    function receivePayload(\n        uint16 _srcChainId,\n        bytes calldata _path,\n        address _dstAddress,\n        uint64 _nonce,\n        uint _gasLimit,\n        bytes calldata _payload\n    ) external override receiveNonReentrant {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n\n        // assert and increment the nonce. no message shuffling\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \"LayerZeroMock: wrong nonce\");\n\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\n        if (sp.payloadHash != bytes32(0)) {\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\n\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\n            if (msgs.length > 0) {\n                // extend the array\n                msgs.push(newMsg);\n\n                // shift all the indexes up for pop()\n                for (uint i = 0; i < msgs.length - 1; i++) {\n                    msgs[i + 1] = msgs[i];\n                }\n\n                // put the newMsg at the bottom of the stack\n                msgs[0] = newMsg;\n            } else {\n                msgs.push(newMsg);\n            }\n        } else if (nextMsgBlocked) {\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\"\"));\n            // ensure the next msgs that go through are no longer blocked\n            nextMsgBlocked = false;\n        } else {\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\n                // ensure the next msgs that go through are no longer blocked\n                nextMsgBlocked = false;\n            }\n        }\n    }\n\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\n        return inboundNonce[_chainID][_path];\n    }\n\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\n        return outboundNonce[_chainID][_srcAddress];\n    }\n\n    function estimateFees(\n        uint16 _dstChainId,\n        address _userApplication,\n        bytes memory _payload,\n        bool _payInZRO,\n        bytes memory _adapterParams\n    ) public view override returns (uint nativeFee, uint zroFee) {\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\n\n        // Relayer Fee\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\n\n        // LayerZero Fee\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\n\n        // return the sum of fees\n        nativeFee = nativeFee + relayerFee + oracleFee;\n    }\n\n    function getChainId() external view override returns (uint16) {\n        return mockChainId;\n    }\n\n    function retryPayload(\n        uint16 _srcChainId,\n        bytes calldata _path,\n        bytes calldata _payload\n    ) external override {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \"LayerZeroMock: invalid payload\");\n\n        address dstAddress = sp.dstAddress;\n        // empty the storedPayload\n        sp.payloadLength = 0;\n        sp.dstAddress = address(0);\n        sp.payloadHash = bytes32(0);\n\n        uint64 nonce = inboundNonce[_srcChainId][_path];\n\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\n    }\n\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        return sp.payloadHash != bytes32(0);\n    }\n\n    function getSendLibraryAddress(address) external view override returns (address) {\n        return address(this);\n    }\n\n    function getReceiveLibraryAddress(address) external view override returns (address) {\n        return address(this);\n    }\n\n    function isSendingPayload() external view override returns (bool) {\n        return _send_entered_state == _ENTERED;\n    }\n\n    function isReceivingPayload() external view override returns (bool) {\n        return _receive_entered_state == _ENTERED;\n    }\n\n    function getConfig(\n        uint16, /*_version*/\n        uint16, /*_chainId*/\n        address, /*_ua*/\n        uint /*_configType*/\n    ) external pure override returns (bytes memory) {\n        return \"\";\n    }\n\n    function getSendVersion(\n        address /*_userApplication*/\n    ) external pure override returns (uint16) {\n        return 1;\n    }\n\n    function getReceiveVersion(\n        address /*_userApplication*/\n    ) external pure override returns (uint16) {\n        return 1;\n    }\n\n    function setConfig(\n        uint16, /*_version*/\n        uint16, /*_chainId*/\n        uint, /*_configType*/\n        bytes memory /*_config*/\n    ) external override {}\n\n    function setSendVersion(\n        uint16 /*version*/\n    ) external override {}\n\n    function setReceiveVersion(\n        uint16 /*version*/\n    ) external override {}\n\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\n        // revert if no messages are cached. safeguard malicious UA behaviour\n        require(sp.payloadHash != bytes32(0), \"LayerZeroMock: no stored payload\");\n        require(sp.dstAddress == msg.sender, \"LayerZeroMock: invalid caller\");\n\n        // empty the storedPayload\n        sp.payloadLength = 0;\n        sp.dstAddress = address(0);\n        sp.payloadHash = bytes32(0);\n\n        emit UaForceResumeReceive(_srcChainId, _path);\n\n        // resume the receiving of msgs after we force clear the \"stuck\" msg\n        _clearMsgQue(_srcChainId, _path);\n    }\n\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\n\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\n    }\n\n    // used to simulate messages received get stored as a payload\n    function blockNextMsg() external {\n        nextMsgBlocked = true;\n    }\n\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\n    }\n\n    function setRelayerPrice(\n        uint128 _dstPriceRatio,\n        uint128 _dstGasPriceInWei,\n        uint128 _dstNativeAmtCap,\n        uint64 _baseGas,\n        uint64 _gasPerByte\n    ) external {\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\n        relayerFeeConfig.baseGas = _baseGas;\n        relayerFeeConfig.gasPerByte = _gasPerByte;\n    }\n\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\n        protocolFeeConfig.zroFee = _zroFee;\n        protocolFeeConfig.nativeBP = _nativeBP;\n    }\n\n    function setOracleFee(uint _oracleFee) external {\n        oracleFee = _oracleFee;\n    }\n\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\n        defaultAdapterParams = _adapterParams;\n    }\n\n    // --------------------- Internal Functions ---------------------\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\n\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\n        while (msgs.length > 0) {\n            QueuedPayload memory payload = msgs[msgs.length - 1];\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\n            msgs.pop();\n        }\n    }\n\n    function _getProtocolFees(\n        bool _payInZro,\n        uint _relayerFee,\n        uint _oracleFee\n    ) internal view returns (uint) {\n        if (_payInZro) {\n            return protocolFeeConfig.zroFee;\n        } else {\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\n        }\n    }\n\n    function _getRelayerFee(\n        uint16, /* _dstChainId */\n        uint16, /* _outboundProofType */\n        address, /* _userApplication */\n        uint _payloadSize,\n        bytes memory _adapterParams\n    ) internal view returns (uint) {\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\n        if (txType == 2) {\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \"LayerZeroMock: dstNativeAmt too large \");\n            totalRemoteToken += dstNativeAmt;\n        }\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\n        totalRemoteToken += remoteGasTotal;\n\n        // tokenConversionRate = dstPrice / localPrice\n        // basePrice = totalRemoteToken * tokenConversionRate\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\n\n        return basePrice + _payloadSize * pricePerByte;\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./LzApp.sol\";\nimport \"../libraries/ExcessivelySafeCall.sol\";\n\n/*\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\n */\nabstract contract NonblockingLzApp is LzApp {\n    using ExcessivelySafeCall for address;\n\n    constructor(address _endpoint) LzApp(_endpoint) {}\n\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\n\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\n\n    // overriding the virtual function in LzReceiver\n    function _blockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual override {\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\n            gasleft(),\n            150,\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\n        );\n        // try-catch all errors/exceptions\n        if (!success) {\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\n        }\n    }\n\n    function _storeFailedMessage(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload,\n        bytes memory _reason\n    ) internal virtual {\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\n    }\n\n    function nonblockingLzReceive(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public virtual {\n        // only internal transaction\n        require(_msgSender() == address(this), \"NonblockingLzApp: caller must be LzApp\");\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n    }\n\n    //@notice override this function\n    function _nonblockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual;\n\n    function retryMessage(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public payable virtual {\n        // assert there is message to retry\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\n        require(payloadHash != bytes32(0), \"NonblockingLzApp: no stored message\");\n        require(keccak256(_payload) == payloadHash, \"NonblockingLzApp: invalid payload\");\n        // clear the stored message\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\n        // execute the message. revert if it fails again\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\n    }\n}\n"},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./OFTCoreV2.sol\";\nimport \"./interfaces/IOFTV2.sol\";\nimport \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\nabstract contract BaseOFTV2 is OFTCoreV2, ERC165, IOFTV2 {\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) OFTCoreV2(_sharedDecimals, _lzEndpoint) {}\n\n    /************************************************************************\n     * public functions\n     ************************************************************************/\n    function sendFrom(\n        address _from,\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        LzCallParams calldata _callParams\n    ) public payable virtual override {\n        _send(_from, _dstChainId, _toAddress, _amount, _callParams.refundAddress, _callParams.zroPaymentAddress, _callParams.adapterParams);\n    }\n\n    function sendAndCall(\n        address _from,\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bytes calldata _payload,\n        uint64 _dstGasForCall,\n        LzCallParams calldata _callParams\n    ) public payable virtual override {\n        _sendAndCall(\n            _from,\n            _dstChainId,\n            _toAddress,\n            _amount,\n            _payload,\n            _dstGasForCall,\n            _callParams.refundAddress,\n            _callParams.zroPaymentAddress,\n            _callParams.adapterParams\n        );\n    }\n\n    /************************************************************************\n     * public view functions\n     ************************************************************************/\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return interfaceId == type(IOFTV2).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    function estimateSendFee(\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bool _useZro,\n        bytes calldata _adapterParams\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\n        return _estimateSendFee(_dstChainId, _toAddress, _amount, _useZro, _adapterParams);\n    }\n\n    function estimateSendAndCallFee(\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bytes calldata _payload,\n        uint64 _dstGasForCall,\n        bool _useZro,\n        bytes calldata _adapterParams\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\n        return _estimateSendAndCallFee(_dstChainId, _toAddress, _amount, _payload, _dstGasForCall, _useZro, _adapterParams);\n    }\n\n    function circulatingSupply() public view virtual override returns (uint);\n\n    function token() public view virtual override returns (address);\n}\n"},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface of the IOFT core standard\n */\ninterface ICommonOFT is IERC165 {\n\n    struct LzCallParams {\n        address payable refundAddress;\n        address zroPaymentAddress;\n        bytes adapterParams;\n    }\n\n    /**\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\n     * _dstChainId - L0 defined chain id to send tokens too\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\n     * _amount - amount of the tokens to transfer\n     * _useZro - indicates to use zro to pay L0 fees\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\n     */\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\n\n    /**\n     * @dev returns the circulating amount of tokens on current chain\n     */\n    function circulatingSupply() external view returns (uint);\n\n    /**\n     * @dev returns the address of the ERC20 token\n     */\n    function token() external view returns (address);\n}\n"},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol":{"content":"// SPDX-License-Identifier: BUSL-1.1\n\npragma solidity >=0.5.0;\n\ninterface IOFTReceiverV2 {\n    /**\n     * @dev Called by the OFT contract when tokens are received from source chain.\n     * @param _srcChainId The chain id of the source chain.\n     * @param _srcAddress The address of the OFT token contract on the source chain.\n     * @param _nonce The nonce of the transaction on the source chain.\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\n     * @param _amount The amount of tokens to transfer.\n     * @param _payload Additional data with no specified format.\n     */\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\n}\n"},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity >=0.5.0;\n\nimport \"./ICommonOFT.sol\";\n\n/**\n * @dev Interface of the IOFT core standard\n */\ninterface IOFTV2 is ICommonOFT {\n\n    /**\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\n     * `_from` the owner of token\n     * `_dstChainId` the destination chain identifier\n     * `_toAddress` can be any size depending on the `dstChainId`.\n     * `_amount` the quantity of tokens in wei\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\n     */\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\n\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\n}\n"},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../../../lzApp/NonblockingLzApp.sol\";\nimport \"../../../libraries/ExcessivelySafeCall.sol\";\nimport \"./interfaces/ICommonOFT.sol\";\nimport \"./interfaces/IOFTReceiverV2.sol\";\n\nabstract contract OFTCoreV2 is NonblockingLzApp {\n    using BytesLib for bytes;\n    using ExcessivelySafeCall for address;\n\n    uint public constant NO_EXTRA_GAS = 0;\n\n    // packet type\n    uint8 public constant PT_SEND = 0;\n    uint8 public constant PT_SEND_AND_CALL = 1;\n\n    uint8 public immutable sharedDecimals;\n\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\n\n    /**\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\n     * `_nonce` is the outbound nonce\n     */\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\n\n    /**\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\n     * `_nonce` is the inbound nonce.\n     */\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\n\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\n\n    event NonContractAddress(address _address);\n\n    // _sharedDecimals should be the minimum decimals on all chains\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\n        sharedDecimals = _sharedDecimals;\n    }\n\n    /************************************************************************\n     * public functions\n     ************************************************************************/\n    function callOnOFTReceived(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes32 _from,\n        address _to,\n        uint _amount,\n        bytes calldata _payload,\n        uint _gasForCall\n    ) public virtual {\n        require(_msgSender() == address(this), \"OFTCore: caller must be OFTCore\");\n\n        // send\n        _amount = _transferFrom(address(this), _to, _amount);\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\n\n        // call\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\n    }\n\n    /************************************************************************\n     * internal functions\n     ************************************************************************/\n    function _estimateSendFee(\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bool _useZro,\n        bytes memory _adapterParams\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\n        // mock the payload for sendFrom()\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\n    }\n\n    function _estimateSendAndCallFee(\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bytes memory _payload,\n        uint64 _dstGasForCall,\n        bool _useZro,\n        bytes memory _adapterParams\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\n        // mock the payload for sendAndCall()\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\n    }\n\n    function _nonblockingLzReceive(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual override {\n        uint8 packetType = _payload.toUint8(0);\n\n        if (packetType == PT_SEND) {\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\n        } else if (packetType == PT_SEND_AND_CALL) {\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\n        } else {\n            revert(\"OFTCore: unknown packet type\");\n        }\n    }\n\n    function _send(\n        address _from,\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams\n    ) internal virtual returns (uint amount) {\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\n\n        (amount, ) = _removeDust(_amount);\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\n        require(amount > 0, \"OFTCore: amount too small\");\n\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\n    }\n\n    function _sendAck(\n        uint16 _srcChainId,\n        bytes memory,\n        uint64,\n        bytes memory _payload\n    ) internal virtual {\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\n        if (to == address(0)) {\n            to = address(0xdead);\n        }\n\n        uint amount = _sd2ld(amountSD);\n        amount = _creditTo(_srcChainId, to, amount);\n\n        emit ReceiveFromChain(_srcChainId, to, amount);\n    }\n\n    function _sendAndCall(\n        address _from,\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount,\n        bytes memory _payload,\n        uint64 _dstGasForCall,\n        address payable _refundAddress,\n        address _zroPaymentAddress,\n        bytes memory _adapterParams\n    ) internal virtual returns (uint amount) {\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\n\n        (amount, ) = _removeDust(_amount);\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\n        require(amount > 0, \"OFTCore: amount too small\");\n\n        // encode the msg.sender into the payload instead of _from\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\n\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\n    }\n\n    function _sendAndCallAck(\n        uint16 _srcChainId,\n        bytes memory _srcAddress,\n        uint64 _nonce,\n        bytes memory _payload\n    ) internal virtual {\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\n\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\n        uint amount = _sd2ld(amountSD);\n\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\n        if (!credited) {\n            amount = _creditTo(_srcChainId, address(this), amount);\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\n        }\n\n        if (!_isContract(to)) {\n            emit NonContractAddress(to);\n            return;\n        }\n\n        // workaround for stack too deep\n        uint16 srcChainId = _srcChainId;\n        bytes memory srcAddress = _srcAddress;\n        uint64 nonce = _nonce;\n        bytes memory payload = _payload;\n        bytes32 from_ = from;\n        address to_ = to;\n        uint amount_ = amount;\n        bytes memory payloadForCall_ = payloadForCall;\n\n        // no gas limit for the call if retry\n        uint gas = credited ? gasleft() : gasForCall;\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\n            gasleft(),\n            150,\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\n        );\n\n        if (success) {\n            bytes32 hash = keccak256(payload);\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\n        } else {\n            // store the failed message into the nonblockingLzApp\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\n        }\n    }\n\n    function _isContract(address _account) internal view returns (bool) {\n        return _account.code.length > 0;\n    }\n\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\n        uint amountSD = _amount / _ld2sdRate();\n        require(amountSD <= type(uint64).max, \"OFTCore: amountSD overflow\");\n        return uint64(amountSD);\n    }\n\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\n        return _amountSD * _ld2sdRate();\n    }\n\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\n        dust = _amount % _ld2sdRate();\n        amountAfter = _amount - dust;\n    }\n\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\n    }\n\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \"OFTCore: invalid payload\");\n\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\n        amountSD = _payload.toUint64(33);\n    }\n\n    function _encodeSendAndCallPayload(\n        address _from,\n        bytes32 _toAddress,\n        uint64 _amountSD,\n        bytes memory _payload,\n        uint64 _dstGasForCall\n    ) internal view virtual returns (bytes memory) {\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\n    }\n\n    function _decodeSendAndCallPayload(bytes memory _payload)\n        internal\n        view\n        virtual\n        returns (\n            bytes32 from,\n            address to,\n            uint64 amountSD,\n            bytes memory payload,\n            uint64 dstGasForCall\n        )\n    {\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \"OFTCore: invalid payload\");\n\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\n        amountSD = _payload.toUint64(33);\n        from = _payload.toBytes32(41);\n        dstGasForCall = _payload.toUint64(73);\n        payload = _payload.slice(81, _payload.length - 81);\n    }\n\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\n        return bytes32(uint(uint160(_address)));\n    }\n\n    function _debitFrom(\n        address _from,\n        uint16 _dstChainId,\n        bytes32 _toAddress,\n        uint _amount\n    ) internal virtual returns (uint);\n\n    function _creditTo(\n        uint16 _srcChainId,\n        address _toAddress,\n        uint _amount\n    ) internal virtual returns (uint);\n\n    function _transferFrom(\n        address _from,\n        address _to,\n        uint _amount\n    ) internal virtual returns (uint);\n\n    function _ld2sdRate() internal view virtual returns (uint);\n}\n"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./OwnableUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n    function __Ownable2Step_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\n    }\n    address private _pendingOwner;\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        return _pendingOwner;\n    }\n\n    /**\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        _pendingOwner = newOwner;\n        emit OwnershipTransferStarted(owner(), newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual override {\n        delete _pendingOwner;\n        super._transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev The new owner accepts the ownership transfer.\n     */\n    function acceptOwnership() public virtual {\n        address sender = _msgSender();\n        require(pendingOwner() == sender, \"Ownable2Step: caller is not the new owner\");\n        _transferOwnership(sender);\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/ContextUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    function __Ownable_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable_init_unchained() internal onlyInitializing {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     * @custom:oz-retyped-from bool\n     */\n    uint8 private _initialized;\n\n    /**\n     * @dev Indicates that the contract is in the process of being initialized.\n     */\n    bool private _initializing;\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint8 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n     * constructor.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !_initializing;\n        require(\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n            \"Initializable: contract is already initialized\"\n        );\n        _initialized = 1;\n        if (isTopLevelCall) {\n            _initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            _initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint8 version) {\n        require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n        _initialized = version;\n        _initializing = true;\n        _;\n        _initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        require(_initializing, \"Initializable: contract is not initializing\");\n        _;\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        require(!_initializing, \"Initializable: contract is initializing\");\n        if (_initialized != type(uint8).max) {\n            _initialized = type(uint8).max;\n            emit Initialized(type(uint8).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint8) {\n        return _initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _initializing;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary AddressUpgradeable {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        Strings.toHexString(account),\n                        \" is missing role \",\n                        Strings.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor() {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n    mapping(address => uint256) private _balances;\n\n    mapping(address => mapping(address => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the default value returned by this function, unless\n     * it's overridden.\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual override returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual override returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `amount`.\n     */\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Emits an {Approval} event indicating the updated allowance. This is not\n     * required by the EIP. See the note at the beginning of {ERC20}.\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `amount`.\n     */\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, amount);\n        _transfer(from, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\n        return true;\n    }\n\n    /**\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `spender` must have allowance for the caller of at least\n     * `subtractedValue`.\n     */\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        uint256 currentAllowance = allowance(owner, spender);\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n        unchecked {\n            _approve(owner, spender, currentAllowance - subtractedValue);\n        }\n\n        return true;\n    }\n\n    /**\n     * @dev Moves `amount` of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     */\n    function _transfer(address from, address to, uint256 amount) internal virtual {\n        require(from != address(0), \"ERC20: transfer from the zero address\");\n        require(to != address(0), \"ERC20: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, amount);\n\n        uint256 fromBalance = _balances[from];\n        require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n        unchecked {\n            _balances[from] = fromBalance - amount;\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n            // decrementing then incrementing.\n            _balances[to] += amount;\n        }\n\n        emit Transfer(from, to, amount);\n\n        _afterTokenTransfer(from, to, amount);\n    }\n\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n     * the total supply.\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     */\n    function _mint(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: mint to the zero address\");\n\n        _beforeTokenTransfer(address(0), account, amount);\n\n        _totalSupply += amount;\n        unchecked {\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n            _balances[account] += amount;\n        }\n        emit Transfer(address(0), account, amount);\n\n        _afterTokenTransfer(address(0), account, amount);\n    }\n\n    /**\n     * @dev Destroys `amount` tokens from `account`, reducing the\n     * total supply.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     * - `account` must have at least `amount` tokens.\n     */\n    function _burn(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: burn from the zero address\");\n\n        _beforeTokenTransfer(account, address(0), amount);\n\n        uint256 accountBalance = _balances[account];\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n        unchecked {\n            _balances[account] = accountBalance - amount;\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\n            _totalSupply -= amount;\n        }\n\n        emit Transfer(account, address(0), amount);\n\n        _afterTokenTransfer(account, address(0), amount);\n    }\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     */\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\n        require(owner != address(0), \"ERC20: approve from the zero address\");\n        require(spender != address(0), \"ERC20: approve to the zero address\");\n\n        _allowances[owner][spender] = amount;\n        emit Approval(owner, spender, amount);\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n     *\n     * Does not update the allowance amount in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Might emit an {Approval} event.\n     */\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n            unchecked {\n                _approve(owner, spender, currentAllowance - amount);\n            }\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * will be transferred to `to`.\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * has been transferred to `to`.\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n     * Revert on invalid signature.\n     */\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n        // and not revert is the subcall reverts.\n\n        (bool success, bytes memory returndata) = address(token).call(data);\n        return\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\n    }\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1, \"Math: mulDiv overflow\");\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toString(int256 value) internal pure returns (string memory) {\n        return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\n\nimport \"./IAccessControlManagerV8.sol\";\n\n/**\n * @title AccessControlledV8\n * @author Venus\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\n */\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\n    /// @notice Access control manager contract\n    IAccessControlManagerV8 internal _accessControlManager;\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n\n    /// @notice Emitted when access control manager contract address is changed\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\n\n    /// @notice Thrown when the action is prohibited by AccessControlManager\n    error Unauthorized(address sender, address calledContract, string methodSignature);\n\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\n        __Ownable2Step_init();\n        __AccessControlled_init_unchained(accessControlManager_);\n    }\n\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Sets the address of AccessControlManager\n     * @dev Admin function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     * @custom:event Emits NewAccessControlManager event\n     * @custom:access Only Governance\n     */\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\n        _setAccessControlManager(accessControlManager_);\n    }\n\n    /**\n     * @notice Returns the address of the access control manager contract\n     */\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\n        return _accessControlManager;\n    }\n\n    /**\n     * @dev Internal function to set address of AccessControlManager\n     * @param accessControlManager_ The new address of the AccessControlManager\n     */\n    function _setAccessControlManager(address accessControlManager_) internal {\n        require(address(accessControlManager_) != address(0), \"invalid acess control manager address\");\n        address oldAccessControlManager = address(_accessControlManager);\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\n    }\n\n    /**\n     * @notice Reverts if the call is not allowed by AccessControlManager\n     * @param signature Method signature\n     */\n    function _checkAccessAllowed(string memory signature) internal view {\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\n\n        if (!isAllowedToCall) {\n            revert Unauthorized(msg.sender, address(this), signature);\n        }\n    }\n}\n"},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"./IAccessControlManagerV8.sol\";\n\n/**\n * @title AccessControlManager\n * @author Venus\n * @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\n * @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\n * account or list of accounts (EOA or Contract Accounts).\n *\n * The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\n * inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\n * contract as a base for role management logic. There are two role types: admin and granular permissions.\n * \n * ## Granular Roles\n * \n * Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\n * is guarded by ACM, calling `giveRolePermission` for account B do the following:\n * \n * 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\n * 1. Add the computed role to the roles of account B\n * 1. Account B now can call `ContractFoo.bar()`\n * \n * ## Admin Roles\n * \n * Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\n * contracts created by factories.\n * \n * For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\n * \n * In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\n * ACM, not only contract A.\n * \n * ## Protocol Integration\n * \n * All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\n * `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\n * `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\n\n```\n    contract Comptroller is [...] AccessControlledV8 {\n        [...]\n        function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\n            _checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\");\n            [...]\n        }\n    }\n```\n */\ncontract AccessControlManager is AccessControl, IAccessControlManagerV8 {\n    /// @notice Emitted when an account is given a permission to a certain contract function\n    /// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\n    /// can call any contract function with this signature\n    event PermissionGranted(address account, address contractAddress, string functionSig);\n\n    /// @notice Emitted when an account is revoked a permission to a certain contract function\n    event PermissionRevoked(address account, address contractAddress, string functionSig);\n\n    constructor() {\n        // Grant the contract deployer the default admin role: it will be able\n        // to grant and revoke any roles\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n    }\n\n    /**\n     * @notice Gives a function call permission to one single account\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n     * @param contractAddress address of contract for which call permissions will be granted\n     * @dev if contractAddress is zero address, the account can access the specified function\n     *      on **any** contract managed by this ACL\n     * @param functionSig signature e.g. \"functionName(uint256,bool)\"\n     * @param accountToPermit account that will be given access to the contract function\n     * @custom:event Emits a {RoleGranted} and {PermissionGranted} events.\n     */\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) public {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        grantRole(role, accountToPermit);\n        emit PermissionGranted(accountToPermit, contractAddress, functionSig);\n    }\n\n    /**\n     * @notice Revokes an account's permission to a particular function call\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n     * \t\tMay emit a {RoleRevoked} event.\n     * @param contractAddress address of contract for which call permissions will be revoked\n     * @param functionSig signature e.g. \"functionName(uint256,bool)\"\n     * @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.\n     */\n    function revokeCallPermission(\n        address contractAddress,\n        string calldata functionSig,\n        address accountToRevoke\n    ) public {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        revokeRole(role, accountToRevoke);\n        emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);\n    }\n\n    /**\n     * @notice Verifies if the given account can call a contract's guarded function\n     * @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\n     * @param account for which call permissions will be checked\n     * @param functionSig restricted function signature e.g. \"functionName(uint256,bool)\"\n     * @return false if the user account cannot call the particular contract function\n     *\n     */\n    function isAllowedToCall(address account, string calldata functionSig) public view returns (bool) {\n        bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));\n\n        if (hasRole(role, account)) {\n            return true;\n        } else {\n            role = keccak256(abi.encodePacked(address(0), functionSig));\n            return hasRole(role, account);\n        }\n    }\n\n    /**\n     * @notice Verifies if the given account can call a contract's guarded function\n     * @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\n     * @param account for which call permissions will be checked against\n     * @param contractAddress address of the restricted contract\n     * @param functionSig signature of the restricted function e.g. \"functionName(uint256,bool)\"\n     * @return false if the user account cannot call the particular contract function\n     */\n    function hasPermission(\n        address account,\n        address contractAddress,\n        string calldata functionSig\n    ) public view returns (bool) {\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\n        return hasRole(role, account);\n    }\n}\n"},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\nimport \"@openzeppelin/contracts/access/IAccessControl.sol\";\n\n/**\n * @title IAccessControlManagerV8\n * @author Venus\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\n */\ninterface IAccessControlManagerV8 is IAccessControl {\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\n\n    function revokeCallPermission(\n        address contractAddress,\n        string calldata functionSig,\n        address accountToRevoke\n    ) external;\n\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\n\n    function hasPermission(\n        address account,\n        address contractAddress,\n        string calldata functionSig\n    ) external view returns (bool);\n}\n"},"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\ninterface OracleInterface {\n    function getPrice(address asset) external view returns (uint256);\n}\n\ninterface ResilientOracleInterface is OracleInterface {\n    function updatePrice(address vToken) external;\n\n    function updateAssetPrice(address asset) external;\n\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\n}\n\ninterface BoundValidatorInterface {\n    function validatePriceWithAnchorPrice(\n        address asset,\n        uint256 reporterPrice,\n        uint256 anchorPrice\n    ) external view returns (bool);\n}\n"},"@venusprotocol/solidity-utilities/contracts/constants.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\nuint256 constant EXP_SCALE = 1e18;\n\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\nuint256 constant MANTISSA_ONE = EXP_SCALE;\n\n/// @dev The approximate number of seconds per year\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\n"},"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from \"./constants.sol\";\n\n/**\n * @title Exponential module for storing fixed-precision decimals\n * @author Compound\n * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\n *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\n *         `Exp({mantissa: 5100000000000000000})`.\n */\ncontract ExponentialNoError {\n    struct Exp {\n        uint256 mantissa;\n    }\n\n    struct Double {\n        uint256 mantissa;\n    }\n\n    uint256 internal constant EXP_SCALE = EXP_SCALE_;\n    uint256 internal constant DOUBLE_SCALE = 1e36;\n    uint256 internal constant HALF_EXP_SCALE = EXP_SCALE / 2;\n    uint256 internal constant MANTISSA_ONE = MANTISSA_ONE_;\n\n    /**\n     * @dev Truncates the given exp to a whole number value.\n     *      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15\n     */\n    function truncate(Exp memory exp) internal pure returns (uint256) {\n        // Note: We are not using careful math here as we're performing a division that cannot fail\n        return exp.mantissa / EXP_SCALE;\n    }\n\n    /**\n     * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function mul_ScalarTruncate(Exp memory a, uint256 scalar) internal pure returns (uint256) {\n        Exp memory product = mul_(a, scalar);\n        return truncate(product);\n    }\n\n    /**\n     * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function mul_ScalarTruncateAddUInt(Exp memory a, uint256 scalar, uint256 addend) internal pure returns (uint256) {\n        Exp memory product = mul_(a, scalar);\n        return add_(truncate(product), addend);\n    }\n\n    /**\n     * @dev Checks if first Exp is less than second Exp.\n     */\n    function lessThanExp(Exp memory left, Exp memory right) internal pure returns (bool) {\n        return left.mantissa < right.mantissa;\n    }\n\n    function safe224(uint256 n, string memory errorMessage) internal pure returns (uint224) {\n        require(n <= type(uint224).max, errorMessage);\n        return uint224(n);\n    }\n\n    function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {\n        require(n <= type(uint32).max, errorMessage);\n        return uint32(n);\n    }\n\n    function add_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: add_(a.mantissa, b.mantissa) });\n    }\n\n    function add_(Double memory a, Double memory b) internal pure returns (Double memory) {\n        return Double({ mantissa: add_(a.mantissa, b.mantissa) });\n    }\n\n    function add_(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a + b;\n    }\n\n    function sub_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: sub_(a.mantissa, b.mantissa) });\n    }\n\n    function sub_(Double memory a, Double memory b) internal pure returns (Double memory) {\n        return Double({ mantissa: sub_(a.mantissa, b.mantissa) });\n    }\n\n    function sub_(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a - b;\n    }\n\n    function mul_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: mul_(a.mantissa, b.mantissa) / EXP_SCALE });\n    }\n\n    function mul_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: mul_(a.mantissa, b) });\n    }\n\n    function mul_(uint256 a, Exp memory b) internal pure returns (uint256) {\n        return mul_(a, b.mantissa) / EXP_SCALE;\n    }\n\n    function mul_(Double memory a, Double memory b) internal pure returns (Double memory) {\n        return Double({ mantissa: mul_(a.mantissa, b.mantissa) / DOUBLE_SCALE });\n    }\n\n    function mul_(Double memory a, uint256 b) internal pure returns (Double memory) {\n        return Double({ mantissa: mul_(a.mantissa, b) });\n    }\n\n    function mul_(uint256 a, Double memory b) internal pure returns (uint256) {\n        return mul_(a, b.mantissa) / DOUBLE_SCALE;\n    }\n\n    function mul_(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a * b;\n    }\n\n    function div_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: div_(mul_(a.mantissa, EXP_SCALE), b.mantissa) });\n    }\n\n    function div_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\n        return Exp({ mantissa: div_(a.mantissa, b) });\n    }\n\n    function div_(uint256 a, Exp memory b) internal pure returns (uint256) {\n        return div_(mul_(a, EXP_SCALE), b.mantissa);\n    }\n\n    function div_(Double memory a, Double memory b) internal pure returns (Double memory) {\n        return Double({ mantissa: div_(mul_(a.mantissa, DOUBLE_SCALE), b.mantissa) });\n    }\n\n    function div_(Double memory a, uint256 b) internal pure returns (Double memory) {\n        return Double({ mantissa: div_(a.mantissa, b) });\n    }\n\n    function div_(uint256 a, Double memory b) internal pure returns (uint256) {\n        return div_(mul_(a, DOUBLE_SCALE), b.mantissa);\n    }\n\n    function div_(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a / b;\n    }\n\n    function fraction(uint256 a, uint256 b) internal pure returns (Double memory) {\n        return Double({ mantissa: div_(mul_(a, DOUBLE_SCALE), b) });\n    }\n}\n"},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\nerror ZeroAddressNotAllowed();\n\n/// @notice Thrown if the supplied value is 0 where it is not allowed\nerror ZeroValueNotAllowed();\n\n/// @notice Checks if the provided address is nonzero, reverts otherwise\n/// @param address_ Address to check\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\nfunction ensureNonzeroAddress(address address_) pure {\n    if (address_ == address(0)) {\n        revert ZeroAddressNotAllowed();\n    }\n}\n\n/// @notice Checks if the provided value is nonzero, reverts otherwise\n/// @param value_ Value to check\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\nfunction ensureNonzeroValue(uint256 value_) pure {\n    if (value_ == 0) {\n        revert ZeroValueNotAllowed();\n    }\n}\n"},"contracts/Bridge/BaseXVSProxyOFT.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { SafeERC20, IERC20 } from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport { ResilientOracleInterface } from \"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\";\nimport { Pausable } from \"@openzeppelin/contracts/security/Pausable.sol\";\nimport { BaseOFTV2 } from \"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { ExponentialNoError } from \"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\";\n\n/**\n * @title BaseXVSProxyOFT\n * @author Venus\n * @notice The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token.\n * It manages transaction limits of a single and daily transactions.\n * This contract inherits key functionalities from other contracts, including pausing capabilities and error handling.\n * It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses.\n * The contract allows the owner to configure limits, set whitelists, and control pausing.\n * Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.\n */\n\nabstract contract BaseXVSProxyOFT is Pausable, ExponentialNoError, BaseOFTV2 {\n    using SafeERC20 for IERC20;\n    IERC20 internal immutable innerToken;\n    uint256 internal immutable ld2sdRate;\n    bool public sendAndCallEnabled;\n\n    /**\n     * @notice The address of ResilientOracle contract wrapped in its interface.\n     */\n    ResilientOracleInterface public oracle;\n    /**\n     * @notice Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\n     */\n    mapping(uint16 => uint256) public chainIdToMaxSingleTransactionLimit;\n    /**\n     * @notice Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\n     */\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\n    /**\n     * @notice Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourTransferred;\n    /**\n     * @notice Timestamp when the last 24-hour window started from local chain.\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\n    /**\n     * @notice Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\n     */\n    mapping(uint16 => uint256) public chainIdToMaxSingleReceiveTransactionLimit;\n    /**\n     * @notice Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\n     */\n    mapping(uint16 => uint256) public chainIdToMaxDailyReceiveLimit;\n    /**\n     * @notice Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourReceived;\n    /**\n     * @notice Timestamp when the last 24-hour window started from remote chain.\n     */\n    mapping(uint16 => uint256) public chainIdToLast24HourReceiveWindowStart;\n    /**\n     * @notice Address on which cap check and bound limit is not applicable.\n     */\n    mapping(address => bool) public whitelist;\n\n    /**\n     * @notice Emitted when address is added to whitelist.\n     */\n    event SetWhitelist(address indexed addr, bool isWhitelist);\n    /**\n     * @notice  Emitted when the maximum limit for a single transaction from local chain is modified.\n     */\n    event SetMaxSingleTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n    /**\n     * @notice Emitted when the maximum daily limit of transactions from local chain is modified.\n     */\n    event SetMaxDailyLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n    /**\n     * @notice Emitted when the maximum limit for a single receive transaction from remote chain is modified.\n     */\n    event SetMaxSingleReceiveTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n    /**\n     * @notice Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\n     */\n    event SetMaxDailyReceiveLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\n    /**\n     * @notice Event emitted when oracle is modified.\n     */\n    event OracleChanged(address indexed oldOracle, address indexed newOracle);\n    /**\n     * @notice Event emitted when trusted remote sets to empty.\n     */\n    event TrustedRemoteRemoved(uint16 chainId);\n    /**\n     * @notice Event emitted when inner token set successfully.\n     */\n    event InnerTokenAdded(address indexed innerToken);\n    /**\n     *@notice Emitted on sweep token success\n     */\n    event SweepToken(address indexed token, address indexed to, uint256 sweepAmount);\n    /**\n     * @notice Event emitted when SendAndCallEnabled updated successfully.\n     */\n    event UpdateSendAndCallEnabled(bool indexed enabled);\n    /**\n     *@notice Error thrown when this contract balance is less than sweep amount\n     */\n    error InsufficientBalance(uint256 sweepAmount, uint256 balance);\n\n    /**\n     * @param tokenAddress_ Address of the inner token.\n     * @param sharedDecimals_ Number of shared decimals.\n     * @param lzEndpoint_ Address of the layer zero endpoint contract.\n     * @param oracle_ Address of the price oracle.\n     * @custom:error ZeroAddressNotAllowed is thrown when token contract address is zero.\n     * @custom:error ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.\n     * @custom:error ZeroAddressNotAllowed is thrown when oracle contract address is zero.\n     * @custom:event Emits InnerTokenAdded with token address.\n     * @custom:event Emits OracleChanged with zero address and oracle address.\n     */\n    constructor(\n        address tokenAddress_,\n        uint8 sharedDecimals_,\n        address lzEndpoint_,\n        address oracle_\n    ) BaseOFTV2(sharedDecimals_, lzEndpoint_) {\n        ensureNonzeroAddress(tokenAddress_);\n        ensureNonzeroAddress(lzEndpoint_);\n        ensureNonzeroAddress(oracle_);\n\n        innerToken = IERC20(tokenAddress_);\n\n        (bool success, bytes memory data) = tokenAddress_.staticcall(abi.encodeWithSignature(\"decimals()\"));\n        require(success, \"ProxyOFT: failed to get token decimals\");\n        uint8 decimals = abi.decode(data, (uint8));\n\n        require(sharedDecimals_ <= decimals, \"ProxyOFT: sharedDecimals must be <= decimals\");\n        ld2sdRate = 10 ** (decimals - sharedDecimals_);\n\n        emit InnerTokenAdded(tokenAddress_);\n        emit OracleChanged(address(0), oracle_);\n\n        oracle = ResilientOracleInterface(oracle_);\n    }\n\n    /**\n     * @notice Set the address of the ResilientOracle contract.\n     * @dev Reverts if the new address is zero.\n     * @param oracleAddress_ The new address of the ResilientOracle contract.\n     * @custom:access Only owner.\n     * @custom:event Emits OracleChanged with old and new oracle address.\n     */\n    function setOracle(address oracleAddress_) external onlyOwner {\n        ensureNonzeroAddress(oracleAddress_);\n        emit OracleChanged(address(oracle), oracleAddress_);\n        oracle = ResilientOracleInterface(oracleAddress_);\n    }\n\n    /**\n     * @notice Sets the limit of single transaction amount.\n     * @param chainId_ Destination chain id.\n     * @param limit_ Amount in USD(scaled with 18 decimals).\n     * @custom:access Only owner.\n     * @custom:event Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\n     */\n    function setMaxSingleTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\n        require(limit_ <= chainIdToMaxDailyLimit[chainId_], \"Single transaction limit > Daily limit\");\n        emit SetMaxSingleTransactionLimit(chainId_, chainIdToMaxSingleTransactionLimit[chainId_], limit_);\n        chainIdToMaxSingleTransactionLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Sets the limit of daily (24 Hour) transactions amount.\n     * @param chainId_ Destination chain id.\n     * @param limit_ Amount in USD(scaled with 18 decimals).\n     * @custom:access Only owner.\n     * @custom:event Emits setMaxDailyLimit with old and new limit associated with chain id.\n     */\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\n        require(limit_ >= chainIdToMaxSingleTransactionLimit[chainId_], \"Daily limit < single transaction limit\");\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\n        chainIdToMaxDailyLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Sets the maximum limit for a single receive transaction.\n     * @param chainId_ The destination chain ID.\n     * @param limit_ The new maximum limit in USD(scaled with 18 decimals).\n     * @custom:access Only owner.\n     * @custom:event Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\n     */\n    function setMaxSingleReceiveTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\n        require(limit_ <= chainIdToMaxDailyReceiveLimit[chainId_], \"single receive transaction limit > Daily limit\");\n        emit SetMaxSingleReceiveTransactionLimit(chainId_, chainIdToMaxSingleReceiveTransactionLimit[chainId_], limit_);\n        chainIdToMaxSingleReceiveTransactionLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Sets the maximum daily limit for receiving transactions.\n     * @param chainId_ The destination chain ID.\n     * @param limit_ The new maximum daily limit in USD(scaled with 18 decimals).\n     * @custom:access Only owner.\n     * @custom:event Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\n     */\n    function setMaxDailyReceiveLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\n        require(\n            limit_ >= chainIdToMaxSingleReceiveTransactionLimit[chainId_],\n            \"Daily limit < single receive transaction limit\"\n        );\n        emit SetMaxDailyReceiveLimit(chainId_, chainIdToMaxDailyReceiveLimit[chainId_], limit_);\n        chainIdToMaxDailyReceiveLimit[chainId_] = limit_;\n    }\n\n    /**\n     * @notice Sets the whitelist address to skip checks on transaction limit.\n     * @param user_ Address to be add in whitelist.\n     * @param val_ Boolean to be set (true for user_ address is whitelisted).\n     * @custom:access Only owner.\n     * @custom:event Emits setWhitelist.\n     */\n    function setWhitelist(address user_, bool val_) external onlyOwner {\n        emit SetWhitelist(user_, val_);\n        whitelist[user_] = val_;\n    }\n\n    /**\n     * @notice Triggers stopped state of the bridge.\n     * @custom:access Only owner.\n     */\n    function pause() external onlyOwner {\n        _pause();\n    }\n\n    /**\n     * @notice Triggers resume state of the bridge.\n     * @custom:access Only owner.\n     */\n    function unpause() external onlyOwner {\n        _unpause();\n    }\n\n    /**\n     * @notice A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\n     * @param token_ The address of the ERC-20 token to sweep\n     * @param to_ The address of the recipient\n     * @param amount_ The amount of tokens needs to transfer\n     * @custom:event Emits SweepToken event\n     * @custom:error Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\n     * @custom:access Only Owner\n     */\n    function sweepToken(IERC20 token_, address to_, uint256 amount_) external onlyOwner {\n        uint256 balance = token_.balanceOf(address(this));\n        if (amount_ > balance) {\n            revert InsufficientBalance(amount_, balance);\n        }\n\n        emit SweepToken(address(token_), to_, amount_);\n\n        token_.safeTransfer(to_, amount_);\n    }\n\n    /**\n     * @notice Remove trusted remote from storage.\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty.\n     * @custom:access Only owner.\n     * @custom:event Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\n     */\n    function removeTrustedRemote(uint16 remoteChainId_) external onlyOwner {\n        delete trustedRemoteLookup[remoteChainId_];\n        emit TrustedRemoteRemoved(remoteChainId_);\n    }\n\n    /**\n     * @notice It enables or disables sendAndCall functionality for the bridge.\n     * @param enabled_ Boolean indicating whether the sendAndCall function should be enabled or disabled.\n     */\n    function updateSendAndCallEnabled(bool enabled_) external onlyOwner {\n        sendAndCallEnabled = enabled_;\n        emit UpdateSendAndCallEnabled(enabled_);\n    }\n\n    /**\n     * @notice Checks the eligibility of a sender to initiate a cross-chain token transfer.\n     * @dev This external view function assesses whether the specified sender is eligible to transfer the given amount\n     *      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\n     * @param from_ The sender's address initiating the transfer.\n     * @param dstChainId_ Indicates destination chain.\n     * @param amount_ The quantity of tokens to be transferred.\n     * @return eligibleToSend A boolean indicating whether the sender is eligible to transfer the tokens.\n     * @return maxSingleTransactionLimit The maximum limit for a single transaction.\n     * @return maxDailyLimit The maximum daily limit for transactions.\n     * @return amountInUsd The equivalent amount in USD based on the oracle price.\n     * @return transferredInWindow The total amount transferred in the current 24-hour window.\n     * @return last24HourWindowStart The timestamp when the current 24-hour window started.\n     * @return isWhiteListedUser A boolean indicating whether the sender is whitelisted.\n     */\n    function isEligibleToSend(\n        address from_,\n        uint16 dstChainId_,\n        uint256 amount_\n    )\n        external\n        view\n        returns (\n            bool eligibleToSend,\n            uint256 maxSingleTransactionLimit,\n            uint256 maxDailyLimit,\n            uint256 amountInUsd,\n            uint256 transferredInWindow,\n            uint256 last24HourWindowStart,\n            bool isWhiteListedUser\n        )\n    {\n        // Check if the sender's address is whitelisted\n        isWhiteListedUser = whitelist[from_];\n\n        // Calculate the amount in USD using the oracle price\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\n\n        // Load values for the 24-hour window checks\n        uint256 currentBlockTimestamp = block.timestamp;\n        last24HourWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\n        transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\n        maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\n        maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\n        if (currentBlockTimestamp - last24HourWindowStart > 1 days) {\n            transferredInWindow = amountInUsd;\n            last24HourWindowStart = currentBlockTimestamp;\n        } else {\n            transferredInWindow += amountInUsd;\n        }\n        eligibleToSend = (isWhiteListedUser ||\n            ((amountInUsd <= maxSingleTransactionLimit) && (transferredInWindow <= maxDailyLimit)));\n    }\n\n    /**\n     * @notice Initiates a cross-chain token transfer and triggers a call on the destination chain.\n     * @dev This internal override function enables the contract to send tokens and invoke calls on the specified\n     *      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\n     * @param from_ Address from which tokens will be debited.\n     * @param dstChainId_ Destination chain id on which tokens will be send.\n     * @param toAddress_ Address on which tokens will be credited on destination chain.\n     * @param amount_ Amount of tokens that will be transferred.\n     * @param payload_ Additional data payload for the call on the destination chain.\n     * @param dstGasForCall_ The amount of gas allocated for the call on the destination chain.\n     * @param callparams_ Additional parameters, including refund address, ZRO payment address,\n     *                   and adapter params.\n     */\n    function sendAndCall(\n        address from_,\n        uint16 dstChainId_,\n        bytes32 toAddress_,\n        uint256 amount_,\n        bytes calldata payload_,\n        uint64 dstGasForCall_,\n        LzCallParams calldata callparams_\n    ) public payable override {\n        require(sendAndCallEnabled, \"sendAndCall is disabled\");\n\n        super.sendAndCall(from_, dstChainId_, toAddress_, amount_, payload_, dstGasForCall_, callparams_);\n    }\n\n    function retryMessage(\n        uint16 _srcChainId,\n        bytes calldata _srcAddress,\n        uint64 _nonce,\n        bytes calldata _payload\n    ) public payable override {\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\n        // it will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\n        require(\n            _srcAddress.length == trustedRemote.length &&\n                trustedRemote.length > 0 &&\n                keccak256(_srcAddress) == keccak256(trustedRemote),\n            \"LzApp: invalid source sending contract\"\n        );\n        super.retryMessage(_srcChainId, _srcAddress, _nonce, _payload);\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @notice Return's the address of the inner token of this bridge.\n     * @return Address of the inner token of this bridge.\n     */\n    function token() public view override returns (address) {\n        return address(innerToken);\n    }\n\n    /**\n     * @notice Checks if the sender is eligible to send tokens\n     * @param from_ Sender's address sending tokens\n     * @param dstChainId_ Chain id on which tokens should be sent\n     * @param amount_ Amount of tokens to be sent\n     */\n    function _isEligibleToSend(address from_, uint16 dstChainId_, uint256 amount_) internal {\n        // Check if the sender's address is whitelisted\n        bool isWhiteListedUser = whitelist[from_];\n        // Check if the user is whitelisted and return if true\n        if (isWhiteListedUser) {\n            return;\n        }\n\n        // Calculate the amount in USD using the oracle price\n        uint256 amountInUsd;\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\n\n        // Load values for the 24-hour window checks\n        uint256 currentBlockTimestamp = block.timestamp;\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\n        uint256 transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\n        uint256 maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\n\n        // Revert if the amount exceeds the single transaction limit\n        require(amountInUsd <= maxSingleTransactionLimit, \"Single Transaction Limit Exceed\");\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\n            transferredInWindow = amountInUsd;\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\n        } else {\n            transferredInWindow += amountInUsd;\n        }\n\n        // Revert if the amount exceeds the daily limit\n        require(transferredInWindow <= maxDailyLimit, \"Daily Transaction Limit Exceed\");\n\n        // Update the amount for the 24-hour window\n        chainIdToLast24HourTransferred[dstChainId_] = transferredInWindow;\n    }\n\n    /**\n     * @notice Checks if receiver is able to receive tokens\n     * @param toAddress_ Receiver address\n     * @param srcChainId_ Source chain id from which token is send\n     * @param receivedAmount_ Amount of tokens received\n     */\n    function _isEligibleToReceive(address toAddress_, uint16 srcChainId_, uint256 receivedAmount_) internal {\n        // Check if the recipient's address is whitelisted\n        bool isWhiteListedUser = whitelist[toAddress_];\n        // Check if the user is whitelisted and return if true\n        if (isWhiteListedUser) {\n            return;\n        }\n\n        // Calculate the received amount in USD using the oracle price\n        uint256 receivedAmountInUsd;\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(address(token())) });\n        receivedAmountInUsd = mul_ScalarTruncate(oraclePrice, receivedAmount_);\n\n        uint256 currentBlockTimestamp = block.timestamp;\n\n        // Load values for the 24-hour window checks for receiving\n        uint256 lastDayReceiveWindowStart = chainIdToLast24HourReceiveWindowStart[srcChainId_];\n        uint256 receivedInWindow = chainIdToLast24HourReceived[srcChainId_];\n        uint256 maxSingleReceiveTransactionLimit = chainIdToMaxSingleReceiveTransactionLimit[srcChainId_];\n        uint256 maxDailyReceiveLimit = chainIdToMaxDailyReceiveLimit[srcChainId_];\n\n        // Check if the received amount exceeds the single transaction limit\n        require(receivedAmountInUsd <= maxSingleReceiveTransactionLimit, \"Single Transaction Limit Exceed\");\n\n        // Check if the time window has changed (more than 24 hours have passed)\n        if (currentBlockTimestamp - lastDayReceiveWindowStart > 1 days) {\n            receivedInWindow = receivedAmountInUsd;\n            chainIdToLast24HourReceiveWindowStart[srcChainId_] = currentBlockTimestamp;\n        } else {\n            receivedInWindow += receivedAmountInUsd;\n        }\n\n        // Revert if the received amount exceeds the daily limit\n        require(receivedInWindow <= maxDailyReceiveLimit, \"Daily Transaction Limit Exceed\");\n\n        // Update the received amount for the 24-hour window\n        chainIdToLast24HourReceived[srcChainId_] = receivedInWindow;\n    }\n\n    /**\n     * @notice Transfer tokens from sender to receiver account.\n     * @param from_ Address from which token has to be transferred(Sender).\n     * @param to_ Address on which token will be tranferred(Receiver).\n     * @param amount_ Amount of token to be transferred.\n     * @return Actual balance difference.\n     */\n    function _transferFrom(\n        address from_,\n        address to_,\n        uint256 amount_\n    ) internal override whenNotPaused returns (uint256) {\n        uint256 before = innerToken.balanceOf(to_);\n        if (from_ == address(this)) {\n            innerToken.safeTransfer(to_, amount_);\n        } else {\n            innerToken.safeTransferFrom(from_, to_, amount_);\n        }\n        return innerToken.balanceOf(to_) - before;\n    }\n\n    /**\n     * @notice Returns Conversion rate factor from large decimals to shared decimals.\n     * @return Conversion rate factor.\n     */\n    function _ld2sdRate() internal view override returns (uint256) {\n        return ld2sdRate;\n    }\n}\n"},"contracts/Bridge/interfaces/IXVS.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/**\n * @title IXVS\n * @author Venus\n * @notice Interface implemented by `XVS` token.\n */\ninterface IXVS {\n    function mint(address to, uint256 amount) external;\n\n    function burn(address from, uint256 amount) external;\n}\n"},"contracts/Bridge/interfaces/IXVSProxyOFT.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity ^0.8.25;\n\n/**\n * @title IXVSProxyOFT\n * @author Venus\n * @notice Interface implemented by `XVSProxyOFT`.\n */\ninterface IXVSProxyOFT {\n    function transferOwnership(address addr) external;\n\n    function setTrustedRemoteAddress(uint16 remoteChainId, bytes calldata srcAddress) external;\n\n    function isTrustedRemote(uint16 remoteChainId, bytes calldata srcAddress) external returns (bool);\n}\n"},"contracts/Bridge/token/TokenController.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IAccessControlManagerV8 } from \"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\";\nimport { Pausable } from \"@openzeppelin/contracts/security/Pausable.sol\";\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\n\n/**\n * @title TokenController\n * @author Venus\n * @notice TokenController contract acts as a governance and access control mechanism,\n * allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem.\n * It provides a flexible framework for token-related operations.\n */\n\ncontract TokenController is Ownable, Pausable {\n    /**\n     * @notice Access control manager contract address.\n     */\n    address public accessControlManager;\n    /**\n     * @notice A Mapping used to keep track of the blacklist status of addresses.\n     */\n    mapping(address => bool) internal _blacklist;\n    /**\n     * @notice A mapping is used to keep track of the maximum amount a minter is permitted to mint.\n     */\n    mapping(address => uint256) public minterToCap;\n    /**\n     * @notice A Mapping used to keep track of the amount i.e already minted by minter.\n     */\n    mapping(address => uint256) public minterToMintedAmount;\n\n    /**\n     * @notice Emitted when the blacklist status of a user is updated.\n     */\n    event BlacklistUpdated(address indexed user, bool value);\n    /**\n     * @notice Emitted when the minting limit for a minter is increased.\n     */\n    event MintLimitIncreased(address indexed minter, uint256 newLimit);\n    /**\n     * @notice Emitted when the minting limit for a minter is decreased.\n     */\n    event MintLimitDecreased(address indexed minter, uint256 newLimit);\n    /**\n     * @notice Emitted when the minting cap for a minter is changed.\n     */\n    event MintCapChanged(address indexed minter, uint256 amount);\n    /**\n     * @notice Emitted when the address of the access control manager of the contract is updated.\n     */\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\n    /**\n     * @notice Emitted when all minted tokens are migrated from one minter to another.\n     */\n    event MintedTokensMigrated(address indexed source, address indexed destination);\n\n    /**\n     * @notice This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap.\n     */\n    error MintLimitExceed();\n    /**\n     * @notice This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address.\n     */\n    error AccountBlacklisted(address user);\n    /**\n     * @notice This error is used to indicate that sender is not allowed to perform this action.\n     */\n    error Unauthorized();\n    /**\n     * @notice This error is used to indicate that the new cap is greater than the previously minted tokens for the minter.\n     */\n    error NewCapNotGreaterThanMintedTokens();\n    /**\n     * @notice This error is used to indicate that the addresses must be different.\n     */\n    error AddressesMustDiffer();\n    /**\n     * @notice This error is used to indicate that the minter did not mint the required amount of tokens.\n     */\n    error MintedAmountExceed();\n\n    /**\n     * @param accessControlManager_ Address of access control manager contract.\n     * @custom:error ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero.\n     */\n    constructor(address accessControlManager_) {\n        ensureNonzeroAddress(accessControlManager_);\n        accessControlManager = accessControlManager_;\n    }\n\n    /**\n     * @notice Pauses Token\n     * @custom:access Controlled by AccessControlManager.\n     */\n    function pause() external {\n        _ensureAllowed(\"pause()\");\n        _pause();\n    }\n\n    /**\n     * @notice Resumes Token\n     * @custom:access Controlled by AccessControlManager.\n     */\n    function unpause() external {\n        _ensureAllowed(\"unpause()\");\n        _unpause();\n    }\n\n    /**\n     * @notice Function to update blacklist.\n     * @param user_ User address to be affected.\n     * @param value_ Boolean to toggle value.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:event Emits BlacklistUpdated event.\n     */\n    function updateBlacklist(address user_, bool value_) external {\n        _ensureAllowed(\"updateBlacklist(address,bool)\");\n        _blacklist[user_] = value_;\n        emit BlacklistUpdated(user_, value_);\n    }\n\n    /**\n     * @notice Sets the minting cap for minter.\n     * @param minter_ Minter address.\n     * @param amount_ Cap for the minter.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:event Emits MintCapChanged.\n     */\n    function setMintCap(address minter_, uint256 amount_) external {\n        _ensureAllowed(\"setMintCap(address,uint256)\");\n\n        if (amount_ < minterToMintedAmount[minter_]) {\n            revert NewCapNotGreaterThanMintedTokens();\n        }\n\n        minterToCap[minter_] = amount_;\n        emit MintCapChanged(minter_, amount_);\n    }\n\n    /**\n     * @notice Sets the address of the access control manager of this contract.\n     * @dev Admin function to set the access control address.\n     * @param newAccessControlAddress_ New address for the access control.\n     * @custom:access Only owner.\n     * @custom:event Emits NewAccessControlManager.\n     * @custom:error ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.\n     */\n    function setAccessControlManager(address newAccessControlAddress_) external onlyOwner {\n        ensureNonzeroAddress(newAccessControlAddress_);\n        emit NewAccessControlManager(accessControlManager, newAccessControlAddress_);\n        accessControlManager = newAccessControlAddress_;\n    }\n\n    /**\n     * @notice Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\n     * @param source_ Minter address to migrate tokens from.\n     * @param destination_ Minter address to migrate tokens to.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:error MintLimitExceed is thrown when the minting limit exceeds the cap after migration.\n     * @custom:error AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\n     * @custom:event Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.\n     * @custom:event Emits MintedTokensMigrated.\n     */\n    function migrateMinterTokens(address source_, address destination_) external {\n        _ensureAllowed(\"migrateMinterTokens(address,address)\");\n\n        if (source_ == destination_) {\n            revert AddressesMustDiffer();\n        }\n\n        uint256 sourceCap = minterToCap[source_];\n        uint256 destinationCap = minterToCap[destination_];\n\n        uint256 sourceMinted = minterToMintedAmount[source_];\n        uint256 destinationMinted = minterToMintedAmount[destination_];\n        uint256 newDestinationMinted = destinationMinted + sourceMinted;\n\n        if (newDestinationMinted > destinationCap) {\n            revert MintLimitExceed();\n        }\n\n        minterToMintedAmount[source_] = 0;\n        minterToMintedAmount[destination_] = newDestinationMinted;\n        uint256 availableLimit;\n        unchecked {\n            availableLimit = destinationCap - newDestinationMinted;\n        }\n\n        emit MintLimitDecreased(destination_, availableLimit);\n        emit MintLimitIncreased(source_, sourceCap);\n        emit MintedTokensMigrated(source_, destination_);\n    }\n\n    /**\n     * @notice Returns the blacklist status of the address.\n     * @param user_ Address of user to check blacklist status.\n     * @return bool status of blacklist.\n     */\n    function isBlackListed(address user_) external view returns (bool) {\n        return _blacklist[user_];\n    }\n\n    /**\n     * @dev Checks the minter cap and eligibility of receiver to receive tokens.\n     * @param from_  Minter address.\n     * @param to_  Receiver address.\n     * @param amount_  Amount to be mint.\n     * @custom:error MintLimitExceed is thrown when minting limit exceeds the cap.\n     * @custom:event Emits MintLimitDecreased with minter address and available limits.\n     */\n    function _isEligibleToMint(address from_, address to_, uint256 amount_) internal {\n        uint256 mintingCap = minterToCap[from_];\n        uint256 totalMintedOld = minterToMintedAmount[from_];\n        uint256 totalMintedNew = totalMintedOld + amount_;\n\n        if (totalMintedNew > mintingCap) {\n            revert MintLimitExceed();\n        }\n        minterToMintedAmount[from_] = totalMintedNew;\n        uint256 availableLimit;\n        unchecked {\n            availableLimit = mintingCap - totalMintedNew;\n        }\n        emit MintLimitDecreased(from_, availableLimit);\n    }\n\n    /**\n     * @dev This is post hook of burn function, increases minting limit of the minter.\n     * @param from_ Minter address.\n     * @param amount_  Amount burned.\n     * @custom:error MintedAmountExceed is thrown when `amount_` is greater than the tokens minted by `from_`.\n     * @custom:event Emits MintLimitIncreased with minter address and availabe limit.\n     */\n    function _increaseMintLimit(address from_, uint256 amount_) internal {\n        uint256 totalMintedOld = minterToMintedAmount[from_];\n\n        if (totalMintedOld < amount_) {\n            revert MintedAmountExceed();\n        }\n\n        uint256 totalMintedNew;\n        unchecked {\n            totalMintedNew = totalMintedOld - amount_;\n        }\n        minterToMintedAmount[from_] = totalMintedNew;\n        uint256 availableLimit = minterToCap[from_] - totalMintedNew;\n        emit MintLimitIncreased(from_, availableLimit);\n    }\n\n    /**\n     * @dev Checks the caller is allowed to call the specified fuction.\n     * @param functionSig_ Function signatureon which access is to be checked.\n     * @custom:error Unauthorized, thrown when unauthorised user try to access function.\n     */\n    function _ensureAllowed(string memory functionSig_) internal view {\n        if (!IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_)) {\n            revert Unauthorized();\n        }\n    }\n}\n"},"contracts/Bridge/token/XVS.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\nimport { TokenController } from \"./TokenController.sol\";\n\n/**\n * @title XVS\n * @author Venus\n * @notice XVS contract serves as a customized ERC-20 token with additional minting and burning functionality.\n *  It also incorporates access control features provided by the \"TokenController\" contract to ensure proper governance and restrictions on minting and burning operations.\n */\n\ncontract XVS is ERC20, TokenController {\n    constructor(address accessControlManager_) ERC20(\"Venus XVS\", \"XVS\") TokenController(accessControlManager_) {}\n\n    /**\n     * @notice Creates `amount_` tokens and assigns them to `account_`, increasing\n     * the total supply. Checks access and eligibility.\n     * @param account_ Address to which tokens are assigned.\n     * @param amount_ Amount of tokens to be assigned.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:event Emits MintLimitDecreased with new available limit.\n     * @custom:error MintLimitExceed is thrown when minting amount exceeds the maximum cap.\n     */\n    function mint(address account_, uint256 amount_) external whenNotPaused {\n        _ensureAllowed(\"mint(address,uint256)\");\n        _isEligibleToMint(msg.sender, account_, amount_);\n        _mint(account_, amount_);\n    }\n\n    /**\n     * @notice Destroys `amount_` tokens from `account_`, reducing the\n     * total supply. Checks access and eligibility.\n     * @param account_ Address from which tokens be destroyed.\n     * @param amount_ Amount of tokens to be destroyed.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:event Emits MintLimitIncreased with new available limit.\n     */\n    function burn(address account_, uint256 amount_) external whenNotPaused {\n        _ensureAllowed(\"burn(address,uint256)\");\n        _burn(account_, amount_);\n        _increaseMintLimit(msg.sender, amount_);\n    }\n\n    /**\n     * @notice Hook that is called before any transfer of tokens. This includes\n     * minting and burning.\n     * @param from_ Address of account from which tokens are to be transferred.\n     * @param to_ Address of the account to which tokens are to be transferred.\n     * @param amount_ The amount of tokens to be transferred.\n     * @custom:error AccountBlacklisted is thrown when either `from` or `to` address is blacklisted.\n     */\n    function _beforeTokenTransfer(address from_, address to_, uint256 amount_) internal override whenNotPaused {\n        if (_blacklist[to_]) {\n            revert AccountBlacklisted(to_);\n        }\n        if (_blacklist[from_]) {\n            revert AccountBlacklisted(from_);\n        }\n    }\n}\n"},"contracts/Bridge/XVSBridgeAdmin.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { AccessControlledV8 } from \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\";\nimport { ensureNonzeroAddress } from \"@venusprotocol/solidity-utilities/contracts/validators.sol\";\nimport { IXVSProxyOFT } from \"./interfaces/IXVSProxyOFT.sol\";\n\n/**\n * @title XVSBridgeAdmin\n * @author Venus\n * @notice The XVSBridgeAdmin contract extends a parent contract AccessControlledV8 for access control, and it manages an external contract called XVSProxyOFT.\n * It maintains a registry of function signatures and names,\n * allowing for dynamic function handling i.e checking of access control of interaction with only owner functions.\n */\ncontract XVSBridgeAdmin is AccessControlledV8 {\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n    IXVSProxyOFT public immutable XVSBridge;\n    /**\n     * @notice A mapping keeps track of function signature associated with function name string.\n     */\n    mapping(bytes4 => string) public functionRegistry;\n\n    /**\n     * @notice emitted when function registry updated\n     */\n    event FunctionRegistryChanged(string signature, bool active);\n\n    /// @custom:oz-upgrades-unsafe-allow constructor\n    constructor(address XVSBridge_) {\n        ensureNonzeroAddress(XVSBridge_);\n        XVSBridge = IXVSProxyOFT(XVSBridge_);\n        _disableInitializers();\n    }\n\n    /**\n     * @param accessControlManager_ Address of access control manager contract.\n     */\n    function initialize(address accessControlManager_) external initializer {\n        __AccessControlled_init(accessControlManager_);\n    }\n\n    /**\n     * @notice Invoked when called function does not exist in the contract.\n     * @return Response of low level call.\n     * @custom:access Controlled by AccessControlManager.\n     */\n    fallback(bytes calldata data) external returns (bytes memory) {\n        string memory fun = _getFunctionName(msg.sig);\n        require(bytes(fun).length != 0, \"Function not found\");\n        _checkAccessAllowed(fun);\n        (bool ok, bytes memory res) = address(XVSBridge).call(data);\n        require(ok, \"call failed\");\n        return res;\n    }\n\n    /**\n     * @notice Sets trusted remote on particular chain.\n     * @param remoteChainId_ Chain Id of the destination chain.\n     * @param remoteAddress_ Address of the destination bridge.\n     * @custom:access Controlled by AccessControlManager.\n     * @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\n     */\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata remoteAddress_) external {\n        _checkAccessAllowed(\"setTrustedRemoteAddress(uint16,bytes)\");\n        require(remoteChainId_ != 0, \"ChainId must not be zero\");\n        ensureNonzeroAddress(bytesToAddress(remoteAddress_));\n        XVSBridge.setTrustedRemoteAddress(remoteChainId_, remoteAddress_);\n    }\n\n    /**\n     * @notice A setter for the registry of functions that are allowed to be executed from proposals.\n     * @param signatures_  Function signature to be added or removed.\n     * @param active_ bool value, should be true to add function.\n     * @custom:access Only owner.\n     * @custom:event Emits FunctionRegistryChanged if bool value of function changes.\n     */\n    function upsertSignature(string[] calldata signatures_, bool[] calldata active_) external onlyOwner {\n        uint256 signatureLength = signatures_.length;\n        require(signatureLength == active_.length, \"Input arrays must have the same length\");\n        for (uint256 i; i < signatureLength; ) {\n            bytes4 sigHash = bytes4(keccak256(bytes(signatures_[i])));\n            bytes memory signature = bytes(functionRegistry[sigHash]);\n            if (active_[i] && signature.length == 0) {\n                functionRegistry[sigHash] = signatures_[i];\n                emit FunctionRegistryChanged(signatures_[i], true);\n            } else if (!active_[i] && signature.length != 0) {\n                delete functionRegistry[sigHash];\n                emit FunctionRegistryChanged(signatures_[i], false);\n            }\n            unchecked {\n                ++i;\n            }\n        }\n    }\n\n    /**\n     * @notice This function transfers the ownership of the bridge from this contract to new owner.\n     * @param newOwner_ New owner of the XVS Bridge.\n     * @custom:access Controlled by AccessControlManager.\n     */\n    function transferBridgeOwnership(address newOwner_) external {\n        _checkAccessAllowed(\"transferBridgeOwnership(address)\");\n        XVSBridge.transferOwnership(newOwner_);\n    }\n\n    /**\n     * @notice Returns true if remote address is trustedRemote corresponds to chainId_.\n     * @param remoteChainId_ Chain Id of the destination chain.\n     * @param remoteAddress_ Address of the destination bridge.\n     * @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\n     * @return Bool indicating whether the remote chain is trusted or not.\n     */\n    function isTrustedRemote(uint16 remoteChainId_, bytes calldata remoteAddress_) external returns (bool) {\n        require(remoteChainId_ != 0, \"ChainId must not be zero\");\n        ensureNonzeroAddress(bytesToAddress(remoteAddress_));\n        return XVSBridge.isTrustedRemote(remoteChainId_, remoteAddress_);\n    }\n\n    /**\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\n     */\n    function renounceOwnership() public override {}\n\n    /**\n     * @dev Returns function name string associated with function signature.\n     * @param signature_ Four bytes of function signature.\n     * @return Function signature corresponding to its hash.\n     */\n    function _getFunctionName(bytes4 signature_) internal view returns (string memory) {\n        return functionRegistry[signature_];\n    }\n\n    /**\n     * @notice Converts given bytes into address.\n     * @param b Bytes to be converted into address.\n     * @return Converted address of given bytes.\n     */\n    function bytesToAddress(bytes calldata b) private pure returns (address) {\n        return address(uint160(bytes20(b)));\n    }\n}\n"},"contracts/Bridge/XVSProxyOFTDest.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { IXVS } from \"./interfaces/IXVS.sol\";\nimport { BaseXVSProxyOFT } from \"./BaseXVSProxyOFT.sol\";\n\n/**\n * @title XVSProxyOFTDest\n * @author Venus\n * @notice XVSProxyOFTDest contract builds upon the functionality of its parent contract, BaseXVSProxyOFT,\n * and focuses on managing token transfers to the destination chain.\n * It provides functions to check eligibility and perform the actual token transfers while maintaining strict access controls and pausing mechanisms.\n */\n\ncontract XVSProxyOFTDest is BaseXVSProxyOFT {\n    /**\n     * @notice Emits when stored message dropped without successful retrying.\n     */\n    event DropFailedMessage(uint16 srcChainId, bytes indexed srcAddress, uint64 nonce);\n\n    constructor(\n        address tokenAddress_,\n        uint8 sharedDecimals_,\n        address lzEndpoint_,\n        address oracle_\n    ) BaseXVSProxyOFT(tokenAddress_, sharedDecimals_, lzEndpoint_, oracle_) {}\n\n    /**\n     * @notice Clear failed messages from the storage.\n     * @param srcChainId_ Chain id of source\n     * @param srcAddress_ Address of source followed by current bridge address\n     * @param nonce_ Nonce_ of the transaction\n     * @custom:access Only owner\n     * @custom:event Emits DropFailedMessage on clearance of failed message.\n     */\n    function dropFailedMessage(uint16 srcChainId_, bytes memory srcAddress_, uint64 nonce_) external onlyOwner {\n        failedMessages[srcChainId_][srcAddress_][nonce_] = bytes32(0);\n        emit DropFailedMessage(srcChainId_, srcAddress_, nonce_);\n    }\n\n    /**\n     * @notice Returns the total circulating supply of the token on the destination chain i.e (total supply).\n     * @return total circulating supply of the token on the destination chain.\n     */\n    function circulatingSupply() public view override returns (uint256) {\n        return innerToken.totalSupply();\n    }\n\n    /**\n     * @notice Debit tokens from the given address\n     * @param from_  Address from which tokens to be debited\n     * @param dstChainId_ Destination chain id\n     * @param amount_ Amount of tokens to be debited\n     * @return Actual amount debited\n     */\n    function _debitFrom(\n        address from_,\n        uint16 dstChainId_,\n        bytes32,\n        uint256 amount_\n    ) internal override whenNotPaused returns (uint256) {\n        require(from_ == _msgSender(), \"ProxyOFT: owner is not send caller\");\n        _isEligibleToSend(from_, dstChainId_, amount_);\n        IXVS(address(innerToken)).burn(from_, amount_);\n        return amount_;\n    }\n\n    /**\n     * @notice Credit tokens in the given account\n     * @param srcChainId_  Source chain id\n     * @param toAddress_ Address on which token will be credited\n     * @param amount_ Amount of tokens to be credited\n     * @return Actual amount credited\n     */\n    function _creditTo(\n        uint16 srcChainId_,\n        address toAddress_,\n        uint256 amount_\n    ) internal override whenNotPaused returns (uint256) {\n        _isEligibleToReceive(toAddress_, srcChainId_, amount_);\n        IXVS(address(innerToken)).mint(toAddress_, amount_);\n        return amount_;\n    }\n}\n"},"contracts/Bridge/XVSProxyOFTSrc.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.8.25;\n\nimport { SafeERC20, IERC20 } from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport { BaseXVSProxyOFT } from \"./BaseXVSProxyOFT.sol\";\n\n/**\n * @title XVSProxyOFTSrc\n * @author Venus\n * @notice XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions,\n * focusing on the source side of these transactions.\n * It monitors the total amount transferred to other chains, ensuring it complies with defined limits,\n * and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain.\n */\n\ncontract XVSProxyOFTSrc is BaseXVSProxyOFT {\n    using SafeERC20 for IERC20;\n    /**\n     * @notice Total amount that is transferred from this chain to other chains.\n     */\n    uint256 public outboundAmount;\n\n    /**\n     * @notice Emits when locked token released manually by owner.\n     */\n    event FallbackWithdraw(address indexed to, uint256 amount);\n    /**\n     * @notice Emits when stored message dropped without successful retrying.\n     */\n    event DropFailedMessage(uint16 srcChainId, bytes indexed srcAddress, uint64 nonce);\n    /**\n     * @notice Event emitted when tokens are forcefully locked.\n     */\n    event FallbackDeposit(address indexed from, uint256 amount_);\n\n    constructor(\n        address tokenAddress_,\n        uint8 sharedDecimals_,\n        address lzEndpoint_,\n        address oracle_\n    ) BaseXVSProxyOFT(tokenAddress_, sharedDecimals_, lzEndpoint_, oracle_) {}\n\n    /**\n     * @notice Only call it when there is no way to recover the failed message.\n     * `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending.\n     * @param to_ The address to withdraw to\n     * @param amount_ The amount of withdrawal\n     * @custom:access Only owner.\n     * @custom:event Emits FallbackWithdraw, once done with transfer.\n     */\n    function fallbackWithdraw(address to_, uint256 amount_) external onlyOwner {\n        require(outboundAmount >= amount_, \"Withdraw amount should be less than outbound amount\");\n        unchecked {\n            outboundAmount -= amount_;\n        }\n        _transferFrom(address(this), to_, amount_);\n        emit FallbackWithdraw(to_, amount_);\n    }\n\n    /**\n     * @notice Forces the lock of tokens by increasing outbound amount and transferring tokens from the sender to the contract.\n     * @param amount_ The amount of tokens to lock.\n     * @param depositor_ Address of the depositor.\n     * @custom:access Only owner.\n     * @custom:event Emits FallbackDeposit, once done with transfer.\n     */\n    function fallbackDeposit(address depositor_, uint256 amount_) external onlyOwner {\n        (uint256 actualAmount, ) = _removeDust(amount_);\n\n        outboundAmount += actualAmount;\n        uint256 cap = _sd2ld(type(uint64).max);\n        require(cap >= outboundAmount, \"ProxyOFT: outboundAmount overflow\");\n\n        _transferFrom(depositor_, address(this), actualAmount);\n\n        emit FallbackDeposit(depositor_, actualAmount);\n    }\n\n    /**\n     * @notice Clear failed messages from the storage.\n     * @param srcChainId_ Chain id of source\n     * @param srcAddress_ Address of source followed by current bridge address\n     * @param nonce_ Nonce_ of the transaction\n     * @custom:access Only owner.\n     * @custom:event Emits DropFailedMessage on clearance of failed message.\n     */\n    function dropFailedMessage(uint16 srcChainId_, bytes memory srcAddress_, uint64 nonce_) external onlyOwner {\n        failedMessages[srcChainId_][srcAddress_][nonce_] = bytes32(0);\n        emit DropFailedMessage(srcChainId_, srcAddress_, nonce_);\n    }\n\n    /**\n     * @notice Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract).\n     * @return Returns difference in total supply and the outbound amount.\n     */\n    function circulatingSupply() public view override returns (uint256) {\n        return innerToken.totalSupply() - outboundAmount;\n    }\n\n    /**\n     * @notice Debit tokens from the given address\n     * @param from_  Address from which tokens to be debited\n     * @param dstChainId_ Destination chain id\n     * @param amount_ Amount of tokens to be debited\n     * @return Actual amount debited\n     */\n    function _debitFrom(\n        address from_,\n        uint16 dstChainId_,\n        bytes32,\n        uint256 amount_\n    ) internal override whenNotPaused returns (uint256) {\n        require(from_ == _msgSender(), \"ProxyOFT: owner is not send caller\");\n        _isEligibleToSend(from_, dstChainId_, amount_);\n\n        uint256 amount = _transferFrom(from_, address(this), amount_);\n\n        outboundAmount += amount;\n        uint256 cap = _sd2ld(type(uint64).max);\n        require(cap >= outboundAmount, \"ProxyOFT: outboundAmount overflow\");\n\n        return amount;\n    }\n\n    /**\n     * @notice Credit tokens in the given account\n     * @param srcChainId_  Source chain id\n     * @param toAddress_ Address on which token will be credited\n     * @param amount_ Amount of tokens to be credited\n     * @return Actual amount credited\n     */\n    function _creditTo(\n        uint16 srcChainId_,\n        address toAddress_,\n        uint256 amount_\n    ) internal override whenNotPaused returns (uint256) {\n        _isEligibleToReceive(toAddress_, srcChainId_, amount_);\n        outboundAmount -= amount_;\n        // tokens are already in this contract, so no need to transfer\n        if (toAddress_ == address(this)) {\n            return amount_;\n        }\n\n        return _transferFrom(address(this), toAddress_, amount_);\n    }\n}\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol';\n"},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport 'hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol';\n"},"contracts/test/MockToken.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport { LZEndpointMock } from \"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\";\nimport { AccessControlManager } from \"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol\";\n\ncontract MockToken is ERC20 {\n    uint8 private immutable _decimals;\n\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) {\n        _decimals = decimals_;\n    }\n\n    function faucet(uint256 amount) external {\n        _mint(msg.sender, amount);\n    }\n\n    function decimals() public view virtual override returns (uint8) {\n        return _decimals;\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor (address initialOwner) {\n        _transferOwnership(initialOwner);\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n        _;\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n    /**\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n     * address.\n     *\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n     * function revert if invoked through a proxy.\n     */\n    function proxiableUUID() external view returns (bytes32);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {BeaconProxy} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.implementation\")) - 1));\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n    // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Perform implementation upgrade\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeTo(address newImplementation) internal {\n        _setImplementation(newImplementation);\n        emit Upgraded(newImplementation);\n    }\n\n    /**\n     * @dev Perform implementation upgrade with additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCall(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _upgradeTo(newImplementation);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(newImplementation, data);\n        }\n    }\n\n    /**\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n     *\n     * Emits an {Upgraded} event.\n     */\n    function _upgradeToAndCallUUPS(\n        address newImplementation,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n            _setImplementation(newImplementation);\n        } else {\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n                require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n            } catch {\n                revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n            }\n            _upgradeToAndCall(newImplementation, data, forceCall);\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n     * validated in the constructor.\n     */\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _getAdmin() internal view virtual returns (address) {\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the EIP1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     */\n    function _changeAdmin(address newAdmin) internal {\n        emit AdminChanged(_getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n     */\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Emitted when the beacon is upgraded.\n     */\n    event BeaconUpgraded(address indexed beacon);\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function _getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \"ERC1967: beacon implementation is not a contract\");\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }\n\n    /**\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n     *\n     * Emits a {BeaconUpgraded} event.\n     */\n    function _upgradeBeaconToAndCall(\n        address newBeacon,\n        bytes memory data,\n        bool forceCall\n    ) internal {\n        _setBeacon(newBeacon);\n        emit BeaconUpgraded(newBeacon);\n        if (data.length > 0 || forceCall) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n     * and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internall call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _beforeFallback();\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n     * is empty.\n     */\n    receive() external payable virtual {\n        _fallback();\n    }\n\n    /**\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n     * call, or as part of the Solidity `fallback` or `receive` functions.\n     *\n     * If overriden should call `super._beforeFallback()`.\n     */\n    function _beforeFallback() internal virtual {}\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./TransparentUpgradeableProxy.sol\";\nimport \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n\n    constructor (address initialOwner) Ownable(initialOwner) {}\n\n    /**\n     * @dev Returns the current implementation of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"implementation()\")) == 0x5c60da1b\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"5c60da1b\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Returns the current admin of `proxy`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\n        // We need to manually run the static call since the getter cannot be flagged as view\n        // bytes4(keccak256(\"admin()\")) == 0xf851a440\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\"f851a440\");\n        require(success);\n        return abi.decode(returndata, (address));\n    }\n\n    /**\n     * @dev Changes the admin of `proxy` to `newAdmin`.\n     *\n     * Requirements:\n     *\n     * - This contract must be the current admin of `proxy`.\n     */\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\n        proxy.changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\n        proxy.upgradeTo(implementation);\n    }\n\n    /**\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     */\n    function upgradeAndCall(\n        TransparentUpgradeableProxy proxy,\n        address implementation,\n        bytes memory data\n    ) public payable virtual onlyOwner {\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _changeAdmin(admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {AdminChanged} event.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\n     */\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\n        _changeAdmin(newAdmin);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCall(target, data, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        require(isContract(target), \"Address: call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        require(isContract(target), \"Address: static call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(isContract(target), \"Address: delegate call to non-contract\");\n\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResult(success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            // Look for revert reason and bubble it up if present\n            if (returndata.length > 0) {\n                // The easiest way to bubble the revert reason is using memory via assembly\n\n                assembly {\n                    let returndata_size := mload(returndata)\n                    revert(add(32, returndata), returndata_size)\n                }\n            } else {\n                revert(errorMessage);\n            }\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        assembly {\n            r.slot := slot\n        }\n    }\n}\n"},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\";\n\n/**\n * @dev This contract implements a proxy that is upgradeable by an admin.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches one of the admin functions exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n * \"admin cannot fallback to proxy target\".\n *\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n * to sudden errors when trying to call a function from the proxy implementation.\n *\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\n */\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\n    address internal immutable _ADMIN;\n\n    /**\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\n     */\n    constructor(\n        address _logic,\n        address admin_,\n        bytes memory _data\n    ) payable ERC1967Proxy(_logic, _data) {\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1));\n        _ADMIN = admin_;\n\n        // still store it to work with EIP-1967\n        bytes32 slot = _ADMIN_SLOT;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            sstore(slot, admin_)\n        }\n        emit AdminChanged(address(0), admin_);\n    }\n\n    /**\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\n     */\n    modifier ifAdmin() {\n        if (msg.sender == _getAdmin()) {\n            _;\n        } else {\n            _fallback();\n        }\n    }\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function admin() external ifAdmin returns (address admin_) {\n        admin_ = _getAdmin();\n    }\n\n    /**\n     * @dev Returns the current implementation.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function implementation() external ifAdmin returns (address implementation_) {\n        implementation_ = _implementation();\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\n     */\n    function upgradeTo(address newImplementation) external ifAdmin {\n        _upgradeToAndCall(newImplementation, bytes(\"\"), false);\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n     * proxied contract.\n     *\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\n     */\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\n        _upgradeToAndCall(newImplementation, data, true);\n    }\n\n    /**\n     * @dev Returns the current admin.\n     */\n    function _admin() internal view virtual returns (address) {\n        return _getAdmin();\n    }\n\n    /**\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\n     */\n    function _beforeFallback() internal virtual override {\n        require(msg.sender != _getAdmin(), \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\");\n        super._beforeFallback();\n    }\n\n    function _getAdmin() internal view virtual override returns (address) {\n        return _ADMIN;\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200,"details":{"yul":false}},"evmVersion":"paris","outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> contracts/Bridge/token/TokenController.sol:214:47:\n    |\n214 |     function _isEligibleToMint(address from_, address to_, uint256 amount_) internal {\n    |                                               ^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":8560,"file":"contracts/Bridge/token/TokenController.sol","start":8549},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n  --> contracts/Bridge/token/XVS.sol:55:63:\n   |\n55 |     function _beforeTokenTransfer(address from_, address to_, uint256 amount_) internal override whenNotPaused {\n   |                                                               ^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":2524,"file":"contracts/Bridge/token/XVS.sol","start":2509},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n  --> contracts/Bridge/token/XVS.sol:55:5:\n   |\n55 |     function _beforeTokenTransfer(address from_, address to_, uint256 amount_) internal override whenNotPaused {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":2739,"file":"contracts/Bridge/token/XVS.sol","start":2451},"type":"Warning"}],"sources":{"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","exportedSymbols":{"BytesLib":[332]},"id":333,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.8",".0","<","0.9",".0"],"nodeType":"PragmaDirective","src":"336:31:0"},{"abstract":false,"baseContracts":[],"canonicalName":"BytesLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":332,"linearizedBaseContracts":[332],"name":"BytesLib","nameLocation":"377:8:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":16,"nodeType":"Block","src":"494:2865:0","statements":[{"assignments":[11],"declarations":[{"constant":false,"id":11,"mutability":"mutable","name":"tempBytes","nameLocation":"517:9:0","nodeType":"VariableDeclaration","scope":16,"src":"504:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10,"name":"bytes","nodeType":"ElementaryTypeName","src":"504:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12,"nodeType":"VariableDeclarationStatement","src":"504:22:0"},{"AST":{"nativeSrc":"546:2780:0","nodeType":"YulBlock","src":"546:2780:0","statements":[{"nativeSrc":"690:24:0","nodeType":"YulAssignment","src":"690:24:0","value":{"arguments":[{"kind":"number","nativeSrc":"709:4:0","nodeType":"YulLiteral","src":"709:4:0","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"703:5:0","nodeType":"YulIdentifier","src":"703:5:0"},"nativeSrc":"703:11:0","nodeType":"YulFunctionCall","src":"703:11:0"},"variableNames":[{"name":"tempBytes","nativeSrc":"690:9:0","nodeType":"YulIdentifier","src":"690:9:0"}]},{"nativeSrc":"846:30:0","nodeType":"YulVariableDeclaration","src":"846:30:0","value":{"arguments":[{"name":"_preBytes","nativeSrc":"866:9:0","nodeType":"YulIdentifier","src":"866:9:0"}],"functionName":{"name":"mload","nativeSrc":"860:5:0","nodeType":"YulIdentifier","src":"860:5:0"},"nativeSrc":"860:16:0","nodeType":"YulFunctionCall","src":"860:16:0"},"variables":[{"name":"length","nativeSrc":"850:6:0","nodeType":"YulTypedName","src":"850:6:0","type":""}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"896:9:0","nodeType":"YulIdentifier","src":"896:9:0"},{"name":"length","nativeSrc":"907:6:0","nodeType":"YulIdentifier","src":"907:6:0"}],"functionName":{"name":"mstore","nativeSrc":"889:6:0","nodeType":"YulIdentifier","src":"889:6:0"},"nativeSrc":"889:25:0","nodeType":"YulFunctionCall","src":"889:25:0"},"nativeSrc":"889:25:0","nodeType":"YulExpressionStatement","src":"889:25:0"},{"nativeSrc":"1124:30:0","nodeType":"YulVariableDeclaration","src":"1124:30:0","value":{"arguments":[{"name":"tempBytes","nativeSrc":"1138:9:0","nodeType":"YulIdentifier","src":"1138:9:0"},{"kind":"number","nativeSrc":"1149:4:0","nodeType":"YulLiteral","src":"1149:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1134:3:0","nodeType":"YulIdentifier","src":"1134:3:0"},"nativeSrc":"1134:20:0","nodeType":"YulFunctionCall","src":"1134:20:0"},"variables":[{"name":"mc","nativeSrc":"1128:2:0","nodeType":"YulTypedName","src":"1128:2:0","type":""}]},{"nativeSrc":"1279:26:0","nodeType":"YulVariableDeclaration","src":"1279:26:0","value":{"arguments":[{"name":"mc","nativeSrc":"1294:2:0","nodeType":"YulIdentifier","src":"1294:2:0"},{"name":"length","nativeSrc":"1298:6:0","nodeType":"YulIdentifier","src":"1298:6:0"}],"functionName":{"name":"add","nativeSrc":"1290:3:0","nodeType":"YulIdentifier","src":"1290:3:0"},"nativeSrc":"1290:15:0","nodeType":"YulFunctionCall","src":"1290:15:0"},"variables":[{"name":"end","nativeSrc":"1283:3:0","nodeType":"YulTypedName","src":"1283:3:0","type":""}]},{"body":{"nativeSrc":"1682:162:0","nodeType":"YulBlock","src":"1682:162:0","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"1816:2:0","nodeType":"YulIdentifier","src":"1816:2:0"},{"arguments":[{"name":"cc","nativeSrc":"1826:2:0","nodeType":"YulIdentifier","src":"1826:2:0"}],"functionName":{"name":"mload","nativeSrc":"1820:5:0","nodeType":"YulIdentifier","src":"1820:5:0"},"nativeSrc":"1820:9:0","nodeType":"YulFunctionCall","src":"1820:9:0"}],"functionName":{"name":"mstore","nativeSrc":"1809:6:0","nodeType":"YulIdentifier","src":"1809:6:0"},"nativeSrc":"1809:21:0","nodeType":"YulFunctionCall","src":"1809:21:0"},"nativeSrc":"1809:21:0","nodeType":"YulExpressionStatement","src":"1809:21:0"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"1515:2:0","nodeType":"YulIdentifier","src":"1515:2:0"},{"name":"end","nativeSrc":"1519:3:0","nodeType":"YulIdentifier","src":"1519:3:0"}],"functionName":{"name":"lt","nativeSrc":"1512:2:0","nodeType":"YulIdentifier","src":"1512:2:0"},"nativeSrc":"1512:11:0","nodeType":"YulFunctionCall","src":"1512:11:0"},"nativeSrc":"1319:525:0","nodeType":"YulForLoop","post":{"nativeSrc":"1524:157:0","nodeType":"YulBlock","src":"1524:157:0","statements":[{"nativeSrc":"1612:19:0","nodeType":"YulAssignment","src":"1612:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"1622:2:0","nodeType":"YulIdentifier","src":"1622:2:0"},{"kind":"number","nativeSrc":"1626:4:0","nodeType":"YulLiteral","src":"1626:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1618:3:0","nodeType":"YulIdentifier","src":"1618:3:0"},"nativeSrc":"1618:13:0","nodeType":"YulFunctionCall","src":"1618:13:0"},"variableNames":[{"name":"mc","nativeSrc":"1612:2:0","nodeType":"YulIdentifier","src":"1612:2:0"}]},{"nativeSrc":"1648:19:0","nodeType":"YulAssignment","src":"1648:19:0","value":{"arguments":[{"name":"cc","nativeSrc":"1658:2:0","nodeType":"YulIdentifier","src":"1658:2:0"},{"kind":"number","nativeSrc":"1662:4:0","nodeType":"YulLiteral","src":"1662:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1654:3:0","nodeType":"YulIdentifier","src":"1654:3:0"},"nativeSrc":"1654:13:0","nodeType":"YulFunctionCall","src":"1654:13:0"},"variableNames":[{"name":"cc","nativeSrc":"1648:2:0","nodeType":"YulIdentifier","src":"1648:2:0"}]}]},"pre":{"nativeSrc":"1323:188:0","nodeType":"YulBlock","src":"1323:188:0","statements":[{"nativeSrc":"1467:30:0","nodeType":"YulVariableDeclaration","src":"1467:30:0","value":{"arguments":[{"name":"_preBytes","nativeSrc":"1481:9:0","nodeType":"YulIdentifier","src":"1481:9:0"},{"kind":"number","nativeSrc":"1492:4:0","nodeType":"YulLiteral","src":"1492:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1477:3:0","nodeType":"YulIdentifier","src":"1477:3:0"},"nativeSrc":"1477:20:0","nodeType":"YulFunctionCall","src":"1477:20:0"},"variables":[{"name":"cc","nativeSrc":"1471:2:0","nodeType":"YulTypedName","src":"1471:2:0","type":""}]}]},"src":"1319:525:0"},{"nativeSrc":"2045:27:0","nodeType":"YulAssignment","src":"2045:27:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2061:10:0","nodeType":"YulIdentifier","src":"2061:10:0"}],"functionName":{"name":"mload","nativeSrc":"2055:5:0","nodeType":"YulIdentifier","src":"2055:5:0"},"nativeSrc":"2055:17:0","nodeType":"YulFunctionCall","src":"2055:17:0"},"variableNames":[{"name":"length","nativeSrc":"2045:6:0","nodeType":"YulIdentifier","src":"2045:6:0"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"2092:9:0","nodeType":"YulIdentifier","src":"2092:9:0"},{"arguments":[{"name":"length","nativeSrc":"2107:6:0","nodeType":"YulIdentifier","src":"2107:6:0"},{"arguments":[{"name":"tempBytes","nativeSrc":"2121:9:0","nodeType":"YulIdentifier","src":"2121:9:0"}],"functionName":{"name":"mload","nativeSrc":"2115:5:0","nodeType":"YulIdentifier","src":"2115:5:0"},"nativeSrc":"2115:16:0","nodeType":"YulFunctionCall","src":"2115:16:0"}],"functionName":{"name":"add","nativeSrc":"2103:3:0","nodeType":"YulIdentifier","src":"2103:3:0"},"nativeSrc":"2103:29:0","nodeType":"YulFunctionCall","src":"2103:29:0"}],"functionName":{"name":"mstore","nativeSrc":"2085:6:0","nodeType":"YulIdentifier","src":"2085:6:0"},"nativeSrc":"2085:48:0","nodeType":"YulFunctionCall","src":"2085:48:0"},"nativeSrc":"2085:48:0","nodeType":"YulExpressionStatement","src":"2085:48:0"},{"nativeSrc":"2271:9:0","nodeType":"YulAssignment","src":"2271:9:0","value":{"name":"end","nativeSrc":"2277:3:0","nodeType":"YulIdentifier","src":"2277:3:0"},"variableNames":[{"name":"mc","nativeSrc":"2271:2:0","nodeType":"YulIdentifier","src":"2271:2:0"}]},{"nativeSrc":"2407:22:0","nodeType":"YulAssignment","src":"2407:22:0","value":{"arguments":[{"name":"mc","nativeSrc":"2418:2:0","nodeType":"YulIdentifier","src":"2418:2:0"},{"name":"length","nativeSrc":"2422:6:0","nodeType":"YulIdentifier","src":"2422:6:0"}],"functionName":{"name":"add","nativeSrc":"2414:3:0","nodeType":"YulIdentifier","src":"2414:3:0"},"nativeSrc":"2414:15:0","nodeType":"YulFunctionCall","src":"2414:15:0"},"variableNames":[{"name":"end","nativeSrc":"2407:3:0","nodeType":"YulIdentifier","src":"2407:3:0"}]},{"body":{"nativeSrc":"2611:53:0","nodeType":"YulBlock","src":"2611:53:0","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"2636:2:0","nodeType":"YulIdentifier","src":"2636:2:0"},{"arguments":[{"name":"cc","nativeSrc":"2646:2:0","nodeType":"YulIdentifier","src":"2646:2:0"}],"functionName":{"name":"mload","nativeSrc":"2640:5:0","nodeType":"YulIdentifier","src":"2640:5:0"},"nativeSrc":"2640:9:0","nodeType":"YulFunctionCall","src":"2640:9:0"}],"functionName":{"name":"mstore","nativeSrc":"2629:6:0","nodeType":"YulIdentifier","src":"2629:6:0"},"nativeSrc":"2629:21:0","nodeType":"YulFunctionCall","src":"2629:21:0"},"nativeSrc":"2629:21:0","nodeType":"YulExpressionStatement","src":"2629:21:0"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"2514:2:0","nodeType":"YulIdentifier","src":"2514:2:0"},{"name":"end","nativeSrc":"2518:3:0","nodeType":"YulIdentifier","src":"2518:3:0"}],"functionName":{"name":"lt","nativeSrc":"2511:2:0","nodeType":"YulIdentifier","src":"2511:2:0"},"nativeSrc":"2511:11:0","nodeType":"YulFunctionCall","src":"2511:11:0"},"nativeSrc":"2443:221:0","nodeType":"YulForLoop","post":{"nativeSrc":"2523:87:0","nodeType":"YulBlock","src":"2523:87:0","statements":[{"nativeSrc":"2541:19:0","nodeType":"YulAssignment","src":"2541:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"2551:2:0","nodeType":"YulIdentifier","src":"2551:2:0"},{"kind":"number","nativeSrc":"2555:4:0","nodeType":"YulLiteral","src":"2555:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2547:3:0","nodeType":"YulIdentifier","src":"2547:3:0"},"nativeSrc":"2547:13:0","nodeType":"YulFunctionCall","src":"2547:13:0"},"variableNames":[{"name":"mc","nativeSrc":"2541:2:0","nodeType":"YulIdentifier","src":"2541:2:0"}]},{"nativeSrc":"2577:19:0","nodeType":"YulAssignment","src":"2577:19:0","value":{"arguments":[{"name":"cc","nativeSrc":"2587:2:0","nodeType":"YulIdentifier","src":"2587:2:0"},{"kind":"number","nativeSrc":"2591:4:0","nodeType":"YulLiteral","src":"2591:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2583:3:0","nodeType":"YulIdentifier","src":"2583:3:0"},"nativeSrc":"2583:13:0","nodeType":"YulFunctionCall","src":"2583:13:0"},"variableNames":[{"name":"cc","nativeSrc":"2577:2:0","nodeType":"YulIdentifier","src":"2577:2:0"}]}]},"pre":{"nativeSrc":"2447:63:0","nodeType":"YulBlock","src":"2447:63:0","statements":[{"nativeSrc":"2465:31:0","nodeType":"YulVariableDeclaration","src":"2465:31:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"2479:10:0","nodeType":"YulIdentifier","src":"2479:10:0"},{"kind":"number","nativeSrc":"2491:4:0","nodeType":"YulLiteral","src":"2491:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2475:3:0","nodeType":"YulIdentifier","src":"2475:3:0"},"nativeSrc":"2475:21:0","nodeType":"YulFunctionCall","src":"2475:21:0"},"variables":[{"name":"cc","nativeSrc":"2469:2:0","nodeType":"YulTypedName","src":"2469:2:0","type":""}]}]},"src":"2443:221:0"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3113:4:0","nodeType":"YulLiteral","src":"3113:4:0","type":"","value":"0x40"},{"arguments":[{"arguments":[{"arguments":[{"name":"end","nativeSrc":"3168:3:0","nodeType":"YulIdentifier","src":"3168:3:0"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3184:6:0","nodeType":"YulIdentifier","src":"3184:6:0"},{"arguments":[{"name":"_preBytes","nativeSrc":"3198:9:0","nodeType":"YulIdentifier","src":"3198:9:0"}],"functionName":{"name":"mload","nativeSrc":"3192:5:0","nodeType":"YulIdentifier","src":"3192:5:0"},"nativeSrc":"3192:16:0","nodeType":"YulFunctionCall","src":"3192:16:0"}],"functionName":{"name":"add","nativeSrc":"3180:3:0","nodeType":"YulIdentifier","src":"3180:3:0"},"nativeSrc":"3180:29:0","nodeType":"YulFunctionCall","src":"3180:29:0"}],"functionName":{"name":"iszero","nativeSrc":"3173:6:0","nodeType":"YulIdentifier","src":"3173:6:0"},"nativeSrc":"3173:37:0","nodeType":"YulFunctionCall","src":"3173:37:0"}],"functionName":{"name":"add","nativeSrc":"3164:3:0","nodeType":"YulIdentifier","src":"3164:3:0"},"nativeSrc":"3164:47:0","nodeType":"YulFunctionCall","src":"3164:47:0"},{"kind":"number","nativeSrc":"3213:2:0","nodeType":"YulLiteral","src":"3213:2:0","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3160:3:0","nodeType":"YulIdentifier","src":"3160:3:0"},"nativeSrc":"3160:56:0","nodeType":"YulFunctionCall","src":"3160:56:0"},{"arguments":[{"kind":"number","nativeSrc":"3242:2:0","nodeType":"YulLiteral","src":"3242:2:0","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3238:3:0","nodeType":"YulIdentifier","src":"3238:3:0"},"nativeSrc":"3238:7:0","nodeType":"YulFunctionCall","src":"3238:7:0"}],"functionName":{"name":"and","nativeSrc":"3135:3:0","nodeType":"YulIdentifier","src":"3135:3:0"},"nativeSrc":"3135:167:0","nodeType":"YulFunctionCall","src":"3135:167:0"}],"functionName":{"name":"mstore","nativeSrc":"3089:6:0","nodeType":"YulIdentifier","src":"3089:6:0"},"nativeSrc":"3089:227:0","nodeType":"YulFunctionCall","src":"3089:227:0"},"nativeSrc":"3089:227:0","nodeType":"YulExpressionStatement","src":"3089:227:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":5,"isOffset":false,"isSlot":false,"src":"2061:10:0","valueSize":1},{"declaration":5,"isOffset":false,"isSlot":false,"src":"2479:10:0","valueSize":1},{"declaration":3,"isOffset":false,"isSlot":false,"src":"1481:9:0","valueSize":1},{"declaration":3,"isOffset":false,"isSlot":false,"src":"3198:9:0","valueSize":1},{"declaration":3,"isOffset":false,"isSlot":false,"src":"866:9:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"1138:9:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"2092:9:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"2121:9:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"690:9:0","valueSize":1},{"declaration":11,"isOffset":false,"isSlot":false,"src":"896:9:0","valueSize":1}],"id":13,"nodeType":"InlineAssembly","src":"537:2789:0"},{"expression":{"id":14,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"3343:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9,"id":15,"nodeType":"Return","src":"3336:16:0"}]},"id":17,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"401:6:0","nodeType":"FunctionDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"mutability":"mutable","name":"_preBytes","nameLocation":"421:9:0","nodeType":"VariableDeclaration","scope":17,"src":"408:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2,"name":"bytes","nodeType":"ElementaryTypeName","src":"408:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"_postBytes","nameLocation":"445:10:0","nodeType":"VariableDeclaration","scope":17,"src":"432:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4,"name":"bytes","nodeType":"ElementaryTypeName","src":"432:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"407:49:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17,"src":"480:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7,"name":"bytes","nodeType":"ElementaryTypeName","src":"480:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"479:14:0"},"scope":332,"src":"392:2967:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":25,"nodeType":"Block","src":"3447:5805:0","statements":[{"AST":{"nativeSrc":"3466:5780:0","nodeType":"YulBlock","src":"3466:5780:0","statements":[{"nativeSrc":"3689:34:0","nodeType":"YulVariableDeclaration","src":"3689:34:0","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"3708:14:0","nodeType":"YulIdentifier","src":"3708:14:0"}],"functionName":{"name":"sload","nativeSrc":"3702:5:0","nodeType":"YulIdentifier","src":"3702:5:0"},"nativeSrc":"3702:21:0","nodeType":"YulFunctionCall","src":"3702:21:0"},"variables":[{"name":"fslot","nativeSrc":"3693:5:0","nodeType":"YulTypedName","src":"3693:5:0","type":""}]},{"nativeSrc":"4216:76:0","nodeType":"YulVariableDeclaration","src":"4216:76:0","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4239:5:0","nodeType":"YulIdentifier","src":"4239:5:0"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4254:5:0","nodeType":"YulLiteral","src":"4254:5:0","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"4272:5:0","nodeType":"YulIdentifier","src":"4272:5:0"},{"kind":"number","nativeSrc":"4279:1:0","nodeType":"YulLiteral","src":"4279:1:0","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4268:3:0","nodeType":"YulIdentifier","src":"4268:3:0"},"nativeSrc":"4268:13:0","nodeType":"YulFunctionCall","src":"4268:13:0"}],"functionName":{"name":"iszero","nativeSrc":"4261:6:0","nodeType":"YulIdentifier","src":"4261:6:0"},"nativeSrc":"4261:21:0","nodeType":"YulFunctionCall","src":"4261:21:0"}],"functionName":{"name":"mul","nativeSrc":"4250:3:0","nodeType":"YulIdentifier","src":"4250:3:0"},"nativeSrc":"4250:33:0","nodeType":"YulFunctionCall","src":"4250:33:0"},{"kind":"number","nativeSrc":"4285:1:0","nodeType":"YulLiteral","src":"4285:1:0","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4246:3:0","nodeType":"YulIdentifier","src":"4246:3:0"},"nativeSrc":"4246:41:0","nodeType":"YulFunctionCall","src":"4246:41:0"}],"functionName":{"name":"and","nativeSrc":"4235:3:0","nodeType":"YulIdentifier","src":"4235:3:0"},"nativeSrc":"4235:53:0","nodeType":"YulFunctionCall","src":"4235:53:0"},{"kind":"number","nativeSrc":"4290:1:0","nodeType":"YulLiteral","src":"4290:1:0","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4231:3:0","nodeType":"YulIdentifier","src":"4231:3:0"},"nativeSrc":"4231:61:0","nodeType":"YulFunctionCall","src":"4231:61:0"},"variables":[{"name":"slength","nativeSrc":"4220:7:0","nodeType":"YulTypedName","src":"4220:7:0","type":""}]},{"nativeSrc":"4305:32:0","nodeType":"YulVariableDeclaration","src":"4305:32:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"4326:10:0","nodeType":"YulIdentifier","src":"4326:10:0"}],"functionName":{"name":"mload","nativeSrc":"4320:5:0","nodeType":"YulIdentifier","src":"4320:5:0"},"nativeSrc":"4320:17:0","nodeType":"YulFunctionCall","src":"4320:17:0"},"variables":[{"name":"mlength","nativeSrc":"4309:7:0","nodeType":"YulTypedName","src":"4309:7:0","type":""}]},{"nativeSrc":"4350:38:0","nodeType":"YulVariableDeclaration","src":"4350:38:0","value":{"arguments":[{"name":"slength","nativeSrc":"4371:7:0","nodeType":"YulIdentifier","src":"4371:7:0"},{"name":"mlength","nativeSrc":"4380:7:0","nodeType":"YulIdentifier","src":"4380:7:0"}],"functionName":{"name":"add","nativeSrc":"4367:3:0","nodeType":"YulIdentifier","src":"4367:3:0"},"nativeSrc":"4367:21:0","nodeType":"YulFunctionCall","src":"4367:21:0"},"variables":[{"name":"newlength","nativeSrc":"4354:9:0","nodeType":"YulTypedName","src":"4354:9:0","type":""}]},{"cases":[{"body":{"nativeSrc":"4721:1485:0","nodeType":"YulBlock","src":"4721:1485:0","statements":[{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"5002:14:0","nodeType":"YulIdentifier","src":"5002:14:0"},{"arguments":[{"name":"fslot","nativeSrc":"5314:5:0","nodeType":"YulIdentifier","src":"5314:5:0"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"5532:10:0","nodeType":"YulIdentifier","src":"5532:10:0"},{"kind":"number","nativeSrc":"5544:4:0","nodeType":"YulLiteral","src":"5544:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5528:3:0","nodeType":"YulIdentifier","src":"5528:3:0"},"nativeSrc":"5528:21:0","nodeType":"YulFunctionCall","src":"5528:21:0"}],"functionName":{"name":"mload","nativeSrc":"5522:5:0","nodeType":"YulIdentifier","src":"5522:5:0"},"nativeSrc":"5522:28:0","nodeType":"YulFunctionCall","src":"5522:28:0"},{"arguments":[{"kind":"number","nativeSrc":"5659:5:0","nodeType":"YulLiteral","src":"5659:5:0","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5670:2:0","nodeType":"YulLiteral","src":"5670:2:0","type":"","value":"32"},{"name":"mlength","nativeSrc":"5674:7:0","nodeType":"YulIdentifier","src":"5674:7:0"}],"functionName":{"name":"sub","nativeSrc":"5666:3:0","nodeType":"YulIdentifier","src":"5666:3:0"},"nativeSrc":"5666:16:0","nodeType":"YulFunctionCall","src":"5666:16:0"}],"functionName":{"name":"exp","nativeSrc":"5655:3:0","nodeType":"YulIdentifier","src":"5655:3:0"},"nativeSrc":"5655:28:0","nodeType":"YulFunctionCall","src":"5655:28:0"}],"functionName":{"name":"div","nativeSrc":"5415:3:0","nodeType":"YulIdentifier","src":"5415:3:0"},"nativeSrc":"5415:302:0","nodeType":"YulFunctionCall","src":"5415:302:0"},{"arguments":[{"kind":"number","nativeSrc":"5906:5:0","nodeType":"YulLiteral","src":"5906:5:0","type":"","value":"0x100"},{"arguments":[{"kind":"number","nativeSrc":"5917:2:0","nodeType":"YulLiteral","src":"5917:2:0","type":"","value":"32"},{"name":"newlength","nativeSrc":"5921:9:0","nodeType":"YulIdentifier","src":"5921:9:0"}],"functionName":{"name":"sub","nativeSrc":"5913:3:0","nodeType":"YulIdentifier","src":"5913:3:0"},"nativeSrc":"5913:18:0","nodeType":"YulFunctionCall","src":"5913:18:0"}],"functionName":{"name":"exp","nativeSrc":"5902:3:0","nodeType":"YulIdentifier","src":"5902:3:0"},"nativeSrc":"5902:30:0","nodeType":"YulFunctionCall","src":"5902:30:0"}],"functionName":{"name":"mul","nativeSrc":"5378:3:0","nodeType":"YulIdentifier","src":"5378:3:0"},"nativeSrc":"5378:584:0","nodeType":"YulFunctionCall","src":"5378:584:0"},{"arguments":[{"name":"mlength","nativeSrc":"6115:7:0","nodeType":"YulIdentifier","src":"6115:7:0"},{"kind":"number","nativeSrc":"6124:1:0","nodeType":"YulLiteral","src":"6124:1:0","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6111:3:0","nodeType":"YulIdentifier","src":"6111:3:0"},"nativeSrc":"6111:15:0","nodeType":"YulFunctionCall","src":"6111:15:0"}],"functionName":{"name":"add","nativeSrc":"5345:3:0","nodeType":"YulIdentifier","src":"5345:3:0"},"nativeSrc":"5345:807:0","nodeType":"YulFunctionCall","src":"5345:807:0"}],"functionName":{"name":"add","nativeSrc":"5145:3:0","nodeType":"YulIdentifier","src":"5145:3:0"},"nativeSrc":"5145:1029:0","nodeType":"YulFunctionCall","src":"5145:1029:0"}],"functionName":{"name":"sstore","nativeSrc":"4974:6:0","nodeType":"YulIdentifier","src":"4974:6:0"},"nativeSrc":"4974:1218:0","nodeType":"YulFunctionCall","src":"4974:1218:0"},"nativeSrc":"4974:1218:0","nodeType":"YulExpressionStatement","src":"4974:1218:0"}]},"nativeSrc":"4714:1492:0","nodeType":"YulCase","src":"4714:1492:0","value":{"kind":"number","nativeSrc":"4719:1:0","nodeType":"YulLiteral","src":"4719:1:0","type":"","value":"2"}},{"body":{"nativeSrc":"6226:1725:0","nodeType":"YulBlock","src":"6226:1725:0","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6435:3:0","nodeType":"YulLiteral","src":"6435:3:0","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"6440:14:0","nodeType":"YulIdentifier","src":"6440:14:0"}],"functionName":{"name":"mstore","nativeSrc":"6428:6:0","nodeType":"YulIdentifier","src":"6428:6:0"},"nativeSrc":"6428:27:0","nodeType":"YulFunctionCall","src":"6428:27:0"},"nativeSrc":"6428:27:0","nodeType":"YulExpressionStatement","src":"6428:27:0"},{"nativeSrc":"6472:53:0","nodeType":"YulVariableDeclaration","src":"6472:53:0","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6496:3:0","nodeType":"YulLiteral","src":"6496:3:0","type":"","value":"0x0"},{"kind":"number","nativeSrc":"6501:4:0","nodeType":"YulLiteral","src":"6501:4:0","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6486:9:0","nodeType":"YulIdentifier","src":"6486:9:0"},"nativeSrc":"6486:20:0","nodeType":"YulFunctionCall","src":"6486:20:0"},{"arguments":[{"name":"slength","nativeSrc":"6512:7:0","nodeType":"YulIdentifier","src":"6512:7:0"},{"kind":"number","nativeSrc":"6521:2:0","nodeType":"YulLiteral","src":"6521:2:0","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"6508:3:0","nodeType":"YulIdentifier","src":"6508:3:0"},"nativeSrc":"6508:16:0","nodeType":"YulFunctionCall","src":"6508:16:0"}],"functionName":{"name":"add","nativeSrc":"6482:3:0","nodeType":"YulIdentifier","src":"6482:3:0"},"nativeSrc":"6482:43:0","nodeType":"YulFunctionCall","src":"6482:43:0"},"variables":[{"name":"sc","nativeSrc":"6476:2:0","nodeType":"YulTypedName","src":"6476:2:0","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"6585:14:0","nodeType":"YulIdentifier","src":"6585:14:0"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"6609:9:0","nodeType":"YulIdentifier","src":"6609:9:0"},{"kind":"number","nativeSrc":"6620:1:0","nodeType":"YulLiteral","src":"6620:1:0","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6605:3:0","nodeType":"YulIdentifier","src":"6605:3:0"},"nativeSrc":"6605:17:0","nodeType":"YulFunctionCall","src":"6605:17:0"},{"kind":"number","nativeSrc":"6624:1:0","nodeType":"YulLiteral","src":"6624:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6601:3:0","nodeType":"YulIdentifier","src":"6601:3:0"},"nativeSrc":"6601:25:0","nodeType":"YulFunctionCall","src":"6601:25:0"}],"functionName":{"name":"sstore","nativeSrc":"6578:6:0","nodeType":"YulIdentifier","src":"6578:6:0"},"nativeSrc":"6578:49:0","nodeType":"YulFunctionCall","src":"6578:49:0"},"nativeSrc":"6578:49:0","nodeType":"YulExpressionStatement","src":"6578:49:0"},{"nativeSrc":"7215:30:0","nodeType":"YulVariableDeclaration","src":"7215:30:0","value":{"arguments":[{"kind":"number","nativeSrc":"7233:2:0","nodeType":"YulLiteral","src":"7233:2:0","type":"","value":"32"},{"name":"slength","nativeSrc":"7237:7:0","nodeType":"YulIdentifier","src":"7237:7:0"}],"functionName":{"name":"sub","nativeSrc":"7229:3:0","nodeType":"YulIdentifier","src":"7229:3:0"},"nativeSrc":"7229:16:0","nodeType":"YulFunctionCall","src":"7229:16:0"},"variables":[{"name":"submod","nativeSrc":"7219:6:0","nodeType":"YulTypedName","src":"7219:6:0","type":""}]},{"nativeSrc":"7262:33:0","nodeType":"YulVariableDeclaration","src":"7262:33:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7276:10:0","nodeType":"YulIdentifier","src":"7276:10:0"},{"name":"submod","nativeSrc":"7288:6:0","nodeType":"YulIdentifier","src":"7288:6:0"}],"functionName":{"name":"add","nativeSrc":"7272:3:0","nodeType":"YulIdentifier","src":"7272:3:0"},"nativeSrc":"7272:23:0","nodeType":"YulFunctionCall","src":"7272:23:0"},"variables":[{"name":"mc","nativeSrc":"7266:2:0","nodeType":"YulTypedName","src":"7266:2:0","type":""}]},{"nativeSrc":"7312:35:0","nodeType":"YulVariableDeclaration","src":"7312:35:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"7327:10:0","nodeType":"YulIdentifier","src":"7327:10:0"},{"name":"mlength","nativeSrc":"7339:7:0","nodeType":"YulIdentifier","src":"7339:7:0"}],"functionName":{"name":"add","nativeSrc":"7323:3:0","nodeType":"YulIdentifier","src":"7323:3:0"},"nativeSrc":"7323:24:0","nodeType":"YulFunctionCall","src":"7323:24:0"},"variables":[{"name":"end","nativeSrc":"7316:3:0","nodeType":"YulTypedName","src":"7316:3:0","type":""}]},{"nativeSrc":"7364:38:0","nodeType":"YulVariableDeclaration","src":"7364:38:0","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7384:5:0","nodeType":"YulLiteral","src":"7384:5:0","type":"","value":"0x100"},{"name":"submod","nativeSrc":"7391:6:0","nodeType":"YulIdentifier","src":"7391:6:0"}],"functionName":{"name":"exp","nativeSrc":"7380:3:0","nodeType":"YulIdentifier","src":"7380:3:0"},"nativeSrc":"7380:18:0","nodeType":"YulFunctionCall","src":"7380:18:0"},{"kind":"number","nativeSrc":"7400:1:0","nodeType":"YulLiteral","src":"7400:1:0","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"7376:3:0","nodeType":"YulIdentifier","src":"7376:3:0"},"nativeSrc":"7376:26:0","nodeType":"YulFunctionCall","src":"7376:26:0"},"variables":[{"name":"mask","nativeSrc":"7368:4:0","nodeType":"YulTypedName","src":"7368:4:0","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7427:2:0","nodeType":"YulIdentifier","src":"7427:2:0"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"7439:5:0","nodeType":"YulIdentifier","src":"7439:5:0"},{"kind":"number","nativeSrc":"7446:66:0","nodeType":"YulLiteral","src":"7446:66:0","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nativeSrc":"7435:3:0","nodeType":"YulIdentifier","src":"7435:3:0"},"nativeSrc":"7435:78:0","nodeType":"YulFunctionCall","src":"7435:78:0"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7525:2:0","nodeType":"YulIdentifier","src":"7525:2:0"}],"functionName":{"name":"mload","nativeSrc":"7519:5:0","nodeType":"YulIdentifier","src":"7519:5:0"},"nativeSrc":"7519:9:0","nodeType":"YulFunctionCall","src":"7519:9:0"},{"name":"mask","nativeSrc":"7530:4:0","nodeType":"YulIdentifier","src":"7530:4:0"}],"functionName":{"name":"and","nativeSrc":"7515:3:0","nodeType":"YulIdentifier","src":"7515:3:0"},"nativeSrc":"7515:20:0","nodeType":"YulFunctionCall","src":"7515:20:0"}],"functionName":{"name":"add","nativeSrc":"7431:3:0","nodeType":"YulIdentifier","src":"7431:3:0"},"nativeSrc":"7431:105:0","nodeType":"YulFunctionCall","src":"7431:105:0"}],"functionName":{"name":"sstore","nativeSrc":"7420:6:0","nodeType":"YulIdentifier","src":"7420:6:0"},"nativeSrc":"7420:117:0","nodeType":"YulFunctionCall","src":"7420:117:0"},"nativeSrc":"7420:117:0","nodeType":"YulExpressionStatement","src":"7420:117:0"},{"body":{"nativeSrc":"7765:61:0","nodeType":"YulBlock","src":"7765:61:0","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"7794:2:0","nodeType":"YulIdentifier","src":"7794:2:0"},{"arguments":[{"name":"mc","nativeSrc":"7804:2:0","nodeType":"YulIdentifier","src":"7804:2:0"}],"functionName":{"name":"mload","nativeSrc":"7798:5:0","nodeType":"YulIdentifier","src":"7798:5:0"},"nativeSrc":"7798:9:0","nodeType":"YulFunctionCall","src":"7798:9:0"}],"functionName":{"name":"sstore","nativeSrc":"7787:6:0","nodeType":"YulIdentifier","src":"7787:6:0"},"nativeSrc":"7787:21:0","nodeType":"YulFunctionCall","src":"7787:21:0"},"nativeSrc":"7787:21:0","nodeType":"YulExpressionStatement","src":"7787:21:0"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"7659:2:0","nodeType":"YulIdentifier","src":"7659:2:0"},{"name":"end","nativeSrc":"7663:3:0","nodeType":"YulIdentifier","src":"7663:3:0"}],"functionName":{"name":"lt","nativeSrc":"7656:2:0","nodeType":"YulIdentifier","src":"7656:2:0"},"nativeSrc":"7656:11:0","nodeType":"YulFunctionCall","src":"7656:11:0"},"nativeSrc":"7555:271:0","nodeType":"YulForLoop","post":{"nativeSrc":"7668:96:0","nodeType":"YulBlock","src":"7668:96:0","statements":[{"nativeSrc":"7690:16:0","nodeType":"YulAssignment","src":"7690:16:0","value":{"arguments":[{"name":"sc","nativeSrc":"7700:2:0","nodeType":"YulIdentifier","src":"7700:2:0"},{"kind":"number","nativeSrc":"7704:1:0","nodeType":"YulLiteral","src":"7704:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7696:3:0","nodeType":"YulIdentifier","src":"7696:3:0"},"nativeSrc":"7696:10:0","nodeType":"YulFunctionCall","src":"7696:10:0"},"variableNames":[{"name":"sc","nativeSrc":"7690:2:0","nodeType":"YulIdentifier","src":"7690:2:0"}]},{"nativeSrc":"7727:19:0","nodeType":"YulAssignment","src":"7727:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"7737:2:0","nodeType":"YulIdentifier","src":"7737:2:0"},{"kind":"number","nativeSrc":"7741:4:0","nodeType":"YulLiteral","src":"7741:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7733:3:0","nodeType":"YulIdentifier","src":"7733:3:0"},"nativeSrc":"7733:13:0","nodeType":"YulFunctionCall","src":"7733:13:0"},"variableNames":[{"name":"mc","nativeSrc":"7727:2:0","nodeType":"YulIdentifier","src":"7727:2:0"}]}]},"pre":{"nativeSrc":"7559:96:0","nodeType":"YulBlock","src":"7559:96:0","statements":[{"nativeSrc":"7581:19:0","nodeType":"YulAssignment","src":"7581:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"7591:2:0","nodeType":"YulIdentifier","src":"7591:2:0"},{"kind":"number","nativeSrc":"7595:4:0","nodeType":"YulLiteral","src":"7595:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7587:3:0","nodeType":"YulIdentifier","src":"7587:3:0"},"nativeSrc":"7587:13:0","nodeType":"YulFunctionCall","src":"7587:13:0"},"variableNames":[{"name":"mc","nativeSrc":"7581:2:0","nodeType":"YulIdentifier","src":"7581:2:0"}]},{"nativeSrc":"7621:16:0","nodeType":"YulAssignment","src":"7621:16:0","value":{"arguments":[{"name":"sc","nativeSrc":"7631:2:0","nodeType":"YulIdentifier","src":"7631:2:0"},{"kind":"number","nativeSrc":"7635:1:0","nodeType":"YulLiteral","src":"7635:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7627:3:0","nodeType":"YulIdentifier","src":"7627:3:0"},"nativeSrc":"7627:10:0","nodeType":"YulFunctionCall","src":"7627:10:0"},"variableNames":[{"name":"sc","nativeSrc":"7621:2:0","nodeType":"YulIdentifier","src":"7621:2:0"}]}]},"src":"7555:271:0"},{"nativeSrc":"7844:32:0","nodeType":"YulAssignment","src":"7844:32:0","value":{"arguments":[{"kind":"number","nativeSrc":"7856:5:0","nodeType":"YulLiteral","src":"7856:5:0","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"7867:2:0","nodeType":"YulIdentifier","src":"7867:2:0"},{"name":"end","nativeSrc":"7871:3:0","nodeType":"YulIdentifier","src":"7871:3:0"}],"functionName":{"name":"sub","nativeSrc":"7863:3:0","nodeType":"YulIdentifier","src":"7863:3:0"},"nativeSrc":"7863:12:0","nodeType":"YulFunctionCall","src":"7863:12:0"}],"functionName":{"name":"exp","nativeSrc":"7852:3:0","nodeType":"YulIdentifier","src":"7852:3:0"},"nativeSrc":"7852:24:0","nodeType":"YulFunctionCall","src":"7852:24:0"},"variableNames":[{"name":"mask","nativeSrc":"7844:4:0","nodeType":"YulIdentifier","src":"7844:4:0"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"7901:2:0","nodeType":"YulIdentifier","src":"7901:2:0"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"7919:2:0","nodeType":"YulIdentifier","src":"7919:2:0"}],"functionName":{"name":"mload","nativeSrc":"7913:5:0","nodeType":"YulIdentifier","src":"7913:5:0"},"nativeSrc":"7913:9:0","nodeType":"YulFunctionCall","src":"7913:9:0"},{"name":"mask","nativeSrc":"7924:4:0","nodeType":"YulIdentifier","src":"7924:4:0"}],"functionName":{"name":"div","nativeSrc":"7909:3:0","nodeType":"YulIdentifier","src":"7909:3:0"},"nativeSrc":"7909:20:0","nodeType":"YulFunctionCall","src":"7909:20:0"},{"name":"mask","nativeSrc":"7931:4:0","nodeType":"YulIdentifier","src":"7931:4:0"}],"functionName":{"name":"mul","nativeSrc":"7905:3:0","nodeType":"YulIdentifier","src":"7905:3:0"},"nativeSrc":"7905:31:0","nodeType":"YulFunctionCall","src":"7905:31:0"}],"functionName":{"name":"sstore","nativeSrc":"7894:6:0","nodeType":"YulIdentifier","src":"7894:6:0"},"nativeSrc":"7894:43:0","nodeType":"YulFunctionCall","src":"7894:43:0"},"nativeSrc":"7894:43:0","nodeType":"YulExpressionStatement","src":"7894:43:0"}]},"nativeSrc":"6219:1732:0","nodeType":"YulCase","src":"6219:1732:0","value":{"kind":"number","nativeSrc":"6224:1:0","nodeType":"YulLiteral","src":"6224:1:0","type":"","value":"1"}},{"body":{"nativeSrc":"7972:1264:0","nodeType":"YulBlock","src":"7972:1264:0","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8069:3:0","nodeType":"YulLiteral","src":"8069:3:0","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"8074:14:0","nodeType":"YulIdentifier","src":"8074:14:0"}],"functionName":{"name":"mstore","nativeSrc":"8062:6:0","nodeType":"YulIdentifier","src":"8062:6:0"},"nativeSrc":"8062:27:0","nodeType":"YulFunctionCall","src":"8062:27:0"},"nativeSrc":"8062:27:0","nodeType":"YulExpressionStatement","src":"8062:27:0"},{"nativeSrc":"8182:53:0","nodeType":"YulVariableDeclaration","src":"8182:53:0","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8206:3:0","nodeType":"YulLiteral","src":"8206:3:0","type":"","value":"0x0"},{"kind":"number","nativeSrc":"8211:4:0","nodeType":"YulLiteral","src":"8211:4:0","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8196:9:0","nodeType":"YulIdentifier","src":"8196:9:0"},"nativeSrc":"8196:20:0","nodeType":"YulFunctionCall","src":"8196:20:0"},{"arguments":[{"name":"slength","nativeSrc":"8222:7:0","nodeType":"YulIdentifier","src":"8222:7:0"},{"kind":"number","nativeSrc":"8231:2:0","nodeType":"YulLiteral","src":"8231:2:0","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"8218:3:0","nodeType":"YulIdentifier","src":"8218:3:0"},"nativeSrc":"8218:16:0","nodeType":"YulFunctionCall","src":"8218:16:0"}],"functionName":{"name":"add","nativeSrc":"8192:3:0","nodeType":"YulIdentifier","src":"8192:3:0"},"nativeSrc":"8192:43:0","nodeType":"YulFunctionCall","src":"8192:43:0"},"variables":[{"name":"sc","nativeSrc":"8186:2:0","nodeType":"YulTypedName","src":"8186:2:0","type":""}]},{"expression":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"8295:14:0","nodeType":"YulIdentifier","src":"8295:14:0"},{"arguments":[{"arguments":[{"name":"newlength","nativeSrc":"8319:9:0","nodeType":"YulIdentifier","src":"8319:9:0"},{"kind":"number","nativeSrc":"8330:1:0","nodeType":"YulLiteral","src":"8330:1:0","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8315:3:0","nodeType":"YulIdentifier","src":"8315:3:0"},"nativeSrc":"8315:17:0","nodeType":"YulFunctionCall","src":"8315:17:0"},{"kind":"number","nativeSrc":"8334:1:0","nodeType":"YulLiteral","src":"8334:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8311:3:0","nodeType":"YulIdentifier","src":"8311:3:0"},"nativeSrc":"8311:25:0","nodeType":"YulFunctionCall","src":"8311:25:0"}],"functionName":{"name":"sstore","nativeSrc":"8288:6:0","nodeType":"YulIdentifier","src":"8288:6:0"},"nativeSrc":"8288:49:0","nodeType":"YulFunctionCall","src":"8288:49:0"},"nativeSrc":"8288:49:0","nodeType":"YulExpressionStatement","src":"8288:49:0"},{"nativeSrc":"8464:34:0","nodeType":"YulVariableDeclaration","src":"8464:34:0","value":{"arguments":[{"name":"slength","nativeSrc":"8486:7:0","nodeType":"YulIdentifier","src":"8486:7:0"},{"kind":"number","nativeSrc":"8495:2:0","nodeType":"YulLiteral","src":"8495:2:0","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8482:3:0","nodeType":"YulIdentifier","src":"8482:3:0"},"nativeSrc":"8482:16:0","nodeType":"YulFunctionCall","src":"8482:16:0"},"variables":[{"name":"slengthmod","nativeSrc":"8468:10:0","nodeType":"YulTypedName","src":"8468:10:0","type":""}]},{"nativeSrc":"8515:34:0","nodeType":"YulVariableDeclaration","src":"8515:34:0","value":{"arguments":[{"name":"mlength","nativeSrc":"8537:7:0","nodeType":"YulIdentifier","src":"8537:7:0"},{"kind":"number","nativeSrc":"8546:2:0","nodeType":"YulLiteral","src":"8546:2:0","type":"","value":"32"}],"functionName":{"name":"mod","nativeSrc":"8533:3:0","nodeType":"YulIdentifier","src":"8533:3:0"},"nativeSrc":"8533:16:0","nodeType":"YulFunctionCall","src":"8533:16:0"},"variables":[{"name":"mlengthmod","nativeSrc":"8519:10:0","nodeType":"YulTypedName","src":"8519:10:0","type":""}]},{"nativeSrc":"8566:33:0","nodeType":"YulVariableDeclaration","src":"8566:33:0","value":{"arguments":[{"kind":"number","nativeSrc":"8584:2:0","nodeType":"YulLiteral","src":"8584:2:0","type":"","value":"32"},{"name":"slengthmod","nativeSrc":"8588:10:0","nodeType":"YulIdentifier","src":"8588:10:0"}],"functionName":{"name":"sub","nativeSrc":"8580:3:0","nodeType":"YulIdentifier","src":"8580:3:0"},"nativeSrc":"8580:19:0","nodeType":"YulFunctionCall","src":"8580:19:0"},"variables":[{"name":"submod","nativeSrc":"8570:6:0","nodeType":"YulTypedName","src":"8570:6:0","type":""}]},{"nativeSrc":"8616:33:0","nodeType":"YulVariableDeclaration","src":"8616:33:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8630:10:0","nodeType":"YulIdentifier","src":"8630:10:0"},{"name":"submod","nativeSrc":"8642:6:0","nodeType":"YulIdentifier","src":"8642:6:0"}],"functionName":{"name":"add","nativeSrc":"8626:3:0","nodeType":"YulIdentifier","src":"8626:3:0"},"nativeSrc":"8626:23:0","nodeType":"YulFunctionCall","src":"8626:23:0"},"variables":[{"name":"mc","nativeSrc":"8620:2:0","nodeType":"YulTypedName","src":"8620:2:0","type":""}]},{"nativeSrc":"8666:35:0","nodeType":"YulVariableDeclaration","src":"8666:35:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"8681:10:0","nodeType":"YulIdentifier","src":"8681:10:0"},{"name":"mlength","nativeSrc":"8693:7:0","nodeType":"YulIdentifier","src":"8693:7:0"}],"functionName":{"name":"add","nativeSrc":"8677:3:0","nodeType":"YulIdentifier","src":"8677:3:0"},"nativeSrc":"8677:24:0","nodeType":"YulFunctionCall","src":"8677:24:0"},"variables":[{"name":"end","nativeSrc":"8670:3:0","nodeType":"YulTypedName","src":"8670:3:0","type":""}]},{"nativeSrc":"8718:38:0","nodeType":"YulVariableDeclaration","src":"8718:38:0","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8738:5:0","nodeType":"YulLiteral","src":"8738:5:0","type":"","value":"0x100"},{"name":"submod","nativeSrc":"8745:6:0","nodeType":"YulIdentifier","src":"8745:6:0"}],"functionName":{"name":"exp","nativeSrc":"8734:3:0","nodeType":"YulIdentifier","src":"8734:3:0"},"nativeSrc":"8734:18:0","nodeType":"YulFunctionCall","src":"8734:18:0"},{"kind":"number","nativeSrc":"8754:1:0","nodeType":"YulLiteral","src":"8754:1:0","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8730:3:0","nodeType":"YulIdentifier","src":"8730:3:0"},"nativeSrc":"8730:26:0","nodeType":"YulFunctionCall","src":"8730:26:0"},"variables":[{"name":"mask","nativeSrc":"8722:4:0","nodeType":"YulTypedName","src":"8722:4:0","type":""}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"8781:2:0","nodeType":"YulIdentifier","src":"8781:2:0"},{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"8795:2:0","nodeType":"YulIdentifier","src":"8795:2:0"}],"functionName":{"name":"sload","nativeSrc":"8789:5:0","nodeType":"YulIdentifier","src":"8789:5:0"},"nativeSrc":"8789:9:0","nodeType":"YulFunctionCall","src":"8789:9:0"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"8810:2:0","nodeType":"YulIdentifier","src":"8810:2:0"}],"functionName":{"name":"mload","nativeSrc":"8804:5:0","nodeType":"YulIdentifier","src":"8804:5:0"},"nativeSrc":"8804:9:0","nodeType":"YulFunctionCall","src":"8804:9:0"},{"name":"mask","nativeSrc":"8815:4:0","nodeType":"YulIdentifier","src":"8815:4:0"}],"functionName":{"name":"and","nativeSrc":"8800:3:0","nodeType":"YulIdentifier","src":"8800:3:0"},"nativeSrc":"8800:20:0","nodeType":"YulFunctionCall","src":"8800:20:0"}],"functionName":{"name":"add","nativeSrc":"8785:3:0","nodeType":"YulIdentifier","src":"8785:3:0"},"nativeSrc":"8785:36:0","nodeType":"YulFunctionCall","src":"8785:36:0"}],"functionName":{"name":"sstore","nativeSrc":"8774:6:0","nodeType":"YulIdentifier","src":"8774:6:0"},"nativeSrc":"8774:48:0","nodeType":"YulFunctionCall","src":"8774:48:0"},"nativeSrc":"8774:48:0","nodeType":"YulExpressionStatement","src":"8774:48:0"},{"body":{"nativeSrc":"9050:61:0","nodeType":"YulBlock","src":"9050:61:0","statements":[{"expression":{"arguments":[{"name":"sc","nativeSrc":"9079:2:0","nodeType":"YulIdentifier","src":"9079:2:0"},{"arguments":[{"name":"mc","nativeSrc":"9089:2:0","nodeType":"YulIdentifier","src":"9089:2:0"}],"functionName":{"name":"mload","nativeSrc":"9083:5:0","nodeType":"YulIdentifier","src":"9083:5:0"},"nativeSrc":"9083:9:0","nodeType":"YulFunctionCall","src":"9083:9:0"}],"functionName":{"name":"sstore","nativeSrc":"9072:6:0","nodeType":"YulIdentifier","src":"9072:6:0"},"nativeSrc":"9072:21:0","nodeType":"YulFunctionCall","src":"9072:21:0"},"nativeSrc":"9072:21:0","nodeType":"YulExpressionStatement","src":"9072:21:0"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"8944:2:0","nodeType":"YulIdentifier","src":"8944:2:0"},{"name":"end","nativeSrc":"8948:3:0","nodeType":"YulIdentifier","src":"8948:3:0"}],"functionName":{"name":"lt","nativeSrc":"8941:2:0","nodeType":"YulIdentifier","src":"8941:2:0"},"nativeSrc":"8941:11:0","nodeType":"YulFunctionCall","src":"8941:11:0"},"nativeSrc":"8840:271:0","nodeType":"YulForLoop","post":{"nativeSrc":"8953:96:0","nodeType":"YulBlock","src":"8953:96:0","statements":[{"nativeSrc":"8975:16:0","nodeType":"YulAssignment","src":"8975:16:0","value":{"arguments":[{"name":"sc","nativeSrc":"8985:2:0","nodeType":"YulIdentifier","src":"8985:2:0"},{"kind":"number","nativeSrc":"8989:1:0","nodeType":"YulLiteral","src":"8989:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8981:3:0","nodeType":"YulIdentifier","src":"8981:3:0"},"nativeSrc":"8981:10:0","nodeType":"YulFunctionCall","src":"8981:10:0"},"variableNames":[{"name":"sc","nativeSrc":"8975:2:0","nodeType":"YulIdentifier","src":"8975:2:0"}]},{"nativeSrc":"9012:19:0","nodeType":"YulAssignment","src":"9012:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"9022:2:0","nodeType":"YulIdentifier","src":"9022:2:0"},{"kind":"number","nativeSrc":"9026:4:0","nodeType":"YulLiteral","src":"9026:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9018:3:0","nodeType":"YulIdentifier","src":"9018:3:0"},"nativeSrc":"9018:13:0","nodeType":"YulFunctionCall","src":"9018:13:0"},"variableNames":[{"name":"mc","nativeSrc":"9012:2:0","nodeType":"YulIdentifier","src":"9012:2:0"}]}]},"pre":{"nativeSrc":"8844:96:0","nodeType":"YulBlock","src":"8844:96:0","statements":[{"nativeSrc":"8866:16:0","nodeType":"YulAssignment","src":"8866:16:0","value":{"arguments":[{"name":"sc","nativeSrc":"8876:2:0","nodeType":"YulIdentifier","src":"8876:2:0"},{"kind":"number","nativeSrc":"8880:1:0","nodeType":"YulLiteral","src":"8880:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8872:3:0","nodeType":"YulIdentifier","src":"8872:3:0"},"nativeSrc":"8872:10:0","nodeType":"YulFunctionCall","src":"8872:10:0"},"variableNames":[{"name":"sc","nativeSrc":"8866:2:0","nodeType":"YulIdentifier","src":"8866:2:0"}]},{"nativeSrc":"8903:19:0","nodeType":"YulAssignment","src":"8903:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"8913:2:0","nodeType":"YulIdentifier","src":"8913:2:0"},{"kind":"number","nativeSrc":"8917:4:0","nodeType":"YulLiteral","src":"8917:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8909:3:0","nodeType":"YulIdentifier","src":"8909:3:0"},"nativeSrc":"8909:13:0","nodeType":"YulFunctionCall","src":"8909:13:0"},"variableNames":[{"name":"mc","nativeSrc":"8903:2:0","nodeType":"YulIdentifier","src":"8903:2:0"}]}]},"src":"8840:271:0"},{"nativeSrc":"9129:32:0","nodeType":"YulAssignment","src":"9129:32:0","value":{"arguments":[{"kind":"number","nativeSrc":"9141:5:0","nodeType":"YulLiteral","src":"9141:5:0","type":"","value":"0x100"},{"arguments":[{"name":"mc","nativeSrc":"9152:2:0","nodeType":"YulIdentifier","src":"9152:2:0"},{"name":"end","nativeSrc":"9156:3:0","nodeType":"YulIdentifier","src":"9156:3:0"}],"functionName":{"name":"sub","nativeSrc":"9148:3:0","nodeType":"YulIdentifier","src":"9148:3:0"},"nativeSrc":"9148:12:0","nodeType":"YulFunctionCall","src":"9148:12:0"}],"functionName":{"name":"exp","nativeSrc":"9137:3:0","nodeType":"YulIdentifier","src":"9137:3:0"},"nativeSrc":"9137:24:0","nodeType":"YulFunctionCall","src":"9137:24:0"},"variableNames":[{"name":"mask","nativeSrc":"9129:4:0","nodeType":"YulIdentifier","src":"9129:4:0"}]},{"expression":{"arguments":[{"name":"sc","nativeSrc":"9186:2:0","nodeType":"YulIdentifier","src":"9186:2:0"},{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"9204:2:0","nodeType":"YulIdentifier","src":"9204:2:0"}],"functionName":{"name":"mload","nativeSrc":"9198:5:0","nodeType":"YulIdentifier","src":"9198:5:0"},"nativeSrc":"9198:9:0","nodeType":"YulFunctionCall","src":"9198:9:0"},{"name":"mask","nativeSrc":"9209:4:0","nodeType":"YulIdentifier","src":"9209:4:0"}],"functionName":{"name":"div","nativeSrc":"9194:3:0","nodeType":"YulIdentifier","src":"9194:3:0"},"nativeSrc":"9194:20:0","nodeType":"YulFunctionCall","src":"9194:20:0"},{"name":"mask","nativeSrc":"9216:4:0","nodeType":"YulIdentifier","src":"9216:4:0"}],"functionName":{"name":"mul","nativeSrc":"9190:3:0","nodeType":"YulIdentifier","src":"9190:3:0"},"nativeSrc":"9190:31:0","nodeType":"YulFunctionCall","src":"9190:31:0"}],"functionName":{"name":"sstore","nativeSrc":"9179:6:0","nodeType":"YulIdentifier","src":"9179:6:0"},"nativeSrc":"9179:43:0","nodeType":"YulFunctionCall","src":"9179:43:0"},"nativeSrc":"9179:43:0","nodeType":"YulExpressionStatement","src":"9179:43:0"}]},"nativeSrc":"7964:1272:0","nodeType":"YulCase","src":"7964:1272:0","value":"default"}],"expression":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"4669:7:0","nodeType":"YulIdentifier","src":"4669:7:0"},{"kind":"number","nativeSrc":"4678:2:0","nodeType":"YulLiteral","src":"4678:2:0","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4666:2:0","nodeType":"YulIdentifier","src":"4666:2:0"},"nativeSrc":"4666:15:0","nodeType":"YulFunctionCall","src":"4666:15:0"},{"arguments":[{"name":"newlength","nativeSrc":"4686:9:0","nodeType":"YulIdentifier","src":"4686:9:0"},{"kind":"number","nativeSrc":"4697:2:0","nodeType":"YulLiteral","src":"4697:2:0","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4683:2:0","nodeType":"YulIdentifier","src":"4683:2:0"},"nativeSrc":"4683:17:0","nodeType":"YulFunctionCall","src":"4683:17:0"}],"functionName":{"name":"add","nativeSrc":"4662:3:0","nodeType":"YulIdentifier","src":"4662:3:0"},"nativeSrc":"4662:39:0","nodeType":"YulFunctionCall","src":"4662:39:0"},"nativeSrc":"4655:4581:0","nodeType":"YulSwitch","src":"4655:4581:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":21,"isOffset":false,"isSlot":false,"src":"4326:10:0","valueSize":1},{"declaration":21,"isOffset":false,"isSlot":false,"src":"5532:10:0","valueSize":1},{"declaration":21,"isOffset":false,"isSlot":false,"src":"7276:10:0","valueSize":1},{"declaration":21,"isOffset":false,"isSlot":false,"src":"7327:10:0","valueSize":1},{"declaration":21,"isOffset":false,"isSlot":false,"src":"8630:10:0","valueSize":1},{"declaration":21,"isOffset":false,"isSlot":false,"src":"8681:10:0","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"3708:14:0","suffix":"slot","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"5002:14:0","suffix":"slot","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"6440:14:0","suffix":"slot","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"6585:14:0","suffix":"slot","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"8074:14:0","suffix":"slot","valueSize":1},{"declaration":19,"isOffset":false,"isSlot":true,"src":"8295:14:0","suffix":"slot","valueSize":1}],"id":24,"nodeType":"InlineAssembly","src":"3457:5789:0"}]},"id":26,"implemented":true,"kind":"function","modifiers":[],"name":"concatStorage","nameLocation":"3374:13:0","nodeType":"FunctionDefinition","parameters":{"id":22,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"_preBytes","nameLocation":"3402:9:0","nodeType":"VariableDeclaration","scope":26,"src":"3388:23:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18,"name":"bytes","nodeType":"ElementaryTypeName","src":"3388:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"_postBytes","nameLocation":"3426:10:0","nodeType":"VariableDeclaration","scope":26,"src":"3413:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20,"name":"bytes","nodeType":"ElementaryTypeName","src":"3413:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3387:50:0"},"returnParameters":{"id":23,"nodeType":"ParameterList","parameters":[],"src":"3447:0:0"},"scope":332,"src":"3365:5887:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":62,"nodeType":"Block","src":"9388:2640:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"9406:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9416:2:0","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"9406:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":41,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"9422:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9406:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f766572666c6f77","id":43,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9431:16:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""},"value":"slice_overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","typeString":"literal_string \"slice_overflow\""}],"id":37,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9398:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9398:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45,"nodeType":"ExpressionStatement","src":"9398:50:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28,"src":"9466:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9473:6:0","memberName":"length","nodeType":"MemberAccess","src":"9466:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"9483:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":50,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"9492:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9483:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9466:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"736c6963655f6f75744f66426f756e6473","id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9501:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""},"value":"slice_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","typeString":"literal_string \"slice_outOfBounds\""}],"id":46,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9458:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"9458:63:0"},{"assignments":[57],"declarations":[{"constant":false,"id":57,"mutability":"mutable","name":"tempBytes","nameLocation":"9545:9:0","nodeType":"VariableDeclaration","scope":62,"src":"9532:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56,"name":"bytes","nodeType":"ElementaryTypeName","src":"9532:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58,"nodeType":"VariableDeclarationStatement","src":"9532:22:0"},{"AST":{"nativeSrc":"9574:2421:0","nodeType":"YulBlock","src":"9574:2421:0","statements":[{"cases":[{"body":{"nativeSrc":"9630:1960:0","nodeType":"YulBlock","src":"9630:1960:0","statements":[{"nativeSrc":"9786:24:0","nodeType":"YulAssignment","src":"9786:24:0","value":{"arguments":[{"kind":"number","nativeSrc":"9805:4:0","nodeType":"YulLiteral","src":"9805:4:0","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9799:5:0","nodeType":"YulIdentifier","src":"9799:5:0"},"nativeSrc":"9799:11:0","nodeType":"YulFunctionCall","src":"9799:11:0"},"variableNames":[{"name":"tempBytes","nativeSrc":"9786:9:0","nodeType":"YulIdentifier","src":"9786:9:0"}]},{"nativeSrc":"10434:33:0","nodeType":"YulVariableDeclaration","src":"10434:33:0","value":{"arguments":[{"name":"_length","nativeSrc":"10455:7:0","nodeType":"YulIdentifier","src":"10455:7:0"},{"kind":"number","nativeSrc":"10464:2:0","nodeType":"YulLiteral","src":"10464:2:0","type":"","value":"31"}],"functionName":{"name":"and","nativeSrc":"10451:3:0","nodeType":"YulIdentifier","src":"10451:3:0"},"nativeSrc":"10451:16:0","nodeType":"YulFunctionCall","src":"10451:16:0"},"variables":[{"name":"lengthmod","nativeSrc":"10438:9:0","nodeType":"YulTypedName","src":"10438:9:0","type":""}]},{"nativeSrc":"10788:70:0","nodeType":"YulVariableDeclaration","src":"10788:70:0","value":{"arguments":[{"arguments":[{"name":"tempBytes","nativeSrc":"10806:9:0","nodeType":"YulIdentifier","src":"10806:9:0"},{"name":"lengthmod","nativeSrc":"10817:9:0","nodeType":"YulIdentifier","src":"10817:9:0"}],"functionName":{"name":"add","nativeSrc":"10802:3:0","nodeType":"YulIdentifier","src":"10802:3:0"},"nativeSrc":"10802:25:0","nodeType":"YulFunctionCall","src":"10802:25:0"},{"arguments":[{"kind":"number","nativeSrc":"10833:4:0","nodeType":"YulLiteral","src":"10833:4:0","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"10846:9:0","nodeType":"YulIdentifier","src":"10846:9:0"}],"functionName":{"name":"iszero","nativeSrc":"10839:6:0","nodeType":"YulIdentifier","src":"10839:6:0"},"nativeSrc":"10839:17:0","nodeType":"YulFunctionCall","src":"10839:17:0"}],"functionName":{"name":"mul","nativeSrc":"10829:3:0","nodeType":"YulIdentifier","src":"10829:3:0"},"nativeSrc":"10829:28:0","nodeType":"YulFunctionCall","src":"10829:28:0"}],"functionName":{"name":"add","nativeSrc":"10798:3:0","nodeType":"YulIdentifier","src":"10798:3:0"},"nativeSrc":"10798:60:0","nodeType":"YulFunctionCall","src":"10798:60:0"},"variables":[{"name":"mc","nativeSrc":"10792:2:0","nodeType":"YulTypedName","src":"10792:2:0","type":""}]},{"nativeSrc":"10875:27:0","nodeType":"YulVariableDeclaration","src":"10875:27:0","value":{"arguments":[{"name":"mc","nativeSrc":"10890:2:0","nodeType":"YulIdentifier","src":"10890:2:0"},{"name":"_length","nativeSrc":"10894:7:0","nodeType":"YulIdentifier","src":"10894:7:0"}],"functionName":{"name":"add","nativeSrc":"10886:3:0","nodeType":"YulIdentifier","src":"10886:3:0"},"nativeSrc":"10886:16:0","nodeType":"YulFunctionCall","src":"10886:16:0"},"variables":[{"name":"end","nativeSrc":"10879:3:0","nodeType":"YulTypedName","src":"10879:3:0","type":""}]},{"body":{"nativeSrc":"11284:61:0","nodeType":"YulBlock","src":"11284:61:0","statements":[{"expression":{"arguments":[{"name":"mc","nativeSrc":"11313:2:0","nodeType":"YulIdentifier","src":"11313:2:0"},{"arguments":[{"name":"cc","nativeSrc":"11323:2:0","nodeType":"YulIdentifier","src":"11323:2:0"}],"functionName":{"name":"mload","nativeSrc":"11317:5:0","nodeType":"YulIdentifier","src":"11317:5:0"},"nativeSrc":"11317:9:0","nodeType":"YulFunctionCall","src":"11317:9:0"}],"functionName":{"name":"mstore","nativeSrc":"11306:6:0","nodeType":"YulIdentifier","src":"11306:6:0"},"nativeSrc":"11306:21:0","nodeType":"YulFunctionCall","src":"11306:21:0"},"nativeSrc":"11306:21:0","nodeType":"YulExpressionStatement","src":"11306:21:0"}]},"condition":{"arguments":[{"name":"mc","nativeSrc":"11175:2:0","nodeType":"YulIdentifier","src":"11175:2:0"},{"name":"end","nativeSrc":"11179:3:0","nodeType":"YulIdentifier","src":"11179:3:0"}],"functionName":{"name":"lt","nativeSrc":"11172:2:0","nodeType":"YulIdentifier","src":"11172:2:0"},"nativeSrc":"11172:11:0","nodeType":"YulFunctionCall","src":"11172:11:0"},"nativeSrc":"10920:425:0","nodeType":"YulForLoop","post":{"nativeSrc":"11184:99:0","nodeType":"YulBlock","src":"11184:99:0","statements":[{"nativeSrc":"11206:19:0","nodeType":"YulAssignment","src":"11206:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"11216:2:0","nodeType":"YulIdentifier","src":"11216:2:0"},{"kind":"number","nativeSrc":"11220:4:0","nodeType":"YulLiteral","src":"11220:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11212:3:0","nodeType":"YulIdentifier","src":"11212:3:0"},"nativeSrc":"11212:13:0","nodeType":"YulFunctionCall","src":"11212:13:0"},"variableNames":[{"name":"mc","nativeSrc":"11206:2:0","nodeType":"YulIdentifier","src":"11206:2:0"}]},{"nativeSrc":"11246:19:0","nodeType":"YulAssignment","src":"11246:19:0","value":{"arguments":[{"name":"cc","nativeSrc":"11256:2:0","nodeType":"YulIdentifier","src":"11256:2:0"},{"kind":"number","nativeSrc":"11260:4:0","nodeType":"YulLiteral","src":"11260:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11252:3:0","nodeType":"YulIdentifier","src":"11252:3:0"},"nativeSrc":"11252:13:0","nodeType":"YulFunctionCall","src":"11252:13:0"},"variableNames":[{"name":"cc","nativeSrc":"11246:2:0","nodeType":"YulIdentifier","src":"11246:2:0"}]}]},"pre":{"nativeSrc":"10924:247:0","nodeType":"YulBlock","src":"10924:247:0","statements":[{"nativeSrc":"11073:80:0","nodeType":"YulVariableDeclaration","src":"11073:80:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"11095:6:0","nodeType":"YulIdentifier","src":"11095:6:0"},{"name":"lengthmod","nativeSrc":"11103:9:0","nodeType":"YulIdentifier","src":"11103:9:0"}],"functionName":{"name":"add","nativeSrc":"11091:3:0","nodeType":"YulIdentifier","src":"11091:3:0"},"nativeSrc":"11091:22:0","nodeType":"YulFunctionCall","src":"11091:22:0"},{"arguments":[{"kind":"number","nativeSrc":"11119:4:0","nodeType":"YulLiteral","src":"11119:4:0","type":"","value":"0x20"},{"arguments":[{"name":"lengthmod","nativeSrc":"11132:9:0","nodeType":"YulIdentifier","src":"11132:9:0"}],"functionName":{"name":"iszero","nativeSrc":"11125:6:0","nodeType":"YulIdentifier","src":"11125:6:0"},"nativeSrc":"11125:17:0","nodeType":"YulFunctionCall","src":"11125:17:0"}],"functionName":{"name":"mul","nativeSrc":"11115:3:0","nodeType":"YulIdentifier","src":"11115:3:0"},"nativeSrc":"11115:28:0","nodeType":"YulFunctionCall","src":"11115:28:0"}],"functionName":{"name":"add","nativeSrc":"11087:3:0","nodeType":"YulIdentifier","src":"11087:3:0"},"nativeSrc":"11087:57:0","nodeType":"YulFunctionCall","src":"11087:57:0"},{"name":"_start","nativeSrc":"11146:6:0","nodeType":"YulIdentifier","src":"11146:6:0"}],"functionName":{"name":"add","nativeSrc":"11083:3:0","nodeType":"YulIdentifier","src":"11083:3:0"},"nativeSrc":"11083:70:0","nodeType":"YulFunctionCall","src":"11083:70:0"},"variables":[{"name":"cc","nativeSrc":"11077:2:0","nodeType":"YulTypedName","src":"11077:2:0","type":""}]}]},"src":"10920:425:0"},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11370:9:0","nodeType":"YulIdentifier","src":"11370:9:0"},{"name":"_length","nativeSrc":"11381:7:0","nodeType":"YulIdentifier","src":"11381:7:0"}],"functionName":{"name":"mstore","nativeSrc":"11363:6:0","nodeType":"YulIdentifier","src":"11363:6:0"},"nativeSrc":"11363:26:0","nodeType":"YulFunctionCall","src":"11363:26:0"},"nativeSrc":"11363:26:0","nodeType":"YulExpressionStatement","src":"11363:26:0"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11544:4:0","nodeType":"YulLiteral","src":"11544:4:0","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"11558:2:0","nodeType":"YulIdentifier","src":"11558:2:0"},{"kind":"number","nativeSrc":"11562:2:0","nodeType":"YulLiteral","src":"11562:2:0","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"11554:3:0","nodeType":"YulIdentifier","src":"11554:3:0"},"nativeSrc":"11554:11:0","nodeType":"YulFunctionCall","src":"11554:11:0"},{"arguments":[{"kind":"number","nativeSrc":"11571:2:0","nodeType":"YulLiteral","src":"11571:2:0","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"11567:3:0","nodeType":"YulIdentifier","src":"11567:3:0"},"nativeSrc":"11567:7:0","nodeType":"YulFunctionCall","src":"11567:7:0"}],"functionName":{"name":"and","nativeSrc":"11550:3:0","nodeType":"YulIdentifier","src":"11550:3:0"},"nativeSrc":"11550:25:0","nodeType":"YulFunctionCall","src":"11550:25:0"}],"functionName":{"name":"mstore","nativeSrc":"11537:6:0","nodeType":"YulIdentifier","src":"11537:6:0"},"nativeSrc":"11537:39:0","nodeType":"YulFunctionCall","src":"11537:39:0"},"nativeSrc":"11537:39:0","nodeType":"YulExpressionStatement","src":"11537:39:0"}]},"nativeSrc":"9623:1967:0","nodeType":"YulCase","src":"9623:1967:0","value":{"kind":"number","nativeSrc":"9628:1:0","nodeType":"YulLiteral","src":"9628:1:0","type":"","value":"0"}},{"body":{"nativeSrc":"11694:291:0","nodeType":"YulBlock","src":"11694:291:0","statements":[{"nativeSrc":"11712:24:0","nodeType":"YulAssignment","src":"11712:24:0","value":{"arguments":[{"kind":"number","nativeSrc":"11731:4:0","nodeType":"YulLiteral","src":"11731:4:0","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11725:5:0","nodeType":"YulIdentifier","src":"11725:5:0"},"nativeSrc":"11725:11:0","nodeType":"YulFunctionCall","src":"11725:11:0"},"variableNames":[{"name":"tempBytes","nativeSrc":"11712:9:0","nodeType":"YulIdentifier","src":"11712:9:0"}]},{"expression":{"arguments":[{"name":"tempBytes","nativeSrc":"11906:9:0","nodeType":"YulIdentifier","src":"11906:9:0"},{"kind":"number","nativeSrc":"11917:1:0","nodeType":"YulLiteral","src":"11917:1:0","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11899:6:0","nodeType":"YulIdentifier","src":"11899:6:0"},"nativeSrc":"11899:20:0","nodeType":"YulFunctionCall","src":"11899:20:0"},"nativeSrc":"11899:20:0","nodeType":"YulExpressionStatement","src":"11899:20:0"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11944:4:0","nodeType":"YulLiteral","src":"11944:4:0","type":"","value":"0x40"},{"arguments":[{"name":"tempBytes","nativeSrc":"11954:9:0","nodeType":"YulIdentifier","src":"11954:9:0"},{"kind":"number","nativeSrc":"11965:4:0","nodeType":"YulLiteral","src":"11965:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11950:3:0","nodeType":"YulIdentifier","src":"11950:3:0"},"nativeSrc":"11950:20:0","nodeType":"YulFunctionCall","src":"11950:20:0"}],"functionName":{"name":"mstore","nativeSrc":"11937:6:0","nodeType":"YulIdentifier","src":"11937:6:0"},"nativeSrc":"11937:34:0","nodeType":"YulFunctionCall","src":"11937:34:0"},"nativeSrc":"11937:34:0","nodeType":"YulExpressionStatement","src":"11937:34:0"}]},"nativeSrc":"11686:299:0","nodeType":"YulCase","src":"11686:299:0","value":"default"}],"expression":{"arguments":[{"name":"_length","nativeSrc":"9602:7:0","nodeType":"YulIdentifier","src":"9602:7:0"}],"functionName":{"name":"iszero","nativeSrc":"9595:6:0","nodeType":"YulIdentifier","src":"9595:6:0"},"nativeSrc":"9595:15:0","nodeType":"YulFunctionCall","src":"9595:15:0"},"nativeSrc":"9588:2397:0","nodeType":"YulSwitch","src":"9588:2397:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":28,"isOffset":false,"isSlot":false,"src":"11095:6:0","valueSize":1},{"declaration":32,"isOffset":false,"isSlot":false,"src":"10455:7:0","valueSize":1},{"declaration":32,"isOffset":false,"isSlot":false,"src":"10894:7:0","valueSize":1},{"declaration":32,"isOffset":false,"isSlot":false,"src":"11381:7:0","valueSize":1},{"declaration":32,"isOffset":false,"isSlot":false,"src":"9602:7:0","valueSize":1},{"declaration":30,"isOffset":false,"isSlot":false,"src":"11146:6:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"10806:9:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"11370:9:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"11712:9:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"11906:9:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"11954:9:0","valueSize":1},{"declaration":57,"isOffset":false,"isSlot":false,"src":"9786:9:0","valueSize":1}],"id":59,"nodeType":"InlineAssembly","src":"9565:2430:0"},{"expression":{"id":60,"name":"tempBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"12012:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":36,"id":61,"nodeType":"Return","src":"12005:16:0"}]},"id":63,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"9267:5:0","nodeType":"FunctionDefinition","parameters":{"id":33,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28,"mutability":"mutable","name":"_bytes","nameLocation":"9295:6:0","nodeType":"VariableDeclaration","scope":63,"src":"9282:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27,"name":"bytes","nodeType":"ElementaryTypeName","src":"9282:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":30,"mutability":"mutable","name":"_start","nameLocation":"9316:6:0","nodeType":"VariableDeclaration","scope":63,"src":"9311:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29,"name":"uint","nodeType":"ElementaryTypeName","src":"9311:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32,"mutability":"mutable","name":"_length","nameLocation":"9337:7:0","nodeType":"VariableDeclaration","scope":63,"src":"9332:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31,"name":"uint","nodeType":"ElementaryTypeName","src":"9332:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9272:78:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":63,"src":"9374:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34,"name":"bytes","nodeType":"ElementaryTypeName","src":"9374:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9373:14:0"},"scope":332,"src":"9258:2770:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":88,"nodeType":"Block","src":"12119:266:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"12137:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12144:6:0","memberName":"length","nodeType":"MemberAccess","src":"12137:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"12154:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230","id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12163:2:0","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"12154:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12137:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","id":79,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12167:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""},"value":"toAddress_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","typeString":"literal_string \"toAddress_outOfBounds\""}],"id":72,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12129:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":80,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12129:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81,"nodeType":"ExpressionStatement","src":"12129:62:0"},{"assignments":[83],"declarations":[{"constant":false,"id":83,"mutability":"mutable","name":"tempAddress","nameLocation":"12209:11:0","nodeType":"VariableDeclaration","scope":88,"src":"12201:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82,"name":"address","nodeType":"ElementaryTypeName","src":"12201:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84,"nodeType":"VariableDeclarationStatement","src":"12201:19:0"},{"AST":{"nativeSrc":"12240:110:0","nodeType":"YulBlock","src":"12240:110:0","statements":[{"nativeSrc":"12254:86:0","nodeType":"YulAssignment","src":"12254:86:0","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12287:6:0","nodeType":"YulIdentifier","src":"12287:6:0"},{"kind":"number","nativeSrc":"12295:4:0","nodeType":"YulLiteral","src":"12295:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12283:3:0","nodeType":"YulIdentifier","src":"12283:3:0"},"nativeSrc":"12283:17:0","nodeType":"YulFunctionCall","src":"12283:17:0"},{"name":"_start","nativeSrc":"12302:6:0","nodeType":"YulIdentifier","src":"12302:6:0"}],"functionName":{"name":"add","nativeSrc":"12279:3:0","nodeType":"YulIdentifier","src":"12279:3:0"},"nativeSrc":"12279:30:0","nodeType":"YulFunctionCall","src":"12279:30:0"}],"functionName":{"name":"mload","nativeSrc":"12273:5:0","nodeType":"YulIdentifier","src":"12273:5:0"},"nativeSrc":"12273:37:0","nodeType":"YulFunctionCall","src":"12273:37:0"},{"kind":"number","nativeSrc":"12312:27:0","nodeType":"YulLiteral","src":"12312:27:0","type":"","value":"0x1000000000000000000000000"}],"functionName":{"name":"div","nativeSrc":"12269:3:0","nodeType":"YulIdentifier","src":"12269:3:0"},"nativeSrc":"12269:71:0","nodeType":"YulFunctionCall","src":"12269:71:0"},"variableNames":[{"name":"tempAddress","nativeSrc":"12254:11:0","nodeType":"YulIdentifier","src":"12254:11:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":65,"isOffset":false,"isSlot":false,"src":"12287:6:0","valueSize":1},{"declaration":67,"isOffset":false,"isSlot":false,"src":"12302:6:0","valueSize":1},{"declaration":83,"isOffset":false,"isSlot":false,"src":"12254:11:0","valueSize":1}],"id":85,"nodeType":"InlineAssembly","src":"12231:119:0"},{"expression":{"id":86,"name":"tempAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"12367:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":71,"id":87,"nodeType":"Return","src":"12360:18:0"}]},"id":89,"implemented":true,"kind":"function","modifiers":[],"name":"toAddress","nameLocation":"12043:9:0","nodeType":"FunctionDefinition","parameters":{"id":68,"nodeType":"ParameterList","parameters":[{"constant":false,"id":65,"mutability":"mutable","name":"_bytes","nameLocation":"12066:6:0","nodeType":"VariableDeclaration","scope":89,"src":"12053:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":64,"name":"bytes","nodeType":"ElementaryTypeName","src":"12053:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67,"mutability":"mutable","name":"_start","nameLocation":"12079:6:0","nodeType":"VariableDeclaration","scope":89,"src":"12074:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint","nodeType":"ElementaryTypeName","src":"12074:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12052:34:0"},"returnParameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89,"src":"12110:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"12110:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12109:9:0"},"scope":332,"src":"12034:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":114,"nodeType":"Block","src":"12472:217:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":99,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91,"src":"12490:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12497:6:0","memberName":"length","nodeType":"MemberAccess","src":"12490:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":101,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":93,"src":"12507:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12516:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12507:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12490:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","id":105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12519:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""},"value":"toUint8_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","typeString":"literal_string \"toUint8_outOfBounds\""}],"id":98,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12482:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12482:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":107,"nodeType":"ExpressionStatement","src":"12482:59:0"},{"assignments":[109],"declarations":[{"constant":false,"id":109,"mutability":"mutable","name":"tempUint","nameLocation":"12557:8:0","nodeType":"VariableDeclaration","scope":114,"src":"12551:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":108,"name":"uint8","nodeType":"ElementaryTypeName","src":"12551:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":110,"nodeType":"VariableDeclarationStatement","src":"12551:14:0"},{"AST":{"nativeSrc":"12585:72:0","nodeType":"YulBlock","src":"12585:72:0","statements":[{"nativeSrc":"12599:48:0","nodeType":"YulAssignment","src":"12599:48:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12625:6:0","nodeType":"YulIdentifier","src":"12625:6:0"},{"kind":"number","nativeSrc":"12633:3:0","nodeType":"YulLiteral","src":"12633:3:0","type":"","value":"0x1"}],"functionName":{"name":"add","nativeSrc":"12621:3:0","nodeType":"YulIdentifier","src":"12621:3:0"},"nativeSrc":"12621:16:0","nodeType":"YulFunctionCall","src":"12621:16:0"},{"name":"_start","nativeSrc":"12639:6:0","nodeType":"YulIdentifier","src":"12639:6:0"}],"functionName":{"name":"add","nativeSrc":"12617:3:0","nodeType":"YulIdentifier","src":"12617:3:0"},"nativeSrc":"12617:29:0","nodeType":"YulFunctionCall","src":"12617:29:0"}],"functionName":{"name":"mload","nativeSrc":"12611:5:0","nodeType":"YulIdentifier","src":"12611:5:0"},"nativeSrc":"12611:36:0","nodeType":"YulFunctionCall","src":"12611:36:0"},"variableNames":[{"name":"tempUint","nativeSrc":"12599:8:0","nodeType":"YulIdentifier","src":"12599:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":91,"isOffset":false,"isSlot":false,"src":"12625:6:0","valueSize":1},{"declaration":93,"isOffset":false,"isSlot":false,"src":"12639:6:0","valueSize":1},{"declaration":109,"isOffset":false,"isSlot":false,"src":"12599:8:0","valueSize":1}],"id":111,"nodeType":"InlineAssembly","src":"12576:81:0"},{"expression":{"id":112,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"12674:8:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":97,"id":113,"nodeType":"Return","src":"12667:15:0"}]},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"12400:7:0","nodeType":"FunctionDefinition","parameters":{"id":94,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91,"mutability":"mutable","name":"_bytes","nameLocation":"12421:6:0","nodeType":"VariableDeclaration","scope":115,"src":"12408:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90,"name":"bytes","nodeType":"ElementaryTypeName","src":"12408:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"_start","nameLocation":"12434:6:0","nodeType":"VariableDeclaration","scope":115,"src":"12429:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":92,"name":"uint","nodeType":"ElementaryTypeName","src":"12429:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12407:34:0"},"returnParameters":{"id":97,"nodeType":"ParameterList","parameters":[{"constant":false,"id":96,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":115,"src":"12465:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":95,"name":"uint8","nodeType":"ElementaryTypeName","src":"12465:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12464:7:0"},"scope":332,"src":"12391:298:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":140,"nodeType":"Block","src":"12778:219:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":125,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"12796:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12803:6:0","memberName":"length","nodeType":"MemberAccess","src":"12796:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":127,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119,"src":"12813:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12822:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12813:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12796:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7431365f6f75744f66426f756e6473","id":131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12825:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""},"value":"toUint16_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab","typeString":"literal_string \"toUint16_outOfBounds\""}],"id":124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12788:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"ExpressionStatement","src":"12788:60:0"},{"assignments":[135],"declarations":[{"constant":false,"id":135,"mutability":"mutable","name":"tempUint","nameLocation":"12865:8:0","nodeType":"VariableDeclaration","scope":140,"src":"12858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":134,"name":"uint16","nodeType":"ElementaryTypeName","src":"12858:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":136,"nodeType":"VariableDeclarationStatement","src":"12858:15:0"},{"AST":{"nativeSrc":"12893:72:0","nodeType":"YulBlock","src":"12893:72:0","statements":[{"nativeSrc":"12907:48:0","nodeType":"YulAssignment","src":"12907:48:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"12933:6:0","nodeType":"YulIdentifier","src":"12933:6:0"},{"kind":"number","nativeSrc":"12941:3:0","nodeType":"YulLiteral","src":"12941:3:0","type":"","value":"0x2"}],"functionName":{"name":"add","nativeSrc":"12929:3:0","nodeType":"YulIdentifier","src":"12929:3:0"},"nativeSrc":"12929:16:0","nodeType":"YulFunctionCall","src":"12929:16:0"},{"name":"_start","nativeSrc":"12947:6:0","nodeType":"YulIdentifier","src":"12947:6:0"}],"functionName":{"name":"add","nativeSrc":"12925:3:0","nodeType":"YulIdentifier","src":"12925:3:0"},"nativeSrc":"12925:29:0","nodeType":"YulFunctionCall","src":"12925:29:0"}],"functionName":{"name":"mload","nativeSrc":"12919:5:0","nodeType":"YulIdentifier","src":"12919:5:0"},"nativeSrc":"12919:36:0","nodeType":"YulFunctionCall","src":"12919:36:0"},"variableNames":[{"name":"tempUint","nativeSrc":"12907:8:0","nodeType":"YulIdentifier","src":"12907:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":117,"isOffset":false,"isSlot":false,"src":"12933:6:0","valueSize":1},{"declaration":119,"isOffset":false,"isSlot":false,"src":"12947:6:0","valueSize":1},{"declaration":135,"isOffset":false,"isSlot":false,"src":"12907:8:0","valueSize":1}],"id":137,"nodeType":"InlineAssembly","src":"12884:81:0"},{"expression":{"id":138,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":135,"src":"12982:8:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":123,"id":139,"nodeType":"Return","src":"12975:15:0"}]},"id":141,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"12704:8:0","nodeType":"FunctionDefinition","parameters":{"id":120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":117,"mutability":"mutable","name":"_bytes","nameLocation":"12726:6:0","nodeType":"VariableDeclaration","scope":141,"src":"12713:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":116,"name":"bytes","nodeType":"ElementaryTypeName","src":"12713:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":119,"mutability":"mutable","name":"_start","nameLocation":"12739:6:0","nodeType":"VariableDeclaration","scope":141,"src":"12734:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":118,"name":"uint","nodeType":"ElementaryTypeName","src":"12734:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12712:34:0"},"returnParameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":141,"src":"12770:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":121,"name":"uint16","nodeType":"ElementaryTypeName","src":"12770:6:0","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12769:8:0"},"scope":332,"src":"12695:302:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":166,"nodeType":"Block","src":"13086:219:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":151,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":143,"src":"13104:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13111:6:0","memberName":"length","nodeType":"MemberAccess","src":"13104:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":153,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":145,"src":"13121:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13130:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13121:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13104:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7433325f6f75744f66426f756e6473","id":157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13133:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""},"value":"toUint32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf","typeString":"literal_string \"toUint32_outOfBounds\""}],"id":150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13096:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13096:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":159,"nodeType":"ExpressionStatement","src":"13096:60:0"},{"assignments":[161],"declarations":[{"constant":false,"id":161,"mutability":"mutable","name":"tempUint","nameLocation":"13173:8:0","nodeType":"VariableDeclaration","scope":166,"src":"13166:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":160,"name":"uint32","nodeType":"ElementaryTypeName","src":"13166:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":162,"nodeType":"VariableDeclarationStatement","src":"13166:15:0"},{"AST":{"nativeSrc":"13201:72:0","nodeType":"YulBlock","src":"13201:72:0","statements":[{"nativeSrc":"13215:48:0","nodeType":"YulAssignment","src":"13215:48:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13241:6:0","nodeType":"YulIdentifier","src":"13241:6:0"},{"kind":"number","nativeSrc":"13249:3:0","nodeType":"YulLiteral","src":"13249:3:0","type":"","value":"0x4"}],"functionName":{"name":"add","nativeSrc":"13237:3:0","nodeType":"YulIdentifier","src":"13237:3:0"},"nativeSrc":"13237:16:0","nodeType":"YulFunctionCall","src":"13237:16:0"},{"name":"_start","nativeSrc":"13255:6:0","nodeType":"YulIdentifier","src":"13255:6:0"}],"functionName":{"name":"add","nativeSrc":"13233:3:0","nodeType":"YulIdentifier","src":"13233:3:0"},"nativeSrc":"13233:29:0","nodeType":"YulFunctionCall","src":"13233:29:0"}],"functionName":{"name":"mload","nativeSrc":"13227:5:0","nodeType":"YulIdentifier","src":"13227:5:0"},"nativeSrc":"13227:36:0","nodeType":"YulFunctionCall","src":"13227:36:0"},"variableNames":[{"name":"tempUint","nativeSrc":"13215:8:0","nodeType":"YulIdentifier","src":"13215:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":143,"isOffset":false,"isSlot":false,"src":"13241:6:0","valueSize":1},{"declaration":145,"isOffset":false,"isSlot":false,"src":"13255:6:0","valueSize":1},{"declaration":161,"isOffset":false,"isSlot":false,"src":"13215:8:0","valueSize":1}],"id":163,"nodeType":"InlineAssembly","src":"13192:81:0"},{"expression":{"id":164,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"13290:8:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":149,"id":165,"nodeType":"Return","src":"13283:15:0"}]},"id":167,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"13012:8:0","nodeType":"FunctionDefinition","parameters":{"id":146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"_bytes","nameLocation":"13034:6:0","nodeType":"VariableDeclaration","scope":167,"src":"13021:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":142,"name":"bytes","nodeType":"ElementaryTypeName","src":"13021:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":145,"mutability":"mutable","name":"_start","nameLocation":"13047:6:0","nodeType":"VariableDeclaration","scope":167,"src":"13042:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":144,"name":"uint","nodeType":"ElementaryTypeName","src":"13042:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13020:34:0"},"returnParameters":{"id":149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":167,"src":"13078:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":147,"name":"uint32","nodeType":"ElementaryTypeName","src":"13078:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"13077:8:0"},"scope":332,"src":"13003:302:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":192,"nodeType":"Block","src":"13394:219:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":177,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"13412:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13419:6:0","memberName":"length","nodeType":"MemberAccess","src":"13412:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":179,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"13429:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"38","id":180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13438:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13429:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13412:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","id":183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13441:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""},"value":"toUint64_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","typeString":"literal_string \"toUint64_outOfBounds\""}],"id":176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13404:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13404:60:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":185,"nodeType":"ExpressionStatement","src":"13404:60:0"},{"assignments":[187],"declarations":[{"constant":false,"id":187,"mutability":"mutable","name":"tempUint","nameLocation":"13481:8:0","nodeType":"VariableDeclaration","scope":192,"src":"13474:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":186,"name":"uint64","nodeType":"ElementaryTypeName","src":"13474:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":188,"nodeType":"VariableDeclarationStatement","src":"13474:15:0"},{"AST":{"nativeSrc":"13509:72:0","nodeType":"YulBlock","src":"13509:72:0","statements":[{"nativeSrc":"13523:48:0","nodeType":"YulAssignment","src":"13523:48:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13549:6:0","nodeType":"YulIdentifier","src":"13549:6:0"},{"kind":"number","nativeSrc":"13557:3:0","nodeType":"YulLiteral","src":"13557:3:0","type":"","value":"0x8"}],"functionName":{"name":"add","nativeSrc":"13545:3:0","nodeType":"YulIdentifier","src":"13545:3:0"},"nativeSrc":"13545:16:0","nodeType":"YulFunctionCall","src":"13545:16:0"},{"name":"_start","nativeSrc":"13563:6:0","nodeType":"YulIdentifier","src":"13563:6:0"}],"functionName":{"name":"add","nativeSrc":"13541:3:0","nodeType":"YulIdentifier","src":"13541:3:0"},"nativeSrc":"13541:29:0","nodeType":"YulFunctionCall","src":"13541:29:0"}],"functionName":{"name":"mload","nativeSrc":"13535:5:0","nodeType":"YulIdentifier","src":"13535:5:0"},"nativeSrc":"13535:36:0","nodeType":"YulFunctionCall","src":"13535:36:0"},"variableNames":[{"name":"tempUint","nativeSrc":"13523:8:0","nodeType":"YulIdentifier","src":"13523:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":169,"isOffset":false,"isSlot":false,"src":"13549:6:0","valueSize":1},{"declaration":171,"isOffset":false,"isSlot":false,"src":"13563:6:0","valueSize":1},{"declaration":187,"isOffset":false,"isSlot":false,"src":"13523:8:0","valueSize":1}],"id":189,"nodeType":"InlineAssembly","src":"13500:81:0"},{"expression":{"id":190,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"13598:8:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":175,"id":191,"nodeType":"Return","src":"13591:15:0"}]},"id":193,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13320:8:0","nodeType":"FunctionDefinition","parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":169,"mutability":"mutable","name":"_bytes","nameLocation":"13342:6:0","nodeType":"VariableDeclaration","scope":193,"src":"13329:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":168,"name":"bytes","nodeType":"ElementaryTypeName","src":"13329:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":171,"mutability":"mutable","name":"_start","nameLocation":"13355:6:0","nodeType":"VariableDeclaration","scope":193,"src":"13350:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":170,"name":"uint","nodeType":"ElementaryTypeName","src":"13350:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13328:34:0"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":193,"src":"13386:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":173,"name":"uint64","nodeType":"ElementaryTypeName","src":"13386:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13385:8:0"},"scope":332,"src":"13311:302:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":218,"nodeType":"Block","src":"13702:220:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":203,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"13720:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13727:6:0","memberName":"length","nodeType":"MemberAccess","src":"13720:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":205,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"13737:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3132","id":206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13746:2:0","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13737:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13720:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e7439365f6f75744f66426f756e6473","id":209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13750:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""},"value":"toUint96_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7","typeString":"literal_string \"toUint96_outOfBounds\""}],"id":202,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13712:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13712:61:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"13712:61:0"},{"assignments":[213],"declarations":[{"constant":false,"id":213,"mutability":"mutable","name":"tempUint","nameLocation":"13790:8:0","nodeType":"VariableDeclaration","scope":218,"src":"13783:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":212,"name":"uint96","nodeType":"ElementaryTypeName","src":"13783:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":214,"nodeType":"VariableDeclarationStatement","src":"13783:15:0"},{"AST":{"nativeSrc":"13818:72:0","nodeType":"YulBlock","src":"13818:72:0","statements":[{"nativeSrc":"13832:48:0","nodeType":"YulAssignment","src":"13832:48:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"13858:6:0","nodeType":"YulIdentifier","src":"13858:6:0"},{"kind":"number","nativeSrc":"13866:3:0","nodeType":"YulLiteral","src":"13866:3:0","type":"","value":"0xc"}],"functionName":{"name":"add","nativeSrc":"13854:3:0","nodeType":"YulIdentifier","src":"13854:3:0"},"nativeSrc":"13854:16:0","nodeType":"YulFunctionCall","src":"13854:16:0"},{"name":"_start","nativeSrc":"13872:6:0","nodeType":"YulIdentifier","src":"13872:6:0"}],"functionName":{"name":"add","nativeSrc":"13850:3:0","nodeType":"YulIdentifier","src":"13850:3:0"},"nativeSrc":"13850:29:0","nodeType":"YulFunctionCall","src":"13850:29:0"}],"functionName":{"name":"mload","nativeSrc":"13844:5:0","nodeType":"YulIdentifier","src":"13844:5:0"},"nativeSrc":"13844:36:0","nodeType":"YulFunctionCall","src":"13844:36:0"},"variableNames":[{"name":"tempUint","nativeSrc":"13832:8:0","nodeType":"YulIdentifier","src":"13832:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":195,"isOffset":false,"isSlot":false,"src":"13858:6:0","valueSize":1},{"declaration":197,"isOffset":false,"isSlot":false,"src":"13872:6:0","valueSize":1},{"declaration":213,"isOffset":false,"isSlot":false,"src":"13832:8:0","valueSize":1}],"id":215,"nodeType":"InlineAssembly","src":"13809:81:0"},{"expression":{"id":216,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"13907:8:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":201,"id":217,"nodeType":"Return","src":"13900:15:0"}]},"id":219,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"13628:8:0","nodeType":"FunctionDefinition","parameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"mutability":"mutable","name":"_bytes","nameLocation":"13650:6:0","nodeType":"VariableDeclaration","scope":219,"src":"13637:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":194,"name":"bytes","nodeType":"ElementaryTypeName","src":"13637:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":197,"mutability":"mutable","name":"_start","nameLocation":"13663:6:0","nodeType":"VariableDeclaration","scope":219,"src":"13658:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint","nodeType":"ElementaryTypeName","src":"13658:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13636:34:0"},"returnParameters":{"id":201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":219,"src":"13694:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":199,"name":"uint96","nodeType":"ElementaryTypeName","src":"13694:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"13693:8:0"},"scope":332,"src":"13619:303:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":244,"nodeType":"Block","src":"14013:223:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":229,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"14031:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14038:6:0","memberName":"length","nodeType":"MemberAccess","src":"14031:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":231,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"14048:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3136","id":232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14057:2:0","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14048:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14031:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743132385f6f75744f66426f756e6473","id":235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14061:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""},"value":"toUint128_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc","typeString":"literal_string \"toUint128_outOfBounds\""}],"id":228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14023:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14023:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":237,"nodeType":"ExpressionStatement","src":"14023:62:0"},{"assignments":[239],"declarations":[{"constant":false,"id":239,"mutability":"mutable","name":"tempUint","nameLocation":"14103:8:0","nodeType":"VariableDeclaration","scope":244,"src":"14095:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":238,"name":"uint128","nodeType":"ElementaryTypeName","src":"14095:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":240,"nodeType":"VariableDeclarationStatement","src":"14095:16:0"},{"AST":{"nativeSrc":"14131:73:0","nodeType":"YulBlock","src":"14131:73:0","statements":[{"nativeSrc":"14145:49:0","nodeType":"YulAssignment","src":"14145:49:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14171:6:0","nodeType":"YulIdentifier","src":"14171:6:0"},{"kind":"number","nativeSrc":"14179:4:0","nodeType":"YulLiteral","src":"14179:4:0","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"14167:3:0","nodeType":"YulIdentifier","src":"14167:3:0"},"nativeSrc":"14167:17:0","nodeType":"YulFunctionCall","src":"14167:17:0"},{"name":"_start","nativeSrc":"14186:6:0","nodeType":"YulIdentifier","src":"14186:6:0"}],"functionName":{"name":"add","nativeSrc":"14163:3:0","nodeType":"YulIdentifier","src":"14163:3:0"},"nativeSrc":"14163:30:0","nodeType":"YulFunctionCall","src":"14163:30:0"}],"functionName":{"name":"mload","nativeSrc":"14157:5:0","nodeType":"YulIdentifier","src":"14157:5:0"},"nativeSrc":"14157:37:0","nodeType":"YulFunctionCall","src":"14157:37:0"},"variableNames":[{"name":"tempUint","nativeSrc":"14145:8:0","nodeType":"YulIdentifier","src":"14145:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":221,"isOffset":false,"isSlot":false,"src":"14171:6:0","valueSize":1},{"declaration":223,"isOffset":false,"isSlot":false,"src":"14186:6:0","valueSize":1},{"declaration":239,"isOffset":false,"isSlot":false,"src":"14145:8:0","valueSize":1}],"id":241,"nodeType":"InlineAssembly","src":"14122:82:0"},{"expression":{"id":242,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"14221:8:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":227,"id":243,"nodeType":"Return","src":"14214:15:0"}]},"id":245,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"13937:9:0","nodeType":"FunctionDefinition","parameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":221,"mutability":"mutable","name":"_bytes","nameLocation":"13960:6:0","nodeType":"VariableDeclaration","scope":245,"src":"13947:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":220,"name":"bytes","nodeType":"ElementaryTypeName","src":"13947:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":223,"mutability":"mutable","name":"_start","nameLocation":"13973:6:0","nodeType":"VariableDeclaration","scope":245,"src":"13968:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":222,"name":"uint","nodeType":"ElementaryTypeName","src":"13968:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13946:34:0"},"returnParameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":245,"src":"14004:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":225,"name":"uint128","nodeType":"ElementaryTypeName","src":"14004:7:0","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14003:9:0"},"scope":332,"src":"13928:308:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":270,"nodeType":"Block","src":"14324:220:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":255,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"14342:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14349:6:0","memberName":"length","nodeType":"MemberAccess","src":"14342:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":257,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"14359:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14368:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14359:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14342:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743235365f6f75744f66426f756e6473","id":261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14372:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""},"value":"toUint256_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b","typeString":"literal_string \"toUint256_outOfBounds\""}],"id":254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14334:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14334:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":263,"nodeType":"ExpressionStatement","src":"14334:62:0"},{"assignments":[265],"declarations":[{"constant":false,"id":265,"mutability":"mutable","name":"tempUint","nameLocation":"14411:8:0","nodeType":"VariableDeclaration","scope":270,"src":"14406:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":264,"name":"uint","nodeType":"ElementaryTypeName","src":"14406:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":266,"nodeType":"VariableDeclarationStatement","src":"14406:13:0"},{"AST":{"nativeSrc":"14439:73:0","nodeType":"YulBlock","src":"14439:73:0","statements":[{"nativeSrc":"14453:49:0","nodeType":"YulAssignment","src":"14453:49:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14479:6:0","nodeType":"YulIdentifier","src":"14479:6:0"},{"kind":"number","nativeSrc":"14487:4:0","nodeType":"YulLiteral","src":"14487:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14475:3:0","nodeType":"YulIdentifier","src":"14475:3:0"},"nativeSrc":"14475:17:0","nodeType":"YulFunctionCall","src":"14475:17:0"},{"name":"_start","nativeSrc":"14494:6:0","nodeType":"YulIdentifier","src":"14494:6:0"}],"functionName":{"name":"add","nativeSrc":"14471:3:0","nodeType":"YulIdentifier","src":"14471:3:0"},"nativeSrc":"14471:30:0","nodeType":"YulFunctionCall","src":"14471:30:0"}],"functionName":{"name":"mload","nativeSrc":"14465:5:0","nodeType":"YulIdentifier","src":"14465:5:0"},"nativeSrc":"14465:37:0","nodeType":"YulFunctionCall","src":"14465:37:0"},"variableNames":[{"name":"tempUint","nativeSrc":"14453:8:0","nodeType":"YulIdentifier","src":"14453:8:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":247,"isOffset":false,"isSlot":false,"src":"14479:6:0","valueSize":1},{"declaration":249,"isOffset":false,"isSlot":false,"src":"14494:6:0","valueSize":1},{"declaration":265,"isOffset":false,"isSlot":false,"src":"14453:8:0","valueSize":1}],"id":267,"nodeType":"InlineAssembly","src":"14430:82:0"},{"expression":{"id":268,"name":"tempUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":265,"src":"14529:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":253,"id":269,"nodeType":"Return","src":"14522:15:0"}]},"id":271,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"14251:9:0","nodeType":"FunctionDefinition","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"_bytes","nameLocation":"14274:6:0","nodeType":"VariableDeclaration","scope":271,"src":"14261:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":246,"name":"bytes","nodeType":"ElementaryTypeName","src":"14261:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":249,"mutability":"mutable","name":"_start","nameLocation":"14287:6:0","nodeType":"VariableDeclaration","scope":271,"src":"14282:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":248,"name":"uint","nodeType":"ElementaryTypeName","src":"14282:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14260:34:0"},"returnParameters":{"id":253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":271,"src":"14318:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":251,"name":"uint","nodeType":"ElementaryTypeName","src":"14318:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14317:6:0"},"scope":332,"src":"14242:302:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":296,"nodeType":"Block","src":"14635:232:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":281,"name":"_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"14653:6:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14660:6:0","memberName":"length","nodeType":"MemberAccess","src":"14653:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":283,"name":"_start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":275,"src":"14670:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14679:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14670:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14653:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","id":287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14683:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""},"value":"toBytes32_outOfBounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","typeString":"literal_string \"toBytes32_outOfBounds\""}],"id":280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14645:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14645:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":289,"nodeType":"ExpressionStatement","src":"14645:62:0"},{"assignments":[291],"declarations":[{"constant":false,"id":291,"mutability":"mutable","name":"tempBytes32","nameLocation":"14725:11:0","nodeType":"VariableDeclaration","scope":296,"src":"14717:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14717:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":292,"nodeType":"VariableDeclarationStatement","src":"14717:19:0"},{"AST":{"nativeSrc":"14756:76:0","nodeType":"YulBlock","src":"14756:76:0","statements":[{"nativeSrc":"14770:52:0","nodeType":"YulAssignment","src":"14770:52:0","value":{"arguments":[{"arguments":[{"arguments":[{"name":"_bytes","nativeSrc":"14799:6:0","nodeType":"YulIdentifier","src":"14799:6:0"},{"kind":"number","nativeSrc":"14807:4:0","nodeType":"YulLiteral","src":"14807:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14795:3:0","nodeType":"YulIdentifier","src":"14795:3:0"},"nativeSrc":"14795:17:0","nodeType":"YulFunctionCall","src":"14795:17:0"},{"name":"_start","nativeSrc":"14814:6:0","nodeType":"YulIdentifier","src":"14814:6:0"}],"functionName":{"name":"add","nativeSrc":"14791:3:0","nodeType":"YulIdentifier","src":"14791:3:0"},"nativeSrc":"14791:30:0","nodeType":"YulFunctionCall","src":"14791:30:0"}],"functionName":{"name":"mload","nativeSrc":"14785:5:0","nodeType":"YulIdentifier","src":"14785:5:0"},"nativeSrc":"14785:37:0","nodeType":"YulFunctionCall","src":"14785:37:0"},"variableNames":[{"name":"tempBytes32","nativeSrc":"14770:11:0","nodeType":"YulIdentifier","src":"14770:11:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":273,"isOffset":false,"isSlot":false,"src":"14799:6:0","valueSize":1},{"declaration":275,"isOffset":false,"isSlot":false,"src":"14814:6:0","valueSize":1},{"declaration":291,"isOffset":false,"isSlot":false,"src":"14770:11:0","valueSize":1}],"id":293,"nodeType":"InlineAssembly","src":"14747:85:0"},{"expression":{"id":294,"name":"tempBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"14849:11:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":279,"id":295,"nodeType":"Return","src":"14842:18:0"}]},"id":297,"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"14559:9:0","nodeType":"FunctionDefinition","parameters":{"id":276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"_bytes","nameLocation":"14582:6:0","nodeType":"VariableDeclaration","scope":297,"src":"14569:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":272,"name":"bytes","nodeType":"ElementaryTypeName","src":"14569:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":275,"mutability":"mutable","name":"_start","nameLocation":"14595:6:0","nodeType":"VariableDeclaration","scope":297,"src":"14590:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":274,"name":"uint","nodeType":"ElementaryTypeName","src":"14590:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14568:34:0"},"returnParameters":{"id":279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":297,"src":"14626:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14626:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14625:9:0"},"scope":332,"src":"14550:317:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":313,"nodeType":"Block","src":"14966:1331:0","statements":[{"assignments":[307],"declarations":[{"constant":false,"id":307,"mutability":"mutable","name":"success","nameLocation":"14981:7:0","nodeType":"VariableDeclaration","scope":313,"src":"14976:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":306,"name":"bool","nodeType":"ElementaryTypeName","src":"14976:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":309,"initialValue":{"hexValue":"74727565","id":308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14991:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"14976:19:0"},{"AST":{"nativeSrc":"15015:1251:0","nodeType":"YulBlock","src":"15015:1251:0","statements":[{"nativeSrc":"15029:30:0","nodeType":"YulVariableDeclaration","src":"15029:30:0","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15049:9:0","nodeType":"YulIdentifier","src":"15049:9:0"}],"functionName":{"name":"mload","nativeSrc":"15043:5:0","nodeType":"YulIdentifier","src":"15043:5:0"},"nativeSrc":"15043:16:0","nodeType":"YulFunctionCall","src":"15043:16:0"},"variables":[{"name":"length","nativeSrc":"15033:6:0","nodeType":"YulTypedName","src":"15033:6:0","type":""}]},{"cases":[{"body":{"nativeSrc":"15192:969:0","nodeType":"YulBlock","src":"15192:969:0","statements":[{"nativeSrc":"15421:11:0","nodeType":"YulVariableDeclaration","src":"15421:11:0","value":{"kind":"number","nativeSrc":"15431:1:0","nodeType":"YulLiteral","src":"15431:1:0","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"15425:2:0","nodeType":"YulTypedName","src":"15425:2:0","type":""}]},{"nativeSrc":"15450:30:0","nodeType":"YulVariableDeclaration","src":"15450:30:0","value":{"arguments":[{"name":"_preBytes","nativeSrc":"15464:9:0","nodeType":"YulIdentifier","src":"15464:9:0"},{"kind":"number","nativeSrc":"15475:4:0","nodeType":"YulLiteral","src":"15475:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15460:3:0","nodeType":"YulIdentifier","src":"15460:3:0"},"nativeSrc":"15460:20:0","nodeType":"YulFunctionCall","src":"15460:20:0"},"variables":[{"name":"mc","nativeSrc":"15454:2:0","nodeType":"YulTypedName","src":"15454:2:0","type":""}]},{"nativeSrc":"15497:26:0","nodeType":"YulVariableDeclaration","src":"15497:26:0","value":{"arguments":[{"name":"mc","nativeSrc":"15512:2:0","nodeType":"YulIdentifier","src":"15512:2:0"},{"name":"length","nativeSrc":"15516:6:0","nodeType":"YulIdentifier","src":"15516:6:0"}],"functionName":{"name":"add","nativeSrc":"15508:3:0","nodeType":"YulIdentifier","src":"15508:3:0"},"nativeSrc":"15508:15:0","nodeType":"YulFunctionCall","src":"15508:15:0"},"variables":[{"name":"end","nativeSrc":"15501:3:0","nodeType":"YulTypedName","src":"15501:3:0","type":""}]},{"body":{"nativeSrc":"15863:284:0","nodeType":"YulBlock","src":"15863:284:0","statements":[{"body":{"nativeSrc":"15999:130:0","nodeType":"YulBlock","src":"15999:130:0","statements":[{"nativeSrc":"16063:12:0","nodeType":"YulAssignment","src":"16063:12:0","value":{"kind":"number","nativeSrc":"16074:1:0","nodeType":"YulLiteral","src":"16074:1:0","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16063:7:0","nodeType":"YulIdentifier","src":"16063:7:0"}]},{"nativeSrc":"16100:7:0","nodeType":"YulAssignment","src":"16100:7:0","value":{"kind":"number","nativeSrc":"16106:1:0","nodeType":"YulLiteral","src":"16106:1:0","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"16100:2:0","nodeType":"YulIdentifier","src":"16100:2:0"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"15982:2:0","nodeType":"YulIdentifier","src":"15982:2:0"}],"functionName":{"name":"mload","nativeSrc":"15976:5:0","nodeType":"YulIdentifier","src":"15976:5:0"},"nativeSrc":"15976:9:0","nodeType":"YulFunctionCall","src":"15976:9:0"},{"arguments":[{"name":"cc","nativeSrc":"15993:2:0","nodeType":"YulIdentifier","src":"15993:2:0"}],"functionName":{"name":"mload","nativeSrc":"15987:5:0","nodeType":"YulIdentifier","src":"15987:5:0"},"nativeSrc":"15987:9:0","nodeType":"YulFunctionCall","src":"15987:9:0"}],"functionName":{"name":"eq","nativeSrc":"15973:2:0","nodeType":"YulIdentifier","src":"15973:2:0"},"nativeSrc":"15973:24:0","nodeType":"YulFunctionCall","src":"15973:24:0"}],"functionName":{"name":"iszero","nativeSrc":"15966:6:0","nodeType":"YulIdentifier","src":"15966:6:0"},"nativeSrc":"15966:32:0","nodeType":"YulFunctionCall","src":"15966:32:0"},"nativeSrc":"15963:166:0","nodeType":"YulIf","src":"15963:166:0"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"15745:2:0","nodeType":"YulIdentifier","src":"15745:2:0"},{"name":"end","nativeSrc":"15749:3:0","nodeType":"YulIdentifier","src":"15749:3:0"}],"functionName":{"name":"lt","nativeSrc":"15742:2:0","nodeType":"YulIdentifier","src":"15742:2:0"},"nativeSrc":"15742:11:0","nodeType":"YulFunctionCall","src":"15742:11:0"},{"name":"cb","nativeSrc":"15755:2:0","nodeType":"YulIdentifier","src":"15755:2:0"}],"functionName":{"name":"add","nativeSrc":"15738:3:0","nodeType":"YulIdentifier","src":"15738:3:0"},"nativeSrc":"15738:20:0","nodeType":"YulFunctionCall","src":"15738:20:0"},{"kind":"number","nativeSrc":"15760:1:0","nodeType":"YulLiteral","src":"15760:1:0","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"15735:2:0","nodeType":"YulIdentifier","src":"15735:2:0"},"nativeSrc":"15735:27:0","nodeType":"YulFunctionCall","src":"15735:27:0"},"nativeSrc":"15541:606:0","nodeType":"YulForLoop","post":{"nativeSrc":"15763:99:0","nodeType":"YulBlock","src":"15763:99:0","statements":[{"nativeSrc":"15785:19:0","nodeType":"YulAssignment","src":"15785:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"15795:2:0","nodeType":"YulIdentifier","src":"15795:2:0"},{"kind":"number","nativeSrc":"15799:4:0","nodeType":"YulLiteral","src":"15799:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15791:3:0","nodeType":"YulIdentifier","src":"15791:3:0"},"nativeSrc":"15791:13:0","nodeType":"YulFunctionCall","src":"15791:13:0"},"variableNames":[{"name":"mc","nativeSrc":"15785:2:0","nodeType":"YulIdentifier","src":"15785:2:0"}]},{"nativeSrc":"15825:19:0","nodeType":"YulAssignment","src":"15825:19:0","value":{"arguments":[{"name":"cc","nativeSrc":"15835:2:0","nodeType":"YulIdentifier","src":"15835:2:0"},{"kind":"number","nativeSrc":"15839:4:0","nodeType":"YulLiteral","src":"15839:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15831:3:0","nodeType":"YulIdentifier","src":"15831:3:0"},"nativeSrc":"15831:13:0","nodeType":"YulFunctionCall","src":"15831:13:0"},"variableNames":[{"name":"cc","nativeSrc":"15825:2:0","nodeType":"YulIdentifier","src":"15825:2:0"}]}]},"pre":{"nativeSrc":"15545:189:0","nodeType":"YulBlock","src":"15545:189:0","statements":[{"nativeSrc":"15567:31:0","nodeType":"YulVariableDeclaration","src":"15567:31:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"15581:10:0","nodeType":"YulIdentifier","src":"15581:10:0"},{"kind":"number","nativeSrc":"15593:4:0","nodeType":"YulLiteral","src":"15593:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15577:3:0","nodeType":"YulIdentifier","src":"15577:3:0"},"nativeSrc":"15577:21:0","nodeType":"YulFunctionCall","src":"15577:21:0"},"variables":[{"name":"cc","nativeSrc":"15571:2:0","nodeType":"YulTypedName","src":"15571:2:0","type":""}]}]},"src":"15541:606:0"}]},"nativeSrc":"15185:976:0","nodeType":"YulCase","src":"15185:976:0","value":{"kind":"number","nativeSrc":"15190:1:0","nodeType":"YulLiteral","src":"15190:1:0","type":"","value":"1"}},{"body":{"nativeSrc":"16182:74:0","nodeType":"YulBlock","src":"16182:74:0","statements":[{"nativeSrc":"16230:12:0","nodeType":"YulAssignment","src":"16230:12:0","value":{"kind":"number","nativeSrc":"16241:1:0","nodeType":"YulLiteral","src":"16241:1:0","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"16230:7:0","nodeType":"YulIdentifier","src":"16230:7:0"}]}]},"nativeSrc":"16174:82:0","nodeType":"YulCase","src":"16174:82:0","value":"default"}],"expression":{"arguments":[{"name":"length","nativeSrc":"15146:6:0","nodeType":"YulIdentifier","src":"15146:6:0"},{"arguments":[{"name":"_postBytes","nativeSrc":"15160:10:0","nodeType":"YulIdentifier","src":"15160:10:0"}],"functionName":{"name":"mload","nativeSrc":"15154:5:0","nodeType":"YulIdentifier","src":"15154:5:0"},"nativeSrc":"15154:17:0","nodeType":"YulFunctionCall","src":"15154:17:0"}],"functionName":{"name":"eq","nativeSrc":"15143:2:0","nodeType":"YulIdentifier","src":"15143:2:0"},"nativeSrc":"15143:29:0","nodeType":"YulFunctionCall","src":"15143:29:0"},"nativeSrc":"15136:1120:0","nodeType":"YulSwitch","src":"15136:1120:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":301,"isOffset":false,"isSlot":false,"src":"15160:10:0","valueSize":1},{"declaration":301,"isOffset":false,"isSlot":false,"src":"15581:10:0","valueSize":1},{"declaration":299,"isOffset":false,"isSlot":false,"src":"15049:9:0","valueSize":1},{"declaration":299,"isOffset":false,"isSlot":false,"src":"15464:9:0","valueSize":1},{"declaration":307,"isOffset":false,"isSlot":false,"src":"16063:7:0","valueSize":1},{"declaration":307,"isOffset":false,"isSlot":false,"src":"16230:7:0","valueSize":1}],"id":310,"nodeType":"InlineAssembly","src":"15006:1260:0"},{"expression":{"id":311,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"16283:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":305,"id":312,"nodeType":"Return","src":"16276:14:0"}]},"id":314,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"14882:5:0","nodeType":"FunctionDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"mutability":"mutable","name":"_preBytes","nameLocation":"14901:9:0","nodeType":"VariableDeclaration","scope":314,"src":"14888:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":298,"name":"bytes","nodeType":"ElementaryTypeName","src":"14888:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":301,"mutability":"mutable","name":"_postBytes","nameLocation":"14925:10:0","nodeType":"VariableDeclaration","scope":314,"src":"14912:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":300,"name":"bytes","nodeType":"ElementaryTypeName","src":"14912:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14887:49:0"},"returnParameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"14960:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":303,"name":"bool","nodeType":"ElementaryTypeName","src":"14960:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14959:6:0"},"scope":332,"src":"14873:1424:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":330,"nodeType":"Block","src":"16404:2585:0","statements":[{"assignments":[324],"declarations":[{"constant":false,"id":324,"mutability":"mutable","name":"success","nameLocation":"16419:7:0","nodeType":"VariableDeclaration","scope":330,"src":"16414:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":323,"name":"bool","nodeType":"ElementaryTypeName","src":"16414:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":326,"initialValue":{"hexValue":"74727565","id":325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16429:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"16414:19:0"},{"AST":{"nativeSrc":"16453:2505:0","nodeType":"YulBlock","src":"16453:2505:0","statements":[{"nativeSrc":"16512:34:0","nodeType":"YulVariableDeclaration","src":"16512:34:0","value":{"arguments":[{"name":"_preBytes.slot","nativeSrc":"16531:14:0","nodeType":"YulIdentifier","src":"16531:14:0"}],"functionName":{"name":"sload","nativeSrc":"16525:5:0","nodeType":"YulIdentifier","src":"16525:5:0"},"nativeSrc":"16525:21:0","nodeType":"YulFunctionCall","src":"16525:21:0"},"variables":[{"name":"fslot","nativeSrc":"16516:5:0","nodeType":"YulTypedName","src":"16516:5:0","type":""}]},{"nativeSrc":"16637:76:0","nodeType":"YulVariableDeclaration","src":"16637:76:0","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"16660:5:0","nodeType":"YulIdentifier","src":"16660:5:0"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16675:5:0","nodeType":"YulLiteral","src":"16675:5:0","type":"","value":"0x100"},{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"16693:5:0","nodeType":"YulIdentifier","src":"16693:5:0"},{"kind":"number","nativeSrc":"16700:1:0","nodeType":"YulLiteral","src":"16700:1:0","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16689:3:0","nodeType":"YulIdentifier","src":"16689:3:0"},"nativeSrc":"16689:13:0","nodeType":"YulFunctionCall","src":"16689:13:0"}],"functionName":{"name":"iszero","nativeSrc":"16682:6:0","nodeType":"YulIdentifier","src":"16682:6:0"},"nativeSrc":"16682:21:0","nodeType":"YulFunctionCall","src":"16682:21:0"}],"functionName":{"name":"mul","nativeSrc":"16671:3:0","nodeType":"YulIdentifier","src":"16671:3:0"},"nativeSrc":"16671:33:0","nodeType":"YulFunctionCall","src":"16671:33:0"},{"kind":"number","nativeSrc":"16706:1:0","nodeType":"YulLiteral","src":"16706:1:0","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16667:3:0","nodeType":"YulIdentifier","src":"16667:3:0"},"nativeSrc":"16667:41:0","nodeType":"YulFunctionCall","src":"16667:41:0"}],"functionName":{"name":"and","nativeSrc":"16656:3:0","nodeType":"YulIdentifier","src":"16656:3:0"},"nativeSrc":"16656:53:0","nodeType":"YulFunctionCall","src":"16656:53:0"},{"kind":"number","nativeSrc":"16711:1:0","nodeType":"YulLiteral","src":"16711:1:0","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"16652:3:0","nodeType":"YulIdentifier","src":"16652:3:0"},"nativeSrc":"16652:61:0","nodeType":"YulFunctionCall","src":"16652:61:0"},"variables":[{"name":"slength","nativeSrc":"16641:7:0","nodeType":"YulTypedName","src":"16641:7:0","type":""}]},{"nativeSrc":"16726:32:0","nodeType":"YulVariableDeclaration","src":"16726:32:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"16747:10:0","nodeType":"YulIdentifier","src":"16747:10:0"}],"functionName":{"name":"mload","nativeSrc":"16741:5:0","nodeType":"YulIdentifier","src":"16741:5:0"},"nativeSrc":"16741:17:0","nodeType":"YulFunctionCall","src":"16741:17:0"},"variables":[{"name":"mlength","nativeSrc":"16730:7:0","nodeType":"YulTypedName","src":"16730:7:0","type":""}]},{"cases":[{"body":{"nativeSrc":"16882:1971:0","nodeType":"YulBlock","src":"16882:1971:0","statements":[{"body":{"nativeSrc":"17193:1646:0","nodeType":"YulBlock","src":"17193:1646:0","statements":[{"cases":[{"body":{"nativeSrc":"17265:340:0","nodeType":"YulBlock","src":"17265:340:0","statements":[{"nativeSrc":"17358:38:0","nodeType":"YulAssignment","src":"17358:38:0","value":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17375:5:0","nodeType":"YulIdentifier","src":"17375:5:0"},{"kind":"number","nativeSrc":"17382:5:0","nodeType":"YulLiteral","src":"17382:5:0","type":"","value":"0x100"}],"functionName":{"name":"div","nativeSrc":"17371:3:0","nodeType":"YulIdentifier","src":"17371:3:0"},"nativeSrc":"17371:17:0","nodeType":"YulFunctionCall","src":"17371:17:0"},{"kind":"number","nativeSrc":"17390:5:0","nodeType":"YulLiteral","src":"17390:5:0","type":"","value":"0x100"}],"functionName":{"name":"mul","nativeSrc":"17367:3:0","nodeType":"YulIdentifier","src":"17367:3:0"},"nativeSrc":"17367:29:0","nodeType":"YulFunctionCall","src":"17367:29:0"},"variableNames":[{"name":"fslot","nativeSrc":"17358:5:0","nodeType":"YulIdentifier","src":"17358:5:0"}]},{"body":{"nativeSrc":"17473:110:0","nodeType":"YulBlock","src":"17473:110:0","statements":[{"nativeSrc":"17545:12:0","nodeType":"YulAssignment","src":"17545:12:0","value":{"kind":"number","nativeSrc":"17556:1:0","nodeType":"YulLiteral","src":"17556:1:0","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"17545:7:0","nodeType":"YulIdentifier","src":"17545:7:0"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fslot","nativeSrc":"17435:5:0","nodeType":"YulIdentifier","src":"17435:5:0"},{"arguments":[{"arguments":[{"name":"_postBytes","nativeSrc":"17452:10:0","nodeType":"YulIdentifier","src":"17452:10:0"},{"kind":"number","nativeSrc":"17464:4:0","nodeType":"YulLiteral","src":"17464:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17448:3:0","nodeType":"YulIdentifier","src":"17448:3:0"},"nativeSrc":"17448:21:0","nodeType":"YulFunctionCall","src":"17448:21:0"}],"functionName":{"name":"mload","nativeSrc":"17442:5:0","nodeType":"YulIdentifier","src":"17442:5:0"},"nativeSrc":"17442:28:0","nodeType":"YulFunctionCall","src":"17442:28:0"}],"functionName":{"name":"eq","nativeSrc":"17432:2:0","nodeType":"YulIdentifier","src":"17432:2:0"},"nativeSrc":"17432:39:0","nodeType":"YulFunctionCall","src":"17432:39:0"}],"functionName":{"name":"iszero","nativeSrc":"17425:6:0","nodeType":"YulIdentifier","src":"17425:6:0"},"nativeSrc":"17425:47:0","nodeType":"YulFunctionCall","src":"17425:47:0"},"nativeSrc":"17422:161:0","nodeType":"YulIf","src":"17422:161:0"}]},"nativeSrc":"17258:347:0","nodeType":"YulCase","src":"17258:347:0","value":{"kind":"number","nativeSrc":"17263:1:0","nodeType":"YulLiteral","src":"17263:1:0","type":"","value":"1"}},{"body":{"nativeSrc":"17634:1187:0","nodeType":"YulBlock","src":"17634:1187:0","statements":[{"nativeSrc":"17903:11:0","nodeType":"YulVariableDeclaration","src":"17903:11:0","value":{"kind":"number","nativeSrc":"17913:1:0","nodeType":"YulLiteral","src":"17913:1:0","type":"","value":"1"},"variables":[{"name":"cb","nativeSrc":"17907:2:0","nodeType":"YulTypedName","src":"17907:2:0","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18027:3:0","nodeType":"YulLiteral","src":"18027:3:0","type":"","value":"0x0"},{"name":"_preBytes.slot","nativeSrc":"18032:14:0","nodeType":"YulIdentifier","src":"18032:14:0"}],"functionName":{"name":"mstore","nativeSrc":"18020:6:0","nodeType":"YulIdentifier","src":"18020:6:0"},"nativeSrc":"18020:27:0","nodeType":"YulFunctionCall","src":"18020:27:0"},"nativeSrc":"18020:27:0","nodeType":"YulExpressionStatement","src":"18020:27:0"},{"nativeSrc":"18072:30:0","nodeType":"YulVariableDeclaration","src":"18072:30:0","value":{"arguments":[{"kind":"number","nativeSrc":"18092:3:0","nodeType":"YulLiteral","src":"18092:3:0","type":"","value":"0x0"},{"kind":"number","nativeSrc":"18097:4:0","nodeType":"YulLiteral","src":"18097:4:0","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18082:9:0","nodeType":"YulIdentifier","src":"18082:9:0"},"nativeSrc":"18082:20:0","nodeType":"YulFunctionCall","src":"18082:20:0"},"variables":[{"name":"sc","nativeSrc":"18076:2:0","nodeType":"YulTypedName","src":"18076:2:0","type":""}]},{"nativeSrc":"18128:31:0","nodeType":"YulVariableDeclaration","src":"18128:31:0","value":{"arguments":[{"name":"_postBytes","nativeSrc":"18142:10:0","nodeType":"YulIdentifier","src":"18142:10:0"},{"kind":"number","nativeSrc":"18154:4:0","nodeType":"YulLiteral","src":"18154:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18138:3:0","nodeType":"YulIdentifier","src":"18138:3:0"},"nativeSrc":"18138:21:0","nodeType":"YulFunctionCall","src":"18138:21:0"},"variables":[{"name":"mc","nativeSrc":"18132:2:0","nodeType":"YulTypedName","src":"18132:2:0","type":""}]},{"nativeSrc":"18184:27:0","nodeType":"YulVariableDeclaration","src":"18184:27:0","value":{"arguments":[{"name":"mc","nativeSrc":"18199:2:0","nodeType":"YulIdentifier","src":"18199:2:0"},{"name":"mlength","nativeSrc":"18203:7:0","nodeType":"YulIdentifier","src":"18203:7:0"}],"functionName":{"name":"add","nativeSrc":"18195:3:0","nodeType":"YulIdentifier","src":"18195:3:0"},"nativeSrc":"18195:16:0","nodeType":"YulFunctionCall","src":"18195:16:0"},"variables":[{"name":"end","nativeSrc":"18188:3:0","nodeType":"YulTypedName","src":"18188:3:0","type":""}]},{"body":{"nativeSrc":"18545:254:0","nodeType":"YulBlock","src":"18545:254:0","statements":[{"body":{"nativeSrc":"18611:162:0","nodeType":"YulBlock","src":"18611:162:0","statements":[{"nativeSrc":"18691:12:0","nodeType":"YulAssignment","src":"18691:12:0","value":{"kind":"number","nativeSrc":"18702:1:0","nodeType":"YulLiteral","src":"18702:1:0","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18691:7:0","nodeType":"YulIdentifier","src":"18691:7:0"}]},{"nativeSrc":"18736:7:0","nodeType":"YulAssignment","src":"18736:7:0","value":{"kind":"number","nativeSrc":"18742:1:0","nodeType":"YulLiteral","src":"18742:1:0","type":"","value":"0"},"variableNames":[{"name":"cb","nativeSrc":"18736:2:0","nodeType":"YulIdentifier","src":"18736:2:0"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"sc","nativeSrc":"18594:2:0","nodeType":"YulIdentifier","src":"18594:2:0"}],"functionName":{"name":"sload","nativeSrc":"18588:5:0","nodeType":"YulIdentifier","src":"18588:5:0"},"nativeSrc":"18588:9:0","nodeType":"YulFunctionCall","src":"18588:9:0"},{"arguments":[{"name":"mc","nativeSrc":"18605:2:0","nodeType":"YulIdentifier","src":"18605:2:0"}],"functionName":{"name":"mload","nativeSrc":"18599:5:0","nodeType":"YulIdentifier","src":"18599:5:0"},"nativeSrc":"18599:9:0","nodeType":"YulFunctionCall","src":"18599:9:0"}],"functionName":{"name":"eq","nativeSrc":"18585:2:0","nodeType":"YulIdentifier","src":"18585:2:0"},"nativeSrc":"18585:24:0","nodeType":"YulFunctionCall","src":"18585:24:0"}],"functionName":{"name":"iszero","nativeSrc":"18578:6:0","nodeType":"YulIdentifier","src":"18578:6:0"},"nativeSrc":"18578:32:0","nodeType":"YulFunctionCall","src":"18578:32:0"},"nativeSrc":"18575:198:0","nodeType":"YulIf","src":"18575:198:0"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"mc","nativeSrc":"18406:2:0","nodeType":"YulIdentifier","src":"18406:2:0"},{"name":"end","nativeSrc":"18410:3:0","nodeType":"YulIdentifier","src":"18410:3:0"}],"functionName":{"name":"lt","nativeSrc":"18403:2:0","nodeType":"YulIdentifier","src":"18403:2:0"},"nativeSrc":"18403:11:0","nodeType":"YulFunctionCall","src":"18403:11:0"},{"name":"cb","nativeSrc":"18416:2:0","nodeType":"YulIdentifier","src":"18416:2:0"}],"functionName":{"name":"add","nativeSrc":"18399:3:0","nodeType":"YulIdentifier","src":"18399:3:0"},"nativeSrc":"18399:20:0","nodeType":"YulFunctionCall","src":"18399:20:0"},{"kind":"number","nativeSrc":"18421:1:0","nodeType":"YulLiteral","src":"18421:1:0","type":"","value":"2"}],"functionName":{"name":"eq","nativeSrc":"18396:2:0","nodeType":"YulIdentifier","src":"18396:2:0"},"nativeSrc":"18396:27:0","nodeType":"YulFunctionCall","src":"18396:27:0"},"nativeSrc":"18363:436:0","nodeType":"YulForLoop","post":{"nativeSrc":"18424:120:0","nodeType":"YulBlock","src":"18424:120:0","statements":[{"nativeSrc":"18454:16:0","nodeType":"YulAssignment","src":"18454:16:0","value":{"arguments":[{"name":"sc","nativeSrc":"18464:2:0","nodeType":"YulIdentifier","src":"18464:2:0"},{"kind":"number","nativeSrc":"18468:1:0","nodeType":"YulLiteral","src":"18468:1:0","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"18460:3:0","nodeType":"YulIdentifier","src":"18460:3:0"},"nativeSrc":"18460:10:0","nodeType":"YulFunctionCall","src":"18460:10:0"},"variableNames":[{"name":"sc","nativeSrc":"18454:2:0","nodeType":"YulIdentifier","src":"18454:2:0"}]},{"nativeSrc":"18499:19:0","nodeType":"YulAssignment","src":"18499:19:0","value":{"arguments":[{"name":"mc","nativeSrc":"18509:2:0","nodeType":"YulIdentifier","src":"18509:2:0"},{"kind":"number","nativeSrc":"18513:4:0","nodeType":"YulLiteral","src":"18513:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18505:3:0","nodeType":"YulIdentifier","src":"18505:3:0"},"nativeSrc":"18505:13:0","nodeType":"YulFunctionCall","src":"18505:13:0"},"variableNames":[{"name":"mc","nativeSrc":"18499:2:0","nodeType":"YulIdentifier","src":"18499:2:0"}]}]},"pre":{"nativeSrc":"18367:28:0","nodeType":"YulBlock","src":"18367:28:0","statements":[]},"src":"18363:436:0"}]},"nativeSrc":"17626:1195:0","nodeType":"YulCase","src":"17626:1195:0","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"17225:7:0","nodeType":"YulIdentifier","src":"17225:7:0"},{"kind":"number","nativeSrc":"17234:2:0","nodeType":"YulLiteral","src":"17234:2:0","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17222:2:0","nodeType":"YulIdentifier","src":"17222:2:0"},"nativeSrc":"17222:15:0","nodeType":"YulFunctionCall","src":"17222:15:0"},"nativeSrc":"17215:1606:0","nodeType":"YulSwitch","src":"17215:1606:0"}]},"condition":{"arguments":[{"arguments":[{"name":"slength","nativeSrc":"17183:7:0","nodeType":"YulIdentifier","src":"17183:7:0"}],"functionName":{"name":"iszero","nativeSrc":"17176:6:0","nodeType":"YulIdentifier","src":"17176:6:0"},"nativeSrc":"17176:15:0","nodeType":"YulFunctionCall","src":"17176:15:0"}],"functionName":{"name":"iszero","nativeSrc":"17169:6:0","nodeType":"YulIdentifier","src":"17169:6:0"},"nativeSrc":"17169:23:0","nodeType":"YulFunctionCall","src":"17169:23:0"},"nativeSrc":"17166:1673:0","nodeType":"YulIf","src":"17166:1673:0"}]},"nativeSrc":"16875:1978:0","nodeType":"YulCase","src":"16875:1978:0","value":{"kind":"number","nativeSrc":"16880:1:0","nodeType":"YulLiteral","src":"16880:1:0","type":"","value":"1"}},{"body":{"nativeSrc":"18874:74:0","nodeType":"YulBlock","src":"18874:74:0","statements":[{"nativeSrc":"18922:12:0","nodeType":"YulAssignment","src":"18922:12:0","value":{"kind":"number","nativeSrc":"18933:1:0","nodeType":"YulLiteral","src":"18933:1:0","type":"","value":"0"},"variableNames":[{"name":"success","nativeSrc":"18922:7:0","nodeType":"YulIdentifier","src":"18922:7:0"}]}]},"nativeSrc":"18866:82:0","nodeType":"YulCase","src":"18866:82:0","value":"default"}],"expression":{"arguments":[{"name":"slength","nativeSrc":"16845:7:0","nodeType":"YulIdentifier","src":"16845:7:0"},{"name":"mlength","nativeSrc":"16854:7:0","nodeType":"YulIdentifier","src":"16854:7:0"}],"functionName":{"name":"eq","nativeSrc":"16842:2:0","nodeType":"YulIdentifier","src":"16842:2:0"},"nativeSrc":"16842:20:0","nodeType":"YulFunctionCall","src":"16842:20:0"},"nativeSrc":"16835:2113:0","nodeType":"YulSwitch","src":"16835:2113:0"}]},"evmVersion":"paris","externalReferences":[{"declaration":318,"isOffset":false,"isSlot":false,"src":"16747:10:0","valueSize":1},{"declaration":318,"isOffset":false,"isSlot":false,"src":"17452:10:0","valueSize":1},{"declaration":318,"isOffset":false,"isSlot":false,"src":"18142:10:0","valueSize":1},{"declaration":316,"isOffset":false,"isSlot":true,"src":"16531:14:0","suffix":"slot","valueSize":1},{"declaration":316,"isOffset":false,"isSlot":true,"src":"18032:14:0","suffix":"slot","valueSize":1},{"declaration":324,"isOffset":false,"isSlot":false,"src":"17545:7:0","valueSize":1},{"declaration":324,"isOffset":false,"isSlot":false,"src":"18691:7:0","valueSize":1},{"declaration":324,"isOffset":false,"isSlot":false,"src":"18922:7:0","valueSize":1}],"id":327,"nodeType":"InlineAssembly","src":"16444:2514:0"},{"expression":{"id":328,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"18975:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":322,"id":329,"nodeType":"Return","src":"18968:14:0"}]},"id":331,"implemented":true,"kind":"function","modifiers":[],"name":"equalStorage","nameLocation":"16312:12:0","nodeType":"FunctionDefinition","parameters":{"id":319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":316,"mutability":"mutable","name":"_preBytes","nameLocation":"16339:9:0","nodeType":"VariableDeclaration","scope":331,"src":"16325:23:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":315,"name":"bytes","nodeType":"ElementaryTypeName","src":"16325:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":318,"mutability":"mutable","name":"_postBytes","nameLocation":"16363:10:0","nodeType":"VariableDeclaration","scope":331,"src":"16350:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":317,"name":"bytes","nodeType":"ElementaryTypeName","src":"16350:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16324:50:0"},"returnParameters":{"id":322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":331,"src":"16398:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":320,"name":"bool","nodeType":"ElementaryTypeName","src":"16398:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16397:6:0"},"scope":332,"src":"16303:2686:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":333,"src":"369:18622:0","usedErrors":[],"usedEvents":[]}],"src":"336:18656:0"},"id":0},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","exportedSymbols":{"ExcessivelySafeCall":[429]},"id":430,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":334,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"46:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"ExcessivelySafeCall","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":429,"linearizedBaseContracts":[429],"name":"ExcessivelySafeCall","nameLocation":"80:19:1","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":337,"mutability":"constant","name":"LOW_28_MASK","nameLocation":"120:11:1","nodeType":"VariableDeclaration","scope":429,"src":"106:94:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":335,"name":"uint","nodeType":"ElementaryTypeName","src":"106:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030306666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"134:66:1","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"body":{"id":371,"nodeType":"Block","src":"1285:1100:1","statements":[{"assignments":[354],"declarations":[{"constant":false,"id":354,"mutability":"mutable","name":"_toCopy","nameLocation":"1336:7:1","nodeType":"VariableDeclaration","scope":371,"src":"1331:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":353,"name":"uint","nodeType":"ElementaryTypeName","src":"1331:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":355,"nodeType":"VariableDeclarationStatement","src":"1331:12:1"},{"assignments":[357],"declarations":[{"constant":false,"id":357,"mutability":"mutable","name":"_success","nameLocation":"1358:8:1","nodeType":"VariableDeclaration","scope":371,"src":"1353:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":356,"name":"bool","nodeType":"ElementaryTypeName","src":"1353:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":358,"nodeType":"VariableDeclarationStatement","src":"1353:13:1"},{"assignments":[360],"declarations":[{"constant":false,"id":360,"mutability":"mutable","name":"_returnData","nameLocation":"1389:11:1","nodeType":"VariableDeclaration","scope":371,"src":"1376:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":359,"name":"bytes","nodeType":"ElementaryTypeName","src":"1376:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":365,"initialValue":{"arguments":[{"id":363,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"1413:8:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1403:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":361,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1376:46:1"},{"AST":{"nativeSrc":"1651:688:1","nodeType":"YulBlock","src":"1651:688:1","statements":[{"nativeSrc":"1665:279:1","nodeType":"YulAssignment","src":"1665:279:1","value":{"arguments":[{"name":"_gas","nativeSrc":"1699:4:1","nodeType":"YulIdentifier","src":"1699:4:1"},{"name":"_target","nativeSrc":"1728:7:1","nodeType":"YulIdentifier","src":"1728:7:1"},{"kind":"number","nativeSrc":"1766:1:1","nodeType":"YulLiteral","src":"1766:1:1","type":"","value":"0"},{"arguments":[{"name":"_calldata","nativeSrc":"1804:9:1","nodeType":"YulIdentifier","src":"1804:9:1"},{"kind":"number","nativeSrc":"1815:4:1","nodeType":"YulLiteral","src":"1815:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1800:3:1","nodeType":"YulIdentifier","src":"1800:3:1"},"nativeSrc":"1800:20:1","nodeType":"YulFunctionCall","src":"1800:20:1"},{"arguments":[{"name":"_calldata","nativeSrc":"1853:9:1","nodeType":"YulIdentifier","src":"1853:9:1"}],"functionName":{"name":"mload","nativeSrc":"1847:5:1","nodeType":"YulIdentifier","src":"1847:5:1"},"nativeSrc":"1847:16:1","nodeType":"YulFunctionCall","src":"1847:16:1"},{"kind":"number","nativeSrc":"1890:1:1","nodeType":"YulLiteral","src":"1890:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"1919:1:1","nodeType":"YulLiteral","src":"1919:1:1","type":"","value":"0"}],"functionName":{"name":"call","nativeSrc":"1677:4:1","nodeType":"YulIdentifier","src":"1677:4:1"},"nativeSrc":"1677:267:1","nodeType":"YulFunctionCall","src":"1677:267:1"},"variableNames":[{"name":"_success","nativeSrc":"1665:8:1","nodeType":"YulIdentifier","src":"1665:8:1"}]},{"nativeSrc":"2000:27:1","nodeType":"YulAssignment","src":"2000:27:1","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"2011:14:1","nodeType":"YulIdentifier","src":"2011:14:1"},"nativeSrc":"2011:16:1","nodeType":"YulFunctionCall","src":"2011:16:1"},"variableNames":[{"name":"_toCopy","nativeSrc":"2000:7:1","nodeType":"YulIdentifier","src":"2000:7:1"}]},{"body":{"nativeSrc":"2065:51:1","nodeType":"YulBlock","src":"2065:51:1","statements":[{"nativeSrc":"2083:19:1","nodeType":"YulAssignment","src":"2083:19:1","value":{"name":"_maxCopy","nativeSrc":"2094:8:1","nodeType":"YulIdentifier","src":"2094:8:1"},"variableNames":[{"name":"_toCopy","nativeSrc":"2083:7:1","nodeType":"YulIdentifier","src":"2083:7:1"}]}]},"condition":{"arguments":[{"name":"_toCopy","nativeSrc":"2046:7:1","nodeType":"YulIdentifier","src":"2046:7:1"},{"name":"_maxCopy","nativeSrc":"2055:8:1","nodeType":"YulIdentifier","src":"2055:8:1"}],"functionName":{"name":"gt","nativeSrc":"2043:2:1","nodeType":"YulIdentifier","src":"2043:2:1"},"nativeSrc":"2043:21:1","nodeType":"YulFunctionCall","src":"2043:21:1"},"nativeSrc":"2040:76:1","nodeType":"YulIf","src":"2040:76:1"},{"expression":{"arguments":[{"name":"_returnData","nativeSrc":"2188:11:1","nodeType":"YulIdentifier","src":"2188:11:1"},{"name":"_toCopy","nativeSrc":"2201:7:1","nodeType":"YulIdentifier","src":"2201:7:1"}],"functionName":{"name":"mstore","nativeSrc":"2181:6:1","nodeType":"YulIdentifier","src":"2181:6:1"},"nativeSrc":"2181:28:1","nodeType":"YulFunctionCall","src":"2181:28:1"},"nativeSrc":"2181:28:1","nodeType":"YulExpressionStatement","src":"2181:28:1"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nativeSrc":"2298:11:1","nodeType":"YulIdentifier","src":"2298:11:1"},{"kind":"number","nativeSrc":"2311:4:1","nodeType":"YulLiteral","src":"2311:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2294:3:1","nodeType":"YulIdentifier","src":"2294:3:1"},"nativeSrc":"2294:22:1","nodeType":"YulFunctionCall","src":"2294:22:1"},{"kind":"number","nativeSrc":"2318:1:1","nodeType":"YulLiteral","src":"2318:1:1","type":"","value":"0"},{"name":"_toCopy","nativeSrc":"2321:7:1","nodeType":"YulIdentifier","src":"2321:7:1"}],"functionName":{"name":"returndatacopy","nativeSrc":"2279:14:1","nodeType":"YulIdentifier","src":"2279:14:1"},"nativeSrc":"2279:50:1","nodeType":"YulFunctionCall","src":"2279:50:1"},"nativeSrc":"2279:50:1","nodeType":"YulExpressionStatement","src":"2279:50:1"}]},"evmVersion":"paris","externalReferences":[{"declaration":346,"isOffset":false,"isSlot":false,"src":"1804:9:1","valueSize":1},{"declaration":346,"isOffset":false,"isSlot":false,"src":"1853:9:1","valueSize":1},{"declaration":342,"isOffset":false,"isSlot":false,"src":"1699:4:1","valueSize":1},{"declaration":344,"isOffset":false,"isSlot":false,"src":"2055:8:1","valueSize":1},{"declaration":344,"isOffset":false,"isSlot":false,"src":"2094:8:1","valueSize":1},{"declaration":360,"isOffset":false,"isSlot":false,"src":"2188:11:1","valueSize":1},{"declaration":360,"isOffset":false,"isSlot":false,"src":"2298:11:1","valueSize":1},{"declaration":357,"isOffset":false,"isSlot":false,"src":"1665:8:1","valueSize":1},{"declaration":340,"isOffset":false,"isSlot":false,"src":"1728:7:1","valueSize":1},{"declaration":354,"isOffset":false,"isSlot":false,"src":"2000:7:1","valueSize":1},{"declaration":354,"isOffset":false,"isSlot":false,"src":"2046:7:1","valueSize":1},{"declaration":354,"isOffset":false,"isSlot":false,"src":"2083:7:1","valueSize":1},{"declaration":354,"isOffset":false,"isSlot":false,"src":"2201:7:1","valueSize":1},{"declaration":354,"isOffset":false,"isSlot":false,"src":"2321:7:1","valueSize":1}],"id":366,"nodeType":"InlineAssembly","src":"1642:697:1"},{"expression":{"components":[{"id":367,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"2356:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":368,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"2366:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2355:23:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":352,"id":370,"nodeType":"Return","src":"2348:30:1"}]},"documentation":{"id":338,"nodeType":"StructuredDocumentation","src":"207:899:1","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":372,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeCall","nameLocation":"1120:19:1","nodeType":"FunctionDefinition","parameters":{"id":347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"mutability":"mutable","name":"_target","nameLocation":"1157:7:1","nodeType":"VariableDeclaration","scope":372,"src":"1149:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":339,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":342,"mutability":"mutable","name":"_gas","nameLocation":"1179:4:1","nodeType":"VariableDeclaration","scope":372,"src":"1174:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":341,"name":"uint","nodeType":"ElementaryTypeName","src":"1174:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":344,"mutability":"mutable","name":"_maxCopy","nameLocation":"1200:8:1","nodeType":"VariableDeclaration","scope":372,"src":"1193:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":343,"name":"uint16","nodeType":"ElementaryTypeName","src":"1193:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":346,"mutability":"mutable","name":"_calldata","nameLocation":"1231:9:1","nodeType":"VariableDeclaration","scope":372,"src":"1218:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":345,"name":"bytes","nodeType":"ElementaryTypeName","src":"1218:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1139:107:1"},"returnParameters":{"id":352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":372,"src":"1265:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":348,"name":"bool","nodeType":"ElementaryTypeName","src":"1265:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":372,"src":"1271:12:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":350,"name":"bytes","nodeType":"ElementaryTypeName","src":"1271:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1264:20:1"},"scope":429,"src":"1111:1274:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":406,"nodeType":"Block","src":"3480:1072:1","statements":[{"assignments":[389],"declarations":[{"constant":false,"id":389,"mutability":"mutable","name":"_toCopy","nameLocation":"3531:7:1","nodeType":"VariableDeclaration","scope":406,"src":"3526:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":388,"name":"uint","nodeType":"ElementaryTypeName","src":"3526:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":390,"nodeType":"VariableDeclarationStatement","src":"3526:12:1"},{"assignments":[392],"declarations":[{"constant":false,"id":392,"mutability":"mutable","name":"_success","nameLocation":"3553:8:1","nodeType":"VariableDeclaration","scope":406,"src":"3548:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":391,"name":"bool","nodeType":"ElementaryTypeName","src":"3548:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":393,"nodeType":"VariableDeclarationStatement","src":"3548:13:1"},{"assignments":[395],"declarations":[{"constant":false,"id":395,"mutability":"mutable","name":"_returnData","nameLocation":"3584:11:1","nodeType":"VariableDeclaration","scope":406,"src":"3571:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":394,"name":"bytes","nodeType":"ElementaryTypeName","src":"3571:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":400,"initialValue":{"arguments":[{"id":398,"name":"_maxCopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"3608:8:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3598:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":396,"name":"bytes","nodeType":"ElementaryTypeName","src":"3602:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3571:46:1"},{"AST":{"nativeSrc":"3846:660:1","nodeType":"YulBlock","src":"3846:660:1","statements":[{"nativeSrc":"3860:251:1","nodeType":"YulAssignment","src":"3860:251:1","value":{"arguments":[{"name":"_gas","nativeSrc":"3900:4:1","nodeType":"YulIdentifier","src":"3900:4:1"},{"name":"_target","nativeSrc":"3929:7:1","nodeType":"YulIdentifier","src":"3929:7:1"},{"arguments":[{"name":"_calldata","nativeSrc":"3971:9:1","nodeType":"YulIdentifier","src":"3971:9:1"},{"kind":"number","nativeSrc":"3982:4:1","nodeType":"YulLiteral","src":"3982:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3967:3:1","nodeType":"YulIdentifier","src":"3967:3:1"},"nativeSrc":"3967:20:1","nodeType":"YulFunctionCall","src":"3967:20:1"},{"arguments":[{"name":"_calldata","nativeSrc":"4020:9:1","nodeType":"YulIdentifier","src":"4020:9:1"}],"functionName":{"name":"mload","nativeSrc":"4014:5:1","nodeType":"YulIdentifier","src":"4014:5:1"},"nativeSrc":"4014:16:1","nodeType":"YulFunctionCall","src":"4014:16:1"},{"kind":"number","nativeSrc":"4057:1:1","nodeType":"YulLiteral","src":"4057:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"4086:1:1","nodeType":"YulLiteral","src":"4086:1:1","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"3872:10:1","nodeType":"YulIdentifier","src":"3872:10:1"},"nativeSrc":"3872:239:1","nodeType":"YulFunctionCall","src":"3872:239:1"},"variableNames":[{"name":"_success","nativeSrc":"3860:8:1","nodeType":"YulIdentifier","src":"3860:8:1"}]},{"nativeSrc":"4167:27:1","nodeType":"YulAssignment","src":"4167:27:1","value":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4178:14:1","nodeType":"YulIdentifier","src":"4178:14:1"},"nativeSrc":"4178:16:1","nodeType":"YulFunctionCall","src":"4178:16:1"},"variableNames":[{"name":"_toCopy","nativeSrc":"4167:7:1","nodeType":"YulIdentifier","src":"4167:7:1"}]},{"body":{"nativeSrc":"4232:51:1","nodeType":"YulBlock","src":"4232:51:1","statements":[{"nativeSrc":"4250:19:1","nodeType":"YulAssignment","src":"4250:19:1","value":{"name":"_maxCopy","nativeSrc":"4261:8:1","nodeType":"YulIdentifier","src":"4261:8:1"},"variableNames":[{"name":"_toCopy","nativeSrc":"4250:7:1","nodeType":"YulIdentifier","src":"4250:7:1"}]}]},"condition":{"arguments":[{"name":"_toCopy","nativeSrc":"4213:7:1","nodeType":"YulIdentifier","src":"4213:7:1"},{"name":"_maxCopy","nativeSrc":"4222:8:1","nodeType":"YulIdentifier","src":"4222:8:1"}],"functionName":{"name":"gt","nativeSrc":"4210:2:1","nodeType":"YulIdentifier","src":"4210:2:1"},"nativeSrc":"4210:21:1","nodeType":"YulFunctionCall","src":"4210:21:1"},"nativeSrc":"4207:76:1","nodeType":"YulIf","src":"4207:76:1"},{"expression":{"arguments":[{"name":"_returnData","nativeSrc":"4355:11:1","nodeType":"YulIdentifier","src":"4355:11:1"},{"name":"_toCopy","nativeSrc":"4368:7:1","nodeType":"YulIdentifier","src":"4368:7:1"}],"functionName":{"name":"mstore","nativeSrc":"4348:6:1","nodeType":"YulIdentifier","src":"4348:6:1"},"nativeSrc":"4348:28:1","nodeType":"YulFunctionCall","src":"4348:28:1"},"nativeSrc":"4348:28:1","nodeType":"YulExpressionStatement","src":"4348:28:1"},{"expression":{"arguments":[{"arguments":[{"name":"_returnData","nativeSrc":"4465:11:1","nodeType":"YulIdentifier","src":"4465:11:1"},{"kind":"number","nativeSrc":"4478:4:1","nodeType":"YulLiteral","src":"4478:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4461:3:1","nodeType":"YulIdentifier","src":"4461:3:1"},"nativeSrc":"4461:22:1","nodeType":"YulFunctionCall","src":"4461:22:1"},{"kind":"number","nativeSrc":"4485:1:1","nodeType":"YulLiteral","src":"4485:1:1","type":"","value":"0"},{"name":"_toCopy","nativeSrc":"4488:7:1","nodeType":"YulIdentifier","src":"4488:7:1"}],"functionName":{"name":"returndatacopy","nativeSrc":"4446:14:1","nodeType":"YulIdentifier","src":"4446:14:1"},"nativeSrc":"4446:50:1","nodeType":"YulFunctionCall","src":"4446:50:1"},"nativeSrc":"4446:50:1","nodeType":"YulExpressionStatement","src":"4446:50:1"}]},"evmVersion":"paris","externalReferences":[{"declaration":381,"isOffset":false,"isSlot":false,"src":"3971:9:1","valueSize":1},{"declaration":381,"isOffset":false,"isSlot":false,"src":"4020:9:1","valueSize":1},{"declaration":377,"isOffset":false,"isSlot":false,"src":"3900:4:1","valueSize":1},{"declaration":379,"isOffset":false,"isSlot":false,"src":"4222:8:1","valueSize":1},{"declaration":379,"isOffset":false,"isSlot":false,"src":"4261:8:1","valueSize":1},{"declaration":395,"isOffset":false,"isSlot":false,"src":"4355:11:1","valueSize":1},{"declaration":395,"isOffset":false,"isSlot":false,"src":"4465:11:1","valueSize":1},{"declaration":392,"isOffset":false,"isSlot":false,"src":"3860:8:1","valueSize":1},{"declaration":375,"isOffset":false,"isSlot":false,"src":"3929:7:1","valueSize":1},{"declaration":389,"isOffset":false,"isSlot":false,"src":"4167:7:1","valueSize":1},{"declaration":389,"isOffset":false,"isSlot":false,"src":"4213:7:1","valueSize":1},{"declaration":389,"isOffset":false,"isSlot":false,"src":"4250:7:1","valueSize":1},{"declaration":389,"isOffset":false,"isSlot":false,"src":"4368:7:1","valueSize":1},{"declaration":389,"isOffset":false,"isSlot":false,"src":"4488:7:1","valueSize":1}],"id":401,"nodeType":"InlineAssembly","src":"3837:669:1"},{"expression":{"components":[{"id":402,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4523:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":403,"name":"_returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"4533:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":404,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4522:23:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":387,"id":405,"nodeType":"Return","src":"4515:30:1"}]},"documentation":{"id":373,"nodeType":"StructuredDocumentation","src":"2391:899:1","text":"@notice Use when you _really_ really _really_ don't trust the called\n contract. This prevents the called contract from causing reversion of\n the caller in as many ways as we can.\n @dev The main difference between this and a solidity low-level call is\n that we limit the number of bytes that the callee can cause to be\n copied to caller memory. This prevents stupid things like malicious\n contracts returning 10,000,000 bytes causing a local OOG when copying\n to memory.\n @param _target The address to call\n @param _gas The amount of gas to forward to the remote contract\n @param _maxCopy The maximum number of bytes of returndata to copy\n to memory.\n @param _calldata The data to send to the remote contract\n @return success and returndata, as `.call()`. Returndata is capped to\n `_maxCopy` bytes."},"id":407,"implemented":true,"kind":"function","modifiers":[],"name":"excessivelySafeStaticCall","nameLocation":"3304:25:1","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":375,"mutability":"mutable","name":"_target","nameLocation":"3347:7:1","nodeType":"VariableDeclaration","scope":407,"src":"3339:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":374,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":377,"mutability":"mutable","name":"_gas","nameLocation":"3369:4:1","nodeType":"VariableDeclaration","scope":407,"src":"3364:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":376,"name":"uint","nodeType":"ElementaryTypeName","src":"3364:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":379,"mutability":"mutable","name":"_maxCopy","nameLocation":"3390:8:1","nodeType":"VariableDeclaration","scope":407,"src":"3383:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":378,"name":"uint16","nodeType":"ElementaryTypeName","src":"3383:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":381,"mutability":"mutable","name":"_calldata","nameLocation":"3421:9:1","nodeType":"VariableDeclaration","scope":407,"src":"3408:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":380,"name":"bytes","nodeType":"ElementaryTypeName","src":"3408:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3329:107:1"},"returnParameters":{"id":387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":407,"src":"3460:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":383,"name":"bool","nodeType":"ElementaryTypeName","src":"3460:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":407,"src":"3466:12:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":385,"name":"bytes","nodeType":"ElementaryTypeName","src":"3466:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3459:20:1"},"scope":429,"src":"3295:1257:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":427,"nodeType":"Block","src":"5081:376:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":416,"name":"_buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"5099:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5104:6:1","memberName":"length","nodeType":"MemberAccess","src":"5099:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5114:1:1","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5099:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5091:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":421,"nodeType":"ExpressionStatement","src":"5091:25:1"},{"assignments":[423],"declarations":[{"constant":false,"id":423,"mutability":"mutable","name":"_mask","nameLocation":"5131:5:1","nodeType":"VariableDeclaration","scope":427,"src":"5126:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":422,"name":"uint","nodeType":"ElementaryTypeName","src":"5126:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":425,"initialValue":{"id":424,"name":"LOW_28_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"5139:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5126:24:1"},{"AST":{"nativeSrc":"5169:282:1","nodeType":"YulBlock","src":"5169:282:1","statements":[{"nativeSrc":"5221:35:1","nodeType":"YulVariableDeclaration","src":"5221:35:1","value":{"arguments":[{"arguments":[{"name":"_buf","nativeSrc":"5244:4:1","nodeType":"YulIdentifier","src":"5244:4:1"},{"kind":"number","nativeSrc":"5250:4:1","nodeType":"YulLiteral","src":"5250:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5240:3:1","nodeType":"YulIdentifier","src":"5240:3:1"},"nativeSrc":"5240:15:1","nodeType":"YulFunctionCall","src":"5240:15:1"}],"functionName":{"name":"mload","nativeSrc":"5234:5:1","nodeType":"YulIdentifier","src":"5234:5:1"},"nativeSrc":"5234:22:1","nodeType":"YulFunctionCall","src":"5234:22:1"},"variables":[{"name":"_word","nativeSrc":"5225:5:1","nodeType":"YulTypedName","src":"5225:5:1","type":""}]},{"nativeSrc":"5327:26:1","nodeType":"YulAssignment","src":"5327:26:1","value":{"arguments":[{"name":"_word","nativeSrc":"5340:5:1","nodeType":"YulIdentifier","src":"5340:5:1"},{"name":"_mask","nativeSrc":"5347:5:1","nodeType":"YulIdentifier","src":"5347:5:1"}],"functionName":{"name":"and","nativeSrc":"5336:3:1","nodeType":"YulIdentifier","src":"5336:3:1"},"nativeSrc":"5336:17:1","nodeType":"YulFunctionCall","src":"5336:17:1"},"variableNames":[{"name":"_word","nativeSrc":"5327:5:1","nodeType":"YulIdentifier","src":"5327:5:1"}]},{"nativeSrc":"5366:32:1","nodeType":"YulAssignment","src":"5366:32:1","value":{"arguments":[{"name":"_newSelector","nativeSrc":"5378:12:1","nodeType":"YulIdentifier","src":"5378:12:1"},{"name":"_word","nativeSrc":"5392:5:1","nodeType":"YulIdentifier","src":"5392:5:1"}],"functionName":{"name":"or","nativeSrc":"5375:2:1","nodeType":"YulIdentifier","src":"5375:2:1"},"nativeSrc":"5375:23:1","nodeType":"YulFunctionCall","src":"5375:23:1"},"variableNames":[{"name":"_word","nativeSrc":"5366:5:1","nodeType":"YulIdentifier","src":"5366:5:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"_buf","nativeSrc":"5422:4:1","nodeType":"YulIdentifier","src":"5422:4:1"},{"kind":"number","nativeSrc":"5428:4:1","nodeType":"YulLiteral","src":"5428:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5418:3:1","nodeType":"YulIdentifier","src":"5418:3:1"},"nativeSrc":"5418:15:1","nodeType":"YulFunctionCall","src":"5418:15:1"},{"name":"_word","nativeSrc":"5435:5:1","nodeType":"YulIdentifier","src":"5435:5:1"}],"functionName":{"name":"mstore","nativeSrc":"5411:6:1","nodeType":"YulIdentifier","src":"5411:6:1"},"nativeSrc":"5411:30:1","nodeType":"YulFunctionCall","src":"5411:30:1"},"nativeSrc":"5411:30:1","nodeType":"YulExpressionStatement","src":"5411:30:1"}]},"evmVersion":"paris","externalReferences":[{"declaration":412,"isOffset":false,"isSlot":false,"src":"5244:4:1","valueSize":1},{"declaration":412,"isOffset":false,"isSlot":false,"src":"5422:4:1","valueSize":1},{"declaration":423,"isOffset":false,"isSlot":false,"src":"5347:5:1","valueSize":1},{"declaration":410,"isOffset":false,"isSlot":false,"src":"5378:12:1","valueSize":1}],"id":426,"nodeType":"InlineAssembly","src":"5160:291:1"}]},"documentation":{"id":408,"nodeType":"StructuredDocumentation","src":"4558:442:1","text":" @notice Swaps function selectors in encoded contract calls\n @dev Allows reuse of encoded calldata for functions with identical\n argument types but different names. It simply swaps out the first 4 bytes\n for the new selector. This function modifies memory in place, and should\n only be used with caution.\n @param _newSelector The new 4-byte selector\n @param _buf The encoded contract args"},"id":428,"implemented":true,"kind":"function","modifiers":[],"name":"swapSelector","nameLocation":"5014:12:1","nodeType":"FunctionDefinition","parameters":{"id":413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"_newSelector","nameLocation":"5034:12:1","nodeType":"VariableDeclaration","scope":428,"src":"5027:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":409,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5027:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":412,"mutability":"mutable","name":"_buf","nameLocation":"5061:4:1","nodeType":"VariableDeclaration","scope":428,"src":"5048:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":411,"name":"bytes","nodeType":"ElementaryTypeName","src":"5048:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5026:40:1"},"returnParameters":{"id":414,"nodeType":"ParameterList","parameters":[],"src":"5081:0:1"},"scope":429,"src":"5005:452:1","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":430,"src":"72:5387:1","usedErrors":[],"usedEvents":[]}],"src":"46:5414:1"},"id":1},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","exportedSymbols":{"BytesLib":[332],"Context":[7050],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"LzApp":[971],"Ownable":[5488]},"id":972,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":431,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:2"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":972,"sourceUnit":5489,"src":"58:52:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","file":"./interfaces/ILayerZeroReceiver.sol","id":433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":972,"sourceUnit":1372,"src":"111:45:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./interfaces/ILayerZeroUserApplicationConfig.sol","id":434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":972,"sourceUnit":1403,"src":"157:58:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"./interfaces/ILayerZeroEndpoint.sol","id":435,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":972,"sourceUnit":1358,"src":"216:45:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol","file":"../libraries/BytesLib.sol","id":436,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":972,"sourceUnit":333,"src":"262:35:2","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":437,"name":"Ownable","nameLocations":["372:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":5488,"src":"372:7:2"},"id":438,"nodeType":"InheritanceSpecifier","src":"372:7:2"},{"baseName":{"id":439,"name":"ILayerZeroReceiver","nameLocations":["381:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":1371,"src":"381:18:2"},"id":440,"nodeType":"InheritanceSpecifier","src":"381:18:2"},{"baseName":{"id":441,"name":"ILayerZeroUserApplicationConfig","nameLocations":["401:31:2"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"401:31:2"},"id":442,"nodeType":"InheritanceSpecifier","src":"401:31:2"}],"canonicalName":"LzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":971,"linearizedBaseContracts":[971,1402,1371,5488,7050],"name":"LzApp","nameLocation":"363:5:2","nodeType":"ContractDefinition","nodes":[{"global":false,"id":445,"libraryName":{"id":443,"name":"BytesLib","nameLocations":["445:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":332,"src":"445:8:2"},"nodeType":"UsingForDirective","src":"439:25:2","typeName":{"id":444,"name":"bytes","nodeType":"ElementaryTypeName","src":"458:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":true,"functionSelector":"c4461834","id":448,"mutability":"constant","name":"DEFAULT_PAYLOAD_SIZE_LIMIT","nameLocation":"589:26:2","nodeType":"VariableDeclaration","scope":971,"src":"568:55:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":446,"name":"uint","nodeType":"ElementaryTypeName","src":"568:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030","id":447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"618:5:2","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"public"},{"constant":false,"functionSelector":"b353aaa7","id":451,"mutability":"immutable","name":"lzEndpoint","nameLocation":"666:10:2","nodeType":"VariableDeclaration","scope":971,"src":"630:46:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"},"typeName":{"id":450,"nodeType":"UserDefinedTypeName","pathNode":{"id":449,"name":"ILayerZeroEndpoint","nameLocations":["630:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":1357,"src":"630:18:2"},"referencedDeclaration":1357,"src":"630:18:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"visibility":"public"},{"constant":false,"functionSelector":"7533d788","id":455,"mutability":"mutable","name":"trustedRemoteLookup","nameLocation":"714:19:2","nodeType":"VariableDeclaration","scope":971,"src":"682:51:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"typeName":{"id":454,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":452,"name":"uint16","nodeType":"ElementaryTypeName","src":"690:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"682:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":453,"name":"bytes","nodeType":"ElementaryTypeName","src":"700:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"visibility":"public"},{"constant":false,"functionSelector":"8cfd8f5c","id":461,"mutability":"mutable","name":"minDstGasLookup","nameLocation":"789:15:2","nodeType":"VariableDeclaration","scope":971,"src":"739:65:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"typeName":{"id":460,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":456,"name":"uint16","nodeType":"ElementaryTypeName","src":"747:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"739:42:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":459,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":457,"name":"uint16","nodeType":"ElementaryTypeName","src":"765:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"757:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":458,"name":"uint","nodeType":"ElementaryTypeName","src":"775:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"functionSelector":"3f1f4fa4","id":465,"mutability":"mutable","name":"payloadSizeLimitLookup","nameLocation":"841:22:2","nodeType":"VariableDeclaration","scope":971,"src":"810:53:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":464,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":462,"name":"uint16","nodeType":"ElementaryTypeName","src":"818:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"810:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":463,"name":"uint","nodeType":"ElementaryTypeName","src":"828:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"950c8a74","id":467,"mutability":"mutable","name":"precrime","nameLocation":"884:8:2","nodeType":"VariableDeclaration","scope":971,"src":"869:23:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":466,"name":"address","nodeType":"ElementaryTypeName","src":"869:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"anonymous":false,"eventSelector":"5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b","id":471,"name":"SetPrecrime","nameLocation":"905:11:2","nodeType":"EventDefinition","parameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"indexed":false,"mutability":"mutable","name":"precrime","nameLocation":"925:8:2","nodeType":"VariableDeclaration","scope":471,"src":"917:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":468,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"916:18:2"},"src":"899:36:2"},{"anonymous":false,"eventSelector":"fa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab","id":477,"name":"SetTrustedRemote","nameLocation":"946:16:2","nodeType":"EventDefinition","parameters":{"id":476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"970:14:2","nodeType":"VariableDeclaration","scope":477,"src":"963:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":472,"name":"uint16","nodeType":"ElementaryTypeName","src":"963:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":475,"indexed":false,"mutability":"mutable","name":"_path","nameLocation":"992:5:2","nodeType":"VariableDeclaration","scope":477,"src":"986:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":474,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"962:36:2"},"src":"940:59:2"},{"anonymous":false,"eventSelector":"8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce","id":483,"name":"SetTrustedRemoteAddress","nameLocation":"1010:23:2","nodeType":"EventDefinition","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":479,"indexed":false,"mutability":"mutable","name":"_remoteChainId","nameLocation":"1041:14:2","nodeType":"VariableDeclaration","scope":483,"src":"1034:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":478,"name":"uint16","nodeType":"ElementaryTypeName","src":"1034:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":481,"indexed":false,"mutability":"mutable","name":"_remoteAddress","nameLocation":"1063:14:2","nodeType":"VariableDeclaration","scope":483,"src":"1057:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":480,"name":"bytes","nodeType":"ElementaryTypeName","src":"1057:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1033:45:2"},"src":"1004:75:2"},{"anonymous":false,"eventSelector":"9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0","id":491,"name":"SetMinDstGas","nameLocation":"1090:12:2","nodeType":"EventDefinition","parameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":485,"indexed":false,"mutability":"mutable","name":"_dstChainId","nameLocation":"1110:11:2","nodeType":"VariableDeclaration","scope":491,"src":"1103:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":484,"name":"uint16","nodeType":"ElementaryTypeName","src":"1103:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":487,"indexed":false,"mutability":"mutable","name":"_type","nameLocation":"1130:5:2","nodeType":"VariableDeclaration","scope":491,"src":"1123:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":486,"name":"uint16","nodeType":"ElementaryTypeName","src":"1123:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":489,"indexed":false,"mutability":"mutable","name":"_minDstGas","nameLocation":"1142:10:2","nodeType":"VariableDeclaration","scope":491,"src":"1137:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint","nodeType":"ElementaryTypeName","src":"1137:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1102:51:2"},"src":"1084:70:2"},{"body":{"id":502,"nodeType":"Block","src":"1191:59:2","statements":[{"expression":{"id":500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":496,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"1201:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":498,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"1233:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":497,"name":"ILayerZeroEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1357,"src":"1214:18:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroEndpoint_$1357_$","typeString":"type(contract ILayerZeroEndpoint)"}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"src":"1201:42:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":501,"nodeType":"ExpressionStatement","src":"1201:42:2"}]},"id":503,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":493,"mutability":"mutable","name":"_endpoint","nameLocation":"1180:9:2","nodeType":"VariableDeclaration","scope":503,"src":"1172:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":492,"name":"address","nodeType":"ElementaryTypeName","src":"1172:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1171:19:2"},"returnParameters":{"id":495,"nodeType":"ParameterList","parameters":[],"src":"1191:0:2"},"scope":971,"src":"1160:90:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1370],"body":{"id":561,"nodeType":"Block","src":"1425:656:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":516,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"1508:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":520,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"1532:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}],"id":519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1524:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":518,"name":"address","nodeType":"ElementaryTypeName","src":"1524:7:2","typeDescriptions":{}}},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1508:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","id":523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1545:32:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""},"value":"LzApp: invalid endpoint caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","typeString":"literal_string \"LzApp: invalid endpoint caller\""}],"id":515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1500:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:78:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":525,"nodeType":"ExpressionStatement","src":"1500:78:2"},{"assignments":[527],"declarations":[{"constant":false,"id":527,"mutability":"mutable","name":"trustedRemote","nameLocation":"1602:13:2","nodeType":"VariableDeclaration","scope":561,"src":"1589:26:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":526,"name":"bytes","nodeType":"ElementaryTypeName","src":"1589:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":531,"initialValue":{"baseExpression":{"id":528,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"1618:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":530,"indexExpression":{"id":529,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":505,"src":"1638:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1618:32:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1589:61:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":533,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":507,"src":"1813:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1825:6:2","memberName":"length","nodeType":"MemberAccess","src":"1813:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":535,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1835:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1849:6:2","memberName":"length","nodeType":"MemberAccess","src":"1835:20:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1813:42:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":538,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1859:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:2","memberName":"length","nodeType":"MemberAccess","src":"1859:20:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1813:70:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":544,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":507,"src":"1897:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":543,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1887:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":547,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"1923:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":546,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1913:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1887:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1813:124:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1951:40:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1792:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:209:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":553,"nodeType":"ExpressionStatement","src":"1792:209:2"},{"expression":{"arguments":[{"id":555,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":505,"src":"2031:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":556,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":507,"src":"2044:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":557,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":509,"src":"2057:6:2","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":558,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"2065:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":554,"name":"_blockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"2012:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:62:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":560,"nodeType":"ExpressionStatement","src":"2012:62:2"}]},"functionSelector":"001d3567","id":562,"implemented":true,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"1265:9:2","nodeType":"FunctionDefinition","overrides":{"id":513,"nodeType":"OverrideSpecifier","overrides":[],"src":"1416:8:2"},"parameters":{"id":512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":505,"mutability":"mutable","name":"_srcChainId","nameLocation":"1291:11:2","nodeType":"VariableDeclaration","scope":562,"src":"1284:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":504,"name":"uint16","nodeType":"ElementaryTypeName","src":"1284:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":507,"mutability":"mutable","name":"_srcAddress","nameLocation":"1327:11:2","nodeType":"VariableDeclaration","scope":562,"src":"1312:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":506,"name":"bytes","nodeType":"ElementaryTypeName","src":"1312:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":509,"mutability":"mutable","name":"_nonce","nameLocation":"1355:6:2","nodeType":"VariableDeclaration","scope":562,"src":"1348:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":508,"name":"uint64","nodeType":"ElementaryTypeName","src":"1348:6:2","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":511,"mutability":"mutable","name":"_payload","nameLocation":"1386:8:2","nodeType":"VariableDeclaration","scope":562,"src":"1371:23:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":510,"name":"bytes","nodeType":"ElementaryTypeName","src":"1371:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:126:2"},"returnParameters":{"id":514,"nodeType":"ParameterList","parameters":[],"src":"1425:0:2"},"scope":971,"src":"1256:825:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":573,"implemented":false,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"2239:18:2","nodeType":"FunctionDefinition","parameters":{"id":571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":564,"mutability":"mutable","name":"_srcChainId","nameLocation":"2274:11:2","nodeType":"VariableDeclaration","scope":573,"src":"2267:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":563,"name":"uint16","nodeType":"ElementaryTypeName","src":"2267:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":566,"mutability":"mutable","name":"_srcAddress","nameLocation":"2308:11:2","nodeType":"VariableDeclaration","scope":573,"src":"2295:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":565,"name":"bytes","nodeType":"ElementaryTypeName","src":"2295:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":568,"mutability":"mutable","name":"_nonce","nameLocation":"2336:6:2","nodeType":"VariableDeclaration","scope":573,"src":"2329:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":567,"name":"uint64","nodeType":"ElementaryTypeName","src":"2329:6:2","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"_payload","nameLocation":"2365:8:2","nodeType":"VariableDeclaration","scope":573,"src":"2352:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":569,"name":"bytes","nodeType":"ElementaryTypeName","src":"2352:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2257:122:2"},"returnParameters":{"id":572,"nodeType":"ParameterList","parameters":[],"src":"2396:0:2"},"scope":971,"src":"2230:167:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":621,"nodeType":"Block","src":"2640:365:2","statements":[{"assignments":[589],"declarations":[{"constant":false,"id":589,"mutability":"mutable","name":"trustedRemote","nameLocation":"2663:13:2","nodeType":"VariableDeclaration","scope":621,"src":"2650:26:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":588,"name":"bytes","nodeType":"ElementaryTypeName","src":"2650:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":593,"initialValue":{"baseExpression":{"id":590,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"2679:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":592,"indexExpression":{"id":591,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"2699:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2679:32:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2650:61:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":595,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"2729:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2743:6:2","memberName":"length","nodeType":"MemberAccess","src":"2729:20:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2729:25:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742061207472757374656420736f75726365","id":599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2756:50:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""},"value":"LzApp: destination chain is not a trusted source"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","typeString":"literal_string \"LzApp: destination chain is not a trusted source\""}],"id":594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2721:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:86:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":601,"nodeType":"ExpressionStatement","src":"2721:86:2"},{"expression":{"arguments":[{"id":603,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"2835:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":604,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":577,"src":"2848:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2857:6:2","memberName":"length","nodeType":"MemberAccess","src":"2848:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":602,"name":"_checkPayloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"2817:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256) view"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2817:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":607,"nodeType":"ExpressionStatement","src":"2817:47:2"},{"expression":{"arguments":[{"id":613,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"2909:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":614,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"2922:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":615,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":577,"src":"2937:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":616,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":579,"src":"2947:14:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":617,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"2963:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":618,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"2983:14:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":608,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"2874:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:4:2","memberName":"send","nodeType":"MemberAccess","referencedDeclaration":1232,"src":"2874:15:2","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":611,"name":"_nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":585,"src":"2897:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2874:34:2","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint16_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (uint16,bytes memory,bytes memory,address payable,address,bytes memory) payable external"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:124:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":620,"nodeType":"ExpressionStatement","src":"2874:124:2"}]},"id":622,"implemented":true,"kind":"function","modifiers":[],"name":"_lzSend","nameLocation":"2412:7:2","nodeType":"FunctionDefinition","parameters":{"id":586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":575,"mutability":"mutable","name":"_dstChainId","nameLocation":"2436:11:2","nodeType":"VariableDeclaration","scope":622,"src":"2429:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":574,"name":"uint16","nodeType":"ElementaryTypeName","src":"2429:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":577,"mutability":"mutable","name":"_payload","nameLocation":"2470:8:2","nodeType":"VariableDeclaration","scope":622,"src":"2457:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":576,"name":"bytes","nodeType":"ElementaryTypeName","src":"2457:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":579,"mutability":"mutable","name":"_refundAddress","nameLocation":"2504:14:2","nodeType":"VariableDeclaration","scope":622,"src":"2488:30:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":578,"name":"address","nodeType":"ElementaryTypeName","src":"2488:15:2","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":581,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"2536:18:2","nodeType":"VariableDeclaration","scope":622,"src":"2528:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":580,"name":"address","nodeType":"ElementaryTypeName","src":"2528:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":583,"mutability":"mutable","name":"_adapterParams","nameLocation":"2577:14:2","nodeType":"VariableDeclaration","scope":622,"src":"2564:27:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":582,"name":"bytes","nodeType":"ElementaryTypeName","src":"2564:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":585,"mutability":"mutable","name":"_nativeFee","nameLocation":"2606:10:2","nodeType":"VariableDeclaration","scope":622,"src":"2601:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":584,"name":"uint","nodeType":"ElementaryTypeName","src":"2601:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2419:203:2"},"returnParameters":{"id":587,"nodeType":"ParameterList","parameters":[],"src":"2640:0:2"},"scope":971,"src":"2403:602:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":663,"nodeType":"Block","src":"3174:290:2","statements":[{"assignments":[634],"declarations":[{"constant":false,"id":634,"mutability":"mutable","name":"providedGasLimit","nameLocation":"3189:16:2","nodeType":"VariableDeclaration","scope":663,"src":"3184:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint","nodeType":"ElementaryTypeName","src":"3184:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":638,"initialValue":{"arguments":[{"id":636,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"3221:14:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":635,"name":"_getGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"3208:12:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3208:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3184:52:2"},{"assignments":[640],"declarations":[{"constant":false,"id":640,"mutability":"mutable","name":"minGasLimit","nameLocation":"3251:11:2","nodeType":"VariableDeclaration","scope":663,"src":"3246:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":639,"name":"uint","nodeType":"ElementaryTypeName","src":"3246:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":646,"initialValue":{"baseExpression":{"baseExpression":{"id":641,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"3265:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":643,"indexExpression":{"id":642,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"3281:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3265:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":645,"indexExpression":{"id":644,"name":"_type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":626,"src":"3294:5:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3265:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3246:54:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":648,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"3318:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3332:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3318:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","id":651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:28:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""},"value":"LzApp: minGasLimit not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","typeString":"literal_string \"LzApp: minGasLimit not set\""}],"id":647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3310:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3310:54:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":653,"nodeType":"ExpressionStatement","src":"3310:54:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":655,"name":"providedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"3382:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":656,"name":"minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"3402:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":657,"name":"_extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"3416:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3402:23:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3382:43:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","id":660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3427:29:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""},"value":"LzApp: gas limit is too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","typeString":"literal_string \"LzApp: gas limit is too low\""}],"id":654,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3374:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":662,"nodeType":"ExpressionStatement","src":"3374:83:2"}]},"id":664,"implemented":true,"kind":"function","modifiers":[],"name":"_checkGasLimit","nameLocation":"3020:14:2","nodeType":"FunctionDefinition","parameters":{"id":631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":624,"mutability":"mutable","name":"_dstChainId","nameLocation":"3051:11:2","nodeType":"VariableDeclaration","scope":664,"src":"3044:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":623,"name":"uint16","nodeType":"ElementaryTypeName","src":"3044:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":626,"mutability":"mutable","name":"_type","nameLocation":"3079:5:2","nodeType":"VariableDeclaration","scope":664,"src":"3072:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":625,"name":"uint16","nodeType":"ElementaryTypeName","src":"3072:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":628,"mutability":"mutable","name":"_adapterParams","nameLocation":"3107:14:2","nodeType":"VariableDeclaration","scope":664,"src":"3094:27:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":627,"name":"bytes","nodeType":"ElementaryTypeName","src":"3094:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":630,"mutability":"mutable","name":"_extraGas","nameLocation":"3136:9:2","nodeType":"VariableDeclaration","scope":664,"src":"3131:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":629,"name":"uint","nodeType":"ElementaryTypeName","src":"3131:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3034:117:2"},"returnParameters":{"id":632,"nodeType":"ParameterList","parameters":[],"src":"3174:0:2"},"scope":971,"src":"3011:453:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":680,"nodeType":"Block","src":"3567:169:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":672,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"3585:14:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3600:6:2","memberName":"length","nodeType":"MemberAccess","src":"3585:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3334","id":674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3610:2:2","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"3585:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3614:30:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""},"value":"LzApp: invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","typeString":"literal_string \"LzApp: invalid adapterParams\""}],"id":671,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3577:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":678,"nodeType":"ExpressionStatement","src":"3577:68:2"},{"AST":{"nativeSrc":"3664:66:2","nodeType":"YulBlock","src":"3664:66:2","statements":[{"nativeSrc":"3678:42:2","nodeType":"YulAssignment","src":"3678:42:2","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"3700:14:2","nodeType":"YulIdentifier","src":"3700:14:2"},{"kind":"number","nativeSrc":"3716:2:2","nodeType":"YulLiteral","src":"3716:2:2","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"3696:3:2","nodeType":"YulIdentifier","src":"3696:3:2"},"nativeSrc":"3696:23:2","nodeType":"YulFunctionCall","src":"3696:23:2"}],"functionName":{"name":"mload","nativeSrc":"3690:5:2","nodeType":"YulIdentifier","src":"3690:5:2"},"nativeSrc":"3690:30:2","nodeType":"YulFunctionCall","src":"3690:30:2"},"variableNames":[{"name":"gasLimit","nativeSrc":"3678:8:2","nodeType":"YulIdentifier","src":"3678:8:2"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":666,"isOffset":false,"isSlot":false,"src":"3700:14:2","valueSize":1},{"declaration":669,"isOffset":false,"isSlot":false,"src":"3678:8:2","valueSize":1}],"id":679,"nodeType":"InlineAssembly","src":"3655:75:2"}]},"id":681,"implemented":true,"kind":"function","modifiers":[],"name":"_getGasLimit","nameLocation":"3479:12:2","nodeType":"FunctionDefinition","parameters":{"id":667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":666,"mutability":"mutable","name":"_adapterParams","nameLocation":"3505:14:2","nodeType":"VariableDeclaration","scope":681,"src":"3492:27:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":665,"name":"bytes","nodeType":"ElementaryTypeName","src":"3492:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3491:29:2"},"returnParameters":{"id":670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":669,"mutability":"mutable","name":"gasLimit","nameLocation":"3557:8:2","nodeType":"VariableDeclaration","scope":681,"src":"3552:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":668,"name":"uint","nodeType":"ElementaryTypeName","src":"3552:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3551:15:2"},"scope":971,"src":"3470:266:2","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":710,"nodeType":"Block","src":"3830:307:2","statements":[{"assignments":[689],"declarations":[{"constant":false,"id":689,"mutability":"mutable","name":"payloadSizeLimit","nameLocation":"3845:16:2","nodeType":"VariableDeclaration","scope":710,"src":"3840:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":688,"name":"uint","nodeType":"ElementaryTypeName","src":"3840:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":693,"initialValue":{"baseExpression":{"id":690,"name":"payloadSizeLimitLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":465,"src":"3864:22:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":692,"indexExpression":{"id":691,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"3887:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3864:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3840:59:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":694,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"3913:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3933:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3913:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":702,"nodeType":"IfStatement","src":"3909:135:2","trueBody":{"id":701,"nodeType":"Block","src":"3936:108:2","statements":[{"expression":{"id":699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":697,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"3988:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":698,"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"4007:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3988:45:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":700,"nodeType":"ExpressionStatement","src":"3988:45:2"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":704,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"4061:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":705,"name":"payloadSizeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"4077:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4061:32:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765","id":707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4095:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","typeString":"literal_string \"LzApp: payload size is too large\""},"value":"LzApp: payload size is too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","typeString":"literal_string \"LzApp: payload size is too large\""}],"id":703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4053:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4053:77:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":709,"nodeType":"ExpressionStatement","src":"4053:77:2"}]},"id":711,"implemented":true,"kind":"function","modifiers":[],"name":"_checkPayloadSize","nameLocation":"3751:17:2","nodeType":"FunctionDefinition","parameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":683,"mutability":"mutable","name":"_dstChainId","nameLocation":"3776:11:2","nodeType":"VariableDeclaration","scope":711,"src":"3769:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":682,"name":"uint16","nodeType":"ElementaryTypeName","src":"3769:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":685,"mutability":"mutable","name":"_payloadSize","nameLocation":"3794:12:2","nodeType":"VariableDeclaration","scope":711,"src":"3789:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":684,"name":"uint","nodeType":"ElementaryTypeName","src":"3789:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3768:39:2"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[],"src":"3830:0:2"},"scope":971,"src":"3742:395:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":735,"nodeType":"Block","src":"4394:92:2","statements":[{"expression":{"arguments":[{"id":726,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"4432:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":727,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"4442:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":730,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4460:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$971","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$971","typeString":"contract LzApp"}],"id":729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4452:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":728,"name":"address","nodeType":"ElementaryTypeName","src":"4452:7:2","typeDescriptions":{}}},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":732,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":719,"src":"4467:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":724,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"4411:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4422:9:2","memberName":"getConfig","nodeType":"MemberAccess","referencedDeclaration":1342,"src":"4411:20:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint16,uint16,address,uint256) view external returns (bytes memory)"}},"id":733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4411:68:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":723,"id":734,"nodeType":"Return","src":"4404:75:2"}]},"functionSelector":"f5ecbdbc","id":736,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"4248:9:2","nodeType":"FunctionDefinition","parameters":{"id":720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":713,"mutability":"mutable","name":"_version","nameLocation":"4274:8:2","nodeType":"VariableDeclaration","scope":736,"src":"4267:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":712,"name":"uint16","nodeType":"ElementaryTypeName","src":"4267:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":715,"mutability":"mutable","name":"_chainId","nameLocation":"4299:8:2","nodeType":"VariableDeclaration","scope":736,"src":"4292:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":714,"name":"uint16","nodeType":"ElementaryTypeName","src":"4292:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":736,"src":"4317:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":716,"name":"address","nodeType":"ElementaryTypeName","src":"4317:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":719,"mutability":"mutable","name":"_configType","nameLocation":"4339:11:2","nodeType":"VariableDeclaration","scope":736,"src":"4334:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":718,"name":"uint","nodeType":"ElementaryTypeName","src":"4334:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4257:99:2"},"returnParameters":{"id":723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":736,"src":"4380:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":721,"name":"bytes","nodeType":"ElementaryTypeName","src":"4380:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4379:14:2"},"scope":971,"src":"4239:247:2","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1384],"body":{"id":759,"nodeType":"Block","src":"4706:79:2","statements":[{"expression":{"arguments":[{"id":753,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4737:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":754,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":740,"src":"4747:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":755,"name":"_configType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":742,"src":"4757:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":756,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"4770:7:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":750,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"4716:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4727:9:2","memberName":"setConfig","nodeType":"MemberAccess","referencedDeclaration":1384,"src":"4716:20:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,uint16,uint256,bytes memory) external"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4716:62:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":758,"nodeType":"ExpressionStatement","src":"4716:62:2"}]},"functionSelector":"cbed8b9c","id":760,"implemented":true,"kind":"function","modifiers":[{"id":748,"kind":"modifierInvocation","modifierName":{"id":747,"name":"onlyOwner","nameLocations":["4696:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"4696:9:2"},"nodeType":"ModifierInvocation","src":"4696:9:2"}],"name":"setConfig","nameLocation":"4554:9:2","nodeType":"FunctionDefinition","overrides":{"id":746,"nodeType":"OverrideSpecifier","overrides":[],"src":"4687:8:2"},"parameters":{"id":745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":738,"mutability":"mutable","name":"_version","nameLocation":"4580:8:2","nodeType":"VariableDeclaration","scope":760,"src":"4573:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":737,"name":"uint16","nodeType":"ElementaryTypeName","src":"4573:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":740,"mutability":"mutable","name":"_chainId","nameLocation":"4605:8:2","nodeType":"VariableDeclaration","scope":760,"src":"4598:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":739,"name":"uint16","nodeType":"ElementaryTypeName","src":"4598:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":742,"mutability":"mutable","name":"_configType","nameLocation":"4628:11:2","nodeType":"VariableDeclaration","scope":760,"src":"4623:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":741,"name":"uint","nodeType":"ElementaryTypeName","src":"4623:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":744,"mutability":"mutable","name":"_config","nameLocation":"4664:7:2","nodeType":"VariableDeclaration","scope":760,"src":"4649:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":743,"name":"bytes","nodeType":"ElementaryTypeName","src":"4649:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4563:114:2"},"returnParameters":{"id":749,"nodeType":"ParameterList","parameters":[],"src":"4706:0:2"},"scope":971,"src":"4545:240:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1389],"body":{"id":774,"nodeType":"Block","src":"4860:52:2","statements":[{"expression":{"arguments":[{"id":771,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"4896:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":768,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"4870:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4881:14:2","memberName":"setSendVersion","nodeType":"MemberAccess","referencedDeclaration":1389,"src":"4870:25:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4870:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":773,"nodeType":"ExpressionStatement","src":"4870:35:2"}]},"functionSelector":"07e0db17","id":775,"implemented":true,"kind":"function","modifiers":[{"id":766,"kind":"modifierInvocation","modifierName":{"id":765,"name":"onlyOwner","nameLocations":["4850:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"4850:9:2"},"nodeType":"ModifierInvocation","src":"4850:9:2"}],"name":"setSendVersion","nameLocation":"4800:14:2","nodeType":"FunctionDefinition","overrides":{"id":764,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:2"},"parameters":{"id":763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":762,"mutability":"mutable","name":"_version","nameLocation":"4822:8:2","nodeType":"VariableDeclaration","scope":775,"src":"4815:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":761,"name":"uint16","nodeType":"ElementaryTypeName","src":"4815:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4814:17:2"},"returnParameters":{"id":767,"nodeType":"ParameterList","parameters":[],"src":"4860:0:2"},"scope":971,"src":"4791:121:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1394],"body":{"id":789,"nodeType":"Block","src":"4990:55:2","statements":[{"expression":{"arguments":[{"id":786,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"5029:8:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":783,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"5000:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5011:17:2","memberName":"setReceiveVersion","nodeType":"MemberAccess","referencedDeclaration":1394,"src":"5000:28:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16) external"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5000:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":788,"nodeType":"ExpressionStatement","src":"5000:38:2"}]},"functionSelector":"10ddb137","id":790,"implemented":true,"kind":"function","modifiers":[{"id":781,"kind":"modifierInvocation","modifierName":{"id":780,"name":"onlyOwner","nameLocations":["4980:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"4980:9:2"},"nodeType":"ModifierInvocation","src":"4980:9:2"}],"name":"setReceiveVersion","nameLocation":"4927:17:2","nodeType":"FunctionDefinition","overrides":{"id":779,"nodeType":"OverrideSpecifier","overrides":[],"src":"4971:8:2"},"parameters":{"id":778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":777,"mutability":"mutable","name":"_version","nameLocation":"4952:8:2","nodeType":"VariableDeclaration","scope":790,"src":"4945:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":776,"name":"uint16","nodeType":"ElementaryTypeName","src":"4945:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4944:17:2"},"returnParameters":{"id":782,"nodeType":"ParameterList","parameters":[],"src":"4990:0:2"},"scope":971,"src":"4918:127:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1401],"body":{"id":807,"nodeType":"Block","src":"5155:72:2","statements":[{"expression":{"arguments":[{"id":803,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":792,"src":"5195:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":804,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":794,"src":"5208:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":800,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"5165:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5176:18:2","memberName":"forceResumeReceive","nodeType":"MemberAccess","referencedDeclaration":1401,"src":"5165:29:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5165:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":806,"nodeType":"ExpressionStatement","src":"5165:55:2"}]},"functionSelector":"42d65a8d","id":808,"implemented":true,"kind":"function","modifiers":[{"id":798,"kind":"modifierInvocation","modifierName":{"id":797,"name":"onlyOwner","nameLocations":["5145:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"5145:9:2"},"nodeType":"ModifierInvocation","src":"5145:9:2"}],"name":"forceResumeReceive","nameLocation":"5060:18:2","nodeType":"FunctionDefinition","overrides":{"id":796,"nodeType":"OverrideSpecifier","overrides":[],"src":"5136:8:2"},"parameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":792,"mutability":"mutable","name":"_srcChainId","nameLocation":"5086:11:2","nodeType":"VariableDeclaration","scope":808,"src":"5079:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":791,"name":"uint16","nodeType":"ElementaryTypeName","src":"5079:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":794,"mutability":"mutable","name":"_srcAddress","nameLocation":"5114:11:2","nodeType":"VariableDeclaration","scope":808,"src":"5099:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":793,"name":"bytes","nodeType":"ElementaryTypeName","src":"5099:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5078:48:2"},"returnParameters":{"id":799,"nodeType":"ParameterList","parameters":[],"src":"5155:0:2"},"scope":971,"src":"5051:176:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":828,"nodeType":"Block","src":"5460:114:2","statements":[{"expression":{"id":821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":817,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"5470:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":819,"indexExpression":{"id":818,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":810,"src":"5490:14:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5470:35:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":820,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"5508:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"5470:43:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":822,"nodeType":"ExpressionStatement","src":"5470:43:2"},{"eventCall":{"arguments":[{"id":824,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":810,"src":"5545:14:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":825,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"5561:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":823,"name":"SetTrustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"5528:16:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5528:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":827,"nodeType":"EmitStatement","src":"5523:44:2"}]},"functionSelector":"eb8d72b7","id":829,"implemented":true,"kind":"function","modifiers":[{"id":815,"kind":"modifierInvocation","modifierName":{"id":814,"name":"onlyOwner","nameLocations":["5450:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"5450:9:2"},"nodeType":"ModifierInvocation","src":"5450:9:2"}],"name":"setTrustedRemote","nameLocation":"5379:16:2","nodeType":"FunctionDefinition","parameters":{"id":813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":810,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5403:14:2","nodeType":"VariableDeclaration","scope":829,"src":"5396:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":809,"name":"uint16","nodeType":"ElementaryTypeName","src":"5396:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":812,"mutability":"mutable","name":"_path","nameLocation":"5434:5:2","nodeType":"VariableDeclaration","scope":829,"src":"5419:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":811,"name":"bytes","nodeType":"ElementaryTypeName","src":"5419:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5395:45:2"},"returnParameters":{"id":816,"nodeType":"ParameterList","parameters":[],"src":"5460:0:2"},"scope":971,"src":"5370:204:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":856,"nodeType":"Block","src":"5686:172:2","statements":[{"expression":{"id":849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":838,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"5696:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":840,"indexExpression":{"id":839,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"5716:14:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5696:35:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":843,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"5751:14:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"id":846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5775:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_LzApp_$971","typeString":"contract LzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LzApp_$971","typeString":"contract LzApp"}],"id":845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":844,"name":"address","nodeType":"ElementaryTypeName","src":"5767:7:2","typeDescriptions":{}}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5734:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5738:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"5734:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5734:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5696:85:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":850,"nodeType":"ExpressionStatement","src":"5696:85:2"},{"eventCall":{"arguments":[{"id":852,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"5820:14:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":853,"name":"_remoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"5836:14:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":851,"name":"SetTrustedRemoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"5796:23:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":855,"nodeType":"EmitStatement","src":"5791:60:2"}]},"functionSelector":"a6c3d165","id":857,"implemented":true,"kind":"function","modifiers":[{"id":836,"kind":"modifierInvocation","modifierName":{"id":835,"name":"onlyOwner","nameLocations":["5676:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"5676:9:2"},"nodeType":"ModifierInvocation","src":"5676:9:2"}],"name":"setTrustedRemoteAddress","nameLocation":"5589:23:2","nodeType":"FunctionDefinition","parameters":{"id":834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5620:14:2","nodeType":"VariableDeclaration","scope":857,"src":"5613:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":830,"name":"uint16","nodeType":"ElementaryTypeName","src":"5613:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":833,"mutability":"mutable","name":"_remoteAddress","nameLocation":"5651:14:2","nodeType":"VariableDeclaration","scope":857,"src":"5636:29:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":832,"name":"bytes","nodeType":"ElementaryTypeName","src":"5636:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5612:54:2"},"returnParameters":{"id":837,"nodeType":"ParameterList","parameters":[],"src":"5686:0:2"},"scope":971,"src":"5580:278:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":887,"nodeType":"Block","src":"5957:233:2","statements":[{"assignments":[865],"declarations":[{"constant":false,"id":865,"mutability":"mutable","name":"path","nameLocation":"5980:4:2","nodeType":"VariableDeclaration","scope":887,"src":"5967:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":864,"name":"bytes","nodeType":"ElementaryTypeName","src":"5967:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":869,"initialValue":{"baseExpression":{"id":866,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"5987:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":868,"indexExpression":{"id":867,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"6007:14:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5987:35:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5967:55:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":871,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6040:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6045:6:2","memberName":"length","nodeType":"MemberAccess","src":"6040:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6055:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6040:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6058:31:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""},"value":"LzApp: no trusted path record"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","typeString":"literal_string \"LzApp: no trusted path record\""}],"id":870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6032:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:58:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":877,"nodeType":"ExpressionStatement","src":"6032:58:2"},{"expression":{"arguments":[{"hexValue":"30","id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6118:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":881,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6121:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6126:6:2","memberName":"length","nodeType":"MemberAccess","src":"6121:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6135:2:2","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"6121:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":878,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"6107:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:5:2","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":63,"src":"6107:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6107:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":863,"id":886,"nodeType":"Return","src":"6100:38:2"}]},"functionSelector":"9f38369a","id":888,"implemented":true,"kind":"function","modifiers":[],"name":"getTrustedRemoteAddress","nameLocation":"5873:23:2","nodeType":"FunctionDefinition","parameters":{"id":860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":859,"mutability":"mutable","name":"_remoteChainId","nameLocation":"5904:14:2","nodeType":"VariableDeclaration","scope":888,"src":"5897:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":858,"name":"uint16","nodeType":"ElementaryTypeName","src":"5897:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5896:23:2"},"returnParameters":{"id":863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":888,"src":"5943:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":861,"name":"bytes","nodeType":"ElementaryTypeName","src":"5943:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5942:14:2"},"scope":971,"src":"5864:326:2","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":903,"nodeType":"Block","src":"6255:74:2","statements":[{"expression":{"id":897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":895,"name":"precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"6265:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":896,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"6276:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6265:20:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":898,"nodeType":"ExpressionStatement","src":"6265:20:2"},{"eventCall":{"arguments":[{"id":900,"name":"_precrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"6312:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":899,"name":"SetPrecrime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"6300:11:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6300:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":902,"nodeType":"EmitStatement","src":"6295:27:2"}]},"functionSelector":"baf3292d","id":904,"implemented":true,"kind":"function","modifiers":[{"id":893,"kind":"modifierInvocation","modifierName":{"id":892,"name":"onlyOwner","nameLocations":["6245:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"6245:9:2"},"nodeType":"ModifierInvocation","src":"6245:9:2"}],"name":"setPrecrime","nameLocation":"6205:11:2","nodeType":"FunctionDefinition","parameters":{"id":891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":890,"mutability":"mutable","name":"_precrime","nameLocation":"6225:9:2","nodeType":"VariableDeclaration","scope":904,"src":"6217:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":889,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6216:19:2"},"returnParameters":{"id":894,"nodeType":"ParameterList","parameters":[],"src":"6255:0:2"},"scope":971,"src":"6196:133:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":929,"nodeType":"Block","src":"6460:130:2","statements":[{"expression":{"id":921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":915,"name":"minDstGasLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"6470:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_uint16_$_t_uint256_$_$","typeString":"mapping(uint16 => mapping(uint16 => uint256))"}},"id":918,"indexExpression":{"id":916,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"6486:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6470:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":919,"indexExpression":{"id":917,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":908,"src":"6499:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6470:41:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":920,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"6514:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6470:51:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":922,"nodeType":"ExpressionStatement","src":"6470:51:2"},{"eventCall":{"arguments":[{"id":924,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"6549:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":925,"name":"_packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":908,"src":"6562:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":926,"name":"_minGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"6575:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":923,"name":"SetMinDstGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":491,"src":"6536:12:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,uint256)"}},"id":927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6536:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":928,"nodeType":"EmitStatement","src":"6531:52:2"}]},"functionSelector":"df2a5b3b","id":930,"implemented":true,"kind":"function","modifiers":[{"id":913,"kind":"modifierInvocation","modifierName":{"id":912,"name":"onlyOwner","nameLocations":["6450:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"6450:9:2"},"nodeType":"ModifierInvocation","src":"6450:9:2"}],"name":"setMinDstGas","nameLocation":"6344:12:2","nodeType":"FunctionDefinition","parameters":{"id":911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":906,"mutability":"mutable","name":"_dstChainId","nameLocation":"6373:11:2","nodeType":"VariableDeclaration","scope":930,"src":"6366:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":905,"name":"uint16","nodeType":"ElementaryTypeName","src":"6366:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":908,"mutability":"mutable","name":"_packetType","nameLocation":"6401:11:2","nodeType":"VariableDeclaration","scope":930,"src":"6394:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":907,"name":"uint16","nodeType":"ElementaryTypeName","src":"6394:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":910,"mutability":"mutable","name":"_minGas","nameLocation":"6427:7:2","nodeType":"VariableDeclaration","scope":930,"src":"6422:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":909,"name":"uint","nodeType":"ElementaryTypeName","src":"6422:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6356:84:2"},"returnParameters":{"id":914,"nodeType":"ParameterList","parameters":[],"src":"6460:0:2"},"scope":971,"src":"6335:255:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":945,"nodeType":"Block","src":"6729:60:2","statements":[{"expression":{"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":939,"name":"payloadSizeLimitLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":465,"src":"6739:22:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":941,"indexExpression":{"id":940,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"6762:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6739:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":942,"name":"_size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":934,"src":"6777:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6739:43:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":944,"nodeType":"ExpressionStatement","src":"6739:43:2"}]},"functionSelector":"0df37483","id":946,"implemented":true,"kind":"function","modifiers":[{"id":937,"kind":"modifierInvocation","modifierName":{"id":936,"name":"onlyOwner","nameLocations":["6719:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"6719:9:2"},"nodeType":"ModifierInvocation","src":"6719:9:2"}],"name":"setPayloadSizeLimit","nameLocation":"6658:19:2","nodeType":"FunctionDefinition","parameters":{"id":935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":932,"mutability":"mutable","name":"_dstChainId","nameLocation":"6685:11:2","nodeType":"VariableDeclaration","scope":946,"src":"6678:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":931,"name":"uint16","nodeType":"ElementaryTypeName","src":"6678:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":934,"mutability":"mutable","name":"_size","nameLocation":"6703:5:2","nodeType":"VariableDeclaration","scope":946,"src":"6698:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":933,"name":"uint","nodeType":"ElementaryTypeName","src":"6698:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6677:32:2"},"returnParameters":{"id":938,"nodeType":"ParameterList","parameters":[],"src":"6729:0:2"},"scope":971,"src":"6649:140:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":969,"nodeType":"Block","src":"6986:145:2","statements":[{"assignments":[956],"declarations":[{"constant":false,"id":956,"mutability":"mutable","name":"trustedSource","nameLocation":"7009:13:2","nodeType":"VariableDeclaration","scope":969,"src":"6996:26:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":955,"name":"bytes","nodeType":"ElementaryTypeName","src":"6996:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":960,"initialValue":{"baseExpression":{"id":957,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"7025:19:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":959,"indexExpression":{"id":958,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"7045:11:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7025:32:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6996:61:2"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":962,"name":"trustedSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":956,"src":"7084:13:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":961,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7074:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7074:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":965,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"7112:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":964,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7102:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7102:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7074:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":954,"id":968,"nodeType":"Return","src":"7067:57:2"}]},"functionSelector":"3d8b38f6","id":970,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"6893:15:2","nodeType":"FunctionDefinition","parameters":{"id":951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":948,"mutability":"mutable","name":"_srcChainId","nameLocation":"6916:11:2","nodeType":"VariableDeclaration","scope":970,"src":"6909:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":947,"name":"uint16","nodeType":"ElementaryTypeName","src":"6909:6:2","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":950,"mutability":"mutable","name":"_srcAddress","nameLocation":"6944:11:2","nodeType":"VariableDeclaration","scope":970,"src":"6929:26:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":949,"name":"bytes","nodeType":"ElementaryTypeName","src":"6929:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6908:48:2"},"returnParameters":{"id":954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":970,"src":"6980:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":952,"name":"bool","nodeType":"ElementaryTypeName","src":"6980:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6979:6:2"},"scope":971,"src":"6884:247:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":972,"src":"345:6788:2","usedErrors":[],"usedEvents":[471,477,483,491,5389]}],"src":"33:7101:2"},"id":2},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","exportedSymbols":{"BytesLib":[332],"Context":[7050],"ExcessivelySafeCall":[429],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"LzApp":[971],"NonblockingLzApp":[1212],"Ownable":[5488]},"id":1213,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":973,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:3"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol","file":"./LzApp.sol","id":974,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1213,"sourceUnit":972,"src":"58:21:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","file":"../libraries/ExcessivelySafeCall.sol","id":975,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1213,"sourceUnit":430,"src":"80:46:3","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":976,"name":"LzApp","nameLocations":["510:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":971,"src":"510:5:3"},"id":977,"nodeType":"InheritanceSpecifier","src":"510:5:3"}],"canonicalName":"NonblockingLzApp","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":1212,"linearizedBaseContracts":[1212,971,1402,1371,5488,7050],"name":"NonblockingLzApp","nameLocation":"490:16:3","nodeType":"ContractDefinition","nodes":[{"global":false,"id":980,"libraryName":{"id":978,"name":"ExcessivelySafeCall","nameLocations":["528:19:3"],"nodeType":"IdentifierPath","referencedDeclaration":429,"src":"528:19:3"},"nodeType":"UsingForDirective","src":"522:38:3","typeName":{"id":979,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":988,"nodeType":"Block","src":"614:2:3","statements":[]},"id":989,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":985,"name":"_endpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"603:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":986,"kind":"baseConstructorSpecifier","modifierName":{"id":984,"name":"LzApp","nameLocations":["597:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":971,"src":"597:5:3"},"nodeType":"ModifierInvocation","src":"597:16:3"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":982,"mutability":"mutable","name":"_endpoint","nameLocation":"586:9:3","nodeType":"VariableDeclaration","scope":989,"src":"578:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":981,"name":"address","nodeType":"ElementaryTypeName","src":"578:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"577:19:3"},"returnParameters":{"id":987,"nodeType":"ParameterList","parameters":[],"src":"614:0:3"},"scope":1212,"src":"566:50:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"functionSelector":"5b8c41e6","id":997,"mutability":"mutable","name":"failedMessages","nameLocation":"693:14:3","nodeType":"VariableDeclaration","scope":1212,"src":"622:85:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"typeName":{"id":996,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":990,"name":"uint16","nodeType":"ElementaryTypeName","src":"630:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"622:63:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":995,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":991,"name":"bytes","nodeType":"ElementaryTypeName","src":"648:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"640:44:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes => mapping(uint64 => bytes32))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":994,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":992,"name":"uint64","nodeType":"ElementaryTypeName","src":"665:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"657:26:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"675:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}}},"visibility":"public"},{"anonymous":false,"eventSelector":"e183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c","id":1009,"name":"MessageFailed","nameLocation":"720:13:3","nodeType":"EventDefinition","parameters":{"id":1008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"741:11:3","nodeType":"VariableDeclaration","scope":1009,"src":"734:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":998,"name":"uint16","nodeType":"ElementaryTypeName","src":"734:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1001,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"760:11:3","nodeType":"VariableDeclaration","scope":1009,"src":"754:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1000,"name":"bytes","nodeType":"ElementaryTypeName","src":"754:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1003,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"780:6:3","nodeType":"VariableDeclaration","scope":1009,"src":"773:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1002,"name":"uint64","nodeType":"ElementaryTypeName","src":"773:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1005,"indexed":false,"mutability":"mutable","name":"_payload","nameLocation":"794:8:3","nodeType":"VariableDeclaration","scope":1009,"src":"788:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1004,"name":"bytes","nodeType":"ElementaryTypeName","src":"788:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1007,"indexed":false,"mutability":"mutable","name":"_reason","nameLocation":"810:7:3","nodeType":"VariableDeclaration","scope":1009,"src":"804:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1006,"name":"bytes","nodeType":"ElementaryTypeName","src":"804:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"733:85:3"},"src":"714:105:3"},{"anonymous":false,"eventSelector":"c264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e5","id":1019,"name":"RetryMessageSuccess","nameLocation":"830:19:3","nodeType":"EventDefinition","parameters":{"id":1018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1011,"indexed":false,"mutability":"mutable","name":"_srcChainId","nameLocation":"857:11:3","nodeType":"VariableDeclaration","scope":1019,"src":"850:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1010,"name":"uint16","nodeType":"ElementaryTypeName","src":"850:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1013,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"876:11:3","nodeType":"VariableDeclaration","scope":1019,"src":"870:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1012,"name":"bytes","nodeType":"ElementaryTypeName","src":"870:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1015,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"896:6:3","nodeType":"VariableDeclaration","scope":1019,"src":"889:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1014,"name":"uint64","nodeType":"ElementaryTypeName","src":"889:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1017,"indexed":false,"mutability":"mutable","name":"_payloadHash","nameLocation":"912:12:3","nodeType":"VariableDeclaration","scope":1019,"src":"904:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"904:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"849:76:3"},"src":"824:102:3"},{"baseFunctions":[573],"body":{"id":1067,"nodeType":"Block","src":"1161:416:3","statements":[{"assignments":[1032,1034],"declarations":[{"constant":false,"id":1032,"mutability":"mutable","name":"success","nameLocation":"1177:7:3","nodeType":"VariableDeclaration","scope":1067,"src":"1172:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1031,"name":"bool","nodeType":"ElementaryTypeName","src":"1172:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1034,"mutability":"mutable","name":"reason","nameLocation":"1199:6:3","nodeType":"VariableDeclaration","scope":1067,"src":"1186:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1033,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1054,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1040,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1256:7:3","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1256:9:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":1042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1279:3:3","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":1045,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1319:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1212","typeString":"contract NonblockingLzApp"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:20:3","memberName":"nonblockingLzReceive","nodeType":"MemberAccess","referencedDeclaration":1132,"src":"1319:25:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1345:8:3","memberName":"selector","nodeType":"MemberAccess","src":"1319:34:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":1048,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1355:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1049,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"1368:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1050,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"1381:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1051,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"1389:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1296:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1300:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1296:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":1052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1296:102:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1037,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1217:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1212","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1212","typeString":"contract NonblockingLzApp"}],"id":1036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1209:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1035,"name":"address","nodeType":"ElementaryTypeName","src":"1209:7:3","typeDescriptions":{}}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:19:3","memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":372,"src":"1209:33:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:199:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1171:237:3"},{"condition":{"id":1056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1465:8:3","subExpression":{"id":1055,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"1466:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"IfStatement","src":"1461:110:3","trueBody":{"id":1065,"nodeType":"Block","src":"1475:96:3","statements":[{"expression":{"arguments":[{"id":1058,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1021,"src":"1509:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1059,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1023,"src":"1522:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1060,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"1535:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1061,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"1543:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1062,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1553:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1057,"name":"_storeFailedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"1489:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1489:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1064,"nodeType":"ExpressionStatement","src":"1489:71:3"}]}}]},"id":1068,"implemented":true,"kind":"function","modifiers":[],"name":"_blockingLzReceive","nameLocation":"994:18:3","nodeType":"FunctionDefinition","overrides":{"id":1029,"nodeType":"OverrideSpecifier","overrides":[],"src":"1152:8:3"},"parameters":{"id":1028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1021,"mutability":"mutable","name":"_srcChainId","nameLocation":"1029:11:3","nodeType":"VariableDeclaration","scope":1068,"src":"1022:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1020,"name":"uint16","nodeType":"ElementaryTypeName","src":"1022:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1023,"mutability":"mutable","name":"_srcAddress","nameLocation":"1063:11:3","nodeType":"VariableDeclaration","scope":1068,"src":"1050:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1022,"name":"bytes","nodeType":"ElementaryTypeName","src":"1050:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1025,"mutability":"mutable","name":"_nonce","nameLocation":"1091:6:3","nodeType":"VariableDeclaration","scope":1068,"src":"1084:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1024,"name":"uint64","nodeType":"ElementaryTypeName","src":"1084:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1027,"mutability":"mutable","name":"_payload","nameLocation":"1120:8:3","nodeType":"VariableDeclaration","scope":1068,"src":"1107:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1026,"name":"bytes","nodeType":"ElementaryTypeName","src":"1107:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1012:122:3"},"returnParameters":{"id":1030,"nodeType":"ParameterList","parameters":[],"src":"1161:0:3"},"scope":1212,"src":"985:592:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1101,"nodeType":"Block","src":"1781:168:3","statements":[{"expression":{"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1081,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"1791:14:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1085,"indexExpression":{"id":1082,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1070,"src":"1806:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:27:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1086,"indexExpression":{"id":1083,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1072,"src":"1819:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:40:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1087,"indexExpression":{"id":1084,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"1832:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1791:48:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1089,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"1852:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1088,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1842:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1791:70:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1092,"nodeType":"ExpressionStatement","src":"1791:70:3"},{"eventCall":{"arguments":[{"id":1094,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1070,"src":"1890:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1095,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1072,"src":"1903:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1096,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"1916:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1097,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"1924:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1098,"name":"_reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"1934:7:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1093,"name":"MessageFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"1876:13:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1100,"nodeType":"EmitStatement","src":"1871:71:3"}]},"id":1102,"implemented":true,"kind":"function","modifiers":[],"name":"_storeFailedMessage","nameLocation":"1592:19:3","nodeType":"FunctionDefinition","parameters":{"id":1079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"_srcChainId","nameLocation":"1628:11:3","nodeType":"VariableDeclaration","scope":1102,"src":"1621:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1069,"name":"uint16","nodeType":"ElementaryTypeName","src":"1621:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1072,"mutability":"mutable","name":"_srcAddress","nameLocation":"1662:11:3","nodeType":"VariableDeclaration","scope":1102,"src":"1649:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1071,"name":"bytes","nodeType":"ElementaryTypeName","src":"1649:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1074,"mutability":"mutable","name":"_nonce","nameLocation":"1690:6:3","nodeType":"VariableDeclaration","scope":1102,"src":"1683:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1073,"name":"uint64","nodeType":"ElementaryTypeName","src":"1683:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1076,"mutability":"mutable","name":"_payload","nameLocation":"1719:8:3","nodeType":"VariableDeclaration","scope":1102,"src":"1706:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1075,"name":"bytes","nodeType":"ElementaryTypeName","src":"1706:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"_reason","nameLocation":"1750:7:3","nodeType":"VariableDeclaration","scope":1102,"src":"1737:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1077,"name":"bytes","nodeType":"ElementaryTypeName","src":"1737:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1611:152:3"},"returnParameters":{"id":1080,"nodeType":"ParameterList","parameters":[],"src":"1781:0:3"},"scope":1212,"src":"1583:366:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1131,"nodeType":"Block","src":"2126:209:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1114,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"2181:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2181:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1118,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2205:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_NonblockingLzApp_$1212","typeString":"contract NonblockingLzApp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NonblockingLzApp_$1212","typeString":"contract NonblockingLzApp"}],"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2197:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"2197:7:3","typeDescriptions":{}}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2197:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2181:29:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265204c7a417070","id":1121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2212:40:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""},"value":"NonblockingLzApp: caller must be LzApp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","typeString":"literal_string \"NonblockingLzApp: caller must be LzApp\""}],"id":1113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2173:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2173:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1123,"nodeType":"ExpressionStatement","src":"2173:80:3"},{"expression":{"arguments":[{"id":1125,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"2285:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1126,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"2298:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1127,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"2311:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1128,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"2319:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1124,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"2263:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:65:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1130,"nodeType":"ExpressionStatement","src":"2263:65:3"}]},"functionSelector":"66ad5c8a","id":1132,"implemented":true,"kind":"function","modifiers":[],"name":"nonblockingLzReceive","nameLocation":"1964:20:3","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"mutability":"mutable","name":"_srcChainId","nameLocation":"2001:11:3","nodeType":"VariableDeclaration","scope":1132,"src":"1994:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1103,"name":"uint16","nodeType":"ElementaryTypeName","src":"1994:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1106,"mutability":"mutable","name":"_srcAddress","nameLocation":"2037:11:3","nodeType":"VariableDeclaration","scope":1132,"src":"2022:26:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1105,"name":"bytes","nodeType":"ElementaryTypeName","src":"2022:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"_nonce","nameLocation":"2065:6:3","nodeType":"VariableDeclaration","scope":1132,"src":"2058:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1107,"name":"uint64","nodeType":"ElementaryTypeName","src":"2058:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"_payload","nameLocation":"2096:8:3","nodeType":"VariableDeclaration","scope":1132,"src":"2081:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1109,"name":"bytes","nodeType":"ElementaryTypeName","src":"2081:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1984:126:3"},"returnParameters":{"id":1112,"nodeType":"ParameterList","parameters":[],"src":"2126:0:3"},"scope":1212,"src":"1955:380:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":1143,"implemented":false,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"2387:21:3","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1134,"mutability":"mutable","name":"_srcChainId","nameLocation":"2425:11:3","nodeType":"VariableDeclaration","scope":1143,"src":"2418:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1133,"name":"uint16","nodeType":"ElementaryTypeName","src":"2418:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1136,"mutability":"mutable","name":"_srcAddress","nameLocation":"2459:11:3","nodeType":"VariableDeclaration","scope":1143,"src":"2446:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2446:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1138,"mutability":"mutable","name":"_nonce","nameLocation":"2487:6:3","nodeType":"VariableDeclaration","scope":1143,"src":"2480:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1137,"name":"uint64","nodeType":"ElementaryTypeName","src":"2480:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"_payload","nameLocation":"2516:8:3","nodeType":"VariableDeclaration","scope":1143,"src":"2503:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1139,"name":"bytes","nodeType":"ElementaryTypeName","src":"2503:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2408:122:3"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[],"src":"2547:0:3"},"scope":1212,"src":"2378:170:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1210,"nodeType":"Block","src":"2725:624:3","statements":[{"assignments":[1155],"declarations":[{"constant":false,"id":1155,"mutability":"mutable","name":"payloadHash","nameLocation":"2787:11:3","nodeType":"VariableDeclaration","scope":1210,"src":"2779:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2779:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1163,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1156,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"2801:14:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1158,"indexExpression":{"id":1157,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"2816:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2801:27:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1160,"indexExpression":{"id":1159,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"2829:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2801:40:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1162,"indexExpression":{"id":1161,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"2842:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2801:48:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2779:70:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1165,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"2867:11:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2882:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2882:7:3","typeDescriptions":{}}},"id":1169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2867:25:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373616765","id":1171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2894:37:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""},"value":"NonblockingLzApp: no stored message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","typeString":"literal_string \"NonblockingLzApp: no stored message\""}],"id":1164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2859:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2859:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1173,"nodeType":"ExpressionStatement","src":"2859:73:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1176,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"2960:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1175,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2950:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2950:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1178,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"2973:11:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2950:34:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6164","id":1180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2986:35:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""},"value":"NonblockingLzApp: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","typeString":"literal_string \"NonblockingLzApp: invalid payload\""}],"id":1174,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2942:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2942:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1182,"nodeType":"ExpressionStatement","src":"2942:80:3"},{"expression":{"id":1194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":1183,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"3068:14:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":1187,"indexExpression":{"id":1184,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"3083:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3068:27:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":1188,"indexExpression":{"id":1185,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3096:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3068:40:3","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":1189,"indexExpression":{"id":1186,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3109:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3068:48:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3127:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3119:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3119:7:3","typeDescriptions":{}}},"id":1193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3119:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3068:61:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1195,"nodeType":"ExpressionStatement","src":"3068:61:3"},{"expression":{"arguments":[{"id":1197,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"3218:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1198,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3231:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1199,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3244:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1200,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"3252:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1196,"name":"_nonblockingLzReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"3196:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":1201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:65:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1202,"nodeType":"ExpressionStatement","src":"3196:65:3"},{"eventCall":{"arguments":[{"id":1204,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"3296:11:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1205,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"3309:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1206,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"3322:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":1207,"name":"payloadHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1155,"src":"3330:11:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1203,"name":"RetryMessageSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"3276:19:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:66:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1209,"nodeType":"EmitStatement","src":"3271:71:3"}]},"functionSelector":"d1deba1f","id":1211,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"2563:12:3","nodeType":"FunctionDefinition","parameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"_srcChainId","nameLocation":"2592:11:3","nodeType":"VariableDeclaration","scope":1211,"src":"2585:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1144,"name":"uint16","nodeType":"ElementaryTypeName","src":"2585:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1147,"mutability":"mutable","name":"_srcAddress","nameLocation":"2628:11:3","nodeType":"VariableDeclaration","scope":1211,"src":"2613:26:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1146,"name":"bytes","nodeType":"ElementaryTypeName","src":"2613:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1149,"mutability":"mutable","name":"_nonce","nameLocation":"2656:6:3","nodeType":"VariableDeclaration","scope":1211,"src":"2649:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1148,"name":"uint64","nodeType":"ElementaryTypeName","src":"2649:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1151,"mutability":"mutable","name":"_payload","nameLocation":"2687:8:3","nodeType":"VariableDeclaration","scope":1211,"src":"2672:23:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1150,"name":"bytes","nodeType":"ElementaryTypeName","src":"2672:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2575:126:3"},"returnParameters":{"id":1153,"nodeType":"ParameterList","parameters":[],"src":"2725:0:3"},"scope":1212,"src":"2554:795:3","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":1213,"src":"472:2879:3","usedErrors":[],"usedEvents":[471,477,483,491,1009,1019,5389]}],"src":"33:3319:3"},"id":3},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","exportedSymbols":{"ILayerZeroEndpoint":[1357],"ILayerZeroUserApplicationConfig":[1402]},"id":1358,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1214,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:4"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","file":"./ILayerZeroUserApplicationConfig.sol","id":1215,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1358,"sourceUnit":1403,"src":"59:47:4","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1216,"name":"ILayerZeroUserApplicationConfig","nameLocations":["140:31:4"],"nodeType":"IdentifierPath","referencedDeclaration":1402,"src":"140:31:4"},"id":1217,"nodeType":"InheritanceSpecifier","src":"140:31:4"}],"canonicalName":"ILayerZeroEndpoint","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1357,"linearizedBaseContracts":[1357,1402],"name":"ILayerZeroEndpoint","nameLocation":"118:18:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c5803100","id":1232,"implemented":false,"kind":"function","modifiers":[],"name":"send","nameLocation":"923:4:4","nodeType":"FunctionDefinition","parameters":{"id":1230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1219,"mutability":"mutable","name":"_dstChainId","nameLocation":"944:11:4","nodeType":"VariableDeclaration","scope":1232,"src":"937:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1218,"name":"uint16","nodeType":"ElementaryTypeName","src":"937:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1221,"mutability":"mutable","name":"_destination","nameLocation":"980:12:4","nodeType":"VariableDeclaration","scope":1232,"src":"965:27:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1220,"name":"bytes","nodeType":"ElementaryTypeName","src":"965:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"_payload","nameLocation":"1017:8:4","nodeType":"VariableDeclaration","scope":1232,"src":"1002:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1222,"name":"bytes","nodeType":"ElementaryTypeName","src":"1002:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1225,"mutability":"mutable","name":"_refundAddress","nameLocation":"1051:14:4","nodeType":"VariableDeclaration","scope":1232,"src":"1035:30:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1224,"name":"address","nodeType":"ElementaryTypeName","src":"1035:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1227,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"1083:18:4","nodeType":"VariableDeclaration","scope":1232,"src":"1075:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1226,"name":"address","nodeType":"ElementaryTypeName","src":"1075:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1229,"mutability":"mutable","name":"_adapterParams","nameLocation":"1126:14:4","nodeType":"VariableDeclaration","scope":1232,"src":"1111:29:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1228,"name":"bytes","nodeType":"ElementaryTypeName","src":"1111:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"927:219:4"},"returnParameters":{"id":1231,"nodeType":"ParameterList","parameters":[],"src":"1163:0:4"},"scope":1357,"src":"914:250:4","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"c2fa4813","id":1247,"implemented":false,"kind":"function","modifiers":[],"name":"receivePayload","nameLocation":"1656:14:4","nodeType":"FunctionDefinition","parameters":{"id":1245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1234,"mutability":"mutable","name":"_srcChainId","nameLocation":"1687:11:4","nodeType":"VariableDeclaration","scope":1247,"src":"1680:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1233,"name":"uint16","nodeType":"ElementaryTypeName","src":"1680:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1236,"mutability":"mutable","name":"_srcAddress","nameLocation":"1723:11:4","nodeType":"VariableDeclaration","scope":1247,"src":"1708:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1235,"name":"bytes","nodeType":"ElementaryTypeName","src":"1708:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1238,"mutability":"mutable","name":"_dstAddress","nameLocation":"1752:11:4","nodeType":"VariableDeclaration","scope":1247,"src":"1744:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1237,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1240,"mutability":"mutable","name":"_nonce","nameLocation":"1780:6:4","nodeType":"VariableDeclaration","scope":1247,"src":"1773:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1239,"name":"uint64","nodeType":"ElementaryTypeName","src":"1773:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1242,"mutability":"mutable","name":"_gasLimit","nameLocation":"1801:9:4","nodeType":"VariableDeclaration","scope":1247,"src":"1796:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1241,"name":"uint","nodeType":"ElementaryTypeName","src":"1796:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1244,"mutability":"mutable","name":"_payload","nameLocation":"1835:8:4","nodeType":"VariableDeclaration","scope":1247,"src":"1820:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1243,"name":"bytes","nodeType":"ElementaryTypeName","src":"1820:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1670:179:4"},"returnParameters":{"id":1246,"nodeType":"ParameterList","parameters":[],"src":"1858:0:4"},"scope":1357,"src":"1647:212:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fdc07c70","id":1256,"implemented":false,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"2095:15:4","nodeType":"FunctionDefinition","parameters":{"id":1252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"_srcChainId","nameLocation":"2118:11:4","nodeType":"VariableDeclaration","scope":1256,"src":"2111:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1248,"name":"uint16","nodeType":"ElementaryTypeName","src":"2111:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1251,"mutability":"mutable","name":"_srcAddress","nameLocation":"2146:11:4","nodeType":"VariableDeclaration","scope":1256,"src":"2131:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1250,"name":"bytes","nodeType":"ElementaryTypeName","src":"2131:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2110:48:4"},"returnParameters":{"id":1255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1256,"src":"2182:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1253,"name":"uint64","nodeType":"ElementaryTypeName","src":"2182:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2181:8:4"},"scope":1357,"src":"2086:104:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7a145748","id":1265,"implemented":false,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"2365:16:4","nodeType":"FunctionDefinition","parameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"_dstChainId","nameLocation":"2389:11:4","nodeType":"VariableDeclaration","scope":1265,"src":"2382:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1257,"name":"uint16","nodeType":"ElementaryTypeName","src":"2382:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"_srcAddress","nameLocation":"2410:11:4","nodeType":"VariableDeclaration","scope":1265,"src":"2402:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2381:41:4"},"returnParameters":{"id":1264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1265,"src":"2446:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1262,"name":"uint64","nodeType":"ElementaryTypeName","src":"2446:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2445:8:4"},"scope":1357,"src":"2356:98:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"40a7bb10","id":1282,"implemented":false,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"2977:12:4","nodeType":"FunctionDefinition","parameters":{"id":1276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1267,"mutability":"mutable","name":"_dstChainId","nameLocation":"3006:11:4","nodeType":"VariableDeclaration","scope":1282,"src":"2999:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1266,"name":"uint16","nodeType":"ElementaryTypeName","src":"2999:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"_userApplication","nameLocation":"3035:16:4","nodeType":"VariableDeclaration","scope":1282,"src":"3027:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1268,"name":"address","nodeType":"ElementaryTypeName","src":"3027:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"_payload","nameLocation":"3076:8:4","nodeType":"VariableDeclaration","scope":1282,"src":"3061:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3061:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1273,"mutability":"mutable","name":"_payInZRO","nameLocation":"3099:9:4","nodeType":"VariableDeclaration","scope":1282,"src":"3094:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1272,"name":"bool","nodeType":"ElementaryTypeName","src":"3094:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1275,"mutability":"mutable","name":"_adapterParam","nameLocation":"3133:13:4","nodeType":"VariableDeclaration","scope":1282,"src":"3118:28:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1274,"name":"bytes","nodeType":"ElementaryTypeName","src":"3118:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2989:163:4"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"nativeFee","nameLocation":"3181:9:4","nodeType":"VariableDeclaration","scope":1282,"src":"3176:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1277,"name":"uint","nodeType":"ElementaryTypeName","src":"3176:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"zroFee","nameLocation":"3197:6:4","nodeType":"VariableDeclaration","scope":1282,"src":"3192:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint","nodeType":"ElementaryTypeName","src":"3192:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:29:4"},"scope":1357,"src":"2968:237:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3408e470","id":1287,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3283:10:4","nodeType":"FunctionDefinition","parameters":{"id":1283,"nodeType":"ParameterList","parameters":[],"src":"3293:2:4"},"returnParameters":{"id":1286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1287,"src":"3319:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1284,"name":"uint16","nodeType":"ElementaryTypeName","src":"3319:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3318:8:4"},"scope":1357,"src":"3274:53:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aaff5f16","id":1296,"implemented":false,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"3593:12:4","nodeType":"FunctionDefinition","parameters":{"id":1294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1289,"mutability":"mutable","name":"_srcChainId","nameLocation":"3622:11:4","nodeType":"VariableDeclaration","scope":1296,"src":"3615:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1288,"name":"uint16","nodeType":"ElementaryTypeName","src":"3615:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1291,"mutability":"mutable","name":"_srcAddress","nameLocation":"3658:11:4","nodeType":"VariableDeclaration","scope":1296,"src":"3643:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1290,"name":"bytes","nodeType":"ElementaryTypeName","src":"3643:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1293,"mutability":"mutable","name":"_payload","nameLocation":"3694:8:4","nodeType":"VariableDeclaration","scope":1296,"src":"3679:23:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1292,"name":"bytes","nodeType":"ElementaryTypeName","src":"3679:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3605:103:4"},"returnParameters":{"id":1295,"nodeType":"ParameterList","parameters":[],"src":"3717:0:4"},"scope":1357,"src":"3584:134:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0eaf6ea6","id":1305,"implemented":false,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"3930:16:4","nodeType":"FunctionDefinition","parameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1298,"mutability":"mutable","name":"_srcChainId","nameLocation":"3954:11:4","nodeType":"VariableDeclaration","scope":1305,"src":"3947:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1297,"name":"uint16","nodeType":"ElementaryTypeName","src":"3947:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1300,"mutability":"mutable","name":"_srcAddress","nameLocation":"3982:11:4","nodeType":"VariableDeclaration","scope":1305,"src":"3967:26:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1299,"name":"bytes","nodeType":"ElementaryTypeName","src":"3967:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3946:48:4"},"returnParameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1305,"src":"4018:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1302,"name":"bool","nodeType":"ElementaryTypeName","src":"4018:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4017:6:4"},"scope":1357,"src":"3921:103:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9c729da1","id":1312,"implemented":false,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"4182:21:4","nodeType":"FunctionDefinition","parameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"mutability":"mutable","name":"_userApplication","nameLocation":"4212:16:4","nodeType":"VariableDeclaration","scope":1312,"src":"4204:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1306,"name":"address","nodeType":"ElementaryTypeName","src":"4204:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4203:26:4"},"returnParameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1312,"src":"4253:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1309,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4252:9:4"},"scope":1357,"src":"4173:89:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"71ba2fd6","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"4422:24:4","nodeType":"FunctionDefinition","parameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"_userApplication","nameLocation":"4455:16:4","nodeType":"VariableDeclaration","scope":1319,"src":"4447:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"4447:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4446:26:4"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1319,"src":"4496:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"4496:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4495:9:4"},"scope":1357,"src":"4413:92:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e97a448a","id":1324,"implemented":false,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"4642:16:4","nodeType":"FunctionDefinition","parameters":{"id":1320,"nodeType":"ParameterList","parameters":[],"src":"4658:2:4"},"returnParameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1324,"src":"4684:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1321,"name":"bool","nodeType":"ElementaryTypeName","src":"4684:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4683:6:4"},"scope":1357,"src":"4633:57:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ca066b35","id":1329,"implemented":false,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"4830:18:4","nodeType":"FunctionDefinition","parameters":{"id":1325,"nodeType":"ParameterList","parameters":[],"src":"4848:2:4"},"returnParameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1329,"src":"4874:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1326,"name":"bool","nodeType":"ElementaryTypeName","src":"4874:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4873:6:4"},"scope":1357,"src":"4821:59:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f5ecbdbc","id":1342,"implemented":false,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"5287:9:4","nodeType":"FunctionDefinition","parameters":{"id":1338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"_version","nameLocation":"5313:8:4","nodeType":"VariableDeclaration","scope":1342,"src":"5306:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1330,"name":"uint16","nodeType":"ElementaryTypeName","src":"5306:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1333,"mutability":"mutable","name":"_chainId","nameLocation":"5338:8:4","nodeType":"VariableDeclaration","scope":1342,"src":"5331:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1332,"name":"uint16","nodeType":"ElementaryTypeName","src":"5331:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1335,"mutability":"mutable","name":"_userApplication","nameLocation":"5364:16:4","nodeType":"VariableDeclaration","scope":1342,"src":"5356:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1334,"name":"address","nodeType":"ElementaryTypeName","src":"5356:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"_configType","nameLocation":"5395:11:4","nodeType":"VariableDeclaration","scope":1342,"src":"5390:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1336,"name":"uint","nodeType":"ElementaryTypeName","src":"5390:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5296:116:4"},"returnParameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1342,"src":"5436:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1339,"name":"bytes","nodeType":"ElementaryTypeName","src":"5436:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5435:14:4"},"scope":1357,"src":"5278:172:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"096568f6","id":1349,"implemented":false,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"5609:14:4","nodeType":"FunctionDefinition","parameters":{"id":1345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1344,"mutability":"mutable","name":"_userApplication","nameLocation":"5632:16:4","nodeType":"VariableDeclaration","scope":1349,"src":"5624:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1343,"name":"address","nodeType":"ElementaryTypeName","src":"5624:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5623:26:4"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1349,"src":"5673:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1346,"name":"uint16","nodeType":"ElementaryTypeName","src":"5673:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5672:8:4"},"scope":1357,"src":"5600:81:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"da1a7c9a","id":1356,"implemented":false,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"5845:17:4","nodeType":"FunctionDefinition","parameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"mutability":"mutable","name":"_userApplication","nameLocation":"5871:16:4","nodeType":"VariableDeclaration","scope":1356,"src":"5863:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1350,"name":"address","nodeType":"ElementaryTypeName","src":"5863:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5862:26:4"},"returnParameters":{"id":1355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1356,"src":"5912:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1353,"name":"uint16","nodeType":"ElementaryTypeName","src":"5912:6:4","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5911:8:4"},"scope":1357,"src":"5836:84:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1358,"src":"108:5814:4","usedErrors":[],"usedEvents":[]}],"src":"33:5890:4"},"id":4},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","exportedSymbols":{"ILayerZeroReceiver":[1371]},"id":1372,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1359,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:5"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1371,"linearizedBaseContracts":[1371],"name":"ILayerZeroReceiver","nameLocation":"69:18:5","nodeType":"ContractDefinition","nodes":[{"functionSelector":"001d3567","id":1370,"implemented":false,"kind":"function","modifiers":[],"name":"lzReceive","nameLocation":"482:9:5","nodeType":"FunctionDefinition","parameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"_srcChainId","nameLocation":"508:11:5","nodeType":"VariableDeclaration","scope":1370,"src":"501:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1360,"name":"uint16","nodeType":"ElementaryTypeName","src":"501:6:5","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1363,"mutability":"mutable","name":"_srcAddress","nameLocation":"544:11:5","nodeType":"VariableDeclaration","scope":1370,"src":"529:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1362,"name":"bytes","nodeType":"ElementaryTypeName","src":"529:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1365,"mutability":"mutable","name":"_nonce","nameLocation":"572:6:5","nodeType":"VariableDeclaration","scope":1370,"src":"565:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1364,"name":"uint64","nodeType":"ElementaryTypeName","src":"565:6:5","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1367,"mutability":"mutable","name":"_payload","nameLocation":"603:8:5","nodeType":"VariableDeclaration","scope":1370,"src":"588:23:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1366,"name":"bytes","nodeType":"ElementaryTypeName","src":"588:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"491:126:5"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[],"src":"626:0:5"},"scope":1371,"src":"473:154:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1372,"src":"59:570:5","usedErrors":[],"usedEvents":[]}],"src":"33:597:5"},"id":5},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol","exportedSymbols":{"ILayerZeroUserApplicationConfig":[1402]},"id":1403,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1373,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:6"},{"abstract":false,"baseContracts":[],"canonicalName":"ILayerZeroUserApplicationConfig","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1402,"linearizedBaseContracts":[1402],"name":"ILayerZeroUserApplicationConfig","nameLocation":"69:31:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cbed8b9c","id":1384,"implemented":false,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"512:9:6","nodeType":"FunctionDefinition","parameters":{"id":1382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1375,"mutability":"mutable","name":"_version","nameLocation":"538:8:6","nodeType":"VariableDeclaration","scope":1384,"src":"531:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1374,"name":"uint16","nodeType":"ElementaryTypeName","src":"531:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1377,"mutability":"mutable","name":"_chainId","nameLocation":"563:8:6","nodeType":"VariableDeclaration","scope":1384,"src":"556:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1376,"name":"uint16","nodeType":"ElementaryTypeName","src":"556:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1379,"mutability":"mutable","name":"_configType","nameLocation":"586:11:6","nodeType":"VariableDeclaration","scope":1384,"src":"581:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1378,"name":"uint","nodeType":"ElementaryTypeName","src":"581:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1381,"mutability":"mutable","name":"_config","nameLocation":"622:7:6","nodeType":"VariableDeclaration","scope":1384,"src":"607:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1380,"name":"bytes","nodeType":"ElementaryTypeName","src":"607:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"521:114:6"},"returnParameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"644:0:6"},"scope":1402,"src":"503:142:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"07e0db17","id":1389,"implemented":false,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"793:14:6","nodeType":"FunctionDefinition","parameters":{"id":1387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1386,"mutability":"mutable","name":"_version","nameLocation":"815:8:6","nodeType":"VariableDeclaration","scope":1389,"src":"808:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1385,"name":"uint16","nodeType":"ElementaryTypeName","src":"808:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"807:17:6"},"returnParameters":{"id":1388,"nodeType":"ParameterList","parameters":[],"src":"833:0:6"},"scope":1402,"src":"784:50:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10ddb137","id":1394,"implemented":false,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"987:17:6","nodeType":"FunctionDefinition","parameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"_version","nameLocation":"1012:8:6","nodeType":"VariableDeclaration","scope":1394,"src":"1005:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1390,"name":"uint16","nodeType":"ElementaryTypeName","src":"1005:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1004:17:6"},"returnParameters":{"id":1393,"nodeType":"ParameterList","parameters":[],"src":"1030:0:6"},"scope":1402,"src":"978:53:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42d65a8d","id":1401,"implemented":false,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"1309:18:6","nodeType":"FunctionDefinition","parameters":{"id":1399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1396,"mutability":"mutable","name":"_srcChainId","nameLocation":"1335:11:6","nodeType":"VariableDeclaration","scope":1401,"src":"1328:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1395,"name":"uint16","nodeType":"ElementaryTypeName","src":"1328:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1398,"mutability":"mutable","name":"_srcAddress","nameLocation":"1363:11:6","nodeType":"VariableDeclaration","scope":1401,"src":"1348:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1397,"name":"bytes","nodeType":"ElementaryTypeName","src":"1348:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1327:48:6"},"returnParameters":{"id":1400,"nodeType":"ParameterList","parameters":[],"src":"1384:0:6"},"scope":1402,"src":"1300:85:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1403,"src":"59:1328:6","usedErrors":[],"usedEvents":[]}],"src":"33:1355:6"},"id":6},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol","exportedSymbols":{"LzLib":[1627]},"id":1628,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":1404,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"38:24:7"},{"id":1405,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"63:33:7"},{"abstract":false,"baseContracts":[],"canonicalName":"LzLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":1627,"linearizedBaseContracts":[1627],"name":"LzLib","nameLocation":"106:5:7","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LzLib.CallParams","id":1410,"members":[{"constant":false,"id":1407,"mutability":"mutable","name":"refundAddress","nameLocation":"193:13:7","nodeType":"VariableDeclaration","scope":1410,"src":"177:29:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1406,"name":"address","nodeType":"ElementaryTypeName","src":"177:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1409,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"224:17:7","nodeType":"VariableDeclaration","scope":1410,"src":"216:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"216:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"CallParams","nameLocation":"156:10:7","nodeType":"StructDefinition","scope":1627,"src":"149:99:7","visibility":"public"},{"canonicalName":"LzLib.AirdropParams","id":1415,"members":[{"constant":false,"id":1412,"mutability":"mutable","name":"airdropAmount","nameLocation":"402:13:7","nodeType":"VariableDeclaration","scope":1415,"src":"397:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1411,"name":"uint","nodeType":"ElementaryTypeName","src":"397:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1414,"mutability":"mutable","name":"airdropAddress","nameLocation":"433:14:7","nodeType":"VariableDeclaration","scope":1415,"src":"425:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"425:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AirdropParams","nameLocation":"373:13:7","nodeType":"StructDefinition","scope":1627,"src":"366:88:7","visibility":"public"},{"body":{"id":1453,"nodeType":"Block","src":"600:284:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1425,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"614:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"629:13:7","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":1412,"src":"614:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"614:33:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1429,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"651:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"666:14:7","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":1414,"src":"651:29:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":1433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"692:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:7","typeDescriptions":{}}},"id":1434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"651:45:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"614:82:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1451,"nodeType":"Block","src":"783:95:7","statements":[{"expression":{"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1444,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"797:13:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1446,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"839:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1447,"name":"_airdropParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"852:14:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}],"id":1445,"name":"buildAirdropAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1514,"src":"813:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_AirdropParams_$1415_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,struct LzLib.AirdropParams memory) pure returns (bytes memory)"}},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:54:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"797:70:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1450,"nodeType":"ExpressionStatement","src":"797:70:7"}]},"id":1452,"nodeType":"IfStatement","src":"610:268:7","trueBody":{"id":1443,"nodeType":"Block","src":"698:79:7","statements":[{"expression":{"id":1441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1437,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"712:13:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1439,"name":"_uaGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"754:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1438,"name":"buildDefaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"728:25:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":1440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"712:54:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1442,"nodeType":"ExpressionStatement","src":"712:54:7"}]}}]},"id":1454,"implemented":true,"kind":"function","modifiers":[],"name":"buildAdapterParams","nameLocation":"469:18:7","nodeType":"FunctionDefinition","parameters":{"id":1421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"_airdropParams","nameLocation":"515:14:7","nodeType":"VariableDeclaration","scope":1454,"src":"488:41:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":1417,"nodeType":"UserDefinedTypeName","pathNode":{"id":1416,"name":"LzLib.AirdropParams","nameLocations":["488:5:7","494:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":1415,"src":"488:19:7"},"referencedDeclaration":1415,"src":"488:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"},{"constant":false,"id":1420,"mutability":"mutable","name":"_uaGasLimit","nameLocation":"536:11:7","nodeType":"VariableDeclaration","scope":1454,"src":"531:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1419,"name":"uint","nodeType":"ElementaryTypeName","src":"531:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"487:61:7"},"returnParameters":{"id":1424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1423,"mutability":"mutable","name":"adapterParams","nameLocation":"585:13:7","nodeType":"VariableDeclaration","scope":1454,"src":"572:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1422,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:28:7"},"scope":1627,"src":"460:424:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1470,"nodeType":"Block","src":"1003:153:7","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":1465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1463,"name":"uint16","nodeType":"ElementaryTypeName","src":"1131:6:7","typeDescriptions":{}}},"id":1466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:9:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1467,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1456,"src":"1142:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1114:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1118:12:7","memberName":"encodePacked","nodeType":"MemberAccess","src":"1114:16:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1114:35:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1460,"id":1469,"nodeType":"Return","src":"1107:42:7"}]},"id":1471,"implemented":true,"kind":"function","modifiers":[],"name":"buildDefaultAdapterParams","nameLocation":"927:25:7","nodeType":"FunctionDefinition","parameters":{"id":1457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"_uaGas","nameLocation":"958:6:7","nodeType":"VariableDeclaration","scope":1471,"src":"953:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1455,"name":"uint","nodeType":"ElementaryTypeName","src":"953:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:13:7"},"returnParameters":{"id":1460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1471,"src":"989:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1458,"name":"bytes","nodeType":"ElementaryTypeName","src":"989:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"988:14:7"},"scope":1627,"src":"918:238:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1513,"nodeType":"Block","src":"1277:438:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1482,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"1295:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1303:13:7","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":1412,"src":"1295:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1319:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1295:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f7020616d6f756e74206d7573742062652067726561746572207468616e2030","id":1486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""},"value":"Airdrop amount must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ce7fe7751b8950db4e0241310685c073c029895d6cd545e35c9e6359e2648a8","typeString":"literal_string \"Airdrop amount must be greater than 0\""}],"id":1481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1287:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:75:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1488,"nodeType":"ExpressionStatement","src":"1287:75:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1490,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"1380:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1388:14:7","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":1414,"src":"1380:22:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":1494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1414:3:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1406:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1406:7:7","typeDescriptions":{}}},"id":1495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1380:38:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41697264726f702061646472657373206d75737420626520736574","id":1497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1420:29:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""},"value":"Airdrop address must be set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ffe2f6917af6bbc0ca026a12135666d62243f06a6ea5f65d92ac05e992c443b6","typeString":"literal_string \"Airdrop address must be set\""}],"id":1489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1499,"nodeType":"ExpressionStatement","src":"1372:78:7"},{"expression":{"arguments":[{"arguments":[{"hexValue":"32","id":1504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1650:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":1503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1643:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1502,"name":"uint16","nodeType":"ElementaryTypeName","src":"1643:6:7","typeDescriptions":{}}},"id":1505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:9:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":1506,"name":"_uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"1654:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1507,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"1662:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1670:13:7","memberName":"airdropAmount","nodeType":"MemberAccess","referencedDeclaration":1412,"src":"1662:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1509,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"1685:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams memory"}},"id":1510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1693:14:7","memberName":"airdropAddress","nodeType":"MemberAccess","referencedDeclaration":1414,"src":"1685:22:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1626:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1630:12:7","memberName":"encodePacked","nodeType":"MemberAccess","src":"1626:16:7","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1626:82:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":1480,"id":1512,"nodeType":"Return","src":"1619:89:7"}]},"id":1514,"implemented":true,"kind":"function","modifiers":[],"name":"buildAirdropAdapterParams","nameLocation":"1171:25:7","nodeType":"FunctionDefinition","parameters":{"id":1477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1473,"mutability":"mutable","name":"_uaGas","nameLocation":"1202:6:7","nodeType":"VariableDeclaration","scope":1514,"src":"1197:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1472,"name":"uint","nodeType":"ElementaryTypeName","src":"1197:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1476,"mutability":"mutable","name":"_params","nameLocation":"1231:7:7","nodeType":"VariableDeclaration","scope":1514,"src":"1210:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_memory_ptr","typeString":"struct LzLib.AirdropParams"},"typeName":{"id":1475,"nodeType":"UserDefinedTypeName","pathNode":{"id":1474,"name":"AirdropParams","nameLocations":["1210:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":1415,"src":"1210:13:7"},"referencedDeclaration":1415,"src":"1210:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_AirdropParams_$1415_storage_ptr","typeString":"struct LzLib.AirdropParams"}},"visibility":"internal"}],"src":"1196:43:7"},"returnParameters":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1514,"src":"1263:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1478,"name":"bytes","nodeType":"ElementaryTypeName","src":"1263:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1262:14:7"},"scope":1627,"src":"1162:553:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1535,"nodeType":"Block","src":"1809:192:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1522,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"1827:14:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1842:6:7","memberName":"length","nodeType":"MemberAccess","src":"1827:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":1524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:2:7","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"1827:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1526,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"1858:14:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:7","memberName":"length","nodeType":"MemberAccess","src":"1858:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":1528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1882:2:7","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"1858:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1827:57:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":1531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":1521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1819:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1819:91:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1533,"nodeType":"ExpressionStatement","src":"1819:91:7"},{"AST":{"nativeSrc":"1929:66:7","nodeType":"YulBlock","src":"1929:66:7","statements":[{"nativeSrc":"1943:42:7","nodeType":"YulAssignment","src":"1943:42:7","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"1965:14:7","nodeType":"YulIdentifier","src":"1965:14:7"},{"kind":"number","nativeSrc":"1981:2:7","nodeType":"YulLiteral","src":"1981:2:7","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"1961:3:7","nodeType":"YulIdentifier","src":"1961:3:7"},"nativeSrc":"1961:23:7","nodeType":"YulFunctionCall","src":"1961:23:7"}],"functionName":{"name":"mload","nativeSrc":"1955:5:7","nodeType":"YulIdentifier","src":"1955:5:7"},"nativeSrc":"1955:30:7","nodeType":"YulFunctionCall","src":"1955:30:7"},"variableNames":[{"name":"gasLimit","nativeSrc":"1943:8:7","nodeType":"YulIdentifier","src":"1943:8:7"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1516,"isOffset":false,"isSlot":false,"src":"1965:14:7","valueSize":1},{"declaration":1519,"isOffset":false,"isSlot":false,"src":"1943:8:7","valueSize":1}],"id":1534,"nodeType":"InlineAssembly","src":"1920:75:7"}]},"id":1536,"implemented":true,"kind":"function","modifiers":[],"name":"getGasLimit","nameLocation":"1730:11:7","nodeType":"FunctionDefinition","parameters":{"id":1517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"_adapterParams","nameLocation":"1755:14:7","nodeType":"VariableDeclaration","scope":1536,"src":"1742:27:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1515,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1741:29:7"},"returnParameters":{"id":1520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1519,"mutability":"mutable","name":"gasLimit","nameLocation":"1799:8:7","nodeType":"VariableDeclaration","scope":1536,"src":"1794:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1518,"name":"uint","nodeType":"ElementaryTypeName","src":"1794:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1793:15:7"},"scope":1627,"src":"1721:280:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1587,"nodeType":"Block","src":"2282:555:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1550,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"2300:14:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2315:6:7","memberName":"length","nodeType":"MemberAccess","src":"2300:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3334","id":1552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2325:2:7","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"2300:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1554,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"2331:14:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2346:6:7","memberName":"length","nodeType":"MemberAccess","src":"2331:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3636","id":1556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2355:2:7","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"2331:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2300:57:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642061646170746572506172616d73","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2359:23:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""},"value":"Invalid adapterParams"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","typeString":"literal_string \"Invalid adapterParams\""}],"id":1549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2292:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:91:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1561,"nodeType":"ExpressionStatement","src":"2292:91:7"},{"AST":{"nativeSrc":"2402:115:7","nodeType":"YulBlock","src":"2402:115:7","statements":[{"nativeSrc":"2416:39:7","nodeType":"YulAssignment","src":"2416:39:7","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2436:14:7","nodeType":"YulIdentifier","src":"2436:14:7"},{"kind":"number","nativeSrc":"2452:1:7","nodeType":"YulLiteral","src":"2452:1:7","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"2432:3:7","nodeType":"YulIdentifier","src":"2432:3:7"},"nativeSrc":"2432:22:7","nodeType":"YulFunctionCall","src":"2432:22:7"}],"functionName":{"name":"mload","nativeSrc":"2426:5:7","nodeType":"YulIdentifier","src":"2426:5:7"},"nativeSrc":"2426:29:7","nodeType":"YulFunctionCall","src":"2426:29:7"},"variableNames":[{"name":"txType","nativeSrc":"2416:6:7","nodeType":"YulIdentifier","src":"2416:6:7"}]},{"nativeSrc":"2468:39:7","nodeType":"YulAssignment","src":"2468:39:7","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2487:14:7","nodeType":"YulIdentifier","src":"2487:14:7"},{"kind":"number","nativeSrc":"2503:2:7","nodeType":"YulLiteral","src":"2503:2:7","type":"","value":"34"}],"functionName":{"name":"add","nativeSrc":"2483:3:7","nodeType":"YulIdentifier","src":"2483:3:7"},"nativeSrc":"2483:23:7","nodeType":"YulFunctionCall","src":"2483:23:7"}],"functionName":{"name":"mload","nativeSrc":"2477:5:7","nodeType":"YulIdentifier","src":"2477:5:7"},"nativeSrc":"2477:30:7","nodeType":"YulFunctionCall","src":"2477:30:7"},"variableNames":[{"name":"uaGas","nativeSrc":"2468:5:7","nodeType":"YulIdentifier","src":"2468:5:7"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1538,"isOffset":false,"isSlot":false,"src":"2436:14:7","valueSize":1},{"declaration":1538,"isOffset":false,"isSlot":false,"src":"2487:14:7","valueSize":1},{"declaration":1541,"isOffset":false,"isSlot":false,"src":"2416:6:7","valueSize":1},{"declaration":1543,"isOffset":false,"isSlot":false,"src":"2468:5:7","valueSize":1}],"id":1562,"nodeType":"InlineAssembly","src":"2393:124:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1564,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"2534:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2544:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2534:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1567,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"2549:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":1568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2559:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2549:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2534:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e737570706f7274656420747854797065","id":1571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2562:20:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""},"value":"Unsupported txType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","typeString":"literal_string \"Unsupported txType\""}],"id":1563,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2526:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2526:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1573,"nodeType":"ExpressionStatement","src":"2526:57:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1575,"name":"uaGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"2601:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2609:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2601:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617320746f6f206c6f77","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:13:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""},"value":"Gas too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","typeString":"literal_string \"Gas too low\""}],"id":1574,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2593:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2593:33:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1580,"nodeType":"ExpressionStatement","src":"2593:33:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1581,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"2641:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":1582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2651:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2641:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1586,"nodeType":"IfStatement","src":"2637:194:7","trueBody":{"id":1585,"nodeType":"Block","src":"2654:177:7","statements":[{"AST":{"nativeSrc":"2677:144:7","nodeType":"YulBlock","src":"2677:144:7","statements":[{"nativeSrc":"2695:47:7","nodeType":"YulAssignment","src":"2695:47:7","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2722:14:7","nodeType":"YulIdentifier","src":"2722:14:7"},{"kind":"number","nativeSrc":"2738:2:7","nodeType":"YulLiteral","src":"2738:2:7","type":"","value":"66"}],"functionName":{"name":"add","nativeSrc":"2718:3:7","nodeType":"YulIdentifier","src":"2718:3:7"},"nativeSrc":"2718:23:7","nodeType":"YulFunctionCall","src":"2718:23:7"}],"functionName":{"name":"mload","nativeSrc":"2712:5:7","nodeType":"YulIdentifier","src":"2712:5:7"},"nativeSrc":"2712:30:7","nodeType":"YulFunctionCall","src":"2712:30:7"},"variableNames":[{"name":"airdropAmount","nativeSrc":"2695:13:7","nodeType":"YulIdentifier","src":"2695:13:7"}]},{"nativeSrc":"2759:48:7","nodeType":"YulAssignment","src":"2759:48:7","value":{"arguments":[{"arguments":[{"name":"_adapterParams","nativeSrc":"2787:14:7","nodeType":"YulIdentifier","src":"2787:14:7"},{"kind":"number","nativeSrc":"2803:2:7","nodeType":"YulLiteral","src":"2803:2:7","type":"","value":"86"}],"functionName":{"name":"add","nativeSrc":"2783:3:7","nodeType":"YulIdentifier","src":"2783:3:7"},"nativeSrc":"2783:23:7","nodeType":"YulFunctionCall","src":"2783:23:7"}],"functionName":{"name":"mload","nativeSrc":"2777:5:7","nodeType":"YulIdentifier","src":"2777:5:7"},"nativeSrc":"2777:30:7","nodeType":"YulFunctionCall","src":"2777:30:7"},"variableNames":[{"name":"airdropAddress","nativeSrc":"2759:14:7","nodeType":"YulIdentifier","src":"2759:14:7"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1538,"isOffset":false,"isSlot":false,"src":"2722:14:7","valueSize":1},{"declaration":1538,"isOffset":false,"isSlot":false,"src":"2787:14:7","valueSize":1},{"declaration":1547,"isOffset":false,"isSlot":false,"src":"2759:14:7","valueSize":1},{"declaration":1545,"isOffset":false,"isSlot":false,"src":"2695:13:7","valueSize":1}],"id":1584,"nodeType":"InlineAssembly","src":"2668:153:7"}]}}]},"id":1588,"implemented":true,"kind":"function","modifiers":[],"name":"decodeAdapterParams","nameLocation":"2045:19:7","nodeType":"FunctionDefinition","parameters":{"id":1539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1538,"mutability":"mutable","name":"_adapterParams","nameLocation":"2078:14:7","nodeType":"VariableDeclaration","scope":1588,"src":"2065:27:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1537,"name":"bytes","nodeType":"ElementaryTypeName","src":"2065:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2064:29:7"},"returnParameters":{"id":1548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1541,"mutability":"mutable","name":"txType","nameLocation":"2161:6:7","nodeType":"VariableDeclaration","scope":1588,"src":"2154:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1540,"name":"uint16","nodeType":"ElementaryTypeName","src":"2154:6:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1543,"mutability":"mutable","name":"uaGas","nameLocation":"2186:5:7","nodeType":"VariableDeclaration","scope":1588,"src":"2181:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1542,"name":"uint","nodeType":"ElementaryTypeName","src":"2181:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1545,"mutability":"mutable","name":"airdropAmount","nameLocation":"2210:13:7","nodeType":"VariableDeclaration","scope":1588,"src":"2205:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1544,"name":"uint","nodeType":"ElementaryTypeName","src":"2205:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1547,"mutability":"mutable","name":"airdropAddress","nameLocation":"2253:14:7","nodeType":"VariableDeclaration","scope":1588,"src":"2237:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1546,"name":"address","nodeType":"ElementaryTypeName","src":"2237:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2140:137:7"},"scope":1627,"src":"2036:801:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1606,"nodeType":"Block","src":"3046:63:7","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1601,"name":"_bytes32Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"3084:15:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3079:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1599,"name":"uint","nodeType":"ElementaryTypeName","src":"3079:4:7","typeDescriptions":{}}},"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3071:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1597,"name":"uint160","nodeType":"ElementaryTypeName","src":"3071:7:7","typeDescriptions":{}}},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3063:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1595,"name":"address","nodeType":"ElementaryTypeName","src":"3063:7:7","typeDescriptions":{}}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3063:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1594,"id":1605,"nodeType":"Return","src":"3056:46:7"}]},"id":1607,"implemented":true,"kind":"function","modifiers":[],"name":"bytes32ToAddress","nameLocation":"2963:16:7","nodeType":"FunctionDefinition","parameters":{"id":1591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1590,"mutability":"mutable","name":"_bytes32Address","nameLocation":"2988:15:7","nodeType":"VariableDeclaration","scope":1607,"src":"2980:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2980:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2979:25:7"},"returnParameters":{"id":1594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"mutability":"mutable","name":"_address","nameLocation":"3036:8:7","nodeType":"VariableDeclaration","scope":1607,"src":"3028:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1592,"name":"address","nodeType":"ElementaryTypeName","src":"3028:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3027:18:7"},"scope":1627,"src":"2954:155:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1625,"nodeType":"Block","src":"3207:56:7","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1620,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"3245:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3237:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1618,"name":"uint160","nodeType":"ElementaryTypeName","src":"3237:7:7","typeDescriptions":{}}},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3232:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1616,"name":"uint","nodeType":"ElementaryTypeName","src":"3232:4:7","typeDescriptions":{}}},"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3224:7:7","typeDescriptions":{}}},"id":1623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1613,"id":1624,"nodeType":"Return","src":"3217:39:7"}]},"id":1626,"implemented":true,"kind":"function","modifiers":[],"name":"addressToBytes32","nameLocation":"3124:16:7","nodeType":"FunctionDefinition","parameters":{"id":1610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1609,"mutability":"mutable","name":"_address","nameLocation":"3149:8:7","nodeType":"VariableDeclaration","scope":1626,"src":"3141:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1608,"name":"address","nodeType":"ElementaryTypeName","src":"3141:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3140:18:7"},"returnParameters":{"id":1613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1612,"mutability":"mutable","name":"_bytes32Address","nameLocation":"3190:15:7","nodeType":"VariableDeclaration","scope":1626,"src":"3182:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3182:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3181:25:7"},"scope":1627,"src":"3115:148:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1628,"src":"98:3167:7","usedErrors":[],"usedEvents":[]}],"src":"38:3228:7"},"id":7},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","exportedSymbols":{"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"LZEndpointMock":[2945],"LzLib":[1627]},"id":2946,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":1629,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:8"},{"id":1630,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"62:19:8"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol","file":"../interfaces/ILayerZeroReceiver.sol","id":1631,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2946,"sourceUnit":1372,"src":"83:46:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol","file":"../interfaces/ILayerZeroEndpoint.sol","id":1632,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2946,"sourceUnit":1358,"src":"130:46:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol","file":"../libs/LzLib.sol","id":1633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2946,"sourceUnit":1628,"src":"177:27:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1634,"name":"ILayerZeroEndpoint","nameLocations":["839:18:8"],"nodeType":"IdentifierPath","referencedDeclaration":1357,"src":"839:18:8"},"id":1635,"nodeType":"InheritanceSpecifier","src":"839:18:8"}],"canonicalName":"LZEndpointMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2945,"linearizedBaseContracts":[2945,1357,1402],"name":"LZEndpointMock","nameLocation":"821:14:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1638,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"888:12:8","nodeType":"VariableDeclaration","scope":2945,"src":"864:40:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1636,"name":"uint8","nodeType":"ElementaryTypeName","src":"864:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"903:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1641,"mutability":"constant","name":"_ENTERED","nameLocation":"934:8:8","nodeType":"VariableDeclaration","scope":2945,"src":"910:36:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1639,"name":"uint8","nodeType":"ElementaryTypeName","src":"910:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"945:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"constant":false,"functionSelector":"c81b383a","id":1645,"mutability":"mutable","name":"lzEndpointLookup","nameLocation":"988:16:8","nodeType":"VariableDeclaration","scope":2945,"src":"953:51:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1644,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1642,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"953:27:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1643,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"db14f305","id":1647,"mutability":"mutable","name":"mockChainId","nameLocation":"1025:11:8","nodeType":"VariableDeclaration","scope":2945,"src":"1011:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1646,"name":"uint16","nodeType":"ElementaryTypeName","src":"1011:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"functionSelector":"3e0dd83e","id":1649,"mutability":"mutable","name":"nextMsgBlocked","nameLocation":"1054:14:8","nodeType":"VariableDeclaration","scope":2945,"src":"1042:26:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1648,"name":"bool","nodeType":"ElementaryTypeName","src":"1042:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"907c5e7e","id":1652,"mutability":"mutable","name":"relayerFeeConfig","nameLocation":"1117:16:8","nodeType":"VariableDeclaration","scope":2945,"src":"1093:40:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig"},"typeName":{"id":1651,"nodeType":"UserDefinedTypeName","pathNode":{"id":1650,"name":"RelayerFeeConfig","nameLocations":["1093:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":1708,"src":"1093:16:8"},"referencedDeclaration":1708,"src":"1093:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"07d3277f","id":1655,"mutability":"mutable","name":"protocolFeeConfig","nameLocation":"1164:17:8","nodeType":"VariableDeclaration","scope":2945,"src":"1139:42:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig"},"typeName":{"id":1654,"nodeType":"UserDefinedTypeName","pathNode":{"id":1653,"name":"ProtocolFeeConfig","nameLocations":["1139:17:8"],"nodeType":"IdentifierPath","referencedDeclaration":1697,"src":"1139:17:8"},"referencedDeclaration":1697,"src":"1139:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig"}},"visibility":"public"},{"constant":false,"functionSelector":"f9cd3ceb","id":1657,"mutability":"mutable","name":"oracleFee","nameLocation":"1199:9:8","nodeType":"VariableDeclaration","scope":2945,"src":"1187:21:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1656,"name":"uint","nodeType":"ElementaryTypeName","src":"1187:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"272bd384","id":1659,"mutability":"mutable","name":"defaultAdapterParams","nameLocation":"1227:20:8","nodeType":"VariableDeclaration","scope":2945,"src":"1214:33:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":1658,"name":"bytes","nodeType":"ElementaryTypeName","src":"1214:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"constant":false,"functionSelector":"9924d33b","id":1665,"mutability":"mutable","name":"inboundNonce","nameLocation":"1391:12:8","nodeType":"VariableDeclaration","scope":2945,"src":"1340:63:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"typeName":{"id":1664,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1660,"name":"uint16","nodeType":"ElementaryTypeName","src":"1348:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1340:43:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes => uint64))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1663,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1661,"name":"bytes","nodeType":"ElementaryTypeName","src":"1366:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1358:24:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1662,"name":"uint64","nodeType":"ElementaryTypeName","src":"1375:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"b2086499","id":1671,"mutability":"mutable","name":"outboundNonce","nameLocation":"1537:13:8","nodeType":"VariableDeclaration","scope":2945,"src":"1484:66:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"typeName":{"id":1670,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1666,"name":"uint16","nodeType":"ElementaryTypeName","src":"1492:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1484:45:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1669,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1667,"name":"address","nodeType":"ElementaryTypeName","src":"1510:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1502:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1668,"name":"uint64","nodeType":"ElementaryTypeName","src":"1521:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}}},"visibility":"public"},{"constant":false,"functionSelector":"76a386dc","id":1678,"mutability":"mutable","name":"storedPayload","nameLocation":"1781:13:8","nodeType":"VariableDeclaration","scope":2945,"src":"1723:71:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"typeName":{"id":1677,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1672,"name":"uint16","nodeType":"ElementaryTypeName","src":"1731:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1723:50:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1676,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1673,"name":"bytes","nodeType":"ElementaryTypeName","src":"1749:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1741:31:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.StoredPayload)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1675,"nodeType":"UserDefinedTypeName","pathNode":{"id":1674,"name":"StoredPayload","nameLocations":["1758:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1715,"src":"1758:13:8"},"referencedDeclaration":1715,"src":"1758:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}}}},"visibility":"public"},{"constant":false,"functionSelector":"12a9ee6b","id":1686,"mutability":"mutable","name":"msgsToDeliver","nameLocation":"1901:13:8","nodeType":"VariableDeclaration","scope":2945,"src":"1841:73:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"typeName":{"id":1685,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1679,"name":"uint16","nodeType":"ElementaryTypeName","src":"1849:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1841:52:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1684,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1680,"name":"bytes","nodeType":"ElementaryTypeName","src":"1867:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"1859:33:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$","typeString":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":1682,"nodeType":"UserDefinedTypeName","pathNode":{"id":1681,"name":"QueuedPayload","nameLocations":["1876:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1722,"src":"1876:13:8"},"referencedDeclaration":1722,"src":"1876:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":1683,"nodeType":"ArrayTypeName","src":"1876:15:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}}}},"visibility":"public"},{"constant":false,"id":1689,"mutability":"mutable","name":"_send_entered_state","nameLocation":"1960:19:8","nodeType":"VariableDeclaration","scope":2945,"src":"1945:38:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1687,"name":"uint8","nodeType":"ElementaryTypeName","src":"1945:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"id":1692,"mutability":"mutable","name":"_receive_entered_state","nameLocation":"2004:22:8","nodeType":"VariableDeclaration","scope":2945,"src":"1989:41:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1690,"name":"uint8","nodeType":"ElementaryTypeName","src":"1989:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2029:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"canonicalName":"LZEndpointMock.ProtocolFeeConfig","id":1697,"members":[{"constant":false,"id":1694,"mutability":"mutable","name":"zroFee","nameLocation":"2077:6:8","nodeType":"VariableDeclaration","scope":1697,"src":"2072:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint","nodeType":"ElementaryTypeName","src":"2072:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1696,"mutability":"mutable","name":"nativeBP","nameLocation":"2098:8:8","nodeType":"VariableDeclaration","scope":1697,"src":"2093:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1695,"name":"uint","nodeType":"ElementaryTypeName","src":"2093:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolFeeConfig","nameLocation":"2044:17:8","nodeType":"StructDefinition","scope":2945,"src":"2037:76:8","visibility":"public"},{"canonicalName":"LZEndpointMock.RelayerFeeConfig","id":1708,"members":[{"constant":false,"id":1699,"mutability":"mutable","name":"dstPriceRatio","nameLocation":"2161:13:8","nodeType":"VariableDeclaration","scope":1708,"src":"2153:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1698,"name":"uint128","nodeType":"ElementaryTypeName","src":"2153:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"dstGasPriceInWei","nameLocation":"2201:16:8","nodeType":"VariableDeclaration","scope":1708,"src":"2193:24:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1700,"name":"uint128","nodeType":"ElementaryTypeName","src":"2193:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1703,"mutability":"mutable","name":"dstNativeAmtCap","nameLocation":"2235:15:8","nodeType":"VariableDeclaration","scope":1708,"src":"2227:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":1702,"name":"uint128","nodeType":"ElementaryTypeName","src":"2227:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":1705,"mutability":"mutable","name":"baseGas","nameLocation":"2267:7:8","nodeType":"VariableDeclaration","scope":1708,"src":"2260:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1704,"name":"uint64","nodeType":"ElementaryTypeName","src":"2260:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1707,"mutability":"mutable","name":"gasPerByte","nameLocation":"2291:10:8","nodeType":"VariableDeclaration","scope":1708,"src":"2284:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1706,"name":"uint64","nodeType":"ElementaryTypeName","src":"2284:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"RelayerFeeConfig","nameLocation":"2126:16:8","nodeType":"StructDefinition","scope":2945,"src":"2119:189:8","visibility":"public"},{"canonicalName":"LZEndpointMock.StoredPayload","id":1715,"members":[{"constant":false,"id":1710,"mutability":"mutable","name":"payloadLength","nameLocation":"2352:13:8","nodeType":"VariableDeclaration","scope":1715,"src":"2345:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1709,"name":"uint64","nodeType":"ElementaryTypeName","src":"2345:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1712,"mutability":"mutable","name":"dstAddress","nameLocation":"2383:10:8","nodeType":"VariableDeclaration","scope":1715,"src":"2375:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1711,"name":"address","nodeType":"ElementaryTypeName","src":"2375:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1714,"mutability":"mutable","name":"payloadHash","nameLocation":"2411:11:8","nodeType":"VariableDeclaration","scope":1715,"src":"2403:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2403:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StoredPayload","nameLocation":"2321:13:8","nodeType":"StructDefinition","scope":2945,"src":"2314:115:8","visibility":"public"},{"canonicalName":"LZEndpointMock.QueuedPayload","id":1722,"members":[{"constant":false,"id":1717,"mutability":"mutable","name":"dstAddress","nameLocation":"2474:10:8","nodeType":"VariableDeclaration","scope":1722,"src":"2466:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1716,"name":"address","nodeType":"ElementaryTypeName","src":"2466:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1719,"mutability":"mutable","name":"nonce","nameLocation":"2501:5:8","nodeType":"VariableDeclaration","scope":1722,"src":"2494:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1718,"name":"uint64","nodeType":"ElementaryTypeName","src":"2494:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1721,"mutability":"mutable","name":"payload","nameLocation":"2522:7:8","nodeType":"VariableDeclaration","scope":1722,"src":"2516:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1720,"name":"bytes","nodeType":"ElementaryTypeName","src":"2516:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"QueuedPayload","nameLocation":"2442:13:8","nodeType":"StructDefinition","scope":2945,"src":"2435:101:8","visibility":"public"},{"body":{"id":1740,"nodeType":"Block","src":"2570:193:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1725,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"2588:19:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1726,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"2611:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2588:35:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e6379","id":1728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2625:35:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""},"value":"LayerZeroMock: no send reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","typeString":"literal_string \"LayerZeroMock: no send reentrancy\""}],"id":1724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2580:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2580:81:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1730,"nodeType":"ExpressionStatement","src":"2580:81:8"},{"expression":{"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1731,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"2671:19:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1732,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"2693:8:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2671:30:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1734,"nodeType":"ExpressionStatement","src":"2671:30:8"},{"id":1735,"nodeType":"PlaceholderStatement","src":"2711:1:8"},{"expression":{"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1736,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"2722:19:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1737,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"2744:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2722:34:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1739,"nodeType":"ExpressionStatement","src":"2722:34:8"}]},"id":1741,"name":"sendNonReentrant","nameLocation":"2551:16:8","nodeType":"ModifierDefinition","parameters":{"id":1723,"nodeType":"ParameterList","parameters":[],"src":"2567:2:8"},"src":"2542:221:8","virtual":false,"visibility":"internal"},{"body":{"id":1759,"nodeType":"Block","src":"2800:205:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1744,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"2818:22:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1745,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"2844:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2818:38:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472616e6379","id":1747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2858:38:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""},"value":"LayerZeroMock: no receive reentrancy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","typeString":"literal_string \"LayerZeroMock: no receive reentrancy\""}],"id":1743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2810:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:87:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1749,"nodeType":"ExpressionStatement","src":"2810:87:8"},{"expression":{"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1750,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"2907:22:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1751,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"2932:8:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2907:33:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1753,"nodeType":"ExpressionStatement","src":"2907:33:8"},{"id":1754,"nodeType":"PlaceholderStatement","src":"2950:1:8"},{"expression":{"id":1757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1755,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"2961:22:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1756,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"2986:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2961:37:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1758,"nodeType":"ExpressionStatement","src":"2961:37:8"}]},"id":1760,"name":"receiveNonReentrant","nameLocation":"2778:19:8","nodeType":"ModifierDefinition","parameters":{"id":1742,"nodeType":"ParameterList","parameters":[],"src":"2797:2:8"},"src":"2769:236:8","virtual":false,"visibility":"internal"},{"anonymous":false,"eventSelector":"23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98","id":1766,"name":"UaForceResumeReceive","nameLocation":"3017:20:8","nodeType":"EventDefinition","parameters":{"id":1765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1762,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3045:7:8","nodeType":"VariableDeclaration","scope":1766,"src":"3038:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1761,"name":"uint16","nodeType":"ElementaryTypeName","src":"3038:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1764,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3060:10:8","nodeType":"VariableDeclaration","scope":1766,"src":"3054:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1763,"name":"bytes","nodeType":"ElementaryTypeName","src":"3054:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3037:34:8"},"src":"3011:61:8"},{"anonymous":false,"eventSelector":"612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d","id":1776,"name":"PayloadCleared","nameLocation":"3083:14:8","nodeType":"EventDefinition","parameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1768,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3105:10:8","nodeType":"VariableDeclaration","scope":1776,"src":"3098:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1767,"name":"uint16","nodeType":"ElementaryTypeName","src":"3098:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1770,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3123:10:8","nodeType":"VariableDeclaration","scope":1776,"src":"3117:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1769,"name":"bytes","nodeType":"ElementaryTypeName","src":"3117:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1772,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3142:5:8","nodeType":"VariableDeclaration","scope":1776,"src":"3135:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1771,"name":"uint64","nodeType":"ElementaryTypeName","src":"3135:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1774,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3157:10:8","nodeType":"VariableDeclaration","scope":1776,"src":"3149:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1773,"name":"address","nodeType":"ElementaryTypeName","src":"3149:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3097:71:8"},"src":"3077:92:8"},{"anonymous":false,"eventSelector":"0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db","id":1790,"name":"PayloadStored","nameLocation":"3180:13:8","nodeType":"EventDefinition","parameters":{"id":1789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1778,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"3201:10:8","nodeType":"VariableDeclaration","scope":1790,"src":"3194:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1777,"name":"uint16","nodeType":"ElementaryTypeName","src":"3194:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1780,"indexed":false,"mutability":"mutable","name":"srcAddress","nameLocation":"3219:10:8","nodeType":"VariableDeclaration","scope":1790,"src":"3213:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1779,"name":"bytes","nodeType":"ElementaryTypeName","src":"3213:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1782,"indexed":false,"mutability":"mutable","name":"dstAddress","nameLocation":"3239:10:8","nodeType":"VariableDeclaration","scope":1790,"src":"3231:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1781,"name":"address","nodeType":"ElementaryTypeName","src":"3231:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1784,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"3258:5:8","nodeType":"VariableDeclaration","scope":1790,"src":"3251:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1783,"name":"uint64","nodeType":"ElementaryTypeName","src":"3251:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1786,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"3271:7:8","nodeType":"VariableDeclaration","scope":1790,"src":"3265:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1785,"name":"bytes","nodeType":"ElementaryTypeName","src":"3265:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1788,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"3286:6:8","nodeType":"VariableDeclaration","scope":1790,"src":"3280:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1787,"name":"bytes","nodeType":"ElementaryTypeName","src":"3280:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3193:100:8"},"src":"3174:120:8"},{"anonymous":false,"eventSelector":"2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a3","id":1796,"name":"ValueTransferFailed","nameLocation":"3305:19:8","nodeType":"EventDefinition","parameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1792,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3341:2:8","nodeType":"VariableDeclaration","scope":1796,"src":"3325:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1791,"name":"address","nodeType":"ElementaryTypeName","src":"3325:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1794,"indexed":true,"mutability":"mutable","name":"quantity","nameLocation":"3358:8:8","nodeType":"VariableDeclaration","scope":1796,"src":"3345:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1793,"name":"uint","nodeType":"ElementaryTypeName","src":"3345:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3324:43:8"},"src":"3299:69:8"},{"body":{"id":1833,"nodeType":"Block","src":"3403:501:8","statements":[{"expression":{"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1801,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"3413:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1802,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1798,"src":"3427:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3413:22:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":1804,"nodeType":"ExpressionStatement","src":"3413:22:8"},{"expression":{"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1805,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"3469:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653130","id":1807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3534:4:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653130","id":1808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3607:4:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},{"hexValue":"31653139","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3642:4:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"1e19"},{"hexValue":"313030","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3669:3:8","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"31","id":1811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3698:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1806,"name":"RelayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1708,"src":"3488:16:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RelayerFeeConfig_$1708_storage_ptr_$","typeString":"type(struct LZEndpointMock.RelayerFeeConfig storage pointer)"}},"id":1812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3519:13:8","3589:16:8","3625:15:8","3660:7:8","3686:10:8"],"names":["dstPriceRatio","dstGasPriceInWei","dstNativeAmtCap","baseGas","gasPerByte"],"nodeType":"FunctionCall","src":"3488:222:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_memory_ptr","typeString":"struct LZEndpointMock.RelayerFeeConfig memory"}},"src":"3469:241:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":1814,"nodeType":"ExpressionStatement","src":"3469:241:8"},{"expression":{"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"3720:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31653138","id":1817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3767:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},{"hexValue":"31303030","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3783:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":1816,"name":"ProtocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"3740:17:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtocolFeeConfig_$1697_storage_ptr_$","typeString":"type(struct LZEndpointMock.ProtocolFeeConfig storage pointer)"}},"id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3759:6:8","3773:8:8"],"names":["zroFee","nativeBP"],"nodeType":"FunctionCall","src":"3740:49:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_memory_ptr","typeString":"struct LZEndpointMock.ProtocolFeeConfig memory"}},"src":"3720:69:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":1821,"nodeType":"ExpressionStatement","src":"3720:69:8"},{"expression":{"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1822,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"3809:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31653136","id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:4:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"value":"1e16"},"src":"3809:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1825,"nodeType":"ExpressionStatement","src":"3809:16:8"},{"expression":{"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1826,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"3835:20:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030303030","id":1829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3890:6:8","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"}],"expression":{"id":1827,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"3858:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$1627_$","typeString":"type(library LzLib)"}},"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3864:25:8","memberName":"buildDefaultAdapterParams","nodeType":"MemberAccess","referencedDeclaration":1471,"src":"3858:31:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":1830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3858:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3835:62:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1832,"nodeType":"ExpressionStatement","src":"3835:62:8"}]},"id":1834,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1798,"mutability":"mutable","name":"_chainId","nameLocation":"3393:8:8","nodeType":"VariableDeclaration","scope":1834,"src":"3386:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1797,"name":"uint16","nodeType":"ElementaryTypeName","src":"3386:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3385:17:8"},"returnParameters":{"id":1800,"nodeType":"ParameterList","parameters":[],"src":"3403:0:8"},"scope":2945,"src":"3374:530:8","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1232],"body":{"id":2009,"nodeType":"Block","src":"4270:1804:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1853,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1838,"src":"4288:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4294:6:8","memberName":"length","nodeType":"MemberAccess","src":"4288:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3430","id":1855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4304:2:8","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"4288:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520616464726573732073697a65","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4308:46:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""},"value":"LayerZeroMock: incorrect remote address size"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","typeString":"literal_string \"LayerZeroMock: incorrect remote address size\""}],"id":1852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4280:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4280:75:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1859,"nodeType":"ExpressionStatement","src":"4280:75:8"},{"assignments":[1861],"declarations":[{"constant":false,"id":1861,"mutability":"mutable","name":"dstAddr","nameLocation":"4401:7:8","nodeType":"VariableDeclaration","scope":2009,"src":"4393:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1860,"name":"address","nodeType":"ElementaryTypeName","src":"4393:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1862,"nodeType":"VariableDeclarationStatement","src":"4393:15:8"},{"AST":{"nativeSrc":"4427:56:8","nodeType":"YulBlock","src":"4427:56:8","statements":[{"nativeSrc":"4441:32:8","nodeType":"YulAssignment","src":"4441:32:8","value":{"arguments":[{"arguments":[{"name":"_path","nativeSrc":"4462:5:8","nodeType":"YulIdentifier","src":"4462:5:8"},{"kind":"number","nativeSrc":"4469:2:8","nodeType":"YulLiteral","src":"4469:2:8","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"4458:3:8","nodeType":"YulIdentifier","src":"4458:3:8"},"nativeSrc":"4458:14:8","nodeType":"YulFunctionCall","src":"4458:14:8"}],"functionName":{"name":"mload","nativeSrc":"4452:5:8","nodeType":"YulIdentifier","src":"4452:5:8"},"nativeSrc":"4452:21:8","nodeType":"YulFunctionCall","src":"4452:21:8"},"variableNames":[{"name":"dstAddr","nativeSrc":"4441:7:8","nodeType":"YulIdentifier","src":"4441:7:8"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1838,"isOffset":false,"isSlot":false,"src":"4462:5:8","valueSize":1},{"declaration":1861,"isOffset":false,"isSlot":false,"src":"4441:7:8","valueSize":1}],"id":1863,"nodeType":"InlineAssembly","src":"4418:65:8"},{"assignments":[1865],"declarations":[{"constant":false,"id":1865,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4501:10:8","nodeType":"VariableDeclaration","scope":2009,"src":"4493:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1864,"name":"address","nodeType":"ElementaryTypeName","src":"4493:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1869,"initialValue":{"baseExpression":{"id":1866,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"4514:16:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1868,"indexExpression":{"id":1867,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1861,"src":"4531:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4514:25:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4493:46:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1871,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"4557:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4579:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4571:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1872,"name":"address","nodeType":"ElementaryTypeName","src":"4571:7:8","typeDescriptions":{}}},"id":1875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4571:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4557:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c617965725a65726f20456e64706f696e74206e6f7420666f756e64","id":1877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4583:57:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""},"value":"LayerZeroMock: destination LayerZero Endpoint not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","typeString":"literal_string \"LayerZeroMock: destination LayerZero Endpoint not found\""}],"id":1870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4549:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:92:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1879,"nodeType":"ExpressionStatement","src":"4549:92:8"},{"assignments":[1881],"declarations":[{"constant":false,"id":1881,"mutability":"mutable","name":"adapterParams","nameLocation":"4697:13:8","nodeType":"VariableDeclaration","scope":2009,"src":"4684:26:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1880,"name":"bytes","nodeType":"ElementaryTypeName","src":"4684:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1889,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1882,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1846,"src":"4713:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4728:6:8","memberName":"length","nodeType":"MemberAccess","src":"4713:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4737:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4713:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1887,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"4758:20:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4713:65:8","trueExpression":{"id":1886,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1846,"src":"4741:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4684:94:8"},{"assignments":[1891,null],"declarations":[{"constant":false,"id":1891,"mutability":"mutable","name":"nativeFee","nameLocation":"4794:9:8","nodeType":"VariableDeclaration","scope":2009,"src":"4789:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1890,"name":"uint","nodeType":"ElementaryTypeName","src":"4789:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":1905,"initialValue":{"arguments":[{"id":1893,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"4822:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"id":1894,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4832:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4836:6:8","memberName":"sender","nodeType":"MemberAccess","src":"4832:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1896,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"4844:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1897,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1844,"src":"4854:18:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":1900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4884:3:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4876:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1898,"name":"address","nodeType":"ElementaryTypeName","src":"4876:7:8","typeDescriptions":{}}},"id":1901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4876:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4854:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1903,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"4890:13:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1892,"name":"estimateFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2316,"src":"4809:12:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view returns (uint256,uint256)"}},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:95:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4788:116:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4922:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:5:8","memberName":"value","nodeType":"MemberAccess","src":"4922:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1909,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"4935:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4922:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766520666f722066656573","id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4946:43:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""},"value":"LayerZeroMock: not enough native for fees"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","typeString":"literal_string \"LayerZeroMock: not enough native for fees\""}],"id":1906,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4914:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:76:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1913,"nodeType":"ExpressionStatement","src":"4914:76:8"},{"assignments":[1915],"declarations":[{"constant":false,"id":1915,"mutability":"mutable","name":"nonce","nameLocation":"5008:5:8","nodeType":"VariableDeclaration","scope":2009,"src":"5001:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1914,"name":"uint64","nodeType":"ElementaryTypeName","src":"5001:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":1923,"initialValue":{"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:37:8","subExpression":{"baseExpression":{"baseExpression":{"id":1916,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"5018:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":1918,"indexExpression":{"id":1917,"name":"_chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"5032:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5018:23:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":1921,"indexExpression":{"expression":{"id":1919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5042:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5046:6:8","memberName":"sender","nodeType":"MemberAccess","src":"5042:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5018:35:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"5001:52:8"},{"assignments":[1925],"declarations":[{"constant":false,"id":1925,"mutability":"mutable","name":"amount","nameLocation":"5109:6:8","nodeType":"VariableDeclaration","scope":2009,"src":"5104:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1924,"name":"uint","nodeType":"ElementaryTypeName","src":"5104:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1926,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5118:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5122:5:8","memberName":"value","nodeType":"MemberAccess","src":"5118:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1928,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"5130:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5118:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5104:35:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1931,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"5153:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5162:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5153:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1949,"nodeType":"IfStatement","src":"5149:163:8","trueBody":{"id":1948,"nodeType":"Block","src":"5165:147:8","statements":[{"assignments":[1935,null],"declarations":[{"constant":false,"id":1935,"mutability":"mutable","name":"success","nameLocation":"5185:7:8","nodeType":"VariableDeclaration","scope":1948,"src":"5180:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1934,"name":"bool","nodeType":"ElementaryTypeName","src":"5180:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1942,"initialValue":{"arguments":[{"hexValue":"","id":1940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5233:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1936,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1842,"src":"5198:14:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5213:4:8","memberName":"call","nodeType":"MemberAccess","src":"5198:19:8","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1925,"src":"5225:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5198:34:8","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5179:57:8"},{"expression":{"arguments":[{"id":1944,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"5258:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","id":1945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5267:33:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""},"value":"LayerZeroMock: failed to refund"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","typeString":"literal_string \"LayerZeroMock: failed to refund\""}],"id":1943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5250:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1947,"nodeType":"ExpressionStatement","src":"5250:51:8"}]}},{"assignments":[null,1951,1953,1955],"declarations":[null,{"constant":false,"id":1951,"mutability":"mutable","name":"extraGas","nameLocation":"5474:8:8","nodeType":"VariableDeclaration","scope":2009,"src":"5469:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1950,"name":"uint","nodeType":"ElementaryTypeName","src":"5469:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1953,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"5489:12:8","nodeType":"VariableDeclaration","scope":2009,"src":"5484:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1952,"name":"uint","nodeType":"ElementaryTypeName","src":"5484:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"dstNativeAddr","nameLocation":"5519:13:8","nodeType":"VariableDeclaration","scope":2009,"src":"5503:29:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1954,"name":"address","nodeType":"ElementaryTypeName","src":"5503:15:8","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":1960,"initialValue":{"arguments":[{"id":1958,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"5562:13:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1956,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"5536:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$1627_$","typeString":"type(library LzLib)"}},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:19:8","memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":1588,"src":"5536:25:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5466:110:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1961,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"5590:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5605:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5590:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1983,"nodeType":"IfStatement","src":"5586:222:8","trueBody":{"id":1982,"nodeType":"Block","src":"5608:200:8","statements":[{"assignments":[1965,null],"declarations":[{"constant":false,"id":1965,"mutability":"mutable","name":"success","nameLocation":"5628:7:8","nodeType":"VariableDeclaration","scope":1982,"src":"5623:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1964,"name":"bool","nodeType":"ElementaryTypeName","src":"5623:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":1972,"initialValue":{"arguments":[{"hexValue":"","id":1970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5681:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":1966,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"5641:13:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5655:4:8","memberName":"call","nodeType":"MemberAccess","src":"5641:18:8","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":1968,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"5667:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5641:39:8","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5622:62:8"},{"condition":{"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5702:8:8","subExpression":{"id":1973,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"5703:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1981,"nodeType":"IfStatement","src":"5698:100:8","trueBody":{"id":1980,"nodeType":"Block","src":"5712:86:8","statements":[{"eventCall":{"arguments":[{"id":1976,"name":"dstNativeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"5755:13:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1977,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"5770:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1975,"name":"ValueTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"5735:19:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5735:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1979,"nodeType":"EmitStatement","src":"5730:53:8"}]}}]}},{"assignments":[1985],"declarations":[{"constant":false,"id":1985,"mutability":"mutable","name":"srcUaAddress","nameLocation":"5831:12:8","nodeType":"VariableDeclaration","scope":2009,"src":"5818:25:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1984,"name":"bytes","nodeType":"ElementaryTypeName","src":"5818:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1992,"initialValue":{"arguments":[{"expression":{"id":1988,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5863:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5867:6:8","memberName":"sender","nodeType":"MemberAccess","src":"5863:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1990,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1861,"src":"5875:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5846:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5850:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"5846:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5846:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5818:65:8"},{"assignments":[1994],"declarations":[{"constant":false,"id":1994,"mutability":"mutable","name":"payload","nameLocation":"5936:7:8","nodeType":"VariableDeclaration","scope":2009,"src":"5923:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1993,"name":"bytes","nodeType":"ElementaryTypeName","src":"5923:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1996,"initialValue":{"id":1995,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"5946:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5923:31:8"},{"expression":{"arguments":[{"id":2001,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6006:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2002,"name":"srcUaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1985,"src":"6019:12:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2003,"name":"dstAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1861,"src":"6033:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2004,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1915,"src":"6042:5:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2005,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"6049:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2006,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1994,"src":"6059:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1998,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1865,"src":"5979:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1997,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2945,"src":"5964:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LZEndpointMock_$2945_$","typeString":"type(contract LZEndpointMock)"}},"id":1999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5964:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2945","typeString":"contract LZEndpointMock"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5991:14:8","memberName":"receivePayload","nodeType":"MemberAccess","referencedDeclaration":2217,"src":"5964:41:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,uint256,bytes memory) external"}},"id":2007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5964:103:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2008,"nodeType":"ExpressionStatement","src":"5964:103:8"}]},"functionSelector":"c5803100","id":2010,"implemented":true,"kind":"function","modifiers":[{"id":1850,"kind":"modifierInvocation","modifierName":{"id":1849,"name":"sendNonReentrant","nameLocations":["4253:16:8"],"nodeType":"IdentifierPath","referencedDeclaration":1741,"src":"4253:16:8"},"nodeType":"ModifierInvocation","src":"4253:16:8"}],"name":"send","nameLocation":"4017:4:8","nodeType":"FunctionDefinition","overrides":{"id":1848,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:8"},"parameters":{"id":1847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1836,"mutability":"mutable","name":"_chainId","nameLocation":"4038:8:8","nodeType":"VariableDeclaration","scope":2010,"src":"4031:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1835,"name":"uint16","nodeType":"ElementaryTypeName","src":"4031:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1838,"mutability":"mutable","name":"_path","nameLocation":"4069:5:8","nodeType":"VariableDeclaration","scope":2010,"src":"4056:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1837,"name":"bytes","nodeType":"ElementaryTypeName","src":"4056:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1840,"mutability":"mutable","name":"_payload","nameLocation":"4099:8:8","nodeType":"VariableDeclaration","scope":2010,"src":"4084:23:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1839,"name":"bytes","nodeType":"ElementaryTypeName","src":"4084:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1842,"mutability":"mutable","name":"_refundAddress","nameLocation":"4133:14:8","nodeType":"VariableDeclaration","scope":2010,"src":"4117:30:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1841,"name":"address","nodeType":"ElementaryTypeName","src":"4117:15:8","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":1844,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4165:18:8","nodeType":"VariableDeclaration","scope":2010,"src":"4157:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1843,"name":"address","nodeType":"ElementaryTypeName","src":"4157:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1846,"mutability":"mutable","name":"_adapterParams","nameLocation":"4206:14:8","nodeType":"VariableDeclaration","scope":2010,"src":"4193:27:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1845,"name":"bytes","nodeType":"ElementaryTypeName","src":"4193:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4021:205:8"},"returnParameters":{"id":1851,"nodeType":"ParameterList","parameters":[],"src":"4270:0:8"},"scope":2945,"src":"4008:2066:8","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[1247],"body":{"id":2216,"nodeType":"Block","src":"6315:2094:8","statements":[{"assignments":[2030],"declarations":[{"constant":false,"id":2030,"mutability":"mutable","name":"sp","nameLocation":"6347:2:8","nodeType":"VariableDeclaration","scope":2216,"src":"6325:24:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2029,"nodeType":"UserDefinedTypeName","pathNode":{"id":2028,"name":"StoredPayload","nameLocations":["6325:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1715,"src":"6325:13:8"},"referencedDeclaration":1715,"src":"6325:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2036,"initialValue":{"baseExpression":{"baseExpression":{"id":2031,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"6352:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2033,"indexExpression":{"id":2032,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"6366:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2035,"indexExpression":{"id":2034,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6379:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6325:60:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2038,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"6468:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6478:34:8","subExpression":{"baseExpression":{"baseExpression":{"id":2039,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"6480:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":2041,"indexExpression":{"id":2040,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"6493:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6480:25:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":2043,"indexExpression":{"id":2042,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6506:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6480:32:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6468:44:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","id":2046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6514:28:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""},"value":"LayerZeroMock: wrong nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","typeString":"literal_string \"LayerZeroMock: wrong nonce\""}],"id":2037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6460:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6460:83:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2048,"nodeType":"ExpressionStatement","src":"6460:83:8"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2049,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"6681:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6684:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"6681:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6707:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6699:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6699:7:8","typeDescriptions":{}}},"id":2054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6699:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6681:28:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"id":2127,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"7535:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2213,"nodeType":"Block","src":"7894:509:8","statements":[{"clauses":[{"block":{"id":2174,"nodeType":"Block","src":"8008:2:8","statements":[]},"errorName":"","id":2175,"nodeType":"TryCatchClause","src":"8008:2:8"},{"block":{"id":2210,"nodeType":"Block","src":"8039:354:8","statements":[{"expression":{"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":2179,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"8057:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2182,"indexExpression":{"id":2180,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"8071:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8057:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2183,"indexExpression":{"id":2181,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"8084:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8057:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":2187,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"8114:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8123:6:8","memberName":"length","nodeType":"MemberAccess","src":"8114:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8107:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2185,"name":"uint64","nodeType":"ElementaryTypeName","src":"8107:6:8","typeDescriptions":{}}},"id":2189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8107:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2190,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"8132:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2192,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"8155:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2191,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8145:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2184,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"8093:13:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1715_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:72:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"8057:108:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":2196,"nodeType":"ExpressionStatement","src":"8057:108:8"},{"eventCall":{"arguments":[{"id":2198,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"8202:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2199,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"8215:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2200,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"8222:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2201,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"8235:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2202,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"8243:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2203,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"8253:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2197,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1790,"src":"8188:13:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:72:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2205,"nodeType":"EmitStatement","src":"8183:77:8"},{"expression":{"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2206,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"8356:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8373:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8356:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2209,"nodeType":"ExpressionStatement","src":"8356:22:8"}]},"errorName":"","id":2211,"nodeType":"TryCatchClause","parameters":{"id":2178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"reason","nameLocation":"8031:6:8","nodeType":"VariableDeclaration","scope":2211,"src":"8018:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2176,"name":"bytes","nodeType":"ElementaryTypeName","src":"8018:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8017:21:8"},"src":"8011:382:8"}],"externalCall":{"arguments":[{"id":2169,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"7970:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2170,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7983:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2171,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"7990:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2172,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7998:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":2164,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"7931:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2163,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1371,"src":"7912:18:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$1371_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7912:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$1371","typeString":"contract ILayerZeroReceiver"}},"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7944:9:8","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":1370,"src":"7912:41:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":2167,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"7959:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"7912:57:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7912:95:8","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2212,"nodeType":"TryStatement","src":"7908:485:8"}]},"id":2214,"nodeType":"IfStatement","src":"7531:872:8","trueBody":{"id":2162,"nodeType":"Block","src":"7551:337:8","statements":[{"expression":{"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":2128,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"7565:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2131,"indexExpression":{"id":2129,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"7579:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7565:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2132,"indexExpression":{"id":2130,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7592:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7565:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":2136,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7622:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7631:6:8","memberName":"length","nodeType":"MemberAccess","src":"7622:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7615:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2134,"name":"uint64","nodeType":"ElementaryTypeName","src":"7615:6:8","typeDescriptions":{}}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7615:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2139,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"7640:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2141,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7663:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2140,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7653:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7653:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2133,"name":"StoredPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"7601:13:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StoredPayload_$1715_storage_ptr_$","typeString":"type(struct LZEndpointMock.StoredPayload storage pointer)"}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7601:72:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_memory_ptr","typeString":"struct LZEndpointMock.StoredPayload memory"}},"src":"7565:108:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"id":2145,"nodeType":"ExpressionStatement","src":"7565:108:8"},{"eventCall":{"arguments":[{"id":2147,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"7706:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2148,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7719:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2149,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"7726:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2150,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"7739:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2151,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7747:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[{"hexValue":"","id":2154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7763:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":2153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7757:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2152,"name":"bytes","nodeType":"ElementaryTypeName","src":"7757:5:8","typeDescriptions":{}}},"id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:9:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2146,"name":"PayloadStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1790,"src":"7692:13:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,address,uint64,bytes memory,bytes memory)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7692:75:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2157,"nodeType":"EmitStatement","src":"7687:80:8"},{"expression":{"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2158,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"7855:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7872:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7855:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2161,"nodeType":"ExpressionStatement","src":"7855:22:8"}]}},"id":2215,"nodeType":"IfStatement","src":"6677:1726:8","trueBody":{"id":2126,"nodeType":"Block","src":"6711:814:8","statements":[{"assignments":[2060],"declarations":[{"constant":false,"id":2060,"mutability":"mutable","name":"msgs","nameLocation":"6749:4:8","nodeType":"VariableDeclaration","scope":2126,"src":"6725:28:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":2058,"nodeType":"UserDefinedTypeName","pathNode":{"id":2057,"name":"QueuedPayload","nameLocations":["6725:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1722,"src":"6725:13:8"},"referencedDeclaration":1722,"src":"6725:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":2059,"nodeType":"ArrayTypeName","src":"6725:15:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":2066,"initialValue":{"baseExpression":{"baseExpression":{"id":2061,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"6756:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2063,"indexExpression":{"id":2062,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"6770:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6756:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2065,"indexExpression":{"id":2064,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6783:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6756:33:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6725:64:8"},{"assignments":[2069],"declarations":[{"constant":false,"id":2069,"mutability":"mutable","name":"newMsg","nameLocation":"6824:6:8","nodeType":"VariableDeclaration","scope":2126,"src":"6803:27:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":2068,"nodeType":"UserDefinedTypeName","pathNode":{"id":2067,"name":"QueuedPayload","nameLocations":["6803:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1722,"src":"6803:13:8"},"referencedDeclaration":1722,"src":"6803:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":2075,"initialValue":{"arguments":[{"id":2071,"name":"_dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"6847:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2072,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"6860:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2073,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"6868:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2070,"name":"QueuedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1722,"src":"6833:13:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QueuedPayload_$1722_storage_ptr_$","typeString":"type(struct LZEndpointMock.QueuedPayload storage pointer)"}},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6833:44:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"6803:74:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2076,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7083:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7088:6:8","memberName":"length","nodeType":"MemberAccess","src":"7083:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7097:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7083:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2124,"nodeType":"Block","src":"7465:50:8","statements":[{"expression":{"arguments":[{"id":2121,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2069,"src":"7493:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":2118,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7483:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7488:4:8","memberName":"push","nodeType":"MemberAccess","src":"7483:9:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1722_storage_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7483:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2123,"nodeType":"ExpressionStatement","src":"7483:17:8"}]},"id":2125,"nodeType":"IfStatement","src":"7079:436:8","trueBody":{"id":2117,"nodeType":"Block","src":"7100:359:8","statements":[{"expression":{"arguments":[{"id":2083,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2069,"src":"7164:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}],"expression":{"id":2080,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7154:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7159:4:8","memberName":"push","nodeType":"MemberAccess","src":"7154:9:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$_t_struct$_QueuedPayload_$1722_storage_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer,struct LZEndpointMock.QueuedPayload storage ref)"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2085,"nodeType":"ExpressionStatement","src":"7154:17:8"},{"body":{"id":2109,"nodeType":"Block","src":"7287:62:8","statements":[{"expression":{"id":2107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2099,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7309:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2103,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2100,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"7314:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7318:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7314:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7309:11:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2104,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7323:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2106,"indexExpression":{"id":2105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"7328:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7323:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"src":"7309:21:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":2108,"nodeType":"ExpressionStatement","src":"7309:21:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2090,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"7261:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2091,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7265:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7270:6:8","memberName":"length","nodeType":"MemberAccess","src":"7265:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7279:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7265:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7261:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2110,"initializationExpression":{"assignments":[2087],"declarations":[{"constant":false,"id":2087,"mutability":"mutable","name":"i","nameLocation":"7254:1:8","nodeType":"VariableDeclaration","scope":2110,"src":"7249:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2086,"name":"uint","nodeType":"ElementaryTypeName","src":"7249:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2089,"initialValue":{"hexValue":"30","id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7258:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7249:10:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7282:3:8","subExpression":{"id":2096,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"7282:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2098,"nodeType":"ExpressionStatement","src":"7282:3:8"},"nodeType":"ForStatement","src":"7244:105:8"},{"expression":{"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2111,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"7428:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2113,"indexExpression":{"hexValue":"30","id":2112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7433:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7428:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2114,"name":"newMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2069,"src":"7438:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"src":"7428:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"id":2116,"nodeType":"ExpressionStatement","src":"7428:16:8"}]}}]}}]},"functionSelector":"c2fa4813","id":2217,"implemented":true,"kind":"function","modifiers":[{"id":2026,"kind":"modifierInvocation","modifierName":{"id":2025,"name":"receiveNonReentrant","nameLocations":["6295:19:8"],"nodeType":"IdentifierPath","referencedDeclaration":1760,"src":"6295:19:8"},"nodeType":"ModifierInvocation","src":"6295:19:8"}],"name":"receivePayload","nameLocation":"6089:14:8","nodeType":"FunctionDefinition","overrides":{"id":2024,"nodeType":"OverrideSpecifier","overrides":[],"src":"6286:8:8"},"parameters":{"id":2023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2012,"mutability":"mutable","name":"_srcChainId","nameLocation":"6120:11:8","nodeType":"VariableDeclaration","scope":2217,"src":"6113:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2011,"name":"uint16","nodeType":"ElementaryTypeName","src":"6113:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2014,"mutability":"mutable","name":"_path","nameLocation":"6156:5:8","nodeType":"VariableDeclaration","scope":2217,"src":"6141:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2013,"name":"bytes","nodeType":"ElementaryTypeName","src":"6141:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"_dstAddress","nameLocation":"6179:11:8","nodeType":"VariableDeclaration","scope":2217,"src":"6171:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2015,"name":"address","nodeType":"ElementaryTypeName","src":"6171:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"_nonce","nameLocation":"6207:6:8","nodeType":"VariableDeclaration","scope":2217,"src":"6200:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2017,"name":"uint64","nodeType":"ElementaryTypeName","src":"6200:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2020,"mutability":"mutable","name":"_gasLimit","nameLocation":"6228:9:8","nodeType":"VariableDeclaration","scope":2217,"src":"6223:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint","nodeType":"ElementaryTypeName","src":"6223:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2022,"mutability":"mutable","name":"_payload","nameLocation":"6262:8:8","nodeType":"VariableDeclaration","scope":2217,"src":"6247:23:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2021,"name":"bytes","nodeType":"ElementaryTypeName","src":"6247:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6103:173:8"},"returnParameters":{"id":2027,"nodeType":"ParameterList","parameters":[],"src":"6315:0:8"},"scope":2945,"src":"6080:2329:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1256],"body":{"id":2233,"nodeType":"Block","src":"8519:53:8","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":2227,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"8536:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":2229,"indexExpression":{"id":2228,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"8549:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8536:22:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":2231,"indexExpression":{"id":2230,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2221,"src":"8559:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8536:29:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2226,"id":2232,"nodeType":"Return","src":"8529:36:8"}]},"functionSelector":"fdc07c70","id":2234,"implemented":true,"kind":"function","modifiers":[],"name":"getInboundNonce","nameLocation":"8424:15:8","nodeType":"FunctionDefinition","overrides":{"id":2223,"nodeType":"OverrideSpecifier","overrides":[],"src":"8493:8:8"},"parameters":{"id":2222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2219,"mutability":"mutable","name":"_chainID","nameLocation":"8447:8:8","nodeType":"VariableDeclaration","scope":2234,"src":"8440:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2218,"name":"uint16","nodeType":"ElementaryTypeName","src":"8440:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2221,"mutability":"mutable","name":"_path","nameLocation":"8472:5:8","nodeType":"VariableDeclaration","scope":2234,"src":"8457:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2220,"name":"bytes","nodeType":"ElementaryTypeName","src":"8457:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8439:39:8"},"returnParameters":{"id":2226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2234,"src":"8511:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2224,"name":"uint64","nodeType":"ElementaryTypeName","src":"8511:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8510:8:8"},"scope":2945,"src":"8415:157:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1265],"body":{"id":2250,"nodeType":"Block","src":"8682:60:8","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":2244,"name":"outboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"8699:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(address => uint64))"}},"id":2246,"indexExpression":{"id":2245,"name":"_chainID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2236,"src":"8713:8:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8699:23:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":2248,"indexExpression":{"id":2247,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"8723:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8699:36:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2243,"id":2249,"nodeType":"Return","src":"8692:43:8"}]},"functionSelector":"7a145748","id":2251,"implemented":true,"kind":"function","modifiers":[],"name":"getOutboundNonce","nameLocation":"8587:16:8","nodeType":"FunctionDefinition","overrides":{"id":2240,"nodeType":"OverrideSpecifier","overrides":[],"src":"8656:8:8"},"parameters":{"id":2239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2236,"mutability":"mutable","name":"_chainID","nameLocation":"8611:8:8","nodeType":"VariableDeclaration","scope":2251,"src":"8604:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2235,"name":"uint16","nodeType":"ElementaryTypeName","src":"8604:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2238,"mutability":"mutable","name":"_srcAddress","nameLocation":"8629:11:8","nodeType":"VariableDeclaration","scope":2251,"src":"8621:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2237,"name":"address","nodeType":"ElementaryTypeName","src":"8621:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8603:38:8"},"returnParameters":{"id":2243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2251,"src":"8674:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2241,"name":"uint64","nodeType":"ElementaryTypeName","src":"8674:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8673:8:8"},"scope":2945,"src":"8578:164:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1282],"body":{"id":2315,"nodeType":"Block","src":"8989:507:8","statements":[{"assignments":[2270],"declarations":[{"constant":false,"id":2270,"mutability":"mutable","name":"adapterParams","nameLocation":"9012:13:8","nodeType":"VariableDeclaration","scope":2315,"src":"8999:26:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2269,"name":"bytes","nodeType":"ElementaryTypeName","src":"8999:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2278,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2271,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"9028:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9043:6:8","memberName":"length","nodeType":"MemberAccess","src":"9028:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9052:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9028:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2276,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"9073:20:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9028:65:8","trueExpression":{"id":2275,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"9056:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8999:94:8"},{"assignments":[2280],"declarations":[{"constant":false,"id":2280,"mutability":"mutable","name":"relayerFee","nameLocation":"9132:10:8","nodeType":"VariableDeclaration","scope":2315,"src":"9127:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2279,"name":"uint","nodeType":"ElementaryTypeName","src":"9127:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2289,"initialValue":{"arguments":[{"id":2282,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2253,"src":"9160:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"31","id":2283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9173:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":2284,"name":"_userApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"9176:16:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2285,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2257,"src":"9194:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9203:6:8","memberName":"length","nodeType":"MemberAccess","src":"9194:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2287,"name":"adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2270,"src":"9211:13:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2281,"name":"_getRelayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"9145:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint16,uint16,address,uint256,bytes memory) view returns (uint256)"}},"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:80:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9127:98:8"},{"assignments":[2291],"declarations":[{"constant":false,"id":2291,"mutability":"mutable","name":"protocolFee","nameLocation":"9266:11:8","nodeType":"VariableDeclaration","scope":2315,"src":"9261:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2290,"name":"uint","nodeType":"ElementaryTypeName","src":"9261:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2297,"initialValue":{"arguments":[{"id":2293,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2259,"src":"9297:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2294,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2280,"src":"9308:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2295,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"9320:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2292,"name":"_getProtocolFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"9280:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) view returns (uint256)"}},"id":2296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9280:50:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9261:69:8"},{"expression":{"condition":{"id":2298,"name":"_payInZRO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2259,"src":"9340:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2302,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"9375:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2303,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9387:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9375:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9340:58:8","trueExpression":{"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2299,"name":"zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"9352:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2300,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9361:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9352:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2306,"nodeType":"ExpressionStatement","src":"9340:58:8"},{"expression":{"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2307,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"9443:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2308,"name":"nativeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"9455:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2309,"name":"relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2280,"src":"9467:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9455:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2311,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"9480:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9455:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9443:46:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2314,"nodeType":"ExpressionStatement","src":"9443:46:8"}]},"functionSelector":"40a7bb10","id":2316,"implemented":true,"kind":"function","modifiers":[],"name":"estimateFees","nameLocation":"8757:12:8","nodeType":"FunctionDefinition","overrides":{"id":2263,"nodeType":"OverrideSpecifier","overrides":[],"src":"8942:8:8"},"parameters":{"id":2262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2253,"mutability":"mutable","name":"_dstChainId","nameLocation":"8786:11:8","nodeType":"VariableDeclaration","scope":2316,"src":"8779:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2252,"name":"uint16","nodeType":"ElementaryTypeName","src":"8779:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2255,"mutability":"mutable","name":"_userApplication","nameLocation":"8815:16:8","nodeType":"VariableDeclaration","scope":2316,"src":"8807:24:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2254,"name":"address","nodeType":"ElementaryTypeName","src":"8807:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2257,"mutability":"mutable","name":"_payload","nameLocation":"8854:8:8","nodeType":"VariableDeclaration","scope":2316,"src":"8841:21:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2256,"name":"bytes","nodeType":"ElementaryTypeName","src":"8841:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2259,"mutability":"mutable","name":"_payInZRO","nameLocation":"8877:9:8","nodeType":"VariableDeclaration","scope":2316,"src":"8872:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2258,"name":"bool","nodeType":"ElementaryTypeName","src":"8872:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2261,"mutability":"mutable","name":"_adapterParams","nameLocation":"8909:14:8","nodeType":"VariableDeclaration","scope":2316,"src":"8896:27:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2260,"name":"bytes","nodeType":"ElementaryTypeName","src":"8896:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8769:160:8"},"returnParameters":{"id":2268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2265,"mutability":"mutable","name":"nativeFee","nameLocation":"8965:9:8","nodeType":"VariableDeclaration","scope":2316,"src":"8960:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2264,"name":"uint","nodeType":"ElementaryTypeName","src":"8960:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2267,"mutability":"mutable","name":"zroFee","nameLocation":"8981:6:8","nodeType":"VariableDeclaration","scope":2316,"src":"8976:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint","nodeType":"ElementaryTypeName","src":"8976:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8959:29:8"},"scope":2945,"src":"8748:748:8","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[1287],"body":{"id":2324,"nodeType":"Block","src":"9564:35:8","statements":[{"expression":{"id":2322,"name":"mockChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"9581:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":2321,"id":2323,"nodeType":"Return","src":"9574:18:8"}]},"functionSelector":"3408e470","id":2325,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"9511:10:8","nodeType":"FunctionDefinition","overrides":{"id":2318,"nodeType":"OverrideSpecifier","overrides":[],"src":"9538:8:8"},"parameters":{"id":2317,"nodeType":"ParameterList","parameters":[],"src":"9521:2:8"},"returnParameters":{"id":2321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2325,"src":"9556:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2319,"name":"uint16","nodeType":"ElementaryTypeName","src":"9556:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"9555:8:8"},"scope":2945,"src":"9502:97:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1296],"body":{"id":2425,"nodeType":"Block","src":"9742:686:8","statements":[{"assignments":[2337],"declarations":[{"constant":false,"id":2337,"mutability":"mutable","name":"sp","nameLocation":"9774:2:8","nodeType":"VariableDeclaration","scope":2425,"src":"9752:24:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2336,"nodeType":"UserDefinedTypeName","pathNode":{"id":2335,"name":"StoredPayload","nameLocations":["9752:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1715,"src":"9752:13:8"},"referencedDeclaration":1715,"src":"9752:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2343,"initialValue":{"baseExpression":{"baseExpression":{"id":2338,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"9779:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2340,"indexExpression":{"id":2339,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"9793:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9779:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2342,"indexExpression":{"id":2341,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"9806:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9779:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9752:60:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2345,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"9830:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9833:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"9830:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9856:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9848:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9848:7:8","typeDescriptions":{}}},"id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9848:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9830:28:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":2352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9860:34:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":2344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9822:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9822:73:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2354,"nodeType":"ExpressionStatement","src":"9822:73:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2356,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"9913:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9922:6:8","memberName":"length","nodeType":"MemberAccess","src":"9913:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2358,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"9932:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9935:13:8","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1710,"src":"9932:16:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9913:35:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2362,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"9962:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2361,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9952:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9952:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2364,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"9975:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9978:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"9975:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9952:37:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9913:76:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9991:32:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""},"value":"LayerZeroMock: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","typeString":"literal_string \"LayerZeroMock: invalid payload\""}],"id":2355,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9905:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9905:119:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2370,"nodeType":"ExpressionStatement","src":"9905:119:8"},{"assignments":[2372],"declarations":[{"constant":false,"id":2372,"mutability":"mutable","name":"dstAddress","nameLocation":"10043:10:8","nodeType":"VariableDeclaration","scope":2425,"src":"10035:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2371,"name":"address","nodeType":"ElementaryTypeName","src":"10035:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2375,"initialValue":{"expression":{"id":2373,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"10056:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10059:10:8","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"10056:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10035:34:8"},{"expression":{"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2376,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"10114:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10117:13:8","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1710,"src":"10114:16:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10133:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10114:20:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2381,"nodeType":"ExpressionStatement","src":"10114:20:8"},{"expression":{"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2382,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"10144:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10147:10:8","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"10144:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10168:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10160:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2385,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:8","typeDescriptions":{}}},"id":2388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10160:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10144:26:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2390,"nodeType":"ExpressionStatement","src":"10144:26:8"},{"expression":{"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2391,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"10180:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10183:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"10180:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10205:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10197:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10197:7:8","typeDescriptions":{}}},"id":2397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10197:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10180:27:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2399,"nodeType":"ExpressionStatement","src":"10180:27:8"},{"assignments":[2401],"declarations":[{"constant":false,"id":2401,"mutability":"mutable","name":"nonce","nameLocation":"10225:5:8","nodeType":"VariableDeclaration","scope":2425,"src":"10218:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2400,"name":"uint64","nodeType":"ElementaryTypeName","src":"10218:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2407,"initialValue":{"baseExpression":{"baseExpression":{"id":2402,"name":"inboundNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"10233:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_uint64_$_$","typeString":"mapping(uint16 => mapping(bytes memory => uint64))"}},"id":2404,"indexExpression":{"id":2403,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10246:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10233:25:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"mapping(bytes memory => uint64)"}},"id":2406,"indexExpression":{"id":2405,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"10259:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10233:32:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10218:47:8"},{"expression":{"arguments":[{"id":2412,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10317:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2413,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"10330:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2414,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2401,"src":"10337:5:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2415,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"10344:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":2409,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"10295:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2408,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1371,"src":"10276:18:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$1371_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10276:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$1371","typeString":"contract ILayerZeroReceiver"}},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10307:9:8","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":1370,"src":"10276:40:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10276:77:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2417,"nodeType":"ExpressionStatement","src":"10276:77:8"},{"eventCall":{"arguments":[{"id":2419,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"10383:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2420,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"10396:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2421,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2401,"src":"10403:5:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":2422,"name":"dstAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"10410:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2418,"name":"PayloadCleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"10368:14:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_$returns$__$","typeString":"function (uint16,bytes memory,uint64,address)"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10368:53:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2424,"nodeType":"EmitStatement","src":"10363:58:8"}]},"functionSelector":"aaff5f16","id":2426,"implemented":true,"kind":"function","modifiers":[],"name":"retryPayload","nameLocation":"9614:12:8","nodeType":"FunctionDefinition","overrides":{"id":2333,"nodeType":"OverrideSpecifier","overrides":[],"src":"9733:8:8"},"parameters":{"id":2332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2327,"mutability":"mutable","name":"_srcChainId","nameLocation":"9643:11:8","nodeType":"VariableDeclaration","scope":2426,"src":"9636:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2326,"name":"uint16","nodeType":"ElementaryTypeName","src":"9636:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2329,"mutability":"mutable","name":"_path","nameLocation":"9679:5:8","nodeType":"VariableDeclaration","scope":2426,"src":"9664:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2328,"name":"bytes","nodeType":"ElementaryTypeName","src":"9664:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2331,"mutability":"mutable","name":"_payload","nameLocation":"9709:8:8","nodeType":"VariableDeclaration","scope":2426,"src":"9694:23:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2330,"name":"bytes","nodeType":"ElementaryTypeName","src":"9694:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9626:97:8"},"returnParameters":{"id":2334,"nodeType":"ParameterList","parameters":[],"src":"9742:0:8"},"scope":2945,"src":"9605:823:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1305],"body":{"id":2453,"nodeType":"Block","src":"10540:122:8","statements":[{"assignments":[2438],"declarations":[{"constant":false,"id":2438,"mutability":"mutable","name":"sp","nameLocation":"10572:2:8","nodeType":"VariableDeclaration","scope":2453,"src":"10550:24:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2437,"nodeType":"UserDefinedTypeName","pathNode":{"id":2436,"name":"StoredPayload","nameLocations":["10550:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1715,"src":"10550:13:8"},"referencedDeclaration":1715,"src":"10550:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2444,"initialValue":{"baseExpression":{"baseExpression":{"id":2439,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"10577:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2441,"indexExpression":{"id":2440,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2428,"src":"10591:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10577:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2443,"indexExpression":{"id":2442,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"10604:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10577:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10550:60:8"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2445,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10627:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10630:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"10627:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10653:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10645:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10645:7:8","typeDescriptions":{}}},"id":2450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10645:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10627:28:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2435,"id":2452,"nodeType":"Return","src":"10620:35:8"}]},"functionSelector":"0eaf6ea6","id":2454,"implemented":true,"kind":"function","modifiers":[],"name":"hasStoredPayload","nameLocation":"10443:16:8","nodeType":"FunctionDefinition","overrides":{"id":2432,"nodeType":"OverrideSpecifier","overrides":[],"src":"10516:8:8"},"parameters":{"id":2431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2428,"mutability":"mutable","name":"_srcChainId","nameLocation":"10467:11:8","nodeType":"VariableDeclaration","scope":2454,"src":"10460:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2427,"name":"uint16","nodeType":"ElementaryTypeName","src":"10460:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2430,"mutability":"mutable","name":"_path","nameLocation":"10495:5:8","nodeType":"VariableDeclaration","scope":2454,"src":"10480:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2429,"name":"bytes","nodeType":"ElementaryTypeName","src":"10480:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10459:42:8"},"returnParameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2454,"src":"10534:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2433,"name":"bool","nodeType":"ElementaryTypeName","src":"10534:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10533:6:8"},"scope":2945,"src":"10434:228:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1312],"body":{"id":2467,"nodeType":"Block","src":"10749:37:8","statements":[{"expression":{"arguments":[{"id":2464,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10774:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2945","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2945","typeString":"contract LZEndpointMock"}],"id":2463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10766:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2462,"name":"address","nodeType":"ElementaryTypeName","src":"10766:7:8","typeDescriptions":{}}},"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10766:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2461,"id":2466,"nodeType":"Return","src":"10759:20:8"}]},"functionSelector":"9c729da1","id":2468,"implemented":true,"kind":"function","modifiers":[],"name":"getSendLibraryAddress","nameLocation":"10677:21:8","nodeType":"FunctionDefinition","overrides":{"id":2458,"nodeType":"OverrideSpecifier","overrides":[],"src":"10722:8:8"},"parameters":{"id":2457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2468,"src":"10699:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2455,"name":"address","nodeType":"ElementaryTypeName","src":"10699:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10698:9:8"},"returnParameters":{"id":2461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2468,"src":"10740:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2459,"name":"address","nodeType":"ElementaryTypeName","src":"10740:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10739:9:8"},"scope":2945,"src":"10668:118:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1319],"body":{"id":2481,"nodeType":"Block","src":"10876:37:8","statements":[{"expression":{"arguments":[{"id":2478,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10901:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_LZEndpointMock_$2945","typeString":"contract LZEndpointMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LZEndpointMock_$2945","typeString":"contract LZEndpointMock"}],"id":2477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10893:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2476,"name":"address","nodeType":"ElementaryTypeName","src":"10893:7:8","typeDescriptions":{}}},"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10893:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2475,"id":2480,"nodeType":"Return","src":"10886:20:8"}]},"functionSelector":"71ba2fd6","id":2482,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveLibraryAddress","nameLocation":"10801:24:8","nodeType":"FunctionDefinition","overrides":{"id":2472,"nodeType":"OverrideSpecifier","overrides":[],"src":"10849:8:8"},"parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2482,"src":"10826:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2469,"name":"address","nodeType":"ElementaryTypeName","src":"10826:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10825:9:8"},"returnParameters":{"id":2475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2482,"src":"10867:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2473,"name":"address","nodeType":"ElementaryTypeName","src":"10867:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10866:9:8"},"scope":2945,"src":"10792:121:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1324],"body":{"id":2492,"nodeType":"Block","src":"10985:55:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2488,"name":"_send_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"11002:19:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2489,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"11025:8:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11002:31:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2487,"id":2491,"nodeType":"Return","src":"10995:38:8"}]},"functionSelector":"e97a448a","id":2493,"implemented":true,"kind":"function","modifiers":[],"name":"isSendingPayload","nameLocation":"10928:16:8","nodeType":"FunctionDefinition","overrides":{"id":2484,"nodeType":"OverrideSpecifier","overrides":[],"src":"10961:8:8"},"parameters":{"id":2483,"nodeType":"ParameterList","parameters":[],"src":"10944:2:8"},"returnParameters":{"id":2487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2493,"src":"10979:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2485,"name":"bool","nodeType":"ElementaryTypeName","src":"10979:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10978:6:8"},"scope":2945,"src":"10919:121:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1329],"body":{"id":2503,"nodeType":"Block","src":"11114:58:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2499,"name":"_receive_entered_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"11131:22:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2500,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"11157:8:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11131:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2498,"id":2502,"nodeType":"Return","src":"11124:41:8"}]},"functionSelector":"ca066b35","id":2504,"implemented":true,"kind":"function","modifiers":[],"name":"isReceivingPayload","nameLocation":"11055:18:8","nodeType":"FunctionDefinition","overrides":{"id":2495,"nodeType":"OverrideSpecifier","overrides":[],"src":"11090:8:8"},"parameters":{"id":2494,"nodeType":"ParameterList","parameters":[],"src":"11073:2:8"},"returnParameters":{"id":2498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2504,"src":"11108:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2496,"name":"bool","nodeType":"ElementaryTypeName","src":"11108:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11107:6:8"},"scope":2945,"src":"11046:126:8","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1342],"body":{"id":2520,"nodeType":"Block","src":"11362:26:8","statements":[{"expression":{"hexValue":"","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11379:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2517,"id":2519,"nodeType":"Return","src":"11372:9:8"}]},"functionSelector":"f5ecbdbc","id":2521,"implemented":true,"kind":"function","modifiers":[],"name":"getConfig","nameLocation":"11187:9:8","nodeType":"FunctionDefinition","overrides":{"id":2514,"nodeType":"OverrideSpecifier","overrides":[],"src":"11330:8:8"},"parameters":{"id":2513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2521,"src":"11206:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2505,"name":"uint16","nodeType":"ElementaryTypeName","src":"11206:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2521,"src":"11235:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2507,"name":"uint16","nodeType":"ElementaryTypeName","src":"11235:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2521,"src":"11264:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2509,"name":"address","nodeType":"ElementaryTypeName","src":"11264:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2521,"src":"11289:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint","nodeType":"ElementaryTypeName","src":"11289:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11196:119:8"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2521,"src":"11348:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2515,"name":"bytes","nodeType":"ElementaryTypeName","src":"11348:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11347:14:8"},"scope":2945,"src":"11178:210:8","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1349],"body":{"id":2531,"nodeType":"Block","src":"11502:25:8","statements":[{"expression":{"hexValue":"31","id":2529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11519:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2528,"id":2530,"nodeType":"Return","src":"11512:8:8"}]},"functionSelector":"096568f6","id":2532,"implemented":true,"kind":"function","modifiers":[],"name":"getSendVersion","nameLocation":"11403:14:8","nodeType":"FunctionDefinition","overrides":{"id":2525,"nodeType":"OverrideSpecifier","overrides":[],"src":"11476:8:8"},"parameters":{"id":2524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2532,"src":"11427:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2522,"name":"address","nodeType":"ElementaryTypeName","src":"11427:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11417:44:8"},"returnParameters":{"id":2528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2532,"src":"11494:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2526,"name":"uint16","nodeType":"ElementaryTypeName","src":"11494:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11493:8:8"},"scope":2945,"src":"11394:133:8","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1356],"body":{"id":2542,"nodeType":"Block","src":"11644:25:8","statements":[{"expression":{"hexValue":"31","id":2540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":2539,"id":2541,"nodeType":"Return","src":"11654:8:8"}]},"functionSelector":"da1a7c9a","id":2543,"implemented":true,"kind":"function","modifiers":[],"name":"getReceiveVersion","nameLocation":"11542:17:8","nodeType":"FunctionDefinition","overrides":{"id":2536,"nodeType":"OverrideSpecifier","overrides":[],"src":"11618:8:8"},"parameters":{"id":2535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"11569:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2533,"name":"address","nodeType":"ElementaryTypeName","src":"11569:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11559:44:8"},"returnParameters":{"id":2539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"11636:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2537,"name":"uint16","nodeType":"ElementaryTypeName","src":"11636:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11635:8:8"},"scope":2945,"src":"11533:136:8","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1384],"body":{"id":2555,"nodeType":"Block","src":"11840:2:8","statements":[]},"functionSelector":"cbed8b9c","id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"setConfig","nameLocation":"11684:9:8","nodeType":"FunctionDefinition","overrides":{"id":2553,"nodeType":"OverrideSpecifier","overrides":[],"src":"11831:8:8"},"parameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"11703:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2544,"name":"uint16","nodeType":"ElementaryTypeName","src":"11703:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"11732:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2546,"name":"uint16","nodeType":"ElementaryTypeName","src":"11732:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"11761:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2548,"name":"uint","nodeType":"ElementaryTypeName","src":"11761:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2556,"src":"11791:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2550,"name":"bytes","nodeType":"ElementaryTypeName","src":"11791:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11693:128:8"},"returnParameters":{"id":2554,"nodeType":"ParameterList","parameters":[],"src":"11840:0:8"},"scope":2945,"src":"11675:167:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1389],"body":{"id":2562,"nodeType":"Block","src":"11924:2:8","statements":[]},"functionSelector":"07e0db17","id":2563,"implemented":true,"kind":"function","modifiers":[],"name":"setSendVersion","nameLocation":"11857:14:8","nodeType":"FunctionDefinition","overrides":{"id":2560,"nodeType":"OverrideSpecifier","overrides":[],"src":"11915:8:8"},"parameters":{"id":2559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2563,"src":"11881:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2557,"name":"uint16","nodeType":"ElementaryTypeName","src":"11881:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11871:34:8"},"returnParameters":{"id":2561,"nodeType":"ParameterList","parameters":[],"src":"11924:0:8"},"scope":2945,"src":"11848:78:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1394],"body":{"id":2569,"nodeType":"Block","src":"12011:2:8","statements":[]},"functionSelector":"10ddb137","id":2570,"implemented":true,"kind":"function","modifiers":[],"name":"setReceiveVersion","nameLocation":"11941:17:8","nodeType":"FunctionDefinition","overrides":{"id":2567,"nodeType":"OverrideSpecifier","overrides":[],"src":"12002:8:8"},"parameters":{"id":2566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2570,"src":"11968:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2564,"name":"uint16","nodeType":"ElementaryTypeName","src":"11968:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11958:34:8"},"returnParameters":{"id":2568,"nodeType":"ParameterList","parameters":[],"src":"12011:0:8"},"scope":2945,"src":"11932:81:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1401],"body":{"id":2641,"nodeType":"Block","src":"12107:632:8","statements":[{"assignments":[2580],"declarations":[{"constant":false,"id":2580,"mutability":"mutable","name":"sp","nameLocation":"12139:2:8","nodeType":"VariableDeclaration","scope":2641,"src":"12117:24:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"},"typeName":{"id":2579,"nodeType":"UserDefinedTypeName","pathNode":{"id":2578,"name":"StoredPayload","nameLocations":["12117:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1715,"src":"12117:13:8"},"referencedDeclaration":1715,"src":"12117:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload"}},"visibility":"internal"}],"id":2586,"initialValue":{"baseExpression":{"baseExpression":{"id":2581,"name":"storedPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"12144:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref))"}},"id":2583,"indexExpression":{"id":2582,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"12158:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12144:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_struct$_StoredPayload_$1715_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.StoredPayload storage ref)"}},"id":2585,"indexExpression":{"id":2584,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"12171:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12144:33:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage","typeString":"struct LZEndpointMock.StoredPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12117:60:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2588,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"12273:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12276:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"12273:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12299:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12291:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12291:7:8","typeDescriptions":{}}},"id":2593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12291:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12273:28:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","id":2595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12303:34:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""},"value":"LayerZeroMock: no stored payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","typeString":"literal_string \"LayerZeroMock: no stored payload\""}],"id":2587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12265:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12265:73:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2597,"nodeType":"ExpressionStatement","src":"12265:73:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2599,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"12356:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12359:10:8","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"12356:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12373:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12377:6:8","memberName":"sender","nodeType":"MemberAccess","src":"12373:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12356:27:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","id":2604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12385:31:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""},"value":"LayerZeroMock: invalid caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","typeString":"literal_string \"LayerZeroMock: invalid caller\""}],"id":2598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12348:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12348:69:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2606,"nodeType":"ExpressionStatement","src":"12348:69:8"},{"expression":{"id":2611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2607,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"12463:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12466:13:8","memberName":"payloadLength","nodeType":"MemberAccess","referencedDeclaration":1710,"src":"12463:16:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12482:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12463:20:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2612,"nodeType":"ExpressionStatement","src":"12463:20:8"},{"expression":{"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2613,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"12493:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12496:10:8","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1712,"src":"12493:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12517:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12509:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2616,"name":"address","nodeType":"ElementaryTypeName","src":"12509:7:8","typeDescriptions":{}}},"id":2619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12509:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12493:26:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2621,"nodeType":"ExpressionStatement","src":"12493:26:8"},{"expression":{"id":2629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2622,"name":"sp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"12529:2:8","typeDescriptions":{"typeIdentifier":"t_struct$_StoredPayload_$1715_storage_ptr","typeString":"struct LZEndpointMock.StoredPayload storage pointer"}},"id":2624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12532:11:8","memberName":"payloadHash","nodeType":"MemberAccess","referencedDeclaration":1714,"src":"12529:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":2627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12554:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12546:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12546:7:8","typeDescriptions":{}}},"id":2628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12546:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12529:27:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2630,"nodeType":"ExpressionStatement","src":"12529:27:8"},{"eventCall":{"arguments":[{"id":2632,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"12593:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2633,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"12606:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2631,"name":"UaForceResumeReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1766,"src":"12572:20:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory)"}},"id":2634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12572:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2635,"nodeType":"EmitStatement","src":"12567:45:8"},{"expression":{"arguments":[{"id":2637,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"12713:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2638,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"12726:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2636,"name":"_clearMsgQue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2818,"src":"12700:12:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata)"}},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12700:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2640,"nodeType":"ExpressionStatement","src":"12700:32:8"}]},"functionSelector":"42d65a8d","id":2642,"implemented":true,"kind":"function","modifiers":[],"name":"forceResumeReceive","nameLocation":"12028:18:8","nodeType":"FunctionDefinition","overrides":{"id":2576,"nodeType":"OverrideSpecifier","overrides":[],"src":"12098:8:8"},"parameters":{"id":2575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2572,"mutability":"mutable","name":"_srcChainId","nameLocation":"12054:11:8","nodeType":"VariableDeclaration","scope":2642,"src":"12047:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2571,"name":"uint16","nodeType":"ElementaryTypeName","src":"12047:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2574,"mutability":"mutable","name":"_path","nameLocation":"12082:5:8","nodeType":"VariableDeclaration","scope":2642,"src":"12067:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2573,"name":"bytes","nodeType":"ElementaryTypeName","src":"12067:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12046:42:8"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[],"src":"12107:0:8"},"scope":2945,"src":"12019:720:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2658,"nodeType":"Block","src":"12970:70:8","statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":2651,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"12987:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2653,"indexExpression":{"id":2652,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"13001:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12987:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2655,"indexExpression":{"id":2654,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2646,"src":"13014:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12987:39:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13027:6:8","memberName":"length","nodeType":"MemberAccess","src":"12987:46:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2650,"id":2657,"nodeType":"Return","src":"12980:53:8"}]},"functionSelector":"7f6df8e6","id":2659,"implemented":true,"kind":"function","modifiers":[],"name":"getLengthOfQueue","nameLocation":"12876:16:8","nodeType":"FunctionDefinition","parameters":{"id":2647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2644,"mutability":"mutable","name":"_srcChainId","nameLocation":"12900:11:8","nodeType":"VariableDeclaration","scope":2659,"src":"12893:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2643,"name":"uint16","nodeType":"ElementaryTypeName","src":"12893:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2646,"mutability":"mutable","name":"_srcAddress","nameLocation":"12928:11:8","nodeType":"VariableDeclaration","scope":2659,"src":"12913:26:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2645,"name":"bytes","nodeType":"ElementaryTypeName","src":"12913:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12892:48:8"},"returnParameters":{"id":2650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2659,"src":"12964:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2648,"name":"uint","nodeType":"ElementaryTypeName","src":"12964:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12963:6:8"},"scope":2945,"src":"12867:173:8","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2666,"nodeType":"Block","src":"13145:38:8","statements":[{"expression":{"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2662,"name":"nextMsgBlocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"13155:14:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13172:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13155:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2665,"nodeType":"ExpressionStatement","src":"13155:21:8"}]},"functionSelector":"d23104f1","id":2667,"implemented":true,"kind":"function","modifiers":[],"name":"blockNextMsg","nameLocation":"13121:12:8","nodeType":"FunctionDefinition","parameters":{"id":2660,"nodeType":"ParameterList","parameters":[],"src":"13133:2:8"},"returnParameters":{"id":2661,"nodeType":"ParameterList","parameters":[],"src":"13145:0:8"},"scope":2945,"src":"13112:71:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2680,"nodeType":"Block","src":"13267:60:8","statements":[{"expression":{"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2674,"name":"lzEndpointLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"13277:16:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":2676,"indexExpression":{"id":2675,"name":"destAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"13294:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13277:26:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2677,"name":"lzEndpointAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2671,"src":"13306:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13277:43:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2679,"nodeType":"ExpressionStatement","src":"13277:43:8"}]},"functionSelector":"c08f15a1","id":2681,"implemented":true,"kind":"function","modifiers":[],"name":"setDestLzEndpoint","nameLocation":"13198:17:8","nodeType":"FunctionDefinition","parameters":{"id":2672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2669,"mutability":"mutable","name":"destAddr","nameLocation":"13224:8:8","nodeType":"VariableDeclaration","scope":2681,"src":"13216:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2668,"name":"address","nodeType":"ElementaryTypeName","src":"13216:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2671,"mutability":"mutable","name":"lzEndpointAddr","nameLocation":"13242:14:8","nodeType":"VariableDeclaration","scope":2681,"src":"13234:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2670,"name":"address","nodeType":"ElementaryTypeName","src":"13234:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13215:42:8"},"returnParameters":{"id":2673,"nodeType":"ParameterList","parameters":[],"src":"13267:0:8"},"scope":2945,"src":"13189:138:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2724,"nodeType":"Block","src":"13527:284:8","statements":[{"expression":{"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2694,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"13537:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13554:13:8","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1699,"src":"13537:30:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2697,"name":"_dstPriceRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2683,"src":"13570:14:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13537:47:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2699,"nodeType":"ExpressionStatement","src":"13537:47:8"},{"expression":{"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2700,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"13594:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13611:16:8","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1701,"src":"13594:33:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2703,"name":"_dstGasPriceInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"13630:17:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13594:53:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2705,"nodeType":"ExpressionStatement","src":"13594:53:8"},{"expression":{"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2706,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"13657:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13674:15:8","memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1703,"src":"13657:32:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2709,"name":"_dstNativeAmtCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2687,"src":"13692:16:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13657:51:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2711,"nodeType":"ExpressionStatement","src":"13657:51:8"},{"expression":{"id":2716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2712,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"13718:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13735:7:8","memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1705,"src":"13718:24:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2715,"name":"_baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2689,"src":"13745:8:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13718:35:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2717,"nodeType":"ExpressionStatement","src":"13718:35:8"},{"expression":{"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2718,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"13763:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13780:10:8","memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1707,"src":"13763:27:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2721,"name":"_gasPerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2691,"src":"13793:11:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13763:41:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2723,"nodeType":"ExpressionStatement","src":"13763:41:8"}]},"functionSelector":"2c365e25","id":2725,"implemented":true,"kind":"function","modifiers":[],"name":"setRelayerPrice","nameLocation":"13342:15:8","nodeType":"FunctionDefinition","parameters":{"id":2692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2683,"mutability":"mutable","name":"_dstPriceRatio","nameLocation":"13375:14:8","nodeType":"VariableDeclaration","scope":2725,"src":"13367:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2682,"name":"uint128","nodeType":"ElementaryTypeName","src":"13367:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2685,"mutability":"mutable","name":"_dstGasPriceInWei","nameLocation":"13407:17:8","nodeType":"VariableDeclaration","scope":2725,"src":"13399:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2684,"name":"uint128","nodeType":"ElementaryTypeName","src":"13399:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2687,"mutability":"mutable","name":"_dstNativeAmtCap","nameLocation":"13442:16:8","nodeType":"VariableDeclaration","scope":2725,"src":"13434:24:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2686,"name":"uint128","nodeType":"ElementaryTypeName","src":"13434:7:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2689,"mutability":"mutable","name":"_baseGas","nameLocation":"13475:8:8","nodeType":"VariableDeclaration","scope":2725,"src":"13468:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2688,"name":"uint64","nodeType":"ElementaryTypeName","src":"13468:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2691,"mutability":"mutable","name":"_gasPerByte","nameLocation":"13500:11:8","nodeType":"VariableDeclaration","scope":2725,"src":"13493:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2690,"name":"uint64","nodeType":"ElementaryTypeName","src":"13493:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13357:160:8"},"returnParameters":{"id":2693,"nodeType":"ParameterList","parameters":[],"src":"13527:0:8"},"scope":2945,"src":"13333:478:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2744,"nodeType":"Block","src":"13880:99:8","statements":[{"expression":{"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2732,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"13890:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13908:6:8","memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"13890:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2735,"name":"_zroFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2727,"src":"13917:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13890:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2737,"nodeType":"ExpressionStatement","src":"13890:34:8"},{"expression":{"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2738,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"13934:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13952:8:8","memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1696,"src":"13934:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2741,"name":"_nativeBP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"13963:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13934:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2743,"nodeType":"ExpressionStatement","src":"13934:38:8"}]},"functionSelector":"240de277","id":2745,"implemented":true,"kind":"function","modifiers":[],"name":"setProtocolFee","nameLocation":"13826:14:8","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"_zroFee","nameLocation":"13846:7:8","nodeType":"VariableDeclaration","scope":2745,"src":"13841:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2726,"name":"uint","nodeType":"ElementaryTypeName","src":"13841:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"_nativeBP","nameLocation":"13860:9:8","nodeType":"VariableDeclaration","scope":2745,"src":"13855:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint","nodeType":"ElementaryTypeName","src":"13855:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13840:30:8"},"returnParameters":{"id":2731,"nodeType":"ParameterList","parameters":[],"src":"13880:0:8"},"scope":2945,"src":"13817:162:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2754,"nodeType":"Block","src":"14033:39:8","statements":[{"expression":{"id":2752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2750,"name":"oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"14043:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2751,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2747,"src":"14055:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14043:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2753,"nodeType":"ExpressionStatement","src":"14043:22:8"}]},"functionSelector":"b6d9ef60","id":2755,"implemented":true,"kind":"function","modifiers":[],"name":"setOracleFee","nameLocation":"13994:12:8","nodeType":"FunctionDefinition","parameters":{"id":2748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2747,"mutability":"mutable","name":"_oracleFee","nameLocation":"14012:10:8","nodeType":"VariableDeclaration","scope":2755,"src":"14007:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2746,"name":"uint","nodeType":"ElementaryTypeName","src":"14007:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14006:17:8"},"returnParameters":{"id":2749,"nodeType":"ParameterList","parameters":[],"src":"14033:0:8"},"scope":2945,"src":"13985:87:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2764,"nodeType":"Block","src":"14149:54:8","statements":[{"expression":{"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2760,"name":"defaultAdapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"14159:20:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2761,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"14182:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14159:37:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":2763,"nodeType":"ExpressionStatement","src":"14159:37:8"}]},"functionSelector":"fbba623b","id":2765,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdapterParams","nameLocation":"14087:23:8","nodeType":"FunctionDefinition","parameters":{"id":2758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2757,"mutability":"mutable","name":"_adapterParams","nameLocation":"14124:14:8","nodeType":"VariableDeclaration","scope":2765,"src":"14111:27:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2756,"name":"bytes","nodeType":"ElementaryTypeName","src":"14111:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14110:29:8"},"returnParameters":{"id":2759,"nodeType":"ParameterList","parameters":[],"src":"14149:0:8"},"scope":2945,"src":"14078:125:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2817,"nodeType":"Block","src":"14461:425:8","statements":[{"assignments":[2776],"declarations":[{"constant":false,"id":2776,"mutability":"mutable","name":"msgs","nameLocation":"14495:4:8","nodeType":"VariableDeclaration","scope":2817,"src":"14471:28:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"},"typeName":{"baseType":{"id":2774,"nodeType":"UserDefinedTypeName","pathNode":{"id":2773,"name":"QueuedPayload","nameLocations":["14471:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1722,"src":"14471:13:8"},"referencedDeclaration":1722,"src":"14471:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"id":2775,"nodeType":"ArrayTypeName","src":"14471:15:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload[]"}},"visibility":"internal"}],"id":2782,"initialValue":{"baseExpression":{"baseExpression":{"id":2777,"name":"msgsToDeliver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"14502:13:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$_$","typeString":"mapping(uint16 => mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref))"}},"id":2779,"indexExpression":{"id":2778,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"14516:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14502:26:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_$","typeString":"mapping(bytes memory => struct LZEndpointMock.QueuedPayload storage ref[] storage ref)"}},"id":2781,"indexExpression":{"id":2780,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14529:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14502:33:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14471:64:8"},{"body":{"id":2815,"nodeType":"Block","src":"14665:215:8","statements":[{"assignments":[2789],"declarations":[{"constant":false,"id":2789,"mutability":"mutable","name":"payload","nameLocation":"14700:7:8","nodeType":"VariableDeclaration","scope":2815,"src":"14679:28:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload"},"typeName":{"id":2788,"nodeType":"UserDefinedTypeName","pathNode":{"id":2787,"name":"QueuedPayload","nameLocations":["14679:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1722,"src":"14679:13:8"},"referencedDeclaration":1722,"src":"14679:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload"}},"visibility":"internal"}],"id":2796,"initialValue":{"baseExpression":{"id":2790,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"14710:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2795,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2791,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"14715:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14720:6:8","memberName":"length","nodeType":"MemberAccess","src":"14715:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14729:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14715:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14710:21:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_storage","typeString":"struct LZEndpointMock.QueuedPayload storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14679:52:8"},{"expression":{"arguments":[{"id":2802,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"14794:11:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2803,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14807:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":2804,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2789,"src":"14814:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14822:5:8","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":1719,"src":"14814:13:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":2806,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2789,"src":"14829:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14837:7:8","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":1721,"src":"14829:15:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":2798,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2789,"src":"14764:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_QueuedPayload_$1722_memory_ptr","typeString":"struct LZEndpointMock.QueuedPayload memory"}},"id":2799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:10:8","memberName":"dstAddress","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"14764:18:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2797,"name":"ILayerZeroReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1371,"src":"14745:18:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILayerZeroReceiver_$1371_$","typeString":"type(contract ILayerZeroReceiver)"}},"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14745:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroReceiver_$1371","typeString":"contract ILayerZeroReceiver"}},"id":2801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14784:9:8","memberName":"lzReceive","nodeType":"MemberAccess","referencedDeclaration":1370,"src":"14745:48:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory) external"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14745:100:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2809,"nodeType":"ExpressionStatement","src":"14745:100:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2810,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"14859:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14864:3:8","memberName":"pop","nodeType":"MemberAccess","src":"14859:8:8","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr_$","typeString":"function (struct LZEndpointMock.QueuedPayload storage ref[] storage pointer)"}},"id":2813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2814,"nodeType":"ExpressionStatement","src":"14859:10:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2783,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"14648:4:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_QueuedPayload_$1722_storage_$dyn_storage_ptr","typeString":"struct LZEndpointMock.QueuedPayload storage ref[] storage pointer"}},"id":2784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14653:6:8","memberName":"length","nodeType":"MemberAccess","src":"14648:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14662:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14648:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2816,"nodeType":"WhileStatement","src":"14641:239:8"}]},"id":2818,"implemented":true,"kind":"function","modifiers":[],"name":"_clearMsgQue","nameLocation":"14397:12:8","nodeType":"FunctionDefinition","parameters":{"id":2770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2767,"mutability":"mutable","name":"_srcChainId","nameLocation":"14417:11:8","nodeType":"VariableDeclaration","scope":2818,"src":"14410:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2766,"name":"uint16","nodeType":"ElementaryTypeName","src":"14410:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2769,"mutability":"mutable","name":"_path","nameLocation":"14445:5:8","nodeType":"VariableDeclaration","scope":2818,"src":"14430:20:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2768,"name":"bytes","nodeType":"ElementaryTypeName","src":"14430:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14409:42:8"},"returnParameters":{"id":2771,"nodeType":"ParameterList","parameters":[],"src":"14461:0:8"},"scope":2945,"src":"14388:498:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2847,"nodeType":"Block","src":"15028:190:8","statements":[{"condition":{"id":2829,"name":"_payInZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"15042:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2845,"nodeType":"Block","src":"15115:97:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2834,"name":"_relayerFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"15138:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2835,"name":"_oracleFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"15152:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15138:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2837,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15137:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2838,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"15166:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15184:8:8","memberName":"nativeBP","nodeType":"MemberAccess","referencedDeclaration":1696,"src":"15166:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15137:55:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2841,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15136:57:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":2842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15196:5:8","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"15136:65:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2828,"id":2844,"nodeType":"Return","src":"15129:72:8"}]},"id":2846,"nodeType":"IfStatement","src":"15038:174:8","trueBody":{"id":2833,"nodeType":"Block","src":"15053:56:8","statements":[{"expression":{"expression":{"id":2830,"name":"protocolFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"15074:17:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolFeeConfig_$1697_storage","typeString":"struct LZEndpointMock.ProtocolFeeConfig storage ref"}},"id":2831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15092:6:8","memberName":"zroFee","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"15074:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2828,"id":2832,"nodeType":"Return","src":"15067:31:8"}]}}]},"id":2848,"implemented":true,"kind":"function","modifiers":[],"name":"_getProtocolFees","nameLocation":"14901:16:8","nodeType":"FunctionDefinition","parameters":{"id":2825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2820,"mutability":"mutable","name":"_payInZro","nameLocation":"14932:9:8","nodeType":"VariableDeclaration","scope":2848,"src":"14927:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2819,"name":"bool","nodeType":"ElementaryTypeName","src":"14927:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2822,"mutability":"mutable","name":"_relayerFee","nameLocation":"14956:11:8","nodeType":"VariableDeclaration","scope":2848,"src":"14951:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2821,"name":"uint","nodeType":"ElementaryTypeName","src":"14951:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2824,"mutability":"mutable","name":"_oracleFee","nameLocation":"14982:10:8","nodeType":"VariableDeclaration","scope":2848,"src":"14977:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2823,"name":"uint","nodeType":"ElementaryTypeName","src":"14977:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14917:81:8"},"returnParameters":{"id":2828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2848,"src":"15022:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2826,"name":"uint","nodeType":"ElementaryTypeName","src":"15022:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15021:6:8"},"scope":2945,"src":"14892:326:8","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2943,"nodeType":"Block","src":"15462:1084:8","statements":[{"assignments":[2864,2866,2868,null],"declarations":[{"constant":false,"id":2864,"mutability":"mutable","name":"txType","nameLocation":"15480:6:8","nodeType":"VariableDeclaration","scope":2943,"src":"15473:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2863,"name":"uint16","nodeType":"ElementaryTypeName","src":"15473:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"extraGas","nameLocation":"15493:8:8","nodeType":"VariableDeclaration","scope":2943,"src":"15488:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2865,"name":"uint","nodeType":"ElementaryTypeName","src":"15488:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2868,"mutability":"mutable","name":"dstNativeAmt","nameLocation":"15508:12:8","nodeType":"VariableDeclaration","scope":2943,"src":"15503:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2867,"name":"uint","nodeType":"ElementaryTypeName","src":"15503:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":2873,"initialValue":{"arguments":[{"id":2871,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"15552:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2869,"name":"LzLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"15526:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LzLib_$1627_$","typeString":"type(library LzLib)"}},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15532:19:8","memberName":"decodeAdapterParams","nodeType":"MemberAccess","referencedDeclaration":1588,"src":"15526:25:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"function (bytes memory) pure returns (uint16,uint256,uint256,address payable)"}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15526:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint16,uint256,uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"15472:95:8"},{"assignments":[2875],"declarations":[{"constant":false,"id":2875,"mutability":"mutable","name":"totalRemoteToken","nameLocation":"15582:16:8","nodeType":"VariableDeclaration","scope":2943,"src":"15577:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2874,"name":"uint","nodeType":"ElementaryTypeName","src":"15577:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2876,"nodeType":"VariableDeclarationStatement","src":"15577:21:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2877,"name":"txType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"15659:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":2878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15669:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15659:11:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2893,"nodeType":"IfStatement","src":"15655:187:8","trueBody":{"id":2892,"nodeType":"Block","src":"15672:170:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2881,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"15694:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15711:15:8","memberName":"dstNativeAmtCap","nodeType":"MemberAccess","referencedDeclaration":1703,"src":"15694:32:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2883,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"15730:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15694:48:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f206c6172676520","id":2885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15744:40:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""},"value":"LayerZeroMock: dstNativeAmt too large "}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","typeString":"literal_string \"LayerZeroMock: dstNativeAmt too large \""}],"id":2880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15686:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15686:99:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2887,"nodeType":"ExpressionStatement","src":"15686:99:8"},{"expression":{"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2888,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2875,"src":"15799:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2889,"name":"dstNativeAmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"15819:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15799:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2891,"nodeType":"ExpressionStatement","src":"15799:32:8"}]}},{"assignments":[2895],"declarations":[{"constant":false,"id":2895,"mutability":"mutable","name":"remoteGasTotal","nameLocation":"15924:14:8","nodeType":"VariableDeclaration","scope":2943,"src":"15919:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2894,"name":"uint","nodeType":"ElementaryTypeName","src":"15919:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2904,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2896,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"15941:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15958:16:8","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1701,"src":"15941:33:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2898,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"15978:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15995:7:8","memberName":"baseGas","nodeType":"MemberAccess","referencedDeclaration":1705,"src":"15978:24:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2900,"name":"extraGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2866,"src":"16005:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15978:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2902,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15977:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15941:73:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15919:95:8"},{"expression":{"id":2907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2905,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2875,"src":"16024:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":2906,"name":"remoteGasTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"16044:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16024:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2908,"nodeType":"ExpressionStatement","src":"16024:34:8"},{"assignments":[2910],"declarations":[{"constant":false,"id":2910,"mutability":"mutable","name":"basePrice","nameLocation":"16191:9:8","nodeType":"VariableDeclaration","scope":2943,"src":"16186:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2909,"name":"uint","nodeType":"ElementaryTypeName","src":"16186:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2920,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2911,"name":"totalRemoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2875,"src":"16204:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2912,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16223:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16240:13:8","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1699,"src":"16223:30:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16204:49:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2915,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16203:51:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16257:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16261:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16257:6:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16203:60:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16186:77:8"},{"assignments":[2922],"declarations":[{"constant":false,"id":2922,"mutability":"mutable","name":"pricePerByte","nameLocation":"16360:12:8","nodeType":"VariableDeclaration","scope":2943,"src":"16355:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2921,"name":"uint","nodeType":"ElementaryTypeName","src":"16355:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2936,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":2927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2923,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16376:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16393:16:8","memberName":"dstGasPriceInWei","nodeType":"MemberAccess","referencedDeclaration":1701,"src":"16376:33:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2925,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16412:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16429:10:8","memberName":"gasPerByte","nodeType":"MemberAccess","referencedDeclaration":1707,"src":"16412:27:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16376:63:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2928,"name":"relayerFeeConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"16442:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerFeeConfig_$1708_storage","typeString":"struct LZEndpointMock.RelayerFeeConfig storage ref"}},"id":2929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:13:8","memberName":"dstPriceRatio","nodeType":"MemberAccess","referencedDeclaration":1699,"src":"16442:30:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"16376:96:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":2931,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16375:98:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"id":2934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16476:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3130","id":2933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16480:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"16476:6:8","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"}},"src":"16375:107:8","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16355:127:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2937,"name":"basePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"16500:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2938,"name":"_payloadSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"16512:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2939,"name":"pricePerByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2922,"src":"16527:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16512:27:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16500:39:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2862,"id":2942,"nodeType":"Return","src":"16493:46:8"}]},"id":2944,"implemented":true,"kind":"function","modifiers":[],"name":"_getRelayerFee","nameLocation":"15233:14:8","nodeType":"FunctionDefinition","parameters":{"id":2859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2944,"src":"15257:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2849,"name":"uint16","nodeType":"ElementaryTypeName","src":"15257:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2944,"src":"15291:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2851,"name":"uint16","nodeType":"ElementaryTypeName","src":"15291:6:8","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2944,"src":"15332:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2853,"name":"address","nodeType":"ElementaryTypeName","src":"15332:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2856,"mutability":"mutable","name":"_payloadSize","nameLocation":"15377:12:8","nodeType":"VariableDeclaration","scope":2944,"src":"15372:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2855,"name":"uint","nodeType":"ElementaryTypeName","src":"15372:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2858,"mutability":"mutable","name":"_adapterParams","nameLocation":"15412:14:8","nodeType":"VariableDeclaration","scope":2944,"src":"15399:27:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2857,"name":"bytes","nodeType":"ElementaryTypeName","src":"15399:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15247:185:8"},"returnParameters":{"id":2862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2944,"src":"15456:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2860,"name":"uint","nodeType":"ElementaryTypeName","src":"15456:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15455:6:8"},"scope":2945,"src":"15224:1322:8","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2946,"src":"812:15736:8","usedErrors":[],"usedEvents":[1766,1776,1790,1796]}],"src":"38:16511:8"},"id":8},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol","exportedSymbols":{"BaseOFTV2":[3128],"BytesLib":[332],"Context":[7050],"ERC165":[7303],"ExcessivelySafeCall":[429],"ICommonOFT":[4148],"IERC165":[7315],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"IOFTReceiverV2":[4167],"IOFTV2":[4207],"LzApp":[971],"NonblockingLzApp":[1212],"OFTCoreV2":[4083],"Ownable":[5488]},"id":3129,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2947,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:9"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol","file":"./OFTCoreV2.sol","id":2948,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":4084,"src":"58:25:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol","file":"./interfaces/IOFTV2.sol","id":2949,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":4208,"src":"84:33:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":2950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":7304,"src":"118:64:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2951,"name":"OFTCoreV2","nameLocations":["215:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":4083,"src":"215:9:9"},"id":2952,"nodeType":"InheritanceSpecifier","src":"215:9:9"},{"baseName":{"id":2953,"name":"ERC165","nameLocations":["226:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":7303,"src":"226:6:9"},"id":2954,"nodeType":"InheritanceSpecifier","src":"226:6:9"},{"baseName":{"id":2955,"name":"IOFTV2","nameLocations":["234:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":4207,"src":"234:6:9"},"id":2956,"nodeType":"InheritanceSpecifier","src":"234:6:9"}],"canonicalName":"BaseOFTV2","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":3128,"linearizedBaseContracts":[3128,4207,4148,7303,7315,4083,1212,971,1402,1371,5488,7050],"name":"BaseOFTV2","nameLocation":"202:9:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":2967,"nodeType":"Block","src":"343:2:9","statements":[]},"id":2968,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2963,"name":"_sharedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"313:15:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2964,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"330:11:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2965,"kind":"baseConstructorSpecifier","modifierName":{"id":2962,"name":"OFTCoreV2","nameLocations":["303:9:9"],"nodeType":"IdentifierPath","referencedDeclaration":4083,"src":"303:9:9"},"nodeType":"ModifierInvocation","src":"303:39:9"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2958,"mutability":"mutable","name":"_sharedDecimals","nameLocation":"265:15:9","nodeType":"VariableDeclaration","scope":2968,"src":"259:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2957,"name":"uint8","nodeType":"ElementaryTypeName","src":"259:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2960,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"290:11:9","nodeType":"VariableDeclaration","scope":2968,"src":"282:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2959,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:44:9"},"returnParameters":{"id":2966,"nodeType":"ParameterList","parameters":[],"src":"343:0:9"},"scope":3128,"src":"247:98:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4188],"body":{"id":2996,"nodeType":"Block","src":"732:148:9","statements":[{"expression":{"arguments":[{"id":2984,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2970,"src":"748:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2985,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"755:11:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2986,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2974,"src":"768:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2987,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"780:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2988,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2979,"src":"789:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"801:13:9","memberName":"refundAddress","nodeType":"MemberAccess","referencedDeclaration":4091,"src":"789:25:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":2990,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2979,"src":"816:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"828:17:9","memberName":"zroPaymentAddress","nodeType":"MemberAccess","referencedDeclaration":4093,"src":"816:29:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2992,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2979,"src":"847:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"859:13:9","memberName":"adapterParams","nodeType":"MemberAccess","referencedDeclaration":4095,"src":"847:25:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":2983,"name":"_send","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3483,"src":"742:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_bytes32_$_t_uint256_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint16,bytes32,uint256,address payable,address,bytes memory) returns (uint256)"}},"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"742:131:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2995,"nodeType":"ExpressionStatement","src":"742:131:9"}]},"functionSelector":"695ef6bf","id":2997,"implemented":true,"kind":"function","modifiers":[],"name":"sendFrom","nameLocation":"541:8:9","nodeType":"FunctionDefinition","overrides":{"id":2981,"nodeType":"OverrideSpecifier","overrides":[],"src":"723:8:9"},"parameters":{"id":2980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2970,"mutability":"mutable","name":"_from","nameLocation":"567:5:9","nodeType":"VariableDeclaration","scope":2997,"src":"559:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2969,"name":"address","nodeType":"ElementaryTypeName","src":"559:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2972,"mutability":"mutable","name":"_dstChainId","nameLocation":"589:11:9","nodeType":"VariableDeclaration","scope":2997,"src":"582:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2971,"name":"uint16","nodeType":"ElementaryTypeName","src":"582:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":2974,"mutability":"mutable","name":"_toAddress","nameLocation":"618:10:9","nodeType":"VariableDeclaration","scope":2997,"src":"610:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"610:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2976,"mutability":"mutable","name":"_amount","nameLocation":"643:7:9","nodeType":"VariableDeclaration","scope":2997,"src":"638:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2975,"name":"uint","nodeType":"ElementaryTypeName","src":"638:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2979,"mutability":"mutable","name":"_callParams","nameLocation":"682:11:9","nodeType":"VariableDeclaration","scope":2997,"src":"660:33:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams"},"typeName":{"id":2978,"nodeType":"UserDefinedTypeName","pathNode":{"id":2977,"name":"LzCallParams","nameLocations":["660:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":4096,"src":"660:12:9"},"referencedDeclaration":4096,"src":"660:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_storage_ptr","typeString":"struct ICommonOFT.LzCallParams"}},"visibility":"internal"}],"src":"549:150:9"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[],"src":"732:0:9"},"scope":3128,"src":"532:348:9","stateMutability":"payable","virtual":true,"visibility":"public"},{"baseFunctions":[4206],"body":{"id":3031,"nodeType":"Block","src":"1153:299:9","statements":[{"expression":{"arguments":[{"id":3017,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"1189:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3018,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"1208:11:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3019,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3003,"src":"1233:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3020,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"1257:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3021,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3007,"src":"1278:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":3022,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3009,"src":"1300:14:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":3023,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"1328:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1340:13:9","memberName":"refundAddress","nodeType":"MemberAccess","referencedDeclaration":4091,"src":"1328:25:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":3025,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"1367:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1379:17:9","memberName":"zroPaymentAddress","nodeType":"MemberAccess","referencedDeclaration":4093,"src":"1367:29:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3027,"name":"_callParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3012,"src":"1410:11:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}},"id":3028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1422:13:9","memberName":"adapterParams","nodeType":"MemberAccess","referencedDeclaration":4095,"src":"1410:25:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3016,"name":"_sendAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"1163:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint64_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint16,bytes32,uint256,bytes memory,uint64,address payable,address,bytes memory) returns (uint256)"}},"id":3029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1163:282:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3030,"nodeType":"ExpressionStatement","src":"1163:282:9"}]},"functionSelector":"76203b48","id":3032,"implemented":true,"kind":"function","modifiers":[],"name":"sendAndCall","nameLocation":"895:11:9","nodeType":"FunctionDefinition","overrides":{"id":3014,"nodeType":"OverrideSpecifier","overrides":[],"src":"1144:8:9"},"parameters":{"id":3013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"mutability":"mutable","name":"_from","nameLocation":"924:5:9","nodeType":"VariableDeclaration","scope":3032,"src":"916:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2998,"name":"address","nodeType":"ElementaryTypeName","src":"916:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3001,"mutability":"mutable","name":"_dstChainId","nameLocation":"946:11:9","nodeType":"VariableDeclaration","scope":3032,"src":"939:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3000,"name":"uint16","nodeType":"ElementaryTypeName","src":"939:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3003,"mutability":"mutable","name":"_toAddress","nameLocation":"975:10:9","nodeType":"VariableDeclaration","scope":3032,"src":"967:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"967:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3005,"mutability":"mutable","name":"_amount","nameLocation":"1000:7:9","nodeType":"VariableDeclaration","scope":3032,"src":"995:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3004,"name":"uint","nodeType":"ElementaryTypeName","src":"995:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3007,"mutability":"mutable","name":"_payload","nameLocation":"1032:8:9","nodeType":"VariableDeclaration","scope":3032,"src":"1017:23:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3006,"name":"bytes","nodeType":"ElementaryTypeName","src":"1017:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3009,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"1057:14:9","nodeType":"VariableDeclaration","scope":3032,"src":"1050:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3008,"name":"uint64","nodeType":"ElementaryTypeName","src":"1050:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3012,"mutability":"mutable","name":"_callParams","nameLocation":"1103:11:9","nodeType":"VariableDeclaration","scope":3032,"src":"1081:33:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams"},"typeName":{"id":3011,"nodeType":"UserDefinedTypeName","pathNode":{"id":3010,"name":"LzCallParams","nameLocations":["1081:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":4096,"src":"1081:12:9"},"referencedDeclaration":4096,"src":"1081:12:9","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_storage_ptr","typeString":"struct ICommonOFT.LzCallParams"}},"visibility":"internal"}],"src":"906:214:9"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[],"src":"1153:0:9"},"scope":3128,"src":"886:566:9","stateMutability":"payable","virtual":true,"visibility":"public"},{"baseFunctions":[7302,7314],"body":{"id":3054,"nodeType":"Block","src":"1752:103:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3042,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"1769:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3044,"name":"IOFTV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"1789:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOFTV2_$4207_$","typeString":"type(contract IOFTV2)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOFTV2_$4207_$","typeString":"type(contract IOFTV2)"}],"id":3043,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1784:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOFTV2_$4207","typeString":"type(contract IOFTV2)"}},"id":3046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1797:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"1784:24:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1769:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3050,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3034,"src":"1836:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3048,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1812:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseOFTV2_$3128_$","typeString":"type(contract super BaseOFTV2)"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1818:17:9","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7302,"src":"1812:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1812:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1769:79:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3041,"id":3053,"nodeType":"Return","src":"1762:86:9"}]},"functionSelector":"01ffc9a7","id":3055,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1653:17:9","nodeType":"FunctionDefinition","overrides":{"id":3038,"nodeType":"OverrideSpecifier","overrides":[{"id":3036,"name":"ERC165","nameLocations":["1720:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":7303,"src":"1720:6:9"},{"id":3037,"name":"IERC165","nameLocations":["1728:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":7315,"src":"1728:7:9"}],"src":"1711:25:9"},"parameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3034,"mutability":"mutable","name":"interfaceId","nameLocation":"1678:11:9","nodeType":"VariableDeclaration","scope":3055,"src":"1671:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3033,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1671:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1670:20:9"},"returnParameters":{"id":3041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3055,"src":"1746:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3039,"name":"bool","nodeType":"ElementaryTypeName","src":"1746:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1745:6:9"},"scope":3128,"src":"1644:211:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4114],"body":{"id":3081,"nodeType":"Block","src":"2098:99:9","statements":[{"expression":{"arguments":[{"id":3074,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3057,"src":"2132:11:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3075,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"2145:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3076,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3061,"src":"2157:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3077,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3063,"src":"2166:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3078,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"2175:14:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3073,"name":"_estimateSendFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"2115:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_bytes32_$_t_uint256_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,bytes32,uint256,bool,bytes memory) view returns (uint256,uint256)"}},"id":3079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2115:75:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3072,"id":3080,"nodeType":"Return","src":"2108:82:9"}]},"functionSelector":"365260b4","id":3082,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendFee","nameLocation":"1870:15:9","nodeType":"FunctionDefinition","overrides":{"id":3067,"nodeType":"OverrideSpecifier","overrides":[],"src":"2051:8:9"},"parameters":{"id":3066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3057,"mutability":"mutable","name":"_dstChainId","nameLocation":"1902:11:9","nodeType":"VariableDeclaration","scope":3082,"src":"1895:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3056,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3059,"mutability":"mutable","name":"_toAddress","nameLocation":"1931:10:9","nodeType":"VariableDeclaration","scope":3082,"src":"1923:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3061,"mutability":"mutable","name":"_amount","nameLocation":"1956:7:9","nodeType":"VariableDeclaration","scope":3082,"src":"1951:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3060,"name":"uint","nodeType":"ElementaryTypeName","src":"1951:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3063,"mutability":"mutable","name":"_useZro","nameLocation":"1978:7:9","nodeType":"VariableDeclaration","scope":3082,"src":"1973:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3062,"name":"bool","nodeType":"ElementaryTypeName","src":"1973:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3065,"mutability":"mutable","name":"_adapterParams","nameLocation":"2010:14:9","nodeType":"VariableDeclaration","scope":3082,"src":"1995:29:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3064,"name":"bytes","nodeType":"ElementaryTypeName","src":"1995:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1885:145:9"},"returnParameters":{"id":3072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3069,"mutability":"mutable","name":"nativeFee","nameLocation":"2074:9:9","nodeType":"VariableDeclaration","scope":3082,"src":"2069:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3068,"name":"uint","nodeType":"ElementaryTypeName","src":"2069:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3071,"mutability":"mutable","name":"zroFee","nameLocation":"2090:6:9","nodeType":"VariableDeclaration","scope":3082,"src":"2085:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3070,"name":"uint","nodeType":"ElementaryTypeName","src":"2085:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2068:29:9"},"scope":3128,"src":"1861:336:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4135],"body":{"id":3114,"nodeType":"Block","src":"2511:132:9","statements":[{"expression":{"arguments":[{"id":3105,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3084,"src":"2552:11:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3106,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3086,"src":"2565:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3107,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3088,"src":"2577:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3108,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3090,"src":"2586:8:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":3109,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"2596:14:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3110,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3094,"src":"2612:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3111,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3096,"src":"2621:14:9","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":3104,"name":"_estimateSendAndCallFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3358,"src":"2528:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,bytes32,uint256,bytes memory,uint64,bool,bytes memory) view returns (uint256,uint256)"}},"id":3112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2528:108:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3103,"id":3113,"nodeType":"Return","src":"2521:115:9"}]},"functionSelector":"a4c51df5","id":3115,"implemented":true,"kind":"function","modifiers":[],"name":"estimateSendAndCallFee","nameLocation":"2212:22:9","nodeType":"FunctionDefinition","overrides":{"id":3098,"nodeType":"OverrideSpecifier","overrides":[],"src":"2464:8:9"},"parameters":{"id":3097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3084,"mutability":"mutable","name":"_dstChainId","nameLocation":"2251:11:9","nodeType":"VariableDeclaration","scope":3115,"src":"2244:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3083,"name":"uint16","nodeType":"ElementaryTypeName","src":"2244:6:9","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3086,"mutability":"mutable","name":"_toAddress","nameLocation":"2280:10:9","nodeType":"VariableDeclaration","scope":3115,"src":"2272:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2272:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3088,"mutability":"mutable","name":"_amount","nameLocation":"2305:7:9","nodeType":"VariableDeclaration","scope":3115,"src":"2300:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3087,"name":"uint","nodeType":"ElementaryTypeName","src":"2300:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3090,"mutability":"mutable","name":"_payload","nameLocation":"2337:8:9","nodeType":"VariableDeclaration","scope":3115,"src":"2322:23:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3089,"name":"bytes","nodeType":"ElementaryTypeName","src":"2322:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3092,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"2362:14:9","nodeType":"VariableDeclaration","scope":3115,"src":"2355:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3091,"name":"uint64","nodeType":"ElementaryTypeName","src":"2355:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3094,"mutability":"mutable","name":"_useZro","nameLocation":"2391:7:9","nodeType":"VariableDeclaration","scope":3115,"src":"2386:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3093,"name":"bool","nodeType":"ElementaryTypeName","src":"2386:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3096,"mutability":"mutable","name":"_adapterParams","nameLocation":"2423:14:9","nodeType":"VariableDeclaration","scope":3115,"src":"2408:29:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3095,"name":"bytes","nodeType":"ElementaryTypeName","src":"2408:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2234:209:9"},"returnParameters":{"id":3103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"mutability":"mutable","name":"nativeFee","nameLocation":"2487:9:9","nodeType":"VariableDeclaration","scope":3115,"src":"2482:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint","nodeType":"ElementaryTypeName","src":"2482:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3102,"mutability":"mutable","name":"zroFee","nameLocation":"2503:6:9","nodeType":"VariableDeclaration","scope":3115,"src":"2498:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3101,"name":"uint","nodeType":"ElementaryTypeName","src":"2498:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2481:29:9"},"scope":3128,"src":"2203:440:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4141],"functionSelector":"9358928b","id":3121,"implemented":false,"kind":"function","modifiers":[],"name":"circulatingSupply","nameLocation":"2658:17:9","nodeType":"FunctionDefinition","overrides":{"id":3117,"nodeType":"OverrideSpecifier","overrides":[],"src":"2698:8:9"},"parameters":{"id":3116,"nodeType":"ParameterList","parameters":[],"src":"2675:2:9"},"returnParameters":{"id":3120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3121,"src":"2716:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3118,"name":"uint","nodeType":"ElementaryTypeName","src":"2716:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2715:6:9"},"scope":3128,"src":"2649:73:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4147],"functionSelector":"fc0c546a","id":3127,"implemented":false,"kind":"function","modifiers":[],"name":"token","nameLocation":"2737:5:9","nodeType":"FunctionDefinition","overrides":{"id":3123,"nodeType":"OverrideSpecifier","overrides":[],"src":"2765:8:9"},"parameters":{"id":3122,"nodeType":"ParameterList","parameters":[],"src":"2742:2:9"},"returnParameters":{"id":3126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3127,"src":"2783:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3124,"name":"address","nodeType":"ElementaryTypeName","src":"2783:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2782:9:9"},"scope":3128,"src":"2728:64:9","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3129,"src":"184:2610:9","usedErrors":[],"usedEvents":[471,477,483,491,1009,1019,3172,3181,3191,3195,5389]}],"src":"33:2762:9"},"id":9},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol","exportedSymbols":{"BytesLib":[332],"Context":[7050],"ExcessivelySafeCall":[429],"ICommonOFT":[4148],"IERC165":[7315],"ILayerZeroEndpoint":[1357],"ILayerZeroReceiver":[1371],"ILayerZeroUserApplicationConfig":[1402],"IOFTReceiverV2":[4167],"LzApp":[971],"NonblockingLzApp":[1212],"OFTCoreV2":[4083],"Ownable":[5488]},"id":4084,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3130,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:10"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol","file":"../../../lzApp/NonblockingLzApp.sol","id":3131,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4084,"sourceUnit":1213,"src":"58:45:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol","file":"../../../libraries/ExcessivelySafeCall.sol","id":3132,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4084,"sourceUnit":430,"src":"104:52:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol","file":"./interfaces/ICommonOFT.sol","id":3133,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4084,"sourceUnit":4149,"src":"157:37:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol","file":"./interfaces/IOFTReceiverV2.sol","id":3134,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4084,"sourceUnit":4168,"src":"195:41:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3135,"name":"NonblockingLzApp","nameLocations":["269:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":1212,"src":"269:16:10"},"id":3136,"nodeType":"InheritanceSpecifier","src":"269:16:10"}],"canonicalName":"OFTCoreV2","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":4083,"linearizedBaseContracts":[4083,1212,971,1402,1371,5488,7050],"name":"OFTCoreV2","nameLocation":"256:9:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3139,"libraryName":{"id":3137,"name":"BytesLib","nameLocations":["298:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":332,"src":"298:8:10"},"nodeType":"UsingForDirective","src":"292:25:10","typeName":{"id":3138,"name":"bytes","nodeType":"ElementaryTypeName","src":"311:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":3142,"libraryName":{"id":3140,"name":"ExcessivelySafeCall","nameLocations":["328:19:10"],"nodeType":"IdentifierPath","referencedDeclaration":429,"src":"328:19:10"},"nodeType":"UsingForDirective","src":"322:38:10","typeName":{"id":3141,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":true,"functionSelector":"44770515","id":3145,"mutability":"constant","name":"NO_EXTRA_GAS","nameLocation":"387:12:10","nodeType":"VariableDeclaration","scope":4083,"src":"366:37:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3143,"name":"uint","nodeType":"ElementaryTypeName","src":"366:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"402:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":true,"functionSelector":"4c42899a","id":3148,"mutability":"constant","name":"PT_SEND","nameLocation":"451:7:10","nodeType":"VariableDeclaration","scope":4083,"src":"429:33:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3146,"name":"uint8","nodeType":"ElementaryTypeName","src":"429:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"461:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":true,"functionSelector":"e6a20ae6","id":3151,"mutability":"constant","name":"PT_SEND_AND_CALL","nameLocation":"490:16:10","nodeType":"VariableDeclaration","scope":4083,"src":"468:42:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3149,"name":"uint8","nodeType":"ElementaryTypeName","src":"468:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":3150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"509:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":false,"functionSelector":"857749b0","id":3153,"mutability":"immutable","name":"sharedDecimals","nameLocation":"540:14:10","nodeType":"VariableDeclaration","scope":4083,"src":"517:37:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3152,"name":"uint8","nodeType":"ElementaryTypeName","src":"517:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"constant":false,"functionSelector":"9bdb9812","id":3161,"mutability":"mutable","name":"creditedPackets","nameLocation":"629:15:10","nodeType":"VariableDeclaration","scope":4083,"src":"561:83:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))"},"typeName":{"id":3160,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3154,"name":"uint16","nodeType":"ElementaryTypeName","src":"569:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"561:60:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$_$","typeString":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3159,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3155,"name":"bytes","nodeType":"ElementaryTypeName","src":"587:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"579:41:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$","typeString":"mapping(bytes => mapping(uint64 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3158,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3156,"name":"uint64","nodeType":"ElementaryTypeName","src":"604:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"596:23:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bool_$","typeString":"mapping(uint64 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3157,"name":"bool","nodeType":"ElementaryTypeName","src":"614:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":3162,"nodeType":"StructuredDocumentation","src":"651:153:10","text":" @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\n `_nonce` is the outbound nonce"},"eventSelector":"d81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a","id":3172,"name":"SendToChain","nameLocation":"815:11:10","nodeType":"EventDefinition","parameters":{"id":3171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3164,"indexed":true,"mutability":"mutable","name":"_dstChainId","nameLocation":"842:11:10","nodeType":"VariableDeclaration","scope":3172,"src":"827:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3163,"name":"uint16","nodeType":"ElementaryTypeName","src":"827:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3166,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"871:5:10","nodeType":"VariableDeclaration","scope":3172,"src":"855:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3165,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3168,"indexed":true,"mutability":"mutable","name":"_toAddress","nameLocation":"894:10:10","nodeType":"VariableDeclaration","scope":3172,"src":"878:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3170,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"911:7:10","nodeType":"VariableDeclaration","scope":3172,"src":"906:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3169,"name":"uint","nodeType":"ElementaryTypeName","src":"906:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"826:93:10"},"src":"809:111:10"},{"anonymous":false,"documentation":{"id":3173,"nodeType":"StructuredDocumentation","src":"926:165:10","text":" @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\n `_nonce` is the inbound nonce."},"eventSelector":"bf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf","id":3181,"name":"ReceiveFromChain","nameLocation":"1102:16:10","nodeType":"EventDefinition","parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3175,"indexed":true,"mutability":"mutable","name":"_srcChainId","nameLocation":"1134:11:10","nodeType":"VariableDeclaration","scope":3181,"src":"1119:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3174,"name":"uint16","nodeType":"ElementaryTypeName","src":"1119:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3177,"indexed":true,"mutability":"mutable","name":"_to","nameLocation":"1163:3:10","nodeType":"VariableDeclaration","scope":3181,"src":"1147:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3176,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3179,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"1173:7:10","nodeType":"VariableDeclaration","scope":3181,"src":"1168:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint","nodeType":"ElementaryTypeName","src":"1168:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1118:63:10"},"src":"1096:86:10"},{"anonymous":false,"eventSelector":"b8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd884","id":3191,"name":"CallOFTReceivedSuccess","nameLocation":"1194:22:10","nodeType":"EventDefinition","parameters":{"id":3190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3183,"indexed":true,"mutability":"mutable","name":"_srcChainId","nameLocation":"1232:11:10","nodeType":"VariableDeclaration","scope":3191,"src":"1217:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3182,"name":"uint16","nodeType":"ElementaryTypeName","src":"1217:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3185,"indexed":false,"mutability":"mutable","name":"_srcAddress","nameLocation":"1251:11:10","nodeType":"VariableDeclaration","scope":3191,"src":"1245:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3184,"name":"bytes","nodeType":"ElementaryTypeName","src":"1245:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3187,"indexed":false,"mutability":"mutable","name":"_nonce","nameLocation":"1271:6:10","nodeType":"VariableDeclaration","scope":3191,"src":"1264:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3186,"name":"uint64","nodeType":"ElementaryTypeName","src":"1264:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3189,"indexed":false,"mutability":"mutable","name":"_hash","nameLocation":"1287:5:10","nodeType":"VariableDeclaration","scope":3191,"src":"1279:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1279:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1216:77:10"},"src":"1188:106:10"},{"anonymous":false,"eventSelector":"9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d","id":3195,"name":"NonContractAddress","nameLocation":"1306:18:10","nodeType":"EventDefinition","parameters":{"id":3194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3193,"indexed":false,"mutability":"mutable","name":"_address","nameLocation":"1333:8:10","nodeType":"VariableDeclaration","scope":3195,"src":"1325:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3192,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:18:10"},"src":"1300:43:10"},{"body":{"id":3209,"nodeType":"Block","src":"1503:49:10","statements":[{"expression":{"id":3207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3205,"name":"sharedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"1513:14:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3206,"name":"_sharedDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"1530:15:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1513:32:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3208,"nodeType":"ExpressionStatement","src":"1513:32:10"}]},"id":3210,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3202,"name":"_lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"1490:11:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3203,"kind":"baseConstructorSpecifier","modifierName":{"id":3201,"name":"NonblockingLzApp","nameLocations":["1473:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":1212,"src":"1473:16:10"},"nodeType":"ModifierInvocation","src":"1473:29:10"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3197,"mutability":"mutable","name":"_sharedDecimals","nameLocation":"1435:15:10","nodeType":"VariableDeclaration","scope":3210,"src":"1429:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3196,"name":"uint8","nodeType":"ElementaryTypeName","src":"1429:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3199,"mutability":"mutable","name":"_lzEndpoint","nameLocation":"1460:11:10","nodeType":"VariableDeclaration","scope":3210,"src":"1452:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1428:44:10"},"returnParameters":{"id":3204,"nodeType":"ParameterList","parameters":[],"src":"1503:0:10"},"scope":4083,"src":"1417:135:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3271,"nodeType":"Block","src":"1999:365:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3230,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"2017:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2017:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3234,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2041:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2033:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3232,"name":"address","nodeType":"ElementaryTypeName","src":"2033:7:10","typeDescriptions":{}}},"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2033:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2017:29:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265","id":3237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2048:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","typeString":"literal_string \"OFTCore: caller must be OFTCore\""},"value":"OFTCore: caller must be OFTCore"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","typeString":"literal_string \"OFTCore: caller must be OFTCore\""}],"id":3229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2009:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:73:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3239,"nodeType":"ExpressionStatement","src":"2009:73:10"},{"expression":{"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3240,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"2109:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3244,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2141:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2133:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3242,"name":"address","nodeType":"ElementaryTypeName","src":"2133:7:10","typeDescriptions":{}}},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2133:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3246,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3220,"src":"2148:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3247,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"2153:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3241,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"2119:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":3248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:42:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2109:52:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3250,"nodeType":"ExpressionStatement","src":"2109:52:10"},{"eventCall":{"arguments":[{"id":3252,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"2193:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3253,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3220,"src":"2206:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3254,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"2211:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3251,"name":"ReceiveFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3181,"src":"2176:16:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint16,address,uint256)"}},"id":3255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2176:43:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3256,"nodeType":"EmitStatement","src":"2171:48:10"},{"expression":{"arguments":[{"id":3263,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"2298:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3264,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3214,"src":"2311:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":3265,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3216,"src":"2324:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3266,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"2332:5:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3267,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"2339:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3268,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3224,"src":"2348:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":3258,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3220,"src":"2261:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3257,"name":"IOFTReceiverV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"2246:14:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOFTReceiverV2_$4167_$","typeString":"type(contract IOFTReceiverV2)"}},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2246:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOFTReceiverV2_$4167","typeString":"contract IOFTReceiverV2"}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:13:10","memberName":"onOFTReceived","nodeType":"MemberAccess","referencedDeclaration":4166,"src":"2246:33:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32,uint256,bytes memory) external"}},"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":3261,"name":"_gasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3226,"src":"2285:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2246:51:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$gas","typeString":"function (uint16,bytes memory,uint64,bytes32,uint256,bytes memory) external"}},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2246:111:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3270,"nodeType":"ExpressionStatement","src":"2246:111:10"}]},"functionSelector":"eaffd49a","id":3272,"implemented":true,"kind":"function","modifiers":[],"name":"callOnOFTReceived","nameLocation":"1748:17:10","nodeType":"FunctionDefinition","parameters":{"id":3227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"_srcChainId","nameLocation":"1782:11:10","nodeType":"VariableDeclaration","scope":3272,"src":"1775:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3211,"name":"uint16","nodeType":"ElementaryTypeName","src":"1775:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3214,"mutability":"mutable","name":"_srcAddress","nameLocation":"1818:11:10","nodeType":"VariableDeclaration","scope":3272,"src":"1803:26:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3213,"name":"bytes","nodeType":"ElementaryTypeName","src":"1803:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3216,"mutability":"mutable","name":"_nonce","nameLocation":"1846:6:10","nodeType":"VariableDeclaration","scope":3272,"src":"1839:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3215,"name":"uint64","nodeType":"ElementaryTypeName","src":"1839:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3218,"mutability":"mutable","name":"_from","nameLocation":"1870:5:10","nodeType":"VariableDeclaration","scope":3272,"src":"1862:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1862:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3220,"mutability":"mutable","name":"_to","nameLocation":"1893:3:10","nodeType":"VariableDeclaration","scope":3272,"src":"1885:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3219,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3222,"mutability":"mutable","name":"_amount","nameLocation":"1911:7:10","nodeType":"VariableDeclaration","scope":3272,"src":"1906:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3221,"name":"uint","nodeType":"ElementaryTypeName","src":"1906:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3224,"mutability":"mutable","name":"_payload","nameLocation":"1943:8:10","nodeType":"VariableDeclaration","scope":3272,"src":"1928:23:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3223,"name":"bytes","nodeType":"ElementaryTypeName","src":"1928:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3226,"mutability":"mutable","name":"_gasForCall","nameLocation":"1966:11:10","nodeType":"VariableDeclaration","scope":3272,"src":"1961:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3225,"name":"uint","nodeType":"ElementaryTypeName","src":"1961:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1765:218:10"},"returnParameters":{"id":3228,"nodeType":"ParameterList","parameters":[],"src":"1999:0:10"},"scope":4083,"src":"1739:625:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3310,"nodeType":"Block","src":"2782:232:10","statements":[{"assignments":[3290],"declarations":[{"constant":false,"id":3290,"mutability":"mutable","name":"payload","nameLocation":"2848:7:10","nodeType":"VariableDeclaration","scope":3310,"src":"2835:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3289,"name":"bytes","nodeType":"ElementaryTypeName","src":"2835:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3297,"initialValue":{"arguments":[{"id":3292,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3276,"src":"2877:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3294,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"2896:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3293,"name":"_ld2sd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3838,"src":"2889:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint64_$","typeString":"function (uint256) view returns (uint64)"}},"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3291,"name":"_encodeSendPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"2858:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32,uint64) view returns (bytes memory)"}},"id":3296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2835:70:10"},{"expression":{"arguments":[{"id":3300,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3274,"src":"2946:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3303,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2967:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2959:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3301,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:10","typeDescriptions":{}}},"id":3304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2959:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3305,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3290,"src":"2974:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3306,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"2983:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3307,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"2992:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3298,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"2922:10:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":3299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2933:12:10","memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":1282,"src":"2922:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3288,"id":3309,"nodeType":"Return","src":"2915:92:10"}]},"id":3311,"implemented":true,"kind":"function","modifiers":[],"name":"_estimateSendFee","nameLocation":"2562:16:10","nodeType":"FunctionDefinition","parameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3274,"mutability":"mutable","name":"_dstChainId","nameLocation":"2595:11:10","nodeType":"VariableDeclaration","scope":3311,"src":"2588:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3273,"name":"uint16","nodeType":"ElementaryTypeName","src":"2588:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3276,"mutability":"mutable","name":"_toAddress","nameLocation":"2624:10:10","nodeType":"VariableDeclaration","scope":3311,"src":"2616:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2616:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3278,"mutability":"mutable","name":"_amount","nameLocation":"2649:7:10","nodeType":"VariableDeclaration","scope":3311,"src":"2644:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3277,"name":"uint","nodeType":"ElementaryTypeName","src":"2644:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3280,"mutability":"mutable","name":"_useZro","nameLocation":"2671:7:10","nodeType":"VariableDeclaration","scope":3311,"src":"2666:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3279,"name":"bool","nodeType":"ElementaryTypeName","src":"2666:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"_adapterParams","nameLocation":"2701:14:10","nodeType":"VariableDeclaration","scope":3311,"src":"2688:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3281,"name":"bytes","nodeType":"ElementaryTypeName","src":"2688:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2578:143:10"},"returnParameters":{"id":3288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3285,"mutability":"mutable","name":"nativeFee","nameLocation":"2758:9:10","nodeType":"VariableDeclaration","scope":3311,"src":"2753:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3284,"name":"uint","nodeType":"ElementaryTypeName","src":"2753:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3287,"mutability":"mutable","name":"zroFee","nameLocation":"2774:6:10","nodeType":"VariableDeclaration","scope":3311,"src":"2769:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3286,"name":"uint","nodeType":"ElementaryTypeName","src":"2769:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:29:10"},"scope":4083,"src":"2553:461:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3357,"nodeType":"Block","src":"3318:280:10","statements":[{"assignments":[3333],"declarations":[{"constant":false,"id":3333,"mutability":"mutable","name":"payload","nameLocation":"3387:7:10","nodeType":"VariableDeclaration","scope":3357,"src":"3374:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3332,"name":"bytes","nodeType":"ElementaryTypeName","src":"3374:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3344,"initialValue":{"arguments":[{"expression":{"id":3335,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3423:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3427:6:10","memberName":"sender","nodeType":"MemberAccess","src":"3423:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3337,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3315,"src":"3435:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3339,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"3454:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3338,"name":"_ld2sd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3838,"src":"3447:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint64_$","typeString":"function (uint256) view returns (uint64)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3447:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3341,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3319,"src":"3464:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3342,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"3474:14:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3334,"name":"_encodeSendAndCallPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"3397:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_uint64_$_t_bytes_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes32,uint64,bytes memory,uint64) view returns (bytes memory)"}},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:92:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3374:115:10"},{"expression":{"arguments":[{"id":3347,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"3530:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3350,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3551:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3543:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3348,"name":"address","nodeType":"ElementaryTypeName","src":"3543:7:10","typeDescriptions":{}}},"id":3351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3543:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3352,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"3558:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3353,"name":"_useZro","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3323,"src":"3567:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3354,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"3576:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3345,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"3506:10:10","typeDescriptions":{"typeIdentifier":"t_contract$_ILayerZeroEndpoint_$1357","typeString":"contract ILayerZeroEndpoint"}},"id":3346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3517:12:10","memberName":"estimateFees","nodeType":"MemberAccess","referencedDeclaration":1282,"src":"3506:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint16_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint16,address,bytes memory,bool,bytes memory) view external returns (uint256,uint256)"}},"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3506:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3331,"id":3356,"nodeType":"Return","src":"3499:92:10"}]},"id":3358,"implemented":true,"kind":"function","modifiers":[],"name":"_estimateSendAndCallFee","nameLocation":"3029:23:10","nodeType":"FunctionDefinition","parameters":{"id":3326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3313,"mutability":"mutable","name":"_dstChainId","nameLocation":"3069:11:10","nodeType":"VariableDeclaration","scope":3358,"src":"3062:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3312,"name":"uint16","nodeType":"ElementaryTypeName","src":"3062:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3315,"mutability":"mutable","name":"_toAddress","nameLocation":"3098:10:10","nodeType":"VariableDeclaration","scope":3358,"src":"3090:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3090:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3317,"mutability":"mutable","name":"_amount","nameLocation":"3123:7:10","nodeType":"VariableDeclaration","scope":3358,"src":"3118:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3316,"name":"uint","nodeType":"ElementaryTypeName","src":"3118:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3319,"mutability":"mutable","name":"_payload","nameLocation":"3153:8:10","nodeType":"VariableDeclaration","scope":3358,"src":"3140:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3318,"name":"bytes","nodeType":"ElementaryTypeName","src":"3140:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"3178:14:10","nodeType":"VariableDeclaration","scope":3358,"src":"3171:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3320,"name":"uint64","nodeType":"ElementaryTypeName","src":"3171:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3323,"mutability":"mutable","name":"_useZro","nameLocation":"3207:7:10","nodeType":"VariableDeclaration","scope":3358,"src":"3202:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3322,"name":"bool","nodeType":"ElementaryTypeName","src":"3202:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3325,"mutability":"mutable","name":"_adapterParams","nameLocation":"3237:14:10","nodeType":"VariableDeclaration","scope":3358,"src":"3224:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3324,"name":"bytes","nodeType":"ElementaryTypeName","src":"3224:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3052:205:10"},"returnParameters":{"id":3331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3328,"mutability":"mutable","name":"nativeFee","nameLocation":"3294:9:10","nodeType":"VariableDeclaration","scope":3358,"src":"3289:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3327,"name":"uint","nodeType":"ElementaryTypeName","src":"3289:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3330,"mutability":"mutable","name":"zroFee","nameLocation":"3310:6:10","nodeType":"VariableDeclaration","scope":3358,"src":"3305:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3329,"name":"uint","nodeType":"ElementaryTypeName","src":"3305:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3288:29:10"},"scope":4083,"src":"3020:578:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1143],"body":{"id":3406,"nodeType":"Block","src":"3783:364:10","statements":[{"assignments":[3371],"declarations":[{"constant":false,"id":3371,"mutability":"mutable","name":"packetType","nameLocation":"3799:10:10","nodeType":"VariableDeclaration","scope":3406,"src":"3793:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3370,"name":"uint8","nodeType":"ElementaryTypeName","src":"3793:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3376,"initialValue":{"arguments":[{"hexValue":"30","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3829:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3372,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"3812:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3821:7:10","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":115,"src":"3812:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3812:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"3793:38:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3377,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3371,"src":"3846:10:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3378,"name":"PT_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"3860:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3846:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3388,"name":"packetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3371,"src":"3956:10:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3389,"name":"PT_SEND_AND_CALL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"3970:16:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3956:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3403,"nodeType":"Block","src":"4078:63:10","statements":[{"expression":{"arguments":[{"hexValue":"4f4654436f72653a20756e6b6e6f776e207061636b65742074797065","id":3400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4099:30:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","typeString":"literal_string \"OFTCore: unknown packet type\""},"value":"OFTCore: unknown packet type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","typeString":"literal_string \"OFTCore: unknown packet type\""}],"id":3399,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4092:6:10","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4092:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3402,"nodeType":"ExpressionStatement","src":"4092:38:10"}]},"id":3404,"nodeType":"IfStatement","src":"3952:189:10","trueBody":{"id":3398,"nodeType":"Block","src":"3988:84:10","statements":[{"expression":{"arguments":[{"id":3392,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3360,"src":"4018:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3393,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3362,"src":"4031:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3394,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"4044:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3395,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"4052:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3391,"name":"_sendAndCallAck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3793,"src":"4002:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4002:59:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3397,"nodeType":"ExpressionStatement","src":"4002:59:10"}]}},"id":3405,"nodeType":"IfStatement","src":"3842:299:10","trueBody":{"id":3387,"nodeType":"Block","src":"3869:77:10","statements":[{"expression":{"arguments":[{"id":3381,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3360,"src":"3892:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3382,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3362,"src":"3905:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3383,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"3918:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3384,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"3926:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3380,"name":"_sendAck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3538,"src":"3883:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory)"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:52:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3386,"nodeType":"ExpressionStatement","src":"3883:52:10"}]}}]},"id":3407,"implemented":true,"kind":"function","modifiers":[],"name":"_nonblockingLzReceive","nameLocation":"3613:21:10","nodeType":"FunctionDefinition","overrides":{"id":3368,"nodeType":"OverrideSpecifier","overrides":[],"src":"3774:8:10"},"parameters":{"id":3367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3360,"mutability":"mutable","name":"_srcChainId","nameLocation":"3651:11:10","nodeType":"VariableDeclaration","scope":3407,"src":"3644:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3359,"name":"uint16","nodeType":"ElementaryTypeName","src":"3644:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3362,"mutability":"mutable","name":"_srcAddress","nameLocation":"3685:11:10","nodeType":"VariableDeclaration","scope":3407,"src":"3672:24:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3361,"name":"bytes","nodeType":"ElementaryTypeName","src":"3672:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3364,"mutability":"mutable","name":"_nonce","nameLocation":"3713:6:10","nodeType":"VariableDeclaration","scope":3407,"src":"3706:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3363,"name":"uint64","nodeType":"ElementaryTypeName","src":"3706:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3366,"mutability":"mutable","name":"_payload","nameLocation":"3742:8:10","nodeType":"VariableDeclaration","scope":3407,"src":"3729:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3365,"name":"bytes","nodeType":"ElementaryTypeName","src":"3729:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3634:122:10"},"returnParameters":{"id":3369,"nodeType":"ParameterList","parameters":[],"src":"3783:0:10"},"scope":4083,"src":"3604:543:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3482,"nodeType":"Block","src":"4427:547:10","statements":[{"expression":{"arguments":[{"id":3427,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"4452:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3428,"name":"PT_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"4465:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3429,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3421,"src":"4474:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3430,"name":"NO_EXTRA_GAS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3145,"src":"4490:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3426,"name":"_checkGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"4437:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,bytes memory,uint256) view"}},"id":3431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:66:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3432,"nodeType":"ExpressionStatement","src":"4437:66:10"},{"expression":{"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3433,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4515:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null],"id":3434,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4514:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$","typeString":"tuple(uint256,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3436,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"4539:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3435,"name":"_removeDust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3874,"src":"4527:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256)"}},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4527:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"4514:33:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3439,"nodeType":"ExpressionStatement","src":"4514:33:10"},{"expression":{"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4557:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3442,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3409,"src":"4577:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3443,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"4584:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3444,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"4597:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3445,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4609:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3441,"name":"_debitFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4055,"src":"4566:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_bytes32_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint16,bytes32,uint256) returns (uint256)"}},"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:50:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4557:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3448,"nodeType":"ExpressionStatement","src":"4557:59:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3450,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4674:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4683:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4674:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a20616d6f756e7420746f6f20736d616c6c","id":3453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:27:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","typeString":"literal_string \"OFTCore: amount too small\""},"value":"OFTCore: amount too small"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","typeString":"literal_string \"OFTCore: amount too small\""}],"id":3449,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4666:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4666:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3455,"nodeType":"ExpressionStatement","src":"4666:48:10"},{"assignments":[3457],"declarations":[{"constant":false,"id":3457,"mutability":"mutable","name":"lzPayload","nameLocation":"4738:9:10","nodeType":"VariableDeclaration","scope":3482,"src":"4725:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3456,"name":"bytes","nodeType":"ElementaryTypeName","src":"4725:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3464,"initialValue":{"arguments":[{"id":3459,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"4769:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3461,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4788:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3460,"name":"_ld2sd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3838,"src":"4781:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint64_$","typeString":"function (uint256) view returns (uint64)"}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:14:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3458,"name":"_encodeSendPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"4750:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32,uint64) view returns (bytes memory)"}},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4750:46:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4725:71:10"},{"expression":{"arguments":[{"id":3466,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"4814:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3467,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"4827:9:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3468,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"4838:14:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3469,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3419,"src":"4854:18:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3470,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3421,"src":"4874:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":3471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4890:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4894:5:10","memberName":"value","nodeType":"MemberAccess","src":"4890:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3465,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"4806:7:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":3473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4806:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3474,"nodeType":"ExpressionStatement","src":"4806:94:10"},{"eventCall":{"arguments":[{"id":3476,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"4928:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3477,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3409,"src":"4941:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3478,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"4948:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3479,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3424,"src":"4960:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3475,"name":"SendToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"4916:11:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint16,address,bytes32,uint256)"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4916:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3481,"nodeType":"EmitStatement","src":"4911:56:10"}]},"id":3483,"implemented":true,"kind":"function","modifiers":[],"name":"_send","nameLocation":"4162:5:10","nodeType":"FunctionDefinition","parameters":{"id":3422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3409,"mutability":"mutable","name":"_from","nameLocation":"4185:5:10","nodeType":"VariableDeclaration","scope":3483,"src":"4177:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3408,"name":"address","nodeType":"ElementaryTypeName","src":"4177:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3411,"mutability":"mutable","name":"_dstChainId","nameLocation":"4207:11:10","nodeType":"VariableDeclaration","scope":3483,"src":"4200:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3410,"name":"uint16","nodeType":"ElementaryTypeName","src":"4200:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"_toAddress","nameLocation":"4236:10:10","nodeType":"VariableDeclaration","scope":3483,"src":"4228:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4228:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3415,"mutability":"mutable","name":"_amount","nameLocation":"4261:7:10","nodeType":"VariableDeclaration","scope":3483,"src":"4256:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3414,"name":"uint","nodeType":"ElementaryTypeName","src":"4256:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3417,"mutability":"mutable","name":"_refundAddress","nameLocation":"4294:14:10","nodeType":"VariableDeclaration","scope":3483,"src":"4278:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3416,"name":"address","nodeType":"ElementaryTypeName","src":"4278:15:10","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3419,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"4326:18:10","nodeType":"VariableDeclaration","scope":3483,"src":"4318:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3418,"name":"address","nodeType":"ElementaryTypeName","src":"4318:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3421,"mutability":"mutable","name":"_adapterParams","nameLocation":"4367:14:10","nodeType":"VariableDeclaration","scope":3483,"src":"4354:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3420,"name":"bytes","nodeType":"ElementaryTypeName","src":"4354:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4167:220:10"},"returnParameters":{"id":3425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3424,"mutability":"mutable","name":"amount","nameLocation":"4419:6:10","nodeType":"VariableDeclaration","scope":3483,"src":"4414:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3423,"name":"uint","nodeType":"ElementaryTypeName","src":"4414:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4413:13:10"},"scope":4083,"src":"4153:821:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3537,"nodeType":"Block","src":"5118:304:10","statements":[{"assignments":[3495,3497],"declarations":[{"constant":false,"id":3495,"mutability":"mutable","name":"to","nameLocation":"5137:2:10","nodeType":"VariableDeclaration","scope":3537,"src":"5129:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3494,"name":"address","nodeType":"ElementaryTypeName","src":"5129:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3497,"mutability":"mutable","name":"amountSD","nameLocation":"5148:8:10","nodeType":"VariableDeclaration","scope":3537,"src":"5141:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3496,"name":"uint64","nodeType":"ElementaryTypeName","src":"5141:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3501,"initialValue":{"arguments":[{"id":3499,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"5179:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3498,"name":"_decodeSendPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3930,"src":"5160:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$_t_uint64_$","typeString":"function (bytes memory) view returns (address,uint64)"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint64_$","typeString":"tuple(address,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"5128:60:10"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3502,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"5202:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5216:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5208:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3503,"name":"address","nodeType":"ElementaryTypeName","src":"5208:7:10","typeDescriptions":{}}},"id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5208:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5202:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3516,"nodeType":"IfStatement","src":"5198:67:10","trueBody":{"id":3515,"nodeType":"Block","src":"5220:45:10","statements":[{"expression":{"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3508,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"5234:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307864656164","id":3511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5247:6:10","typeDescriptions":{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"},"value":"0xdead"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"}],"id":3510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5239:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3509,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:10","typeDescriptions":{}}},"id":3512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5239:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5234:20:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3514,"nodeType":"ExpressionStatement","src":"5234:20:10"}]}},{"assignments":[3518],"declarations":[{"constant":false,"id":3518,"mutability":"mutable","name":"amount","nameLocation":"5280:6:10","nodeType":"VariableDeclaration","scope":3537,"src":"5275:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3517,"name":"uint","nodeType":"ElementaryTypeName","src":"5275:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3522,"initialValue":{"arguments":[{"id":3520,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3497,"src":"5296:8:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3519,"name":"_sd2ld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"5289:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint64) view returns (uint256)"}},"id":3521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5289:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5275:30:10"},{"expression":{"id":3529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3523,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"5315:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3525,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"5334:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3526,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"5347:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3527,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"5351:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3524,"name":"_creditTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"5324:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint16,address,uint256) returns (uint256)"}},"id":3528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5324:34:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5315:43:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3530,"nodeType":"ExpressionStatement","src":"5315:43:10"},{"eventCall":{"arguments":[{"id":3532,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"5391:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3533,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"5404:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3534,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"5408:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3531,"name":"ReceiveFromChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3181,"src":"5374:16:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint16,address,uint256)"}},"id":3535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:41:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3536,"nodeType":"EmitStatement","src":"5369:46:10"}]},"id":3538,"implemented":true,"kind":"function","modifiers":[],"name":"_sendAck","nameLocation":"4989:8:10","nodeType":"FunctionDefinition","parameters":{"id":3492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3485,"mutability":"mutable","name":"_srcChainId","nameLocation":"5014:11:10","nodeType":"VariableDeclaration","scope":3538,"src":"5007:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3484,"name":"uint16","nodeType":"ElementaryTypeName","src":"5007:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3538,"src":"5035:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3486,"name":"bytes","nodeType":"ElementaryTypeName","src":"5035:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3538,"src":"5057:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3488,"name":"uint64","nodeType":"ElementaryTypeName","src":"5057:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3491,"mutability":"mutable","name":"_payload","nameLocation":"5086:8:10","nodeType":"VariableDeclaration","scope":3538,"src":"5073:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3490,"name":"bytes","nodeType":"ElementaryTypeName","src":"5073:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4997:103:10"},"returnParameters":{"id":3493,"nodeType":"ParameterList","parameters":[],"src":"5118:0:10"},"scope":4083,"src":"4980:442:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3621,"nodeType":"Block","src":"5771:630:10","statements":[{"expression":{"arguments":[{"id":3562,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"5796:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3563,"name":"PT_SEND_AND_CALL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"5809:16:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3564,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3556,"src":"5827:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3565,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"5843:14:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3561,"name":"_checkGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"5781:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint16_$_t_uint16_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,uint16,bytes memory,uint256) view"}},"id":3566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5781:77:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3567,"nodeType":"ExpressionStatement","src":"5781:77:10"},{"expression":{"id":3573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3568,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"5870:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null],"id":3569,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5869:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$","typeString":"tuple(uint256,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3571,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3546,"src":"5894:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3570,"name":"_removeDust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3874,"src":"5882:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256)"}},"id":3572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5869:33:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3574,"nodeType":"ExpressionStatement","src":"5869:33:10"},{"expression":{"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3575,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"5912:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3577,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3540,"src":"5932:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3578,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"5939:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3579,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"5952:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"5964:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3576,"name":"_debitFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4055,"src":"5921:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_bytes32_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint16,bytes32,uint256) returns (uint256)"}},"id":3581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5921:50:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5912:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3583,"nodeType":"ExpressionStatement","src":"5912:59:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3585,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"5989:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5998:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5989:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a20616d6f756e7420746f6f20736d616c6c","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6001:27:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","typeString":"literal_string \"OFTCore: amount too small\""},"value":"OFTCore: amount too small"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","typeString":"literal_string \"OFTCore: amount too small\""}],"id":3584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5981:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5981:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3590,"nodeType":"ExpressionStatement","src":"5981:48:10"},{"assignments":[3592],"declarations":[{"constant":false,"id":3592,"mutability":"mutable","name":"lzPayload","nameLocation":"6120:9:10","nodeType":"VariableDeclaration","scope":3621,"src":"6107:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3591,"name":"bytes","nodeType":"ElementaryTypeName","src":"6107:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3603,"initialValue":{"arguments":[{"expression":{"id":3594,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6158:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6162:6:10","memberName":"sender","nodeType":"MemberAccess","src":"6158:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3596,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"6170:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3598,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"6189:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3597,"name":"_ld2sd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3838,"src":"6182:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint64_$","typeString":"function (uint256) view returns (uint64)"}},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6182:14:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3600,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3548,"src":"6198:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3601,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"6208:14:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3593,"name":"_encodeSendAndCallPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"6132:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_uint64_$_t_bytes_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes32,uint64,bytes memory,uint64) view returns (bytes memory)"}},"id":3602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6132:91:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6107:116:10"},{"expression":{"arguments":[{"id":3605,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"6241:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3606,"name":"lzPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3592,"src":"6254:9:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3607,"name":"_refundAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"6265:14:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":3608,"name":"_zroPaymentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3554,"src":"6281:18:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3609,"name":"_adapterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3556,"src":"6301:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":3610,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6317:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6321:5:10","memberName":"value","nodeType":"MemberAccess","src":"6317:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3604,"name":"_lzSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"6233:7:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_address_payable_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,address payable,address,bytes memory,uint256)"}},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6233:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3613,"nodeType":"ExpressionStatement","src":"6233:94:10"},{"eventCall":{"arguments":[{"id":3615,"name":"_dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"6355:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3616,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3540,"src":"6368:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3617,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"6375:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3618,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3559,"src":"6387:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3614,"name":"SendToChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"6343:11:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint16,address,bytes32,uint256)"}},"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6343:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3620,"nodeType":"EmitStatement","src":"6338:56:10"}]},"id":3622,"implemented":true,"kind":"function","modifiers":[],"name":"_sendAndCall","nameLocation":"5437:12:10","nodeType":"FunctionDefinition","parameters":{"id":3557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3540,"mutability":"mutable","name":"_from","nameLocation":"5467:5:10","nodeType":"VariableDeclaration","scope":3622,"src":"5459:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3539,"name":"address","nodeType":"ElementaryTypeName","src":"5459:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3542,"mutability":"mutable","name":"_dstChainId","nameLocation":"5489:11:10","nodeType":"VariableDeclaration","scope":3622,"src":"5482:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3541,"name":"uint16","nodeType":"ElementaryTypeName","src":"5482:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"_toAddress","nameLocation":"5518:10:10","nodeType":"VariableDeclaration","scope":3622,"src":"5510:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5510:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3546,"mutability":"mutable","name":"_amount","nameLocation":"5543:7:10","nodeType":"VariableDeclaration","scope":3622,"src":"5538:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3545,"name":"uint","nodeType":"ElementaryTypeName","src":"5538:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3548,"mutability":"mutable","name":"_payload","nameLocation":"5573:8:10","nodeType":"VariableDeclaration","scope":3622,"src":"5560:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3547,"name":"bytes","nodeType":"ElementaryTypeName","src":"5560:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3550,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"5598:14:10","nodeType":"VariableDeclaration","scope":3622,"src":"5591:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3549,"name":"uint64","nodeType":"ElementaryTypeName","src":"5591:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3552,"mutability":"mutable","name":"_refundAddress","nameLocation":"5638:14:10","nodeType":"VariableDeclaration","scope":3622,"src":"5622:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3551,"name":"address","nodeType":"ElementaryTypeName","src":"5622:15:10","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3554,"mutability":"mutable","name":"_zroPaymentAddress","nameLocation":"5670:18:10","nodeType":"VariableDeclaration","scope":3622,"src":"5662:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3553,"name":"address","nodeType":"ElementaryTypeName","src":"5662:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3556,"mutability":"mutable","name":"_adapterParams","nameLocation":"5711:14:10","nodeType":"VariableDeclaration","scope":3622,"src":"5698:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3555,"name":"bytes","nodeType":"ElementaryTypeName","src":"5698:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5449:282:10"},"returnParameters":{"id":3560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3559,"mutability":"mutable","name":"amount","nameLocation":"5763:6:10","nodeType":"VariableDeclaration","scope":3622,"src":"5758:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3558,"name":"uint","nodeType":"ElementaryTypeName","src":"5758:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5757:13:10"},"scope":4083,"src":"5428:973:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3792,"nodeType":"Block","src":"6571:1691:10","statements":[{"assignments":[3634,3636,3638,3640,3642],"declarations":[{"constant":false,"id":3634,"mutability":"mutable","name":"from","nameLocation":"6590:4:10","nodeType":"VariableDeclaration","scope":3792,"src":"6582:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3636,"mutability":"mutable","name":"to","nameLocation":"6604:2:10","nodeType":"VariableDeclaration","scope":3792,"src":"6596:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3635,"name":"address","nodeType":"ElementaryTypeName","src":"6596:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3638,"mutability":"mutable","name":"amountSD","nameLocation":"6615:8:10","nodeType":"VariableDeclaration","scope":3792,"src":"6608:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3637,"name":"uint64","nodeType":"ElementaryTypeName","src":"6608:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3640,"mutability":"mutable","name":"payloadForCall","nameLocation":"6638:14:10","nodeType":"VariableDeclaration","scope":3792,"src":"6625:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3639,"name":"bytes","nodeType":"ElementaryTypeName","src":"6625:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3642,"mutability":"mutable","name":"gasForCall","nameLocation":"6661:10:10","nodeType":"VariableDeclaration","scope":3792,"src":"6654:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3641,"name":"uint64","nodeType":"ElementaryTypeName","src":"6654:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3646,"initialValue":{"arguments":[{"id":3644,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"6701:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3643,"name":"_decodeSendAndCallPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4023,"src":"6675:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"function (bytes memory) view returns (bytes32,address,uint64,bytes memory,uint64)"}},"id":3645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6675:35:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_address_$_t_uint64_$_t_bytes_memory_ptr_$_t_uint64_$","typeString":"tuple(bytes32,address,uint64,bytes memory,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"6581:129:10"},{"assignments":[3648],"declarations":[{"constant":false,"id":3648,"mutability":"mutable","name":"credited","nameLocation":"6726:8:10","nodeType":"VariableDeclaration","scope":3792,"src":"6721:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3647,"name":"bool","nodeType":"ElementaryTypeName","src":"6721:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3656,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3649,"name":"creditedPackets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"6737:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bool)))"}},"id":3651,"indexExpression":{"id":3650,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"6753:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6737:28:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bool))"}},"id":3653,"indexExpression":{"id":3652,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"6766:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6737:41:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bool_$","typeString":"mapping(uint64 => bool)"}},"id":3655,"indexExpression":{"id":3654,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"6779:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6737:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6721:65:10"},{"assignments":[3658],"declarations":[{"constant":false,"id":3658,"mutability":"mutable","name":"amount","nameLocation":"6801:6:10","nodeType":"VariableDeclaration","scope":3792,"src":"6796:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3657,"name":"uint","nodeType":"ElementaryTypeName","src":"6796:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3662,"initialValue":{"arguments":[{"id":3660,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3638,"src":"6817:8:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3659,"name":"_sd2ld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"6810:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint64) view returns (uint256)"}},"id":3661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6796:30:10"},{"condition":{"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6950:9:10","subExpression":{"id":3663,"name":"credited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3648,"src":"6951:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3687,"nodeType":"IfStatement","src":"6946:164:10","trueBody":{"id":3686,"nodeType":"Block","src":"6961:149:10","statements":[{"expression":{"id":3674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"6975:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3667,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"6994:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"arguments":[{"id":3670,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7015:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7007:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3668,"name":"address","nodeType":"ElementaryTypeName","src":"7007:7:10","typeDescriptions":{}}},"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3672,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"7022:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3666,"name":"_creditTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"6984:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint16,address,uint256) returns (uint256)"}},"id":3673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6984:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6975:54:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3675,"nodeType":"ExpressionStatement","src":"6975:54:10"},{"expression":{"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":3676,"name":"creditedPackets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"7043:15:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bool)))"}},"id":3680,"indexExpression":{"id":3677,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"7059:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:28:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bool_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bool))"}},"id":3681,"indexExpression":{"id":3678,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"7072:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:41:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bool_$","typeString":"mapping(uint64 => bool)"}},"id":3682,"indexExpression":{"id":3679,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"7085:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7043:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7095:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7043:56:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3685,"nodeType":"ExpressionStatement","src":"7043:56:10"}]}},{"condition":{"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7124:16:10","subExpression":{"arguments":[{"id":3689,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"7137:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3688,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3807,"src":"7125:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7125:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3698,"nodeType":"IfStatement","src":"7120:94:10","trueBody":{"id":3697,"nodeType":"Block","src":"7142:72:10","statements":[{"eventCall":{"arguments":[{"id":3693,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"7180:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3692,"name":"NonContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"7161:18:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7161:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3695,"nodeType":"EmitStatement","src":"7156:27:10"},{"functionReturnParameters":3632,"id":3696,"nodeType":"Return","src":"7197:7:10"}]}},{"assignments":[3700],"declarations":[{"constant":false,"id":3700,"mutability":"mutable","name":"srcChainId","nameLocation":"7272:10:10","nodeType":"VariableDeclaration","scope":3792,"src":"7265:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3699,"name":"uint16","nodeType":"ElementaryTypeName","src":"7265:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":3702,"initialValue":{"id":3701,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"7285:11:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"7265:31:10"},{"assignments":[3704],"declarations":[{"constant":false,"id":3704,"mutability":"mutable","name":"srcAddress","nameLocation":"7319:10:10","nodeType":"VariableDeclaration","scope":3792,"src":"7306:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3703,"name":"bytes","nodeType":"ElementaryTypeName","src":"7306:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3706,"initialValue":{"id":3705,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"7332:11:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7306:37:10"},{"assignments":[3708],"declarations":[{"constant":false,"id":3708,"mutability":"mutable","name":"nonce","nameLocation":"7360:5:10","nodeType":"VariableDeclaration","scope":3792,"src":"7353:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3707,"name":"uint64","nodeType":"ElementaryTypeName","src":"7353:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3710,"initialValue":{"id":3709,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"7368:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"7353:21:10"},{"assignments":[3712],"declarations":[{"constant":false,"id":3712,"mutability":"mutable","name":"payload","nameLocation":"7397:7:10","nodeType":"VariableDeclaration","scope":3792,"src":"7384:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3711,"name":"bytes","nodeType":"ElementaryTypeName","src":"7384:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3714,"initialValue":{"id":3713,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"7407:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7384:31:10"},{"assignments":[3716],"declarations":[{"constant":false,"id":3716,"mutability":"mutable","name":"from_","nameLocation":"7433:5:10","nodeType":"VariableDeclaration","scope":3792,"src":"7425:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7425:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3718,"initialValue":{"id":3717,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"7441:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7425:20:10"},{"assignments":[3720],"declarations":[{"constant":false,"id":3720,"mutability":"mutable","name":"to_","nameLocation":"7463:3:10","nodeType":"VariableDeclaration","scope":3792,"src":"7455:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3719,"name":"address","nodeType":"ElementaryTypeName","src":"7455:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3722,"initialValue":{"id":3721,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"7469:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7455:16:10"},{"assignments":[3724],"declarations":[{"constant":false,"id":3724,"mutability":"mutable","name":"amount_","nameLocation":"7486:7:10","nodeType":"VariableDeclaration","scope":3792,"src":"7481:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint","nodeType":"ElementaryTypeName","src":"7481:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3726,"initialValue":{"id":3725,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3658,"src":"7496:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7481:21:10"},{"assignments":[3728],"declarations":[{"constant":false,"id":3728,"mutability":"mutable","name":"payloadForCall_","nameLocation":"7525:15:10","nodeType":"VariableDeclaration","scope":3792,"src":"7512:28:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3727,"name":"bytes","nodeType":"ElementaryTypeName","src":"7512:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3730,"initialValue":{"id":3729,"name":"payloadForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3640,"src":"7543:14:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7512:45:10"},{"assignments":[3732],"declarations":[{"constant":false,"id":3732,"mutability":"mutable","name":"gas","nameLocation":"7619:3:10","nodeType":"VariableDeclaration","scope":3792,"src":"7614:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3731,"name":"uint","nodeType":"ElementaryTypeName","src":"7614:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3738,"initialValue":{"condition":{"id":3733,"name":"credited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3648,"src":"7625:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3736,"name":"gasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3642,"src":"7648:10:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7625:33:10","trueExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3734,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7636:7:10","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:9:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7614:44:10"},{"assignments":[3740,3742],"declarations":[{"constant":false,"id":3740,"mutability":"mutable","name":"success","nameLocation":"7674:7:10","nodeType":"VariableDeclaration","scope":3792,"src":"7669:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3739,"name":"bool","nodeType":"ElementaryTypeName","src":"7669:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3742,"mutability":"mutable","name":"reason","nameLocation":"7696:6:10","nodeType":"VariableDeclaration","scope":3792,"src":"7683:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3741,"name":"bytes","nodeType":"ElementaryTypeName","src":"7683:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3766,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3748,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7753:7:10","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7753:9:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313530","id":3750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7776:3:10","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},{"arguments":[{"expression":{"expression":{"id":3753,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7816:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}},"id":3754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7821:17:10","memberName":"callOnOFTReceived","nodeType":"MemberAccess","referencedDeclaration":3272,"src":"7816:22:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32,address,uint256,bytes memory,uint256) external"}},"id":3755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:8:10","memberName":"selector","nodeType":"MemberAccess","src":"7816:31:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":3756,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3700,"src":"7849:10:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3757,"name":"srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3704,"src":"7861:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3758,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"7873:5:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3759,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3716,"src":"7880:5:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3760,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"7887:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3761,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3724,"src":"7892:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3762,"name":"payloadForCall_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"7901:15:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3763,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7918:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3751,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7793:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7797:18:10","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7793:22:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:129:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":3745,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7714:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OFTCoreV2_$4083","typeString":"contract OFTCoreV2"}],"id":3744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7706:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3743,"name":"address","nodeType":"ElementaryTypeName","src":"7706:7:10","typeDescriptions":{}}},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7706:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7720:19:10","memberName":"excessivelySafeCall","nodeType":"MemberAccess","referencedDeclaration":372,"src":"7706:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,uint256,uint16,bytes memory) returns (bool,bytes memory)"}},"id":3765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7706:226:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7668:264:10"},{"condition":{"id":3767,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"7947:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3790,"nodeType":"Block","src":"8098:158:10","statements":[{"expression":{"arguments":[{"id":3783,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3700,"src":"8198:10:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3784,"name":"srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3704,"src":"8210:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3785,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"8222:5:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3786,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"8229:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3787,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"8238:6:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3782,"name":"_storeFailedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"8178:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes memory,bytes memory)"}},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8178:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3789,"nodeType":"ExpressionStatement","src":"8178:67:10"}]},"id":3791,"nodeType":"IfStatement","src":"7943:313:10","trueBody":{"id":3781,"nodeType":"Block","src":"7956:136:10","statements":[{"assignments":[3769],"declarations":[{"constant":false,"id":3769,"mutability":"mutable","name":"hash","nameLocation":"7978:4:10","nodeType":"VariableDeclaration","scope":3781,"src":"7970:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7970:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3773,"initialValue":{"arguments":[{"id":3771,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"7995:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3770,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7985:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7985:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7970:33:10"},{"eventCall":{"arguments":[{"id":3775,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3700,"src":"8045:10:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3776,"name":"srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3704,"src":"8057:10:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3777,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3708,"src":"8069:5:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3778,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"8076:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3774,"name":"CallOFTReceivedSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"8022:22:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$_t_bytes32_$returns$__$","typeString":"function (uint16,bytes memory,uint64,bytes32)"}},"id":3779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8022:59:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3780,"nodeType":"EmitStatement","src":"8017:64:10"}]}}]},"id":3793,"implemented":true,"kind":"function","modifiers":[],"name":"_sendAndCallAck","nameLocation":"6416:15:10","nodeType":"FunctionDefinition","parameters":{"id":3631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3624,"mutability":"mutable","name":"_srcChainId","nameLocation":"6448:11:10","nodeType":"VariableDeclaration","scope":3793,"src":"6441:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3623,"name":"uint16","nodeType":"ElementaryTypeName","src":"6441:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":3626,"mutability":"mutable","name":"_srcAddress","nameLocation":"6482:11:10","nodeType":"VariableDeclaration","scope":3793,"src":"6469:24:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3625,"name":"bytes","nodeType":"ElementaryTypeName","src":"6469:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3628,"mutability":"mutable","name":"_nonce","nameLocation":"6510:6:10","nodeType":"VariableDeclaration","scope":3793,"src":"6503:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3627,"name":"uint64","nodeType":"ElementaryTypeName","src":"6503:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3630,"mutability":"mutable","name":"_payload","nameLocation":"6539:8:10","nodeType":"VariableDeclaration","scope":3793,"src":"6526:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3629,"name":"bytes","nodeType":"ElementaryTypeName","src":"6526:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6431:122:10"},"returnParameters":{"id":3632,"nodeType":"ParameterList","parameters":[],"src":"6571:0:10"},"scope":4083,"src":"6407:1855:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3806,"nodeType":"Block","src":"8336:48:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3800,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"8353:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8362:4:10","memberName":"code","nodeType":"MemberAccess","src":"8353:13:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8367:6:10","memberName":"length","nodeType":"MemberAccess","src":"8353:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8376:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8353:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3799,"id":3805,"nodeType":"Return","src":"8346:31:10"}]},"id":3807,"implemented":true,"kind":"function","modifiers":[],"name":"_isContract","nameLocation":"8277:11:10","nodeType":"FunctionDefinition","parameters":{"id":3796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3795,"mutability":"mutable","name":"_account","nameLocation":"8297:8:10","nodeType":"VariableDeclaration","scope":3807,"src":"8289:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3794,"name":"address","nodeType":"ElementaryTypeName","src":"8289:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8288:18:10"},"returnParameters":{"id":3799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3807,"src":"8330:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3797,"name":"bool","nodeType":"ElementaryTypeName","src":"8330:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8329:6:10"},"scope":4083,"src":"8268:116:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3837,"nodeType":"Block","src":"8459:165:10","statements":[{"assignments":[3815],"declarations":[{"constant":false,"id":3815,"mutability":"mutable","name":"amountSD","nameLocation":"8474:8:10","nodeType":"VariableDeclaration","scope":3837,"src":"8469:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3814,"name":"uint","nodeType":"ElementaryTypeName","src":"8469:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3820,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3816,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3809,"src":"8485:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3817,"name":"_ld2sdRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4082,"src":"8495:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8495:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8485:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8469:38:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3822,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"8525:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":3825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8542:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3824,"name":"uint64","nodeType":"ElementaryTypeName","src":"8542:6:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":3823,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8537:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8537:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8550:3:10","memberName":"max","nodeType":"MemberAccess","src":"8537:16:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8525:28:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a20616d6f756e745344206f766572666c6f77","id":3829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8555:28:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","typeString":"literal_string \"OFTCore: amountSD overflow\""},"value":"OFTCore: amountSD overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","typeString":"literal_string \"OFTCore: amountSD overflow\""}],"id":3821,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8517:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8517:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3831,"nodeType":"ExpressionStatement","src":"8517:67:10"},{"expression":{"arguments":[{"id":3834,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"8608:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8601:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3832,"name":"uint64","nodeType":"ElementaryTypeName","src":"8601:6:10","typeDescriptions":{}}},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8601:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":3813,"id":3836,"nodeType":"Return","src":"8594:23:10"}]},"id":3838,"implemented":true,"kind":"function","modifiers":[],"name":"_ld2sd","nameLocation":"8399:6:10","nodeType":"FunctionDefinition","parameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"_amount","nameLocation":"8411:7:10","nodeType":"VariableDeclaration","scope":3838,"src":"8406:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3808,"name":"uint","nodeType":"ElementaryTypeName","src":"8406:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8405:14:10"},"returnParameters":{"id":3813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3838,"src":"8451:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3811,"name":"uint64","nodeType":"ElementaryTypeName","src":"8451:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8450:8:10"},"scope":4083,"src":"8390:234:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3850,"nodeType":"Block","src":"8701:48:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3845,"name":"_amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3840,"src":"8718:9:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3846,"name":"_ld2sdRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4082,"src":"8730:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8730:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8718:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3844,"id":3849,"nodeType":"Return","src":"8711:31:10"}]},"id":3851,"implemented":true,"kind":"function","modifiers":[],"name":"_sd2ld","nameLocation":"8639:6:10","nodeType":"FunctionDefinition","parameters":{"id":3841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3840,"mutability":"mutable","name":"_amountSD","nameLocation":"8653:9:10","nodeType":"VariableDeclaration","scope":3851,"src":"8646:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3839,"name":"uint64","nodeType":"ElementaryTypeName","src":"8646:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8645:18:10"},"returnParameters":{"id":3844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3843,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3851,"src":"8695:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3842,"name":"uint","nodeType":"ElementaryTypeName","src":"8695:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8694:6:10"},"scope":4083,"src":"8630:119:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3873,"nodeType":"Block","src":"8850:84:10","statements":[{"expression":{"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3860,"name":"dust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"8860:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3861,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"8867:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3862,"name":"_ld2sdRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4082,"src":"8877:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8877:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8867:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8860:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3866,"nodeType":"ExpressionStatement","src":"8860:29:10"},{"expression":{"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3867,"name":"amountAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"8899:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3868,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"8913:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3869,"name":"dust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3858,"src":"8923:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8913:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3872,"nodeType":"ExpressionStatement","src":"8899:28:10"}]},"id":3874,"implemented":true,"kind":"function","modifiers":[],"name":"_removeDust","nameLocation":"8764:11:10","nodeType":"FunctionDefinition","parameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3853,"mutability":"mutable","name":"_amount","nameLocation":"8781:7:10","nodeType":"VariableDeclaration","scope":3874,"src":"8776:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3852,"name":"uint","nodeType":"ElementaryTypeName","src":"8776:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8775:14:10"},"returnParameters":{"id":3859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"amountAfter","nameLocation":"8826:11:10","nodeType":"VariableDeclaration","scope":3874,"src":"8821:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3855,"name":"uint","nodeType":"ElementaryTypeName","src":"8821:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3858,"mutability":"mutable","name":"dust","nameLocation":"8844:4:10","nodeType":"VariableDeclaration","scope":3874,"src":"8839:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3857,"name":"uint","nodeType":"ElementaryTypeName","src":"8839:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:29:10"},"scope":4083,"src":"8755:179:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3890,"nodeType":"Block","src":"9051:72:10","statements":[{"expression":{"arguments":[{"id":3885,"name":"PT_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"9085:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3886,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3876,"src":"9094:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3887,"name":"_amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3878,"src":"9106:9:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":3883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9068:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9072:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"9068:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:48:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3882,"id":3889,"nodeType":"Return","src":"9061:55:10"}]},"id":3891,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeSendPayload","nameLocation":"8949:18:10","nodeType":"FunctionDefinition","parameters":{"id":3879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3876,"mutability":"mutable","name":"_toAddress","nameLocation":"8976:10:10","nodeType":"VariableDeclaration","scope":3891,"src":"8968:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8968:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3878,"mutability":"mutable","name":"_amountSD","nameLocation":"8995:9:10","nodeType":"VariableDeclaration","scope":3891,"src":"8988:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3877,"name":"uint64","nodeType":"ElementaryTypeName","src":"8988:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8967:38:10"},"returnParameters":{"id":3882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3891,"src":"9037:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3880,"name":"bytes","nodeType":"ElementaryTypeName","src":"9037:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9036:14:10"},"scope":4083,"src":"8940:183:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3929,"nodeType":"Block","src":"9240:227:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9275:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3901,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"9258:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9267:7:10","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":115,"src":"9258:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9258:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3905,"name":"PT_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"9281:7:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9258:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3907,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"9292:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9301:6:10","memberName":"length","nodeType":"MemberAccess","src":"9292:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3431","id":3909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:2:10","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"src":"9292:21:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9258:55:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a20696e76616c6964207061796c6f6164","id":3912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9315:26:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","typeString":"literal_string \"OFTCore: invalid payload\""},"value":"OFTCore: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","typeString":"literal_string \"OFTCore: invalid payload\""}],"id":3900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9250:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9250:92:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3914,"nodeType":"ExpressionStatement","src":"9250:92:10"},{"expression":{"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3915,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"9353:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3133","id":3918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9377:2:10","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"}],"expression":{"id":3916,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"9358:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9367:9:10","memberName":"toAddress","nodeType":"MemberAccess","referencedDeclaration":89,"src":"9358:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (address)"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9358:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9353:27:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3921,"nodeType":"ExpressionStatement","src":"9353:27:10"},{"expression":{"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3922,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3898,"src":"9428:8:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3333","id":3925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9457:2:10","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":3923,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"9439:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9448:8:10","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":193,"src":"9439:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint64_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint64)"}},"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9439:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9428:32:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3928,"nodeType":"ExpressionStatement","src":"9428:32:10"}]},"id":3930,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeSendPayload","nameLocation":"9138:18:10","nodeType":"FunctionDefinition","parameters":{"id":3894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3893,"mutability":"mutable","name":"_payload","nameLocation":"9170:8:10","nodeType":"VariableDeclaration","scope":3930,"src":"9157:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3892,"name":"bytes","nodeType":"ElementaryTypeName","src":"9157:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9156:23:10"},"returnParameters":{"id":3899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3896,"mutability":"mutable","name":"to","nameLocation":"9219:2:10","nodeType":"VariableDeclaration","scope":3930,"src":"9211:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3895,"name":"address","nodeType":"ElementaryTypeName","src":"9211:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3898,"mutability":"mutable","name":"amountSD","nameLocation":"9230:8:10","nodeType":"VariableDeclaration","scope":3930,"src":"9223:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3897,"name":"uint64","nodeType":"ElementaryTypeName","src":"9223:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"9210:29:10"},"scope":4083,"src":"9129:338:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3957,"nodeType":"Block","src":"9698:133:10","statements":[{"expression":{"arguments":[{"id":3947,"name":"PT_SEND_AND_CALL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"9732:16:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3948,"name":"_toAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3934,"src":"9750:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3949,"name":"_amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3936,"src":"9762:9:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"id":3951,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3932,"src":"9791:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3950,"name":"_addressToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"9773:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":3952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9773:24:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3953,"name":"_dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3940,"src":"9799:14:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":3954,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3938,"src":"9815:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3945,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9715:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9719:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"9715:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:109:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3944,"id":3956,"nodeType":"Return","src":"9708:116:10"}]},"id":3958,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeSendAndCallPayload","nameLocation":"9482:25:10","nodeType":"FunctionDefinition","parameters":{"id":3941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3932,"mutability":"mutable","name":"_from","nameLocation":"9525:5:10","nodeType":"VariableDeclaration","scope":3958,"src":"9517:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3931,"name":"address","nodeType":"ElementaryTypeName","src":"9517:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3934,"mutability":"mutable","name":"_toAddress","nameLocation":"9548:10:10","nodeType":"VariableDeclaration","scope":3958,"src":"9540:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9540:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3936,"mutability":"mutable","name":"_amountSD","nameLocation":"9575:9:10","nodeType":"VariableDeclaration","scope":3958,"src":"9568:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3935,"name":"uint64","nodeType":"ElementaryTypeName","src":"9568:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3938,"mutability":"mutable","name":"_payload","nameLocation":"9607:8:10","nodeType":"VariableDeclaration","scope":3958,"src":"9594:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3937,"name":"bytes","nodeType":"ElementaryTypeName","src":"9594:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3940,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"9632:14:10","nodeType":"VariableDeclaration","scope":3958,"src":"9625:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3939,"name":"uint64","nodeType":"ElementaryTypeName","src":"9625:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"9507:145:10"},"returnParameters":{"id":3944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3958,"src":"9684:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3942,"name":"bytes","nodeType":"ElementaryTypeName","src":"9684:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9683:14:10"},"scope":4083,"src":"9473:358:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4022,"nodeType":"Block","src":"10119:357:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":3976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10154:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":3974,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10137:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10146:7:10","memberName":"toUint8","nodeType":"MemberAccess","referencedDeclaration":115,"src":"10137:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint8)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10137:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3978,"name":"PT_SEND_AND_CALL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"10160:16:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10137:39:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f4654436f72653a20696e76616c6964207061796c6f6164","id":3980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10178:26:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","typeString":"literal_string \"OFTCore: invalid payload\""},"value":"OFTCore: invalid payload"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","typeString":"literal_string \"OFTCore: invalid payload\""}],"id":3973,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10129:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10129:76:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3982,"nodeType":"ExpressionStatement","src":"10129:76:10"},{"expression":{"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3983,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"10216:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3133","id":3986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10240:2:10","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"}],"expression":{"id":3984,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10221:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10230:9:10","memberName":"toAddress","nodeType":"MemberAccess","referencedDeclaration":89,"src":"10221:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (address)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10221:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10216:27:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3989,"nodeType":"ExpressionStatement","src":"10216:27:10"},{"expression":{"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3990,"name":"amountSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"10291:8:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3333","id":3993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10320:2:10","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":3991,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10302:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10311:8:10","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":193,"src":"10302:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint64_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint64)"}},"id":3994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10302:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10291:32:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":3996,"nodeType":"ExpressionStatement","src":"10291:32:10"},{"expression":{"id":4002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3997,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3963,"src":"10333:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3431","id":4000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10359:2:10","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"}],"expression":{"id":3998,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10340:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10349:9:10","memberName":"toBytes32","nodeType":"MemberAccess","referencedDeclaration":297,"src":"10340:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10340:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10333:29:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4003,"nodeType":"ExpressionStatement","src":"10333:29:10"},{"expression":{"id":4009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4004,"name":"dstGasForCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3971,"src":"10372:13:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3733","id":4007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10406:2:10","typeDescriptions":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"value":"73"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"}],"expression":{"id":4005,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10388:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10397:8:10","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":193,"src":"10388:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint64_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256) pure returns (uint64)"}},"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10388:21:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10372:37:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":4010,"nodeType":"ExpressionStatement","src":"10372:37:10"},{"expression":{"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4011,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"10419:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3831","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10444:2:10","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4015,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10448:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10457:6:10","memberName":"length","nodeType":"MemberAccess","src":"10448:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3831","id":4017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10466:2:10","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},"src":"10448:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4012,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10429:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10438:5:10","memberName":"slice","nodeType":"MemberAccess","referencedDeclaration":63,"src":"10429:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,uint256,uint256) pure returns (bytes memory)"}},"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10429:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10419:50:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4021,"nodeType":"ExpressionStatement","src":"10419:50:10"}]},"id":4023,"implemented":true,"kind":"function","modifiers":[],"name":"_decodeSendAndCallPayload","nameLocation":"9846:25:10","nodeType":"FunctionDefinition","parameters":{"id":3961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3960,"mutability":"mutable","name":"_payload","nameLocation":"9885:8:10","nodeType":"VariableDeclaration","scope":4023,"src":"9872:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3959,"name":"bytes","nodeType":"ElementaryTypeName","src":"9872:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9871:23:10"},"returnParameters":{"id":3972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3963,"mutability":"mutable","name":"from","nameLocation":"9979:4:10","nodeType":"VariableDeclaration","scope":4023,"src":"9971:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9971:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3965,"mutability":"mutable","name":"to","nameLocation":"10005:2:10","nodeType":"VariableDeclaration","scope":4023,"src":"9997:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3964,"name":"address","nodeType":"ElementaryTypeName","src":"9997:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3967,"mutability":"mutable","name":"amountSD","nameLocation":"10028:8:10","nodeType":"VariableDeclaration","scope":4023,"src":"10021:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3966,"name":"uint64","nodeType":"ElementaryTypeName","src":"10021:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":3969,"mutability":"mutable","name":"payload","nameLocation":"10063:7:10","nodeType":"VariableDeclaration","scope":4023,"src":"10050:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3968,"name":"bytes","nodeType":"ElementaryTypeName","src":"10050:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3971,"mutability":"mutable","name":"dstGasForCall","nameLocation":"10091:13:10","nodeType":"VariableDeclaration","scope":4023,"src":"10084:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3970,"name":"uint64","nodeType":"ElementaryTypeName","src":"10084:6:10","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"9957:157:10"},"scope":4083,"src":"9837:639:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4041,"nodeType":"Block","src":"10567:56:10","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4036,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"10605:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10597:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4034,"name":"uint160","nodeType":"ElementaryTypeName","src":"10597:7:10","typeDescriptions":{}}},"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10597:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10592:4:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4032,"name":"uint","nodeType":"ElementaryTypeName","src":"10592:4:10","typeDescriptions":{}}},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10584:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10584:7:10","typeDescriptions":{}}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10584:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4029,"id":4040,"nodeType":"Return","src":"10577:39:10"}]},"id":4042,"implemented":true,"kind":"function","modifiers":[],"name":"_addressToBytes32","nameLocation":"10491:17:10","nodeType":"FunctionDefinition","parameters":{"id":4026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4025,"mutability":"mutable","name":"_address","nameLocation":"10517:8:10","nodeType":"VariableDeclaration","scope":4042,"src":"10509:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4024,"name":"address","nodeType":"ElementaryTypeName","src":"10509:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10508:18:10"},"returnParameters":{"id":4029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4042,"src":"10558:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10558:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10557:9:10"},"scope":4083,"src":"10482:141:10","stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4055,"implemented":false,"kind":"function","modifiers":[],"name":"_debitFrom","nameLocation":"10638:10:10","nodeType":"FunctionDefinition","parameters":{"id":4051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4044,"mutability":"mutable","name":"_from","nameLocation":"10666:5:10","nodeType":"VariableDeclaration","scope":4055,"src":"10658:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4043,"name":"address","nodeType":"ElementaryTypeName","src":"10658:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4046,"mutability":"mutable","name":"_dstChainId","nameLocation":"10688:11:10","nodeType":"VariableDeclaration","scope":4055,"src":"10681:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4045,"name":"uint16","nodeType":"ElementaryTypeName","src":"10681:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4048,"mutability":"mutable","name":"_toAddress","nameLocation":"10717:10:10","nodeType":"VariableDeclaration","scope":4055,"src":"10709:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10709:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4050,"mutability":"mutable","name":"_amount","nameLocation":"10742:7:10","nodeType":"VariableDeclaration","scope":4055,"src":"10737:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4049,"name":"uint","nodeType":"ElementaryTypeName","src":"10737:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10648:107:10"},"returnParameters":{"id":4054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4055,"src":"10782:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4052,"name":"uint","nodeType":"ElementaryTypeName","src":"10782:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10781:6:10"},"scope":4083,"src":"10629:159:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4066,"implemented":false,"kind":"function","modifiers":[],"name":"_creditTo","nameLocation":"10803:9:10","nodeType":"FunctionDefinition","parameters":{"id":4062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4057,"mutability":"mutable","name":"_srcChainId","nameLocation":"10829:11:10","nodeType":"VariableDeclaration","scope":4066,"src":"10822:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4056,"name":"uint16","nodeType":"ElementaryTypeName","src":"10822:6:10","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4059,"mutability":"mutable","name":"_toAddress","nameLocation":"10858:10:10","nodeType":"VariableDeclaration","scope":4066,"src":"10850:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4058,"name":"address","nodeType":"ElementaryTypeName","src":"10850:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4061,"mutability":"mutable","name":"_amount","nameLocation":"10883:7:10","nodeType":"VariableDeclaration","scope":4066,"src":"10878:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4060,"name":"uint","nodeType":"ElementaryTypeName","src":"10878:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10812:84:10"},"returnParameters":{"id":4065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4066,"src":"10923:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4063,"name":"uint","nodeType":"ElementaryTypeName","src":"10923:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10922:6:10"},"scope":4083,"src":"10794:135:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4077,"implemented":false,"kind":"function","modifiers":[],"name":"_transferFrom","nameLocation":"10944:13:10","nodeType":"FunctionDefinition","parameters":{"id":4073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4068,"mutability":"mutable","name":"_from","nameLocation":"10975:5:10","nodeType":"VariableDeclaration","scope":4077,"src":"10967:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4067,"name":"address","nodeType":"ElementaryTypeName","src":"10967:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4070,"mutability":"mutable","name":"_to","nameLocation":"10998:3:10","nodeType":"VariableDeclaration","scope":4077,"src":"10990:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4069,"name":"address","nodeType":"ElementaryTypeName","src":"10990:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4072,"mutability":"mutable","name":"_amount","nameLocation":"11016:7:10","nodeType":"VariableDeclaration","scope":4077,"src":"11011:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4071,"name":"uint","nodeType":"ElementaryTypeName","src":"11011:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10957:72:10"},"returnParameters":{"id":4076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4077,"src":"11056:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4074,"name":"uint","nodeType":"ElementaryTypeName","src":"11056:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11055:6:10"},"scope":4083,"src":"10935:127:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4082,"implemented":false,"kind":"function","modifiers":[],"name":"_ld2sdRate","nameLocation":"11077:10:10","nodeType":"FunctionDefinition","parameters":{"id":4078,"nodeType":"ParameterList","parameters":[],"src":"11087:2:10"},"returnParameters":{"id":4081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4082,"src":"11121:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4079,"name":"uint","nodeType":"ElementaryTypeName","src":"11121:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11120:6:10"},"scope":4083,"src":"11068:59:10","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4084,"src":"238:10891:10","usedErrors":[],"usedEvents":[471,477,483,491,1009,1019,3172,3181,3191,3195,5389]}],"src":"33:11097:10"},"id":10},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol","exportedSymbols":{"ICommonOFT":[4148],"IERC165":[7315]},"id":4149,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4085,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:11"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":4086,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4149,"sourceUnit":7316,"src":"59:65:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4088,"name":"IERC165","nameLocations":["202:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":7315,"src":"202:7:11"},"id":4089,"nodeType":"InheritanceSpecifier","src":"202:7:11"}],"canonicalName":"ICommonOFT","contractDependencies":[],"contractKind":"interface","documentation":{"id":4087,"nodeType":"StructuredDocumentation","src":"126:51:11","text":" @dev Interface of the IOFT core standard"},"fullyImplemented":false,"id":4148,"linearizedBaseContracts":[4148,7315],"name":"ICommonOFT","nameLocation":"188:10:11","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ICommonOFT.LzCallParams","id":4096,"members":[{"constant":false,"id":4091,"mutability":"mutable","name":"refundAddress","nameLocation":"263:13:11","nodeType":"VariableDeclaration","scope":4096,"src":"247:29:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4090,"name":"address","nodeType":"ElementaryTypeName","src":"247:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4093,"mutability":"mutable","name":"zroPaymentAddress","nameLocation":"294:17:11","nodeType":"VariableDeclaration","scope":4096,"src":"286:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4092,"name":"address","nodeType":"ElementaryTypeName","src":"286:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4095,"mutability":"mutable","name":"adapterParams","nameLocation":"327:13:11","nodeType":"VariableDeclaration","scope":4096,"src":"321:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4094,"name":"bytes","nodeType":"ElementaryTypeName","src":"321:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"LzCallParams","nameLocation":"224:12:11","nodeType":"StructDefinition","scope":4148,"src":"217:130:11","visibility":"public"},{"documentation":{"id":4097,"nodeType":"StructuredDocumentation","src":"353:456:11","text":" @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\n _dstChainId - L0 defined chain id to send tokens too\n _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\n _amount - amount of the tokens to transfer\n _useZro - indicates to use zro to pay L0 fees\n _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"functionSelector":"365260b4","id":4114,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendFee","nameLocation":"823:15:11","nodeType":"FunctionDefinition","parameters":{"id":4108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4099,"mutability":"mutable","name":"_dstChainId","nameLocation":"846:11:11","nodeType":"VariableDeclaration","scope":4114,"src":"839:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4098,"name":"uint16","nodeType":"ElementaryTypeName","src":"839:6:11","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4101,"mutability":"mutable","name":"_toAddress","nameLocation":"867:10:11","nodeType":"VariableDeclaration","scope":4114,"src":"859:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"859:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4103,"mutability":"mutable","name":"_amount","nameLocation":"884:7:11","nodeType":"VariableDeclaration","scope":4114,"src":"879:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4102,"name":"uint","nodeType":"ElementaryTypeName","src":"879:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4105,"mutability":"mutable","name":"_useZro","nameLocation":"898:7:11","nodeType":"VariableDeclaration","scope":4114,"src":"893:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4104,"name":"bool","nodeType":"ElementaryTypeName","src":"893:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4107,"mutability":"mutable","name":"_adapterParams","nameLocation":"922:14:11","nodeType":"VariableDeclaration","scope":4114,"src":"907:29:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4106,"name":"bytes","nodeType":"ElementaryTypeName","src":"907:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"838:99:11"},"returnParameters":{"id":4113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4110,"mutability":"mutable","name":"nativeFee","nameLocation":"966:9:11","nodeType":"VariableDeclaration","scope":4114,"src":"961:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4109,"name":"uint","nodeType":"ElementaryTypeName","src":"961:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4112,"mutability":"mutable","name":"zroFee","nameLocation":"982:6:11","nodeType":"VariableDeclaration","scope":4114,"src":"977:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4111,"name":"uint","nodeType":"ElementaryTypeName","src":"977:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"960:29:11"},"scope":4148,"src":"814:176:11","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a4c51df5","id":4135,"implemented":false,"kind":"function","modifiers":[],"name":"estimateSendAndCallFee","nameLocation":"1005:22:11","nodeType":"FunctionDefinition","parameters":{"id":4129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4116,"mutability":"mutable","name":"_dstChainId","nameLocation":"1035:11:11","nodeType":"VariableDeclaration","scope":4135,"src":"1028:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4115,"name":"uint16","nodeType":"ElementaryTypeName","src":"1028:6:11","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4118,"mutability":"mutable","name":"_toAddress","nameLocation":"1056:10:11","nodeType":"VariableDeclaration","scope":4135,"src":"1048:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1048:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"_amount","nameLocation":"1073:7:11","nodeType":"VariableDeclaration","scope":4135,"src":"1068:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4119,"name":"uint","nodeType":"ElementaryTypeName","src":"1068:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4122,"mutability":"mutable","name":"_payload","nameLocation":"1097:8:11","nodeType":"VariableDeclaration","scope":4135,"src":"1082:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4121,"name":"bytes","nodeType":"ElementaryTypeName","src":"1082:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4124,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"1114:14:11","nodeType":"VariableDeclaration","scope":4135,"src":"1107:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4123,"name":"uint64","nodeType":"ElementaryTypeName","src":"1107:6:11","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4126,"mutability":"mutable","name":"_useZro","nameLocation":"1135:7:11","nodeType":"VariableDeclaration","scope":4135,"src":"1130:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4125,"name":"bool","nodeType":"ElementaryTypeName","src":"1130:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4128,"mutability":"mutable","name":"_adapterParams","nameLocation":"1159:14:11","nodeType":"VariableDeclaration","scope":4135,"src":"1144:29:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4127,"name":"bytes","nodeType":"ElementaryTypeName","src":"1144:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1027:147:11"},"returnParameters":{"id":4134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4131,"mutability":"mutable","name":"nativeFee","nameLocation":"1203:9:11","nodeType":"VariableDeclaration","scope":4135,"src":"1198:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4130,"name":"uint","nodeType":"ElementaryTypeName","src":"1198:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4133,"mutability":"mutable","name":"zroFee","nameLocation":"1219:6:11","nodeType":"VariableDeclaration","scope":4135,"src":"1214:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4132,"name":"uint","nodeType":"ElementaryTypeName","src":"1214:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1197:29:11"},"scope":4148,"src":"996:231:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4136,"nodeType":"StructuredDocumentation","src":"1233:81:11","text":" @dev returns the circulating amount of tokens on current chain"},"functionSelector":"9358928b","id":4141,"implemented":false,"kind":"function","modifiers":[],"name":"circulatingSupply","nameLocation":"1328:17:11","nodeType":"FunctionDefinition","parameters":{"id":4137,"nodeType":"ParameterList","parameters":[],"src":"1345:2:11"},"returnParameters":{"id":4140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4141,"src":"1371:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4138,"name":"uint","nodeType":"ElementaryTypeName","src":"1371:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1370:6:11"},"scope":4148,"src":"1319:58:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4142,"nodeType":"StructuredDocumentation","src":"1383:62:11","text":" @dev returns the address of the ERC20 token"},"functionSelector":"fc0c546a","id":4147,"implemented":false,"kind":"function","modifiers":[],"name":"token","nameLocation":"1459:5:11","nodeType":"FunctionDefinition","parameters":{"id":4143,"nodeType":"ParameterList","parameters":[],"src":"1464:2:11"},"returnParameters":{"id":4146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4147,"src":"1490:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4144,"name":"address","nodeType":"ElementaryTypeName","src":"1490:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1489:9:11"},"scope":4148,"src":"1450:49:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4149,"src":"178:1323:11","usedErrors":[],"usedEvents":[]}],"src":"33:1469:11"},"id":11},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol","exportedSymbols":{"IOFTReceiverV2":[4167]},"id":4168,"license":"BUSL-1.1","nodeType":"SourceUnit","nodes":[{"id":4150,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"38:24:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IOFTReceiverV2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4167,"linearizedBaseContracts":[4167],"name":"IOFTReceiverV2","nameLocation":"74:14:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4151,"nodeType":"StructuredDocumentation","src":"95:527:12","text":" @dev Called by the OFT contract when tokens are received from source chain.\n @param _srcChainId The chain id of the source chain.\n @param _srcAddress The address of the OFT token contract on the source chain.\n @param _nonce The nonce of the transaction on the source chain.\n @param _from The address of the account who calls the sendAndCall() on the source chain.\n @param _amount The amount of tokens to transfer.\n @param _payload Additional data with no specified format."},"functionSelector":"7fcf35da","id":4166,"implemented":false,"kind":"function","modifiers":[],"name":"onOFTReceived","nameLocation":"636:13:12","nodeType":"FunctionDefinition","parameters":{"id":4164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4153,"mutability":"mutable","name":"_srcChainId","nameLocation":"657:11:12","nodeType":"VariableDeclaration","scope":4166,"src":"650:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4152,"name":"uint16","nodeType":"ElementaryTypeName","src":"650:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4155,"mutability":"mutable","name":"_srcAddress","nameLocation":"685:11:12","nodeType":"VariableDeclaration","scope":4166,"src":"670:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4154,"name":"bytes","nodeType":"ElementaryTypeName","src":"670:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4157,"mutability":"mutable","name":"_nonce","nameLocation":"705:6:12","nodeType":"VariableDeclaration","scope":4166,"src":"698:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4156,"name":"uint64","nodeType":"ElementaryTypeName","src":"698:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4159,"mutability":"mutable","name":"_from","nameLocation":"721:5:12","nodeType":"VariableDeclaration","scope":4166,"src":"713:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"713:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4161,"mutability":"mutable","name":"_amount","nameLocation":"733:7:12","nodeType":"VariableDeclaration","scope":4166,"src":"728:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4160,"name":"uint","nodeType":"ElementaryTypeName","src":"728:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4163,"mutability":"mutable","name":"_payload","nameLocation":"757:8:12","nodeType":"VariableDeclaration","scope":4166,"src":"742:23:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4162,"name":"bytes","nodeType":"ElementaryTypeName","src":"742:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"649:117:12"},"returnParameters":{"id":4165,"nodeType":"ParameterList","parameters":[],"src":"775:0:12"},"scope":4167,"src":"627:149:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4168,"src":"64:714:12","usedErrors":[],"usedEvents":[]}],"src":"38:741:12"},"id":12},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol":{"ast":{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol","exportedSymbols":{"ICommonOFT":[4148],"IERC165":[7315],"IOFTV2":[4207]},"id":4208,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4169,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"33:24:13"},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol","file":"./ICommonOFT.sol","id":4170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4208,"sourceUnit":4149,"src":"59:26:13","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4172,"name":"ICommonOFT","nameLocations":["159:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":4148,"src":"159:10:13"},"id":4173,"nodeType":"InheritanceSpecifier","src":"159:10:13"}],"canonicalName":"IOFTV2","contractDependencies":[],"contractKind":"interface","documentation":{"id":4171,"nodeType":"StructuredDocumentation","src":"87:51:13","text":" @dev Interface of the IOFT core standard"},"fullyImplemented":false,"id":4207,"linearizedBaseContracts":[4207,4148,7315],"name":"IOFTV2","nameLocation":"149:6:13","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4174,"nodeType":"StructuredDocumentation","src":"177:564:13","text":" @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\n `_from` the owner of token\n `_dstChainId` the destination chain identifier\n `_toAddress` can be any size depending on the `dstChainId`.\n `_amount` the quantity of tokens in wei\n `_refundAddress` the address LayerZero refunds if too much message fee is sent\n `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\n `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"functionSelector":"695ef6bf","id":4188,"implemented":false,"kind":"function","modifiers":[],"name":"sendFrom","nameLocation":"755:8:13","nodeType":"FunctionDefinition","parameters":{"id":4186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4176,"mutability":"mutable","name":"_from","nameLocation":"772:5:13","nodeType":"VariableDeclaration","scope":4188,"src":"764:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4175,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4178,"mutability":"mutable","name":"_dstChainId","nameLocation":"786:11:13","nodeType":"VariableDeclaration","scope":4188,"src":"779:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4177,"name":"uint16","nodeType":"ElementaryTypeName","src":"779:6:13","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4180,"mutability":"mutable","name":"_toAddress","nameLocation":"807:10:13","nodeType":"VariableDeclaration","scope":4188,"src":"799:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"799:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4182,"mutability":"mutable","name":"_amount","nameLocation":"824:7:13","nodeType":"VariableDeclaration","scope":4188,"src":"819:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4181,"name":"uint","nodeType":"ElementaryTypeName","src":"819:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4185,"mutability":"mutable","name":"_callParams","nameLocation":"855:11:13","nodeType":"VariableDeclaration","scope":4188,"src":"833:33:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams"},"typeName":{"id":4184,"nodeType":"UserDefinedTypeName","pathNode":{"id":4183,"name":"LzCallParams","nameLocations":["833:12:13"],"nodeType":"IdentifierPath","referencedDeclaration":4096,"src":"833:12:13"},"referencedDeclaration":4096,"src":"833:12:13","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_storage_ptr","typeString":"struct ICommonOFT.LzCallParams"}},"visibility":"internal"}],"src":"763:104:13"},"returnParameters":{"id":4187,"nodeType":"ParameterList","parameters":[],"src":"884:0:13"},"scope":4207,"src":"746:139:13","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"76203b48","id":4206,"implemented":false,"kind":"function","modifiers":[],"name":"sendAndCall","nameLocation":"900:11:13","nodeType":"FunctionDefinition","parameters":{"id":4204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4190,"mutability":"mutable","name":"_from","nameLocation":"920:5:13","nodeType":"VariableDeclaration","scope":4206,"src":"912:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4189,"name":"address","nodeType":"ElementaryTypeName","src":"912:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4192,"mutability":"mutable","name":"_dstChainId","nameLocation":"934:11:13","nodeType":"VariableDeclaration","scope":4206,"src":"927:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":4191,"name":"uint16","nodeType":"ElementaryTypeName","src":"927:6:13","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":4194,"mutability":"mutable","name":"_toAddress","nameLocation":"955:10:13","nodeType":"VariableDeclaration","scope":4206,"src":"947:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"947:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4196,"mutability":"mutable","name":"_amount","nameLocation":"972:7:13","nodeType":"VariableDeclaration","scope":4206,"src":"967:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4195,"name":"uint","nodeType":"ElementaryTypeName","src":"967:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4198,"mutability":"mutable","name":"_payload","nameLocation":"996:8:13","nodeType":"VariableDeclaration","scope":4206,"src":"981:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4197,"name":"bytes","nodeType":"ElementaryTypeName","src":"981:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4200,"mutability":"mutable","name":"_dstGasForCall","nameLocation":"1013:14:13","nodeType":"VariableDeclaration","scope":4206,"src":"1006:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4199,"name":"uint64","nodeType":"ElementaryTypeName","src":"1006:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":4203,"mutability":"mutable","name":"_callParams","nameLocation":"1051:11:13","nodeType":"VariableDeclaration","scope":4206,"src":"1029:33:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams"},"typeName":{"id":4202,"nodeType":"UserDefinedTypeName","pathNode":{"id":4201,"name":"LzCallParams","nameLocations":["1029:12:13"],"nodeType":"IdentifierPath","referencedDeclaration":4096,"src":"1029:12:13"},"referencedDeclaration":4096,"src":"1029:12:13","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_storage_ptr","typeString":"struct ICommonOFT.LzCallParams"}},"visibility":"internal"}],"src":"911:152:13"},"returnParameters":{"id":4205,"nodeType":"ParameterList","parameters":[],"src":"1080:0:13"},"scope":4207,"src":"891:190:13","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":4208,"src":"139:944:13","usedErrors":[],"usedEvents":[]}],"src":"33:1051:13"},"id":13},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[4944],"ContextUpgradeable":[4986],"Initializable":[4614],"Ownable2StepUpgradeable":[4313],"OwnableUpgradeable":[4445]},"id":4314,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4209,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:14"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":4210,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4314,"sourceUnit":4446,"src":"132:34:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":4211,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4314,"sourceUnit":4615,"src":"167:42:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4213,"name":"Initializable","nameLocations":["698:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":4614,"src":"698:13:14"},"id":4214,"nodeType":"InheritanceSpecifier","src":"698:13:14"},{"baseName":{"id":4215,"name":"OwnableUpgradeable","nameLocations":["713:18:14"],"nodeType":"IdentifierPath","referencedDeclaration":4445,"src":"713:18:14"},"id":4216,"nodeType":"InheritanceSpecifier","src":"713:18:14"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4212,"nodeType":"StructuredDocumentation","src":"211:441:14","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":4313,"linearizedBaseContracts":[4313,4445,4986,4614],"name":"Ownable2StepUpgradeable","nameLocation":"671:23:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":4224,"nodeType":"Block","src":"795:43:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4221,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"805:24:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4223,"nodeType":"ExpressionStatement","src":"805:26:14"}]},"id":4225,"implemented":true,"kind":"function","modifiers":[{"id":4219,"kind":"modifierInvocation","modifierName":{"id":4218,"name":"onlyInitializing","nameLocations":["778:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"778:16:14"},"nodeType":"ModifierInvocation","src":"778:16:14"}],"name":"__Ownable2Step_init","nameLocation":"747:19:14","nodeType":"FunctionDefinition","parameters":{"id":4217,"nodeType":"ParameterList","parameters":[],"src":"766:2:14"},"returnParameters":{"id":4220,"nodeType":"ParameterList","parameters":[],"src":"795:0:14"},"scope":4313,"src":"738:100:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4230,"nodeType":"Block","src":"911:7:14","statements":[]},"id":4231,"implemented":true,"kind":"function","modifiers":[{"id":4228,"kind":"modifierInvocation","modifierName":{"id":4227,"name":"onlyInitializing","nameLocations":["894:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"894:16:14"},"nodeType":"ModifierInvocation","src":"894:16:14"}],"name":"__Ownable2Step_init_unchained","nameLocation":"853:29:14","nodeType":"FunctionDefinition","parameters":{"id":4226,"nodeType":"ParameterList","parameters":[],"src":"882:2:14"},"returnParameters":{"id":4229,"nodeType":"ParameterList","parameters":[],"src":"911:0:14"},"scope":4313,"src":"844:74:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"id":4233,"mutability":"mutable","name":"_pendingOwner","nameLocation":"939:13:14","nodeType":"VariableDeclaration","scope":4313,"src":"923:29:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4232,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":4239,"name":"OwnershipTransferStarted","nameLocation":"965:24:14","nodeType":"EventDefinition","parameters":{"id":4238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4235,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1006:13:14","nodeType":"VariableDeclaration","scope":4239,"src":"990:29:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4234,"name":"address","nodeType":"ElementaryTypeName","src":"990:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4237,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1037:8:14","nodeType":"VariableDeclaration","scope":4239,"src":"1021:24:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4236,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"989:57:14"},"src":"959:88:14"},{"body":{"id":4247,"nodeType":"Block","src":"1185:37:14","statements":[{"expression":{"id":4245,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"1202:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4244,"id":4246,"nodeType":"Return","src":"1195:20:14"}]},"documentation":{"id":4240,"nodeType":"StructuredDocumentation","src":"1053:65:14","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":4248,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"1132:12:14","nodeType":"FunctionDefinition","parameters":{"id":4241,"nodeType":"ParameterList","parameters":[],"src":"1144:2:14"},"returnParameters":{"id":4244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4248,"src":"1176:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4242,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1175:9:14"},"scope":4313,"src":"1123:99:14","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4419],"body":{"id":4267,"nodeType":"Block","src":"1494:99:14","statements":[{"expression":{"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4257,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"1504:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4258,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"1520:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1504:24:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4260,"nodeType":"ExpressionStatement","src":"1504:24:14"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4262,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"1568:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:7:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4264,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"1577:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4261,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"1543:24:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4266,"nodeType":"EmitStatement","src":"1538:48:14"}]},"documentation":{"id":4249,"nodeType":"StructuredDocumentation","src":"1228:182:14","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":4268,"implemented":true,"kind":"function","modifiers":[{"id":4255,"kind":"modifierInvocation","modifierName":{"id":4254,"name":"onlyOwner","nameLocations":["1484:9:14"],"nodeType":"IdentifierPath","referencedDeclaration":4359,"src":"1484:9:14"},"nodeType":"ModifierInvocation","src":"1484:9:14"}],"name":"transferOwnership","nameLocation":"1424:17:14","nodeType":"FunctionDefinition","overrides":{"id":4253,"nodeType":"OverrideSpecifier","overrides":[],"src":"1475:8:14"},"parameters":{"id":4252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4251,"mutability":"mutable","name":"newOwner","nameLocation":"1450:8:14","nodeType":"VariableDeclaration","scope":4268,"src":"1442:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4250,"name":"address","nodeType":"ElementaryTypeName","src":"1442:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1441:18:14"},"returnParameters":{"id":4256,"nodeType":"ParameterList","parameters":[],"src":"1494:0:14"},"scope":4313,"src":"1415:178:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[4439],"body":{"id":4284,"nodeType":"Block","src":"1849:81:14","statements":[{"expression":{"id":4276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1859:20:14","subExpression":{"id":4275,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"1866:13:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4277,"nodeType":"ExpressionStatement","src":"1859:20:14"},{"expression":{"arguments":[{"id":4281,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"1914:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4278,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1889:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$4313_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1895:18:14","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":4439,"src":"1889:24:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4283,"nodeType":"ExpressionStatement","src":"1889:34:14"}]},"documentation":{"id":4269,"nodeType":"StructuredDocumentation","src":"1599:173:14","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":4285,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1786:18:14","nodeType":"FunctionDefinition","overrides":{"id":4273,"nodeType":"OverrideSpecifier","overrides":[],"src":"1840:8:14"},"parameters":{"id":4272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4271,"mutability":"mutable","name":"newOwner","nameLocation":"1813:8:14","nodeType":"VariableDeclaration","scope":4285,"src":"1805:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4270,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1804:18:14"},"returnParameters":{"id":4274,"nodeType":"ParameterList","parameters":[],"src":"1849:0:14"},"scope":4313,"src":"1777:153:14","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4306,"nodeType":"Block","src":"2052:170:14","statements":[{"assignments":[4290],"declarations":[{"constant":false,"id":4290,"mutability":"mutable","name":"sender","nameLocation":"2070:6:14","nodeType":"VariableDeclaration","scope":4306,"src":"2062:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4289,"name":"address","nodeType":"ElementaryTypeName","src":"2062:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4293,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4291,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"2079:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2079:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2062:29:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4295,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4248,"src":"2109:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2109:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4297,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4290,"src":"2127:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2109:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":4299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2135:43:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""},"value":"Ownable2Step: caller is not the new owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""}],"id":4294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2101:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4301,"nodeType":"ExpressionStatement","src":"2101:78:14"},{"expression":{"arguments":[{"id":4303,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4290,"src":"2208:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4302,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[4285],"referencedDeclaration":4285,"src":"2189:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2189:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4305,"nodeType":"ExpressionStatement","src":"2189:26:14"}]},"documentation":{"id":4286,"nodeType":"StructuredDocumentation","src":"1936:69:14","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":4307,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"2019:15:14","nodeType":"FunctionDefinition","parameters":{"id":4287,"nodeType":"ParameterList","parameters":[],"src":"2034:2:14"},"returnParameters":{"id":4288,"nodeType":"ParameterList","parameters":[],"src":"2052:0:14"},"scope":4313,"src":"2010:212:14","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":4308,"nodeType":"StructuredDocumentation","src":"2228:254:14","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":4312,"mutability":"mutable","name":"__gap","nameLocation":"2507:5:14","nodeType":"VariableDeclaration","scope":4313,"src":"2487:25:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":4309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4311,"length":{"hexValue":"3439","id":4310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:2:14","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2487:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":4314,"src":"653:1862:14","usedErrors":[],"usedEvents":[4239,4330,4460]}],"src":"107:2409:14"},"id":14},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[4944],"ContextUpgradeable":[4986],"Initializable":[4614],"OwnableUpgradeable":[4445]},"id":4446,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4315,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:15"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":4316,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4446,"sourceUnit":4987,"src":"127:41:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":4317,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4446,"sourceUnit":4615,"src":"169:42:15","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4319,"name":"Initializable","nameLocations":["748:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":4614,"src":"748:13:15"},"id":4320,"nodeType":"InheritanceSpecifier","src":"748:13:15"},{"baseName":{"id":4321,"name":"ContextUpgradeable","nameLocations":["763:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":4986,"src":"763:18:15"},"id":4322,"nodeType":"InheritanceSpecifier","src":"763:18:15"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4318,"nodeType":"StructuredDocumentation","src":"213:494:15","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":4445,"linearizedBaseContracts":[4445,4986,4614],"name":"OwnableUpgradeable","nameLocation":"726:18:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4324,"mutability":"mutable","name":"_owner","nameLocation":"804:6:15","nodeType":"VariableDeclaration","scope":4445,"src":"788:22:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4323,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":4330,"name":"OwnershipTransferred","nameLocation":"823:20:15","nodeType":"EventDefinition","parameters":{"id":4329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4326,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:15","nodeType":"VariableDeclaration","scope":4330,"src":"844:29:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4325,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4328,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:15","nodeType":"VariableDeclaration","scope":4330,"src":"875:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4327,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:15"},"src":"817:84:15"},{"body":{"id":4339,"nodeType":"Block","src":"1055:43:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4336,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"1065:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4338,"nodeType":"ExpressionStatement","src":"1065:26:15"}]},"documentation":{"id":4331,"nodeType":"StructuredDocumentation","src":"907:91:15","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":4340,"implemented":true,"kind":"function","modifiers":[{"id":4334,"kind":"modifierInvocation","modifierName":{"id":4333,"name":"onlyInitializing","nameLocations":["1038:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"1038:16:15"},"nodeType":"ModifierInvocation","src":"1038:16:15"}],"name":"__Ownable_init","nameLocation":"1012:14:15","nodeType":"FunctionDefinition","parameters":{"id":4332,"nodeType":"ParameterList","parameters":[],"src":"1026:2:15"},"returnParameters":{"id":4335,"nodeType":"ParameterList","parameters":[],"src":"1055:0:15"},"scope":4445,"src":"1003:95:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4350,"nodeType":"Block","src":"1166:49:15","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":4346,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"1195:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4345,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"1176:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1176:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4349,"nodeType":"ExpressionStatement","src":"1176:32:15"}]},"id":4351,"implemented":true,"kind":"function","modifiers":[{"id":4343,"kind":"modifierInvocation","modifierName":{"id":4342,"name":"onlyInitializing","nameLocations":["1149:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"1149:16:15"},"nodeType":"ModifierInvocation","src":"1149:16:15"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:15","nodeType":"FunctionDefinition","parameters":{"id":4341,"nodeType":"ParameterList","parameters":[],"src":"1137:2:15"},"returnParameters":{"id":4344,"nodeType":"ParameterList","parameters":[],"src":"1166:0:15"},"scope":4445,"src":"1104:111:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4358,"nodeType":"Block","src":"1324:41:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4354,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"1334:11:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4356,"nodeType":"ExpressionStatement","src":"1334:13:15"},{"id":4357,"nodeType":"PlaceholderStatement","src":"1357:1:15"}]},"documentation":{"id":4352,"nodeType":"StructuredDocumentation","src":"1221:77:15","text":" @dev Throws if called by any account other than the owner."},"id":4359,"name":"onlyOwner","nameLocation":"1312:9:15","nodeType":"ModifierDefinition","parameters":{"id":4353,"nodeType":"ParameterList","parameters":[],"src":"1321:2:15"},"src":"1303:62:15","virtual":false,"visibility":"internal"},{"body":{"id":4367,"nodeType":"Block","src":"1496:30:15","statements":[{"expression":{"id":4365,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"1513:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4364,"id":4366,"nodeType":"Return","src":"1506:13:15"}]},"documentation":{"id":4360,"nodeType":"StructuredDocumentation","src":"1371:65:15","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":4368,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:15","nodeType":"FunctionDefinition","parameters":{"id":4361,"nodeType":"ParameterList","parameters":[],"src":"1455:2:15"},"returnParameters":{"id":4364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4368,"src":"1487:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4362,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:15"},"scope":4445,"src":"1441:85:15","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":4381,"nodeType":"Block","src":"1644:85:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4373,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"1662:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4375,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"1673:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":4378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":4372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4380,"nodeType":"ExpressionStatement","src":"1654:68:15"}]},"documentation":{"id":4369,"nodeType":"StructuredDocumentation","src":"1532:62:15","text":" @dev Throws if the sender is not the owner."},"id":4382,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:15","nodeType":"FunctionDefinition","parameters":{"id":4370,"nodeType":"ParameterList","parameters":[],"src":"1619:2:15"},"returnParameters":{"id":4371,"nodeType":"ParameterList","parameters":[],"src":"1644:0:15"},"scope":4445,"src":"1599:130:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4395,"nodeType":"Block","src":"2118:47:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":4391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2155:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2147:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4389,"name":"address","nodeType":"ElementaryTypeName","src":"2147:7:15","typeDescriptions":{}}},"id":4392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2147:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4388,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"2128:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4394,"nodeType":"ExpressionStatement","src":"2128:30:15"}]},"documentation":{"id":4383,"nodeType":"StructuredDocumentation","src":"1735:324:15","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":4396,"implemented":true,"kind":"function","modifiers":[{"id":4386,"kind":"modifierInvocation","modifierName":{"id":4385,"name":"onlyOwner","nameLocations":["2108:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":4359,"src":"2108:9:15"},"nodeType":"ModifierInvocation","src":"2108:9:15"}],"name":"renounceOwnership","nameLocation":"2073:17:15","nodeType":"FunctionDefinition","parameters":{"id":4384,"nodeType":"ParameterList","parameters":[],"src":"2090:2:15"},"returnParameters":{"id":4387,"nodeType":"ParameterList","parameters":[],"src":"2118:0:15"},"scope":4445,"src":"2064:101:15","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4418,"nodeType":"Block","src":"2384:128:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4405,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"2402:8:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2422:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2414:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4406,"name":"address","nodeType":"ElementaryTypeName","src":"2414:7:15","typeDescriptions":{}}},"id":4409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2414:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2402:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":4411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2426:40:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":4404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2394:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4413,"nodeType":"ExpressionStatement","src":"2394:73:15"},{"expression":{"arguments":[{"id":4415,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"2496:8:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4414,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4439,"src":"2477:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2477:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4417,"nodeType":"ExpressionStatement","src":"2477:28:15"}]},"documentation":{"id":4397,"nodeType":"StructuredDocumentation","src":"2171:138:15","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":4419,"implemented":true,"kind":"function","modifiers":[{"id":4402,"kind":"modifierInvocation","modifierName":{"id":4401,"name":"onlyOwner","nameLocations":["2374:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":4359,"src":"2374:9:15"},"nodeType":"ModifierInvocation","src":"2374:9:15"}],"name":"transferOwnership","nameLocation":"2323:17:15","nodeType":"FunctionDefinition","parameters":{"id":4400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4399,"mutability":"mutable","name":"newOwner","nameLocation":"2349:8:15","nodeType":"VariableDeclaration","scope":4419,"src":"2341:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4398,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2340:18:15"},"returnParameters":{"id":4403,"nodeType":"ParameterList","parameters":[],"src":"2384:0:15"},"scope":4445,"src":"2314:198:15","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":4438,"nodeType":"Block","src":"2729:124:15","statements":[{"assignments":[4426],"declarations":[{"constant":false,"id":4426,"mutability":"mutable","name":"oldOwner","nameLocation":"2747:8:15","nodeType":"VariableDeclaration","scope":4438,"src":"2739:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4425,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4428,"initialValue":{"id":4427,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"2758:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2739:25:15"},{"expression":{"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4429,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4324,"src":"2774:6:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4430,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"2783:8:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2774:17:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4432,"nodeType":"ExpressionStatement","src":"2774:17:15"},{"eventCall":{"arguments":[{"id":4434,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"2827:8:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4435,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"2837:8:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4433,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"2806:20:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2806:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4437,"nodeType":"EmitStatement","src":"2801:45:15"}]},"documentation":{"id":4420,"nodeType":"StructuredDocumentation","src":"2518:143:15","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":4439,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2675:18:15","nodeType":"FunctionDefinition","parameters":{"id":4423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4422,"mutability":"mutable","name":"newOwner","nameLocation":"2702:8:15","nodeType":"VariableDeclaration","scope":4439,"src":"2694:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4421,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2693:18:15"},"returnParameters":{"id":4424,"nodeType":"ParameterList","parameters":[],"src":"2729:0:15"},"scope":4445,"src":"2666:187:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":4440,"nodeType":"StructuredDocumentation","src":"2859:254:15","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":4444,"mutability":"mutable","name":"__gap","nameLocation":"3138:5:15","nodeType":"VariableDeclaration","scope":4445,"src":"3118:25:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":4441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3118:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4443,"length":{"hexValue":"3439","id":4442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3126:2:15","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3118:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":4446,"src":"708:2438:15","usedErrors":[],"usedEvents":[4330,4460]}],"src":"102:3045:15"},"id":15},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[4944],"Initializable":[4614]},"id":4615,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4447,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:16"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":4448,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4615,"sourceUnit":4945,"src":"138:44:16","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4449,"nodeType":"StructuredDocumentation","src":"184:2209:16","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":4614,"linearizedBaseContracts":[4614],"name":"Initializable","nameLocation":"2412:13:16","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":4450,"nodeType":"StructuredDocumentation","src":"2432:109:16","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":4452,"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:16","nodeType":"VariableDeclaration","scope":4614,"src":"2546:26:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4451,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":4453,"nodeType":"StructuredDocumentation","src":"2579:91:16","text":" @dev Indicates that the contract is in the process of being initialized."},"id":4455,"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:16","nodeType":"VariableDeclaration","scope":4614,"src":"2675:26:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4454,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":4456,"nodeType":"StructuredDocumentation","src":"2708:90:16","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":4460,"name":"Initialized","nameLocation":"2809:11:16","nodeType":"EventDefinition","parameters":{"id":4459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:16","nodeType":"VariableDeclaration","scope":4460,"src":"2821:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4457,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:16"},"src":"2803:33:16"},{"body":{"id":4515,"nodeType":"Block","src":"3269:483:16","statements":[{"assignments":[4464],"declarations":[{"constant":false,"id":4464,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:16","nodeType":"VariableDeclaration","scope":4515,"src":"3279:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4463,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":4467,"initialValue":{"id":4466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:16","subExpression":{"id":4465,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"3302:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4469,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"3347:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4470,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3365:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":4471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":4474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:16","subExpression":{"arguments":[{"arguments":[{"id":4479,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$4614","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$4614","typeString":"contract Initializable"}],"id":4478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4477,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:16","typeDescriptions":{}}},"id":4480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4475,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4944,"src":"3388:18:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$4944_$","typeString":"type(library AddressUpgradeable)"}},"id":4476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3407:10:16","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":4632,"src":"3388:29:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:44:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4483,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3436:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":4487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":4489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":4468,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3325:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:201:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4491,"nodeType":"ExpressionStatement","src":"3325:201:16"},{"expression":{"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4492,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"3536:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":4493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4495,"nodeType":"ExpressionStatement","src":"3536:16:16"},{"condition":{"id":4496,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"3566:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4502,"nodeType":"IfStatement","src":"3562:65:16","trueBody":{"id":4501,"nodeType":"Block","src":"3582:45:16","statements":[{"expression":{"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4497,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"3596:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4500,"nodeType":"ExpressionStatement","src":"3596:20:16"}]}},{"id":4503,"nodeType":"PlaceholderStatement","src":"3636:1:16"},{"condition":{"id":4504,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"3651:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4514,"nodeType":"IfStatement","src":"3647:99:16","trueBody":{"id":4513,"nodeType":"Block","src":"3667:79:16","statements":[{"expression":{"id":4507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4505,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"3681:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4508,"nodeType":"ExpressionStatement","src":"3681:21:16"},{"eventCall":{"arguments":[{"hexValue":"31","id":4510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4509,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4460,"src":"3721:11:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4512,"nodeType":"EmitStatement","src":"3716:19:16"}]}}]},"documentation":{"id":4461,"nodeType":"StructuredDocumentation","src":"2842:399:16","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"id":4516,"name":"initializer","nameLocation":"3255:11:16","nodeType":"ModifierDefinition","parameters":{"id":4462,"nodeType":"ParameterList","parameters":[],"src":"3266:2:16"},"src":"3246:506:16","virtual":false,"visibility":"internal"},{"body":{"id":4548,"nodeType":"Block","src":"4863:255:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:16","subExpression":{"id":4522,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"4882:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4524,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4899:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4525,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4519,"src":"4914:7:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":4528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":4521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4873:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:99:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4530,"nodeType":"ExpressionStatement","src":"4873:99:16"},{"expression":{"id":4533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4531,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"4982:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4532,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4519,"src":"4997:7:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4534,"nodeType":"ExpressionStatement","src":"4982:22:16"},{"expression":{"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4535,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"5014:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4538,"nodeType":"ExpressionStatement","src":"5014:20:16"},{"id":4539,"nodeType":"PlaceholderStatement","src":"5044:1:16"},{"expression":{"id":4542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4540,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"5055:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4543,"nodeType":"ExpressionStatement","src":"5055:21:16"},{"eventCall":{"arguments":[{"id":4545,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4519,"src":"5103:7:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4544,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4460,"src":"5091:11:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4547,"nodeType":"EmitStatement","src":"5086:25:16"}]},"documentation":{"id":4517,"nodeType":"StructuredDocumentation","src":"3758:1062:16","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":4549,"name":"reinitializer","nameLocation":"4834:13:16","nodeType":"ModifierDefinition","parameters":{"id":4520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4519,"mutability":"mutable","name":"version","nameLocation":"4854:7:16","nodeType":"VariableDeclaration","scope":4549,"src":"4848:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4518,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:16"},"src":"4825:293:16","virtual":false,"visibility":"internal"},{"body":{"id":4558,"nodeType":"Block","src":"5356:97:16","statements":[{"expression":{"arguments":[{"id":4553,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"5374:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":4554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":4552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5366:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4556,"nodeType":"ExpressionStatement","src":"5366:69:16"},{"id":4557,"nodeType":"PlaceholderStatement","src":"5445:1:16"}]},"documentation":{"id":4550,"nodeType":"StructuredDocumentation","src":"5124:199:16","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":4559,"name":"onlyInitializing","nameLocation":"5337:16:16","nodeType":"ModifierDefinition","parameters":{"id":4551,"nodeType":"ParameterList","parameters":[],"src":"5353:2:16"},"src":"5328:125:16","virtual":false,"visibility":"internal"},{"body":{"id":4594,"nodeType":"Block","src":"5988:231:16","statements":[{"expression":{"arguments":[{"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:16","subExpression":{"id":4564,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"6007:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":4566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":4563,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5998:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"5998:66:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4569,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6078:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":4572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4571,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:16","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4570,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6106:3:16","memberName":"max","nodeType":"MemberAccess","src":"6094:15:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4593,"nodeType":"IfStatement","src":"6074:139:16","trueBody":{"id":4592,"nodeType":"Block","src":"6111:102:16","statements":[{"expression":{"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4576,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6125:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":4579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4578,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:16","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4577,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:3:16","memberName":"max","nodeType":"MemberAccess","src":"6140:15:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4583,"nodeType":"ExpressionStatement","src":"6125:30:16"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":4587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4586,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:16","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":4585,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":4589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6198:3:16","memberName":"max","nodeType":"MemberAccess","src":"6186:15:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4584,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4460,"src":"6174:11:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":4590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4591,"nodeType":"EmitStatement","src":"6169:33:16"}]}}]},"documentation":{"id":4560,"nodeType":"StructuredDocumentation","src":"5459:475:16","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":4595,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:16","nodeType":"FunctionDefinition","parameters":{"id":4561,"nodeType":"ParameterList","parameters":[],"src":"5968:2:16"},"returnParameters":{"id":4562,"nodeType":"ParameterList","parameters":[],"src":"5988:0:16"},"scope":4614,"src":"5939:280:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4603,"nodeType":"Block","src":"6393:36:16","statements":[{"expression":{"id":4601,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"6410:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":4600,"id":4602,"nodeType":"Return","src":"6403:19:16"}]},"documentation":{"id":4596,"nodeType":"StructuredDocumentation","src":"6225:99:16","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":4604,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:16","nodeType":"FunctionDefinition","parameters":{"id":4597,"nodeType":"ParameterList","parameters":[],"src":"6360:2:16"},"returnParameters":{"id":4600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4604,"src":"6386:5:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4598,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:16"},"scope":4614,"src":"6329:100:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4612,"nodeType":"Block","src":"6601:37:16","statements":[{"expression":{"id":4610,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"6618:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4609,"id":4611,"nodeType":"Return","src":"6611:20:16"}]},"documentation":{"id":4605,"nodeType":"StructuredDocumentation","src":"6435:105:16","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":4613,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:16","nodeType":"FunctionDefinition","parameters":{"id":4606,"nodeType":"ParameterList","parameters":[],"src":"6569:2:16"},"returnParameters":{"id":4609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4613,"src":"6595:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4607,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:16"},"scope":4614,"src":"6545:93:16","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4615,"src":"2394:4246:16","usedErrors":[],"usedEvents":[4460]}],"src":"113:6528:16"},"id":16},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[4944]},"id":4945,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4616,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:17"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":4617,"nodeType":"StructuredDocumentation","src":"126:67:17","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":4944,"linearizedBaseContracts":[4944],"name":"AddressUpgradeable","nameLocation":"202:18:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":4631,"nodeType":"Block","src":"1489:254:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4625,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4620,"src":"1713:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:4:17","memberName":"code","nodeType":"MemberAccess","src":"1713:12:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:17","memberName":"length","nodeType":"MemberAccess","src":"1713:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4624,"id":4630,"nodeType":"Return","src":"1706:30:17"}]},"documentation":{"id":4618,"nodeType":"StructuredDocumentation","src":"227:1191:17","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":4632,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:17","nodeType":"FunctionDefinition","parameters":{"id":4621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4620,"mutability":"mutable","name":"account","nameLocation":"1451:7:17","nodeType":"VariableDeclaration","scope":4632,"src":"1443:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4619,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:17"},"returnParameters":{"id":4624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4632,"src":"1483:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4622,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:17"},"scope":4944,"src":"1423:320:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4665,"nodeType":"Block","src":"2729:241:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$4944","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$4944","typeString":"library AddressUpgradeable"}],"id":4642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4641,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:17","typeDescriptions":{}}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:7:17","memberName":"balance","nodeType":"MemberAccess","src":"2747:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4646,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4637,"src":"2772:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":4648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":4640,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2739:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:73:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4650,"nodeType":"ExpressionStatement","src":"2739:73:17"},{"assignments":[4652,null],"declarations":[{"constant":false,"id":4652,"mutability":"mutable","name":"success","nameLocation":"2829:7:17","nodeType":"VariableDeclaration","scope":4665,"src":"2824:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4651,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4659,"initialValue":{"arguments":[{"hexValue":"","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":4653,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4635,"src":"2842:9:17","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:17","memberName":"call","nodeType":"MemberAccess","src":"2842:14:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4655,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4637,"src":"2864:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:17"},{"expression":{"arguments":[{"id":4661,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"2893:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":4662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":4660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2885:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:78:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4664,"nodeType":"ExpressionStatement","src":"2885:78:17"}]},"documentation":{"id":4633,"nodeType":"StructuredDocumentation","src":"1749:904:17","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":4666,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:17","nodeType":"FunctionDefinition","parameters":{"id":4638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4635,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:17","nodeType":"VariableDeclaration","scope":4666,"src":"2677:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4634,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:17","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4637,"mutability":"mutable","name":"amount","nameLocation":"2712:6:17","nodeType":"VariableDeclaration","scope":4666,"src":"2704:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4636,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:17"},"returnParameters":{"id":4639,"nodeType":"ParameterList","parameters":[],"src":"2729:0:17"},"scope":4944,"src":"2658:312:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4683,"nodeType":"Block","src":"3801:96:17","statements":[{"expression":{"arguments":[{"id":4677,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4669,"src":"3840:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4678,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4671,"src":"3848:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":4679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":4680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":4676,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4724,4768],"referencedDeclaration":4768,"src":"3818:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:72:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4675,"id":4682,"nodeType":"Return","src":"3811:79:17"}]},"documentation":{"id":4667,"nodeType":"StructuredDocumentation","src":"2976:731:17","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":4684,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:17","nodeType":"FunctionDefinition","parameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4669,"mutability":"mutable","name":"target","nameLocation":"3742:6:17","nodeType":"VariableDeclaration","scope":4684,"src":"3734:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4668,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4671,"mutability":"mutable","name":"data","nameLocation":"3763:4:17","nodeType":"VariableDeclaration","scope":4684,"src":"3750:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4670,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:17"},"returnParameters":{"id":4675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4684,"src":"3787:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4673,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:17"},"scope":4944,"src":"3712:185:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4703,"nodeType":"Block","src":"4266:76:17","statements":[{"expression":{"arguments":[{"id":4697,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4687,"src":"4305:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4698,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4689,"src":"4313:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":4699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4700,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"4322:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4696,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4724,4768],"referencedDeclaration":4768,"src":"4283:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4283:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4695,"id":4702,"nodeType":"Return","src":"4276:59:17"}]},"documentation":{"id":4685,"nodeType":"StructuredDocumentation","src":"3903:211:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":4704,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:17","nodeType":"FunctionDefinition","parameters":{"id":4692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4687,"mutability":"mutable","name":"target","nameLocation":"4158:6:17","nodeType":"VariableDeclaration","scope":4704,"src":"4150:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4686,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4689,"mutability":"mutable","name":"data","nameLocation":"4187:4:17","nodeType":"VariableDeclaration","scope":4704,"src":"4174:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4688,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4691,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:17","nodeType":"VariableDeclaration","scope":4704,"src":"4201:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4690,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:17"},"returnParameters":{"id":4695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4704,"src":"4252:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4693,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:17"},"scope":4944,"src":"4119:223:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4723,"nodeType":"Block","src":"4817:111:17","statements":[{"expression":{"arguments":[{"id":4717,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4707,"src":"4856:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4718,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"4864:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4719,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"4870:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":4720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":4716,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4724,4768],"referencedDeclaration":4768,"src":"4834:21:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:87:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4715,"id":4722,"nodeType":"Return","src":"4827:94:17"}]},"documentation":{"id":4705,"nodeType":"StructuredDocumentation","src":"4348:351:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":4724,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:17","nodeType":"FunctionDefinition","parameters":{"id":4712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4707,"mutability":"mutable","name":"target","nameLocation":"4743:6:17","nodeType":"VariableDeclaration","scope":4724,"src":"4735:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4706,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4709,"mutability":"mutable","name":"data","nameLocation":"4764:4:17","nodeType":"VariableDeclaration","scope":4724,"src":"4751:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4708,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4711,"mutability":"mutable","name":"value","nameLocation":"4778:5:17","nodeType":"VariableDeclaration","scope":4724,"src":"4770:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:17"},"returnParameters":{"id":4715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4724,"src":"4803:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4713,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:17"},"scope":4944,"src":"4704:224:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4767,"nodeType":"Block","src":"5355:267:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4741,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$4944","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$4944","typeString":"library AddressUpgradeable"}],"id":4740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4739,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:17","typeDescriptions":{}}},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:7:17","memberName":"balance","nodeType":"MemberAccess","src":"5373:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4731,"src":"5398:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":4746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":4738,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:81:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4748,"nodeType":"ExpressionStatement","src":"5365:81:17"},{"assignments":[4750,4752],"declarations":[{"constant":false,"id":4750,"mutability":"mutable","name":"success","nameLocation":"5462:7:17","nodeType":"VariableDeclaration","scope":4767,"src":"5457:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4749,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4752,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:17","nodeType":"VariableDeclaration","scope":4767,"src":"5471:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4751,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4759,"initialValue":{"arguments":[{"id":4757,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4729,"src":"5524:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4753,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"5498:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5505:4:17","memberName":"call","nodeType":"MemberAccess","src":"5498:11:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4731,"src":"5517:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:17"},{"expression":{"arguments":[{"id":4761,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"5573:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4762,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"5581:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4763,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"5590:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4764,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"5602:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4760,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"5546:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:69:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4737,"id":4766,"nodeType":"Return","src":"5539:76:17"}]},"documentation":{"id":4725,"nodeType":"StructuredDocumentation","src":"4934:237:17","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":4768,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:17","nodeType":"FunctionDefinition","parameters":{"id":4734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4727,"mutability":"mutable","name":"target","nameLocation":"5224:6:17","nodeType":"VariableDeclaration","scope":4768,"src":"5216:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4726,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4729,"mutability":"mutable","name":"data","nameLocation":"5253:4:17","nodeType":"VariableDeclaration","scope":4768,"src":"5240:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4728,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4731,"mutability":"mutable","name":"value","nameLocation":"5275:5:17","nodeType":"VariableDeclaration","scope":4768,"src":"5267:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4730,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4733,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:17","nodeType":"VariableDeclaration","scope":4768,"src":"5290:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4732,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:17"},"returnParameters":{"id":4737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4768,"src":"5341:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4735,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:17"},"scope":4944,"src":"5176:446:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4784,"nodeType":"Block","src":"5899:97:17","statements":[{"expression":{"arguments":[{"id":4779,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4771,"src":"5935:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4780,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"5943:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":4781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":4778,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[4785,4814],"referencedDeclaration":4814,"src":"5916:18:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":4782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:73:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4777,"id":4783,"nodeType":"Return","src":"5909:80:17"}]},"documentation":{"id":4769,"nodeType":"StructuredDocumentation","src":"5628:166:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":4785,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:17","nodeType":"FunctionDefinition","parameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4771,"mutability":"mutable","name":"target","nameLocation":"5835:6:17","nodeType":"VariableDeclaration","scope":4785,"src":"5827:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4770,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4773,"mutability":"mutable","name":"data","nameLocation":"5856:4:17","nodeType":"VariableDeclaration","scope":4785,"src":"5843:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4772,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:17"},"returnParameters":{"id":4777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4785,"src":"5885:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4775,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:17"},"scope":4944,"src":"5799:197:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4813,"nodeType":"Block","src":"6338:168:17","statements":[{"assignments":[4798,4800],"declarations":[{"constant":false,"id":4798,"mutability":"mutable","name":"success","nameLocation":"6354:7:17","nodeType":"VariableDeclaration","scope":4813,"src":"6349:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4797,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4800,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:17","nodeType":"VariableDeclaration","scope":4813,"src":"6363:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4799,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4805,"initialValue":{"arguments":[{"id":4803,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"6408:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4801,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"6390:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:17","memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:17","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":4804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:17"},{"expression":{"arguments":[{"id":4807,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"6457:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4808,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4798,"src":"6465:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4809,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"6474:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4810,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4792,"src":"6486:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4806,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"6430:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:69:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4796,"id":4812,"nodeType":"Return","src":"6423:76:17"}]},"documentation":{"id":4786,"nodeType":"StructuredDocumentation","src":"6002:173:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":4814,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:17","nodeType":"FunctionDefinition","parameters":{"id":4793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"target","nameLocation":"6225:6:17","nodeType":"VariableDeclaration","scope":4814,"src":"6217:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4787,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4790,"mutability":"mutable","name":"data","nameLocation":"6254:4:17","nodeType":"VariableDeclaration","scope":4814,"src":"6241:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4789,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4792,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:17","nodeType":"VariableDeclaration","scope":4814,"src":"6268:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4791,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:17"},"returnParameters":{"id":4796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4795,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4814,"src":"6324:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4794,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:17"},"scope":4944,"src":"6180:326:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4830,"nodeType":"Block","src":"6782:101:17","statements":[{"expression":{"arguments":[{"id":4825,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"6820:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4826,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"6828:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":4827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":4824,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[4831,4860],"referencedDeclaration":4860,"src":"6799:20:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:77:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4823,"id":4829,"nodeType":"Return","src":"6792:84:17"}]},"documentation":{"id":4815,"nodeType":"StructuredDocumentation","src":"6512:168:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":4831,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:17","nodeType":"FunctionDefinition","parameters":{"id":4820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4817,"mutability":"mutable","name":"target","nameLocation":"6723:6:17","nodeType":"VariableDeclaration","scope":4831,"src":"6715:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4816,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4819,"mutability":"mutable","name":"data","nameLocation":"6744:4:17","nodeType":"VariableDeclaration","scope":4831,"src":"6731:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4818,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:17"},"returnParameters":{"id":4823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4831,"src":"6768:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4821,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:17"},"scope":4944,"src":"6685:198:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4859,"nodeType":"Block","src":"7224:170:17","statements":[{"assignments":[4844,4846],"declarations":[{"constant":false,"id":4844,"mutability":"mutable","name":"success","nameLocation":"7240:7:17","nodeType":"VariableDeclaration","scope":4859,"src":"7235:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4843,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4846,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:17","nodeType":"VariableDeclaration","scope":4859,"src":"7249:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4845,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4851,"initialValue":{"arguments":[{"id":4849,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"7296:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4847,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4834,"src":"7276:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7283:12:17","memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:17","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7276:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:17"},{"expression":{"arguments":[{"id":4853,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4834,"src":"7345:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4854,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4844,"src":"7353:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4855,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"7362:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4856,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4838,"src":"7374:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4852,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"7318:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4842,"id":4858,"nodeType":"Return","src":"7311:76:17"}]},"documentation":{"id":4832,"nodeType":"StructuredDocumentation","src":"6889:175:17","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":4860,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:17","nodeType":"FunctionDefinition","parameters":{"id":4839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4834,"mutability":"mutable","name":"target","nameLocation":"7116:6:17","nodeType":"VariableDeclaration","scope":4860,"src":"7108:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4833,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4836,"mutability":"mutable","name":"data","nameLocation":"7145:4:17","nodeType":"VariableDeclaration","scope":4860,"src":"7132:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4835,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4838,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:17","nodeType":"VariableDeclaration","scope":4860,"src":"7159:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4837,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:17"},"returnParameters":{"id":4842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4860,"src":"7210:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4840,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:17"},"scope":4944,"src":"7069:325:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4898,"nodeType":"Block","src":"7876:434:17","statements":[{"condition":{"id":4874,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"7890:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4896,"nodeType":"Block","src":"8246:58:17","statements":[{"expression":{"arguments":[{"id":4892,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"8268:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4893,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"8280:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4891,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"8260:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":4894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8260:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4895,"nodeType":"ExpressionStatement","src":"8260:33:17"}]},"id":4897,"nodeType":"IfStatement","src":"7886:418:17","trueBody":{"id":4890,"nodeType":"Block","src":"7899:341:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4875,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"7917:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7928:6:17","memberName":"length","nodeType":"MemberAccess","src":"7917:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4887,"nodeType":"IfStatement","src":"7913:286:17","trueBody":{"id":4886,"nodeType":"Block","src":"7941:258:17","statements":[{"expression":{"arguments":[{"arguments":[{"id":4881,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4863,"src":"8143:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4880,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4632,"src":"8132:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":4883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":4879,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8124:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8124:60:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4885,"nodeType":"ExpressionStatement","src":"8124:60:17"}]}},{"expression":{"id":4888,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"8219:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4873,"id":4889,"nodeType":"Return","src":"8212:17:17"}]}}]},"documentation":{"id":4861,"nodeType":"StructuredDocumentation","src":"7400:277:17","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":4899,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:17","nodeType":"FunctionDefinition","parameters":{"id":4870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4863,"mutability":"mutable","name":"target","nameLocation":"7735:6:17","nodeType":"VariableDeclaration","scope":4899,"src":"7727:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4862,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4865,"mutability":"mutable","name":"success","nameLocation":"7756:7:17","nodeType":"VariableDeclaration","scope":4899,"src":"7751:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4864,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4867,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:17","nodeType":"VariableDeclaration","scope":4899,"src":"7773:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4866,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4869,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:17","nodeType":"VariableDeclaration","scope":4899,"src":"7806:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4868,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:17"},"returnParameters":{"id":4873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4899,"src":"7862:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4871,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:17"},"scope":4944,"src":"7682:628:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4922,"nodeType":"Block","src":"8691:135:17","statements":[{"condition":{"id":4911,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4902,"src":"8705:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4920,"nodeType":"Block","src":"8762:58:17","statements":[{"expression":{"arguments":[{"id":4916,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4904,"src":"8784:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4917,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4906,"src":"8796:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4915,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4943,"src":"8776:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":4918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4919,"nodeType":"ExpressionStatement","src":"8776:33:17"}]},"id":4921,"nodeType":"IfStatement","src":"8701:119:17","trueBody":{"id":4914,"nodeType":"Block","src":"8714:42:17","statements":[{"expression":{"id":4912,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4904,"src":"8735:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4910,"id":4913,"nodeType":"Return","src":"8728:17:17"}]}}]},"documentation":{"id":4900,"nodeType":"StructuredDocumentation","src":"8316:210:17","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":4923,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:17","nodeType":"FunctionDefinition","parameters":{"id":4907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4902,"mutability":"mutable","name":"success","nameLocation":"8571:7:17","nodeType":"VariableDeclaration","scope":4923,"src":"8566:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4901,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4904,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:17","nodeType":"VariableDeclaration","scope":4923,"src":"8588:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4903,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4906,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:17","nodeType":"VariableDeclaration","scope":4923,"src":"8621:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4905,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:17"},"returnParameters":{"id":4910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4923,"src":"8677:12:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4908,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:17"},"scope":4944,"src":"8531:295:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4942,"nodeType":"Block","src":"8915:457:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4930,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"8991:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:6:17","memberName":"length","nodeType":"MemberAccess","src":"8991:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4940,"nodeType":"Block","src":"9321:45:17","statements":[{"expression":{"arguments":[{"id":4937,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"9342:12:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4936,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:17","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:20:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4939,"nodeType":"ExpressionStatement","src":"9335:20:17"}]},"id":4941,"nodeType":"IfStatement","src":"8987:379:17","trueBody":{"id":4935,"nodeType":"Block","src":"9014:301:17","statements":[{"AST":{"nativeSrc":"9172:133:17","nodeType":"YulBlock","src":"9172:133:17","statements":[{"nativeSrc":"9190:40:17","nodeType":"YulVariableDeclaration","src":"9190:40:17","value":{"arguments":[{"name":"returndata","nativeSrc":"9219:10:17","nodeType":"YulIdentifier","src":"9219:10:17"}],"functionName":{"name":"mload","nativeSrc":"9213:5:17","nodeType":"YulIdentifier","src":"9213:5:17"},"nativeSrc":"9213:17:17","nodeType":"YulFunctionCall","src":"9213:17:17"},"variables":[{"name":"returndata_size","nativeSrc":"9194:15:17","nodeType":"YulTypedName","src":"9194:15:17","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9258:2:17","nodeType":"YulLiteral","src":"9258:2:17","type":"","value":"32"},{"name":"returndata","nativeSrc":"9262:10:17","nodeType":"YulIdentifier","src":"9262:10:17"}],"functionName":{"name":"add","nativeSrc":"9254:3:17","nodeType":"YulIdentifier","src":"9254:3:17"},"nativeSrc":"9254:19:17","nodeType":"YulFunctionCall","src":"9254:19:17"},{"name":"returndata_size","nativeSrc":"9275:15:17","nodeType":"YulIdentifier","src":"9275:15:17"}],"functionName":{"name":"revert","nativeSrc":"9247:6:17","nodeType":"YulIdentifier","src":"9247:6:17"},"nativeSrc":"9247:44:17","nodeType":"YulFunctionCall","src":"9247:44:17"},"nativeSrc":"9247:44:17","nodeType":"YulExpressionStatement","src":"9247:44:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4925,"isOffset":false,"isSlot":false,"src":"9219:10:17","valueSize":1},{"declaration":4925,"isOffset":false,"isSlot":false,"src":"9262:10:17","valueSize":1}],"id":4934,"nodeType":"InlineAssembly","src":"9163:142:17"}]}}]},"id":4943,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:17","nodeType":"FunctionDefinition","parameters":{"id":4928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4925,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:17","nodeType":"VariableDeclaration","scope":4943,"src":"8849:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4924,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4927,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:17","nodeType":"VariableDeclaration","scope":4943,"src":"8874:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4926,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:17"},"returnParameters":{"id":4929,"nodeType":"ParameterList","parameters":[],"src":"8915:0:17"},"scope":4944,"src":"8832:540:17","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":4945,"src":"194:9180:17","usedErrors":[],"usedEvents":[]}],"src":"101:9274:17"},"id":17},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[4944],"ContextUpgradeable":[4986],"Initializable":[4614]},"id":4987,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4946,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:18"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":4947,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4987,"sourceUnit":4615,"src":"110:42:18","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4949,"name":"Initializable","nameLocations":["691:13:18"],"nodeType":"IdentifierPath","referencedDeclaration":4614,"src":"691:13:18"},"id":4950,"nodeType":"InheritanceSpecifier","src":"691:13:18"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4948,"nodeType":"StructuredDocumentation","src":"154:496:18","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":4986,"linearizedBaseContracts":[4986,4614],"name":"ContextUpgradeable","nameLocation":"669:18:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":4955,"nodeType":"Block","src":"763:7:18","statements":[]},"id":4956,"implemented":true,"kind":"function","modifiers":[{"id":4953,"kind":"modifierInvocation","modifierName":{"id":4952,"name":"onlyInitializing","nameLocations":["746:16:18"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"746:16:18"},"nodeType":"ModifierInvocation","src":"746:16:18"}],"name":"__Context_init","nameLocation":"720:14:18","nodeType":"FunctionDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[],"src":"734:2:18"},"returnParameters":{"id":4954,"nodeType":"ParameterList","parameters":[],"src":"763:0:18"},"scope":4986,"src":"711:59:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4961,"nodeType":"Block","src":"838:7:18","statements":[]},"id":4962,"implemented":true,"kind":"function","modifiers":[{"id":4959,"kind":"modifierInvocation","modifierName":{"id":4958,"name":"onlyInitializing","nameLocations":["821:16:18"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"821:16:18"},"nodeType":"ModifierInvocation","src":"821:16:18"}],"name":"__Context_init_unchained","nameLocation":"785:24:18","nodeType":"FunctionDefinition","parameters":{"id":4957,"nodeType":"ParameterList","parameters":[],"src":"809:2:18"},"returnParameters":{"id":4960,"nodeType":"ParameterList","parameters":[],"src":"838:0:18"},"scope":4986,"src":"776:69:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4970,"nodeType":"Block","src":"912:34:18","statements":[{"expression":{"expression":{"id":4967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"933:6:18","memberName":"sender","nodeType":"MemberAccess","src":"929:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4966,"id":4969,"nodeType":"Return","src":"922:17:18"}]},"id":4971,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:18","nodeType":"FunctionDefinition","parameters":{"id":4963,"nodeType":"ParameterList","parameters":[],"src":"869:2:18"},"returnParameters":{"id":4966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4971,"src":"903:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4964,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:18"},"scope":4986,"src":"850:96:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4979,"nodeType":"Block","src":"1019:32:18","statements":[{"expression":{"expression":{"id":4976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1040:4:18","memberName":"data","nodeType":"MemberAccess","src":"1036:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":4975,"id":4978,"nodeType":"Return","src":"1029:15:18"}]},"id":4980,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:18","nodeType":"FunctionDefinition","parameters":{"id":4972,"nodeType":"ParameterList","parameters":[],"src":"969:2:18"},"returnParameters":{"id":4975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4980,"src":"1003:14:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4973,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:18"},"scope":4986,"src":"952:99:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":4981,"nodeType":"StructuredDocumentation","src":"1057:254:18","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":4985,"mutability":"mutable","name":"__gap","nameLocation":"1336:5:18","nodeType":"VariableDeclaration","scope":4986,"src":"1316:25:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":4982,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4984,"length":{"hexValue":"3530","id":4983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:18","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":4987,"src":"651:693:18","usedErrors":[],"usedEvents":[4460]}],"src":"86:1259:18"},"id":18},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[5302],"Context":[7050],"ERC165":[7303],"IAccessControl":[5375],"IERC165":[7315],"Math":[8181],"SignedMath":[8286],"Strings":[7279]},"id":5303,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4988,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:19"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":4989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5303,"sourceUnit":5376,"src":"133:30:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":4990,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5303,"sourceUnit":7051,"src":"164:30:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":4991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5303,"sourceUnit":7280,"src":"195:30:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":4992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5303,"sourceUnit":7304,"src":"226:43:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4994,"name":"Context","nameLocations":["1967:7:19"],"nodeType":"IdentifierPath","referencedDeclaration":7050,"src":"1967:7:19"},"id":4995,"nodeType":"InheritanceSpecifier","src":"1967:7:19"},{"baseName":{"id":4996,"name":"IAccessControl","nameLocations":["1976:14:19"],"nodeType":"IdentifierPath","referencedDeclaration":5375,"src":"1976:14:19"},"id":4997,"nodeType":"InheritanceSpecifier","src":"1976:14:19"},{"baseName":{"id":4998,"name":"ERC165","nameLocations":["1992:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":7303,"src":"1992:6:19"},"id":4999,"nodeType":"InheritanceSpecifier","src":"1992:6:19"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":4993,"nodeType":"StructuredDocumentation","src":"271:1660:19","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":5302,"linearizedBaseContracts":[5302,7303,7315,5375,7050],"name":"AccessControl","nameLocation":"1950:13:19","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":5006,"members":[{"constant":false,"id":5003,"mutability":"mutable","name":"members","nameLocation":"2056:7:19","nodeType":"VariableDeclaration","scope":5006,"src":"2031:32:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":5002,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5000,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2031:24:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5001,"name":"bool","nodeType":"ElementaryTypeName","src":"2050:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":5005,"mutability":"mutable","name":"adminRole","nameLocation":"2081:9:19","nodeType":"VariableDeclaration","scope":5006,"src":"2073:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2073:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2012:8:19","nodeType":"StructDefinition","scope":5302,"src":"2005:92:19","visibility":"public"},{"constant":false,"id":5011,"mutability":"mutable","name":"_roles","nameLocation":"2140:6:19","nodeType":"VariableDeclaration","scope":5302,"src":"2103:43:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":5010,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2111:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2103:28:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5009,"nodeType":"UserDefinedTypeName","pathNode":{"id":5008,"name":"RoleData","nameLocations":["2122:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":5006,"src":"2122:8:19"},"referencedDeclaration":5006,"src":"2122:8:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":5014,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2177:18:19","nodeType":"VariableDeclaration","scope":5302,"src":"2153:49:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":5013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2198:4:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":5024,"nodeType":"Block","src":"2621:44:19","statements":[{"expression":{"arguments":[{"id":5020,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5017,"src":"2642:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5019,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[5079,5118],"referencedDeclaration":5079,"src":"2631:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":5021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2631:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5022,"nodeType":"ExpressionStatement","src":"2631:16:19"},{"id":5023,"nodeType":"PlaceholderStatement","src":"2657:1:19"}]},"documentation":{"id":5015,"nodeType":"StructuredDocumentation","src":"2209:375:19","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":5025,"name":"onlyRole","nameLocation":"2598:8:19","nodeType":"ModifierDefinition","parameters":{"id":5018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5017,"mutability":"mutable","name":"role","nameLocation":"2615:4:19","nodeType":"VariableDeclaration","scope":5025,"src":"2607:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2607:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2606:14:19"},"src":"2589:76:19","virtual":false,"visibility":"internal"},{"baseFunctions":[7302],"body":{"id":5046,"nodeType":"Block","src":"2823:111:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5034,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5028,"src":"2840:11:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5036,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"2860:14:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$5375_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$5375_$","typeString":"type(contract IAccessControl)"}],"id":5035,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2855:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2855:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$5375","typeString":"type(contract IAccessControl)"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2876:11:19","memberName":"interfaceId","nodeType":"MemberAccess","src":"2855:32:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2840:47:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5042,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5028,"src":"2915:11:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5040,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2891:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$5302_$","typeString":"type(contract super AccessControl)"}},"id":5041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:17:19","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":7302,"src":"2891:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2891:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2840:87:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5033,"id":5045,"nodeType":"Return","src":"2833:94:19"}]},"documentation":{"id":5026,"nodeType":"StructuredDocumentation","src":"2671:56:19","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5047,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2741:17:19","nodeType":"FunctionDefinition","overrides":{"id":5030,"nodeType":"OverrideSpecifier","overrides":[],"src":"2799:8:19"},"parameters":{"id":5029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5028,"mutability":"mutable","name":"interfaceId","nameLocation":"2766:11:19","nodeType":"VariableDeclaration","scope":5047,"src":"2759:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5027,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2759:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2758:20:19"},"returnParameters":{"id":5033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5047,"src":"2817:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5031,"name":"bool","nodeType":"ElementaryTypeName","src":"2817:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2816:6:19"},"scope":5302,"src":"2732:202:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5342],"body":{"id":5065,"nodeType":"Block","src":"3113:53:19","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":5058,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"3130:6:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5060,"indexExpression":{"id":5059,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"3137:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:12:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:7:19","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5003,"src":"3130:20:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5063,"indexExpression":{"id":5062,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"3151:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3130:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5057,"id":5064,"nodeType":"Return","src":"3123:36:19"}]},"documentation":{"id":5048,"nodeType":"StructuredDocumentation","src":"2940:76:19","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":5066,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3030:7:19","nodeType":"FunctionDefinition","overrides":{"id":5054,"nodeType":"OverrideSpecifier","overrides":[],"src":"3089:8:19"},"parameters":{"id":5053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5050,"mutability":"mutable","name":"role","nameLocation":"3046:4:19","nodeType":"VariableDeclaration","scope":5066,"src":"3038:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3038:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5052,"mutability":"mutable","name":"account","nameLocation":"3060:7:19","nodeType":"VariableDeclaration","scope":5066,"src":"3052:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5051,"name":"address","nodeType":"ElementaryTypeName","src":"3052:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3037:31:19"},"returnParameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5066,"src":"3107:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5055,"name":"bool","nodeType":"ElementaryTypeName","src":"3107:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3106:6:19"},"scope":5302,"src":"3021:145:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5078,"nodeType":"Block","src":"3516:47:19","statements":[{"expression":{"arguments":[{"id":5073,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"3537:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5074,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"3543:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3543:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5072,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[5079,5118],"referencedDeclaration":5118,"src":"3526:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3526:30:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5077,"nodeType":"ExpressionStatement","src":"3526:30:19"}]},"documentation":{"id":5067,"nodeType":"StructuredDocumentation","src":"3172:283:19","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":5079,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3469:10:19","nodeType":"FunctionDefinition","parameters":{"id":5070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"mutability":"mutable","name":"role","nameLocation":"3488:4:19","nodeType":"VariableDeclaration","scope":5079,"src":"3480:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3480:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3479:14:19"},"returnParameters":{"id":5071,"nodeType":"ParameterList","parameters":[],"src":"3516:0:19"},"scope":5302,"src":"3460:103:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5117,"nodeType":"Block","src":"3917:406:19","statements":[{"condition":{"id":5091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3931:23:19","subExpression":{"arguments":[{"id":5088,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5082,"src":"3940:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5089,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"3946:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5087,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"3932:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3932:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5116,"nodeType":"IfStatement","src":"3927:390:19","trueBody":{"id":5115,"nodeType":"Block","src":"3956:361:19","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":5097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4064:25:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":5100,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5084,"src":"4135:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5098,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"4115:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$7279_$","typeString":"type(library Strings)"}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4123:11:19","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":7253,"src":"4115:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:28:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":5102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4169:19:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":5107,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5082,"src":"4242:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4234:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5105,"name":"uint256","nodeType":"ElementaryTypeName","src":"4234:7:19","typeDescriptions":{}}},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4234:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":5109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4249:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":5103,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"4214:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$7279_$","typeString":"type(library Strings)"}},"id":5104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4222:11:19","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":7233,"src":"4214:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5095,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4022:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4026:12:19","memberName":"encodePacked","nodeType":"MemberAccess","src":"4022:16:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:252:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3994:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5093,"name":"string","nodeType":"ElementaryTypeName","src":"3994:6:19","typeDescriptions":{}}},"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:298:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5092,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3970:6:19","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3970:336:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5114,"nodeType":"ExpressionStatement","src":"3970:336:19"}]}}]},"documentation":{"id":5080,"nodeType":"StructuredDocumentation","src":"3569:270:19","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":5118,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3853:10:19","nodeType":"FunctionDefinition","parameters":{"id":5085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5082,"mutability":"mutable","name":"role","nameLocation":"3872:4:19","nodeType":"VariableDeclaration","scope":5118,"src":"3864:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3864:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5084,"mutability":"mutable","name":"account","nameLocation":"3886:7:19","nodeType":"VariableDeclaration","scope":5118,"src":"3878:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5083,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3863:31:19"},"returnParameters":{"id":5086,"nodeType":"ParameterList","parameters":[],"src":"3917:0:19"},"scope":5302,"src":"3844:479:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[5350],"body":{"id":5132,"nodeType":"Block","src":"4587:46:19","statements":[{"expression":{"expression":{"baseExpression":{"id":5127,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"4604:6:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5129,"indexExpression":{"id":5128,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5121,"src":"4611:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4604:12:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4617:9:19","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":5005,"src":"4604:22:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5126,"id":5131,"nodeType":"Return","src":"4597:29:19"}]},"documentation":{"id":5119,"nodeType":"StructuredDocumentation","src":"4329:170:19","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":5133,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4513:12:19","nodeType":"FunctionDefinition","overrides":{"id":5123,"nodeType":"OverrideSpecifier","overrides":[],"src":"4560:8:19"},"parameters":{"id":5122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5121,"mutability":"mutable","name":"role","nameLocation":"4534:4:19","nodeType":"VariableDeclaration","scope":5133,"src":"4526:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4526:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4525:14:19"},"returnParameters":{"id":5126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5133,"src":"4578:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4578:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4577:9:19"},"scope":5302,"src":"4504:129:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5358],"body":{"id":5152,"nodeType":"Block","src":"5032:42:19","statements":[{"expression":{"arguments":[{"id":5148,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"5053:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5149,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5138,"src":"5059:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5147,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"5042:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5042:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5151,"nodeType":"ExpressionStatement","src":"5042:25:19"}]},"documentation":{"id":5134,"nodeType":"StructuredDocumentation","src":"4639:285:19","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":5153,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":5143,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"5025:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5142,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5133,"src":"5012:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5012:18:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5145,"kind":"modifierInvocation","modifierName":{"id":5141,"name":"onlyRole","nameLocations":["5003:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":5025,"src":"5003:8:19"},"nodeType":"ModifierInvocation","src":"5003:28:19"}],"name":"grantRole","nameLocation":"4938:9:19","nodeType":"FunctionDefinition","overrides":{"id":5140,"nodeType":"OverrideSpecifier","overrides":[],"src":"4994:8:19"},"parameters":{"id":5139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5136,"mutability":"mutable","name":"role","nameLocation":"4956:4:19","nodeType":"VariableDeclaration","scope":5153,"src":"4948:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4948:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5138,"mutability":"mutable","name":"account","nameLocation":"4970:7:19","nodeType":"VariableDeclaration","scope":5153,"src":"4962:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5137,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4947:31:19"},"returnParameters":{"id":5146,"nodeType":"ParameterList","parameters":[],"src":"5032:0:19"},"scope":5302,"src":"4929:145:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5366],"body":{"id":5172,"nodeType":"Block","src":"5458:43:19","statements":[{"expression":{"arguments":[{"id":5168,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"5480:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5169,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"5486:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5167,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"5468:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5468:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5171,"nodeType":"ExpressionStatement","src":"5468:26:19"}]},"documentation":{"id":5154,"nodeType":"StructuredDocumentation","src":"5080:269:19","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":5173,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":5163,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5156,"src":"5451:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5162,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5133,"src":"5438:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5438:18:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5165,"kind":"modifierInvocation","modifierName":{"id":5161,"name":"onlyRole","nameLocations":["5429:8:19"],"nodeType":"IdentifierPath","referencedDeclaration":5025,"src":"5429:8:19"},"nodeType":"ModifierInvocation","src":"5429:28:19"}],"name":"revokeRole","nameLocation":"5363:10:19","nodeType":"FunctionDefinition","overrides":{"id":5160,"nodeType":"OverrideSpecifier","overrides":[],"src":"5420:8:19"},"parameters":{"id":5159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5156,"mutability":"mutable","name":"role","nameLocation":"5382:4:19","nodeType":"VariableDeclaration","scope":5173,"src":"5374:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5374:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5158,"mutability":"mutable","name":"account","nameLocation":"5396:7:19","nodeType":"VariableDeclaration","scope":5173,"src":"5388:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5157,"name":"address","nodeType":"ElementaryTypeName","src":"5388:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5373:31:19"},"returnParameters":{"id":5166,"nodeType":"ParameterList","parameters":[],"src":"5458:0:19"},"scope":5302,"src":"5354:147:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5374],"body":{"id":5195,"nodeType":"Block","src":"6115:137:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5183,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"6133:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5184,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"6144:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6144:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6133:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":5187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6158:49:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":5182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6125:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:83:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5189,"nodeType":"ExpressionStatement","src":"6125:83:19"},{"expression":{"arguments":[{"id":5191,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"6231:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5192,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"6237:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5190,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"6219:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6219:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5194,"nodeType":"ExpressionStatement","src":"6219:26:19"}]},"documentation":{"id":5174,"nodeType":"StructuredDocumentation","src":"5507:526:19","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":5196,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6047:12:19","nodeType":"FunctionDefinition","overrides":{"id":5180,"nodeType":"OverrideSpecifier","overrides":[],"src":"6106:8:19"},"parameters":{"id":5179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5176,"mutability":"mutable","name":"role","nameLocation":"6068:4:19","nodeType":"VariableDeclaration","scope":5196,"src":"6060:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6060:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5178,"mutability":"mutable","name":"account","nameLocation":"6082:7:19","nodeType":"VariableDeclaration","scope":5196,"src":"6074:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5177,"name":"address","nodeType":"ElementaryTypeName","src":"6074:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6059:31:19"},"returnParameters":{"id":5181,"nodeType":"ParameterList","parameters":[],"src":"6115:0:19"},"scope":5302,"src":"6038:214:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5209,"nodeType":"Block","src":"7005:42:19","statements":[{"expression":{"arguments":[{"id":5205,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5199,"src":"7026:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5206,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5201,"src":"7032:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5204,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"7015:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7015:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5208,"nodeType":"ExpressionStatement","src":"7015:25:19"}]},"documentation":{"id":5197,"nodeType":"StructuredDocumentation","src":"6258:674:19","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":5210,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6946:10:19","nodeType":"FunctionDefinition","parameters":{"id":5202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5199,"mutability":"mutable","name":"role","nameLocation":"6965:4:19","nodeType":"VariableDeclaration","scope":5210,"src":"6957:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6957:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5201,"mutability":"mutable","name":"account","nameLocation":"6979:7:19","nodeType":"VariableDeclaration","scope":5210,"src":"6971:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5200,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6956:31:19"},"returnParameters":{"id":5203,"nodeType":"ParameterList","parameters":[],"src":"7005:0:19"},"scope":5302,"src":"6937:110:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5237,"nodeType":"Block","src":"7245:174:19","statements":[{"assignments":[5219],"declarations":[{"constant":false,"id":5219,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7263:17:19","nodeType":"VariableDeclaration","scope":5237,"src":"7255:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7255:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5223,"initialValue":{"arguments":[{"id":5221,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"7296:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5220,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5133,"src":"7283:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:18:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7255:46:19"},{"expression":{"id":5229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5224,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"7311:6:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5226,"indexExpression":{"id":5225,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"7318:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7311:12:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7324:9:19","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":5005,"src":"7311:22:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5228,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"7336:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7311:34:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5230,"nodeType":"ExpressionStatement","src":"7311:34:19"},{"eventCall":{"arguments":[{"id":5232,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"7377:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5233,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5219,"src":"7383:17:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5234,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"7402:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5231,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"7360:16:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7360:52:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5236,"nodeType":"EmitStatement","src":"7355:57:19"}]},"documentation":{"id":5211,"nodeType":"StructuredDocumentation","src":"7053:114:19","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":5238,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7181:13:19","nodeType":"FunctionDefinition","parameters":{"id":5216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5213,"mutability":"mutable","name":"role","nameLocation":"7203:4:19","nodeType":"VariableDeclaration","scope":5238,"src":"7195:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5215,"mutability":"mutable","name":"adminRole","nameLocation":"7217:9:19","nodeType":"VariableDeclaration","scope":5238,"src":"7209:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7209:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7194:33:19"},"returnParameters":{"id":5217,"nodeType":"ParameterList","parameters":[],"src":"7245:0:19"},"scope":5302,"src":"7172:247:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5269,"nodeType":"Block","src":"7655:165:19","statements":[{"condition":{"id":5250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7669:23:19","subExpression":{"arguments":[{"id":5247,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5241,"src":"7678:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5248,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5243,"src":"7684:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5246,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7670:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7670:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5268,"nodeType":"IfStatement","src":"7665:149:19","trueBody":{"id":5267,"nodeType":"Block","src":"7694:120:19","statements":[{"expression":{"id":5258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5251,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"7708:6:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5253,"indexExpression":{"id":5252,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5241,"src":"7715:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7708:12:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7721:7:19","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5003,"src":"7708:20:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5256,"indexExpression":{"id":5255,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5243,"src":"7729:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7708:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7740:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7708:36:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5259,"nodeType":"ExpressionStatement","src":"7708:36:19"},{"eventCall":{"arguments":[{"id":5261,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5241,"src":"7775:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5262,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5243,"src":"7781:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5263,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"7790:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7790:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5260,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"7763:11:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7763:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5266,"nodeType":"EmitStatement","src":"7758:45:19"}]}}]},"documentation":{"id":5239,"nodeType":"StructuredDocumentation","src":"7425:157:19","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":5270,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7596:10:19","nodeType":"FunctionDefinition","parameters":{"id":5244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5241,"mutability":"mutable","name":"role","nameLocation":"7615:4:19","nodeType":"VariableDeclaration","scope":5270,"src":"7607:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7607:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5243,"mutability":"mutable","name":"account","nameLocation":"7629:7:19","nodeType":"VariableDeclaration","scope":5270,"src":"7621:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5242,"name":"address","nodeType":"ElementaryTypeName","src":"7621:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7606:31:19"},"returnParameters":{"id":5245,"nodeType":"ParameterList","parameters":[],"src":"7655:0:19"},"scope":5302,"src":"7587:233:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5300,"nodeType":"Block","src":"8060:165:19","statements":[{"condition":{"arguments":[{"id":5279,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"8082:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5280,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"8088:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5278,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"8074:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8074:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5299,"nodeType":"IfStatement","src":"8070:149:19","trueBody":{"id":5298,"nodeType":"Block","src":"8098:121:19","statements":[{"expression":{"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5282,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5011,"src":"8112:6:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5006_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5284,"indexExpression":{"id":5283,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"8119:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8112:12:19","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5006_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8125:7:19","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5003,"src":"8112:20:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5287,"indexExpression":{"id":5286,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"8133:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8112:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8144:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8112:37:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5290,"nodeType":"ExpressionStatement","src":"8112:37:19"},{"eventCall":{"arguments":[{"id":5292,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"8180:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5293,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5275,"src":"8186:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5294,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"8195:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8195:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5291,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5332,"src":"8168:11:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8168:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5297,"nodeType":"EmitStatement","src":"8163:45:19"}]}}]},"documentation":{"id":5271,"nodeType":"StructuredDocumentation","src":"7826:160:19","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":5301,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"8000:11:19","nodeType":"FunctionDefinition","parameters":{"id":5276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5273,"mutability":"mutable","name":"role","nameLocation":"8020:4:19","nodeType":"VariableDeclaration","scope":5301,"src":"8012:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8012:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5275,"mutability":"mutable","name":"account","nameLocation":"8034:7:19","nodeType":"VariableDeclaration","scope":5301,"src":"8026:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5274,"name":"address","nodeType":"ElementaryTypeName","src":"8026:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8011:31:19"},"returnParameters":{"id":5277,"nodeType":"ParameterList","parameters":[],"src":"8060:0:19"},"scope":5302,"src":"7991:234:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5303,"src":"1932:6295:19","usedErrors":[],"usedEvents":[5314,5323,5332]}],"src":"108:8120:19"},"id":19},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[5375]},"id":5376,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5304,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":5305,"nodeType":"StructuredDocumentation","src":"119:89:20","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":5375,"linearizedBaseContracts":[5375],"name":"IAccessControl","nameLocation":"219:14:20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5306,"nodeType":"StructuredDocumentation","src":"240:292:20","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":5314,"name":"RoleAdminChanged","nameLocation":"543:16:20","nodeType":"EventDefinition","parameters":{"id":5313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5308,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:20","nodeType":"VariableDeclaration","scope":5314,"src":"560:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5310,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:20","nodeType":"VariableDeclaration","scope":5314,"src":"582:33:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5312,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:20","nodeType":"VariableDeclaration","scope":5314,"src":"617:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:20"},"src":"537:110:20"},{"anonymous":false,"documentation":{"id":5315,"nodeType":"StructuredDocumentation","src":"653:212:20","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":5323,"name":"RoleGranted","nameLocation":"876:11:20","nodeType":"EventDefinition","parameters":{"id":5322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5317,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:20","nodeType":"VariableDeclaration","scope":5323,"src":"888:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5319,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:20","nodeType":"VariableDeclaration","scope":5323,"src":"910:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5318,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5321,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:20","nodeType":"VariableDeclaration","scope":5323,"src":"935:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5320,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:20"},"src":"870:89:20"},{"anonymous":false,"documentation":{"id":5324,"nodeType":"StructuredDocumentation","src":"965:275:20","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":5332,"name":"RoleRevoked","nameLocation":"1251:11:20","nodeType":"EventDefinition","parameters":{"id":5331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5326,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:20","nodeType":"VariableDeclaration","scope":5332,"src":"1263:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5328,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:20","nodeType":"VariableDeclaration","scope":5332,"src":"1285:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5327,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5330,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:20","nodeType":"VariableDeclaration","scope":5332,"src":"1310:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5329,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:20"},"src":"1245:89:20"},{"documentation":{"id":5333,"nodeType":"StructuredDocumentation","src":"1340:76:20","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":5342,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:20","nodeType":"FunctionDefinition","parameters":{"id":5338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5335,"mutability":"mutable","name":"role","nameLocation":"1446:4:20","nodeType":"VariableDeclaration","scope":5342,"src":"1438:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5337,"mutability":"mutable","name":"account","nameLocation":"1460:7:20","nodeType":"VariableDeclaration","scope":5342,"src":"1452:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5336,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:20"},"returnParameters":{"id":5341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5342,"src":"1492:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5339,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:20"},"scope":5375,"src":"1421:77:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5343,"nodeType":"StructuredDocumentation","src":"1504:184:20","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":5350,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:20","nodeType":"FunctionDefinition","parameters":{"id":5346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5345,"mutability":"mutable","name":"role","nameLocation":"1723:4:20","nodeType":"VariableDeclaration","scope":5350,"src":"1715:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:20"},"returnParameters":{"id":5349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5350,"src":"1752:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:20"},"scope":5375,"src":"1693:68:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5351,"nodeType":"StructuredDocumentation","src":"1767:239:20","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":5358,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:20","nodeType":"FunctionDefinition","parameters":{"id":5356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5353,"mutability":"mutable","name":"role","nameLocation":"2038:4:20","nodeType":"VariableDeclaration","scope":5358,"src":"2030:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5355,"mutability":"mutable","name":"account","nameLocation":"2052:7:20","nodeType":"VariableDeclaration","scope":5358,"src":"2044:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5354,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:20"},"returnParameters":{"id":5357,"nodeType":"ParameterList","parameters":[],"src":"2069:0:20"},"scope":5375,"src":"2011:59:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5359,"nodeType":"StructuredDocumentation","src":"2076:223:20","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":5366,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:20","nodeType":"FunctionDefinition","parameters":{"id":5364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5361,"mutability":"mutable","name":"role","nameLocation":"2332:4:20","nodeType":"VariableDeclaration","scope":5366,"src":"2324:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5363,"mutability":"mutable","name":"account","nameLocation":"2346:7:20","nodeType":"VariableDeclaration","scope":5366,"src":"2338:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5362,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:20"},"returnParameters":{"id":5365,"nodeType":"ParameterList","parameters":[],"src":"2363:0:20"},"scope":5375,"src":"2304:60:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5367,"nodeType":"StructuredDocumentation","src":"2370:480:20","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":5374,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:20","nodeType":"FunctionDefinition","parameters":{"id":5372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5369,"mutability":"mutable","name":"role","nameLocation":"2885:4:20","nodeType":"VariableDeclaration","scope":5374,"src":"2877:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5371,"mutability":"mutable","name":"account","nameLocation":"2899:7:20","nodeType":"VariableDeclaration","scope":5374,"src":"2891:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5370,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:20"},"returnParameters":{"id":5373,"nodeType":"ParameterList","parameters":[],"src":"2916:0:20"},"scope":5375,"src":"2855:62:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5376,"src":"209:2710:20","usedErrors":[],"usedEvents":[5314,5323,5332]}],"src":"94:2826:20"},"id":20},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[7050],"Ownable":[5488]},"id":5489,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5377,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5378,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5489,"sourceUnit":7051,"src":"127:30:21","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5380,"name":"Context","nameLocations":["683:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":7050,"src":"683:7:21"},"id":5381,"nodeType":"InheritanceSpecifier","src":"683:7:21"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5379,"nodeType":"StructuredDocumentation","src":"159:494:21","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":5488,"linearizedBaseContracts":[5488,7050],"name":"Ownable","nameLocation":"672:7:21","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5383,"mutability":"mutable","name":"_owner","nameLocation":"713:6:21","nodeType":"VariableDeclaration","scope":5488,"src":"697:22:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5382,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":5389,"name":"OwnershipTransferred","nameLocation":"732:20:21","nodeType":"EventDefinition","parameters":{"id":5388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5385,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:21","nodeType":"VariableDeclaration","scope":5389,"src":"753:29:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5384,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5387,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:21","nodeType":"VariableDeclaration","scope":5389,"src":"784:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5386,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:21"},"src":"726:84:21"},{"body":{"id":5398,"nodeType":"Block","src":"926:49:21","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5394,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"955:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5393,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5487,"src":"936:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5397,"nodeType":"ExpressionStatement","src":"936:32:21"}]},"documentation":{"id":5390,"nodeType":"StructuredDocumentation","src":"816:91:21","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":5399,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5391,"nodeType":"ParameterList","parameters":[],"src":"923:2:21"},"returnParameters":{"id":5392,"nodeType":"ParameterList","parameters":[],"src":"926:0:21"},"scope":5488,"src":"912:63:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5406,"nodeType":"Block","src":"1084:41:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5402,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5430,"src":"1094:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5404,"nodeType":"ExpressionStatement","src":"1094:13:21"},{"id":5405,"nodeType":"PlaceholderStatement","src":"1117:1:21"}]},"documentation":{"id":5400,"nodeType":"StructuredDocumentation","src":"981:77:21","text":" @dev Throws if called by any account other than the owner."},"id":5407,"name":"onlyOwner","nameLocation":"1072:9:21","nodeType":"ModifierDefinition","parameters":{"id":5401,"nodeType":"ParameterList","parameters":[],"src":"1081:2:21"},"src":"1063:62:21","virtual":false,"visibility":"internal"},{"body":{"id":5415,"nodeType":"Block","src":"1256:30:21","statements":[{"expression":{"id":5413,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"1273:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5412,"id":5414,"nodeType":"Return","src":"1266:13:21"}]},"documentation":{"id":5408,"nodeType":"StructuredDocumentation","src":"1131:65:21","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":5416,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:21","nodeType":"FunctionDefinition","parameters":{"id":5409,"nodeType":"ParameterList","parameters":[],"src":"1215:2:21"},"returnParameters":{"id":5412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5416,"src":"1247:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5410,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:21"},"scope":5488,"src":"1201:85:21","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5429,"nodeType":"Block","src":"1404:85:21","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5421,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"1422:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5423,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"1433:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":5426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":5420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5428,"nodeType":"ExpressionStatement","src":"1414:68:21"}]},"documentation":{"id":5417,"nodeType":"StructuredDocumentation","src":"1292:62:21","text":" @dev Throws if the sender is not the owner."},"id":5430,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:21","nodeType":"FunctionDefinition","parameters":{"id":5418,"nodeType":"ParameterList","parameters":[],"src":"1379:2:21"},"returnParameters":{"id":5419,"nodeType":"ParameterList","parameters":[],"src":"1404:0:21"},"scope":5488,"src":"1359:130:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5443,"nodeType":"Block","src":"1878:47:21","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5437,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:21","typeDescriptions":{}}},"id":5440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5436,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5487,"src":"1888:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5442,"nodeType":"ExpressionStatement","src":"1888:30:21"}]},"documentation":{"id":5431,"nodeType":"StructuredDocumentation","src":"1495:324:21","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":5444,"implemented":true,"kind":"function","modifiers":[{"id":5434,"kind":"modifierInvocation","modifierName":{"id":5433,"name":"onlyOwner","nameLocations":["1868:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"1868:9:21"},"nodeType":"ModifierInvocation","src":"1868:9:21"}],"name":"renounceOwnership","nameLocation":"1833:17:21","nodeType":"FunctionDefinition","parameters":{"id":5432,"nodeType":"ParameterList","parameters":[],"src":"1850:2:21"},"returnParameters":{"id":5435,"nodeType":"ParameterList","parameters":[],"src":"1878:0:21"},"scope":5488,"src":"1824:101:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5466,"nodeType":"Block","src":"2144:128:21","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5453,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"2162:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2182:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5454,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:21","typeDescriptions":{}}},"id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:22:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":5459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2186:40:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":5452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:73:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5461,"nodeType":"ExpressionStatement","src":"2154:73:21"},{"expression":{"arguments":[{"id":5463,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"2256:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5462,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5487,"src":"2237:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5465,"nodeType":"ExpressionStatement","src":"2237:28:21"}]},"documentation":{"id":5445,"nodeType":"StructuredDocumentation","src":"1931:138:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5467,"implemented":true,"kind":"function","modifiers":[{"id":5450,"kind":"modifierInvocation","modifierName":{"id":5449,"name":"onlyOwner","nameLocations":["2134:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"2134:9:21"},"nodeType":"ModifierInvocation","src":"2134:9:21"}],"name":"transferOwnership","nameLocation":"2083:17:21","nodeType":"FunctionDefinition","parameters":{"id":5448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5447,"mutability":"mutable","name":"newOwner","nameLocation":"2109:8:21","nodeType":"VariableDeclaration","scope":5467,"src":"2101:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5446,"name":"address","nodeType":"ElementaryTypeName","src":"2101:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2100:18:21"},"returnParameters":{"id":5451,"nodeType":"ParameterList","parameters":[],"src":"2144:0:21"},"scope":5488,"src":"2074:198:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5486,"nodeType":"Block","src":"2489:124:21","statements":[{"assignments":[5474],"declarations":[{"constant":false,"id":5474,"mutability":"mutable","name":"oldOwner","nameLocation":"2507:8:21","nodeType":"VariableDeclaration","scope":5486,"src":"2499:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5473,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5476,"initialValue":{"id":5475,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"2518:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2499:25:21"},{"expression":{"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5477,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"2534:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5478,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"2543:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2534:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5480,"nodeType":"ExpressionStatement","src":"2534:17:21"},{"eventCall":{"arguments":[{"id":5482,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"2587:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5483,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5470,"src":"2597:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5481,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"2566:20:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5485,"nodeType":"EmitStatement","src":"2561:45:21"}]},"documentation":{"id":5468,"nodeType":"StructuredDocumentation","src":"2278:143:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":5487,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2435:18:21","nodeType":"FunctionDefinition","parameters":{"id":5471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5470,"mutability":"mutable","name":"newOwner","nameLocation":"2462:8:21","nodeType":"VariableDeclaration","scope":5487,"src":"2454:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5469,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2453:18:21"},"returnParameters":{"id":5472,"nodeType":"ParameterList","parameters":[],"src":"2489:0:21"},"scope":5488,"src":"2426:187:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5489,"src":"654:1961:21","usedErrors":[],"usedEvents":[5389]}],"src":"102:2514:21"},"id":21},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[7050],"Pausable":[5596]},"id":5597,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5490,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:22"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5597,"sourceUnit":7051,"src":"130:30:22","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5493,"name":"Context","nameLocations":["632:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":7050,"src":"632:7:22"},"id":5494,"nodeType":"InheritanceSpecifier","src":"632:7:22"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5492,"nodeType":"StructuredDocumentation","src":"162:439:22","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":5596,"linearizedBaseContracts":[5596,7050],"name":"Pausable","nameLocation":"620:8:22","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5495,"nodeType":"StructuredDocumentation","src":"646:73:22","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":5499,"name":"Paused","nameLocation":"730:6:22","nodeType":"EventDefinition","parameters":{"id":5498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5497,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:22","nodeType":"VariableDeclaration","scope":5499,"src":"737:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5496,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:22"},"src":"724:30:22"},{"anonymous":false,"documentation":{"id":5500,"nodeType":"StructuredDocumentation","src":"760:70:22","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":5504,"name":"Unpaused","nameLocation":"841:8:22","nodeType":"EventDefinition","parameters":{"id":5503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5502,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:22","nodeType":"VariableDeclaration","scope":5504,"src":"850:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5501,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:22"},"src":"835:32:22"},{"constant":false,"id":5506,"mutability":"mutable","name":"_paused","nameLocation":"886:7:22","nodeType":"VariableDeclaration","scope":5596,"src":"873:20:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5505,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":5514,"nodeType":"Block","src":"986:32:22","statements":[{"expression":{"id":5512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5510,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"996:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5513,"nodeType":"ExpressionStatement","src":"996:15:22"}]},"documentation":{"id":5507,"nodeType":"StructuredDocumentation","src":"900:67:22","text":" @dev Initializes the contract in unpaused state."},"id":5515,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5508,"nodeType":"ParameterList","parameters":[],"src":"983:2:22"},"returnParameters":{"id":5509,"nodeType":"ParameterList","parameters":[],"src":"986:0:22"},"scope":5596,"src":"972:46:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5522,"nodeType":"Block","src":"1229:47:22","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5518,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"1239:17:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5520,"nodeType":"ExpressionStatement","src":"1239:19:22"},{"id":5521,"nodeType":"PlaceholderStatement","src":"1268:1:22"}]},"documentation":{"id":5516,"nodeType":"StructuredDocumentation","src":"1024:175:22","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":5523,"name":"whenNotPaused","nameLocation":"1213:13:22","nodeType":"ModifierDefinition","parameters":{"id":5517,"nodeType":"ParameterList","parameters":[],"src":"1226:2:22"},"src":"1204:72:22","virtual":false,"visibility":"internal"},{"body":{"id":5530,"nodeType":"Block","src":"1476:44:22","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5526,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"1486:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1486:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5528,"nodeType":"ExpressionStatement","src":"1486:16:22"},{"id":5529,"nodeType":"PlaceholderStatement","src":"1512:1:22"}]},"documentation":{"id":5524,"nodeType":"StructuredDocumentation","src":"1282:167:22","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":5531,"name":"whenPaused","nameLocation":"1463:10:22","nodeType":"ModifierDefinition","parameters":{"id":5525,"nodeType":"ParameterList","parameters":[],"src":"1473:2:22"},"src":"1454:66:22","virtual":false,"visibility":"internal"},{"body":{"id":5539,"nodeType":"Block","src":"1668:31:22","statements":[{"expression":{"id":5537,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"1685:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5536,"id":5538,"nodeType":"Return","src":"1678:14:22"}]},"documentation":{"id":5532,"nodeType":"StructuredDocumentation","src":"1526:84:22","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":5540,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:22","nodeType":"FunctionDefinition","parameters":{"id":5533,"nodeType":"ParameterList","parameters":[],"src":"1630:2:22"},"returnParameters":{"id":5536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5540,"src":"1662:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5534,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:22"},"scope":5596,"src":"1615:84:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5551,"nodeType":"Block","src":"1818:55:22","statements":[{"expression":{"arguments":[{"id":5547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:22","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5545,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"1837:6:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:8:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":5548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":5544,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5550,"nodeType":"ExpressionStatement","src":"1828:38:22"}]},"documentation":{"id":5541,"nodeType":"StructuredDocumentation","src":"1705:57:22","text":" @dev Throws if the contract is paused."},"id":5552,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:22","nodeType":"FunctionDefinition","parameters":{"id":5542,"nodeType":"ParameterList","parameters":[],"src":"1793:2:22"},"returnParameters":{"id":5543,"nodeType":"ParameterList","parameters":[],"src":"1818:0:22"},"scope":5596,"src":"1767:106:22","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5562,"nodeType":"Block","src":"1993:58:22","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5557,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"2011:6:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:8:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":5559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":5556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2003:41:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5561,"nodeType":"ExpressionStatement","src":"2003:41:22"}]},"documentation":{"id":5553,"nodeType":"StructuredDocumentation","src":"1879:61:22","text":" @dev Throws if the contract is not paused."},"id":5563,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:22","nodeType":"FunctionDefinition","parameters":{"id":5554,"nodeType":"ParameterList","parameters":[],"src":"1968:2:22"},"returnParameters":{"id":5555,"nodeType":"ParameterList","parameters":[],"src":"1993:0:22"},"scope":5596,"src":"1945:106:22","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5578,"nodeType":"Block","src":"2235:66:22","statements":[{"expression":{"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5569,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"2245:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5572,"nodeType":"ExpressionStatement","src":"2245:14:22"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5574,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"2281:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5573,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5499,"src":"2274:6:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5577,"nodeType":"EmitStatement","src":"2269:25:22"}]},"documentation":{"id":5564,"nodeType":"StructuredDocumentation","src":"2057:124:22","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":5579,"implemented":true,"kind":"function","modifiers":[{"id":5567,"kind":"modifierInvocation","modifierName":{"id":5566,"name":"whenNotPaused","nameLocations":["2221:13:22"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"2221:13:22"},"nodeType":"ModifierInvocation","src":"2221:13:22"}],"name":"_pause","nameLocation":"2195:6:22","nodeType":"FunctionDefinition","parameters":{"id":5565,"nodeType":"ParameterList","parameters":[],"src":"2201:2:22"},"returnParameters":{"id":5568,"nodeType":"ParameterList","parameters":[],"src":"2235:0:22"},"scope":5596,"src":"2186:115:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5594,"nodeType":"Block","src":"2481:69:22","statements":[{"expression":{"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5585,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"2491:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5588,"nodeType":"ExpressionStatement","src":"2491:15:22"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5590,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"2530:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5589,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5504,"src":"2521:8:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2521:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5593,"nodeType":"EmitStatement","src":"2516:27:22"}]},"documentation":{"id":5580,"nodeType":"StructuredDocumentation","src":"2307:121:22","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":5595,"implemented":true,"kind":"function","modifiers":[{"id":5583,"kind":"modifierInvocation","modifierName":{"id":5582,"name":"whenPaused","nameLocations":["2470:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":5531,"src":"2470:10:22"},"nodeType":"ModifierInvocation","src":"2470:10:22"}],"name":"_unpause","nameLocation":"2442:8:22","nodeType":"FunctionDefinition","parameters":{"id":5581,"nodeType":"ParameterList","parameters":[],"src":"2450:2:22"},"returnParameters":{"id":5584,"nodeType":"ParameterList","parameters":[],"src":"2481:0:22"},"scope":5596,"src":"2433:117:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5597,"src":"602:1950:22","usedErrors":[],"usedEvents":[5499,5504]}],"src":"105:2448:22"},"id":22},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[7050],"ERC20":[6183],"IERC20":[6261],"IERC20Metadata":[6286]},"id":6184,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5598,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":5599,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":6262,"src":"130:22:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":5600,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":6287,"src":"153:41:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5601,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6184,"sourceUnit":7051,"src":"195:33:23","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5603,"name":"Context","nameLocations":["1550:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":7050,"src":"1550:7:23"},"id":5604,"nodeType":"InheritanceSpecifier","src":"1550:7:23"},{"baseName":{"id":5605,"name":"IERC20","nameLocations":["1559:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"1559:6:23"},"id":5606,"nodeType":"InheritanceSpecifier","src":"1559:6:23"},{"baseName":{"id":5607,"name":"IERC20Metadata","nameLocations":["1567:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":6286,"src":"1567:14:23"},"id":5608,"nodeType":"InheritanceSpecifier","src":"1567:14:23"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":5602,"nodeType":"StructuredDocumentation","src":"230:1301:23","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":6183,"linearizedBaseContracts":[6183,6286,6261,7050],"name":"ERC20","nameLocation":"1541:5:23","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5612,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:23","nodeType":"VariableDeclaration","scope":6183,"src":"1588:45:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5611,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5609,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5610,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5618,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:23","nodeType":"VariableDeclaration","scope":6183,"src":"1640:67:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":5617,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5613,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5616,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5614,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":5620,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:23","nodeType":"VariableDeclaration","scope":6183,"src":"1714:28:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5619,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":5622,"mutability":"mutable","name":"_name","nameLocation":"1764:5:23","nodeType":"VariableDeclaration","scope":6183,"src":"1749:20:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5621,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5624,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:23","nodeType":"VariableDeclaration","scope":6183,"src":"1775:22:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5623,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":5640,"nodeType":"Block","src":"2036:57:23","statements":[{"expression":{"id":5634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5632,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5622,"src":"2046:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5633,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5627,"src":"2054:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5635,"nodeType":"ExpressionStatement","src":"2046:13:23"},{"expression":{"id":5638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5636,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5624,"src":"2069:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5637,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5629,"src":"2079:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5639,"nodeType":"ExpressionStatement","src":"2069:17:23"}]},"documentation":{"id":5625,"nodeType":"StructuredDocumentation","src":"1804:171:23","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":5641,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5627,"mutability":"mutable","name":"name_","nameLocation":"2006:5:23","nodeType":"VariableDeclaration","scope":5641,"src":"1992:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5626,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5629,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:23","nodeType":"VariableDeclaration","scope":5641,"src":"2013:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5628,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:23"},"returnParameters":{"id":5631,"nodeType":"ParameterList","parameters":[],"src":"2036:0:23"},"scope":6183,"src":"1980:113:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6273],"body":{"id":5650,"nodeType":"Block","src":"2227:29:23","statements":[{"expression":{"id":5648,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5622,"src":"2244:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5647,"id":5649,"nodeType":"Return","src":"2237:12:23"}]},"documentation":{"id":5642,"nodeType":"StructuredDocumentation","src":"2099:54:23","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":5651,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:23","nodeType":"FunctionDefinition","overrides":{"id":5644,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:23"},"parameters":{"id":5643,"nodeType":"ParameterList","parameters":[],"src":"2171:2:23"},"returnParameters":{"id":5647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5651,"src":"2212:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5645,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:23"},"scope":6183,"src":"2158:98:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6279],"body":{"id":5660,"nodeType":"Block","src":"2440:31:23","statements":[{"expression":{"id":5658,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5624,"src":"2457:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5657,"id":5659,"nodeType":"Return","src":"2450:14:23"}]},"documentation":{"id":5652,"nodeType":"StructuredDocumentation","src":"2262:102:23","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":5661,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:23","nodeType":"FunctionDefinition","overrides":{"id":5654,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:23"},"parameters":{"id":5653,"nodeType":"ParameterList","parameters":[],"src":"2384:2:23"},"returnParameters":{"id":5657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5661,"src":"2425:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5655,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:23"},"scope":6183,"src":"2369:102:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6285],"body":{"id":5670,"nodeType":"Block","src":"3169:26:23","statements":[{"expression":{"hexValue":"3138","id":5668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":5667,"id":5669,"nodeType":"Return","src":"3179:9:23"}]},"documentation":{"id":5662,"nodeType":"StructuredDocumentation","src":"2477:622:23","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":5671,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:23","nodeType":"FunctionDefinition","overrides":{"id":5664,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:23"},"parameters":{"id":5663,"nodeType":"ParameterList","parameters":[],"src":"3121:2:23"},"returnParameters":{"id":5667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5671,"src":"3162:5:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5665,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:23"},"scope":6183,"src":"3104:91:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6210],"body":{"id":5680,"nodeType":"Block","src":"3325:36:23","statements":[{"expression":{"id":5678,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5620,"src":"3342:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5677,"id":5679,"nodeType":"Return","src":"3335:19:23"}]},"documentation":{"id":5672,"nodeType":"StructuredDocumentation","src":"3201:49:23","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":5681,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:23","nodeType":"FunctionDefinition","overrides":{"id":5674,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:23"},"parameters":{"id":5673,"nodeType":"ParameterList","parameters":[],"src":"3275:2:23"},"returnParameters":{"id":5677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5681,"src":"3316:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5675,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:23"},"scope":6183,"src":"3255:106:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6218],"body":{"id":5694,"nodeType":"Block","src":"3502:42:23","statements":[{"expression":{"baseExpression":{"id":5690,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"3519:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5692,"indexExpression":{"id":5691,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5684,"src":"3529:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5689,"id":5693,"nodeType":"Return","src":"3512:25:23"}]},"documentation":{"id":5682,"nodeType":"StructuredDocumentation","src":"3367:47:23","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":5695,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:23","nodeType":"FunctionDefinition","overrides":{"id":5686,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:23"},"parameters":{"id":5685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5684,"mutability":"mutable","name":"account","nameLocation":"3446:7:23","nodeType":"VariableDeclaration","scope":5695,"src":"3438:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5683,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:23"},"returnParameters":{"id":5689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5695,"src":"3493:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5687,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:23"},"scope":6183,"src":"3419:125:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6228],"body":{"id":5719,"nodeType":"Block","src":"3825:104:23","statements":[{"assignments":[5707],"declarations":[{"constant":false,"id":5707,"mutability":"mutable","name":"owner","nameLocation":"3843:5:23","nodeType":"VariableDeclaration","scope":5719,"src":"3835:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5706,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5708,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"3851:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:23"},{"expression":{"arguments":[{"id":5712,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5707,"src":"3883:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5713,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5698,"src":"3890:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5714,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"3894:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5711,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5943,"src":"3873:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5716,"nodeType":"ExpressionStatement","src":"3873:28:23"},{"expression":{"hexValue":"74727565","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5705,"id":5718,"nodeType":"Return","src":"3911:11:23"}]},"documentation":{"id":5696,"nodeType":"StructuredDocumentation","src":"3550:185:23","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":5720,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:23","nodeType":"FunctionDefinition","overrides":{"id":5702,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:23"},"parameters":{"id":5701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5698,"mutability":"mutable","name":"to","nameLocation":"3766:2:23","nodeType":"VariableDeclaration","scope":5720,"src":"3758:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5697,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5700,"mutability":"mutable","name":"amount","nameLocation":"3778:6:23","nodeType":"VariableDeclaration","scope":5720,"src":"3770:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5699,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:23"},"returnParameters":{"id":5705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5720,"src":"3819:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5703,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:23"},"scope":6183,"src":"3740:189:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6238],"body":{"id":5737,"nodeType":"Block","src":"4085:51:23","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5731,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5618,"src":"4102:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5733,"indexExpression":{"id":5732,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5723,"src":"4114:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5735,"indexExpression":{"id":5734,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5725,"src":"4121:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5730,"id":5736,"nodeType":"Return","src":"4095:34:23"}]},"documentation":{"id":5721,"nodeType":"StructuredDocumentation","src":"3935:47:23","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":5738,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:23","nodeType":"FunctionDefinition","overrides":{"id":5727,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:23"},"parameters":{"id":5726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5723,"mutability":"mutable","name":"owner","nameLocation":"4014:5:23","nodeType":"VariableDeclaration","scope":5738,"src":"4006:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5722,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5725,"mutability":"mutable","name":"spender","nameLocation":"4029:7:23","nodeType":"VariableDeclaration","scope":5738,"src":"4021:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5724,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:23"},"returnParameters":{"id":5730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5738,"src":"4076:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5728,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:23"},"scope":6183,"src":"3987:149:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6248],"body":{"id":5762,"nodeType":"Block","src":"4533:108:23","statements":[{"assignments":[5750],"declarations":[{"constant":false,"id":5750,"mutability":"mutable","name":"owner","nameLocation":"4551:5:23","nodeType":"VariableDeclaration","scope":5762,"src":"4543:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5749,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5751,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"4559:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:23"},{"expression":{"arguments":[{"id":5755,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5750,"src":"4590:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5756,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5741,"src":"4597:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5757,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5743,"src":"4606:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5754,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"4581:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5759,"nodeType":"ExpressionStatement","src":"4581:32:23"},{"expression":{"hexValue":"74727565","id":5760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5748,"id":5761,"nodeType":"Return","src":"4623:11:23"}]},"documentation":{"id":5739,"nodeType":"StructuredDocumentation","src":"4142:297:23","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":5763,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:23","nodeType":"FunctionDefinition","overrides":{"id":5745,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:23"},"parameters":{"id":5744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5741,"mutability":"mutable","name":"spender","nameLocation":"4469:7:23","nodeType":"VariableDeclaration","scope":5763,"src":"4461:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5740,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5743,"mutability":"mutable","name":"amount","nameLocation":"4486:6:23","nodeType":"VariableDeclaration","scope":5763,"src":"4478:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5742,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:23"},"returnParameters":{"id":5748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5763,"src":"4527:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5746,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:23"},"scope":6183,"src":"4444:197:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6260],"body":{"id":5795,"nodeType":"Block","src":"5306:153:23","statements":[{"assignments":[5777],"declarations":[{"constant":false,"id":5777,"mutability":"mutable","name":"spender","nameLocation":"5324:7:23","nodeType":"VariableDeclaration","scope":5795,"src":"5316:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5776,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5778,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"5334:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:23"},{"expression":{"arguments":[{"id":5782,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"5372:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5783,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5777,"src":"5378:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5784,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"5387:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5781,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"5356:15:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5786,"nodeType":"ExpressionStatement","src":"5356:38:23"},{"expression":{"arguments":[{"id":5788,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"5414:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5789,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"5420:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5790,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5770,"src":"5424:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5787,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5943,"src":"5404:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5792,"nodeType":"ExpressionStatement","src":"5404:27:23"},{"expression":{"hexValue":"74727565","id":5793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5775,"id":5794,"nodeType":"Return","src":"5441:11:23"}]},"documentation":{"id":5764,"nodeType":"StructuredDocumentation","src":"4647:551:23","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":5796,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:23","nodeType":"FunctionDefinition","overrides":{"id":5772,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:23"},"parameters":{"id":5771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5766,"mutability":"mutable","name":"from","nameLocation":"5233:4:23","nodeType":"VariableDeclaration","scope":5796,"src":"5225:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5765,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5768,"mutability":"mutable","name":"to","nameLocation":"5247:2:23","nodeType":"VariableDeclaration","scope":5796,"src":"5239:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5767,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5770,"mutability":"mutable","name":"amount","nameLocation":"5259:6:23","nodeType":"VariableDeclaration","scope":5796,"src":"5251:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5769,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:23"},"returnParameters":{"id":5775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5796,"src":"5300:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5773,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:23"},"scope":6183,"src":"5203:256:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5824,"nodeType":"Block","src":"5948:140:23","statements":[{"assignments":[5807],"declarations":[{"constant":false,"id":5807,"mutability":"mutable","name":"owner","nameLocation":"5966:5:23","nodeType":"VariableDeclaration","scope":5824,"src":"5958:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5806,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5810,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5808,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"5974:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:23"},{"expression":{"arguments":[{"id":5812,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5807,"src":"6005:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5813,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5799,"src":"6012:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5815,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5807,"src":"6031:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5816,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5799,"src":"6038:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5814,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5738,"src":"6021:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5818,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"6049:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5811,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"5996:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5821,"nodeType":"ExpressionStatement","src":"5996:64:23"},{"expression":{"hexValue":"74727565","id":5822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5805,"id":5823,"nodeType":"Return","src":"6070:11:23"}]},"documentation":{"id":5797,"nodeType":"StructuredDocumentation","src":"5465:384:23","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":5825,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:23","nodeType":"FunctionDefinition","parameters":{"id":5802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5799,"mutability":"mutable","name":"spender","nameLocation":"5889:7:23","nodeType":"VariableDeclaration","scope":5825,"src":"5881:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5798,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5801,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:23","nodeType":"VariableDeclaration","scope":5825,"src":"5898:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5800,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:23"},"returnParameters":{"id":5805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5825,"src":"5942:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5803,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:23"},"scope":6183,"src":"5854:234:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5865,"nodeType":"Block","src":"6674:328:23","statements":[{"assignments":[5836],"declarations":[{"constant":false,"id":5836,"mutability":"mutable","name":"owner","nameLocation":"6692:5:23","nodeType":"VariableDeclaration","scope":5865,"src":"6684:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5835,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5837,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"6700:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:23"},{"assignments":[5841],"declarations":[{"constant":false,"id":5841,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:23","nodeType":"VariableDeclaration","scope":5865,"src":"6722:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5840,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5846,"initialValue":{"arguments":[{"id":5843,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"6759:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5844,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5828,"src":"6766:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5842,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5738,"src":"6749:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5848,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5841,"src":"6792:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5849,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5830,"src":"6812:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":5847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6784:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5853,"nodeType":"ExpressionStatement","src":"6784:85:23"},{"id":5862,"nodeType":"UncheckedBlock","src":"6879:95:23","statements":[{"expression":{"arguments":[{"id":5855,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"6912:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5856,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5828,"src":"6919:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5857,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5841,"src":"6928:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5858,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5830,"src":"6947:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5854,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"6903:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5861,"nodeType":"ExpressionStatement","src":"6903:60:23"}]},{"expression":{"hexValue":"74727565","id":5863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5834,"id":5864,"nodeType":"Return","src":"6984:11:23"}]},"documentation":{"id":5826,"nodeType":"StructuredDocumentation","src":"6094:476:23","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":5866,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:23","nodeType":"FunctionDefinition","parameters":{"id":5831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5828,"mutability":"mutable","name":"spender","nameLocation":"6610:7:23","nodeType":"VariableDeclaration","scope":5866,"src":"6602:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5827,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5830,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:23","nodeType":"VariableDeclaration","scope":5866,"src":"6619:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:23"},"returnParameters":{"id":5834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5866,"src":"6668:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5832,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:23"},"scope":6183,"src":"6575:427:23","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5942,"nodeType":"Block","src":"7534:710:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5877,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"7552:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5878,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:23","typeDescriptions":{}}},"id":5881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":5883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":5876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7544:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5885,"nodeType":"ExpressionStatement","src":"7544:68:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5887,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"7630:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5888,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:23","typeDescriptions":{}}},"id":5891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":5893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":5886,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7622:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5895,"nodeType":"ExpressionStatement","src":"7622:64:23"},{"expression":{"arguments":[{"id":5897,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"7718:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5898,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"7724:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5899,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"7728:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5896,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"7697:20:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5901,"nodeType":"ExpressionStatement","src":"7697:38:23"},{"assignments":[5903],"declarations":[{"constant":false,"id":5903,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:23","nodeType":"VariableDeclaration","scope":5942,"src":"7746:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5902,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5907,"initialValue":{"baseExpression":{"id":5904,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"7768:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5906,"indexExpression":{"id":5905,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"7778:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5909,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"7801:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5910,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"7816:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":5912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":5908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7793:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5914,"nodeType":"ExpressionStatement","src":"7793:72:23"},{"id":5929,"nodeType":"UncheckedBlock","src":"7875:273:23","statements":[{"expression":{"id":5921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5915,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"7899:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5917,"indexExpression":{"id":5916,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"7909:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5918,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"7917:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5919,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"7931:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5922,"nodeType":"ExpressionStatement","src":"7899:38:23"},{"expression":{"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5923,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"8114:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5925,"indexExpression":{"id":5924,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"8124:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5926,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"8131:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5928,"nodeType":"ExpressionStatement","src":"8114:23:23"}]},{"eventCall":{"arguments":[{"id":5931,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"8172:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5932,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"8178:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"8182:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5930,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"8163:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5935,"nodeType":"EmitStatement","src":"8158:31:23"},{"expression":{"arguments":[{"id":5937,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"8220:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5938,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"8226:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5939,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"8230:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5936,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"8200:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5941,"nodeType":"ExpressionStatement","src":"8200:37:23"}]},"documentation":{"id":5867,"nodeType":"StructuredDocumentation","src":"7008:443:23","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":5943,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:23","nodeType":"FunctionDefinition","parameters":{"id":5874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5869,"mutability":"mutable","name":"from","nameLocation":"7483:4:23","nodeType":"VariableDeclaration","scope":5943,"src":"7475:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5868,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5871,"mutability":"mutable","name":"to","nameLocation":"7497:2:23","nodeType":"VariableDeclaration","scope":5943,"src":"7489:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5870,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5873,"mutability":"mutable","name":"amount","nameLocation":"7509:6:23","nodeType":"VariableDeclaration","scope":5943,"src":"7501:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5872,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:23"},"returnParameters":{"id":5875,"nodeType":"ParameterList","parameters":[],"src":"7534:0:23"},"scope":6183,"src":"7456:788:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5999,"nodeType":"Block","src":"8585:470:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5952,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"8603:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5953,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:23","typeDescriptions":{}}},"id":5956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":5958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":5951,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8595:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5960,"nodeType":"ExpressionStatement","src":"8595:65:23"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5962,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:23","typeDescriptions":{}}},"id":5965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5966,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"8704:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5967,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"8713:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5961,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"8671:20:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"8671:49:23"},{"expression":{"id":5972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5970,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5620,"src":"8731:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5971,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"8747:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5973,"nodeType":"ExpressionStatement","src":"8731:22:23"},{"id":5980,"nodeType":"UncheckedBlock","src":"8763:175:23","statements":[{"expression":{"id":5978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5974,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"8899:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5976,"indexExpression":{"id":5975,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"8909:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5977,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"8921:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5979,"nodeType":"ExpressionStatement","src":"8899:28:23"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":5984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5982,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:23","typeDescriptions":{}}},"id":5985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5986,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"8973:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5987,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"8982:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5981,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"8952:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5989,"nodeType":"EmitStatement","src":"8947:42:23"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5991,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:23","typeDescriptions":{}}},"id":5994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5995,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"9032:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5996,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"9041:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5990,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"9000:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5998,"nodeType":"ExpressionStatement","src":"9000:48:23"}]},"documentation":{"id":5944,"nodeType":"StructuredDocumentation","src":"8250:265:23","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":6000,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:23","nodeType":"FunctionDefinition","parameters":{"id":5949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5946,"mutability":"mutable","name":"account","nameLocation":"8543:7:23","nodeType":"VariableDeclaration","scope":6000,"src":"8535:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5945,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5948,"mutability":"mutable","name":"amount","nameLocation":"8560:6:23","nodeType":"VariableDeclaration","scope":6000,"src":"8552:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5947,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:23"},"returnParameters":{"id":5950,"nodeType":"ParameterList","parameters":[],"src":"8585:0:23"},"scope":6183,"src":"8520:535:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6071,"nodeType":"Block","src":"9440:594:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6009,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9458:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6010,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:23","typeDescriptions":{}}},"id":6013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":6015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":6008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9450:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6017,"nodeType":"ExpressionStatement","src":"9450:67:23"},{"expression":{"arguments":[{"id":6019,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9549:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6020,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:23","typeDescriptions":{}}},"id":6023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6024,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"9570:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6018,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"9528:20:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6026,"nodeType":"ExpressionStatement","src":"9528:49:23"},{"assignments":[6028],"declarations":[{"constant":false,"id":6028,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:23","nodeType":"VariableDeclaration","scope":6071,"src":"9588:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6027,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6032,"initialValue":{"baseExpression":{"id":6029,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"9613:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6031,"indexExpression":{"id":6030,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9623:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6034,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6028,"src":"9649:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"9667:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":6037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":6033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9641:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6039,"nodeType":"ExpressionStatement","src":"9641:71:23"},{"id":6052,"nodeType":"UncheckedBlock","src":"9722:194:23","statements":[{"expression":{"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6040,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"9746:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6042,"indexExpression":{"id":6041,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9756:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6043,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6028,"src":"9767:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6044,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"9784:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6047,"nodeType":"ExpressionStatement","src":"9746:44:23"},{"expression":{"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6048,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5620,"src":"9883:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6049,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"9899:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6051,"nodeType":"ExpressionStatement","src":"9883:22:23"}]},{"eventCall":{"arguments":[{"id":6054,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9940:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6055,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:23","typeDescriptions":{}}},"id":6058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"9961:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6053,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"9931:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6061,"nodeType":"EmitStatement","src":"9926:42:23"},{"expression":{"arguments":[{"id":6063,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6003,"src":"9999:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6064,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:23","typeDescriptions":{}}},"id":6067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"10020:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6062,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"9979:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6070,"nodeType":"ExpressionStatement","src":"9979:48:23"}]},"documentation":{"id":6001,"nodeType":"StructuredDocumentation","src":"9061:309:23","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":6072,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:23","nodeType":"FunctionDefinition","parameters":{"id":6006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6003,"mutability":"mutable","name":"account","nameLocation":"9398:7:23","nodeType":"VariableDeclaration","scope":6072,"src":"9390:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6002,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6005,"mutability":"mutable","name":"amount","nameLocation":"9415:6:23","nodeType":"VariableDeclaration","scope":6072,"src":"9407:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6004,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:23"},"returnParameters":{"id":6007,"nodeType":"ParameterList","parameters":[],"src":"9440:0:23"},"scope":6183,"src":"9375:659:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6116,"nodeType":"Block","src":"10540:257:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6083,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"10558:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6084,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:23","typeDescriptions":{}}},"id":6087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":6089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":6082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10550:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6091,"nodeType":"ExpressionStatement","src":"10550:68:23"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6093,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"10636:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6094,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:23","typeDescriptions":{}}},"id":6097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":6099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":6092,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10628:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6101,"nodeType":"ExpressionStatement","src":"10628:68:23"},{"expression":{"id":6108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6102,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5618,"src":"10707:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":6105,"indexExpression":{"id":6103,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"10719:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6106,"indexExpression":{"id":6104,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"10726:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6107,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"10737:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6109,"nodeType":"ExpressionStatement","src":"10707:36:23"},{"eventCall":{"arguments":[{"id":6111,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"10767:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6112,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"10774:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6113,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"10783:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6110,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6204,"src":"10758:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6115,"nodeType":"EmitStatement","src":"10753:37:23"}]},"documentation":{"id":6073,"nodeType":"StructuredDocumentation","src":"10040:412:23","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":6117,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:23","nodeType":"FunctionDefinition","parameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6075,"mutability":"mutable","name":"owner","nameLocation":"10483:5:23","nodeType":"VariableDeclaration","scope":6117,"src":"10475:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6074,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6077,"mutability":"mutable","name":"spender","nameLocation":"10498:7:23","nodeType":"VariableDeclaration","scope":6117,"src":"10490:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6076,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6079,"mutability":"mutable","name":"amount","nameLocation":"10515:6:23","nodeType":"VariableDeclaration","scope":6117,"src":"10507:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6078,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:23"},"returnParameters":{"id":6081,"nodeType":"ParameterList","parameters":[],"src":"10540:0:23"},"scope":6183,"src":"10457:340:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6159,"nodeType":"Block","src":"11168:321:23","statements":[{"assignments":[6128],"declarations":[{"constant":false,"id":6128,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:23","nodeType":"VariableDeclaration","scope":6159,"src":"11178:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6127,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6133,"initialValue":{"arguments":[{"id":6130,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"11215:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6131,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"11222:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6129,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5738,"src":"11205:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6134,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"11244:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":6137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6136,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":6135,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":6139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:23","memberName":"max","nodeType":"MemberAccess","src":"11264:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6158,"nodeType":"IfStatement","src":"11240:243:23","trueBody":{"id":6157,"nodeType":"Block","src":"11283:200:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6142,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"11305:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"11325:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":6145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":6141,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11297:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6147,"nodeType":"ExpressionStatement","src":"11297:68:23"},{"id":6156,"nodeType":"UncheckedBlock","src":"11379:94:23","statements":[{"expression":{"arguments":[{"id":6149,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6120,"src":"11416:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6150,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"11423:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6151,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"11432:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6152,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6124,"src":"11451:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6148,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"11407:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6155,"nodeType":"ExpressionStatement","src":"11407:51:23"}]}]}}]},"documentation":{"id":6118,"nodeType":"StructuredDocumentation","src":"10803:270:23","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":6160,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:23","nodeType":"FunctionDefinition","parameters":{"id":6125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6120,"mutability":"mutable","name":"owner","nameLocation":"11111:5:23","nodeType":"VariableDeclaration","scope":6160,"src":"11103:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6119,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6122,"mutability":"mutable","name":"spender","nameLocation":"11126:7:23","nodeType":"VariableDeclaration","scope":6160,"src":"11118:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6121,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6124,"mutability":"mutable","name":"amount","nameLocation":"11143:6:23","nodeType":"VariableDeclaration","scope":6160,"src":"11135:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6123,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:23"},"returnParameters":{"id":6126,"nodeType":"ParameterList","parameters":[],"src":"11168:0:23"},"scope":6183,"src":"11078:411:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6170,"nodeType":"Block","src":"12162:2:23","statements":[]},"documentation":{"id":6161,"nodeType":"StructuredDocumentation","src":"11495:573:23","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":6171,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:23","nodeType":"FunctionDefinition","parameters":{"id":6168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6163,"mutability":"mutable","name":"from","nameLocation":"12111:4:23","nodeType":"VariableDeclaration","scope":6171,"src":"12103:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6162,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6165,"mutability":"mutable","name":"to","nameLocation":"12125:2:23","nodeType":"VariableDeclaration","scope":6171,"src":"12117:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6164,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6167,"mutability":"mutable","name":"amount","nameLocation":"12137:6:23","nodeType":"VariableDeclaration","scope":6171,"src":"12129:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6166,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:23"},"returnParameters":{"id":6169,"nodeType":"ParameterList","parameters":[],"src":"12162:0:23"},"scope":6183,"src":"12073:91:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6181,"nodeType":"Block","src":"12840:2:23","statements":[]},"documentation":{"id":6172,"nodeType":"StructuredDocumentation","src":"12170:577:23","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":6182,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:23","nodeType":"FunctionDefinition","parameters":{"id":6179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6174,"mutability":"mutable","name":"from","nameLocation":"12789:4:23","nodeType":"VariableDeclaration","scope":6182,"src":"12781:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6173,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6176,"mutability":"mutable","name":"to","nameLocation":"12803:2:23","nodeType":"VariableDeclaration","scope":6182,"src":"12795:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6175,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6178,"mutability":"mutable","name":"amount","nameLocation":"12815:6:23","nodeType":"VariableDeclaration","scope":6182,"src":"12807:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6177,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:23"},"returnParameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"12840:0:23"},"scope":6183,"src":"12752:90:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":6184,"src":"1532:11312:23","usedErrors":[],"usedEvents":[6195,6204]}],"src":"105:12740:23"},"id":23},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[6261]},"id":6262,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6185,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:24"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":6186,"nodeType":"StructuredDocumentation","src":"131:70:24","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":6261,"linearizedBaseContracts":[6261],"name":"IERC20","nameLocation":"212:6:24","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6187,"nodeType":"StructuredDocumentation","src":"225:158:24","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":6195,"name":"Transfer","nameLocation":"394:8:24","nodeType":"EventDefinition","parameters":{"id":6194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6189,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:24","nodeType":"VariableDeclaration","scope":6195,"src":"403:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6188,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6191,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:24","nodeType":"VariableDeclaration","scope":6195,"src":"425:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6190,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6193,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:24","nodeType":"VariableDeclaration","scope":6195,"src":"445:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6192,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:24"},"src":"388:72:24"},{"anonymous":false,"documentation":{"id":6196,"nodeType":"StructuredDocumentation","src":"466:148:24","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":6204,"name":"Approval","nameLocation":"625:8:24","nodeType":"EventDefinition","parameters":{"id":6203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6198,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:24","nodeType":"VariableDeclaration","scope":6204,"src":"634:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6197,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6200,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:24","nodeType":"VariableDeclaration","scope":6204,"src":"657:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6199,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6202,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:24","nodeType":"VariableDeclaration","scope":6204,"src":"682:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6201,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:24"},"src":"619:78:24"},{"documentation":{"id":6205,"nodeType":"StructuredDocumentation","src":"703:66:24","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":6210,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:24","nodeType":"FunctionDefinition","parameters":{"id":6206,"nodeType":"ParameterList","parameters":[],"src":"794:2:24"},"returnParameters":{"id":6209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6210,"src":"820:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6207,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:24"},"scope":6261,"src":"774:55:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6211,"nodeType":"StructuredDocumentation","src":"835:72:24","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":6218,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:24","nodeType":"FunctionDefinition","parameters":{"id":6214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6213,"mutability":"mutable","name":"account","nameLocation":"939:7:24","nodeType":"VariableDeclaration","scope":6218,"src":"931:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6212,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:24"},"returnParameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6218,"src":"971:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6215,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:24"},"scope":6261,"src":"912:68:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6219,"nodeType":"StructuredDocumentation","src":"986:202:24","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":6228,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:24","nodeType":"FunctionDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6221,"mutability":"mutable","name":"to","nameLocation":"1219:2:24","nodeType":"VariableDeclaration","scope":6228,"src":"1211:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6220,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6223,"mutability":"mutable","name":"amount","nameLocation":"1231:6:24","nodeType":"VariableDeclaration","scope":6228,"src":"1223:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:24"},"returnParameters":{"id":6227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6228,"src":"1257:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6225,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:24"},"scope":6261,"src":"1193:70:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6229,"nodeType":"StructuredDocumentation","src":"1269:264:24","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":6238,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:24","nodeType":"FunctionDefinition","parameters":{"id":6234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6231,"mutability":"mutable","name":"owner","nameLocation":"1565:5:24","nodeType":"VariableDeclaration","scope":6238,"src":"1557:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6230,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6233,"mutability":"mutable","name":"spender","nameLocation":"1580:7:24","nodeType":"VariableDeclaration","scope":6238,"src":"1572:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6232,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:24"},"returnParameters":{"id":6237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6238,"src":"1612:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6235,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:24"},"scope":6261,"src":"1538:83:24","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6239,"nodeType":"StructuredDocumentation","src":"1627:642:24","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":6248,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:24","nodeType":"FunctionDefinition","parameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6241,"mutability":"mutable","name":"spender","nameLocation":"2299:7:24","nodeType":"VariableDeclaration","scope":6248,"src":"2291:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6240,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6243,"mutability":"mutable","name":"amount","nameLocation":"2316:6:24","nodeType":"VariableDeclaration","scope":6248,"src":"2308:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:24"},"returnParameters":{"id":6247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6248,"src":"2342:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6245,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:24"},"scope":6261,"src":"2274:74:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6249,"nodeType":"StructuredDocumentation","src":"2354:287:24","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":6260,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:24","nodeType":"FunctionDefinition","parameters":{"id":6256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6251,"mutability":"mutable","name":"from","nameLocation":"2676:4:24","nodeType":"VariableDeclaration","scope":6260,"src":"2668:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6250,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6253,"mutability":"mutable","name":"to","nameLocation":"2690:2:24","nodeType":"VariableDeclaration","scope":6260,"src":"2682:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6252,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6255,"mutability":"mutable","name":"amount","nameLocation":"2702:6:24","nodeType":"VariableDeclaration","scope":6260,"src":"2694:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6254,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:24"},"returnParameters":{"id":6259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6260,"src":"2728:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6257,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:24"},"scope":6261,"src":"2646:88:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6262,"src":"202:2534:24","usedErrors":[],"usedEvents":[6195,6204]}],"src":"106:2631:24"},"id":24},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[6261],"IERC20Metadata":[6286]},"id":6287,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6263,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:25"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6287,"sourceUnit":6262,"src":"135:23:25","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6266,"name":"IERC20","nameLocations":["305:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"305:6:25"},"id":6267,"nodeType":"InheritanceSpecifier","src":"305:6:25"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6265,"nodeType":"StructuredDocumentation","src":"160:116:25","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":6286,"linearizedBaseContracts":[6286,6261],"name":"IERC20Metadata","nameLocation":"287:14:25","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6268,"nodeType":"StructuredDocumentation","src":"318:54:25","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":6273,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:25","nodeType":"FunctionDefinition","parameters":{"id":6269,"nodeType":"ParameterList","parameters":[],"src":"390:2:25"},"returnParameters":{"id":6272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6273,"src":"416:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6270,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:25"},"scope":6286,"src":"377:54:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6274,"nodeType":"StructuredDocumentation","src":"437:56:25","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":6279,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:25","nodeType":"FunctionDefinition","parameters":{"id":6275,"nodeType":"ParameterList","parameters":[],"src":"513:2:25"},"returnParameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6279,"src":"539:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6276,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:25"},"scope":6286,"src":"498:56:25","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6280,"nodeType":"StructuredDocumentation","src":"560:65:25","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":6285,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:25","nodeType":"FunctionDefinition","parameters":{"id":6281,"nodeType":"ParameterList","parameters":[],"src":"647:2:25"},"returnParameters":{"id":6284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6285,"src":"673:5:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6282,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:25"},"scope":6286,"src":"630:50:25","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6287,"src":"277:405:25","usedErrors":[],"usedEvents":[6195,6204]}],"src":"110:573:25"},"id":25},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[6322]},"id":6323,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6288,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":6289,"nodeType":"StructuredDocumentation","src":"148:480:26","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":6322,"linearizedBaseContracts":[6322],"name":"IERC20Permit","nameLocation":"639:12:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6290,"nodeType":"StructuredDocumentation","src":"658:792:26","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":6307,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1464:6:26","nodeType":"FunctionDefinition","parameters":{"id":6305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6292,"mutability":"mutable","name":"owner","nameLocation":"1488:5:26","nodeType":"VariableDeclaration","scope":6307,"src":"1480:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6291,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6294,"mutability":"mutable","name":"spender","nameLocation":"1511:7:26","nodeType":"VariableDeclaration","scope":6307,"src":"1503:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6293,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6296,"mutability":"mutable","name":"value","nameLocation":"1536:5:26","nodeType":"VariableDeclaration","scope":6307,"src":"1528:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6298,"mutability":"mutable","name":"deadline","nameLocation":"1559:8:26","nodeType":"VariableDeclaration","scope":6307,"src":"1551:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6297,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6300,"mutability":"mutable","name":"v","nameLocation":"1583:1:26","nodeType":"VariableDeclaration","scope":6307,"src":"1577:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6299,"name":"uint8","nodeType":"ElementaryTypeName","src":"1577:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6302,"mutability":"mutable","name":"r","nameLocation":"1602:1:26","nodeType":"VariableDeclaration","scope":6307,"src":"1594:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1594:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6304,"mutability":"mutable","name":"s","nameLocation":"1621:1:26","nodeType":"VariableDeclaration","scope":6307,"src":"1613:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1613:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1470:158:26"},"returnParameters":{"id":6306,"nodeType":"ParameterList","parameters":[],"src":"1637:0:26"},"scope":6322,"src":"1455:183:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6308,"nodeType":"StructuredDocumentation","src":"1644:294:26","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":6315,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1952:6:26","nodeType":"FunctionDefinition","parameters":{"id":6311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6310,"mutability":"mutable","name":"owner","nameLocation":"1967:5:26","nodeType":"VariableDeclaration","scope":6315,"src":"1959:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1958:15:26"},"returnParameters":{"id":6314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6313,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6315,"src":"1997:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:9:26"},"scope":6322,"src":"1943:63:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6316,"nodeType":"StructuredDocumentation","src":"2012:128:26","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":6321,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2207:16:26","nodeType":"FunctionDefinition","parameters":{"id":6317,"nodeType":"ParameterList","parameters":[],"src":"2223:2:26"},"returnParameters":{"id":6320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6321,"src":"2249:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2249:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2248:9:26"},"scope":6322,"src":"2198:60:26","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6323,"src":"629:1631:26","usedErrors":[],"usedEvents":[]}],"src":"123:2138:26"},"id":26},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[7028],"IERC20":[6261],"IERC20Permit":[6322],"SafeERC20":[6698]},"id":6699,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6324,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:27"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6325,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6699,"sourceUnit":6262,"src":"140:23:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":6326,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6699,"sourceUnit":6323,"src":"164:40:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":6327,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6699,"sourceUnit":7029,"src":"205:36:27","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":6328,"nodeType":"StructuredDocumentation","src":"243:457:27","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":6698,"linearizedBaseContracts":[6698],"name":"SafeERC20","nameLocation":"709:9:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6331,"libraryName":{"id":6329,"name":"Address","nameLocations":["731:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":7028,"src":"731:7:27"},"nodeType":"UsingForDirective","src":"725:26:27","typeName":{"id":6330,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":6354,"nodeType":"Block","src":"1013:103:27","statements":[{"expression":{"arguments":[{"id":6343,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"1043:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6346,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"1073:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:27","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6228,"src":"1073:14:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:27","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6349,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6337,"src":"1098:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6350,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"1102:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6342,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"1023:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6353,"nodeType":"ExpressionStatement","src":"1023:86:27"}]},"documentation":{"id":6332,"nodeType":"StructuredDocumentation","src":"757:179:27","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6355,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:27","nodeType":"FunctionDefinition","parameters":{"id":6340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6335,"mutability":"mutable","name":"token","nameLocation":"970:5:27","nodeType":"VariableDeclaration","scope":6355,"src":"963:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6334,"nodeType":"UserDefinedTypeName","pathNode":{"id":6333,"name":"IERC20","nameLocations":["963:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"963:6:27"},"referencedDeclaration":6261,"src":"963:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6337,"mutability":"mutable","name":"to","nameLocation":"985:2:27","nodeType":"VariableDeclaration","scope":6355,"src":"977:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6336,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6339,"mutability":"mutable","name":"value","nameLocation":"997:5:27","nodeType":"VariableDeclaration","scope":6355,"src":"989:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6338,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:27"},"returnParameters":{"id":6341,"nodeType":"ParameterList","parameters":[],"src":"1013:0:27"},"scope":6698,"src":"941:175:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6381,"nodeType":"Block","src":"1445:113:27","statements":[{"expression":{"arguments":[{"id":6369,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6359,"src":"1475:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6372,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6359,"src":"1505:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:27","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6260,"src":"1505:18:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":6374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:27","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6375,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6361,"src":"1534:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6376,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"1540:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6365,"src":"1544:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6370,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6368,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"1455:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6380,"nodeType":"ExpressionStatement","src":"1455:96:27"}]},"documentation":{"id":6356,"nodeType":"StructuredDocumentation","src":"1122:228:27","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":6382,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:27","nodeType":"FunctionDefinition","parameters":{"id":6366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6359,"mutability":"mutable","name":"token","nameLocation":"1388:5:27","nodeType":"VariableDeclaration","scope":6382,"src":"1381:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6358,"nodeType":"UserDefinedTypeName","pathNode":{"id":6357,"name":"IERC20","nameLocations":["1381:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"1381:6:27"},"referencedDeclaration":6261,"src":"1381:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6361,"mutability":"mutable","name":"from","nameLocation":"1403:4:27","nodeType":"VariableDeclaration","scope":6382,"src":"1395:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6360,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6363,"mutability":"mutable","name":"to","nameLocation":"1417:2:27","nodeType":"VariableDeclaration","scope":6382,"src":"1409:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6362,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6365,"mutability":"mutable","name":"value","nameLocation":"1429:5:27","nodeType":"VariableDeclaration","scope":6382,"src":"1421:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:27"},"returnParameters":{"id":6367,"nodeType":"ParameterList","parameters":[],"src":"1445:0:27"},"scope":6698,"src":"1355:203:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6425,"nodeType":"Block","src":"1894:497:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6394,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2143:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6397,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6402,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}],"id":6401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6400,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:27","typeDescriptions":{}}},"id":6403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6404,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6388,"src":"2190:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6398,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6386,"src":"2159:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:27","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6238,"src":"2159:15:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":6410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":6393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6412,"nodeType":"ExpressionStatement","src":"2121:163:27"},{"expression":{"arguments":[{"id":6414,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6386,"src":"2314:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6417,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6386,"src":"2344:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:27","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6248,"src":"2344:13:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:27","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6420,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6388,"src":"2368:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6421,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2377:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6415,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6413,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"2294:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6424,"nodeType":"ExpressionStatement","src":"2294:90:27"}]},"documentation":{"id":6383,"nodeType":"StructuredDocumentation","src":"1564:249:27","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":6426,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:27","nodeType":"FunctionDefinition","parameters":{"id":6391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6386,"mutability":"mutable","name":"token","nameLocation":"1846:5:27","nodeType":"VariableDeclaration","scope":6426,"src":"1839:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6385,"nodeType":"UserDefinedTypeName","pathNode":{"id":6384,"name":"IERC20","nameLocations":["1839:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"1839:6:27"},"referencedDeclaration":6261,"src":"1839:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6388,"mutability":"mutable","name":"spender","nameLocation":"1861:7:27","nodeType":"VariableDeclaration","scope":6426,"src":"1853:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6387,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6390,"mutability":"mutable","name":"value","nameLocation":"1878:5:27","nodeType":"VariableDeclaration","scope":6426,"src":"1870:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6389,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:27"},"returnParameters":{"id":6392,"nodeType":"ParameterList","parameters":[],"src":"1894:0:27"},"scope":6698,"src":"1818:573:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6462,"nodeType":"Block","src":"2668:194:27","statements":[{"assignments":[6438],"declarations":[{"constant":false,"id":6438,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:27","nodeType":"VariableDeclaration","scope":6462,"src":"2678:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6437,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6447,"initialValue":{"arguments":[{"arguments":[{"id":6443,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}],"id":6442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6441,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:27","typeDescriptions":{}}},"id":6444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6445,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6432,"src":"2732:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6439,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6430,"src":"2701:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:27","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6238,"src":"2701:15:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:27"},{"expression":{"arguments":[{"id":6449,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6430,"src":"2770:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6452,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6430,"src":"2800:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:27","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6248,"src":"2800:13:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:27","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6455,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6432,"src":"2824:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6456,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6438,"src":"2833:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6434,"src":"2848:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6450,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6448,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"2750:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6461,"nodeType":"ExpressionStatement","src":"2750:105:27"}]},"documentation":{"id":6427,"nodeType":"StructuredDocumentation","src":"2397:180:27","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6463,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:27","nodeType":"FunctionDefinition","parameters":{"id":6435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6430,"mutability":"mutable","name":"token","nameLocation":"2620:5:27","nodeType":"VariableDeclaration","scope":6463,"src":"2613:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6429,"nodeType":"UserDefinedTypeName","pathNode":{"id":6428,"name":"IERC20","nameLocations":["2613:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"2613:6:27"},"referencedDeclaration":6261,"src":"2613:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6432,"mutability":"mutable","name":"spender","nameLocation":"2635:7:27","nodeType":"VariableDeclaration","scope":6463,"src":"2627:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6431,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6434,"mutability":"mutable","name":"value","nameLocation":"2652:5:27","nodeType":"VariableDeclaration","scope":6463,"src":"2644:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6433,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:27"},"returnParameters":{"id":6436,"nodeType":"ParameterList","parameters":[],"src":"2668:0:27"},"scope":6698,"src":"2582:280:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6507,"nodeType":"Block","src":"3139:321:27","statements":[{"id":6506,"nodeType":"UncheckedBlock","src":"3149:305:27","statements":[{"assignments":[6475],"declarations":[{"constant":false,"id":6475,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:27","nodeType":"VariableDeclaration","scope":6506,"src":"3173:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6484,"initialValue":{"arguments":[{"arguments":[{"id":6480,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6698","typeString":"library SafeERC20"}],"id":6479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6478,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:27","typeDescriptions":{}}},"id":6481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6482,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6469,"src":"3227:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6476,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"3196:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:27","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6238,"src":"3196:15:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6486,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"3257:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6471,"src":"3273:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":6485,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6491,"nodeType":"ExpressionStatement","src":"3249:75:27"},{"expression":{"arguments":[{"id":6493,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"3358:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6496,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"3388:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:27","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6248,"src":"3388:13:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:27","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6499,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6469,"src":"3412:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6500,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"3421:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6501,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6471,"src":"3436:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6492,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"3338:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6505,"nodeType":"ExpressionStatement","src":"3338:105:27"}]}]},"documentation":{"id":6464,"nodeType":"StructuredDocumentation","src":"2868:180:27","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":6508,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:27","nodeType":"FunctionDefinition","parameters":{"id":6472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6467,"mutability":"mutable","name":"token","nameLocation":"3091:5:27","nodeType":"VariableDeclaration","scope":6508,"src":"3084:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6466,"nodeType":"UserDefinedTypeName","pathNode":{"id":6465,"name":"IERC20","nameLocations":["3084:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"3084:6:27"},"referencedDeclaration":6261,"src":"3084:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6469,"mutability":"mutable","name":"spender","nameLocation":"3106:7:27","nodeType":"VariableDeclaration","scope":6508,"src":"3098:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6468,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6471,"mutability":"mutable","name":"value","nameLocation":"3123:5:27","nodeType":"VariableDeclaration","scope":6508,"src":"3115:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:27"},"returnParameters":{"id":6473,"nodeType":"ParameterList","parameters":[],"src":"3139:0:27"},"scope":6698,"src":"3053:407:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6554,"nodeType":"Block","src":"3856:333:27","statements":[{"assignments":[6520],"declarations":[{"constant":false,"id":6520,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:27","nodeType":"VariableDeclaration","scope":6554,"src":"3866:25:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6519,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6529,"initialValue":{"arguments":[{"expression":{"expression":{"id":6523,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6512,"src":"3917:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:27","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6248,"src":"3917:13:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:27","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6526,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6514,"src":"3941:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6516,"src":"3950:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6521,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:27"},{"condition":{"id":6534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:27","subExpression":{"arguments":[{"id":6531,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6512,"src":"3996:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"id":6532,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6520,"src":"4003:12:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6530,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6697,"src":"3972:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":6533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6553,"nodeType":"IfStatement","src":"3967:216:27","trueBody":{"id":6552,"nodeType":"Block","src":"4018:165:27","statements":[{"expression":{"arguments":[{"id":6536,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6512,"src":"4052:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6539,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6512,"src":"4082:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":6540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:27","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6248,"src":"4082:13:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:27","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6542,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6514,"src":"4106:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":6543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":6537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6535,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"4032:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6546,"nodeType":"ExpressionStatement","src":"4032:86:27"},{"expression":{"arguments":[{"id":6548,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6512,"src":"4152:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},{"id":6549,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6520,"src":"4159:12:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6547,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"4132:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6551,"nodeType":"ExpressionStatement","src":"4132:40:27"}]}}]},"documentation":{"id":6509,"nodeType":"StructuredDocumentation","src":"3466:308:27","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"id":6555,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:27","nodeType":"FunctionDefinition","parameters":{"id":6517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6512,"mutability":"mutable","name":"token","nameLocation":"3808:5:27","nodeType":"VariableDeclaration","scope":6555,"src":"3801:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6511,"nodeType":"UserDefinedTypeName","pathNode":{"id":6510,"name":"IERC20","nameLocations":["3801:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"3801:6:27"},"referencedDeclaration":6261,"src":"3801:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6514,"mutability":"mutable","name":"spender","nameLocation":"3823:7:27","nodeType":"VariableDeclaration","scope":6555,"src":"3815:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6513,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6516,"mutability":"mutable","name":"value","nameLocation":"3840:5:27","nodeType":"VariableDeclaration","scope":6555,"src":"3832:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6515,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:27"},"returnParameters":{"id":6518,"nodeType":"ParameterList","parameters":[],"src":"3856:0:27"},"scope":6698,"src":"3779:410:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6611,"nodeType":"Block","src":"4556:257:27","statements":[{"assignments":[6577],"declarations":[{"constant":false,"id":6577,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:27","nodeType":"VariableDeclaration","scope":6611,"src":"4566:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6576,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6582,"initialValue":{"arguments":[{"id":6580,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"4601:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6578,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"4588:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6322","typeString":"contract IERC20Permit"}},"id":6579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:27","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":6315,"src":"4588:12:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:27"},{"expression":{"arguments":[{"id":6586,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"4630:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6587,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6563,"src":"4637:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"4646:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6589,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6567,"src":"4653:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6590,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6569,"src":"4663:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6591,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6571,"src":"4666:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6592,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6573,"src":"4669:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6583,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"4617:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6322","typeString":"contract IERC20Permit"}},"id":6585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:27","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":6307,"src":"4617:12:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6594,"nodeType":"ExpressionStatement","src":"4617:54:27"},{"assignments":[6596],"declarations":[{"constant":false,"id":6596,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:27","nodeType":"VariableDeclaration","scope":6611,"src":"4681:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6595,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6601,"initialValue":{"arguments":[{"id":6599,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6561,"src":"4715:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6597,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6559,"src":"4702:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6322","typeString":"contract IERC20Permit"}},"id":6598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:27","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":6315,"src":"4702:12:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6603,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6596,"src":"4739:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6604,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6577,"src":"4753:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":6608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":6602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4731:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6610,"nodeType":"ExpressionStatement","src":"4731:75:27"}]},"documentation":{"id":6556,"nodeType":"StructuredDocumentation","src":"4195:141:27","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"id":6612,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:27","nodeType":"FunctionDefinition","parameters":{"id":6574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6559,"mutability":"mutable","name":"token","nameLocation":"4383:5:27","nodeType":"VariableDeclaration","scope":6612,"src":"4370:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6322","typeString":"contract IERC20Permit"},"typeName":{"id":6558,"nodeType":"UserDefinedTypeName","pathNode":{"id":6557,"name":"IERC20Permit","nameLocations":["4370:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":6322,"src":"4370:12:27"},"referencedDeclaration":6322,"src":"4370:12:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$6322","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":6561,"mutability":"mutable","name":"owner","nameLocation":"4406:5:27","nodeType":"VariableDeclaration","scope":6612,"src":"4398:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6560,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6563,"mutability":"mutable","name":"spender","nameLocation":"4429:7:27","nodeType":"VariableDeclaration","scope":6612,"src":"4421:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6562,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6565,"mutability":"mutable","name":"value","nameLocation":"4454:5:27","nodeType":"VariableDeclaration","scope":6612,"src":"4446:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6564,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6567,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:27","nodeType":"VariableDeclaration","scope":6612,"src":"4469:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6566,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6569,"mutability":"mutable","name":"v","nameLocation":"4501:1:27","nodeType":"VariableDeclaration","scope":6612,"src":"4495:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6568,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6571,"mutability":"mutable","name":"r","nameLocation":"4520:1:27","nodeType":"VariableDeclaration","scope":6612,"src":"4512:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6573,"mutability":"mutable","name":"s","nameLocation":"4539:1:27","nodeType":"VariableDeclaration","scope":6612,"src":"4531:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:27"},"returnParameters":{"id":6575,"nodeType":"ParameterList","parameters":[],"src":"4556:0:27"},"scope":6698,"src":"4341:472:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6648,"nodeType":"Block","src":"5266:572:27","statements":[{"assignments":[6622],"declarations":[{"constant":false,"id":6622,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:27","nodeType":"VariableDeclaration","scope":6648,"src":"5615:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6621,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6631,"initialValue":{"arguments":[{"id":6628,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6618,"src":"5669:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":6629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":6625,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6616,"src":"5649:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":6624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6623,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:27","typeDescriptions":{}}},"id":6626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:27","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":6788,"src":"5641:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6633,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"5728:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:27","memberName":"length","nodeType":"MemberAccess","src":"5728:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6639,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6622,"src":"5765:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6640,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:27","typeDescriptions":{}}}],"id":6642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":6637,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:27","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:27","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":6645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":6632,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5720:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6647,"nodeType":"ExpressionStatement","src":"5720:111:27"}]},"documentation":{"id":6613,"nodeType":"StructuredDocumentation","src":"4819:372:27","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":6649,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:27","nodeType":"FunctionDefinition","parameters":{"id":6619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6616,"mutability":"mutable","name":"token","nameLocation":"5232:5:27","nodeType":"VariableDeclaration","scope":6649,"src":"5225:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6615,"nodeType":"UserDefinedTypeName","pathNode":{"id":6614,"name":"IERC20","nameLocations":["5225:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"5225:6:27"},"referencedDeclaration":6261,"src":"5225:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6618,"mutability":"mutable","name":"data","nameLocation":"5252:4:27","nodeType":"VariableDeclaration","scope":6649,"src":"5239:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6617,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:27"},"returnParameters":{"id":6620,"nodeType":"ParameterList","parameters":[],"src":"5266:0:27"},"scope":6698,"src":"5196:642:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6696,"nodeType":"Block","src":"6428:505:27","statements":[{"assignments":[6661,6663],"declarations":[{"constant":false,"id":6661,"mutability":"mutable","name":"success","nameLocation":"6729:7:27","nodeType":"VariableDeclaration","scope":6696,"src":"6724:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6660,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6663,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:27","nodeType":"VariableDeclaration","scope":6696,"src":"6738:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6662,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6671,"initialValue":{"arguments":[{"id":6669,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"6785:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6666,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6653,"src":"6773:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":6665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6664,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:27","typeDescriptions":{}}},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:27","memberName":"call","nodeType":"MemberAccess","src":"6765:19:27","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:27"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6672,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"6819:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6673,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"6831:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:27","memberName":"length","nodeType":"MemberAccess","src":"6831:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6679,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"6868:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6680,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:27","typeDescriptions":{}}}],"id":6682,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":6677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:27","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:27","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":6691,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6653,"src":"6919:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":6690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6689,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:27","typeDescriptions":{}}},"id":6692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6687,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7028,"src":"6892:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$7028_$","typeString":"type(library Address)"}},"id":6688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:27","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":6716,"src":"6892:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6659,"id":6695,"nodeType":"Return","src":"6800:126:27"}]},"documentation":{"id":6650,"nodeType":"StructuredDocumentation","src":"5844:490:27","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"id":6697,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:27","nodeType":"FunctionDefinition","parameters":{"id":6656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6653,"mutability":"mutable","name":"token","nameLocation":"6379:5:27","nodeType":"VariableDeclaration","scope":6697,"src":"6372:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":6652,"nodeType":"UserDefinedTypeName","pathNode":{"id":6651,"name":"IERC20","nameLocations":["6372:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"6372:6:27"},"referencedDeclaration":6261,"src":"6372:6:27","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6655,"mutability":"mutable","name":"data","nameLocation":"6399:4:27","nodeType":"VariableDeclaration","scope":6697,"src":"6386:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6654,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:27"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6697,"src":"6422:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6657,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:27"},"scope":6698,"src":"6339:594:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6699,"src":"701:6234:27","usedErrors":[],"usedEvents":[]}],"src":"115:6821:27"},"id":27},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[7028]},"id":7029,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6700,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:28"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":6701,"nodeType":"StructuredDocumentation","src":"126:67:28","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":7028,"linearizedBaseContracts":[7028],"name":"Address","nameLocation":"202:7:28","nodeType":"ContractDefinition","nodes":[{"body":{"id":6715,"nodeType":"Block","src":"1478:254:28","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":6709,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6704,"src":"1702:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:4:28","memberName":"code","nodeType":"MemberAccess","src":"1702:12:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1715:6:28","memberName":"length","nodeType":"MemberAccess","src":"1702:19:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1702:23:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6708,"id":6714,"nodeType":"Return","src":"1695:30:28"}]},"documentation":{"id":6702,"nodeType":"StructuredDocumentation","src":"216:1191:28","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":6716,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1421:10:28","nodeType":"FunctionDefinition","parameters":{"id":6705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6704,"mutability":"mutable","name":"account","nameLocation":"1440:7:28","nodeType":"VariableDeclaration","scope":6716,"src":"1432:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6703,"name":"address","nodeType":"ElementaryTypeName","src":"1432:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1431:17:28"},"returnParameters":{"id":6708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6716,"src":"1472:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6706,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:6:28"},"scope":7028,"src":"1412:320:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6749,"nodeType":"Block","src":"2718:241:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6727,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2744:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7028","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7028","typeString":"library Address"}],"id":6726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2736:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6725,"name":"address","nodeType":"ElementaryTypeName","src":"2736:7:28","typeDescriptions":{}}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2750:7:28","memberName":"balance","nodeType":"MemberAccess","src":"2736:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6730,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"2761:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:31:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2769:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":6724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2728:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6734,"nodeType":"ExpressionStatement","src":"2728:73:28"},{"assignments":[6736,null],"declarations":[{"constant":false,"id":6736,"mutability":"mutable","name":"success","nameLocation":"2818:7:28","nodeType":"VariableDeclaration","scope":6749,"src":"2813:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6735,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6743,"initialValue":{"arguments":[{"hexValue":"","id":6741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:2:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":6737,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6719,"src":"2831:9:28","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:4:28","memberName":"call","nodeType":"MemberAccess","src":"2831:14:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6739,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"2853:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2831:29:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2812:52:28"},{"expression":{"arguments":[{"id":6745,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6736,"src":"2882:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":6746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2891:60:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":6744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2874:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6748,"nodeType":"ExpressionStatement","src":"2874:78:28"}]},"documentation":{"id":6717,"nodeType":"StructuredDocumentation","src":"1738:904:28","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":6750,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2656:9:28","nodeType":"FunctionDefinition","parameters":{"id":6722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6719,"mutability":"mutable","name":"recipient","nameLocation":"2682:9:28","nodeType":"VariableDeclaration","scope":6750,"src":"2666:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6718,"name":"address","nodeType":"ElementaryTypeName","src":"2666:15:28","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":6721,"mutability":"mutable","name":"amount","nameLocation":"2701:6:28","nodeType":"VariableDeclaration","scope":6750,"src":"2693:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:43:28"},"returnParameters":{"id":6723,"nodeType":"ParameterList","parameters":[],"src":"2718:0:28"},"scope":7028,"src":"2647:312:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6767,"nodeType":"Block","src":"3790:96:28","statements":[{"expression":{"arguments":[{"id":6761,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"3829:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6762,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6755,"src":"3837:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":6764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3846:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":6760,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6808,6852],"referencedDeclaration":6852,"src":"3807:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6759,"id":6766,"nodeType":"Return","src":"3800:79:28"}]},"documentation":{"id":6751,"nodeType":"StructuredDocumentation","src":"2965:731:28","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":6768,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3710:12:28","nodeType":"FunctionDefinition","parameters":{"id":6756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6753,"mutability":"mutable","name":"target","nameLocation":"3731:6:28","nodeType":"VariableDeclaration","scope":6768,"src":"3723:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6752,"name":"address","nodeType":"ElementaryTypeName","src":"3723:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6755,"mutability":"mutable","name":"data","nameLocation":"3752:4:28","nodeType":"VariableDeclaration","scope":6768,"src":"3739:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6754,"name":"bytes","nodeType":"ElementaryTypeName","src":"3739:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3722:35:28"},"returnParameters":{"id":6759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6768,"src":"3776:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6757,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:14:28"},"scope":7028,"src":"3701:185:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6787,"nodeType":"Block","src":"4255:76:28","statements":[{"expression":{"arguments":[{"id":6781,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6771,"src":"4294:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6782,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6773,"src":"4302:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6784,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"4311:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6780,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6808,6852],"referencedDeclaration":6852,"src":"4272:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6779,"id":6786,"nodeType":"Return","src":"4265:59:28"}]},"documentation":{"id":6769,"nodeType":"StructuredDocumentation","src":"3892:211:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6788,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4117:12:28","nodeType":"FunctionDefinition","parameters":{"id":6776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6771,"mutability":"mutable","name":"target","nameLocation":"4147:6:28","nodeType":"VariableDeclaration","scope":6788,"src":"4139:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6770,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6773,"mutability":"mutable","name":"data","nameLocation":"4176:4:28","nodeType":"VariableDeclaration","scope":6788,"src":"4163:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6772,"name":"bytes","nodeType":"ElementaryTypeName","src":"4163:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6775,"mutability":"mutable","name":"errorMessage","nameLocation":"4204:12:28","nodeType":"VariableDeclaration","scope":6788,"src":"4190:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6774,"name":"string","nodeType":"ElementaryTypeName","src":"4190:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4129:93:28"},"returnParameters":{"id":6779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6788,"src":"4241:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6777,"name":"bytes","nodeType":"ElementaryTypeName","src":"4241:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4240:14:28"},"scope":7028,"src":"4108:223:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6807,"nodeType":"Block","src":"4806:111:28","statements":[{"expression":{"arguments":[{"id":6801,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"4845:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6802,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6793,"src":"4853:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6803,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6795,"src":"4859:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":6804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4866:43:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":6800,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[6808,6852],"referencedDeclaration":6852,"src":"4823:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":6805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6799,"id":6806,"nodeType":"Return","src":"4816:94:28"}]},"documentation":{"id":6789,"nodeType":"StructuredDocumentation","src":"4337:351:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":6808,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4702:21:28","nodeType":"FunctionDefinition","parameters":{"id":6796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6791,"mutability":"mutable","name":"target","nameLocation":"4732:6:28","nodeType":"VariableDeclaration","scope":6808,"src":"4724:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6790,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6793,"mutability":"mutable","name":"data","nameLocation":"4753:4:28","nodeType":"VariableDeclaration","scope":6808,"src":"4740:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6792,"name":"bytes","nodeType":"ElementaryTypeName","src":"4740:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6795,"mutability":"mutable","name":"value","nameLocation":"4767:5:28","nodeType":"VariableDeclaration","scope":6808,"src":"4759:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6794,"name":"uint256","nodeType":"ElementaryTypeName","src":"4759:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4723:50:28"},"returnParameters":{"id":6799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6808,"src":"4792:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6797,"name":"bytes","nodeType":"ElementaryTypeName","src":"4792:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4791:14:28"},"scope":7028,"src":"4693:224:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6851,"nodeType":"Block","src":"5344:267:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6825,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5370:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$7028","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$7028","typeString":"library Address"}],"id":6824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6823,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:28","typeDescriptions":{}}},"id":6826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5376:7:28","memberName":"balance","nodeType":"MemberAccess","src":"5362:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"5387:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5362:30:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":6830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:40:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":6822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5354:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5354:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6832,"nodeType":"ExpressionStatement","src":"5354:81:28"},{"assignments":[6834,6836],"declarations":[{"constant":false,"id":6834,"mutability":"mutable","name":"success","nameLocation":"5451:7:28","nodeType":"VariableDeclaration","scope":6851,"src":"5446:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6833,"name":"bool","nodeType":"ElementaryTypeName","src":"5446:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6836,"mutability":"mutable","name":"returndata","nameLocation":"5473:10:28","nodeType":"VariableDeclaration","scope":6851,"src":"5460:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6835,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6843,"initialValue":{"arguments":[{"id":6841,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6813,"src":"5513:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6837,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6811,"src":"5487:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5494:4:28","memberName":"call","nodeType":"MemberAccess","src":"5487:11:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"5506:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5487:25:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5445:73:28"},{"expression":{"arguments":[{"id":6845,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6811,"src":"5562:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6846,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6834,"src":"5570:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6847,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6836,"src":"5579:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6848,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"5591:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6844,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"5535:26:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6821,"id":6850,"nodeType":"Return","src":"5528:76:28"}]},"documentation":{"id":6809,"nodeType":"StructuredDocumentation","src":"4923:237:28","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":6852,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5174:21:28","nodeType":"FunctionDefinition","parameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6811,"mutability":"mutable","name":"target","nameLocation":"5213:6:28","nodeType":"VariableDeclaration","scope":6852,"src":"5205:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6810,"name":"address","nodeType":"ElementaryTypeName","src":"5205:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6813,"mutability":"mutable","name":"data","nameLocation":"5242:4:28","nodeType":"VariableDeclaration","scope":6852,"src":"5229:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6812,"name":"bytes","nodeType":"ElementaryTypeName","src":"5229:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6815,"mutability":"mutable","name":"value","nameLocation":"5264:5:28","nodeType":"VariableDeclaration","scope":6852,"src":"5256:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6814,"name":"uint256","nodeType":"ElementaryTypeName","src":"5256:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6817,"mutability":"mutable","name":"errorMessage","nameLocation":"5293:12:28","nodeType":"VariableDeclaration","scope":6852,"src":"5279:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6816,"name":"string","nodeType":"ElementaryTypeName","src":"5279:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5195:116:28"},"returnParameters":{"id":6821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6852,"src":"5330:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6819,"name":"bytes","nodeType":"ElementaryTypeName","src":"5330:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5329:14:28"},"scope":7028,"src":"5165:446:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6868,"nodeType":"Block","src":"5888:97:28","statements":[{"expression":{"arguments":[{"id":6863,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6855,"src":"5924:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6864,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6857,"src":"5932:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":6865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5938:39:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":6862,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[6869,6898],"referencedDeclaration":6898,"src":"5905:18:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":6866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6861,"id":6867,"nodeType":"Return","src":"5898:80:28"}]},"documentation":{"id":6853,"nodeType":"StructuredDocumentation","src":"5617:166:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6869,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5797:18:28","nodeType":"FunctionDefinition","parameters":{"id":6858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6855,"mutability":"mutable","name":"target","nameLocation":"5824:6:28","nodeType":"VariableDeclaration","scope":6869,"src":"5816:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6854,"name":"address","nodeType":"ElementaryTypeName","src":"5816:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6857,"mutability":"mutable","name":"data","nameLocation":"5845:4:28","nodeType":"VariableDeclaration","scope":6869,"src":"5832:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6856,"name":"bytes","nodeType":"ElementaryTypeName","src":"5832:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5815:35:28"},"returnParameters":{"id":6861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6869,"src":"5874:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6859,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5873:14:28"},"scope":7028,"src":"5788:197:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6897,"nodeType":"Block","src":"6327:168:28","statements":[{"assignments":[6882,6884],"declarations":[{"constant":false,"id":6882,"mutability":"mutable","name":"success","nameLocation":"6343:7:28","nodeType":"VariableDeclaration","scope":6897,"src":"6338:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6881,"name":"bool","nodeType":"ElementaryTypeName","src":"6338:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6884,"mutability":"mutable","name":"returndata","nameLocation":"6365:10:28","nodeType":"VariableDeclaration","scope":6897,"src":"6352:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6883,"name":"bytes","nodeType":"ElementaryTypeName","src":"6352:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6889,"initialValue":{"arguments":[{"id":6887,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6874,"src":"6397:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6885,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6872,"src":"6379:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6386:10:28","memberName":"staticcall","nodeType":"MemberAccess","src":"6379:17:28","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6379:23:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6337:65:28"},{"expression":{"arguments":[{"id":6891,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6872,"src":"6446:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6892,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6882,"src":"6454:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6893,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6884,"src":"6463:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6894,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6876,"src":"6475:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6890,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"6419:26:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6880,"id":6896,"nodeType":"Return","src":"6412:76:28"}]},"documentation":{"id":6870,"nodeType":"StructuredDocumentation","src":"5991:173:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":6898,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6178:18:28","nodeType":"FunctionDefinition","parameters":{"id":6877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6872,"mutability":"mutable","name":"target","nameLocation":"6214:6:28","nodeType":"VariableDeclaration","scope":6898,"src":"6206:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6871,"name":"address","nodeType":"ElementaryTypeName","src":"6206:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6874,"mutability":"mutable","name":"data","nameLocation":"6243:4:28","nodeType":"VariableDeclaration","scope":6898,"src":"6230:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6873,"name":"bytes","nodeType":"ElementaryTypeName","src":"6230:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6876,"mutability":"mutable","name":"errorMessage","nameLocation":"6271:12:28","nodeType":"VariableDeclaration","scope":6898,"src":"6257:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6875,"name":"string","nodeType":"ElementaryTypeName","src":"6257:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6196:93:28"},"returnParameters":{"id":6880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6898,"src":"6313:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6878,"name":"bytes","nodeType":"ElementaryTypeName","src":"6313:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6312:14:28"},"scope":7028,"src":"6169:326:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":6914,"nodeType":"Block","src":"6771:101:28","statements":[{"expression":{"arguments":[{"id":6909,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6901,"src":"6809:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6903,"src":"6817:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":6911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6823:41:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":6908,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[6915,6944],"referencedDeclaration":6944,"src":"6788:20:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6788:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6907,"id":6913,"nodeType":"Return","src":"6781:84:28"}]},"documentation":{"id":6899,"nodeType":"StructuredDocumentation","src":"6501:168:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":6915,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6683:20:28","nodeType":"FunctionDefinition","parameters":{"id":6904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6901,"mutability":"mutable","name":"target","nameLocation":"6712:6:28","nodeType":"VariableDeclaration","scope":6915,"src":"6704:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6900,"name":"address","nodeType":"ElementaryTypeName","src":"6704:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6903,"mutability":"mutable","name":"data","nameLocation":"6733:4:28","nodeType":"VariableDeclaration","scope":6915,"src":"6720:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6902,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6703:35:28"},"returnParameters":{"id":6907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6915,"src":"6757:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6905,"name":"bytes","nodeType":"ElementaryTypeName","src":"6757:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6756:14:28"},"scope":7028,"src":"6674:198:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6943,"nodeType":"Block","src":"7213:170:28","statements":[{"assignments":[6928,6930],"declarations":[{"constant":false,"id":6928,"mutability":"mutable","name":"success","nameLocation":"7229:7:28","nodeType":"VariableDeclaration","scope":6943,"src":"7224:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6927,"name":"bool","nodeType":"ElementaryTypeName","src":"7224:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6930,"mutability":"mutable","name":"returndata","nameLocation":"7251:10:28","nodeType":"VariableDeclaration","scope":6943,"src":"7238:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6929,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6935,"initialValue":{"arguments":[{"id":6933,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6920,"src":"7285:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6931,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6918,"src":"7265:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7272:12:28","memberName":"delegatecall","nodeType":"MemberAccess","src":"7265:19:28","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7265:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7223:67:28"},{"expression":{"arguments":[{"id":6937,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6918,"src":"7334:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6938,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6928,"src":"7342:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6939,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6930,"src":"7351:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6940,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6922,"src":"7363:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6936,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"7307:26:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":6941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7307:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6926,"id":6942,"nodeType":"Return","src":"7300:76:28"}]},"documentation":{"id":6916,"nodeType":"StructuredDocumentation","src":"6878:175:28","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":6944,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7067:20:28","nodeType":"FunctionDefinition","parameters":{"id":6923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6918,"mutability":"mutable","name":"target","nameLocation":"7105:6:28","nodeType":"VariableDeclaration","scope":6944,"src":"7097:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6917,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6920,"mutability":"mutable","name":"data","nameLocation":"7134:4:28","nodeType":"VariableDeclaration","scope":6944,"src":"7121:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6919,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6922,"mutability":"mutable","name":"errorMessage","nameLocation":"7162:12:28","nodeType":"VariableDeclaration","scope":6944,"src":"7148:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6921,"name":"string","nodeType":"ElementaryTypeName","src":"7148:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7087:93:28"},"returnParameters":{"id":6926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6944,"src":"7199:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6924,"name":"bytes","nodeType":"ElementaryTypeName","src":"7199:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7198:14:28"},"scope":7028,"src":"7058:325:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6982,"nodeType":"Block","src":"7865:434:28","statements":[{"condition":{"id":6958,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6949,"src":"7879:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6980,"nodeType":"Block","src":"8235:58:28","statements":[{"expression":{"arguments":[{"id":6976,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6951,"src":"8257:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6977,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6953,"src":"8269:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6975,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"8249:7:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":6978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8249:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6979,"nodeType":"ExpressionStatement","src":"8249:33:28"}]},"id":6981,"nodeType":"IfStatement","src":"7875:418:28","trueBody":{"id":6974,"nodeType":"Block","src":"7888:341:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6959,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6951,"src":"7906:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:6:28","memberName":"length","nodeType":"MemberAccess","src":"7906:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7906:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6971,"nodeType":"IfStatement","src":"7902:286:28","trueBody":{"id":6970,"nodeType":"Block","src":"7930:258:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":6965,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"8132:6:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6964,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6716,"src":"8121:10:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":6967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8141:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":6963,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8113:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6969,"nodeType":"ExpressionStatement","src":"8113:60:28"}]}},{"expression":{"id":6972,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6951,"src":"8208:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6957,"id":6973,"nodeType":"Return","src":"8201:17:28"}]}}]},"documentation":{"id":6945,"nodeType":"StructuredDocumentation","src":"7389:277:28","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":6983,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7680:26:28","nodeType":"FunctionDefinition","parameters":{"id":6954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6947,"mutability":"mutable","name":"target","nameLocation":"7724:6:28","nodeType":"VariableDeclaration","scope":6983,"src":"7716:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6946,"name":"address","nodeType":"ElementaryTypeName","src":"7716:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6949,"mutability":"mutable","name":"success","nameLocation":"7745:7:28","nodeType":"VariableDeclaration","scope":6983,"src":"7740:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6948,"name":"bool","nodeType":"ElementaryTypeName","src":"7740:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6951,"mutability":"mutable","name":"returndata","nameLocation":"7775:10:28","nodeType":"VariableDeclaration","scope":6983,"src":"7762:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6950,"name":"bytes","nodeType":"ElementaryTypeName","src":"7762:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6953,"mutability":"mutable","name":"errorMessage","nameLocation":"7809:12:28","nodeType":"VariableDeclaration","scope":6983,"src":"7795:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6952,"name":"string","nodeType":"ElementaryTypeName","src":"7795:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7706:121:28"},"returnParameters":{"id":6957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6983,"src":"7851:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6955,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7850:14:28"},"scope":7028,"src":"7671:628:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7006,"nodeType":"Block","src":"8680:135:28","statements":[{"condition":{"id":6995,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6986,"src":"8694:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7004,"nodeType":"Block","src":"8751:58:28","statements":[{"expression":{"arguments":[{"id":7000,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6988,"src":"8773:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7001,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"8785:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6999,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"8765:7:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":7002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7003,"nodeType":"ExpressionStatement","src":"8765:33:28"}]},"id":7005,"nodeType":"IfStatement","src":"8690:119:28","trueBody":{"id":6998,"nodeType":"Block","src":"8703:42:28","statements":[{"expression":{"id":6996,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6988,"src":"8724:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6994,"id":6997,"nodeType":"Return","src":"8717:17:28"}]}}]},"documentation":{"id":6984,"nodeType":"StructuredDocumentation","src":"8305:210:28","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":7007,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8529:16:28","nodeType":"FunctionDefinition","parameters":{"id":6991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6986,"mutability":"mutable","name":"success","nameLocation":"8560:7:28","nodeType":"VariableDeclaration","scope":7007,"src":"8555:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6985,"name":"bool","nodeType":"ElementaryTypeName","src":"8555:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6988,"mutability":"mutable","name":"returndata","nameLocation":"8590:10:28","nodeType":"VariableDeclaration","scope":7007,"src":"8577:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6987,"name":"bytes","nodeType":"ElementaryTypeName","src":"8577:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6990,"mutability":"mutable","name":"errorMessage","nameLocation":"8624:12:28","nodeType":"VariableDeclaration","scope":7007,"src":"8610:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6989,"name":"string","nodeType":"ElementaryTypeName","src":"8610:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8545:97:28"},"returnParameters":{"id":6994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7007,"src":"8666:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6992,"name":"bytes","nodeType":"ElementaryTypeName","src":"8666:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8665:14:28"},"scope":7028,"src":"8520:295:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7026,"nodeType":"Block","src":"8904:457:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7014,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"8980:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:6:28","memberName":"length","nodeType":"MemberAccess","src":"8980:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9000:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8980:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7024,"nodeType":"Block","src":"9310:45:28","statements":[{"expression":{"arguments":[{"id":7021,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7011,"src":"9331:12:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7020,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9324:6:28","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:20:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7023,"nodeType":"ExpressionStatement","src":"9324:20:28"}]},"id":7025,"nodeType":"IfStatement","src":"8976:379:28","trueBody":{"id":7019,"nodeType":"Block","src":"9003:301:28","statements":[{"AST":{"nativeSrc":"9161:133:28","nodeType":"YulBlock","src":"9161:133:28","statements":[{"nativeSrc":"9179:40:28","nodeType":"YulVariableDeclaration","src":"9179:40:28","value":{"arguments":[{"name":"returndata","nativeSrc":"9208:10:28","nodeType":"YulIdentifier","src":"9208:10:28"}],"functionName":{"name":"mload","nativeSrc":"9202:5:28","nodeType":"YulIdentifier","src":"9202:5:28"},"nativeSrc":"9202:17:28","nodeType":"YulFunctionCall","src":"9202:17:28"},"variables":[{"name":"returndata_size","nativeSrc":"9183:15:28","nodeType":"YulTypedName","src":"9183:15:28","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9247:2:28","nodeType":"YulLiteral","src":"9247:2:28","type":"","value":"32"},{"name":"returndata","nativeSrc":"9251:10:28","nodeType":"YulIdentifier","src":"9251:10:28"}],"functionName":{"name":"add","nativeSrc":"9243:3:28","nodeType":"YulIdentifier","src":"9243:3:28"},"nativeSrc":"9243:19:28","nodeType":"YulFunctionCall","src":"9243:19:28"},{"name":"returndata_size","nativeSrc":"9264:15:28","nodeType":"YulIdentifier","src":"9264:15:28"}],"functionName":{"name":"revert","nativeSrc":"9236:6:28","nodeType":"YulIdentifier","src":"9236:6:28"},"nativeSrc":"9236:44:28","nodeType":"YulFunctionCall","src":"9236:44:28"},"nativeSrc":"9236:44:28","nodeType":"YulExpressionStatement","src":"9236:44:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7009,"isOffset":false,"isSlot":false,"src":"9208:10:28","valueSize":1},{"declaration":7009,"isOffset":false,"isSlot":false,"src":"9251:10:28","valueSize":1}],"id":7018,"nodeType":"InlineAssembly","src":"9152:142:28"}]}}]},"id":7027,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8830:7:28","nodeType":"FunctionDefinition","parameters":{"id":7012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7009,"mutability":"mutable","name":"returndata","nameLocation":"8851:10:28","nodeType":"VariableDeclaration","scope":7027,"src":"8838:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7008,"name":"bytes","nodeType":"ElementaryTypeName","src":"8838:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7011,"mutability":"mutable","name":"errorMessage","nameLocation":"8877:12:28","nodeType":"VariableDeclaration","scope":7027,"src":"8863:26:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7010,"name":"string","nodeType":"ElementaryTypeName","src":"8863:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8837:53:28"},"returnParameters":{"id":7013,"nodeType":"ParameterList","parameters":[],"src":"8904:0:28"},"scope":7028,"src":"8821:540:28","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":7029,"src":"194:9169:28","usedErrors":[],"usedEvents":[]}],"src":"101:9263:28"},"id":28},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[7050]},"id":7051,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7030,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:29"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":7031,"nodeType":"StructuredDocumentation","src":"111:496:29","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":7050,"linearizedBaseContracts":[7050],"name":"Context","nameLocation":"626:7:29","nodeType":"ContractDefinition","nodes":[{"body":{"id":7039,"nodeType":"Block","src":"702:34:29","statements":[{"expression":{"expression":{"id":7036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:29","memberName":"sender","nodeType":"MemberAccess","src":"719:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7035,"id":7038,"nodeType":"Return","src":"712:17:29"}]},"id":7040,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:29","nodeType":"FunctionDefinition","parameters":{"id":7032,"nodeType":"ParameterList","parameters":[],"src":"659:2:29"},"returnParameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7040,"src":"693:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7033,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:29"},"scope":7050,"src":"640:96:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7048,"nodeType":"Block","src":"809:32:29","statements":[{"expression":{"expression":{"id":7045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:29","memberName":"data","nodeType":"MemberAccess","src":"826:8:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":7044,"id":7047,"nodeType":"Return","src":"819:15:29"}]},"id":7049,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:29","nodeType":"FunctionDefinition","parameters":{"id":7041,"nodeType":"ParameterList","parameters":[],"src":"759:2:29"},"returnParameters":{"id":7044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7049,"src":"793:14:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7042,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:29"},"scope":7050,"src":"742:99:29","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":7051,"src":"608:235:29","usedErrors":[],"usedEvents":[]}],"src":"86:758:29"},"id":29},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[8181],"SignedMath":[8286],"Strings":[7279]},"id":7280,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7052,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":7053,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7280,"sourceUnit":8182,"src":"126:25:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":7054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7280,"sourceUnit":8287,"src":"152:31:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":7055,"nodeType":"StructuredDocumentation","src":"185:34:30","text":" @dev String operations."},"fullyImplemented":true,"id":7279,"linearizedBaseContracts":[7279],"name":"Strings","nameLocation":"228:7:30","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7058,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:30","nodeType":"VariableDeclaration","scope":7279,"src":"242:54:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":7056,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:30","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":7057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":7061,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:30","nodeType":"VariableDeclaration","scope":7279,"src":"302:43:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7059,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":7060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:30","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":7108,"nodeType":"Block","src":"518:625:30","statements":[{"id":7107,"nodeType":"UncheckedBlock","src":"528:609:30","statements":[{"assignments":[7070],"declarations":[{"constant":false,"id":7070,"mutability":"mutable","name":"length","nameLocation":"560:6:30","nodeType":"VariableDeclaration","scope":7107,"src":"552:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7069,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7077,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"580:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7071,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"569:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8181_$","typeString":"type(library Math)"}},"id":7072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:30","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":8018,"src":"569:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:30"},{"assignments":[7079],"declarations":[{"constant":false,"id":7079,"mutability":"mutable","name":"buffer","nameLocation":"618:6:30","nodeType":"VariableDeclaration","scope":7107,"src":"604:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7078,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7084,"initialValue":{"arguments":[{"id":7082,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7070,"src":"638:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:30","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":7080,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:30"},{"assignments":[7086],"declarations":[{"constant":false,"id":7086,"mutability":"mutable","name":"ptr","nameLocation":"667:3:30","nodeType":"VariableDeclaration","scope":7107,"src":"659:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7085,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7087,"nodeType":"VariableDeclarationStatement","src":"659:11:30"},{"AST":{"nativeSrc":"740:67:30","nodeType":"YulBlock","src":"740:67:30","statements":[{"nativeSrc":"758:35:30","nodeType":"YulAssignment","src":"758:35:30","value":{"arguments":[{"name":"buffer","nativeSrc":"769:6:30","nodeType":"YulIdentifier","src":"769:6:30"},{"arguments":[{"kind":"number","nativeSrc":"781:2:30","nodeType":"YulLiteral","src":"781:2:30","type":"","value":"32"},{"name":"length","nativeSrc":"785:6:30","nodeType":"YulIdentifier","src":"785:6:30"}],"functionName":{"name":"add","nativeSrc":"777:3:30","nodeType":"YulIdentifier","src":"777:3:30"},"nativeSrc":"777:15:30","nodeType":"YulFunctionCall","src":"777:15:30"}],"functionName":{"name":"add","nativeSrc":"765:3:30","nodeType":"YulIdentifier","src":"765:3:30"},"nativeSrc":"765:28:30","nodeType":"YulFunctionCall","src":"765:28:30"},"variableNames":[{"name":"ptr","nativeSrc":"758:3:30","nodeType":"YulIdentifier","src":"758:3:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7079,"isOffset":false,"isSlot":false,"src":"769:6:30","valueSize":1},{"declaration":7070,"isOffset":false,"isSlot":false,"src":"785:6:30","valueSize":1},{"declaration":7086,"isOffset":false,"isSlot":false,"src":"758:3:30","valueSize":1}],"id":7088,"nodeType":"InlineAssembly","src":"731:76:30"},{"body":{"id":7103,"nodeType":"Block","src":"833:267:30","statements":[{"expression":{"id":7091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:30","subExpression":{"id":7090,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"851:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7092,"nodeType":"ExpressionStatement","src":"851:5:30"},{"AST":{"nativeSrc":"934:84:30","nodeType":"YulBlock","src":"934:84:30","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"964:3:30","nodeType":"YulIdentifier","src":"964:3:30"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"978:5:30","nodeType":"YulIdentifier","src":"978:5:30"},{"kind":"number","nativeSrc":"985:2:30","nodeType":"YulLiteral","src":"985:2:30","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"974:3:30","nodeType":"YulIdentifier","src":"974:3:30"},"nativeSrc":"974:14:30","nodeType":"YulFunctionCall","src":"974:14:30"},{"name":"_SYMBOLS","nativeSrc":"990:8:30","nodeType":"YulIdentifier","src":"990:8:30"}],"functionName":{"name":"byte","nativeSrc":"969:4:30","nodeType":"YulIdentifier","src":"969:4:30"},"nativeSrc":"969:30:30","nodeType":"YulFunctionCall","src":"969:30:30"}],"functionName":{"name":"mstore8","nativeSrc":"956:7:30","nodeType":"YulIdentifier","src":"956:7:30"},"nativeSrc":"956:44:30","nodeType":"YulFunctionCall","src":"956:44:30"},"nativeSrc":"956:44:30","nodeType":"YulExpressionStatement","src":"956:44:30"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7058,"isOffset":false,"isSlot":false,"src":"990:8:30","valueSize":1},{"declaration":7086,"isOffset":false,"isSlot":false,"src":"964:3:30","valueSize":1},{"declaration":7064,"isOffset":false,"isSlot":false,"src":"978:5:30","valueSize":1}],"id":7093,"nodeType":"InlineAssembly","src":"925:93:30"},{"expression":{"id":7096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7094,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"1035:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":7095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:30","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7097,"nodeType":"ExpressionStatement","src":"1035:11:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7098,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"1068:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7102,"nodeType":"IfStatement","src":"1064:21:30","trueBody":{"id":7101,"nodeType":"Break","src":"1080:5:30"}}]},"condition":{"hexValue":"74727565","id":7089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":7104,"nodeType":"WhileStatement","src":"820:280:30"},{"expression":{"id":7105,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7079,"src":"1120:6:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7068,"id":7106,"nodeType":"Return","src":"1113:13:30"}]}]},"documentation":{"id":7062,"nodeType":"StructuredDocumentation","src":"352:90:30","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":7109,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:30","nodeType":"FunctionDefinition","parameters":{"id":7065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7064,"mutability":"mutable","name":"value","nameLocation":"473:5:30","nodeType":"VariableDeclaration","scope":7109,"src":"465:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7063,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:30"},"returnParameters":{"id":7068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7109,"src":"503:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7066,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:30"},"scope":7279,"src":"447:696:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7136,"nodeType":"Block","src":"1313:103:30","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7112,"src":"1354:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":7125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":7126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:30","trueExpression":{"hexValue":"2d","id":7124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":7130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7112,"src":"1400:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7128,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8286,"src":"1385:10:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$8286_$","typeString":"type(library SignedMath)"}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:30","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":8285,"src":"1385:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7127,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[7109,7137],"referencedDeclaration":7109,"src":"1376:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7119,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:30","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7117,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:30","typeDescriptions":{}}},"id":7134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7116,"id":7135,"nodeType":"Return","src":"1323:86:30"}]},"documentation":{"id":7110,"nodeType":"StructuredDocumentation","src":"1149:89:30","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":7137,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:30","nodeType":"FunctionDefinition","parameters":{"id":7113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7112,"mutability":"mutable","name":"value","nameLocation":"1268:5:30","nodeType":"VariableDeclaration","scope":7137,"src":"1261:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7111,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:30"},"returnParameters":{"id":7116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7137,"src":"1298:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7114,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:30"},"scope":7279,"src":"1243:173:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7156,"nodeType":"Block","src":"1595:100:30","statements":[{"id":7155,"nodeType":"UncheckedBlock","src":"1605:84:30","statements":[{"expression":{"arguments":[{"id":7146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7140,"src":"1648:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7140,"src":"1667:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7147,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"1655:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$8181_$","typeString":"type(library Math)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:30","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":8141,"src":"1655:11:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7145,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7157,7233,7253],"referencedDeclaration":7233,"src":"1636:11:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7144,"id":7154,"nodeType":"Return","src":"1629:49:30"}]}]},"documentation":{"id":7138,"nodeType":"StructuredDocumentation","src":"1422:94:30","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":7157,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:30","nodeType":"FunctionDefinition","parameters":{"id":7141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7140,"mutability":"mutable","name":"value","nameLocation":"1550:5:30","nodeType":"VariableDeclaration","scope":7157,"src":"1542:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7139,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:30"},"returnParameters":{"id":7144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7157,"src":"1580:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7142,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:30"},"scope":7279,"src":"1521:174:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7232,"nodeType":"Block","src":"1908:347:30","statements":[{"assignments":[7168],"declarations":[{"constant":false,"id":7168,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:30","nodeType":"VariableDeclaration","scope":7232,"src":"1918:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7167,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7177,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:30","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7172,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7162,"src":"1954:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":7174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:30","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:30","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7169,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:30"},{"expression":{"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7178,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"1975:6:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7180,"indexExpression":{"hexValue":"30","id":7179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7183,"nodeType":"ExpressionStatement","src":"1975:15:30"},{"expression":{"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7184,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2000:6:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7186,"indexExpression":{"hexValue":"31","id":7185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":7187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7189,"nodeType":"ExpressionStatement","src":"2000:15:30"},{"body":{"id":7218,"nodeType":"Block","src":"2070:83:30","statements":[{"expression":{"id":7212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7204,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2084:6:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7206,"indexExpression":{"id":7205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"2091:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7207,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"2096:8:30","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":7211,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7160,"src":"2105:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":7209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:30","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:30","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":7213,"nodeType":"ExpressionStatement","src":"2084:33:30"},{"expression":{"id":7216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7160,"src":"2131:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:30","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7217,"nodeType":"ExpressionStatement","src":"2131:11:30"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"2058:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":7199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7219,"initializationExpression":{"assignments":[7191],"declarations":[{"constant":false,"id":7191,"mutability":"mutable","name":"i","nameLocation":"2038:1:30","nodeType":"VariableDeclaration","scope":7219,"src":"2030:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7190,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7197,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:30","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7193,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7162,"src":"2046:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:30"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":7202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:30","subExpression":{"id":7201,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"2067:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7203,"nodeType":"ExpressionStatement","src":"2065:3:30"},"nodeType":"ForStatement","src":"2025:128:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7160,"src":"2170:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":7224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":7220,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7226,"nodeType":"ExpressionStatement","src":"2162:55:30"},{"expression":{"arguments":[{"id":7229,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2241:6:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7227,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:30","typeDescriptions":{}}},"id":7230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7166,"id":7231,"nodeType":"Return","src":"2227:21:30"}]},"documentation":{"id":7158,"nodeType":"StructuredDocumentation","src":"1701:112:30","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":7233,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:30","nodeType":"FunctionDefinition","parameters":{"id":7163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7160,"mutability":"mutable","name":"value","nameLocation":"1847:5:30","nodeType":"VariableDeclaration","scope":7233,"src":"1839:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7162,"mutability":"mutable","name":"length","nameLocation":"1862:6:30","nodeType":"VariableDeclaration","scope":7233,"src":"1854:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:30"},"returnParameters":{"id":7166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7233,"src":"1893:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7164,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:30"},"scope":7279,"src":"1818:437:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7252,"nodeType":"Block","src":"2480:76:30","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7246,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"2525:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7244,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:30","typeDescriptions":{}}},"id":7247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:30","typeDescriptions":{}}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7249,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7061,"src":"2533:15:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7241,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[7157,7233,7253],"referencedDeclaration":7233,"src":"2497:11:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7240,"id":7251,"nodeType":"Return","src":"2490:59:30"}]},"documentation":{"id":7234,"nodeType":"StructuredDocumentation","src":"2261:141:30","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":7253,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:30","nodeType":"FunctionDefinition","parameters":{"id":7237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7236,"mutability":"mutable","name":"addr","nameLocation":"2436:4:30","nodeType":"VariableDeclaration","scope":7253,"src":"2428:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7235,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:30"},"returnParameters":{"id":7240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7253,"src":"2465:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7238,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:30"},"scope":7279,"src":"2407:149:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7277,"nodeType":"Block","src":"2711:66:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7266,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"2744:1:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7264,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:30","typeDescriptions":{}}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7263,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7272,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7258,"src":"2767:1:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7270,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:30","typeDescriptions":{}}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:30","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7262,"id":7276,"nodeType":"Return","src":"2721:49:30"}]},"documentation":{"id":7254,"nodeType":"StructuredDocumentation","src":"2562:66:30","text":" @dev Returns true if the two strings are equal."},"id":7278,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:30","nodeType":"FunctionDefinition","parameters":{"id":7259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7256,"mutability":"mutable","name":"a","nameLocation":"2662:1:30","nodeType":"VariableDeclaration","scope":7278,"src":"2648:15:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7255,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7258,"mutability":"mutable","name":"b","nameLocation":"2679:1:30","nodeType":"VariableDeclaration","scope":7278,"src":"2665:15:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7257,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:30"},"returnParameters":{"id":7262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7278,"src":"2705:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7260,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:30"},"scope":7279,"src":"2633:144:30","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7280,"src":"220:2559:30","usedErrors":[],"usedEvents":[]}],"src":"101:2679:30"},"id":30},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[7303],"IERC165":[7315]},"id":7304,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7281,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:31"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":7282,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7304,"sourceUnit":7316,"src":"124:23:31","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7284,"name":"IERC165","nameLocations":["754:7:31"],"nodeType":"IdentifierPath","referencedDeclaration":7315,"src":"754:7:31"},"id":7285,"nodeType":"InheritanceSpecifier","src":"754:7:31"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":7283,"nodeType":"StructuredDocumentation","src":"149:576:31","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":7303,"linearizedBaseContracts":[7303,7315],"name":"ERC165","nameLocation":"744:6:31","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[7314],"body":{"id":7301,"nodeType":"Block","src":"920:64:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7294,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"937:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7296,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7315,"src":"957:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$7315_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$7315_$","typeString":"type(contract IERC165)"}],"id":7295,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$7315","typeString":"type(contract IERC165)"}},"id":7298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:31","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7293,"id":7300,"nodeType":"Return","src":"930:47:31"}]},"documentation":{"id":7286,"nodeType":"StructuredDocumentation","src":"768:56:31","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7302,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:31","nodeType":"FunctionDefinition","overrides":{"id":7290,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:31"},"parameters":{"id":7289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7288,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:31","nodeType":"VariableDeclaration","scope":7302,"src":"856:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7287,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:31"},"returnParameters":{"id":7293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7302,"src":"914:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7291,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:31"},"scope":7303,"src":"829:155:31","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":7304,"src":"726:260:31","usedErrors":[],"usedEvents":[]}],"src":"99:888:31"},"id":31},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[7315]},"id":7316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7305,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:32"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":7306,"nodeType":"StructuredDocumentation","src":"125:279:32","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":7315,"linearizedBaseContracts":[7315],"name":"IERC165","nameLocation":"415:7:32","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7307,"nodeType":"StructuredDocumentation","src":"429:340:32","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":7314,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:32","nodeType":"FunctionDefinition","parameters":{"id":7310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7309,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:32","nodeType":"VariableDeclaration","scope":7314,"src":"801:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7308,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:32"},"returnParameters":{"id":7313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7314,"src":"844:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7311,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:32"},"scope":7315,"src":"774:76:32","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7316,"src":"405:447:32","usedErrors":[],"usedEvents":[]}],"src":"100:753:32"},"id":32},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[8181]},"id":8182,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7317,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:33"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":7318,"nodeType":"StructuredDocumentation","src":"128:73:33","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":8181,"linearizedBaseContracts":[8181],"name":"Math","nameLocation":"210:4:33","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":7322,"members":[{"id":7319,"name":"Down","nameLocation":"245:4:33","nodeType":"EnumValue","src":"245:4:33"},{"id":7320,"name":"Up","nameLocation":"287:2:33","nodeType":"EnumValue","src":"287:2:33"},{"id":7321,"name":"Zero","nameLocation":"318:4:33","nodeType":"EnumValue","src":"318:4:33"}],"name":"Rounding","nameLocation":"226:8:33","nodeType":"EnumDefinition","src":"221:122:33"},{"body":{"id":7339,"nodeType":"Block","src":"480:37:33","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7332,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7325,"src":"497:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7333,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7327,"src":"501:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7336,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7327,"src":"509:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:33","trueExpression":{"id":7335,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7325,"src":"505:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7331,"id":7338,"nodeType":"Return","src":"490:20:33"}]},"documentation":{"id":7323,"nodeType":"StructuredDocumentation","src":"349:59:33","text":" @dev Returns the largest of two numbers."},"id":7340,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:33","nodeType":"FunctionDefinition","parameters":{"id":7328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7325,"mutability":"mutable","name":"a","nameLocation":"434:1:33","nodeType":"VariableDeclaration","scope":7340,"src":"426:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7324,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7327,"mutability":"mutable","name":"b","nameLocation":"445:1:33","nodeType":"VariableDeclaration","scope":7340,"src":"437:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7326,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:33"},"returnParameters":{"id":7331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7340,"src":"471:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7329,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:33"},"scope":8181,"src":"413:104:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7357,"nodeType":"Block","src":"655:37:33","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7350,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"672:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7351,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"676:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7354,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"684:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:33","trueExpression":{"id":7353,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"680:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7349,"id":7356,"nodeType":"Return","src":"665:20:33"}]},"documentation":{"id":7341,"nodeType":"StructuredDocumentation","src":"523:60:33","text":" @dev Returns the smallest of two numbers."},"id":7358,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:33","nodeType":"FunctionDefinition","parameters":{"id":7346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7343,"mutability":"mutable","name":"a","nameLocation":"609:1:33","nodeType":"VariableDeclaration","scope":7358,"src":"601:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7342,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7345,"mutability":"mutable","name":"b","nameLocation":"620:1:33","nodeType":"VariableDeclaration","scope":7358,"src":"612:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7344,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:33"},"returnParameters":{"id":7349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7358,"src":"646:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7347,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:33"},"scope":8181,"src":"588:104:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7380,"nodeType":"Block","src":"876:82:33","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7368,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"931:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":7369,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"935:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7372,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"941:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7373,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"945:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7367,"id":7379,"nodeType":"Return","src":"923:28:33"}]},"documentation":{"id":7359,"nodeType":"StructuredDocumentation","src":"698:102:33","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":7381,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:33","nodeType":"FunctionDefinition","parameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7361,"mutability":"mutable","name":"a","nameLocation":"830:1:33","nodeType":"VariableDeclaration","scope":7381,"src":"822:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7360,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7363,"mutability":"mutable","name":"b","nameLocation":"841:1:33","nodeType":"VariableDeclaration","scope":7381,"src":"833:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7362,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:33"},"returnParameters":{"id":7367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7381,"src":"867:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7365,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:33"},"scope":8181,"src":"805:153:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7405,"nodeType":"Block","src":"1228:123:33","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7391,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"1316:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7395,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"1330:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7399,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7386,"src":"1339:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:33","trueExpression":{"hexValue":"30","id":7394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7390,"id":7404,"nodeType":"Return","src":"1309:35:33"}]},"documentation":{"id":7382,"nodeType":"StructuredDocumentation","src":"964:188:33","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":7406,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:33","nodeType":"FunctionDefinition","parameters":{"id":7387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7384,"mutability":"mutable","name":"a","nameLocation":"1182:1:33","nodeType":"VariableDeclaration","scope":7406,"src":"1174:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7383,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7386,"mutability":"mutable","name":"b","nameLocation":"1193:1:33","nodeType":"VariableDeclaration","scope":7406,"src":"1185:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7385,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:33"},"returnParameters":{"id":7390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7406,"src":"1219:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:33"},"scope":8181,"src":"1157:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7528,"nodeType":"Block","src":"1765:4115:33","statements":[{"id":7527,"nodeType":"UncheckedBlock","src":"1775:4099:33","statements":[{"assignments":[7419],"declarations":[{"constant":false,"id":7419,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:33","nodeType":"VariableDeclaration","scope":7527,"src":"2096:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7418,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7420,"nodeType":"VariableDeclarationStatement","src":"2096:13:33"},{"assignments":[7422],"declarations":[{"constant":false,"id":7422,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:33","nodeType":"VariableDeclaration","scope":7527,"src":"2168:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7421,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7423,"nodeType":"VariableDeclarationStatement","src":"2168:13:33"},{"AST":{"nativeSrc":"2248:157:33","nodeType":"YulBlock","src":"2248:157:33","statements":[{"nativeSrc":"2266:30:33","nodeType":"YulVariableDeclaration","src":"2266:30:33","value":{"arguments":[{"name":"x","nativeSrc":"2283:1:33","nodeType":"YulIdentifier","src":"2283:1:33"},{"name":"y","nativeSrc":"2286:1:33","nodeType":"YulIdentifier","src":"2286:1:33"},{"arguments":[{"kind":"number","nativeSrc":"2293:1:33","nodeType":"YulLiteral","src":"2293:1:33","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2289:3:33","nodeType":"YulIdentifier","src":"2289:3:33"},"nativeSrc":"2289:6:33","nodeType":"YulFunctionCall","src":"2289:6:33"}],"functionName":{"name":"mulmod","nativeSrc":"2276:6:33","nodeType":"YulIdentifier","src":"2276:6:33"},"nativeSrc":"2276:20:33","nodeType":"YulFunctionCall","src":"2276:20:33"},"variables":[{"name":"mm","nativeSrc":"2270:2:33","nodeType":"YulTypedName","src":"2270:2:33","type":""}]},{"nativeSrc":"2313:18:33","nodeType":"YulAssignment","src":"2313:18:33","value":{"arguments":[{"name":"x","nativeSrc":"2326:1:33","nodeType":"YulIdentifier","src":"2326:1:33"},{"name":"y","nativeSrc":"2329:1:33","nodeType":"YulIdentifier","src":"2329:1:33"}],"functionName":{"name":"mul","nativeSrc":"2322:3:33","nodeType":"YulIdentifier","src":"2322:3:33"},"nativeSrc":"2322:9:33","nodeType":"YulFunctionCall","src":"2322:9:33"},"variableNames":[{"name":"prod0","nativeSrc":"2313:5:33","nodeType":"YulIdentifier","src":"2313:5:33"}]},{"nativeSrc":"2348:43:33","nodeType":"YulAssignment","src":"2348:43:33","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2365:2:33","nodeType":"YulIdentifier","src":"2365:2:33"},{"name":"prod0","nativeSrc":"2369:5:33","nodeType":"YulIdentifier","src":"2369:5:33"}],"functionName":{"name":"sub","nativeSrc":"2361:3:33","nodeType":"YulIdentifier","src":"2361:3:33"},"nativeSrc":"2361:14:33","nodeType":"YulFunctionCall","src":"2361:14:33"},{"arguments":[{"name":"mm","nativeSrc":"2380:2:33","nodeType":"YulIdentifier","src":"2380:2:33"},{"name":"prod0","nativeSrc":"2384:5:33","nodeType":"YulIdentifier","src":"2384:5:33"}],"functionName":{"name":"lt","nativeSrc":"2377:2:33","nodeType":"YulIdentifier","src":"2377:2:33"},"nativeSrc":"2377:13:33","nodeType":"YulFunctionCall","src":"2377:13:33"}],"functionName":{"name":"sub","nativeSrc":"2357:3:33","nodeType":"YulIdentifier","src":"2357:3:33"},"nativeSrc":"2357:34:33","nodeType":"YulFunctionCall","src":"2357:34:33"},"variableNames":[{"name":"prod1","nativeSrc":"2348:5:33","nodeType":"YulIdentifier","src":"2348:5:33"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7419,"isOffset":false,"isSlot":false,"src":"2313:5:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"2369:5:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"2384:5:33","valueSize":1},{"declaration":7422,"isOffset":false,"isSlot":false,"src":"2348:5:33","valueSize":1},{"declaration":7409,"isOffset":false,"isSlot":false,"src":"2283:1:33","valueSize":1},{"declaration":7409,"isOffset":false,"isSlot":false,"src":"2326:1:33","valueSize":1},{"declaration":7411,"isOffset":false,"isSlot":false,"src":"2286:1:33","valueSize":1},{"declaration":7411,"isOffset":false,"isSlot":false,"src":"2329:1:33","valueSize":1}],"id":7424,"nodeType":"InlineAssembly","src":"2239:166:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7425,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7422,"src":"2486:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7433,"nodeType":"IfStatement","src":"2482:368:33","trueBody":{"id":7432,"nodeType":"Block","src":"2498:352:33","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7428,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"2816:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7429,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"2824:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7417,"id":7431,"nodeType":"Return","src":"2809:26:33"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7435,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"2960:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7436,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7422,"src":"2974:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":7438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":7434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7440,"nodeType":"ExpressionStatement","src":"2952:53:33"},{"assignments":[7442],"declarations":[{"constant":false,"id":7442,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:33","nodeType":"VariableDeclaration","scope":7527,"src":"3261:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7443,"nodeType":"VariableDeclarationStatement","src":"3261:17:33"},{"AST":{"nativeSrc":"3301:291:33","nodeType":"YulBlock","src":"3301:291:33","statements":[{"nativeSrc":"3370:38:33","nodeType":"YulAssignment","src":"3370:38:33","value":{"arguments":[{"name":"x","nativeSrc":"3390:1:33","nodeType":"YulIdentifier","src":"3390:1:33"},{"name":"y","nativeSrc":"3393:1:33","nodeType":"YulIdentifier","src":"3393:1:33"},{"name":"denominator","nativeSrc":"3396:11:33","nodeType":"YulIdentifier","src":"3396:11:33"}],"functionName":{"name":"mulmod","nativeSrc":"3383:6:33","nodeType":"YulIdentifier","src":"3383:6:33"},"nativeSrc":"3383:25:33","nodeType":"YulFunctionCall","src":"3383:25:33"},"variableNames":[{"name":"remainder","nativeSrc":"3370:9:33","nodeType":"YulIdentifier","src":"3370:9:33"}]},{"nativeSrc":"3490:41:33","nodeType":"YulAssignment","src":"3490:41:33","value":{"arguments":[{"name":"prod1","nativeSrc":"3503:5:33","nodeType":"YulIdentifier","src":"3503:5:33"},{"arguments":[{"name":"remainder","nativeSrc":"3513:9:33","nodeType":"YulIdentifier","src":"3513:9:33"},{"name":"prod0","nativeSrc":"3524:5:33","nodeType":"YulIdentifier","src":"3524:5:33"}],"functionName":{"name":"gt","nativeSrc":"3510:2:33","nodeType":"YulIdentifier","src":"3510:2:33"},"nativeSrc":"3510:20:33","nodeType":"YulFunctionCall","src":"3510:20:33"}],"functionName":{"name":"sub","nativeSrc":"3499:3:33","nodeType":"YulIdentifier","src":"3499:3:33"},"nativeSrc":"3499:32:33","nodeType":"YulFunctionCall","src":"3499:32:33"},"variableNames":[{"name":"prod1","nativeSrc":"3490:5:33","nodeType":"YulIdentifier","src":"3490:5:33"}]},{"nativeSrc":"3548:30:33","nodeType":"YulAssignment","src":"3548:30:33","value":{"arguments":[{"name":"prod0","nativeSrc":"3561:5:33","nodeType":"YulIdentifier","src":"3561:5:33"},{"name":"remainder","nativeSrc":"3568:9:33","nodeType":"YulIdentifier","src":"3568:9:33"}],"functionName":{"name":"sub","nativeSrc":"3557:3:33","nodeType":"YulIdentifier","src":"3557:3:33"},"nativeSrc":"3557:21:33","nodeType":"YulFunctionCall","src":"3557:21:33"},"variableNames":[{"name":"prod0","nativeSrc":"3548:5:33","nodeType":"YulIdentifier","src":"3548:5:33"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7413,"isOffset":false,"isSlot":false,"src":"3396:11:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"3524:5:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"3548:5:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"3561:5:33","valueSize":1},{"declaration":7422,"isOffset":false,"isSlot":false,"src":"3490:5:33","valueSize":1},{"declaration":7422,"isOffset":false,"isSlot":false,"src":"3503:5:33","valueSize":1},{"declaration":7442,"isOffset":false,"isSlot":false,"src":"3370:9:33","valueSize":1},{"declaration":7442,"isOffset":false,"isSlot":false,"src":"3513:9:33","valueSize":1},{"declaration":7442,"isOffset":false,"isSlot":false,"src":"3568:9:33","valueSize":1},{"declaration":7409,"isOffset":false,"isSlot":false,"src":"3390:1:33","valueSize":1},{"declaration":7411,"isOffset":false,"isSlot":false,"src":"3393:1:33","valueSize":1}],"id":7444,"nodeType":"InlineAssembly","src":"3292:300:33"},{"assignments":[7446],"declarations":[{"constant":false,"id":7446,"mutability":"mutable","name":"twos","nameLocation":"3907:4:33","nodeType":"VariableDeclaration","scope":7527,"src":"3899:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7445,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7454,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7447,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"3914:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:33","subExpression":{"id":7448,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"3930:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:33"},{"AST":{"nativeSrc":"3969:362:33","nodeType":"YulBlock","src":"3969:362:33","statements":[{"nativeSrc":"4034:37:33","nodeType":"YulAssignment","src":"4034:37:33","value":{"arguments":[{"name":"denominator","nativeSrc":"4053:11:33","nodeType":"YulIdentifier","src":"4053:11:33"},{"name":"twos","nativeSrc":"4066:4:33","nodeType":"YulIdentifier","src":"4066:4:33"}],"functionName":{"name":"div","nativeSrc":"4049:3:33","nodeType":"YulIdentifier","src":"4049:3:33"},"nativeSrc":"4049:22:33","nodeType":"YulFunctionCall","src":"4049:22:33"},"variableNames":[{"name":"denominator","nativeSrc":"4034:11:33","nodeType":"YulIdentifier","src":"4034:11:33"}]},{"nativeSrc":"4138:25:33","nodeType":"YulAssignment","src":"4138:25:33","value":{"arguments":[{"name":"prod0","nativeSrc":"4151:5:33","nodeType":"YulIdentifier","src":"4151:5:33"},{"name":"twos","nativeSrc":"4158:4:33","nodeType":"YulIdentifier","src":"4158:4:33"}],"functionName":{"name":"div","nativeSrc":"4147:3:33","nodeType":"YulIdentifier","src":"4147:3:33"},"nativeSrc":"4147:16:33","nodeType":"YulFunctionCall","src":"4147:16:33"},"variableNames":[{"name":"prod0","nativeSrc":"4138:5:33","nodeType":"YulIdentifier","src":"4138:5:33"}]},{"nativeSrc":"4278:39:33","nodeType":"YulAssignment","src":"4278:39:33","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4298:1:33","nodeType":"YulLiteral","src":"4298:1:33","type":"","value":"0"},{"name":"twos","nativeSrc":"4301:4:33","nodeType":"YulIdentifier","src":"4301:4:33"}],"functionName":{"name":"sub","nativeSrc":"4294:3:33","nodeType":"YulIdentifier","src":"4294:3:33"},"nativeSrc":"4294:12:33","nodeType":"YulFunctionCall","src":"4294:12:33"},{"name":"twos","nativeSrc":"4308:4:33","nodeType":"YulIdentifier","src":"4308:4:33"}],"functionName":{"name":"div","nativeSrc":"4290:3:33","nodeType":"YulIdentifier","src":"4290:3:33"},"nativeSrc":"4290:23:33","nodeType":"YulFunctionCall","src":"4290:23:33"},{"kind":"number","nativeSrc":"4315:1:33","nodeType":"YulLiteral","src":"4315:1:33","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4286:3:33","nodeType":"YulIdentifier","src":"4286:3:33"},"nativeSrc":"4286:31:33","nodeType":"YulFunctionCall","src":"4286:31:33"},"variableNames":[{"name":"twos","nativeSrc":"4278:4:33","nodeType":"YulIdentifier","src":"4278:4:33"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7413,"isOffset":false,"isSlot":false,"src":"4034:11:33","valueSize":1},{"declaration":7413,"isOffset":false,"isSlot":false,"src":"4053:11:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"4138:5:33","valueSize":1},{"declaration":7419,"isOffset":false,"isSlot":false,"src":"4151:5:33","valueSize":1},{"declaration":7446,"isOffset":false,"isSlot":false,"src":"4066:4:33","valueSize":1},{"declaration":7446,"isOffset":false,"isSlot":false,"src":"4158:4:33","valueSize":1},{"declaration":7446,"isOffset":false,"isSlot":false,"src":"4278:4:33","valueSize":1},{"declaration":7446,"isOffset":false,"isSlot":false,"src":"4301:4:33","valueSize":1},{"declaration":7446,"isOffset":false,"isSlot":false,"src":"4308:4:33","valueSize":1}],"id":7455,"nodeType":"InlineAssembly","src":"3960:371:33"},{"expression":{"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7456,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"4397:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7457,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7422,"src":"4406:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7458,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7446,"src":"4414:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7461,"nodeType":"ExpressionStatement","src":"4397:21:33"},{"assignments":[7463],"declarations":[{"constant":false,"id":7463,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:33","nodeType":"VariableDeclaration","scope":7527,"src":"4736:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7462,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7470,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":7464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:33","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7465,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"4759:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":7468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:33"},{"expression":{"id":7477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7471,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"4992:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7473,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5007:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7474,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5021:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7478,"nodeType":"ExpressionStatement","src":"4992:36:33"},{"expression":{"id":7485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7479,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5061:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7481,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5076:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7482,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5090:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7486,"nodeType":"ExpressionStatement","src":"5061:36:33"},{"expression":{"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7487,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5131:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7489,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5146:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7490,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5160:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7494,"nodeType":"ExpressionStatement","src":"5131:36:33"},{"expression":{"id":7501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7495,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5201:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7497,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5216:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7498,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5230:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7502,"nodeType":"ExpressionStatement","src":"5201:36:33"},{"expression":{"id":7509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7503,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5271:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7505,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5286:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7506,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5300:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7510,"nodeType":"ExpressionStatement","src":"5271:36:33"},{"expression":{"id":7517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7511,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5342:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7513,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"5357:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7514,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5371:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7518,"nodeType":"ExpressionStatement","src":"5342:36:33"},{"expression":{"id":7523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7519,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7416,"src":"5812:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7520,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"5821:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7521,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"5829:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7524,"nodeType":"ExpressionStatement","src":"5812:24:33"},{"expression":{"id":7525,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7416,"src":"5857:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7417,"id":7526,"nodeType":"Return","src":"5850:13:33"}]}]},"documentation":{"id":7407,"nodeType":"StructuredDocumentation","src":"1357:305:33","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":7529,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:33","nodeType":"FunctionDefinition","parameters":{"id":7414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7409,"mutability":"mutable","name":"x","nameLocation":"1691:1:33","nodeType":"VariableDeclaration","scope":7529,"src":"1683:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7408,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7411,"mutability":"mutable","name":"y","nameLocation":"1702:1:33","nodeType":"VariableDeclaration","scope":7529,"src":"1694:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7410,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7413,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:33","nodeType":"VariableDeclaration","scope":7529,"src":"1705:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7412,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:33"},"returnParameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7416,"mutability":"mutable","name":"result","nameLocation":"1757:6:33","nodeType":"VariableDeclaration","scope":7529,"src":"1749:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:33"},"scope":8181,"src":"1667:4213:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7572,"nodeType":"Block","src":"6122:189:33","statements":[{"assignments":[7545],"declarations":[{"constant":false,"id":7545,"mutability":"mutable","name":"result","nameLocation":"6140:6:33","nodeType":"VariableDeclaration","scope":7572,"src":"6132:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7544,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7551,"initialValue":{"arguments":[{"id":7547,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7532,"src":"6156:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7548,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7534,"src":"6159:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7549,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7536,"src":"6162:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7546,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[7529,7573],"referencedDeclaration":7529,"src":"6149:6:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:33"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7552,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"6188:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7553,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"6200:8:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7322_$","typeString":"type(enum Math.Rounding)"}},"id":7554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:33","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7320,"src":"6200:11:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"src":"6188:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7557,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7532,"src":"6222:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7558,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7534,"src":"6225:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7559,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7536,"src":"6228:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7556,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:33","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7569,"nodeType":"IfStatement","src":"6184:98:33","trueBody":{"id":7568,"nodeType":"Block","src":"6246:36:33","statements":[{"expression":{"id":7566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7564,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"6260:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7567,"nodeType":"ExpressionStatement","src":"6260:11:33"}]}},{"expression":{"id":7570,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"6298:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7543,"id":7571,"nodeType":"Return","src":"6291:13:33"}]},"documentation":{"id":7530,"nodeType":"StructuredDocumentation","src":"5886:121:33","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":7573,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:33","nodeType":"FunctionDefinition","parameters":{"id":7540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7532,"mutability":"mutable","name":"x","nameLocation":"6036:1:33","nodeType":"VariableDeclaration","scope":7573,"src":"6028:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7531,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7534,"mutability":"mutable","name":"y","nameLocation":"6047:1:33","nodeType":"VariableDeclaration","scope":7573,"src":"6039:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7533,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7536,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:33","nodeType":"VariableDeclaration","scope":7573,"src":"6050:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7535,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7539,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:33","nodeType":"VariableDeclaration","scope":7573,"src":"6071:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"typeName":{"id":7538,"nodeType":"UserDefinedTypeName","pathNode":{"id":7537,"name":"Rounding","nameLocations":["6071:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":7322,"src":"6071:8:33"},"referencedDeclaration":7322,"src":"6071:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:33"},"returnParameters":{"id":7543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7573,"src":"6113:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7541,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:33"},"scope":8181,"src":"6012:299:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7684,"nodeType":"Block","src":"6587:1585:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7581,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"6601:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7587,"nodeType":"IfStatement","src":"6597:45:33","trueBody":{"id":7586,"nodeType":"Block","src":"6609:33:33","statements":[{"expression":{"hexValue":"30","id":7584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":7580,"id":7585,"nodeType":"Return","src":"6623:8:33"}]}},{"assignments":[7589],"declarations":[{"constant":false,"id":7589,"mutability":"mutable","name":"result","nameLocation":"7329:6:33","nodeType":"VariableDeclaration","scope":7684,"src":"7321:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7598,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7349:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7591,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[7853,7889],"referencedDeclaration":7853,"src":"7344:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7596,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:33"},{"id":7683,"nodeType":"UncheckedBlock","src":"7758:408:33","statements":[{"expression":{"id":7608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7599,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7782:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7600,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7792:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7601,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7801:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7602,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7805:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7605,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7609,"nodeType":"ExpressionStatement","src":"7782:35:33"},{"expression":{"id":7619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7610,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7831:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7611,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7841:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7612,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7850:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7613,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7854:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7616,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7620,"nodeType":"ExpressionStatement","src":"7831:35:33"},{"expression":{"id":7630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7621,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7880:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7622,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7890:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7623,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7899:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7624,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7903:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7631,"nodeType":"ExpressionStatement","src":"7880:35:33"},{"expression":{"id":7641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7632,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7929:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7633,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7939:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7634,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7948:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7635,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7952:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7642,"nodeType":"ExpressionStatement","src":"7929:35:33"},{"expression":{"id":7652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7643,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7978:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7644,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"7988:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7645,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"7997:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7646,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8001:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7653,"nodeType":"ExpressionStatement","src":"7978:35:33"},{"expression":{"id":7663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7654,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8027:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7655,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8037:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7656,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"8046:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7657,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8050:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7664,"nodeType":"ExpressionStatement","src":"8027:35:33"},{"expression":{"id":7674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7665,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8076:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7666,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8086:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7667,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"8095:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7668,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8099:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7671,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7675,"nodeType":"ExpressionStatement","src":"8076:35:33"},{"expression":{"arguments":[{"id":7677,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8136:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7678,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7576,"src":"8144:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7679,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7589,"src":"8148:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7676,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7358,"src":"8132:3:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7580,"id":7682,"nodeType":"Return","src":"8125:30:33"}]}]},"documentation":{"id":7574,"nodeType":"StructuredDocumentation","src":"6317:208:33","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":7685,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:33","nodeType":"FunctionDefinition","parameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7576,"mutability":"mutable","name":"a","nameLocation":"6552:1:33","nodeType":"VariableDeclaration","scope":7685,"src":"6544:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7575,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:33"},"returnParameters":{"id":7580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7685,"src":"6578:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7578,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:33"},"scope":8181,"src":"6530:1642:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7720,"nodeType":"Block","src":"8348:161:33","statements":[{"id":7719,"nodeType":"UncheckedBlock","src":"8358:145:33","statements":[{"assignments":[7697],"declarations":[{"constant":false,"id":7697,"mutability":"mutable","name":"result","nameLocation":"8390:6:33","nodeType":"VariableDeclaration","scope":7719,"src":"8382:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7701,"initialValue":{"arguments":[{"id":7699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7688,"src":"8404:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7698,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[7685,7721],"referencedDeclaration":7685,"src":"8399:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:33"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7702,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"8427:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"id":7706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7703,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7691,"src":"8437:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7704,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"8449:8:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7322_$","typeString":"type(enum Math.Rounding)"}},"id":7705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:33","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7320,"src":"8449:11:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"src":"8437:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7707,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"8464:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7708,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7697,"src":"8473:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7710,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7688,"src":"8482:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":7714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":7715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:33","trueExpression":{"hexValue":"31","id":7713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":7716,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7695,"id":7718,"nodeType":"Return","src":"8420:72:33"}]}]},"documentation":{"id":7686,"nodeType":"StructuredDocumentation","src":"8178:89:33","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":7721,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:33","nodeType":"FunctionDefinition","parameters":{"id":7692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7688,"mutability":"mutable","name":"a","nameLocation":"8294:1:33","nodeType":"VariableDeclaration","scope":7721,"src":"8286:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7687,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7691,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:33","nodeType":"VariableDeclaration","scope":7721,"src":"8297:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"typeName":{"id":7690,"nodeType":"UserDefinedTypeName","pathNode":{"id":7689,"name":"Rounding","nameLocations":["8297:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":7322,"src":"8297:8:33"},"referencedDeclaration":7322,"src":"8297:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:33"},"returnParameters":{"id":7695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7721,"src":"8339:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7693,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:33"},"scope":8181,"src":"8272:237:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7852,"nodeType":"Block","src":"8694:922:33","statements":[{"assignments":[7730],"declarations":[{"constant":false,"id":7730,"mutability":"mutable","name":"result","nameLocation":"8712:6:33","nodeType":"VariableDeclaration","scope":7852,"src":"8704:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7729,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7732,"initialValue":{"hexValue":"30","id":7731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:33"},{"id":7849,"nodeType":"UncheckedBlock","src":"8732:855:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7733,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"8760:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":7734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:33","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7747,"nodeType":"IfStatement","src":"8756:99:33","trueBody":{"id":7746,"nodeType":"Block","src":"8778:77:33","statements":[{"expression":{"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"8796:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":7739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:33","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7741,"nodeType":"ExpressionStatement","src":"8796:13:33"},{"expression":{"id":7744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7742,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"8827:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":7743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:33","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7745,"nodeType":"ExpressionStatement","src":"8827:13:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7748,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"8872:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":7749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7762,"nodeType":"IfStatement","src":"8868:96:33","trueBody":{"id":7761,"nodeType":"Block","src":"8889:75:33","statements":[{"expression":{"id":7755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7753,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"8907:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":7754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7756,"nodeType":"ExpressionStatement","src":"8907:12:33"},{"expression":{"id":7759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7757,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"8937:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":7758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7760,"nodeType":"ExpressionStatement","src":"8937:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7763,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"8981:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":7764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7777,"nodeType":"IfStatement","src":"8977:96:33","trueBody":{"id":7776,"nodeType":"Block","src":"8998:75:33","statements":[{"expression":{"id":7770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7768,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9016:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":7769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7771,"nodeType":"ExpressionStatement","src":"9016:12:33"},{"expression":{"id":7774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7772,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9046:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":7773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7775,"nodeType":"ExpressionStatement","src":"9046:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9090:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":7779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7792,"nodeType":"IfStatement","src":"9086:96:33","trueBody":{"id":7791,"nodeType":"Block","src":"9107:75:33","statements":[{"expression":{"id":7785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9125:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":7784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7786,"nodeType":"ExpressionStatement","src":"9125:12:33"},{"expression":{"id":7789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7787,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9155:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":7788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7790,"nodeType":"ExpressionStatement","src":"9155:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9199:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":7794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7807,"nodeType":"IfStatement","src":"9195:93:33","trueBody":{"id":7806,"nodeType":"Block","src":"9215:73:33","statements":[{"expression":{"id":7800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9233:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":7799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7801,"nodeType":"ExpressionStatement","src":"9233:11:33"},{"expression":{"id":7804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7802,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9262:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":7803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7805,"nodeType":"ExpressionStatement","src":"9262:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9305:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":7809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7822,"nodeType":"IfStatement","src":"9301:93:33","trueBody":{"id":7821,"nodeType":"Block","src":"9321:73:33","statements":[{"expression":{"id":7815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9339:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":7814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7816,"nodeType":"ExpressionStatement","src":"9339:11:33"},{"expression":{"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7817,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9368:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":7818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7820,"nodeType":"ExpressionStatement","src":"9368:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9411:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":7824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7837,"nodeType":"IfStatement","src":"9407:93:33","trueBody":{"id":7836,"nodeType":"Block","src":"9427:73:33","statements":[{"expression":{"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9445:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":7829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7831,"nodeType":"ExpressionStatement","src":"9445:11:33"},{"expression":{"id":7834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7832,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9474:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":7833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7835,"nodeType":"ExpressionStatement","src":"9474:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"9517:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":7839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7848,"nodeType":"IfStatement","src":"9513:64:33","trueBody":{"id":7847,"nodeType":"Block","src":"9533:44:33","statements":[{"expression":{"id":7845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7843,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9551:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7846,"nodeType":"ExpressionStatement","src":"9551:11:33"}]}}]},{"expression":{"id":7850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7730,"src":"9603:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7728,"id":7851,"nodeType":"Return","src":"9596:13:33"}]},"documentation":{"id":7722,"nodeType":"StructuredDocumentation","src":"8515:113:33","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":7853,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:33","nodeType":"FunctionDefinition","parameters":{"id":7725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7724,"mutability":"mutable","name":"value","nameLocation":"8655:5:33","nodeType":"VariableDeclaration","scope":7853,"src":"8647:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7723,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:33"},"returnParameters":{"id":7728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7853,"src":"8685:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7726,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:33"},"scope":8181,"src":"8633:983:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7888,"nodeType":"Block","src":"9849:165:33","statements":[{"id":7887,"nodeType":"UncheckedBlock","src":"9859:149:33","statements":[{"assignments":[7865],"declarations":[{"constant":false,"id":7865,"mutability":"mutable","name":"result","nameLocation":"9891:6:33","nodeType":"VariableDeclaration","scope":7887,"src":"9883:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7864,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7869,"initialValue":{"arguments":[{"id":7867,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"9905:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7866,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[7853,7889],"referencedDeclaration":7853,"src":"9900:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:33"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"9932:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"id":7874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7871,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7859,"src":"9942:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7872,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"9954:8:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7322_$","typeString":"type(enum Math.Rounding)"}},"id":7873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:33","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7320,"src":"9954:11:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"src":"9942:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":7876,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"9974:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"9983:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":7883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:33","trueExpression":{"hexValue":"31","id":7881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":7884,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7863,"id":7886,"nodeType":"Return","src":"9925:72:33"}]}]},"documentation":{"id":7854,"nodeType":"StructuredDocumentation","src":"9622:142:33","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":7889,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:33","nodeType":"FunctionDefinition","parameters":{"id":7860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7856,"mutability":"mutable","name":"value","nameLocation":"9791:5:33","nodeType":"VariableDeclaration","scope":7889,"src":"9783:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7855,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7859,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:33","nodeType":"VariableDeclaration","scope":7889,"src":"9798:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"typeName":{"id":7858,"nodeType":"UserDefinedTypeName","pathNode":{"id":7857,"name":"Rounding","nameLocations":["9798:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":7322,"src":"9798:8:33"},"referencedDeclaration":7322,"src":"9798:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:33"},"returnParameters":{"id":7863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7889,"src":"9840:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7861,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:33"},"scope":8181,"src":"9769:245:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8017,"nodeType":"Block","src":"10201:854:33","statements":[{"assignments":[7898],"declarations":[{"constant":false,"id":7898,"mutability":"mutable","name":"result","nameLocation":"10219:6:33","nodeType":"VariableDeclaration","scope":8017,"src":"10211:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7897,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7900,"initialValue":{"hexValue":"30","id":7899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:33"},{"id":8014,"nodeType":"UncheckedBlock","src":"10239:787:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10267:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":7904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":7903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:33","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7917,"nodeType":"IfStatement","src":"10263:103:33","trueBody":{"id":7916,"nodeType":"Block","src":"10286:80:33","statements":[{"expression":{"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10304:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":7909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:33","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7911,"nodeType":"ExpressionStatement","src":"10304:17:33"},{"expression":{"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7912,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10339:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":7913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7915,"nodeType":"ExpressionStatement","src":"10339:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7918,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10383:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":7921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":7920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:33","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7934,"nodeType":"IfStatement","src":"10379:103:33","trueBody":{"id":7933,"nodeType":"Block","src":"10402:80:33","statements":[{"expression":{"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10420:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":7926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":7925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:33","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7928,"nodeType":"ExpressionStatement","src":"10420:17:33"},{"expression":{"id":7931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7929,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10455:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":7930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7932,"nodeType":"ExpressionStatement","src":"10455:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7935,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10499:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":7938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":7937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:33","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7951,"nodeType":"IfStatement","src":"10495:103:33","trueBody":{"id":7950,"nodeType":"Block","src":"10518:80:33","statements":[{"expression":{"id":7944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10536:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":7943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":7942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:33","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7945,"nodeType":"ExpressionStatement","src":"10536:17:33"},{"expression":{"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7946,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10571:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7949,"nodeType":"ExpressionStatement","src":"10571:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10615:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":7955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":7954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:33","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7968,"nodeType":"IfStatement","src":"10611:100:33","trueBody":{"id":7967,"nodeType":"Block","src":"10633:78:33","statements":[{"expression":{"id":7961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10651:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":7960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":7959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:33","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7962,"nodeType":"ExpressionStatement","src":"10651:16:33"},{"expression":{"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7963,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10685:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":7964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7966,"nodeType":"ExpressionStatement","src":"10685:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10728:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":7972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":7971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:33","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7985,"nodeType":"IfStatement","src":"10724:100:33","trueBody":{"id":7984,"nodeType":"Block","src":"10746:78:33","statements":[{"expression":{"id":7978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10764:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":7977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":7976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:33","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7979,"nodeType":"ExpressionStatement","src":"10764:16:33"},{"expression":{"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7980,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10798:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":7981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7983,"nodeType":"ExpressionStatement","src":"10798:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10841:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":7989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":7988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:33","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8002,"nodeType":"IfStatement","src":"10837:100:33","trueBody":{"id":8001,"nodeType":"Block","src":"10859:78:33","statements":[{"expression":{"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7991,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10877:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":7994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":7992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":7993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:33","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7996,"nodeType":"ExpressionStatement","src":"10877:16:33"},{"expression":{"id":7999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7997,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10911:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":7998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8000,"nodeType":"ExpressionStatement","src":"10911:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8003,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"10954:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":8006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":8005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8013,"nodeType":"IfStatement","src":"10950:66:33","trueBody":{"id":8012,"nodeType":"Block","src":"10972:44:33","statements":[{"expression":{"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8008,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"10990:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8011,"nodeType":"ExpressionStatement","src":"10990:11:33"}]}}]},{"expression":{"id":8015,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7898,"src":"11042:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7896,"id":8016,"nodeType":"Return","src":"11035:13:33"}]},"documentation":{"id":7890,"nodeType":"StructuredDocumentation","src":"10020:114:33","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":8018,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:33","nodeType":"FunctionDefinition","parameters":{"id":7893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7892,"mutability":"mutable","name":"value","nameLocation":"10162:5:33","nodeType":"VariableDeclaration","scope":8018,"src":"10154:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7891,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:33"},"returnParameters":{"id":7896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8018,"src":"10192:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7894,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:33"},"scope":8181,"src":"10139:916:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8053,"nodeType":"Block","src":"11290:167:33","statements":[{"id":8052,"nodeType":"UncheckedBlock","src":"11300:151:33","statements":[{"assignments":[8030],"declarations":[{"constant":false,"id":8030,"mutability":"mutable","name":"result","nameLocation":"11332:6:33","nodeType":"VariableDeclaration","scope":8052,"src":"11324:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8029,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8034,"initialValue":{"arguments":[{"id":8032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8021,"src":"11347:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8031,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[8018,8054],"referencedDeclaration":8018,"src":"11341:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:33"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8035,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8030,"src":"11374:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"id":8039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8036,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"11384:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8037,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"11396:8:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7322_$","typeString":"type(enum Math.Rounding)"}},"id":8038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:33","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7320,"src":"11396:11:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"src":"11384:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:33","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":8041,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8030,"src":"11417:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8043,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8021,"src":"11426:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:33","trueExpression":{"hexValue":"31","id":8046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8028,"id":8051,"nodeType":"Return","src":"11367:73:33"}]}]},"documentation":{"id":8019,"nodeType":"StructuredDocumentation","src":"11061:143:33","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8054,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:33","nodeType":"FunctionDefinition","parameters":{"id":8025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8021,"mutability":"mutable","name":"value","nameLocation":"11232:5:33","nodeType":"VariableDeclaration","scope":8054,"src":"11224:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8020,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8024,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:33","nodeType":"VariableDeclaration","scope":8054,"src":"11239:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"typeName":{"id":8023,"nodeType":"UserDefinedTypeName","pathNode":{"id":8022,"name":"Rounding","nameLocations":["11239:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":7322,"src":"11239:8:33"},"referencedDeclaration":7322,"src":"11239:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:33"},"returnParameters":{"id":8028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8054,"src":"11281:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8026,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:33"},"scope":8181,"src":"11209:248:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8140,"nodeType":"Block","src":"11771:600:33","statements":[{"assignments":[8063],"declarations":[{"constant":false,"id":8063,"mutability":"mutable","name":"result","nameLocation":"11789:6:33","nodeType":"VariableDeclaration","scope":8140,"src":"11781:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8062,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8065,"initialValue":{"hexValue":"30","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:33"},{"id":8137,"nodeType":"UncheckedBlock","src":"11809:533:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8066,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"11837:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":8067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:33","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8080,"nodeType":"IfStatement","src":"11833:98:33","trueBody":{"id":8079,"nodeType":"Block","src":"11855:76:33","statements":[{"expression":{"id":8073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"11873:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":8072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:33","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8074,"nodeType":"ExpressionStatement","src":"11873:13:33"},{"expression":{"id":8077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8075,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"11904:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":8076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8078,"nodeType":"ExpressionStatement","src":"11904:12:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"11948:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":8082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8095,"nodeType":"IfStatement","src":"11944:95:33","trueBody":{"id":8094,"nodeType":"Block","src":"11965:74:33","statements":[{"expression":{"id":8088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8086,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"11983:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":8087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:33","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8089,"nodeType":"ExpressionStatement","src":"11983:12:33"},{"expression":{"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8090,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"12013:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":8091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8093,"nodeType":"ExpressionStatement","src":"12013:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8096,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"12056:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":8097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8110,"nodeType":"IfStatement","src":"12052:95:33","trueBody":{"id":8109,"nodeType":"Block","src":"12073:74:33","statements":[{"expression":{"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8101,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"12091:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":8102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:33","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8104,"nodeType":"ExpressionStatement","src":"12091:12:33"},{"expression":{"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8105,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"12121:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":8106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:33","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8108,"nodeType":"ExpressionStatement","src":"12121:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"12164:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":8112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8125,"nodeType":"IfStatement","src":"12160:95:33","trueBody":{"id":8124,"nodeType":"Block","src":"12181:74:33","statements":[{"expression":{"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8116,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"12199:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":8117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:33","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8119,"nodeType":"ExpressionStatement","src":"12199:12:33"},{"expression":{"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8120,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"12229:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":8121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8123,"nodeType":"ExpressionStatement","src":"12229:11:33"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8057,"src":"12272:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":8127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:33","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8136,"nodeType":"IfStatement","src":"12268:64:33","trueBody":{"id":8135,"nodeType":"Block","src":"12288:44:33","statements":[{"expression":{"id":8133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8131,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"12306:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8134,"nodeType":"ExpressionStatement","src":"12306:11:33"}]}}]},{"expression":{"id":8138,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8063,"src":"12358:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8061,"id":8139,"nodeType":"Return","src":"12351:13:33"}]},"documentation":{"id":8055,"nodeType":"StructuredDocumentation","src":"11463:240:33","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":8141,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:33","nodeType":"FunctionDefinition","parameters":{"id":8058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8057,"mutability":"mutable","name":"value","nameLocation":"11732:5:33","nodeType":"VariableDeclaration","scope":8141,"src":"11724:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8056,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:33"},"returnParameters":{"id":8061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8141,"src":"11762:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8059,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:33"},"scope":8181,"src":"11708:663:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8179,"nodeType":"Block","src":"12608:174:33","statements":[{"id":8178,"nodeType":"UncheckedBlock","src":"12618:158:33","statements":[{"assignments":[8153],"declarations":[{"constant":false,"id":8153,"mutability":"mutable","name":"result","nameLocation":"12650:6:33","nodeType":"VariableDeclaration","scope":8178,"src":"12642:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8152,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8157,"initialValue":{"arguments":[{"id":8155,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"12666:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8154,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[8141,8180],"referencedDeclaration":8141,"src":"12659:6:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":8156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:33"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8158,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8153,"src":"12693:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8159,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8147,"src":"12703:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8160,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"12715:8:33","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$7322_$","typeString":"type(enum Math.Rounding)"}},"id":8161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:33","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":7320,"src":"12715:11:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"src":"12703:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":8163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8164,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8153,"src":"12736:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":8165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:33","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8169,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"12751:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":8173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":8174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:33","trueExpression":{"hexValue":"31","id":8172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":8175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8151,"id":8177,"nodeType":"Return","src":"12686:79:33"}]}]},"documentation":{"id":8142,"nodeType":"StructuredDocumentation","src":"12377:144:33","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":8180,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:33","nodeType":"FunctionDefinition","parameters":{"id":8148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8144,"mutability":"mutable","name":"value","nameLocation":"12550:5:33","nodeType":"VariableDeclaration","scope":8180,"src":"12542:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8143,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8147,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:33","nodeType":"VariableDeclaration","scope":8180,"src":"12557:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"},"typeName":{"id":8146,"nodeType":"UserDefinedTypeName","pathNode":{"id":8145,"name":"Rounding","nameLocations":["12557:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":7322,"src":"12557:8:33"},"referencedDeclaration":7322,"src":"12557:8:33","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$7322","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:33"},"returnParameters":{"id":8151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8180,"src":"12599:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8149,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:33"},"scope":8181,"src":"12526:256:33","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8182,"src":"202:12582:33","usedErrors":[],"usedEvents":[]}],"src":"103:12682:33"},"id":33},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[8286]},"id":8287,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8183,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":8184,"nodeType":"StructuredDocumentation","src":"134:80:34","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":8286,"linearizedBaseContracts":[8286],"name":"SignedMath","nameLocation":"223:10:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":8201,"nodeType":"Block","src":"375:37:34","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8194,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8187,"src":"392:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":8195,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"396:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8198,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"404:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:34","trueExpression":{"id":8197,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8187,"src":"400:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8193,"id":8200,"nodeType":"Return","src":"385:20:34"}]},"documentation":{"id":8185,"nodeType":"StructuredDocumentation","src":"240:66:34","text":" @dev Returns the largest of two signed numbers."},"id":8202,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:34","nodeType":"FunctionDefinition","parameters":{"id":8190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8187,"mutability":"mutable","name":"a","nameLocation":"331:1:34","nodeType":"VariableDeclaration","scope":8202,"src":"324:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8186,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8189,"mutability":"mutable","name":"b","nameLocation":"341:1:34","nodeType":"VariableDeclaration","scope":8202,"src":"334:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8188,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:34"},"returnParameters":{"id":8193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8202,"src":"367:6:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8191,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:34"},"scope":8286,"src":"311:101:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8219,"nodeType":"Block","src":"554:37:34","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8212,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"571:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8213,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"575:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8216,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"583:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:34","trueExpression":{"id":8215,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"579:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8211,"id":8218,"nodeType":"Return","src":"564:20:34"}]},"documentation":{"id":8203,"nodeType":"StructuredDocumentation","src":"418:67:34","text":" @dev Returns the smallest of two signed numbers."},"id":8220,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:34","nodeType":"FunctionDefinition","parameters":{"id":8208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8205,"mutability":"mutable","name":"a","nameLocation":"510:1:34","nodeType":"VariableDeclaration","scope":8220,"src":"503:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8204,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8207,"mutability":"mutable","name":"b","nameLocation":"520:1:34","nodeType":"VariableDeclaration","scope":8220,"src":"513:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8206,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:34"},"returnParameters":{"id":8211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8220,"src":"546:6:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8209,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:34"},"scope":8286,"src":"490:101:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8263,"nodeType":"Block","src":"796:162:34","statements":[{"assignments":[8231],"declarations":[{"constant":false,"id":8231,"mutability":"mutable","name":"x","nameLocation":"865:1:34","nodeType":"VariableDeclaration","scope":8263,"src":"858:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8230,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":8244,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8223,"src":"870:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8233,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8225,"src":"874:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8236,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8223,"src":"881:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8237,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8225,"src":"885:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":8240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:34"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8245,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"910:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8250,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"930:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8248,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:34","typeDescriptions":{}}},"id":8251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":8252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:34","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8246,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:34","typeDescriptions":{}}},"id":8254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8255,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8223,"src":"944:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":8256,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8225,"src":"948:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8258,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":8260,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8229,"id":8262,"nodeType":"Return","src":"903:48:34"}]},"documentation":{"id":8221,"nodeType":"StructuredDocumentation","src":"597:126:34","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":8264,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:34","nodeType":"FunctionDefinition","parameters":{"id":8226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8223,"mutability":"mutable","name":"a","nameLocation":"752:1:34","nodeType":"VariableDeclaration","scope":8264,"src":"745:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8222,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":8225,"mutability":"mutable","name":"b","nameLocation":"762:1:34","nodeType":"VariableDeclaration","scope":8264,"src":"755:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8224,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:34"},"returnParameters":{"id":8229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8264,"src":"788:6:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8227,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:34"},"scope":8286,"src":"728:230:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8284,"nodeType":"Block","src":"1102:158:34","statements":[{"id":8283,"nodeType":"UncheckedBlock","src":"1112:142:34","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8274,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8267,"src":"1227:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":8275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:34","subExpression":{"id":8278,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8267,"src":"1241:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:34","trueExpression":{"id":8277,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8267,"src":"1236:1:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8272,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:34","typeDescriptions":{}}},"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8271,"id":8282,"nodeType":"Return","src":"1212:31:34"}]}]},"documentation":{"id":8265,"nodeType":"StructuredDocumentation","src":"964:78:34","text":" @dev Returns the absolute unsigned value of a signed value."},"id":8285,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:34","nodeType":"FunctionDefinition","parameters":{"id":8268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8267,"mutability":"mutable","name":"n","nameLocation":"1067:1:34","nodeType":"VariableDeclaration","scope":8285,"src":"1060:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8266,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:34"},"returnParameters":{"id":8271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8285,"src":"1093:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:34"},"scope":8286,"src":"1047:213:34","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8287,"src":"215:1047:34","usedErrors":[],"usedEvents":[]}],"src":"109:1154:34"},"id":34},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol":{"ast":{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol","exportedSymbols":{"AccessControl":[5302],"AccessControlManager":[8465],"Context":[7050],"ERC165":[7303],"IAccessControl":[5375],"IAccessControlManagerV8":[8664],"IERC165":[7315],"Math":[8181],"SignedMath":[8286],"Strings":[7279]},"id":8466,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8288,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:35"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":8289,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8466,"sourceUnit":5303,"src":"65:58:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":8290,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8466,"sourceUnit":8665,"src":"124:39:35","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8292,"name":"AccessControl","nameLocations":["2848:13:35"],"nodeType":"IdentifierPath","referencedDeclaration":5302,"src":"2848:13:35"},"id":8293,"nodeType":"InheritanceSpecifier","src":"2848:13:35"},{"baseName":{"id":8294,"name":"IAccessControlManagerV8","nameLocations":["2863:23:35"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"2863:23:35"},"id":8295,"nodeType":"InheritanceSpecifier","src":"2863:23:35"}],"canonicalName":"AccessControlManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":8291,"nodeType":"StructuredDocumentation","src":"165:2649:35","text":" @title AccessControlManager\n @author Venus\n @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\n @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\n account or list of accounts (EOA or Contract Accounts).\n The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\n inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\n contract as a base for role management logic. There are two role types: admin and granular permissions.\n \n ## Granular Roles\n \n Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\n is guarded by ACM, calling `giveRolePermission` for account B do the following:\n \n 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\n 1. Add the computed role to the roles of account B\n 1. Account B now can call `ContractFoo.bar()`\n \n ## Admin Roles\n \n Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\n contracts created by factories.\n \n For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\n \n In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\n ACM, not only contract A.\n \n ## Protocol Integration\n \n All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\n `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\n `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\n```\ncontract Comptroller is [...] AccessControlledV8 {\n[...]\nfunction setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\n_checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\");\n[...]\n}\n}\n```"},"fullyImplemented":true,"id":8465,"linearizedBaseContracts":[8465,8664,5302,7303,7315,5375,7050],"name":"AccessControlManager","nameLocation":"2824:20:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8296,"nodeType":"StructuredDocumentation","src":"2893:260:35","text":"@notice Emitted when an account is given a permission to a certain contract function\n @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\n can call any contract function with this signature"},"eventSelector":"69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f","id":8304,"name":"PermissionGranted","nameLocation":"3164:17:35","nodeType":"EventDefinition","parameters":{"id":8303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8298,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3190:7:35","nodeType":"VariableDeclaration","scope":8304,"src":"3182:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8297,"name":"address","nodeType":"ElementaryTypeName","src":"3182:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8300,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3207:15:35","nodeType":"VariableDeclaration","scope":8304,"src":"3199:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8299,"name":"address","nodeType":"ElementaryTypeName","src":"3199:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8302,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3231:11:35","nodeType":"VariableDeclaration","scope":8304,"src":"3224:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8301,"name":"string","nodeType":"ElementaryTypeName","src":"3224:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3181:62:35"},"src":"3158:86:35"},{"anonymous":false,"documentation":{"id":8305,"nodeType":"StructuredDocumentation","src":"3250:90:35","text":"@notice Emitted when an account is revoked a permission to a certain contract function"},"eventSelector":"55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2","id":8313,"name":"PermissionRevoked","nameLocation":"3351:17:35","nodeType":"EventDefinition","parameters":{"id":8312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8307,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"3377:7:35","nodeType":"VariableDeclaration","scope":8313,"src":"3369:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8306,"name":"address","nodeType":"ElementaryTypeName","src":"3369:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8309,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"3394:15:35","nodeType":"VariableDeclaration","scope":8313,"src":"3386:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8308,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8311,"indexed":false,"mutability":"mutable","name":"functionSig","nameLocation":"3418:11:35","nodeType":"VariableDeclaration","scope":8313,"src":"3411:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8310,"name":"string","nodeType":"ElementaryTypeName","src":"3411:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:62:35"},"src":"3345:86:35"},{"body":{"id":8322,"nodeType":"Block","src":"3451:179:35","statements":[{"expression":{"arguments":[{"id":8317,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"3592:18:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":8318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3612:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3616:6:35","memberName":"sender","nodeType":"MemberAccess","src":"3612:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8316,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5210,"src":"3581:10:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:42:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8321,"nodeType":"ExpressionStatement","src":"3581:42:35"}]},"id":8323,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8314,"nodeType":"ParameterList","parameters":[],"src":"3448:2:35"},"returnParameters":{"id":8315,"nodeType":"ParameterList","parameters":[],"src":"3451:0:35"},"scope":8465,"src":"3437:193:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8634],"body":{"id":8354,"nodeType":"Block","src":"4392:210:35","statements":[{"assignments":[8334],"declarations":[{"constant":false,"id":8334,"mutability":"mutable","name":"role","nameLocation":"4410:4:35","nodeType":"VariableDeclaration","scope":8354,"src":"4402:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4402:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8342,"initialValue":{"arguments":[{"arguments":[{"id":8338,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4444:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8339,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4461:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":8336,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4427:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4431:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"4427:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4427:46:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8335,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4417:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4417:57:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4402:72:35"},{"expression":{"arguments":[{"id":8344,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"4494:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8345,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"4500:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8343,"name":"grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"4484:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4484:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8347,"nodeType":"ExpressionStatement","src":"4484:32:35"},{"eventCall":{"arguments":[{"id":8349,"name":"accountToPermit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"4549:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8350,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4566:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8351,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4583:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8348,"name":"PermissionGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8304,"src":"4531:17:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:64:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8353,"nodeType":"EmitStatement","src":"4526:69:35"}]},"documentation":{"id":8324,"nodeType":"StructuredDocumentation","src":"3636:637:35","text":" @notice Gives a function call permission to one single account\n @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n @param contractAddress address of contract for which call permissions will be granted\n @dev if contractAddress is zero address, the account can access the specified function\n      on **any** contract managed by this ACL\n @param functionSig signature e.g. \"functionName(uint256,bool)\"\n @param accountToPermit account that will be given access to the contract function\n @custom:event Emits a {RoleGranted} and {PermissionGranted} events."},"functionSelector":"584f6b60","id":8355,"implemented":true,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"4287:18:35","nodeType":"FunctionDefinition","parameters":{"id":8331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8326,"mutability":"mutable","name":"contractAddress","nameLocation":"4314:15:35","nodeType":"VariableDeclaration","scope":8355,"src":"4306:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8325,"name":"address","nodeType":"ElementaryTypeName","src":"4306:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8328,"mutability":"mutable","name":"functionSig","nameLocation":"4347:11:35","nodeType":"VariableDeclaration","scope":8355,"src":"4331:27:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8327,"name":"string","nodeType":"ElementaryTypeName","src":"4331:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8330,"mutability":"mutable","name":"accountToPermit","nameLocation":"4368:15:35","nodeType":"VariableDeclaration","scope":8355,"src":"4360:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8329,"name":"address","nodeType":"ElementaryTypeName","src":"4360:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4305:79:35"},"returnParameters":{"id":8332,"nodeType":"ParameterList","parameters":[],"src":"4392:0:35"},"scope":8465,"src":"4278:324:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8643],"body":{"id":8386,"nodeType":"Block","src":"5207:211:35","statements":[{"assignments":[8366],"declarations":[{"constant":false,"id":8366,"mutability":"mutable","name":"role","nameLocation":"5225:4:35","nodeType":"VariableDeclaration","scope":8386,"src":"5217:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5217:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8374,"initialValue":{"arguments":[{"arguments":[{"id":8370,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"5259:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8371,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"5276:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":8368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5242:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5246:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"5242:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5242:46:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8367,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5232:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5232:57:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5217:72:35"},{"expression":{"arguments":[{"id":8376,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8366,"src":"5310:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8377,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8362,"src":"5316:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8375,"name":"revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"5299:10:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5299:33:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8379,"nodeType":"ExpressionStatement","src":"5299:33:35"},{"eventCall":{"arguments":[{"id":8381,"name":"accountToRevoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8362,"src":"5365:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8382,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8358,"src":"5382:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8383,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"5399:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8380,"name":"PermissionRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8313,"src":"5347:17:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory)"}},"id":8384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5347:64:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8385,"nodeType":"EmitStatement","src":"5342:69:35"}]},"documentation":{"id":8356,"nodeType":"StructuredDocumentation","src":"4608:448:35","text":" @notice Revokes an account's permission to a particular function call\n @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\n \t\tMay emit a {RoleRevoked} event.\n @param contractAddress address of contract for which call permissions will be revoked\n @param functionSig signature e.g. \"functionName(uint256,bool)\"\n @custom:event Emits {RoleRevoked} and {PermissionRevoked} events."},"functionSelector":"545f7a32","id":8387,"implemented":true,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"5070:20:35","nodeType":"FunctionDefinition","parameters":{"id":8363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8358,"mutability":"mutable","name":"contractAddress","nameLocation":"5108:15:35","nodeType":"VariableDeclaration","scope":8387,"src":"5100:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8357,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8360,"mutability":"mutable","name":"functionSig","nameLocation":"5149:11:35","nodeType":"VariableDeclaration","scope":8387,"src":"5133:27:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8359,"name":"string","nodeType":"ElementaryTypeName","src":"5133:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8362,"mutability":"mutable","name":"accountToRevoke","nameLocation":"5178:15:35","nodeType":"VariableDeclaration","scope":8387,"src":"5170:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8361,"name":"address","nodeType":"ElementaryTypeName","src":"5170:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5090:109:35"},"returnParameters":{"id":8364,"nodeType":"ParameterList","parameters":[],"src":"5207:0:35"},"scope":8465,"src":"5061:357:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8652],"body":{"id":8435,"nodeType":"Block","src":"5996:291:35","statements":[{"assignments":[8398],"declarations":[{"constant":false,"id":8398,"mutability":"mutable","name":"role","nameLocation":"6014:4:35","nodeType":"VariableDeclaration","scope":8435,"src":"6006:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6006:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8407,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":8402,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6048:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6052:6:35","memberName":"sender","nodeType":"MemberAccess","src":"6048:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8404,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"6060:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":8400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6031:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6035:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"6031:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8399,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6021:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:52:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6006:67:35"},{"condition":{"arguments":[{"id":8409,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"6096:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8410,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8390,"src":"6102:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8408,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"6088:7:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6088:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8433,"nodeType":"Block","src":"6154:127:35","statements":[{"expression":{"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8415,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"6168:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":8421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6210:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6202:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8419,"name":"address","nodeType":"ElementaryTypeName","src":"6202:7:35","typeDescriptions":{}}},"id":8422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6202:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8423,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"6214:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":8417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6185:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6189:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"6185:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8416,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6175:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6175:52:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6168:59:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8427,"nodeType":"ExpressionStatement","src":"6168:59:35"},{"expression":{"arguments":[{"id":8429,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"6256:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8430,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8390,"src":"6262:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8428,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"6248:7:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8396,"id":8432,"nodeType":"Return","src":"6241:29:35"}]},"id":8434,"nodeType":"IfStatement","src":"6084:197:35","trueBody":{"id":8414,"nodeType":"Block","src":"6112:36:35","statements":[{"expression":{"hexValue":"74727565","id":8412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6133:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8396,"id":8413,"nodeType":"Return","src":"6126:11:35"}]}}]},"documentation":{"id":8388,"nodeType":"StructuredDocumentation","src":"5424:469:35","text":" @notice Verifies if the given account can call a contract's guarded function\n @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\n @param account for which call permissions will be checked\n @param functionSig restricted function signature e.g. \"functionName(uint256,bool)\"\n @return false if the user account cannot call the particular contract function"},"functionSelector":"18c5e8ab","id":8436,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"5907:15:35","nodeType":"FunctionDefinition","parameters":{"id":8393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8390,"mutability":"mutable","name":"account","nameLocation":"5931:7:35","nodeType":"VariableDeclaration","scope":8436,"src":"5923:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8389,"name":"address","nodeType":"ElementaryTypeName","src":"5923:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8392,"mutability":"mutable","name":"functionSig","nameLocation":"5956:11:35","nodeType":"VariableDeclaration","scope":8436,"src":"5940:27:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8391,"name":"string","nodeType":"ElementaryTypeName","src":"5940:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5922:46:35"},"returnParameters":{"id":8396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8436,"src":"5990:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8394,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:35"},"scope":8465,"src":"5898:389:35","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[8663],"body":{"id":8463,"nodeType":"Block","src":"6995:128:35","statements":[{"assignments":[8449],"declarations":[{"constant":false,"id":8449,"mutability":"mutable","name":"role","nameLocation":"7013:4:35","nodeType":"VariableDeclaration","scope":8463,"src":"7005:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7005:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8457,"initialValue":{"arguments":[{"arguments":[{"id":8453,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8441,"src":"7047:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8454,"name":"functionSig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8443,"src":"7064:11:35","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":8451,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7030:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7034:12:35","memberName":"encodePacked","nodeType":"MemberAccess","src":"7030:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7030:46:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8450,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7020:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7020:57:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7005:72:35"},{"expression":{"arguments":[{"id":8459,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8449,"src":"7102:4:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8460,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8439,"src":"7108:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8458,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7094:7:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":8461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8447,"id":8462,"nodeType":"Return","src":"7087:29:35"}]},"documentation":{"id":8437,"nodeType":"StructuredDocumentation","src":"6293:546:35","text":" @notice Verifies if the given account can call a contract's guarded function\n @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\n @param account for which call permissions will be checked against\n @param contractAddress address of the restricted contract\n @param functionSig signature of the restricted function e.g. \"functionName(uint256,bool)\"\n @return false if the user account cannot call the particular contract function"},"functionSelector":"82bfd0f0","id":8464,"implemented":true,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"6853:13:35","nodeType":"FunctionDefinition","parameters":{"id":8444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"account","nameLocation":"6884:7:35","nodeType":"VariableDeclaration","scope":8464,"src":"6876:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8438,"name":"address","nodeType":"ElementaryTypeName","src":"6876:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8441,"mutability":"mutable","name":"contractAddress","nameLocation":"6909:15:35","nodeType":"VariableDeclaration","scope":8464,"src":"6901:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8440,"name":"address","nodeType":"ElementaryTypeName","src":"6901:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8443,"mutability":"mutable","name":"functionSig","nameLocation":"6950:11:35","nodeType":"VariableDeclaration","scope":8464,"src":"6934:27:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8442,"name":"string","nodeType":"ElementaryTypeName","src":"6934:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6866:101:35"},"returnParameters":{"id":8447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8464,"src":"6989:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8445,"name":"bool","nodeType":"ElementaryTypeName","src":"6989:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6988:6:35"},"scope":8465,"src":"6844:279:35","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8466,"src":"2815:4310:35","usedErrors":[],"usedEvents":[5314,5323,5332,8304,8313]}],"src":"41:7085:35"},"id":35},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"ast":{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","exportedSymbols":{"AccessControlledV8":[8619],"AddressUpgradeable":[4944],"ContextUpgradeable":[4986],"IAccessControl":[5375],"IAccessControlManagerV8":[8664],"Initializable":[4614],"Ownable2StepUpgradeable":[4313],"OwnableUpgradeable":[4445]},"id":8620,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8467,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:36"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":8468,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8620,"sourceUnit":4615,"src":"66:75:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":8469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8620,"sourceUnit":4314,"src":"142:80:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","file":"./IAccessControlManagerV8.sol","id":8470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8620,"sourceUnit":8665,"src":"224:39:36","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8472,"name":"Initializable","nameLocations":["626:13:36"],"nodeType":"IdentifierPath","referencedDeclaration":4614,"src":"626:13:36"},"id":8473,"nodeType":"InheritanceSpecifier","src":"626:13:36"},{"baseName":{"id":8474,"name":"Ownable2StepUpgradeable","nameLocations":["641:23:36"],"nodeType":"IdentifierPath","referencedDeclaration":4313,"src":"641:23:36"},"id":8475,"nodeType":"InheritanceSpecifier","src":"641:23:36"}],"canonicalName":"AccessControlledV8","contractDependencies":[],"contractKind":"contract","documentation":{"id":8471,"nodeType":"StructuredDocumentation","src":"265:320:36","text":" @title AccessControlledV8\n @author Venus\n @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\n to integrate access controlled mechanism. It provides initialise methods and verifying access methods."},"fullyImplemented":true,"id":8619,"linearizedBaseContracts":[8619,4313,4445,4986,4614],"name":"AccessControlledV8","nameLocation":"604:18:36","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":8476,"nodeType":"StructuredDocumentation","src":"671:43:36","text":"@notice Access control manager contract"},"id":8479,"mutability":"mutable","name":"_accessControlManager","nameLocation":"752:21:36","nodeType":"VariableDeclaration","scope":8619,"src":"719:54:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8478,"nodeType":"UserDefinedTypeName","pathNode":{"id":8477,"name":"IAccessControlManagerV8","nameLocations":["719:23:36"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"719:23:36"},"referencedDeclaration":8664,"src":"719:23:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"},{"constant":false,"documentation":{"id":8480,"nodeType":"StructuredDocumentation","src":"780:254:36","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":8484,"mutability":"mutable","name":"__gap","nameLocation":"1059:5:36","nodeType":"VariableDeclaration","scope":8619,"src":"1039:25:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":8481,"name":"uint256","nodeType":"ElementaryTypeName","src":"1039:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8483,"length":{"hexValue":"3439","id":8482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1047:2:36","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1039:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":8485,"nodeType":"StructuredDocumentation","src":"1071:75:36","text":"@notice Emitted when access control manager contract address is changed"},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":8491,"name":"NewAccessControlManager","nameLocation":"1157:23:36","nodeType":"EventDefinition","parameters":{"id":8490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"indexed":false,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"1189:23:36","nodeType":"VariableDeclaration","scope":8491,"src":"1181:31:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8486,"name":"address","nodeType":"ElementaryTypeName","src":"1181:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8489,"indexed":false,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"1222:23:36","nodeType":"VariableDeclaration","scope":8491,"src":"1214:31:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8488,"name":"address","nodeType":"ElementaryTypeName","src":"1214:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1180:66:36"},"src":"1151:96:36"},{"documentation":{"id":8492,"nodeType":"StructuredDocumentation","src":"1253:72:36","text":"@notice Thrown when the action is prohibited by AccessControlManager"},"errorSelector":"4a3fa293","id":8500,"name":"Unauthorized","nameLocation":"1336:12:36","nodeType":"ErrorDefinition","parameters":{"id":8499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8494,"mutability":"mutable","name":"sender","nameLocation":"1357:6:36","nodeType":"VariableDeclaration","scope":8500,"src":"1349:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8493,"name":"address","nodeType":"ElementaryTypeName","src":"1349:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8496,"mutability":"mutable","name":"calledContract","nameLocation":"1373:14:36","nodeType":"VariableDeclaration","scope":8500,"src":"1365:22:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8495,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8498,"mutability":"mutable","name":"methodSignature","nameLocation":"1396:15:36","nodeType":"VariableDeclaration","scope":8500,"src":"1389:22:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8497,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1348:64:36"},"src":"1330:83:36"},{"body":{"id":8514,"nodeType":"Block","src":"1509:104:36","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8507,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"1519:19:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8509,"nodeType":"ExpressionStatement","src":"1519:21:36"},{"expression":{"arguments":[{"id":8511,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8502,"src":"1584:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8510,"name":"__AccessControlled_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"1550:33:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1550:56:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8513,"nodeType":"ExpressionStatement","src":"1550:56:36"}]},"id":8515,"implemented":true,"kind":"function","modifiers":[{"id":8505,"kind":"modifierInvocation","modifierName":{"id":8504,"name":"onlyInitializing","nameLocations":["1492:16:36"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"1492:16:36"},"nodeType":"ModifierInvocation","src":"1492:16:36"}],"name":"__AccessControlled_init","nameLocation":"1428:23:36","nodeType":"FunctionDefinition","parameters":{"id":8503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8502,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1460:21:36","nodeType":"VariableDeclaration","scope":8515,"src":"1452:29:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8501,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1451:31:36"},"returnParameters":{"id":8506,"nodeType":"ParameterList","parameters":[],"src":"1509:0:36"},"scope":8619,"src":"1419:194:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8526,"nodeType":"Block","src":"1719:64:36","statements":[{"expression":{"arguments":[{"id":8523,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"1754:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8522,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"1729:24:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:47:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8525,"nodeType":"ExpressionStatement","src":"1729:47:36"}]},"id":8527,"implemented":true,"kind":"function","modifiers":[{"id":8520,"kind":"modifierInvocation","modifierName":{"id":8519,"name":"onlyInitializing","nameLocations":["1702:16:36"],"nodeType":"IdentifierPath","referencedDeclaration":4559,"src":"1702:16:36"},"nodeType":"ModifierInvocation","src":"1702:16:36"}],"name":"__AccessControlled_init_unchained","nameLocation":"1628:33:36","nodeType":"FunctionDefinition","parameters":{"id":8518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8517,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1670:21:36","nodeType":"VariableDeclaration","scope":8527,"src":"1662:29:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8516,"name":"address","nodeType":"ElementaryTypeName","src":"1662:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1661:31:36"},"returnParameters":{"id":8521,"nodeType":"ParameterList","parameters":[],"src":"1719:0:36"},"scope":8619,"src":"1619:164:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8539,"nodeType":"Block","src":"2185:64:36","statements":[{"expression":{"arguments":[{"id":8536,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8530,"src":"2220:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8535,"name":"_setAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"2195:24:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2195:47:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8538,"nodeType":"ExpressionStatement","src":"2195:47:36"}]},"documentation":{"id":8528,"nodeType":"StructuredDocumentation","src":"1789:308:36","text":" @notice Sets the address of AccessControlManager\n @dev Admin function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager\n @custom:event Emits NewAccessControlManager event\n @custom:access Only Governance"},"functionSelector":"0e32cb86","id":8540,"implemented":true,"kind":"function","modifiers":[{"id":8533,"kind":"modifierInvocation","modifierName":{"id":8532,"name":"onlyOwner","nameLocations":["2175:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":4359,"src":"2175:9:36"},"nodeType":"ModifierInvocation","src":"2175:9:36"}],"name":"setAccessControlManager","nameLocation":"2111:23:36","nodeType":"FunctionDefinition","parameters":{"id":8531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8530,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2143:21:36","nodeType":"VariableDeclaration","scope":8540,"src":"2135:29:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8529,"name":"address","nodeType":"ElementaryTypeName","src":"2135:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2134:31:36"},"returnParameters":{"id":8534,"nodeType":"ParameterList","parameters":[],"src":"2185:0:36"},"scope":8619,"src":"2102:147:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8549,"nodeType":"Block","src":"2425:45:36","statements":[{"expression":{"id":8547,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8479,"src":"2442:21:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"functionReturnParameters":8546,"id":8548,"nodeType":"Return","src":"2435:28:36"}]},"documentation":{"id":8541,"nodeType":"StructuredDocumentation","src":"2255:85:36","text":" @notice Returns the address of the access control manager contract"},"functionSelector":"b4a0bdf3","id":8550,"implemented":true,"kind":"function","modifiers":[],"name":"accessControlManager","nameLocation":"2354:20:36","nodeType":"FunctionDefinition","parameters":{"id":8542,"nodeType":"ParameterList","parameters":[],"src":"2374:2:36"},"returnParameters":{"id":8546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8550,"src":"2400:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"},"typeName":{"id":8544,"nodeType":"UserDefinedTypeName","pathNode":{"id":8543,"name":"IAccessControlManagerV8","nameLocations":["2400:23:36"],"nodeType":"IdentifierPath","referencedDeclaration":8664,"src":"2400:23:36"},"referencedDeclaration":8664,"src":"2400:23:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"visibility":"internal"}],"src":"2399:25:36"},"scope":8619,"src":"2345:125:36","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":8587,"nodeType":"Block","src":"2715:351:36","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8559,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"2741:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2733:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8557,"name":"address","nodeType":"ElementaryTypeName","src":"2733:7:36","typeDescriptions":{}}},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2733:30:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2775:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8561,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:36","typeDescriptions":{}}},"id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2733:44:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e616765722061646472657373","id":8566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2779:39:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""},"value":"invalid acess control manager address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","typeString":"literal_string \"invalid acess control manager address\""}],"id":8556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2725:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2725:94:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"ExpressionStatement","src":"2725:94:36"},{"assignments":[8570],"declarations":[{"constant":false,"id":8570,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"2837:23:36","nodeType":"VariableDeclaration","scope":8587,"src":"2829:31:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8569,"name":"address","nodeType":"ElementaryTypeName","src":"2829:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8575,"initialValue":{"arguments":[{"id":8573,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8479,"src":"2871:21:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}],"id":8572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2863:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8571,"name":"address","nodeType":"ElementaryTypeName","src":"2863:7:36","typeDescriptions":{}}},"id":8574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2863:30:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2829:64:36"},{"expression":{"id":8580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8576,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8479,"src":"2903:21:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8578,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"2951:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8577,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8664,"src":"2927:23:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$8664_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":8579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2927:46:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"src":"2903:70:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"id":8581,"nodeType":"ExpressionStatement","src":"2903:70:36"},{"eventCall":{"arguments":[{"id":8583,"name":"oldAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"3012:23:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8584,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"3037:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8582,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8491,"src":"2988:23:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":8585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2988:71:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8586,"nodeType":"EmitStatement","src":"2983:76:36"}]},"documentation":{"id":8551,"nodeType":"StructuredDocumentation","src":"2476:160:36","text":" @dev Internal function to set address of AccessControlManager\n @param accessControlManager_ The new address of the AccessControlManager"},"id":8588,"implemented":true,"kind":"function","modifiers":[],"name":"_setAccessControlManager","nameLocation":"2650:24:36","nodeType":"FunctionDefinition","parameters":{"id":8554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8553,"mutability":"mutable","name":"accessControlManager_","nameLocation":"2683:21:36","nodeType":"VariableDeclaration","scope":8588,"src":"2675:29:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8552,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2674:31:36"},"returnParameters":{"id":8555,"nodeType":"ParameterList","parameters":[],"src":"2715:0:36"},"scope":8619,"src":"2641:425:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8617,"nodeType":"Block","src":"3271:214:36","statements":[{"assignments":[8595],"declarations":[{"constant":false,"id":8595,"mutability":"mutable","name":"isAllowedToCall","nameLocation":"3286:15:36","nodeType":"VariableDeclaration","scope":8617,"src":"3281:20:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8594,"name":"bool","nodeType":"ElementaryTypeName","src":"3281:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8602,"initialValue":{"arguments":[{"expression":{"id":8598,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3342:3:36","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3346:6:36","memberName":"sender","nodeType":"MemberAccess","src":"3342:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8600,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3354:9:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8596,"name":"_accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8479,"src":"3304:21:36","typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:15:36","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":8652,"src":"3304:37:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3304:60:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3281:83:36"},{"condition":{"id":8604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3379:16:36","subExpression":{"id":8603,"name":"isAllowedToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8595,"src":"3380:15:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8616,"nodeType":"IfStatement","src":"3375:104:36","trueBody":{"id":8615,"nodeType":"Block","src":"3397:82:36","statements":[{"errorCall":{"arguments":[{"expression":{"id":8606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3431:3:36","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3435:6:36","memberName":"sender","nodeType":"MemberAccess","src":"3431:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8610,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3451:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_AccessControlledV8_$8619","typeString":"contract AccessControlledV8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AccessControlledV8_$8619","typeString":"contract AccessControlledV8"}],"id":8609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3443:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8608,"name":"address","nodeType":"ElementaryTypeName","src":"3443:7:36","typeDescriptions":{}}},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8612,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3458:9:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8605,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"3418:12:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure"}},"id":8613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:50:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8614,"nodeType":"RevertStatement","src":"3411:57:36"}]}}]},"documentation":{"id":8589,"nodeType":"StructuredDocumentation","src":"3072:126:36","text":" @notice Reverts if the call is not allowed by AccessControlManager\n @param signature Method signature"},"id":8618,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAccessAllowed","nameLocation":"3212:19:36","nodeType":"FunctionDefinition","parameters":{"id":8592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"mutability":"mutable","name":"signature","nameLocation":"3246:9:36","nodeType":"VariableDeclaration","scope":8618,"src":"3232:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8590,"name":"string","nodeType":"ElementaryTypeName","src":"3232:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3231:25:36"},"returnParameters":{"id":8593,"nodeType":"ParameterList","parameters":[],"src":"3271:0:36"},"scope":8619,"src":"3203:282:36","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":8620,"src":"586:2901:36","usedErrors":[8500],"usedEvents":[4239,4330,4460,8491]}],"src":"41:3447:36"},"id":36},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"ast":{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","exportedSymbols":{"IAccessControl":[5375],"IAccessControlManagerV8":[8664]},"id":8665,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8621,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:37"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":8622,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8665,"sourceUnit":5376,"src":"67:59:37","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8624,"name":"IAccessControl","nameLocations":["299:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":5375,"src":"299:14:37"},"id":8625,"nodeType":"InheritanceSpecifier","src":"299:14:37"}],"canonicalName":"IAccessControlManagerV8","contractDependencies":[],"contractKind":"interface","documentation":{"id":8623,"nodeType":"StructuredDocumentation","src":"128:133:37","text":" @title IAccessControlManagerV8\n @author Venus\n @notice Interface implemented by the `AccessControlManagerV8` contract."},"fullyImplemented":false,"id":8664,"linearizedBaseContracts":[8664,5375],"name":"IAccessControlManagerV8","nameLocation":"272:23:37","nodeType":"ContractDefinition","nodes":[{"functionSelector":"584f6b60","id":8634,"implemented":false,"kind":"function","modifiers":[],"name":"giveCallPermission","nameLocation":"329:18:37","nodeType":"FunctionDefinition","parameters":{"id":8632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8627,"mutability":"mutable","name":"contractAddress","nameLocation":"356:15:37","nodeType":"VariableDeclaration","scope":8634,"src":"348:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8626,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8629,"mutability":"mutable","name":"functionSig","nameLocation":"389:11:37","nodeType":"VariableDeclaration","scope":8634,"src":"373:27:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8628,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8631,"mutability":"mutable","name":"accountToPermit","nameLocation":"410:15:37","nodeType":"VariableDeclaration","scope":8634,"src":"402:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8630,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:79:37"},"returnParameters":{"id":8633,"nodeType":"ParameterList","parameters":[],"src":"435:0:37"},"scope":8664,"src":"320:116:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"545f7a32","id":8643,"implemented":false,"kind":"function","modifiers":[],"name":"revokeCallPermission","nameLocation":"451:20:37","nodeType":"FunctionDefinition","parameters":{"id":8641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8636,"mutability":"mutable","name":"contractAddress","nameLocation":"489:15:37","nodeType":"VariableDeclaration","scope":8643,"src":"481:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8635,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8638,"mutability":"mutable","name":"functionSig","nameLocation":"530:11:37","nodeType":"VariableDeclaration","scope":8643,"src":"514:27:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8637,"name":"string","nodeType":"ElementaryTypeName","src":"514:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8640,"mutability":"mutable","name":"accountToRevoke","nameLocation":"559:15:37","nodeType":"VariableDeclaration","scope":8643,"src":"551:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8639,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"471:109:37"},"returnParameters":{"id":8642,"nodeType":"ParameterList","parameters":[],"src":"589:0:37"},"scope":8664,"src":"442:148:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18c5e8ab","id":8652,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowedToCall","nameLocation":"605:15:37","nodeType":"FunctionDefinition","parameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8645,"mutability":"mutable","name":"account","nameLocation":"629:7:37","nodeType":"VariableDeclaration","scope":8652,"src":"621:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8644,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8647,"mutability":"mutable","name":"functionSig","nameLocation":"654:11:37","nodeType":"VariableDeclaration","scope":8652,"src":"638:27:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8646,"name":"string","nodeType":"ElementaryTypeName","src":"638:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"620:46:37"},"returnParameters":{"id":8651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8652,"src":"690:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8649,"name":"bool","nodeType":"ElementaryTypeName","src":"690:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"689:6:37"},"scope":8664,"src":"596:100:37","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"82bfd0f0","id":8663,"implemented":false,"kind":"function","modifiers":[],"name":"hasPermission","nameLocation":"711:13:37","nodeType":"FunctionDefinition","parameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8654,"mutability":"mutable","name":"account","nameLocation":"742:7:37","nodeType":"VariableDeclaration","scope":8663,"src":"734:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8653,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8656,"mutability":"mutable","name":"contractAddress","nameLocation":"767:15:37","nodeType":"VariableDeclaration","scope":8663,"src":"759:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8655,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8658,"mutability":"mutable","name":"functionSig","nameLocation":"808:11:37","nodeType":"VariableDeclaration","scope":8663,"src":"792:27:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8657,"name":"string","nodeType":"ElementaryTypeName","src":"792:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:101:37"},"returnParameters":{"id":8662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8663,"src":"849:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8660,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"848:6:37"},"scope":8664,"src":"702:153:37","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8665,"src":"262:595:37","usedErrors":[],"usedEvents":[5314,5323,5332]}],"src":"41:817:37"},"id":37},"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol","exportedSymbols":{"BoundValidatorInterface":[8706],"OracleInterface":[8674],"ResilientOracleInterface":[8694]},"id":8707,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8666,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:38"},{"abstract":false,"baseContracts":[],"canonicalName":"OracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8674,"linearizedBaseContracts":[8674],"name":"OracleInterface","nameLocation":"77:15:38","nodeType":"ContractDefinition","nodes":[{"functionSelector":"41976e09","id":8673,"implemented":false,"kind":"function","modifiers":[],"name":"getPrice","nameLocation":"108:8:38","nodeType":"FunctionDefinition","parameters":{"id":8669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"mutability":"mutable","name":"asset","nameLocation":"125:5:38","nodeType":"VariableDeclaration","scope":8673,"src":"117:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8667,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"116:15:38"},"returnParameters":{"id":8672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8673,"src":"155:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8670,"name":"uint256","nodeType":"ElementaryTypeName","src":"155:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"154:9:38"},"scope":8674,"src":"99:65:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8707,"src":"67:99:38","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":8675,"name":"OracleInterface","nameLocations":["206:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":8674,"src":"206:15:38"},"id":8676,"nodeType":"InheritanceSpecifier","src":"206:15:38"}],"canonicalName":"ResilientOracleInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8694,"linearizedBaseContracts":[8694,8674],"name":"ResilientOracleInterface","nameLocation":"178:24:38","nodeType":"ContractDefinition","nodes":[{"functionSelector":"96e85ced","id":8681,"implemented":false,"kind":"function","modifiers":[],"name":"updatePrice","nameLocation":"237:11:38","nodeType":"FunctionDefinition","parameters":{"id":8679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8678,"mutability":"mutable","name":"vToken","nameLocation":"257:6:38","nodeType":"VariableDeclaration","scope":8681,"src":"249:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8677,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"248:16:38"},"returnParameters":{"id":8680,"nodeType":"ParameterList","parameters":[],"src":"273:0:38"},"scope":8694,"src":"228:46:38","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b62cad69","id":8686,"implemented":false,"kind":"function","modifiers":[],"name":"updateAssetPrice","nameLocation":"289:16:38","nodeType":"FunctionDefinition","parameters":{"id":8684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8683,"mutability":"mutable","name":"asset","nameLocation":"314:5:38","nodeType":"VariableDeclaration","scope":8686,"src":"306:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8682,"name":"address","nodeType":"ElementaryTypeName","src":"306:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"305:15:38"},"returnParameters":{"id":8685,"nodeType":"ParameterList","parameters":[],"src":"329:0:38"},"scope":8694,"src":"280:50:38","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fc57d4df","id":8693,"implemented":false,"kind":"function","modifiers":[],"name":"getUnderlyingPrice","nameLocation":"345:18:38","nodeType":"FunctionDefinition","parameters":{"id":8689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8688,"mutability":"mutable","name":"vToken","nameLocation":"372:6:38","nodeType":"VariableDeclaration","scope":8693,"src":"364:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8687,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"363:16:38"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8693,"src":"403:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8690,"name":"uint256","nodeType":"ElementaryTypeName","src":"403:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:9:38"},"scope":8694,"src":"336:76:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8707,"src":"168:246:38","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"BoundValidatorInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8706,"linearizedBaseContracts":[8706],"name":"BoundValidatorInterface","nameLocation":"426:23:38","nodeType":"ContractDefinition","nodes":[{"functionSelector":"97c7033e","id":8705,"implemented":false,"kind":"function","modifiers":[],"name":"validatePriceWithAnchorPrice","nameLocation":"465:28:38","nodeType":"FunctionDefinition","parameters":{"id":8701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8696,"mutability":"mutable","name":"asset","nameLocation":"511:5:38","nodeType":"VariableDeclaration","scope":8705,"src":"503:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8695,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8698,"mutability":"mutable","name":"reporterPrice","nameLocation":"534:13:38","nodeType":"VariableDeclaration","scope":8705,"src":"526:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8697,"name":"uint256","nodeType":"ElementaryTypeName","src":"526:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8700,"mutability":"mutable","name":"anchorPrice","nameLocation":"565:11:38","nodeType":"VariableDeclaration","scope":8705,"src":"557:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8699,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:89:38"},"returnParameters":{"id":8704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8705,"src":"606:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8702,"name":"bool","nodeType":"ElementaryTypeName","src":"606:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"605:6:38"},"scope":8706,"src":"456:156:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8707,"src":"416:198:38","usedErrors":[],"usedEvents":[]}],"src":"41:574:38"},"id":38},"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol","exportedSymbols":{"EXP_SCALE_":[9299],"ExponentialNoError":[9293],"MANTISSA_ONE_":[9303]},"id":9294,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":8708,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:39"},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","file":"./constants.sol","id":8711,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9294,"sourceUnit":9308,"src":"66:89:39","symbolAliases":[{"foreign":{"id":8709,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"75:9:39","typeDescriptions":{}},"local":"EXP_SCALE_","nameLocation":"-1:-1:-1"},{"foreign":{"id":8710,"name":"MANTISSA_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9303,"src":"100:12:39","typeDescriptions":{}},"local":"MANTISSA_ONE_","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ExponentialNoError","contractDependencies":[],"contractKind":"contract","documentation":{"id":8712,"nodeType":"StructuredDocumentation","src":"157:324:39","text":" @title Exponential module for storing fixed-precision decimals\n @author Compound\n @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\n         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\n         `Exp({mantissa: 5100000000000000000})`."},"fullyImplemented":true,"id":9293,"linearizedBaseContracts":[9293],"name":"ExponentialNoError","nameLocation":"491:18:39","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ExponentialNoError.Exp","id":8715,"members":[{"constant":false,"id":8714,"mutability":"mutable","name":"mantissa","nameLocation":"545:8:39","nodeType":"VariableDeclaration","scope":8715,"src":"537:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8713,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Exp","nameLocation":"523:3:39","nodeType":"StructDefinition","scope":9293,"src":"516:44:39","visibility":"public"},{"canonicalName":"ExponentialNoError.Double","id":8718,"members":[{"constant":false,"id":8717,"mutability":"mutable","name":"mantissa","nameLocation":"598:8:39","nodeType":"VariableDeclaration","scope":8718,"src":"590:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8716,"name":"uint256","nodeType":"ElementaryTypeName","src":"590:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Double","nameLocation":"573:6:39","nodeType":"StructDefinition","scope":9293,"src":"566:47:39","visibility":"public"},{"constant":true,"id":8721,"mutability":"constant","name":"EXP_SCALE","nameLocation":"645:9:39","nodeType":"VariableDeclaration","scope":9293,"src":"619:48:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8719,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":8720,"name":"EXP_SCALE_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"657:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":8724,"mutability":"constant","name":"DOUBLE_SCALE","nameLocation":"699:12:39","nodeType":"VariableDeclaration","scope":9293,"src":"673:45:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8722,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653336","id":8723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"714:4:39","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(29 digits omitted)...0000"},"value":"1e36"},"visibility":"internal"},{"constant":true,"id":8729,"mutability":"constant","name":"HALF_EXP_SCALE","nameLocation":"750:14:39","nodeType":"VariableDeclaration","scope":9293,"src":"724:56:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8725,"name":"uint256","nodeType":"ElementaryTypeName","src":"724:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":8726,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"767:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":8727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"767:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":8732,"mutability":"constant","name":"MANTISSA_ONE","nameLocation":"812:12:39","nodeType":"VariableDeclaration","scope":9293,"src":"786:54:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8730,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":8731,"name":"MANTISSA_ONE_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9303,"src":"827:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"body":{"id":8746,"nodeType":"Block","src":"1060:148:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8741,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"1177:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1181:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"1177:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":8743,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"1192:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1177:24:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8740,"id":8745,"nodeType":"Return","src":"1170:31:39"}]},"documentation":{"id":8733,"nodeType":"StructuredDocumentation","src":"847:142:39","text":" @dev Truncates the given exp to a whole number value.\n      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15"},"id":8747,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"1003:8:39","nodeType":"FunctionDefinition","parameters":{"id":8737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8736,"mutability":"mutable","name":"exp","nameLocation":"1023:3:39","nodeType":"VariableDeclaration","scope":8747,"src":"1012:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8735,"nodeType":"UserDefinedTypeName","pathNode":{"id":8734,"name":"Exp","nameLocations":["1012:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"1012:3:39"},"referencedDeclaration":8715,"src":"1012:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"1011:16:39"},"returnParameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8747,"src":"1051:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1051:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1050:9:39"},"scope":9293,"src":"994:214:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8770,"nodeType":"Block","src":"1459:87:39","statements":[{"assignments":[8760],"declarations":[{"constant":false,"id":8760,"mutability":"mutable","name":"product","nameLocation":"1480:7:39","nodeType":"VariableDeclaration","scope":8770,"src":"1469:18:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8759,"nodeType":"UserDefinedTypeName","pathNode":{"id":8758,"name":"Exp","nameLocations":["1469:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"1469:3:39"},"referencedDeclaration":8715,"src":"1469:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"id":8765,"initialValue":{"arguments":[{"id":8762,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"1495:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},{"id":8763,"name":"scalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"1498:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8761,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9031,"src":"1490:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$_t_uint256_$returns$_t_struct$_Exp_$8715_memory_ptr_$","typeString":"function (struct ExponentialNoError.Exp memory,uint256) pure returns (struct ExponentialNoError.Exp memory)"}},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1490:15:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"nodeType":"VariableDeclarationStatement","src":"1469:36:39"},{"expression":{"arguments":[{"id":8767,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8760,"src":"1531:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}],"id":8766,"name":"truncate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1522:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct ExponentialNoError.Exp memory) pure returns (uint256)"}},"id":8768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1522:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8757,"id":8769,"nodeType":"Return","src":"1515:24:39"}]},"documentation":{"id":8748,"nodeType":"StructuredDocumentation","src":"1214:97:39","text":" @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer."},"id":8771,"implemented":true,"kind":"function","modifiers":[],"name":"mul_ScalarTruncate","nameLocation":"1378:18:39","nodeType":"FunctionDefinition","parameters":{"id":8754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"a","nameLocation":"1408:1:39","nodeType":"VariableDeclaration","scope":8771,"src":"1397:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8750,"nodeType":"UserDefinedTypeName","pathNode":{"id":8749,"name":"Exp","nameLocations":["1397:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"1397:3:39"},"referencedDeclaration":8715,"src":"1397:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8753,"mutability":"mutable","name":"scalar","nameLocation":"1419:6:39","nodeType":"VariableDeclaration","scope":8771,"src":"1411:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1411:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1396:30:39"},"returnParameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8771,"src":"1450:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8755,"name":"uint256","nodeType":"ElementaryTypeName","src":"1450:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1449:9:39"},"scope":9293,"src":"1369:177:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8799,"nodeType":"Block","src":"1852:101:39","statements":[{"assignments":[8786],"declarations":[{"constant":false,"id":8786,"mutability":"mutable","name":"product","nameLocation":"1873:7:39","nodeType":"VariableDeclaration","scope":8799,"src":"1862:18:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8785,"nodeType":"UserDefinedTypeName","pathNode":{"id":8784,"name":"Exp","nameLocations":["1862:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"1862:3:39"},"referencedDeclaration":8715,"src":"1862:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"id":8791,"initialValue":{"arguments":[{"id":8788,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8775,"src":"1888:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},{"id":8789,"name":"scalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8777,"src":"1891:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8787,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9031,"src":"1883:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$_t_uint256_$returns$_t_struct$_Exp_$8715_memory_ptr_$","typeString":"function (struct ExponentialNoError.Exp memory,uint256) pure returns (struct ExponentialNoError.Exp memory)"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1883:15:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"nodeType":"VariableDeclarationStatement","src":"1862:36:39"},{"expression":{"arguments":[{"arguments":[{"id":8794,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1929:7:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}],"id":8793,"name":"truncate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1920:8:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct ExponentialNoError.Exp memory) pure returns (uint256)"}},"id":8795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8796,"name":"addend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8779,"src":"1939:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8792,"name":"add_","nodeType":"Identifier","overloadedDeclarations":[8893,8915,8929],"referencedDeclaration":8929,"src":"1915:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1915:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8783,"id":8798,"nodeType":"Return","src":"1908:38:39"}]},"documentation":{"id":8772,"nodeType":"StructuredDocumentation","src":"1552:129:39","text":" @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer."},"id":8800,"implemented":true,"kind":"function","modifiers":[],"name":"mul_ScalarTruncateAddUInt","nameLocation":"1748:25:39","nodeType":"FunctionDefinition","parameters":{"id":8780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8775,"mutability":"mutable","name":"a","nameLocation":"1785:1:39","nodeType":"VariableDeclaration","scope":8800,"src":"1774:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8774,"nodeType":"UserDefinedTypeName","pathNode":{"id":8773,"name":"Exp","nameLocations":["1774:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"1774:3:39"},"referencedDeclaration":8715,"src":"1774:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8777,"mutability":"mutable","name":"scalar","nameLocation":"1796:6:39","nodeType":"VariableDeclaration","scope":8800,"src":"1788:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8776,"name":"uint256","nodeType":"ElementaryTypeName","src":"1788:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8779,"mutability":"mutable","name":"addend","nameLocation":"1812:6:39","nodeType":"VariableDeclaration","scope":8800,"src":"1804:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8778,"name":"uint256","nodeType":"ElementaryTypeName","src":"1804:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1773:46:39"},"returnParameters":{"id":8783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8800,"src":"1843:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8781,"name":"uint256","nodeType":"ElementaryTypeName","src":"1843:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1842:9:39"},"scope":9293,"src":"1739:214:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8818,"nodeType":"Block","src":"2117:54:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8812,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8804,"src":"2134:4:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2139:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"2134:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8814,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8807,"src":"2150:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2156:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"2150:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2134:30:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8811,"id":8817,"nodeType":"Return","src":"2127:37:39"}]},"documentation":{"id":8801,"nodeType":"StructuredDocumentation","src":"1959:68:39","text":" @dev Checks if first Exp is less than second Exp."},"id":8819,"implemented":true,"kind":"function","modifiers":[],"name":"lessThanExp","nameLocation":"2041:11:39","nodeType":"FunctionDefinition","parameters":{"id":8808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8804,"mutability":"mutable","name":"left","nameLocation":"2064:4:39","nodeType":"VariableDeclaration","scope":8819,"src":"2053:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8803,"nodeType":"UserDefinedTypeName","pathNode":{"id":8802,"name":"Exp","nameLocations":["2053:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2053:3:39"},"referencedDeclaration":8715,"src":"2053:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8807,"mutability":"mutable","name":"right","nameLocation":"2081:5:39","nodeType":"VariableDeclaration","scope":8819,"src":"2070:16:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8806,"nodeType":"UserDefinedTypeName","pathNode":{"id":8805,"name":"Exp","nameLocations":["2070:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2070:3:39"},"referencedDeclaration":8715,"src":"2070:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"2052:35:39"},"returnParameters":{"id":8811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8819,"src":"2111:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8809,"name":"bool","nodeType":"ElementaryTypeName","src":"2111:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2110:6:39"},"scope":9293,"src":"2032:139:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8844,"nodeType":"Block","src":"2265:89:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8829,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8821,"src":"2283:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2293:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8831,"name":"uint224","nodeType":"ElementaryTypeName","src":"2293:7:39","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":8830,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2288:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":8834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2302:3:39","memberName":"max","nodeType":"MemberAccess","src":"2288:17:39","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2283:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8836,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8823,"src":"2307:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2275:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2275:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8838,"nodeType":"ExpressionStatement","src":"2275:45:39"},{"expression":{"arguments":[{"id":8841,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8821,"src":"2345:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2337:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":8839,"name":"uint224","nodeType":"ElementaryTypeName","src":"2337:7:39","typeDescriptions":{}}},"id":8842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2337:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":8827,"id":8843,"nodeType":"Return","src":"2330:17:39"}]},"id":8845,"implemented":true,"kind":"function","modifiers":[],"name":"safe224","nameLocation":"2186:7:39","nodeType":"FunctionDefinition","parameters":{"id":8824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8821,"mutability":"mutable","name":"n","nameLocation":"2202:1:39","nodeType":"VariableDeclaration","scope":8845,"src":"2194:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8820,"name":"uint256","nodeType":"ElementaryTypeName","src":"2194:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8823,"mutability":"mutable","name":"errorMessage","nameLocation":"2219:12:39","nodeType":"VariableDeclaration","scope":8845,"src":"2205:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8822,"name":"string","nodeType":"ElementaryTypeName","src":"2205:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2193:39:39"},"returnParameters":{"id":8827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8845,"src":"2256:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8825,"name":"uint224","nodeType":"ElementaryTypeName","src":"2256:7:39","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2255:9:39"},"scope":9293,"src":"2177:177:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8870,"nodeType":"Block","src":"2446:87:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8855,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8847,"src":"2464:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":8858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2474:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":8857,"name":"uint32","nodeType":"ElementaryTypeName","src":"2474:6:39","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":8856,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2469:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2469:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":8860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2482:3:39","memberName":"max","nodeType":"MemberAccess","src":"2469:16:39","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2464:21:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8862,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8849,"src":"2487:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2456:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2456:44:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8864,"nodeType":"ExpressionStatement","src":"2456:44:39"},{"expression":{"arguments":[{"id":8867,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8847,"src":"2524:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":8865,"name":"uint32","nodeType":"ElementaryTypeName","src":"2517:6:39","typeDescriptions":{}}},"id":8868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:9:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":8853,"id":8869,"nodeType":"Return","src":"2510:16:39"}]},"id":8871,"implemented":true,"kind":"function","modifiers":[],"name":"safe32","nameLocation":"2369:6:39","nodeType":"FunctionDefinition","parameters":{"id":8850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"n","nameLocation":"2384:1:39","nodeType":"VariableDeclaration","scope":8871,"src":"2376:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8846,"name":"uint256","nodeType":"ElementaryTypeName","src":"2376:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8849,"mutability":"mutable","name":"errorMessage","nameLocation":"2401:12:39","nodeType":"VariableDeclaration","scope":8871,"src":"2387:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8848,"name":"string","nodeType":"ElementaryTypeName","src":"2387:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2375:39:39"},"returnParameters":{"id":8853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8871,"src":"2438:6:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8851,"name":"uint32","nodeType":"ElementaryTypeName","src":"2438:6:39","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2437:8:39"},"scope":9293,"src":"2360:173:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8892,"nodeType":"Block","src":"2616:71:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8885,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8874,"src":"2654:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2656:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"2654:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8887,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8877,"src":"2666:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2668:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"2666:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8884,"name":"add_","nodeType":"Identifier","overloadedDeclarations":[8893,8915,8929],"referencedDeclaration":8929,"src":"2649:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8883,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"2633:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":8890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2639:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"2633:47:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":8882,"id":8891,"nodeType":"Return","src":"2626:54:39"}]},"id":8893,"implemented":true,"kind":"function","modifiers":[],"name":"add_","nameLocation":"2548:4:39","nodeType":"FunctionDefinition","parameters":{"id":8878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8874,"mutability":"mutable","name":"a","nameLocation":"2564:1:39","nodeType":"VariableDeclaration","scope":8893,"src":"2553:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8873,"nodeType":"UserDefinedTypeName","pathNode":{"id":8872,"name":"Exp","nameLocations":["2553:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2553:3:39"},"referencedDeclaration":8715,"src":"2553:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8877,"mutability":"mutable","name":"b","nameLocation":"2578:1:39","nodeType":"VariableDeclaration","scope":8893,"src":"2567:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8876,"nodeType":"UserDefinedTypeName","pathNode":{"id":8875,"name":"Exp","nameLocations":["2567:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2567:3:39"},"referencedDeclaration":8715,"src":"2567:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"2552:28:39"},"returnParameters":{"id":8882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8893,"src":"2604:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8880,"nodeType":"UserDefinedTypeName","pathNode":{"id":8879,"name":"Exp","nameLocations":["2604:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2604:3:39"},"referencedDeclaration":8715,"src":"2604:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"2603:12:39"},"scope":9293,"src":"2539:148:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8914,"nodeType":"Block","src":"2779:74:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8907,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8896,"src":"2820:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":8908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"2820:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8909,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8899,"src":"2832:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":8910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2834:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"2832:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8906,"name":"add_","nodeType":"Identifier","overloadedDeclarations":[8893,8915,8929],"referencedDeclaration":8929,"src":"2815:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2815:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8905,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"2796:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2805:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"2796:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":8904,"id":8913,"nodeType":"Return","src":"2789:57:39"}]},"id":8915,"implemented":true,"kind":"function","modifiers":[],"name":"add_","nameLocation":"2702:4:39","nodeType":"FunctionDefinition","parameters":{"id":8900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8896,"mutability":"mutable","name":"a","nameLocation":"2721:1:39","nodeType":"VariableDeclaration","scope":8915,"src":"2707:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8895,"nodeType":"UserDefinedTypeName","pathNode":{"id":8894,"name":"Double","nameLocations":["2707:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"2707:6:39"},"referencedDeclaration":8718,"src":"2707:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":8899,"mutability":"mutable","name":"b","nameLocation":"2738:1:39","nodeType":"VariableDeclaration","scope":8915,"src":"2724:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8898,"nodeType":"UserDefinedTypeName","pathNode":{"id":8897,"name":"Double","nameLocations":["2724:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"2724:6:39"},"referencedDeclaration":8718,"src":"2724:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"2706:34:39"},"returnParameters":{"id":8904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8915,"src":"2764:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8902,"nodeType":"UserDefinedTypeName","pathNode":{"id":8901,"name":"Double","nameLocations":["2764:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"2764:6:39"},"referencedDeclaration":8718,"src":"2764:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"2763:15:39"},"scope":9293,"src":"2693:160:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8928,"nodeType":"Block","src":"2927:29:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8924,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"2944:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8925,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"2948:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2944:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8923,"id":8927,"nodeType":"Return","src":"2937:12:39"}]},"id":8929,"implemented":true,"kind":"function","modifiers":[],"name":"add_","nameLocation":"2868:4:39","nodeType":"FunctionDefinition","parameters":{"id":8920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8917,"mutability":"mutable","name":"a","nameLocation":"2881:1:39","nodeType":"VariableDeclaration","scope":8929,"src":"2873:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8916,"name":"uint256","nodeType":"ElementaryTypeName","src":"2873:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8919,"mutability":"mutable","name":"b","nameLocation":"2892:1:39","nodeType":"VariableDeclaration","scope":8929,"src":"2884:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8918,"name":"uint256","nodeType":"ElementaryTypeName","src":"2884:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2872:22:39"},"returnParameters":{"id":8923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8929,"src":"2918:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2918:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2917:9:39"},"scope":9293,"src":"2859:97:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8950,"nodeType":"Block","src":"3039:71:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8943,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"3077:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3079:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3077:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8945,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8935,"src":"3089:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":8946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3091:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3089:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8942,"name":"sub_","nodeType":"Identifier","overloadedDeclarations":[8951,8973,8987],"referencedDeclaration":8987,"src":"3072:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3072:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8941,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"3056:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3062:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"3056:47:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":8940,"id":8949,"nodeType":"Return","src":"3049:54:39"}]},"id":8951,"implemented":true,"kind":"function","modifiers":[],"name":"sub_","nameLocation":"2971:4:39","nodeType":"FunctionDefinition","parameters":{"id":8936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8932,"mutability":"mutable","name":"a","nameLocation":"2987:1:39","nodeType":"VariableDeclaration","scope":8951,"src":"2976:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8931,"nodeType":"UserDefinedTypeName","pathNode":{"id":8930,"name":"Exp","nameLocations":["2976:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2976:3:39"},"referencedDeclaration":8715,"src":"2976:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8935,"mutability":"mutable","name":"b","nameLocation":"3001:1:39","nodeType":"VariableDeclaration","scope":8951,"src":"2990:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8934,"nodeType":"UserDefinedTypeName","pathNode":{"id":8933,"name":"Exp","nameLocations":["2990:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"2990:3:39"},"referencedDeclaration":8715,"src":"2990:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"2975:28:39"},"returnParameters":{"id":8940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8951,"src":"3027:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8938,"nodeType":"UserDefinedTypeName","pathNode":{"id":8937,"name":"Exp","nameLocations":["3027:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3027:3:39"},"referencedDeclaration":8715,"src":"3027:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"3026:12:39"},"scope":9293,"src":"2962:148:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8972,"nodeType":"Block","src":"3202:74:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8965,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"3243:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":8966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3245:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"3243:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8967,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8957,"src":"3255:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":8968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3257:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"3255:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8964,"name":"sub_","nodeType":"Identifier","overloadedDeclarations":[8951,8973,8987],"referencedDeclaration":8987,"src":"3238:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8963,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"3219:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":8970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3228:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"3219:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":8962,"id":8971,"nodeType":"Return","src":"3212:57:39"}]},"id":8973,"implemented":true,"kind":"function","modifiers":[],"name":"sub_","nameLocation":"3125:4:39","nodeType":"FunctionDefinition","parameters":{"id":8958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8954,"mutability":"mutable","name":"a","nameLocation":"3144:1:39","nodeType":"VariableDeclaration","scope":8973,"src":"3130:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8953,"nodeType":"UserDefinedTypeName","pathNode":{"id":8952,"name":"Double","nameLocations":["3130:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3130:6:39"},"referencedDeclaration":8718,"src":"3130:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":8957,"mutability":"mutable","name":"b","nameLocation":"3161:1:39","nodeType":"VariableDeclaration","scope":8973,"src":"3147:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8956,"nodeType":"UserDefinedTypeName","pathNode":{"id":8955,"name":"Double","nameLocations":["3147:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3147:6:39"},"referencedDeclaration":8718,"src":"3147:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"3129:34:39"},"returnParameters":{"id":8962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8973,"src":"3187:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":8960,"nodeType":"UserDefinedTypeName","pathNode":{"id":8959,"name":"Double","nameLocations":["3187:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3187:6:39"},"referencedDeclaration":8718,"src":"3187:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"3186:15:39"},"scope":9293,"src":"3116:160:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8986,"nodeType":"Block","src":"3350:29:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8982,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8975,"src":"3367:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8983,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8977,"src":"3371:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3367:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8981,"id":8985,"nodeType":"Return","src":"3360:12:39"}]},"id":8987,"implemented":true,"kind":"function","modifiers":[],"name":"sub_","nameLocation":"3291:4:39","nodeType":"FunctionDefinition","parameters":{"id":8978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8975,"mutability":"mutable","name":"a","nameLocation":"3304:1:39","nodeType":"VariableDeclaration","scope":8987,"src":"3296:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8974,"name":"uint256","nodeType":"ElementaryTypeName","src":"3296:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8977,"mutability":"mutable","name":"b","nameLocation":"3315:1:39","nodeType":"VariableDeclaration","scope":8987,"src":"3307:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3295:22:39"},"returnParameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8987,"src":"3341:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8979,"name":"uint256","nodeType":"ElementaryTypeName","src":"3341:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3340:9:39"},"scope":9293,"src":"3282:97:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9010,"nodeType":"Block","src":"3462:83:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9001,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8990,"src":"3500:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3502:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3500:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9003,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8993,"src":"3512:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3514:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3512:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9000,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"3495:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3495:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9006,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"3526:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3495:40:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8999,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"3479:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":9008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3485:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"3479:59:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":8998,"id":9009,"nodeType":"Return","src":"3472:66:39"}]},"id":9011,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"3394:4:39","nodeType":"FunctionDefinition","parameters":{"id":8994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8990,"mutability":"mutable","name":"a","nameLocation":"3410:1:39","nodeType":"VariableDeclaration","scope":9011,"src":"3399:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8989,"nodeType":"UserDefinedTypeName","pathNode":{"id":8988,"name":"Exp","nameLocations":["3399:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3399:3:39"},"referencedDeclaration":8715,"src":"3399:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":8993,"mutability":"mutable","name":"b","nameLocation":"3424:1:39","nodeType":"VariableDeclaration","scope":9011,"src":"3413:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8992,"nodeType":"UserDefinedTypeName","pathNode":{"id":8991,"name":"Exp","nameLocations":["3413:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3413:3:39"},"referencedDeclaration":8715,"src":"3413:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"3398:28:39"},"returnParameters":{"id":8998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9011,"src":"3450:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":8996,"nodeType":"UserDefinedTypeName","pathNode":{"id":8995,"name":"Exp","nameLocations":["3450:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3450:3:39"},"referencedDeclaration":8715,"src":"3450:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"3449:12:39"},"scope":9293,"src":"3385:160:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9030,"nodeType":"Block","src":"3625:62:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":9024,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9014,"src":"3663:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3665:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3663:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9026,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"3675:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9023,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"3658:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9022,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"3642:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3648:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"3642:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":9021,"id":9029,"nodeType":"Return","src":"3635:45:39"}]},"id":9031,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"3560:4:39","nodeType":"FunctionDefinition","parameters":{"id":9017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9014,"mutability":"mutable","name":"a","nameLocation":"3576:1:39","nodeType":"VariableDeclaration","scope":9031,"src":"3565:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9013,"nodeType":"UserDefinedTypeName","pathNode":{"id":9012,"name":"Exp","nameLocations":["3565:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3565:3:39"},"referencedDeclaration":8715,"src":"3565:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":9016,"mutability":"mutable","name":"b","nameLocation":"3587:1:39","nodeType":"VariableDeclaration","scope":9031,"src":"3579:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9015,"name":"uint256","nodeType":"ElementaryTypeName","src":"3579:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3564:25:39"},"returnParameters":{"id":9021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9031,"src":"3613:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9019,"nodeType":"UserDefinedTypeName","pathNode":{"id":9018,"name":"Exp","nameLocations":["3613:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3613:3:39"},"referencedDeclaration":8715,"src":"3613:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"3612:12:39"},"scope":9293,"src":"3551:136:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9049,"nodeType":"Block","src":"3764:55:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9042,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"3786:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9043,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9036,"src":"3789:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3791:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3789:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9041,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"3781:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9046,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"3803:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3781:31:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9040,"id":9048,"nodeType":"Return","src":"3774:38:39"}]},"id":9050,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"3702:4:39","nodeType":"FunctionDefinition","parameters":{"id":9037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"a","nameLocation":"3715:1:39","nodeType":"VariableDeclaration","scope":9050,"src":"3707:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9032,"name":"uint256","nodeType":"ElementaryTypeName","src":"3707:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9036,"mutability":"mutable","name":"b","nameLocation":"3729:1:39","nodeType":"VariableDeclaration","scope":9050,"src":"3718:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9035,"nodeType":"UserDefinedTypeName","pathNode":{"id":9034,"name":"Exp","nameLocations":["3718:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"3718:3:39"},"referencedDeclaration":8715,"src":"3718:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"3706:25:39"},"returnParameters":{"id":9040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9050,"src":"3755:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9038,"name":"uint256","nodeType":"ElementaryTypeName","src":"3755:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3754:9:39"},"scope":9293,"src":"3693:126:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9073,"nodeType":"Block","src":"3911:89:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9064,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9053,"src":"3952:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3954:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"3952:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9066,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9056,"src":"3964:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3966:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"3964:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9063,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"3947:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3947:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9069,"name":"DOUBLE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"3978:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9062,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"3928:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3937:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"3928:65:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":9061,"id":9072,"nodeType":"Return","src":"3921:72:39"}]},"id":9074,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"3834:4:39","nodeType":"FunctionDefinition","parameters":{"id":9057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9053,"mutability":"mutable","name":"a","nameLocation":"3853:1:39","nodeType":"VariableDeclaration","scope":9074,"src":"3839:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9052,"nodeType":"UserDefinedTypeName","pathNode":{"id":9051,"name":"Double","nameLocations":["3839:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3839:6:39"},"referencedDeclaration":8718,"src":"3839:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":9056,"mutability":"mutable","name":"b","nameLocation":"3870:1:39","nodeType":"VariableDeclaration","scope":9074,"src":"3856:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9055,"nodeType":"UserDefinedTypeName","pathNode":{"id":9054,"name":"Double","nameLocations":["3856:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3856:6:39"},"referencedDeclaration":8718,"src":"3856:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"3838:34:39"},"returnParameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9074,"src":"3896:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9059,"nodeType":"UserDefinedTypeName","pathNode":{"id":9058,"name":"Double","nameLocations":["3896:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"3896:6:39"},"referencedDeclaration":8718,"src":"3896:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"3895:15:39"},"scope":9293,"src":"3825:175:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9093,"nodeType":"Block","src":"4086:65:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":9087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9077,"src":"4127:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"4127:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9089,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9079,"src":"4139:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9086,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"4122:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4122:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9085,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"4103:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4112:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"4103:41:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":9084,"id":9092,"nodeType":"Return","src":"4096:48:39"}]},"id":9094,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"4015:4:39","nodeType":"FunctionDefinition","parameters":{"id":9080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9077,"mutability":"mutable","name":"a","nameLocation":"4034:1:39","nodeType":"VariableDeclaration","scope":9094,"src":"4020:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9076,"nodeType":"UserDefinedTypeName","pathNode":{"id":9075,"name":"Double","nameLocations":["4020:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4020:6:39"},"referencedDeclaration":8718,"src":"4020:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":9079,"mutability":"mutable","name":"b","nameLocation":"4045:1:39","nodeType":"VariableDeclaration","scope":9094,"src":"4037:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9078,"name":"uint256","nodeType":"ElementaryTypeName","src":"4037:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4019:28:39"},"returnParameters":{"id":9084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9094,"src":"4071:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9082,"nodeType":"UserDefinedTypeName","pathNode":{"id":9081,"name":"Double","nameLocations":["4071:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4071:6:39"},"referencedDeclaration":8718,"src":"4071:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"4070:15:39"},"scope":9293,"src":"4006:145:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9112,"nodeType":"Block","src":"4231:58:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9105,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"4253:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9106,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"4256:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4258:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"4256:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9104,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"4248:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4248:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9109,"name":"DOUBLE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"4270:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:34:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9103,"id":9111,"nodeType":"Return","src":"4241:41:39"}]},"id":9113,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"4166:4:39","nodeType":"FunctionDefinition","parameters":{"id":9100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"mutability":"mutable","name":"a","nameLocation":"4179:1:39","nodeType":"VariableDeclaration","scope":9113,"src":"4171:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9095,"name":"uint256","nodeType":"ElementaryTypeName","src":"4171:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9099,"mutability":"mutable","name":"b","nameLocation":"4196:1:39","nodeType":"VariableDeclaration","scope":9113,"src":"4182:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9098,"nodeType":"UserDefinedTypeName","pathNode":{"id":9097,"name":"Double","nameLocations":["4182:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4182:6:39"},"referencedDeclaration":8718,"src":"4182:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"4170:28:39"},"returnParameters":{"id":9103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9113,"src":"4222:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9101,"name":"uint256","nodeType":"ElementaryTypeName","src":"4222:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4221:9:39"},"scope":9293,"src":"4157:132:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9126,"nodeType":"Block","src":"4363:29:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9122,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"4380:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9123,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"4384:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4380:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9121,"id":9125,"nodeType":"Return","src":"4373:12:39"}]},"id":9127,"implemented":true,"kind":"function","modifiers":[],"name":"mul_","nameLocation":"4304:4:39","nodeType":"FunctionDefinition","parameters":{"id":9118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9115,"mutability":"mutable","name":"a","nameLocation":"4317:1:39","nodeType":"VariableDeclaration","scope":9127,"src":"4309:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9114,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9117,"mutability":"mutable","name":"b","nameLocation":"4328:1:39","nodeType":"VariableDeclaration","scope":9127,"src":"4320:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"4320:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4308:22:39"},"returnParameters":{"id":9121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9127,"src":"4354:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4354:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4353:9:39"},"scope":9293,"src":"4295:97:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9151,"nodeType":"Block","src":"4475:88:39","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":9142,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"4518:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4520:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"4518:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9144,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"4530:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9141,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"4513:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4513:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9146,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"4542:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4544:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"4542:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9140,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"4508:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4508:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9139,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"4492:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":9149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4498:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"4492:64:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":9138,"id":9150,"nodeType":"Return","src":"4485:71:39"}]},"id":9152,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"4407:4:39","nodeType":"FunctionDefinition","parameters":{"id":9134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9130,"mutability":"mutable","name":"a","nameLocation":"4423:1:39","nodeType":"VariableDeclaration","scope":9152,"src":"4412:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9129,"nodeType":"UserDefinedTypeName","pathNode":{"id":9128,"name":"Exp","nameLocations":["4412:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4412:3:39"},"referencedDeclaration":8715,"src":"4412:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":9133,"mutability":"mutable","name":"b","nameLocation":"4437:1:39","nodeType":"VariableDeclaration","scope":9152,"src":"4426:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9132,"nodeType":"UserDefinedTypeName","pathNode":{"id":9131,"name":"Exp","nameLocations":["4426:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4426:3:39"},"referencedDeclaration":8715,"src":"4426:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"4411:28:39"},"returnParameters":{"id":9138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9152,"src":"4463:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9136,"nodeType":"UserDefinedTypeName","pathNode":{"id":9135,"name":"Exp","nameLocations":["4463:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4463:3:39"},"referencedDeclaration":8715,"src":"4463:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"4462:12:39"},"scope":9293,"src":"4398:165:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9171,"nodeType":"Block","src":"4643:62:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":9165,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9155,"src":"4681:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"4681:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9167,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"4693:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9164,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"4676:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4676:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9163,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"4660:3:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4666:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"4660:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"functionReturnParameters":9162,"id":9170,"nodeType":"Return","src":"4653:45:39"}]},"id":9172,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"4578:4:39","nodeType":"FunctionDefinition","parameters":{"id":9158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9155,"mutability":"mutable","name":"a","nameLocation":"4594:1:39","nodeType":"VariableDeclaration","scope":9172,"src":"4583:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9154,"nodeType":"UserDefinedTypeName","pathNode":{"id":9153,"name":"Exp","nameLocations":["4583:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4583:3:39"},"referencedDeclaration":8715,"src":"4583:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"},{"constant":false,"id":9157,"mutability":"mutable","name":"b","nameLocation":"4605:1:39","nodeType":"VariableDeclaration","scope":9172,"src":"4597:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9156,"name":"uint256","nodeType":"ElementaryTypeName","src":"4597:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4582:25:39"},"returnParameters":{"id":9162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9172,"src":"4631:10:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9160,"nodeType":"UserDefinedTypeName","pathNode":{"id":9159,"name":"Exp","nameLocations":["4631:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4631:3:39"},"referencedDeclaration":8715,"src":"4631:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"4630:12:39"},"scope":9293,"src":"4569:136:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9191,"nodeType":"Block","src":"4782:60:39","statements":[{"expression":{"arguments":[{"arguments":[{"id":9184,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9174,"src":"4809:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9185,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"4812:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9183,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"4804:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4804:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9187,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9177,"src":"4824:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"id":9188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4826:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"4824:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9182,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"4799:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4799:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9181,"id":9190,"nodeType":"Return","src":"4792:43:39"}]},"id":9192,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"4720:4:39","nodeType":"FunctionDefinition","parameters":{"id":9178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9174,"mutability":"mutable","name":"a","nameLocation":"4733:1:39","nodeType":"VariableDeclaration","scope":9192,"src":"4725:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9173,"name":"uint256","nodeType":"ElementaryTypeName","src":"4725:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9177,"mutability":"mutable","name":"b","nameLocation":"4747:1:39","nodeType":"VariableDeclaration","scope":9192,"src":"4736:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9176,"nodeType":"UserDefinedTypeName","pathNode":{"id":9175,"name":"Exp","nameLocations":["4736:3:39"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"4736:3:39"},"referencedDeclaration":8715,"src":"4736:3:39","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"src":"4724:25:39"},"returnParameters":{"id":9181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9192,"src":"4773:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9179,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4772:9:39"},"scope":9293,"src":"4711:131:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9216,"nodeType":"Block","src":"4934:94:39","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":9207,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9195,"src":"4980:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4982:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"4980:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9209,"name":"DOUBLE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"4992:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9206,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"4975:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4975:30:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9211,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"5007:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5009:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"5007:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9205,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"4970:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9204,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"4951:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":9214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4960:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"4951:70:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":9203,"id":9215,"nodeType":"Return","src":"4944:77:39"}]},"id":9217,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"4857:4:39","nodeType":"FunctionDefinition","parameters":{"id":9199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9195,"mutability":"mutable","name":"a","nameLocation":"4876:1:39","nodeType":"VariableDeclaration","scope":9217,"src":"4862:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9194,"nodeType":"UserDefinedTypeName","pathNode":{"id":9193,"name":"Double","nameLocations":["4862:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4862:6:39"},"referencedDeclaration":8718,"src":"4862:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":9198,"mutability":"mutable","name":"b","nameLocation":"4893:1:39","nodeType":"VariableDeclaration","scope":9217,"src":"4879:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9197,"nodeType":"UserDefinedTypeName","pathNode":{"id":9196,"name":"Double","nameLocations":["4879:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4879:6:39"},"referencedDeclaration":8718,"src":"4879:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"4861:34:39"},"returnParameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9217,"src":"4919:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9201,"nodeType":"UserDefinedTypeName","pathNode":{"id":9200,"name":"Double","nameLocations":["4919:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"4919:6:39"},"referencedDeclaration":8718,"src":"4919:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"4918:15:39"},"scope":9293,"src":"4848:180:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9236,"nodeType":"Block","src":"5114:65:39","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":9230,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9220,"src":"5155:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5157:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"5155:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9232,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"5167:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9229,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"5150:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9228,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"5131:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":9234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5140:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"5131:41:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":9227,"id":9235,"nodeType":"Return","src":"5124:48:39"}]},"id":9237,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"5043:4:39","nodeType":"FunctionDefinition","parameters":{"id":9223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9220,"mutability":"mutable","name":"a","nameLocation":"5062:1:39","nodeType":"VariableDeclaration","scope":9237,"src":"5048:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9219,"nodeType":"UserDefinedTypeName","pathNode":{"id":9218,"name":"Double","nameLocations":["5048:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"5048:6:39"},"referencedDeclaration":8718,"src":"5048:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"},{"constant":false,"id":9222,"mutability":"mutable","name":"b","nameLocation":"5073:1:39","nodeType":"VariableDeclaration","scope":9237,"src":"5065:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9221,"name":"uint256","nodeType":"ElementaryTypeName","src":"5065:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5047:28:39"},"returnParameters":{"id":9227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9237,"src":"5099:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9225,"nodeType":"UserDefinedTypeName","pathNode":{"id":9224,"name":"Double","nameLocations":["5099:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"5099:6:39"},"referencedDeclaration":8718,"src":"5099:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"5098:15:39"},"scope":9293,"src":"5034:145:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9256,"nodeType":"Block","src":"5259:63:39","statements":[{"expression":{"arguments":[{"arguments":[{"id":9249,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"5286:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9250,"name":"DOUBLE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"5289:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9248,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"5281:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5281:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9252,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9242,"src":"5304:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"id":9253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5306:8:39","memberName":"mantissa","nodeType":"MemberAccess","referencedDeclaration":8717,"src":"5304:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9247,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"5276:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5276:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9246,"id":9255,"nodeType":"Return","src":"5269:46:39"}]},"id":9257,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"5194:4:39","nodeType":"FunctionDefinition","parameters":{"id":9243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9239,"mutability":"mutable","name":"a","nameLocation":"5207:1:39","nodeType":"VariableDeclaration","scope":9257,"src":"5199:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9238,"name":"uint256","nodeType":"ElementaryTypeName","src":"5199:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9242,"mutability":"mutable","name":"b","nameLocation":"5224:1:39","nodeType":"VariableDeclaration","scope":9257,"src":"5210:15:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9241,"nodeType":"UserDefinedTypeName","pathNode":{"id":9240,"name":"Double","nameLocations":["5210:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"5210:6:39"},"referencedDeclaration":8718,"src":"5210:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"5198:28:39"},"returnParameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9257,"src":"5250:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9244,"name":"uint256","nodeType":"ElementaryTypeName","src":"5250:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5249:9:39"},"scope":9293,"src":"5185:137:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9270,"nodeType":"Block","src":"5396:29:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9266,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9259,"src":"5413:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9267,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9261,"src":"5417:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5413:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9265,"id":9269,"nodeType":"Return","src":"5406:12:39"}]},"id":9271,"implemented":true,"kind":"function","modifiers":[],"name":"div_","nameLocation":"5337:4:39","nodeType":"FunctionDefinition","parameters":{"id":9262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9259,"mutability":"mutable","name":"a","nameLocation":"5350:1:39","nodeType":"VariableDeclaration","scope":9271,"src":"5342:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9258,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9261,"mutability":"mutable","name":"b","nameLocation":"5361:1:39","nodeType":"VariableDeclaration","scope":9271,"src":"5353:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9260,"name":"uint256","nodeType":"ElementaryTypeName","src":"5353:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5341:22:39"},"returnParameters":{"id":9265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9271,"src":"5387:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9263,"name":"uint256","nodeType":"ElementaryTypeName","src":"5387:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5386:9:39"},"scope":9293,"src":"5328:97:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9291,"nodeType":"Block","src":"5509:76:39","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":9284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9273,"src":"5555:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9285,"name":"DOUBLE_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"5558:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9283,"name":"mul_","nodeType":"Identifier","overloadedDeclarations":[9011,9031,9050,9074,9094,9113,9127],"referencedDeclaration":9127,"src":"5550:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5550:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9287,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"5573:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9282,"name":"div_","nodeType":"Identifier","overloadedDeclarations":[9152,9172,9192,9217,9237,9257,9271],"referencedDeclaration":9271,"src":"5545:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5545:30:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9281,"name":"Double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"5526:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Double_$8718_storage_ptr_$","typeString":"type(struct ExponentialNoError.Double storage pointer)"}},"id":9289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5535:8:39"],"names":["mantissa"],"nodeType":"FunctionCall","src":"5526:52:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double memory"}},"functionReturnParameters":9280,"id":9290,"nodeType":"Return","src":"5519:59:39"}]},"id":9292,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nameLocation":"5440:8:39","nodeType":"FunctionDefinition","parameters":{"id":9276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"a","nameLocation":"5457:1:39","nodeType":"VariableDeclaration","scope":9292,"src":"5449:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9272,"name":"uint256","nodeType":"ElementaryTypeName","src":"5449:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9275,"mutability":"mutable","name":"b","nameLocation":"5468:1:39","nodeType":"VariableDeclaration","scope":9292,"src":"5460:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9274,"name":"uint256","nodeType":"ElementaryTypeName","src":"5460:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5448:22:39"},"returnParameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9292,"src":"5494:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_memory_ptr","typeString":"struct ExponentialNoError.Double"},"typeName":{"id":9278,"nodeType":"UserDefinedTypeName","pathNode":{"id":9277,"name":"Double","nameLocations":["5494:6:39"],"nodeType":"IdentifierPath","referencedDeclaration":8718,"src":"5494:6:39"},"referencedDeclaration":8718,"src":"5494:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_Double_$8718_storage_ptr","typeString":"struct ExponentialNoError.Double"}},"visibility":"internal"}],"src":"5493:15:39"},"scope":9293,"src":"5431:154:39","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":9294,"src":"482:5105:39","usedErrors":[],"usedEvents":[]}],"src":"41:5547:39"},"id":39},"@venusprotocol/solidity-utilities/contracts/constants.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/constants.sol","exportedSymbols":{"EXP_SCALE":[9299],"MANTISSA_ONE":[9303],"SECONDS_PER_YEAR":[9307]},"id":9308,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9295,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:40"},{"constant":true,"id":9299,"mutability":"constant","name":"EXP_SCALE","nameLocation":"174:9:40","nodeType":"VariableDeclaration","scope":9308,"src":"157:33:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9297,"name":"uint256","nodeType":"ElementaryTypeName","src":"157:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":9298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186:4:40","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"constant":true,"id":9303,"mutability":"constant","name":"MANTISSA_ONE","nameLocation":"293:12:40","nodeType":"VariableDeclaration","scope":9308,"src":"276:41:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9301,"name":"uint256","nodeType":"ElementaryTypeName","src":"276:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":9302,"name":"EXP_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9299,"src":"308:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":9307,"mutability":"constant","name":"SECONDS_PER_YEAR","nameLocation":"389:16:40","nodeType":"VariableDeclaration","scope":9308,"src":"372:46:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9305,"name":"uint256","nodeType":"ElementaryTypeName","src":"372:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33315f3533365f303030","id":9306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"408:10:40","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"31_536_000"},"visibility":"internal"}],"src":"41:379:40"},"id":40},"@venusprotocol/solidity-utilities/contracts/validators.sol":{"ast":{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","exportedSymbols":{"ZeroAddressNotAllowed":[9312],"ZeroValueNotAllowed":[9315],"ensureNonzeroAddress":[9333],"ensureNonzeroValue":[9348]},"id":9349,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9309,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:41"},{"documentation":{"id":9310,"nodeType":"StructuredDocumentation","src":"66:85:41","text":"@notice Thrown if the supplied address is a zero address where it is not allowed"},"errorSelector":"8579befe","id":9312,"name":"ZeroAddressNotAllowed","nameLocation":"157:21:41","nodeType":"ErrorDefinition","parameters":{"id":9311,"nodeType":"ParameterList","parameters":[],"src":"178:2:41"},"src":"151:30:41"},{"documentation":{"id":9313,"nodeType":"StructuredDocumentation","src":"183:70:41","text":"@notice Thrown if the supplied value is 0 where it is not allowed"},"errorSelector":"9cf8540c","id":9315,"name":"ZeroValueNotAllowed","nameLocation":"259:19:41","nodeType":"ErrorDefinition","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[],"src":"278:2:41"},"src":"253:28:41"},{"body":{"id":9332,"nodeType":"Block","src":"538:83:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9321,"name":"address_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9318,"src":"548:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":9324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"568:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"560:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"560:7:41","typeDescriptions":{}}},"id":9325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"548:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9331,"nodeType":"IfStatement","src":"544:75:41","trueBody":{"id":9330,"nodeType":"Block","src":"572:47:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9327,"name":"ZeroAddressNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9312,"src":"589:21:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9329,"nodeType":"RevertStatement","src":"582:30:41"}]}}]},"documentation":{"id":9316,"nodeType":"StructuredDocumentation","src":"283:202:41","text":"@notice Checks if the provided address is nonzero, reverts otherwise\n @param address_ Address to check\n @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address"},"id":9333,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroAddress","nameLocation":"494:20:41","nodeType":"FunctionDefinition","parameters":{"id":9319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9318,"mutability":"mutable","name":"address_","nameLocation":"523:8:41","nodeType":"VariableDeclaration","scope":9333,"src":"515:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9317,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"514:18:41"},"returnParameters":{"id":9320,"nodeType":"ParameterList","parameters":[],"src":"538:0:41"},"scope":9349,"src":"485:136:41","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9347,"nodeType":"Block","src":"851:70:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9339,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9336,"src":"861:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"871:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"861:11:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9346,"nodeType":"IfStatement","src":"857:62:41","trueBody":{"id":9345,"nodeType":"Block","src":"874:45:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9342,"name":"ZeroValueNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9315,"src":"891:19:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9344,"nodeType":"RevertStatement","src":"884:28:41"}]}}]},"documentation":{"id":9334,"nodeType":"StructuredDocumentation","src":"623:179:41","text":"@notice Checks if the provided value is nonzero, reverts otherwise\n @param value_ Value to check\n @custom:error ZeroValueNotAllowed is thrown if the provided value is 0"},"id":9348,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"ensureNonzeroValue","nameLocation":"811:18:41","nodeType":"FunctionDefinition","parameters":{"id":9337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9336,"mutability":"mutable","name":"value_","nameLocation":"838:6:41","nodeType":"VariableDeclaration","scope":9348,"src":"830:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9335,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"829:16:41"},"returnParameters":{"id":9338,"nodeType":"ParameterList","parameters":[],"src":"851:0:41"},"scope":9349,"src":"802:119:41","stateMutability":"pure","virtual":false,"visibility":"internal"}],"src":"41:881:41"},"id":41},"contracts/Bridge/BaseXVSProxyOFT.sol":{"ast":{"absolutePath":"contracts/Bridge/BaseXVSProxyOFT.sol","exportedSymbols":{"BaseOFTV2":[3128],"BaseXVSProxyOFT":[10412],"ExponentialNoError":[9293],"IERC20":[6261],"Pausable":[5596],"ResilientOracleInterface":[8694],"SafeERC20":[6698],"ensureNonzeroAddress":[9333]},"id":10413,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":9350,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":9353,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":6699,"src":"66:92:42","symbolAliases":[{"foreign":{"id":9351,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6698,"src":"75:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":9352,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"86:6:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol","file":"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol","id":9355,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":8707,"src":"159:106:42","symbolAliases":[{"foreign":{"id":9354,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"168:24:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":9357,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":5597,"src":"266:73:42","symbolAliases":[{"foreign":{"id":9356,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5596,"src":"275:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol","file":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol","id":9359,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":3129,"src":"340:98:42","symbolAliases":[{"foreign":{"id":9358,"name":"BaseOFTV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"349:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":9361,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":9349,"src":"439:98:42","symbolAliases":[{"foreign":{"id":9360,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"448:20:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol","file":"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol","id":9363,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10413,"sourceUnit":9294,"src":"538:104:42","symbolAliases":[{"foreign":{"id":9362,"name":"ExponentialNoError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9293,"src":"547:18:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9365,"name":"Pausable","nameLocations":["1411:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":5596,"src":"1411:8:42"},"id":9366,"nodeType":"InheritanceSpecifier","src":"1411:8:42"},{"baseName":{"id":9367,"name":"ExponentialNoError","nameLocations":["1421:18:42"],"nodeType":"IdentifierPath","referencedDeclaration":9293,"src":"1421:18:42"},"id":9368,"nodeType":"InheritanceSpecifier","src":"1421:18:42"},{"baseName":{"id":9369,"name":"BaseOFTV2","nameLocations":["1441:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":3128,"src":"1441:9:42"},"id":9370,"nodeType":"InheritanceSpecifier","src":"1441:9:42"}],"canonicalName":"BaseXVSProxyOFT","contractDependencies":[],"contractKind":"contract","documentation":{"id":9364,"nodeType":"StructuredDocumentation","src":"644:728:42","text":" @title BaseXVSProxyOFT\n @author Venus\n @notice The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token.\n It manages transaction limits of a single and daily transactions.\n This contract inherits key functionalities from other contracts, including pausing capabilities and error handling.\n It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses.\n The contract allows the owner to configure limits, set whitelists, and control pausing.\n Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management."},"fullyImplemented":false,"id":10412,"linearizedBaseContracts":[10412,3128,4207,4148,7303,7315,4083,1212,971,1402,1371,5488,9293,5596,7050],"name":"BaseXVSProxyOFT","nameLocation":"1392:15:42","nodeType":"ContractDefinition","nodes":[{"global":false,"id":9374,"libraryName":{"id":9371,"name":"SafeERC20","nameLocations":["1463:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":6698,"src":"1463:9:42"},"nodeType":"UsingForDirective","src":"1457:27:42","typeName":{"id":9373,"nodeType":"UserDefinedTypeName","pathNode":{"id":9372,"name":"IERC20","nameLocations":["1477:6:42"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"1477:6:42"},"referencedDeclaration":6261,"src":"1477:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}},{"constant":false,"id":9377,"mutability":"immutable","name":"innerToken","nameLocation":"1515:10:42","nodeType":"VariableDeclaration","scope":10412,"src":"1489:36:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":9376,"nodeType":"UserDefinedTypeName","pathNode":{"id":9375,"name":"IERC20","nameLocations":["1489:6:42"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"1489:6:42"},"referencedDeclaration":6261,"src":"1489:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9379,"mutability":"immutable","name":"ld2sdRate","nameLocation":"1558:9:42","nodeType":"VariableDeclaration","scope":10412,"src":"1531:36:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9378,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"functionSelector":"c1e9132e","id":9381,"mutability":"mutable","name":"sendAndCallEnabled","nameLocation":"1585:18:42","nodeType":"VariableDeclaration","scope":10412,"src":"1573:30:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9380,"name":"bool","nodeType":"ElementaryTypeName","src":"1573:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":9382,"nodeType":"StructuredDocumentation","src":"1610:92:42","text":" @notice The address of ResilientOracle contract wrapped in its interface."},"functionSelector":"7dc0d1d0","id":9385,"mutability":"mutable","name":"oracle","nameLocation":"1739:6:42","nodeType":"VariableDeclaration","scope":10412,"src":"1707:38:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"},"typeName":{"id":9384,"nodeType":"UserDefinedTypeName","pathNode":{"id":9383,"name":"ResilientOracleInterface","nameLocations":["1707:24:42"],"nodeType":"IdentifierPath","referencedDeclaration":8694,"src":"1707:24:42"},"referencedDeclaration":8694,"src":"1707:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"visibility":"public"},{"constant":false,"documentation":{"id":9386,"nodeType":"StructuredDocumentation","src":"1751:115:42","text":" @notice Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain."},"functionSelector":"cc7015ae","id":9390,"mutability":"mutable","name":"chainIdToMaxSingleTransactionLimit","nameLocation":"1905:34:42","nodeType":"VariableDeclaration","scope":10412,"src":"1871:68:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9389,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9387,"name":"uint16","nodeType":"ElementaryTypeName","src":"1879:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1871:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1889:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9391,"nodeType":"StructuredDocumentation","src":"1945:113:42","text":" @notice Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain."},"functionSelector":"4f4ba0f4","id":9395,"mutability":"mutable","name":"chainIdToMaxDailyLimit","nameLocation":"2097:22:42","nodeType":"VariableDeclaration","scope":10412,"src":"2063:56:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9394,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9392,"name":"uint16","nodeType":"ElementaryTypeName","src":"2071:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"2063:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9393,"name":"uint256","nodeType":"ElementaryTypeName","src":"2081:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9396,"nodeType":"StructuredDocumentation","src":"2125:125:42","text":" @notice Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain."},"functionSelector":"4cec6256","id":9400,"mutability":"mutable","name":"chainIdToLast24HourTransferred","nameLocation":"2289:30:42","nodeType":"VariableDeclaration","scope":10412,"src":"2255:64:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9399,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9397,"name":"uint16","nodeType":"ElementaryTypeName","src":"2263:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"2255:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9401,"nodeType":"StructuredDocumentation","src":"2325:91:42","text":" @notice Timestamp when the last 24-hour window started from local chain."},"functionSelector":"93a61d6c","id":9405,"mutability":"mutable","name":"chainIdToLast24HourWindowStart","nameLocation":"2455:30:42","nodeType":"VariableDeclaration","scope":10412,"src":"2421:64:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9404,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9402,"name":"uint16","nodeType":"ElementaryTypeName","src":"2429:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"2421:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9403,"name":"uint256","nodeType":"ElementaryTypeName","src":"2439:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9406,"nodeType":"StructuredDocumentation","src":"2491:124:42","text":" @notice Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain."},"functionSelector":"90436567","id":9410,"mutability":"mutable","name":"chainIdToMaxSingleReceiveTransactionLimit","nameLocation":"2654:41:42","nodeType":"VariableDeclaration","scope":10412,"src":"2620:75:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9409,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9407,"name":"uint16","nodeType":"ElementaryTypeName","src":"2628:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"2620:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2638:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9411,"nodeType":"StructuredDocumentation","src":"2701:124:42","text":" @notice Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain."},"functionSelector":"3c4ec39b","id":9415,"mutability":"mutable","name":"chainIdToMaxDailyReceiveLimit","nameLocation":"2864:29:42","nodeType":"VariableDeclaration","scope":10412,"src":"2830:63:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9414,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9412,"name":"uint16","nodeType":"ElementaryTypeName","src":"2838:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"2830:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9413,"name":"uint256","nodeType":"ElementaryTypeName","src":"2848:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9416,"nodeType":"StructuredDocumentation","src":"2899:130:42","text":" @notice Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain."},"functionSelector":"d708a468","id":9420,"mutability":"mutable","name":"chainIdToLast24HourReceived","nameLocation":"3068:27:42","nodeType":"VariableDeclaration","scope":10412,"src":"3034:61:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9419,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9417,"name":"uint16","nodeType":"ElementaryTypeName","src":"3042:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"3034:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9421,"nodeType":"StructuredDocumentation","src":"3101:92:42","text":" @notice Timestamp when the last 24-hour window started from remote chain."},"functionSelector":"fdff235b","id":9425,"mutability":"mutable","name":"chainIdToLast24HourReceiveWindowStart","nameLocation":"3232:37:42","nodeType":"VariableDeclaration","scope":10412,"src":"3198:71:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"typeName":{"id":9424,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9422,"name":"uint16","nodeType":"ElementaryTypeName","src":"3206:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"3198:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9423,"name":"uint256","nodeType":"ElementaryTypeName","src":"3216:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9426,"nodeType":"StructuredDocumentation","src":"3275:88:42","text":" @notice Address on which cap check and bound limit is not applicable."},"functionSelector":"9b19251a","id":9430,"mutability":"mutable","name":"whitelist","nameLocation":"3400:9:42","nodeType":"VariableDeclaration","scope":10412,"src":"3368:41:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":9429,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9427,"name":"address","nodeType":"ElementaryTypeName","src":"3376:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3368:24:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9428,"name":"bool","nodeType":"ElementaryTypeName","src":"3387:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":9431,"nodeType":"StructuredDocumentation","src":"3416:70:42","text":" @notice Emitted when address is added to whitelist."},"eventSelector":"f6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb","id":9437,"name":"SetWhitelist","nameLocation":"3497:12:42","nodeType":"EventDefinition","parameters":{"id":9436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9433,"indexed":true,"mutability":"mutable","name":"addr","nameLocation":"3526:4:42","nodeType":"VariableDeclaration","scope":9437,"src":"3510:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9432,"name":"address","nodeType":"ElementaryTypeName","src":"3510:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9435,"indexed":false,"mutability":"mutable","name":"isWhitelist","nameLocation":"3537:11:42","nodeType":"VariableDeclaration","scope":9437,"src":"3532:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9434,"name":"bool","nodeType":"ElementaryTypeName","src":"3532:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3509:40:42"},"src":"3491:59:42"},{"anonymous":false,"documentation":{"id":9438,"nodeType":"StructuredDocumentation","src":"3555:113:42","text":" @notice  Emitted when the maximum limit for a single transaction from local chain is modified."},"eventSelector":"7babeac42ccbb33537ee421fedc4db7b5f251b5d2a3fa5c0ff4b35b2d783be87","id":9446,"name":"SetMaxSingleTransactionLimit","nameLocation":"3679:28:42","nodeType":"EventDefinition","parameters":{"id":9445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9440,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3715:7:42","nodeType":"VariableDeclaration","scope":9446,"src":"3708:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9439,"name":"uint16","nodeType":"ElementaryTypeName","src":"3708:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9442,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"3732:11:42","nodeType":"VariableDeclaration","scope":9446,"src":"3724:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3724:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9444,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"3753:11:42","nodeType":"VariableDeclaration","scope":9446,"src":"3745:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9443,"name":"uint256","nodeType":"ElementaryTypeName","src":"3745:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3707:58:42"},"src":"3673:93:42"},{"anonymous":false,"documentation":{"id":9447,"nodeType":"StructuredDocumentation","src":"3771:109:42","text":" @notice Emitted when the maximum daily limit of transactions from local chain is modified."},"eventSelector":"4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f693","id":9455,"name":"SetMaxDailyLimit","nameLocation":"3891:16:42","nodeType":"EventDefinition","parameters":{"id":9454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9449,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"3915:7:42","nodeType":"VariableDeclaration","scope":9455,"src":"3908:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9448,"name":"uint16","nodeType":"ElementaryTypeName","src":"3908:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9451,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"3932:11:42","nodeType":"VariableDeclaration","scope":9455,"src":"3924:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3924:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9453,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"3953:11:42","nodeType":"VariableDeclaration","scope":9455,"src":"3945:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9452,"name":"uint256","nodeType":"ElementaryTypeName","src":"3945:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3907:58:42"},"src":"3885:81:42"},{"anonymous":false,"documentation":{"id":9456,"nodeType":"StructuredDocumentation","src":"3971:121:42","text":" @notice Emitted when the maximum limit for a single receive transaction from remote chain is modified."},"eventSelector":"2c42997a938a029910a78e7c28d762b349c28e70f3a89c1fbccbb1a46020b159","id":9464,"name":"SetMaxSingleReceiveTransactionLimit","nameLocation":"4103:35:42","nodeType":"EventDefinition","parameters":{"id":9463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9458,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"4146:7:42","nodeType":"VariableDeclaration","scope":9464,"src":"4139:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9457,"name":"uint16","nodeType":"ElementaryTypeName","src":"4139:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9460,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"4163:11:42","nodeType":"VariableDeclaration","scope":9464,"src":"4155:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9459,"name":"uint256","nodeType":"ElementaryTypeName","src":"4155:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9462,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"4184:11:42","nodeType":"VariableDeclaration","scope":9464,"src":"4176:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9461,"name":"uint256","nodeType":"ElementaryTypeName","src":"4176:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4138:58:42"},"src":"4097:100:42"},{"anonymous":false,"documentation":{"id":9465,"nodeType":"StructuredDocumentation","src":"4202:121:42","text":" @notice Emitted when the maximum daily limit for receiving transactions from remote chain is modified."},"eventSelector":"95dc51094cd27cf4ee3fd0dbb50cf96f8df1629c822f5434c4a34d7eb03c9724","id":9473,"name":"SetMaxDailyReceiveLimit","nameLocation":"4334:23:42","nodeType":"EventDefinition","parameters":{"id":9472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9467,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"4365:7:42","nodeType":"VariableDeclaration","scope":9473,"src":"4358:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9466,"name":"uint16","nodeType":"ElementaryTypeName","src":"4358:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9469,"indexed":false,"mutability":"mutable","name":"oldMaxLimit","nameLocation":"4382:11:42","nodeType":"VariableDeclaration","scope":9473,"src":"4374:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9468,"name":"uint256","nodeType":"ElementaryTypeName","src":"4374:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9471,"indexed":false,"mutability":"mutable","name":"newMaxLimit","nameLocation":"4403:11:42","nodeType":"VariableDeclaration","scope":9473,"src":"4395:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9470,"name":"uint256","nodeType":"ElementaryTypeName","src":"4395:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4357:58:42"},"src":"4328:88:42"},{"anonymous":false,"documentation":{"id":9474,"nodeType":"StructuredDocumentation","src":"4421:65:42","text":" @notice Event emitted when oracle is modified."},"eventSelector":"05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd","id":9480,"name":"OracleChanged","nameLocation":"4497:13:42","nodeType":"EventDefinition","parameters":{"id":9479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9476,"indexed":true,"mutability":"mutable","name":"oldOracle","nameLocation":"4527:9:42","nodeType":"VariableDeclaration","scope":9480,"src":"4511:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9475,"name":"address","nodeType":"ElementaryTypeName","src":"4511:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9478,"indexed":true,"mutability":"mutable","name":"newOracle","nameLocation":"4554:9:42","nodeType":"VariableDeclaration","scope":9480,"src":"4538:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9477,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4510:54:42"},"src":"4491:74:42"},{"anonymous":false,"documentation":{"id":9481,"nodeType":"StructuredDocumentation","src":"4570:75:42","text":" @notice Event emitted when trusted remote sets to empty."},"eventSelector":"6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd37","id":9485,"name":"TrustedRemoteRemoved","nameLocation":"4656:20:42","nodeType":"EventDefinition","parameters":{"id":9484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9483,"indexed":false,"mutability":"mutable","name":"chainId","nameLocation":"4684:7:42","nodeType":"VariableDeclaration","scope":9485,"src":"4677:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9482,"name":"uint16","nodeType":"ElementaryTypeName","src":"4677:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4676:16:42"},"src":"4650:43:42"},{"anonymous":false,"documentation":{"id":9486,"nodeType":"StructuredDocumentation","src":"4698:75:42","text":" @notice Event emitted when inner token set successfully."},"eventSelector":"0b673f021ff9a27bbe58f282908695869e130b3103029190387b83650806c2c3","id":9490,"name":"InnerTokenAdded","nameLocation":"4784:15:42","nodeType":"EventDefinition","parameters":{"id":9489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9488,"indexed":true,"mutability":"mutable","name":"innerToken","nameLocation":"4816:10:42","nodeType":"VariableDeclaration","scope":9490,"src":"4800:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9487,"name":"address","nodeType":"ElementaryTypeName","src":"4800:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4799:28:42"},"src":"4778:50:42"},{"anonymous":false,"documentation":{"id":9491,"nodeType":"StructuredDocumentation","src":"4833:56:42","text":"@notice Emitted on sweep token success"},"eventSelector":"6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5","id":9499,"name":"SweepToken","nameLocation":"4900:10:42","nodeType":"EventDefinition","parameters":{"id":9498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9493,"indexed":true,"mutability":"mutable","name":"token","nameLocation":"4927:5:42","nodeType":"VariableDeclaration","scope":9499,"src":"4911:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9492,"name":"address","nodeType":"ElementaryTypeName","src":"4911:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9495,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4950:2:42","nodeType":"VariableDeclaration","scope":9499,"src":"4934:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9494,"name":"address","nodeType":"ElementaryTypeName","src":"4934:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9497,"indexed":false,"mutability":"mutable","name":"sweepAmount","nameLocation":"4962:11:42","nodeType":"VariableDeclaration","scope":9499,"src":"4954:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9496,"name":"uint256","nodeType":"ElementaryTypeName","src":"4954:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4910:64:42"},"src":"4894:81:42"},{"anonymous":false,"documentation":{"id":9500,"nodeType":"StructuredDocumentation","src":"4980:86:42","text":" @notice Event emitted when SendAndCallEnabled updated successfully."},"eventSelector":"e628f01c6f4e6340598d3a2913390db68e8859379eebff349e170f2b16baed00","id":9504,"name":"UpdateSendAndCallEnabled","nameLocation":"5077:24:42","nodeType":"EventDefinition","parameters":{"id":9503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9502,"indexed":true,"mutability":"mutable","name":"enabled","nameLocation":"5115:7:42","nodeType":"VariableDeclaration","scope":9504,"src":"5102:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9501,"name":"bool","nodeType":"ElementaryTypeName","src":"5102:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5101:22:42"},"src":"5071:53:42"},{"documentation":{"id":9505,"nodeType":"StructuredDocumentation","src":"5129:91:42","text":"@notice Error thrown when this contract balance is less than sweep amount"},"errorSelector":"cf479181","id":9511,"name":"InsufficientBalance","nameLocation":"5231:19:42","nodeType":"ErrorDefinition","parameters":{"id":9510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9507,"mutability":"mutable","name":"sweepAmount","nameLocation":"5259:11:42","nodeType":"VariableDeclaration","scope":9511,"src":"5251:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9506,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9509,"mutability":"mutable","name":"balance","nameLocation":"5280:7:42","nodeType":"VariableDeclaration","scope":9511,"src":"5272:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9508,"name":"uint256","nodeType":"ElementaryTypeName","src":"5272:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5250:38:42"},"src":"5225:64:42"},{"body":{"id":9606,"nodeType":"Block","src":"6138:708:42","statements":[{"expression":{"arguments":[{"id":9528,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9514,"src":"6169:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9527,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"6148:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":9529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6148:35:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9530,"nodeType":"ExpressionStatement","src":"6148:35:42"},{"expression":{"arguments":[{"id":9532,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9518,"src":"6214:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9531,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"6193:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":9533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6193:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9534,"nodeType":"ExpressionStatement","src":"6193:33:42"},{"expression":{"arguments":[{"id":9536,"name":"oracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"6257:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9535,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"6236:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":9537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6236:29:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9538,"nodeType":"ExpressionStatement","src":"6236:29:42"},{"expression":{"id":9543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9539,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"6276:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9541,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9514,"src":"6296:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9540,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"6289:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6261_$","typeString":"type(contract IERC20)"}},"id":9542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:21:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"src":"6276:34:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":9544,"nodeType":"ExpressionStatement","src":"6276:34:42"},{"assignments":[9546,9548],"declarations":[{"constant":false,"id":9546,"mutability":"mutable","name":"success","nameLocation":"6327:7:42","nodeType":"VariableDeclaration","scope":9606,"src":"6322:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9545,"name":"bool","nodeType":"ElementaryTypeName","src":"6322:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9548,"mutability":"mutable","name":"data","nameLocation":"6349:4:42","nodeType":"VariableDeclaration","scope":9606,"src":"6336:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9547,"name":"bytes","nodeType":"ElementaryTypeName","src":"6336:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9556,"initialValue":{"arguments":[{"arguments":[{"hexValue":"646563696d616c732829","id":9553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6406:12:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9","typeString":"literal_string \"decimals()\""},"value":"decimals()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9","typeString":"literal_string \"decimals()\""}],"expression":{"id":9551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6382:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6386:19:42","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6382:23:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6382:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9549,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9514,"src":"6357:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6371:10:42","memberName":"staticcall","nodeType":"MemberAccess","src":"6357:24:42","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":9555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6357:63:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6321:99:42"},{"expression":{"arguments":[{"id":9558,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9546,"src":"6438:7:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a206661696c656420746f2067657420746f6b656e20646563696d616c73","id":9559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6447:40:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","typeString":"literal_string \"ProxyOFT: failed to get token decimals\""},"value":"ProxyOFT: failed to get token decimals"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","typeString":"literal_string \"ProxyOFT: failed to get token decimals\""}],"id":9557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6430:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:58:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9561,"nodeType":"ExpressionStatement","src":"6430:58:42"},{"assignments":[9563],"declarations":[{"constant":false,"id":9563,"mutability":"mutable","name":"decimals","nameLocation":"6504:8:42","nodeType":"VariableDeclaration","scope":9606,"src":"6498:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9562,"name":"uint8","nodeType":"ElementaryTypeName","src":"6498:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":9571,"initialValue":{"arguments":[{"id":9566,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9548,"src":"6526:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6533:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":9567,"name":"uint8","nodeType":"ElementaryTypeName","src":"6533:5:42","typeDescriptions":{}}}],"id":9569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6532:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"expression":{"id":9564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6515:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6519:6:42","memberName":"decode","nodeType":"MemberAccess","src":"6515:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6515:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"6498:42:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9573,"name":"sharedDecimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"6559:15:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9574,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9563,"src":"6578:8:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6559:27:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a20736861726564446563696d616c73206d757374206265203c3d20646563696d616c73","id":9576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6588:46:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","typeString":"literal_string \"ProxyOFT: sharedDecimals must be <= decimals\""},"value":"ProxyOFT: sharedDecimals must be <= decimals"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","typeString":"literal_string \"ProxyOFT: sharedDecimals must be <= decimals\""}],"id":9572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6551:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9578,"nodeType":"ExpressionStatement","src":"6551:84:42"},{"expression":{"id":9586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9579,"name":"ld2sdRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9379,"src":"6645:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":9580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6657:2:42","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":9583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9581,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9563,"src":"6664:8:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9582,"name":"sharedDecimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"6675:15:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6664:26:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":9584,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6663:28:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6657:34:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6645:46:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9587,"nodeType":"ExpressionStatement","src":"6645:46:42"},{"eventCall":{"arguments":[{"id":9589,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9514,"src":"6723:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9588,"name":"InnerTokenAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"6707:15:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6707:30:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9591,"nodeType":"EmitStatement","src":"6702:35:42"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6774:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6766:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9593,"name":"address","nodeType":"ElementaryTypeName","src":"6766:7:42","typeDescriptions":{}}},"id":9596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6766:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9597,"name":"oracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"6778:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9592,"name":"OracleChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"6752:13:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6752:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9599,"nodeType":"EmitStatement","src":"6747:39:42"},{"expression":{"id":9604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9600,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"6797:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9602,"name":"oracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9520,"src":"6831:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9601,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"6806:24:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResilientOracleInterface_$8694_$","typeString":"type(contract ResilientOracleInterface)"}},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"src":"6797:42:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"id":9605,"nodeType":"ExpressionStatement","src":"6797:42:42"}]},"documentation":{"id":9512,"nodeType":"StructuredDocumentation","src":"5295:664:42","text":" @param tokenAddress_ Address of the inner token.\n @param sharedDecimals_ Number of shared decimals.\n @param lzEndpoint_ Address of the layer zero endpoint contract.\n @param oracle_ Address of the price oracle.\n @custom:error ZeroAddressNotAllowed is thrown when token contract address is zero.\n @custom:error ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.\n @custom:error ZeroAddressNotAllowed is thrown when oracle contract address is zero.\n @custom:event Emits InnerTokenAdded with token address.\n @custom:event Emits OracleChanged with zero address and oracle address."},"id":9607,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9523,"name":"sharedDecimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"6108:15:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9524,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9518,"src":"6125:11:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9525,"kind":"baseConstructorSpecifier","modifierName":{"id":9522,"name":"BaseOFTV2","nameLocations":["6098:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":3128,"src":"6098:9:42"},"nodeType":"ModifierInvocation","src":"6098:39:42"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9514,"mutability":"mutable","name":"tokenAddress_","nameLocation":"5993:13:42","nodeType":"VariableDeclaration","scope":9607,"src":"5985:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9513,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9516,"mutability":"mutable","name":"sharedDecimals_","nameLocation":"6022:15:42","nodeType":"VariableDeclaration","scope":9607,"src":"6016:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9515,"name":"uint8","nodeType":"ElementaryTypeName","src":"6016:5:42","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9518,"mutability":"mutable","name":"lzEndpoint_","nameLocation":"6055:11:42","nodeType":"VariableDeclaration","scope":9607,"src":"6047:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9517,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9520,"mutability":"mutable","name":"oracle_","nameLocation":"6084:7:42","nodeType":"VariableDeclaration","scope":9607,"src":"6076:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9519,"name":"address","nodeType":"ElementaryTypeName","src":"6076:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5975:122:42"},"returnParameters":{"id":9526,"nodeType":"ParameterList","parameters":[],"src":"6138:0:42"},"scope":10412,"src":"5964:882:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9633,"nodeType":"Block","src":"7228:173:42","statements":[{"expression":{"arguments":[{"id":9616,"name":"oracleAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"7259:14:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9615,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"7238:20:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":9617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7238:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9618,"nodeType":"ExpressionStatement","src":"7238:36:42"},{"eventCall":{"arguments":[{"arguments":[{"id":9622,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"7311:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}],"id":9621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7303:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9620,"name":"address","nodeType":"ElementaryTypeName","src":"7303:7:42","typeDescriptions":{}}},"id":9623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7303:15:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9624,"name":"oracleAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"7320:14:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9619,"name":"OracleChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"7289:13:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7289:46:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9626,"nodeType":"EmitStatement","src":"7284:51:42"},{"expression":{"id":9631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9627,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"7345:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9629,"name":"oracleAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9610,"src":"7379:14:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9628,"name":"ResilientOracleInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"7354:24:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResilientOracleInterface_$8694_$","typeString":"type(contract ResilientOracleInterface)"}},"id":9630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7354:40:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"src":"7345:49:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"id":9632,"nodeType":"ExpressionStatement","src":"7345:49:42"}]},"documentation":{"id":9608,"nodeType":"StructuredDocumentation","src":"6852:309:42","text":" @notice Set the address of the ResilientOracle contract.\n @dev Reverts if the new address is zero.\n @param oracleAddress_ The new address of the ResilientOracle contract.\n @custom:access Only owner.\n @custom:event Emits OracleChanged with old and new oracle address."},"functionSelector":"7adbf973","id":9634,"implemented":true,"kind":"function","modifiers":[{"id":9613,"kind":"modifierInvocation","modifierName":{"id":9612,"name":"onlyOwner","nameLocations":["7218:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"7218:9:42"},"nodeType":"ModifierInvocation","src":"7218:9:42"}],"name":"setOracle","nameLocation":"7175:9:42","nodeType":"FunctionDefinition","parameters":{"id":9611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9610,"mutability":"mutable","name":"oracleAddress_","nameLocation":"7193:14:42","nodeType":"VariableDeclaration","scope":9634,"src":"7185:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9609,"name":"address","nodeType":"ElementaryTypeName","src":"7185:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7184:24:42"},"returnParameters":{"id":9614,"nodeType":"ParameterList","parameters":[],"src":"7228:0:42"},"scope":10412,"src":"7166:235:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9667,"nodeType":"Block","src":"7818:280:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9645,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9639,"src":"7836:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"baseExpression":{"id":9646,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"7846:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9648,"indexExpression":{"id":9647,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9637,"src":"7869:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7846:32:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7836:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79206c696d6974","id":9650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7880:40:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","typeString":"literal_string \"Single transaction limit > Daily limit\""},"value":"Single transaction limit > Daily limit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","typeString":"literal_string \"Single transaction limit > Daily limit\""}],"id":9644,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7828:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7828:93:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9652,"nodeType":"ExpressionStatement","src":"7828:93:42"},{"eventCall":{"arguments":[{"id":9654,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9637,"src":"7965:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":9655,"name":"chainIdToMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"7975:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9657,"indexExpression":{"id":9656,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9637,"src":"8010:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7975:44:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9658,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9639,"src":"8021:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9653,"name":"SetMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9446,"src":"7936:28:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":9659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7936:92:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9660,"nodeType":"EmitStatement","src":"7931:97:42"},{"expression":{"id":9665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9661,"name":"chainIdToMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"8038:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9663,"indexExpression":{"id":9662,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9637,"src":"8073:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8038:44:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9664,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9639,"src":"8085:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8038:53:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9666,"nodeType":"ExpressionStatement","src":"8038:53:42"}]},"documentation":{"id":9635,"nodeType":"StructuredDocumentation","src":"7407:316:42","text":" @notice Sets the limit of single transaction amount.\n @param chainId_ Destination chain id.\n @param limit_ Amount in USD(scaled with 18 decimals).\n @custom:access Only owner.\n @custom:event Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id."},"functionSelector":"53489d6c","id":9668,"implemented":true,"kind":"function","modifiers":[{"id":9642,"kind":"modifierInvocation","modifierName":{"id":9641,"name":"onlyOwner","nameLocations":["7808:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"7808:9:42"},"nodeType":"ModifierInvocation","src":"7808:9:42"}],"name":"setMaxSingleTransactionLimit","nameLocation":"7737:28:42","nodeType":"FunctionDefinition","parameters":{"id":9640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9637,"mutability":"mutable","name":"chainId_","nameLocation":"7773:8:42","nodeType":"VariableDeclaration","scope":9668,"src":"7766:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9636,"name":"uint16","nodeType":"ElementaryTypeName","src":"7766:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9639,"mutability":"mutable","name":"limit_","nameLocation":"7791:6:42","nodeType":"VariableDeclaration","scope":9668,"src":"7783:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9638,"name":"uint256","nodeType":"ElementaryTypeName","src":"7783:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7765:33:42"},"returnParameters":{"id":9643,"nodeType":"ParameterList","parameters":[],"src":"7818:0:42"},"scope":10412,"src":"7728:370:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9701,"nodeType":"Block","src":"8501:256:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9679,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9673,"src":"8519:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":9680,"name":"chainIdToMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"8529:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9682,"indexExpression":{"id":9681,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"8564:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8529:44:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8519:54:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e206c696d6974","id":9684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8575:40:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","typeString":"literal_string \"Daily limit < single transaction limit\""},"value":"Daily limit < single transaction limit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","typeString":"literal_string \"Daily limit < single transaction limit\""}],"id":9678,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8511:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8511:105:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9686,"nodeType":"ExpressionStatement","src":"8511:105:42"},{"eventCall":{"arguments":[{"id":9688,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"8648:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":9689,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"8658:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9691,"indexExpression":{"id":9690,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"8681:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8658:32:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9692,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9673,"src":"8692:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9687,"name":"SetMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9455,"src":"8631:16:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8631:68:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9694,"nodeType":"EmitStatement","src":"8626:73:42"},{"expression":{"id":9699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9695,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"8709:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9697,"indexExpression":{"id":9696,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"8732:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8709:32:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9698,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9673,"src":"8744:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8709:41:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9700,"nodeType":"ExpressionStatement","src":"8709:41:42"}]},"documentation":{"id":9669,"nodeType":"StructuredDocumentation","src":"8104:314:42","text":" @notice Sets the limit of daily (24 Hour) transactions amount.\n @param chainId_ Destination chain id.\n @param limit_ Amount in USD(scaled with 18 decimals).\n @custom:access Only owner.\n @custom:event Emits setMaxDailyLimit with old and new limit associated with chain id."},"functionSelector":"2488eec8","id":9702,"implemented":true,"kind":"function","modifiers":[{"id":9676,"kind":"modifierInvocation","modifierName":{"id":9675,"name":"onlyOwner","nameLocations":["8491:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"8491:9:42"},"nodeType":"ModifierInvocation","src":"8491:9:42"}],"name":"setMaxDailyLimit","nameLocation":"8432:16:42","nodeType":"FunctionDefinition","parameters":{"id":9674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9671,"mutability":"mutable","name":"chainId_","nameLocation":"8456:8:42","nodeType":"VariableDeclaration","scope":9702,"src":"8449:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9670,"name":"uint16","nodeType":"ElementaryTypeName","src":"8449:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9673,"mutability":"mutable","name":"limit_","nameLocation":"8474:6:42","nodeType":"VariableDeclaration","scope":9702,"src":"8466:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9672,"name":"uint256","nodeType":"ElementaryTypeName","src":"8466:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8448:33:42"},"returnParameters":{"id":9677,"nodeType":"ParameterList","parameters":[],"src":"8501:0:42"},"scope":10412,"src":"8423:334:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9735,"nodeType":"Block","src":"9219:316:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9713,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9707,"src":"9237:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"baseExpression":{"id":9714,"name":"chainIdToMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"9247:29:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9716,"indexExpression":{"id":9715,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"9277:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9247:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9237:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73696e676c652072656365697665207472616e73616374696f6e206c696d6974203e204461696c79206c696d6974","id":9718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9288:48:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","typeString":"literal_string \"single receive transaction limit > Daily limit\""},"value":"single receive transaction limit > Daily limit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","typeString":"literal_string \"single receive transaction limit > Daily limit\""}],"id":9712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9229:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9229:108:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9720,"nodeType":"ExpressionStatement","src":"9229:108:42"},{"eventCall":{"arguments":[{"id":9722,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"9388:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":9723,"name":"chainIdToMaxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"9398:41:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9725,"indexExpression":{"id":9724,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"9440:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9398:51:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9726,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9707,"src":"9451:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9721,"name":"SetMaxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9464,"src":"9352:35:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:106:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9728,"nodeType":"EmitStatement","src":"9347:111:42"},{"expression":{"id":9733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9729,"name":"chainIdToMaxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"9468:41:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9731,"indexExpression":{"id":9730,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"9510:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9468:51:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9732,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9707,"src":"9522:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9468:60:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9734,"nodeType":"ExpressionStatement","src":"9468:60:42"}]},"documentation":{"id":9703,"nodeType":"StructuredDocumentation","src":"8763:354:42","text":" @notice Sets the maximum limit for a single receive transaction.\n @param chainId_ The destination chain ID.\n @param limit_ The new maximum limit in USD(scaled with 18 decimals).\n @custom:access Only owner.\n @custom:event Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id."},"functionSelector":"cc01e9b6","id":9736,"implemented":true,"kind":"function","modifiers":[{"id":9710,"kind":"modifierInvocation","modifierName":{"id":9709,"name":"onlyOwner","nameLocations":["9209:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"9209:9:42"},"nodeType":"ModifierInvocation","src":"9209:9:42"}],"name":"setMaxSingleReceiveTransactionLimit","nameLocation":"9131:35:42","nodeType":"FunctionDefinition","parameters":{"id":9708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9705,"mutability":"mutable","name":"chainId_","nameLocation":"9174:8:42","nodeType":"VariableDeclaration","scope":9736,"src":"9167:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9704,"name":"uint16","nodeType":"ElementaryTypeName","src":"9167:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9707,"mutability":"mutable","name":"limit_","nameLocation":"9192:6:42","nodeType":"VariableDeclaration","scope":9736,"src":"9184:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9706,"name":"uint256","nodeType":"ElementaryTypeName","src":"9184:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9166:33:42"},"returnParameters":{"id":9711,"nodeType":"ParameterList","parameters":[],"src":"9219:0:42"},"scope":10412,"src":"9122:413:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9769,"nodeType":"Block","src":"9979:326:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9747,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"10010:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"baseExpression":{"id":9748,"name":"chainIdToMaxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"10020:41:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9750,"indexExpression":{"id":9749,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"10062:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10020:51:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10010:61:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79206c696d6974203c2073696e676c652072656365697665207472616e73616374696f6e206c696d6974","id":9752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10085:48:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","typeString":"literal_string \"Daily limit < single receive transaction limit\""},"value":"Daily limit < single receive transaction limit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","typeString":"literal_string \"Daily limit < single receive transaction limit\""}],"id":9746,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9989:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9989:154:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9754,"nodeType":"ExpressionStatement","src":"9989:154:42"},{"eventCall":{"arguments":[{"id":9756,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"10182:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"baseExpression":{"id":9757,"name":"chainIdToMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"10192:29:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9759,"indexExpression":{"id":9758,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"10222:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10192:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9760,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"10233:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9755,"name":"SetMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9473,"src":"10158:23:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint16,uint256,uint256)"}},"id":9761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10158:82:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9762,"nodeType":"EmitStatement","src":"10153:87:42"},{"expression":{"id":9767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9763,"name":"chainIdToMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"10250:29:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9765,"indexExpression":{"id":9764,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"10280:8:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10250:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9766,"name":"limit_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"10292:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10250:48:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9768,"nodeType":"ExpressionStatement","src":"10250:48:42"}]},"documentation":{"id":9737,"nodeType":"StructuredDocumentation","src":"9541:348:42","text":" @notice Sets the maximum daily limit for receiving transactions.\n @param chainId_ The destination chain ID.\n @param limit_ The new maximum daily limit in USD(scaled with 18 decimals).\n @custom:access Only owner.\n @custom:event Emits setMaxDailyReceiveLimit with old and new limit associated with chain id."},"functionSelector":"69c1e7b8","id":9770,"implemented":true,"kind":"function","modifiers":[{"id":9744,"kind":"modifierInvocation","modifierName":{"id":9743,"name":"onlyOwner","nameLocations":["9969:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"9969:9:42"},"nodeType":"ModifierInvocation","src":"9969:9:42"}],"name":"setMaxDailyReceiveLimit","nameLocation":"9903:23:42","nodeType":"FunctionDefinition","parameters":{"id":9742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"chainId_","nameLocation":"9934:8:42","nodeType":"VariableDeclaration","scope":9770,"src":"9927:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9738,"name":"uint16","nodeType":"ElementaryTypeName","src":"9927:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9741,"mutability":"mutable","name":"limit_","nameLocation":"9952:6:42","nodeType":"VariableDeclaration","scope":9770,"src":"9944:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9740,"name":"uint256","nodeType":"ElementaryTypeName","src":"9944:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9926:33:42"},"returnParameters":{"id":9745,"nodeType":"ParameterList","parameters":[],"src":"9979:0:42"},"scope":10412,"src":"9894:411:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9791,"nodeType":"Block","src":"10678:80:42","statements":[{"eventCall":{"arguments":[{"id":9781,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9773,"src":"10706:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9782,"name":"val_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9775,"src":"10713:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9780,"name":"SetWhitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9437,"src":"10693:12:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":9783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10693:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9784,"nodeType":"EmitStatement","src":"10688:30:42"},{"expression":{"id":9789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9785,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"10728:9:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9787,"indexExpression":{"id":9786,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9773,"src":"10738:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10728:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9788,"name":"val_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9775,"src":"10747:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10728:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9790,"nodeType":"ExpressionStatement","src":"10728:23:42"}]},"documentation":{"id":9771,"nodeType":"StructuredDocumentation","src":"10311:295:42","text":" @notice Sets the whitelist address to skip checks on transaction limit.\n @param user_ Address to be add in whitelist.\n @param val_ Boolean to be set (true for user_ address is whitelisted).\n @custom:access Only owner.\n @custom:event Emits setWhitelist."},"functionSelector":"53d6fd59","id":9792,"implemented":true,"kind":"function","modifiers":[{"id":9778,"kind":"modifierInvocation","modifierName":{"id":9777,"name":"onlyOwner","nameLocations":["10668:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"10668:9:42"},"nodeType":"ModifierInvocation","src":"10668:9:42"}],"name":"setWhitelist","nameLocation":"10620:12:42","nodeType":"FunctionDefinition","parameters":{"id":9776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9773,"mutability":"mutable","name":"user_","nameLocation":"10641:5:42","nodeType":"VariableDeclaration","scope":9792,"src":"10633:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9772,"name":"address","nodeType":"ElementaryTypeName","src":"10633:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9775,"mutability":"mutable","name":"val_","nameLocation":"10653:4:42","nodeType":"VariableDeclaration","scope":9792,"src":"10648:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9774,"name":"bool","nodeType":"ElementaryTypeName","src":"10648:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10632:26:42"},"returnParameters":{"id":9779,"nodeType":"ParameterList","parameters":[],"src":"10678:0:42"},"scope":10412,"src":"10611:147:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9801,"nodeType":"Block","src":"10903:25:42","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9798,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"10913:6:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10913:8:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9800,"nodeType":"ExpressionStatement","src":"10913:8:42"}]},"documentation":{"id":9793,"nodeType":"StructuredDocumentation","src":"10764:98:42","text":" @notice Triggers stopped state of the bridge.\n @custom:access Only owner."},"functionSelector":"8456cb59","id":9802,"implemented":true,"kind":"function","modifiers":[{"id":9796,"kind":"modifierInvocation","modifierName":{"id":9795,"name":"onlyOwner","nameLocations":["10893:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"10893:9:42"},"nodeType":"ModifierInvocation","src":"10893:9:42"}],"name":"pause","nameLocation":"10876:5:42","nodeType":"FunctionDefinition","parameters":{"id":9794,"nodeType":"ParameterList","parameters":[],"src":"10881:2:42"},"returnParameters":{"id":9797,"nodeType":"ParameterList","parameters":[],"src":"10903:0:42"},"scope":10412,"src":"10867:61:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9811,"nodeType":"Block","src":"11074:27:42","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9808,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5595,"src":"11084:8:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11084:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9810,"nodeType":"ExpressionStatement","src":"11084:10:42"}]},"documentation":{"id":9803,"nodeType":"StructuredDocumentation","src":"10934:97:42","text":" @notice Triggers resume state of the bridge.\n @custom:access Only owner."},"functionSelector":"3f4ba83a","id":9812,"implemented":true,"kind":"function","modifiers":[{"id":9806,"kind":"modifierInvocation","modifierName":{"id":9805,"name":"onlyOwner","nameLocations":["11064:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"11064:9:42"},"nodeType":"ModifierInvocation","src":"11064:9:42"}],"name":"unpause","nameLocation":"11045:7:42","nodeType":"FunctionDefinition","parameters":{"id":9804,"nodeType":"ParameterList","parameters":[],"src":"11052:2:42"},"returnParameters":{"id":9807,"nodeType":"ParameterList","parameters":[],"src":"11074:0:42"},"scope":10412,"src":"11036:65:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9861,"nodeType":"Block","src":"11691:268:42","statements":[{"assignments":[9826],"declarations":[{"constant":false,"id":9826,"mutability":"mutable","name":"balance","nameLocation":"11709:7:42","nodeType":"VariableDeclaration","scope":9861,"src":"11701:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9825,"name":"uint256","nodeType":"ElementaryTypeName","src":"11701:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9834,"initialValue":{"arguments":[{"arguments":[{"id":9831,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11744:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_BaseXVSProxyOFT_$10412","typeString":"contract BaseXVSProxyOFT"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseXVSProxyOFT_$10412","typeString":"contract BaseXVSProxyOFT"}],"id":9830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11736:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9829,"name":"address","nodeType":"ElementaryTypeName","src":"11736:7:42","typeDescriptions":{}}},"id":9832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11736:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9827,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9816,"src":"11719:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":9828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11726:9:42","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"11719:16:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11719:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11701:49:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9835,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9820,"src":"11764:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9836,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"11774:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11764:17:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9844,"nodeType":"IfStatement","src":"11760:92:42","trueBody":{"id":9843,"nodeType":"Block","src":"11783:69:42","statements":[{"errorCall":{"arguments":[{"id":9839,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9820,"src":"11824:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9840,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"11833:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9838,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9511,"src":"11804:19:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":9841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11804:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9842,"nodeType":"RevertStatement","src":"11797:44:42"}]}},{"eventCall":{"arguments":[{"arguments":[{"id":9848,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9816,"src":"11886:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":9847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11878:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9846,"name":"address","nodeType":"ElementaryTypeName","src":"11878:7:42","typeDescriptions":{}}},"id":9849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11878:15:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9850,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9818,"src":"11895:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9851,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9820,"src":"11900:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9845,"name":"SweepToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"11867:10:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11867:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9853,"nodeType":"EmitStatement","src":"11862:46:42"},{"expression":{"arguments":[{"id":9857,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9818,"src":"11939:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9858,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9820,"src":"11944:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9854,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9816,"src":"11919:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":9856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11926:12:42","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6355,"src":"11919:19:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$6261_$","typeString":"function (contract IERC20,address,uint256)"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11919:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9860,"nodeType":"ExpressionStatement","src":"11919:33:42"}]},"documentation":{"id":9813,"nodeType":"StructuredDocumentation","src":"11107:495:42","text":" @notice A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\n @param token_ The address of the ERC-20 token to sweep\n @param to_ The address of the recipient\n @param amount_ The amount of tokens needs to transfer\n @custom:event Emits SweepToken event\n @custom:error Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\n @custom:access Only Owner"},"functionSelector":"64aff9ec","id":9862,"implemented":true,"kind":"function","modifiers":[{"id":9823,"kind":"modifierInvocation","modifierName":{"id":9822,"name":"onlyOwner","nameLocations":["11681:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"11681:9:42"},"nodeType":"ModifierInvocation","src":"11681:9:42"}],"name":"sweepToken","nameLocation":"11616:10:42","nodeType":"FunctionDefinition","parameters":{"id":9821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9816,"mutability":"mutable","name":"token_","nameLocation":"11634:6:42","nodeType":"VariableDeclaration","scope":9862,"src":"11627:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"},"typeName":{"id":9815,"nodeType":"UserDefinedTypeName","pathNode":{"id":9814,"name":"IERC20","nameLocations":["11627:6:42"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"11627:6:42"},"referencedDeclaration":6261,"src":"11627:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9818,"mutability":"mutable","name":"to_","nameLocation":"11650:3:42","nodeType":"VariableDeclaration","scope":9862,"src":"11642:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9817,"name":"address","nodeType":"ElementaryTypeName","src":"11642:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9820,"mutability":"mutable","name":"amount_","nameLocation":"11663:7:42","nodeType":"VariableDeclaration","scope":9862,"src":"11655:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9819,"name":"uint256","nodeType":"ElementaryTypeName","src":"11655:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11626:45:42"},"returnParameters":{"id":9824,"nodeType":"ParameterList","parameters":[],"src":"11691:0:42"},"scope":10412,"src":"11607:352:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9879,"nodeType":"Block","src":"12327:110:42","statements":[{"expression":{"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12337:42:42","subExpression":{"baseExpression":{"id":9870,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"12344:19:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":9872,"indexExpression":{"id":9871,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"12364:14:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12344:35:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9874,"nodeType":"ExpressionStatement","src":"12337:42:42"},{"eventCall":{"arguments":[{"id":9876,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"12415:14:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":9875,"name":"TrustedRemoteRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9485,"src":"12394:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$returns$__$","typeString":"function (uint16)"}},"id":9877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12394:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9878,"nodeType":"EmitStatement","src":"12389:41:42"}]},"documentation":{"id":9863,"nodeType":"StructuredDocumentation","src":"11965:286:42","text":" @notice Remove trusted remote from storage.\n @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty.\n @custom:access Only owner.\n @custom:event Emits TrustedRemoteRemoved once chain id is removed from trusted remote."},"functionSelector":"2dbbec08","id":9880,"implemented":true,"kind":"function","modifiers":[{"id":9868,"kind":"modifierInvocation","modifierName":{"id":9867,"name":"onlyOwner","nameLocations":["12317:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"12317:9:42"},"nodeType":"ModifierInvocation","src":"12317:9:42"}],"name":"removeTrustedRemote","nameLocation":"12265:19:42","nodeType":"FunctionDefinition","parameters":{"id":9866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9865,"mutability":"mutable","name":"remoteChainId_","nameLocation":"12292:14:42","nodeType":"VariableDeclaration","scope":9880,"src":"12285:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9864,"name":"uint16","nodeType":"ElementaryTypeName","src":"12285:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"12284:23:42"},"returnParameters":{"id":9869,"nodeType":"ParameterList","parameters":[],"src":"12327:0:42"},"scope":10412,"src":"12256:181:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9896,"nodeType":"Block","src":"12713:95:42","statements":[{"expression":{"id":9890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9888,"name":"sendAndCallEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9381,"src":"12723:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9889,"name":"enabled_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"12744:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12723:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9891,"nodeType":"ExpressionStatement","src":"12723:29:42"},{"eventCall":{"arguments":[{"id":9893,"name":"enabled_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9883,"src":"12792:8:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9892,"name":"UpdateSendAndCallEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9504,"src":"12767:24:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":9894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12767:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9895,"nodeType":"EmitStatement","src":"12762:39:42"}]},"documentation":{"id":9881,"nodeType":"StructuredDocumentation","src":"12443:197:42","text":" @notice It enables or disables sendAndCall functionality for the bridge.\n @param enabled_ Boolean indicating whether the sendAndCall function should be enabled or disabled."},"functionSelector":"4ed2c662","id":9897,"implemented":true,"kind":"function","modifiers":[{"id":9886,"kind":"modifierInvocation","modifierName":{"id":9885,"name":"onlyOwner","nameLocations":["12703:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"12703:9:42"},"nodeType":"ModifierInvocation","src":"12703:9:42"}],"name":"updateSendAndCallEnabled","nameLocation":"12654:24:42","nodeType":"FunctionDefinition","parameters":{"id":9884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9883,"mutability":"mutable","name":"enabled_","nameLocation":"12684:8:42","nodeType":"VariableDeclaration","scope":9897,"src":"12679:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9882,"name":"bool","nodeType":"ElementaryTypeName","src":"12679:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12678:15:42"},"returnParameters":{"id":9887,"nodeType":"ParameterList","parameters":[],"src":"12713:0:42"},"scope":10412,"src":"12645:163:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10010,"nodeType":"Block","src":"14417:1122:42","statements":[{"expression":{"id":9925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9921,"name":"isWhiteListedUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"14483:17:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":9922,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"14503:9:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9924,"indexExpression":{"id":9923,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9900,"src":"14513:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14503:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14483:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9926,"nodeType":"ExpressionStatement","src":"14483:36:42"},{"assignments":[9929],"declarations":[{"constant":false,"id":9929,"mutability":"mutable","name":"oraclePrice","nameLocation":"14603:11:42","nodeType":"VariableDeclaration","scope":10010,"src":"14592:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":9928,"nodeType":"UserDefinedTypeName","pathNode":{"id":9927,"name":"Exp","nameLocations":["14592:3:42"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"14592:3:42"},"referencedDeclaration":8715,"src":"14592:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"id":9937,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9933,"name":"token","nodeType":"Identifier","overloadedDeclarations":[10118],"referencedDeclaration":10118,"src":"14649:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14649:7:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9931,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"14633:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"id":9932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14640:8:42","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":8673,"src":"14633:15:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14633:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9930,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"14617:3:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":9936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14623:8:42"],"names":["mantissa"],"nodeType":"FunctionCall","src":"14617:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"nodeType":"VariableDeclarationStatement","src":"14592:68:42"},{"expression":{"id":9943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9938,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"14670:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9940,"name":"oraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9929,"src":"14703:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},{"id":9941,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9904,"src":"14716:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9939,"name":"mul_ScalarTruncate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"14684:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ExponentialNoError.Exp memory,uint256) pure returns (uint256)"}},"id":9942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:40:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14670:54:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9944,"nodeType":"ExpressionStatement","src":"14670:54:42"},{"assignments":[9946],"declarations":[{"constant":false,"id":9946,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"14796:21:42","nodeType":"VariableDeclaration","scope":10010,"src":"14788:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9945,"name":"uint256","nodeType":"ElementaryTypeName","src":"14788:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9949,"initialValue":{"expression":{"id":9947,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14820:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14826:9:42","memberName":"timestamp","nodeType":"MemberAccess","src":"14820:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14788:47:42"},{"expression":{"id":9954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9950,"name":"last24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"14845:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":9951,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"14869:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9953,"indexExpression":{"id":9952,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9902,"src":"14900:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14869:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14845:67:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9955,"nodeType":"ExpressionStatement","src":"14845:67:42"},{"expression":{"id":9960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9956,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9915,"src":"14922:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":9957,"name":"chainIdToLast24HourTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9400,"src":"14944:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9959,"indexExpression":{"id":9958,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9902,"src":"14975:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14944:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14922:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9961,"nodeType":"ExpressionStatement","src":"14922:65:42"},{"expression":{"id":9966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9962,"name":"maxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"14997:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":9963,"name":"chainIdToMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"15025:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9965,"indexExpression":{"id":9964,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9902,"src":"15060:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15025:47:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14997:75:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9967,"nodeType":"ExpressionStatement","src":"14997:75:42"},{"expression":{"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9968,"name":"maxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9911,"src":"15082:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":9969,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"15098:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":9971,"indexExpression":{"id":9970,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9902,"src":"15121:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15098:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15082:51:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9973,"nodeType":"ExpressionStatement","src":"15082:51:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9974,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"15147:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9975,"name":"last24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"15171:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15147:45:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":9977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15195:6:42","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"15147:54:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9992,"nodeType":"Block","src":"15326:59:42","statements":[{"expression":{"id":9990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9988,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9915,"src":"15340:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9989,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"15363:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15340:34:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9991,"nodeType":"ExpressionStatement","src":"15340:34:42"}]},"id":9993,"nodeType":"IfStatement","src":"15143:242:42","trueBody":{"id":9987,"nodeType":"Block","src":"15203:117:42","statements":[{"expression":{"id":9981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9979,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9915,"src":"15217:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9980,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"15239:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15217:33:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9982,"nodeType":"ExpressionStatement","src":"15217:33:42"},{"expression":{"id":9985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9983,"name":"last24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"15264:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9984,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"15288:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15264:45:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9986,"nodeType":"ExpressionStatement","src":"15264:45:42"}]}},{"expression":{"id":10008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9994,"name":"eligibleToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9907,"src":"15394:14:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9995,"name":"isWhiteListedUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"15412:17:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9996,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"15447:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9997,"name":"maxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"15462:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15447:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9999,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15446:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10000,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9915,"src":"15493:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10001,"name":"maxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9911,"src":"15516:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15493:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15492:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15446:84:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15445:86:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15412:119:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10007,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15411:121:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15394:138:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10009,"nodeType":"ExpressionStatement","src":"15394:138:42"}]},"documentation":{"id":9898,"nodeType":"StructuredDocumentation","src":"12814:1161:42","text":" @notice Checks the eligibility of a sender to initiate a cross-chain token transfer.\n @dev This external view function assesses whether the specified sender is eligible to transfer the given amount\n      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\n @param from_ The sender's address initiating the transfer.\n @param dstChainId_ Indicates destination chain.\n @param amount_ The quantity of tokens to be transferred.\n @return eligibleToSend A boolean indicating whether the sender is eligible to transfer the tokens.\n @return maxSingleTransactionLimit The maximum limit for a single transaction.\n @return maxDailyLimit The maximum daily limit for transactions.\n @return amountInUsd The equivalent amount in USD based on the oracle price.\n @return transferredInWindow The total amount transferred in the current 24-hour window.\n @return last24HourWindowStart The timestamp when the current 24-hour window started.\n @return isWhiteListedUser A boolean indicating whether the sender is whitelisted."},"functionSelector":"182b4b89","id":10011,"implemented":true,"kind":"function","modifiers":[],"name":"isEligibleToSend","nameLocation":"13989:16:42","nodeType":"FunctionDefinition","parameters":{"id":9905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9900,"mutability":"mutable","name":"from_","nameLocation":"14023:5:42","nodeType":"VariableDeclaration","scope":10011,"src":"14015:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9899,"name":"address","nodeType":"ElementaryTypeName","src":"14015:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9902,"mutability":"mutable","name":"dstChainId_","nameLocation":"14045:11:42","nodeType":"VariableDeclaration","scope":10011,"src":"14038:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":9901,"name":"uint16","nodeType":"ElementaryTypeName","src":"14038:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":9904,"mutability":"mutable","name":"amount_","nameLocation":"14074:7:42","nodeType":"VariableDeclaration","scope":10011,"src":"14066:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9903,"name":"uint256","nodeType":"ElementaryTypeName","src":"14066:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14005:82:42"},"returnParameters":{"id":9920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9907,"mutability":"mutable","name":"eligibleToSend","nameLocation":"14153:14:42","nodeType":"VariableDeclaration","scope":10011,"src":"14148:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9906,"name":"bool","nodeType":"ElementaryTypeName","src":"14148:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9909,"mutability":"mutable","name":"maxSingleTransactionLimit","nameLocation":"14189:25:42","nodeType":"VariableDeclaration","scope":10011,"src":"14181:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9908,"name":"uint256","nodeType":"ElementaryTypeName","src":"14181:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9911,"mutability":"mutable","name":"maxDailyLimit","nameLocation":"14236:13:42","nodeType":"VariableDeclaration","scope":10011,"src":"14228:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9910,"name":"uint256","nodeType":"ElementaryTypeName","src":"14228:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9913,"mutability":"mutable","name":"amountInUsd","nameLocation":"14271:11:42","nodeType":"VariableDeclaration","scope":10011,"src":"14263:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9912,"name":"uint256","nodeType":"ElementaryTypeName","src":"14263:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9915,"mutability":"mutable","name":"transferredInWindow","nameLocation":"14304:19:42","nodeType":"VariableDeclaration","scope":10011,"src":"14296:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9914,"name":"uint256","nodeType":"ElementaryTypeName","src":"14296:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9917,"mutability":"mutable","name":"last24HourWindowStart","nameLocation":"14345:21:42","nodeType":"VariableDeclaration","scope":10011,"src":"14337:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9916,"name":"uint256","nodeType":"ElementaryTypeName","src":"14337:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9919,"mutability":"mutable","name":"isWhiteListedUser","nameLocation":"14385:17:42","nodeType":"VariableDeclaration","scope":10011,"src":"14380:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9918,"name":"bool","nodeType":"ElementaryTypeName","src":"14380:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14134:278:42"},"scope":10412,"src":"13980:1559:42","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3032],"body":{"id":10048,"nodeType":"Block","src":"16774:179:42","statements":[{"expression":{"arguments":[{"id":10032,"name":"sendAndCallEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9381,"src":"16792:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73656e64416e6443616c6c2069732064697361626c6564","id":10033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16812:25:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","typeString":"literal_string \"sendAndCall is disabled\""},"value":"sendAndCall is disabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","typeString":"literal_string \"sendAndCall is disabled\""}],"id":10031,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16784:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16784:54:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10035,"nodeType":"ExpressionStatement","src":"16784:54:42"},{"expression":{"arguments":[{"id":10039,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"16867:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10040,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10016,"src":"16874:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10041,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10018,"src":"16887:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10042,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10020,"src":"16899:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10043,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10022,"src":"16908:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":10044,"name":"dstGasForCall_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10024,"src":"16918:14:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":10045,"name":"callparams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10027,"src":"16934:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams calldata"}],"expression":{"id":10036,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16849:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseXVSProxyOFT_$10412_$","typeString":"type(contract super BaseXVSProxyOFT)"}},"id":10038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16855:11:42","memberName":"sendAndCall","nodeType":"MemberAccess","referencedDeclaration":3032,"src":"16849:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_bytes32_$_t_uint256_$_t_bytes_calldata_ptr_$_t_uint64_$_t_struct$_LzCallParams_$4096_calldata_ptr_$returns$__$","typeString":"function (address,uint16,bytes32,uint256,bytes calldata,uint64,struct ICommonOFT.LzCallParams calldata)"}},"id":10046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16849:97:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10047,"nodeType":"ExpressionStatement","src":"16849:97:42"}]},"documentation":{"id":10012,"nodeType":"StructuredDocumentation","src":"15545:962:42","text":" @notice Initiates a cross-chain token transfer and triggers a call on the destination chain.\n @dev This internal override function enables the contract to send tokens and invoke calls on the specified\n      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\n @param from_ Address from which tokens will be debited.\n @param dstChainId_ Destination chain id on which tokens will be send.\n @param toAddress_ Address on which tokens will be credited on destination chain.\n @param amount_ Amount of tokens that will be transferred.\n @param payload_ Additional data payload for the call on the destination chain.\n @param dstGasForCall_ The amount of gas allocated for the call on the destination chain.\n @param callparams_ Additional parameters, including refund address, ZRO payment address,\n                   and adapter params."},"functionSelector":"76203b48","id":10049,"implemented":true,"kind":"function","modifiers":[],"name":"sendAndCall","nameLocation":"16521:11:42","nodeType":"FunctionDefinition","overrides":{"id":10029,"nodeType":"OverrideSpecifier","overrides":[],"src":"16765:8:42"},"parameters":{"id":10028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10014,"mutability":"mutable","name":"from_","nameLocation":"16550:5:42","nodeType":"VariableDeclaration","scope":10049,"src":"16542:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10013,"name":"address","nodeType":"ElementaryTypeName","src":"16542:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10016,"mutability":"mutable","name":"dstChainId_","nameLocation":"16572:11:42","nodeType":"VariableDeclaration","scope":10049,"src":"16565:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10015,"name":"uint16","nodeType":"ElementaryTypeName","src":"16565:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10018,"mutability":"mutable","name":"toAddress_","nameLocation":"16601:10:42","nodeType":"VariableDeclaration","scope":10049,"src":"16593:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16593:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10020,"mutability":"mutable","name":"amount_","nameLocation":"16629:7:42","nodeType":"VariableDeclaration","scope":10049,"src":"16621:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10019,"name":"uint256","nodeType":"ElementaryTypeName","src":"16621:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10022,"mutability":"mutable","name":"payload_","nameLocation":"16661:8:42","nodeType":"VariableDeclaration","scope":10049,"src":"16646:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10021,"name":"bytes","nodeType":"ElementaryTypeName","src":"16646:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10024,"mutability":"mutable","name":"dstGasForCall_","nameLocation":"16686:14:42","nodeType":"VariableDeclaration","scope":10049,"src":"16679:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10023,"name":"uint64","nodeType":"ElementaryTypeName","src":"16679:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":10027,"mutability":"mutable","name":"callparams_","nameLocation":"16732:11:42","nodeType":"VariableDeclaration","scope":10049,"src":"16710:33:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_calldata_ptr","typeString":"struct ICommonOFT.LzCallParams"},"typeName":{"id":10026,"nodeType":"UserDefinedTypeName","pathNode":{"id":10025,"name":"LzCallParams","nameLocations":["16710:12:42"],"nodeType":"IdentifierPath","referencedDeclaration":4096,"src":"16710:12:42"},"referencedDeclaration":4096,"src":"16710:12:42","typeDescriptions":{"typeIdentifier":"t_struct$_LzCallParams_$4096_storage_ptr","typeString":"struct ICommonOFT.LzCallParams"}},"visibility":"internal"}],"src":"16532:217:42"},"returnParameters":{"id":10030,"nodeType":"ParameterList","parameters":[],"src":"16774:0:42"},"scope":10412,"src":"16512:441:42","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[1211],"body":{"id":10098,"nodeType":"Block","src":"17131:533:42","statements":[{"assignments":[10062],"declarations":[{"constant":false,"id":10062,"mutability":"mutable","name":"trustedRemote","nameLocation":"17154:13:42","nodeType":"VariableDeclaration","scope":10098,"src":"17141:26:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10061,"name":"bytes","nodeType":"ElementaryTypeName","src":"17141:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10066,"initialValue":{"baseExpression":{"id":10063,"name":"trustedRemoteLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"17170:19:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_bytes_storage_$","typeString":"mapping(uint16 => bytes storage ref)"}},"id":10065,"indexExpression":{"id":10064,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10051,"src":"17190:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17170:32:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17141:61:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10068,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"17365:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":10069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17377:6:42","memberName":"length","nodeType":"MemberAccess","src":"17365:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":10070,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"17387:13:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17401:6:42","memberName":"length","nodeType":"MemberAccess","src":"17387:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17365:42:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10073,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"17427:13:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17441:6:42","memberName":"length","nodeType":"MemberAccess","src":"17427:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17450:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17427:24:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17365:86:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10079,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"17481:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":10078,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17471:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17471:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":10082,"name":"trustedRemote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"17507:13:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10081,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17497:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17497:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17471:50:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17365:156:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6e7472616374","id":10086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17535:40:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""},"value":"LzApp: invalid source sending contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","typeString":"literal_string \"LzApp: invalid source sending contract\""}],"id":10067,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17344:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17344:241:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10088,"nodeType":"ExpressionStatement","src":"17344:241:42"},{"expression":{"arguments":[{"id":10092,"name":"_srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10051,"src":"17614:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10093,"name":"_srcAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"17627:11:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":10094,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"17640:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":10095,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10057,"src":"17648:8:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":10089,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"17595:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseXVSProxyOFT_$10412_$","typeString":"type(contract super BaseXVSProxyOFT)"}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17601:12:42","memberName":"retryMessage","nodeType":"MemberAccess","referencedDeclaration":1211,"src":"17595:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint16_$_t_bytes_calldata_ptr_$_t_uint64_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (uint16,bytes calldata,uint64,bytes calldata)"}},"id":10096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17595:62:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10097,"nodeType":"ExpressionStatement","src":"17595:62:42"}]},"functionSelector":"d1deba1f","id":10099,"implemented":true,"kind":"function","modifiers":[],"name":"retryMessage","nameLocation":"16968:12:42","nodeType":"FunctionDefinition","overrides":{"id":10059,"nodeType":"OverrideSpecifier","overrides":[],"src":"17122:8:42"},"parameters":{"id":10058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10051,"mutability":"mutable","name":"_srcChainId","nameLocation":"16997:11:42","nodeType":"VariableDeclaration","scope":10099,"src":"16990:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10050,"name":"uint16","nodeType":"ElementaryTypeName","src":"16990:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10053,"mutability":"mutable","name":"_srcAddress","nameLocation":"17033:11:42","nodeType":"VariableDeclaration","scope":10099,"src":"17018:26:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10052,"name":"bytes","nodeType":"ElementaryTypeName","src":"17018:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10055,"mutability":"mutable","name":"_nonce","nameLocation":"17061:6:42","nodeType":"VariableDeclaration","scope":10099,"src":"17054:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10054,"name":"uint64","nodeType":"ElementaryTypeName","src":"17054:6:42","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":10057,"mutability":"mutable","name":"_payload","nameLocation":"17092:8:42","nodeType":"VariableDeclaration","scope":10099,"src":"17077:23:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10056,"name":"bytes","nodeType":"ElementaryTypeName","src":"17077:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16980:126:42"},"returnParameters":{"id":10060,"nodeType":"ParameterList","parameters":[],"src":"17131:0:42"},"scope":10412,"src":"16959:705:42","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[5444],"body":{"id":10104,"nodeType":"Block","src":"17816:2:42","statements":[]},"documentation":{"id":10100,"nodeType":"StructuredDocumentation","src":"17670:96:42","text":" @notice Empty implementation of renounce ownership to avoid any mishappening."},"functionSelector":"715018a6","id":10105,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"17780:17:42","nodeType":"FunctionDefinition","overrides":{"id":10102,"nodeType":"OverrideSpecifier","overrides":[],"src":"17807:8:42"},"parameters":{"id":10101,"nodeType":"ParameterList","parameters":[],"src":"17797:2:42"},"returnParameters":{"id":10103,"nodeType":"ParameterList","parameters":[],"src":"17816:0:42"},"scope":10412,"src":"17771:47:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3127],"body":{"id":10117,"nodeType":"Block","src":"18025:43:42","statements":[{"expression":{"arguments":[{"id":10114,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"18050:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":10113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18042:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10112,"name":"address","nodeType":"ElementaryTypeName","src":"18042:7:42","typeDescriptions":{}}},"id":10115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18042:19:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10111,"id":10116,"nodeType":"Return","src":"18035:26:42"}]},"documentation":{"id":10106,"nodeType":"StructuredDocumentation","src":"17824:140:42","text":" @notice Return's the address of the inner token of this bridge.\n @return Address of the inner token of this bridge."},"functionSelector":"fc0c546a","id":10118,"implemented":true,"kind":"function","modifiers":[],"name":"token","nameLocation":"17978:5:42","nodeType":"FunctionDefinition","overrides":{"id":10108,"nodeType":"OverrideSpecifier","overrides":[],"src":"17998:8:42"},"parameters":{"id":10107,"nodeType":"ParameterList","parameters":[],"src":"17983:2:42"},"returnParameters":{"id":10111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10118,"src":"18016:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10109,"name":"address","nodeType":"ElementaryTypeName","src":"18016:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18015:9:42"},"scope":10412,"src":"17969:99:42","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10230,"nodeType":"Block","src":"18409:1702:42","statements":[{"assignments":[10129],"declarations":[{"constant":false,"id":10129,"mutability":"mutable","name":"isWhiteListedUser","nameLocation":"18480:17:42","nodeType":"VariableDeclaration","scope":10230,"src":"18475:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10128,"name":"bool","nodeType":"ElementaryTypeName","src":"18475:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":10133,"initialValue":{"baseExpression":{"id":10130,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"18500:9:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":10132,"indexExpression":{"id":10131,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10121,"src":"18510:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18500:16:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18475:41:42"},{"condition":{"id":10134,"name":"isWhiteListedUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10129,"src":"18593:17:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10137,"nodeType":"IfStatement","src":"18589:54:42","trueBody":{"id":10136,"nodeType":"Block","src":"18612:31:42","statements":[{"functionReturnParameters":10127,"id":10135,"nodeType":"Return","src":"18626:7:42"}]}},{"assignments":[10139],"declarations":[{"constant":false,"id":10139,"mutability":"mutable","name":"amountInUsd","nameLocation":"18723:11:42","nodeType":"VariableDeclaration","scope":10230,"src":"18715:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10138,"name":"uint256","nodeType":"ElementaryTypeName","src":"18715:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10140,"nodeType":"VariableDeclarationStatement","src":"18715:19:42"},{"assignments":[10143],"declarations":[{"constant":false,"id":10143,"mutability":"mutable","name":"oraclePrice","nameLocation":"18755:11:42","nodeType":"VariableDeclaration","scope":10230,"src":"18744:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":10142,"nodeType":"UserDefinedTypeName","pathNode":{"id":10141,"name":"Exp","nameLocations":["18744:3:42"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"18744:3:42"},"referencedDeclaration":8715,"src":"18744:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"id":10151,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10147,"name":"token","nodeType":"Identifier","overloadedDeclarations":[10118],"referencedDeclaration":10118,"src":"18801:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18801:7:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10145,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"18785:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"id":10146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18792:8:42","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":8673,"src":"18785:15:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":10149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18785:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10144,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"18769:3:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":10150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18775:8:42"],"names":["mantissa"],"nodeType":"FunctionCall","src":"18769:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"nodeType":"VariableDeclarationStatement","src":"18744:68:42"},{"expression":{"id":10157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10152,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"18822:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10154,"name":"oraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10143,"src":"18855:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},{"id":10155,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10125,"src":"18868:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10153,"name":"mul_ScalarTruncate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"18836:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ExponentialNoError.Exp memory,uint256) pure returns (uint256)"}},"id":10156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18836:40:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18822:54:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10158,"nodeType":"ExpressionStatement","src":"18822:54:42"},{"assignments":[10160],"declarations":[{"constant":false,"id":10160,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"18948:21:42","nodeType":"VariableDeclaration","scope":10230,"src":"18940:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10159,"name":"uint256","nodeType":"ElementaryTypeName","src":"18940:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10163,"initialValue":{"expression":{"id":10161,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"18972:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18978:9:42","memberName":"timestamp","nodeType":"MemberAccess","src":"18972:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18940:47:42"},{"assignments":[10165],"declarations":[{"constant":false,"id":10165,"mutability":"mutable","name":"lastDayWindowStart","nameLocation":"19005:18:42","nodeType":"VariableDeclaration","scope":10230,"src":"18997:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10164,"name":"uint256","nodeType":"ElementaryTypeName","src":"18997:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10169,"initialValue":{"baseExpression":{"id":10166,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"19026:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10168,"indexExpression":{"id":10167,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"19057:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19026:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18997:72:42"},{"assignments":[10171],"declarations":[{"constant":false,"id":10171,"mutability":"mutable","name":"transferredInWindow","nameLocation":"19087:19:42","nodeType":"VariableDeclaration","scope":10230,"src":"19079:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10170,"name":"uint256","nodeType":"ElementaryTypeName","src":"19079:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10175,"initialValue":{"baseExpression":{"id":10172,"name":"chainIdToLast24HourTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9400,"src":"19109:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10174,"indexExpression":{"id":10173,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"19140:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19109:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19079:73:42"},{"assignments":[10177],"declarations":[{"constant":false,"id":10177,"mutability":"mutable","name":"maxSingleTransactionLimit","nameLocation":"19170:25:42","nodeType":"VariableDeclaration","scope":10230,"src":"19162:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10176,"name":"uint256","nodeType":"ElementaryTypeName","src":"19162:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10181,"initialValue":{"baseExpression":{"id":10178,"name":"chainIdToMaxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"19198:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10180,"indexExpression":{"id":10179,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"19233:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19198:47:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19162:83:42"},{"assignments":[10183],"declarations":[{"constant":false,"id":10183,"mutability":"mutable","name":"maxDailyLimit","nameLocation":"19263:13:42","nodeType":"VariableDeclaration","scope":10230,"src":"19255:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10182,"name":"uint256","nodeType":"ElementaryTypeName","src":"19255:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10187,"initialValue":{"baseExpression":{"id":10184,"name":"chainIdToMaxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"19279:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10186,"indexExpression":{"id":10185,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"19302:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19279:35:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19255:59:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10189,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"19402:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10190,"name":"maxSingleTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"19417:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19402:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53696e676c65205472616e73616374696f6e204c696d697420457863656564","id":10192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19444:33:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","typeString":"literal_string \"Single Transaction Limit Exceed\""},"value":"Single Transaction Limit Exceed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","typeString":"literal_string \"Single Transaction Limit Exceed\""}],"id":10188,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19394:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19394:84:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10194,"nodeType":"ExpressionStatement","src":"19394:84:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10195,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10160,"src":"19574:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10196,"name":"lastDayWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10165,"src":"19598:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19574:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":10198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19619:6:42","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"19574:51:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10215,"nodeType":"Block","src":"19772:59:42","statements":[{"expression":{"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10211,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10171,"src":"19786:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10212,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"19809:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19786:34:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10214,"nodeType":"ExpressionStatement","src":"19786:34:42"}]},"id":10216,"nodeType":"IfStatement","src":"19570:261:42","trueBody":{"id":10210,"nodeType":"Block","src":"19627:139:42","statements":[{"expression":{"id":10202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10200,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10171,"src":"19641:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10201,"name":"amountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"19663:11:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19641:33:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10203,"nodeType":"ExpressionStatement","src":"19641:33:42"},{"expression":{"id":10208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10204,"name":"chainIdToLast24HourWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"19688:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10206,"indexExpression":{"id":10205,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"19719:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19688:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10207,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10160,"src":"19734:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19688:67:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10209,"nodeType":"ExpressionStatement","src":"19688:67:42"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10218,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10171,"src":"19905:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10219,"name":"maxDailyLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10183,"src":"19928:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19905:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d697420457863656564","id":10221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19943:32:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","typeString":"literal_string \"Daily Transaction Limit Exceed\""},"value":"Daily Transaction Limit Exceed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","typeString":"literal_string \"Daily Transaction Limit Exceed\""}],"id":10217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19897:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19897:79:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10223,"nodeType":"ExpressionStatement","src":"19897:79:42"},{"expression":{"id":10228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10224,"name":"chainIdToLast24HourTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9400,"src":"20039:30:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10226,"indexExpression":{"id":10225,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10123,"src":"20070:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20039:43:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10227,"name":"transferredInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10171,"src":"20085:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20039:65:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10229,"nodeType":"ExpressionStatement","src":"20039:65:42"}]},"documentation":{"id":10119,"nodeType":"StructuredDocumentation","src":"18074:242:42","text":" @notice Checks if the sender is eligible to send tokens\n @param from_ Sender's address sending tokens\n @param dstChainId_ Chain id on which tokens should be sent\n @param amount_ Amount of tokens to be sent"},"id":10231,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToSend","nameLocation":"18330:17:42","nodeType":"FunctionDefinition","parameters":{"id":10126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10121,"mutability":"mutable","name":"from_","nameLocation":"18356:5:42","nodeType":"VariableDeclaration","scope":10231,"src":"18348:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10120,"name":"address","nodeType":"ElementaryTypeName","src":"18348:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10123,"mutability":"mutable","name":"dstChainId_","nameLocation":"18370:11:42","nodeType":"VariableDeclaration","scope":10231,"src":"18363:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10122,"name":"uint16","nodeType":"ElementaryTypeName","src":"18363:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10125,"mutability":"mutable","name":"amount_","nameLocation":"18391:7:42","nodeType":"VariableDeclaration","scope":10231,"src":"18383:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10124,"name":"uint256","nodeType":"ElementaryTypeName","src":"18383:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18347:52:42"},"returnParameters":{"id":10127,"nodeType":"ParameterList","parameters":[],"src":"18409:0:42"},"scope":10412,"src":"18321:1790:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10346,"nodeType":"Block","src":"20462:1866:42","statements":[{"assignments":[10242],"declarations":[{"constant":false,"id":10242,"mutability":"mutable","name":"isWhiteListedUser","nameLocation":"20536:17:42","nodeType":"VariableDeclaration","scope":10346,"src":"20531:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10241,"name":"bool","nodeType":"ElementaryTypeName","src":"20531:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":10246,"initialValue":{"baseExpression":{"id":10243,"name":"whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"20556:9:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":10245,"indexExpression":{"id":10244,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10234,"src":"20566:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20556:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"20531:46:42"},{"condition":{"id":10247,"name":"isWhiteListedUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"20654:17:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10250,"nodeType":"IfStatement","src":"20650:54:42","trueBody":{"id":10249,"nodeType":"Block","src":"20673:31:42","statements":[{"functionReturnParameters":10240,"id":10248,"nodeType":"Return","src":"20687:7:42"}]}},{"assignments":[10252],"declarations":[{"constant":false,"id":10252,"mutability":"mutable","name":"receivedAmountInUsd","nameLocation":"20793:19:42","nodeType":"VariableDeclaration","scope":10346,"src":"20785:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10251,"name":"uint256","nodeType":"ElementaryTypeName","src":"20785:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10253,"nodeType":"VariableDeclarationStatement","src":"20785:27:42"},{"assignments":[10256],"declarations":[{"constant":false,"id":10256,"mutability":"mutable","name":"oraclePrice","nameLocation":"20833:11:42","nodeType":"VariableDeclaration","scope":10346,"src":"20822:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp"},"typeName":{"id":10255,"nodeType":"UserDefinedTypeName","pathNode":{"id":10254,"name":"Exp","nameLocations":["20822:3:42"],"nodeType":"IdentifierPath","referencedDeclaration":8715,"src":"20822:3:42"},"referencedDeclaration":8715,"src":"20822:3:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_storage_ptr","typeString":"struct ExponentialNoError.Exp"}},"visibility":"internal"}],"id":10267,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10262,"name":"token","nodeType":"Identifier","overloadedDeclarations":[10118],"referencedDeclaration":10118,"src":"20887:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20887:7:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20879:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10260,"name":"address","nodeType":"ElementaryTypeName","src":"20879:7:42","typeDescriptions":{}}},"id":10264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20879:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10258,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"20863:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_ResilientOracleInterface_$8694","typeString":"contract ResilientOracleInterface"}},"id":10259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20870:8:42","memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":8673,"src":"20863:15:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":10265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20863:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10257,"name":"Exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8715,"src":"20847:3:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Exp_$8715_storage_ptr_$","typeString":"type(struct ExponentialNoError.Exp storage pointer)"}},"id":10266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20853:8:42"],"names":["mantissa"],"nodeType":"FunctionCall","src":"20847:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},"nodeType":"VariableDeclarationStatement","src":"20822:77:42"},{"expression":{"id":10273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10268,"name":"receivedAmountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"20909:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10270,"name":"oraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10256,"src":"20950:11:42","typeDescriptions":{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"}},{"id":10271,"name":"receivedAmount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"20963:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Exp_$8715_memory_ptr","typeString":"struct ExponentialNoError.Exp memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10269,"name":"mul_ScalarTruncate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"20931:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Exp_$8715_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ExponentialNoError.Exp memory,uint256) pure returns (uint256)"}},"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20931:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20909:70:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10274,"nodeType":"ExpressionStatement","src":"20909:70:42"},{"assignments":[10276],"declarations":[{"constant":false,"id":10276,"mutability":"mutable","name":"currentBlockTimestamp","nameLocation":"20998:21:42","nodeType":"VariableDeclaration","scope":10346,"src":"20990:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10275,"name":"uint256","nodeType":"ElementaryTypeName","src":"20990:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10279,"initialValue":{"expression":{"id":10277,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21022:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21028:9:42","memberName":"timestamp","nodeType":"MemberAccess","src":"21022:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20990:47:42"},{"assignments":[10281],"declarations":[{"constant":false,"id":10281,"mutability":"mutable","name":"lastDayReceiveWindowStart","nameLocation":"21123:25:42","nodeType":"VariableDeclaration","scope":10346,"src":"21115:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10280,"name":"uint256","nodeType":"ElementaryTypeName","src":"21115:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10285,"initialValue":{"baseExpression":{"id":10282,"name":"chainIdToLast24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"21151:37:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10284,"indexExpression":{"id":10283,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"21189:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21151:50:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21115:86:42"},{"assignments":[10287],"declarations":[{"constant":false,"id":10287,"mutability":"mutable","name":"receivedInWindow","nameLocation":"21219:16:42","nodeType":"VariableDeclaration","scope":10346,"src":"21211:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10286,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10291,"initialValue":{"baseExpression":{"id":10288,"name":"chainIdToLast24HourReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9420,"src":"21238:27:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10290,"indexExpression":{"id":10289,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"21266:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21238:40:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21211:67:42"},{"assignments":[10293],"declarations":[{"constant":false,"id":10293,"mutability":"mutable","name":"maxSingleReceiveTransactionLimit","nameLocation":"21296:32:42","nodeType":"VariableDeclaration","scope":10346,"src":"21288:40:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10292,"name":"uint256","nodeType":"ElementaryTypeName","src":"21288:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10297,"initialValue":{"baseExpression":{"id":10294,"name":"chainIdToMaxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"21331:41:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10296,"indexExpression":{"id":10295,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"21373:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21331:54:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21288:97:42"},{"assignments":[10299],"declarations":[{"constant":false,"id":10299,"mutability":"mutable","name":"maxDailyReceiveLimit","nameLocation":"21403:20:42","nodeType":"VariableDeclaration","scope":10346,"src":"21395:28:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10298,"name":"uint256","nodeType":"ElementaryTypeName","src":"21395:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10303,"initialValue":{"baseExpression":{"id":10300,"name":"chainIdToMaxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"21426:29:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10302,"indexExpression":{"id":10301,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"21456:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21426:42:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21395:73:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10305,"name":"receivedAmountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"21564:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10306,"name":"maxSingleReceiveTransactionLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"21587:32:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21564:55:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53696e676c65205472616e73616374696f6e204c696d697420457863656564","id":10308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21621:33:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","typeString":"literal_string \"Single Transaction Limit Exceed\""},"value":"Single Transaction Limit Exceed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","typeString":"literal_string \"Single Transaction Limit Exceed\""}],"id":10304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21556:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21556:99:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10310,"nodeType":"ExpressionStatement","src":"21556:99:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10311,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"21751:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10312,"name":"lastDayReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"21775:25:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21751:49:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":10314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21803:6:42","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"21751:58:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10331,"nodeType":"Block","src":"21968:64:42","statements":[{"expression":{"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10327,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"21982:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10328,"name":"receivedAmountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"22002:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21982:39:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10330,"nodeType":"ExpressionStatement","src":"21982:39:42"}]},"id":10332,"nodeType":"IfStatement","src":"21747:285:42","trueBody":{"id":10326,"nodeType":"Block","src":"21811:151:42","statements":[{"expression":{"id":10318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10316,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"21825:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10317,"name":"receivedAmountInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"21844:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21825:38:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10319,"nodeType":"ExpressionStatement","src":"21825:38:42"},{"expression":{"id":10324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10320,"name":"chainIdToLast24HourReceiveWindowStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"21877:37:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10322,"indexExpression":{"id":10321,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"21915:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21877:50:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10323,"name":"currentBlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"21930:21:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21877:74:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10325,"nodeType":"ExpressionStatement","src":"21877:74:42"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10334,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"22115:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10335,"name":"maxDailyReceiveLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10299,"src":"22135:20:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22115:40:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4461696c79205472616e73616374696f6e204c696d697420457863656564","id":10337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22157:32:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","typeString":"literal_string \"Daily Transaction Limit Exceed\""},"value":"Daily Transaction Limit Exceed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","typeString":"literal_string \"Daily Transaction Limit Exceed\""}],"id":10333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22107:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22107:83:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10339,"nodeType":"ExpressionStatement","src":"22107:83:42"},{"expression":{"id":10344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10340,"name":"chainIdToLast24HourReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9420,"src":"22262:27:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_uint256_$","typeString":"mapping(uint16 => uint256)"}},"id":10342,"indexExpression":{"id":10341,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10236,"src":"22290:11:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22262:40:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10343,"name":"receivedInWindow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"22305:16:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22262:59:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10345,"nodeType":"ExpressionStatement","src":"22262:59:42"}]},"documentation":{"id":10232,"nodeType":"StructuredDocumentation","src":"20117:236:42","text":" @notice Checks if receiver is able to receive tokens\n @param toAddress_ Receiver address\n @param srcChainId_ Source chain id from which token is send\n @param receivedAmount_ Amount of tokens received"},"id":10347,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToReceive","nameLocation":"20367:20:42","nodeType":"FunctionDefinition","parameters":{"id":10239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10234,"mutability":"mutable","name":"toAddress_","nameLocation":"20396:10:42","nodeType":"VariableDeclaration","scope":10347,"src":"20388:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10233,"name":"address","nodeType":"ElementaryTypeName","src":"20388:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10236,"mutability":"mutable","name":"srcChainId_","nameLocation":"20415:11:42","nodeType":"VariableDeclaration","scope":10347,"src":"20408:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10235,"name":"uint16","nodeType":"ElementaryTypeName","src":"20408:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10238,"mutability":"mutable","name":"receivedAmount_","nameLocation":"20436:15:42","nodeType":"VariableDeclaration","scope":10347,"src":"20428:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10237,"name":"uint256","nodeType":"ElementaryTypeName","src":"20428:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20387:65:42"},"returnParameters":{"id":10240,"nodeType":"ParameterList","parameters":[],"src":"20462:0:42"},"scope":10412,"src":"20358:1970:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4077],"body":{"id":10400,"nodeType":"Block","src":"22808:288:42","statements":[{"assignments":[10363],"declarations":[{"constant":false,"id":10363,"mutability":"mutable","name":"before","nameLocation":"22826:6:42","nodeType":"VariableDeclaration","scope":10400,"src":"22818:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10362,"name":"uint256","nodeType":"ElementaryTypeName","src":"22818:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10368,"initialValue":{"arguments":[{"id":10366,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10352,"src":"22856:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10364,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"22835:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":10365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22846:9:42","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"22835:20:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":10367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22818:42:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10369,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10350,"src":"22874:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":10372,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22891:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_BaseXVSProxyOFT_$10412","typeString":"contract BaseXVSProxyOFT"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BaseXVSProxyOFT_$10412","typeString":"contract BaseXVSProxyOFT"}],"id":10371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22883:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10370,"name":"address","nodeType":"ElementaryTypeName","src":"22883:7:42","typeDescriptions":{}}},"id":10373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22883:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22874:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10391,"nodeType":"Block","src":"22966:73:42","statements":[{"expression":{"arguments":[{"id":10386,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10350,"src":"23008:5:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10387,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10352,"src":"23015:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10388,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"23020:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10383,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"22980:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":10385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22991:16:42","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":6382,"src":"22980:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$6261_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":10389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22980:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10390,"nodeType":"ExpressionStatement","src":"22980:48:42"}]},"id":10392,"nodeType":"IfStatement","src":"22870:169:42","trueBody":{"id":10382,"nodeType":"Block","src":"22898:62:42","statements":[{"expression":{"arguments":[{"id":10378,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10352,"src":"22936:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10379,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"22941:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10375,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"22912:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":10377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22923:12:42","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6355,"src":"22912:23:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6261_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$6261_$","typeString":"function (contract IERC20,address,uint256)"}},"id":10380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:37:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10381,"nodeType":"ExpressionStatement","src":"22912:37:42"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10395,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10352,"src":"23076:3:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10393,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"23055:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23066:9:42","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":6218,"src":"23055:20:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23055:25:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10397,"name":"before","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10363,"src":"23083:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23055:34:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10361,"id":10399,"nodeType":"Return","src":"23048:41:42"}]},"documentation":{"id":10348,"nodeType":"StructuredDocumentation","src":"22334:321:42","text":" @notice Transfer tokens from sender to receiver account.\n @param from_ Address from which token has to be transferred(Sender).\n @param to_ Address on which token will be tranferred(Receiver).\n @param amount_ Amount of token to be transferred.\n @return Actual balance difference."},"id":10401,"implemented":true,"kind":"function","modifiers":[{"id":10358,"kind":"modifierInvocation","modifierName":{"id":10357,"name":"whenNotPaused","nameLocations":["22776:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"22776:13:42"},"nodeType":"ModifierInvocation","src":"22776:13:42"}],"name":"_transferFrom","nameLocation":"22669:13:42","nodeType":"FunctionDefinition","overrides":{"id":10356,"nodeType":"OverrideSpecifier","overrides":[],"src":"22767:8:42"},"parameters":{"id":10355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10350,"mutability":"mutable","name":"from_","nameLocation":"22700:5:42","nodeType":"VariableDeclaration","scope":10401,"src":"22692:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10349,"name":"address","nodeType":"ElementaryTypeName","src":"22692:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10352,"mutability":"mutable","name":"to_","nameLocation":"22723:3:42","nodeType":"VariableDeclaration","scope":10401,"src":"22715:11:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10351,"name":"address","nodeType":"ElementaryTypeName","src":"22715:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10354,"mutability":"mutable","name":"amount_","nameLocation":"22744:7:42","nodeType":"VariableDeclaration","scope":10401,"src":"22736:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10353,"name":"uint256","nodeType":"ElementaryTypeName","src":"22736:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22682:75:42"},"returnParameters":{"id":10361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10401,"src":"22799:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10359,"name":"uint256","nodeType":"ElementaryTypeName","src":"22799:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22798:9:42"},"scope":10412,"src":"22660:436:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4082],"body":{"id":10410,"nodeType":"Block","src":"23306:33:42","statements":[{"expression":{"id":10408,"name":"ld2sdRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9379,"src":"23323:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10407,"id":10409,"nodeType":"Return","src":"23316:16:42"}]},"documentation":{"id":10402,"nodeType":"StructuredDocumentation","src":"23102:136:42","text":" @notice Returns Conversion rate factor from large decimals to shared decimals.\n @return Conversion rate factor."},"id":10411,"implemented":true,"kind":"function","modifiers":[],"name":"_ld2sdRate","nameLocation":"23252:10:42","nodeType":"FunctionDefinition","overrides":{"id":10404,"nodeType":"OverrideSpecifier","overrides":[],"src":"23279:8:42"},"parameters":{"id":10403,"nodeType":"ParameterList","parameters":[],"src":"23262:2:42"},"returnParameters":{"id":10407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10411,"src":"23297:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10405,"name":"uint256","nodeType":"ElementaryTypeName","src":"23297:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23296:9:42"},"scope":10412,"src":"23243:96:42","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":10413,"src":"1374:21967:42","usedErrors":[9312,9511],"usedEvents":[471,477,483,491,1009,1019,3172,3181,3191,3195,5389,5499,5504,9437,9446,9455,9464,9473,9480,9485,9490,9499,9504]}],"src":"41:23301:42"},"id":42},"contracts/Bridge/XVSBridgeAdmin.sol":{"ast":{"absolutePath":"contracts/Bridge/XVSBridgeAdmin.sol","exportedSymbols":{"AccessControlledV8":[8619],"IXVSProxyOFT":[11260],"XVSBridgeAdmin":[10751],"ensureNonzeroAddress":[9333]},"id":10752,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10414,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:43"},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol","id":10416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10752,"sourceUnit":8620,"src":"66:117:43","symbolAliases":[{"foreign":{"id":10415,"name":"AccessControlledV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"75:18:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":10418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10752,"sourceUnit":9349,"src":"184:98:43","symbolAliases":[{"foreign":{"id":10417,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"193:20:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Bridge/interfaces/IXVSProxyOFT.sol","file":"./interfaces/IXVSProxyOFT.sol","id":10420,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10752,"sourceUnit":11261,"src":"283:61:43","symbolAliases":[{"foreign":{"id":10419,"name":"IXVSProxyOFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"292:12:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10422,"name":"AccessControlledV8","nameLocations":["759:18:43"],"nodeType":"IdentifierPath","referencedDeclaration":8619,"src":"759:18:43"},"id":10423,"nodeType":"InheritanceSpecifier","src":"759:18:43"}],"canonicalName":"XVSBridgeAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":10421,"nodeType":"StructuredDocumentation","src":"346:385:43","text":" @title XVSBridgeAdmin\n @author Venus\n @notice The XVSBridgeAdmin contract extends a parent contract AccessControlledV8 for access control, and it manages an external contract called XVSProxyOFT.\n It maintains a registry of function signatures and names,\n allowing for dynamic function handling i.e checking of access control of interaction with only owner functions."},"fullyImplemented":true,"id":10751,"linearizedBaseContracts":[10751,8619,4313,4445,4986,4614],"name":"XVSBridgeAdmin","nameLocation":"741:14:43","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":10424,"nodeType":"StructuredDocumentation","src":"784:61:43","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"27a020ef","id":10427,"mutability":"immutable","name":"XVSBridge","nameLocation":"880:9:43","nodeType":"VariableDeclaration","scope":10751,"src":"850:39:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"},"typeName":{"id":10426,"nodeType":"UserDefinedTypeName","pathNode":{"id":10425,"name":"IXVSProxyOFT","nameLocations":["850:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":11260,"src":"850:12:43"},"referencedDeclaration":11260,"src":"850:12:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"visibility":"public"},{"constant":false,"documentation":{"id":10428,"nodeType":"StructuredDocumentation","src":"895:108:43","text":" @notice A mapping keeps track of function signature associated with function name string."},"functionSelector":"180d295c","id":10432,"mutability":"mutable","name":"functionRegistry","nameLocation":"1041:16:43","nodeType":"VariableDeclaration","scope":10751,"src":"1008:49:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"typeName":{"id":10431,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10429,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1016:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1008:25:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10430,"name":"string","nodeType":"ElementaryTypeName","src":"1026:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":10433,"nodeType":"StructuredDocumentation","src":"1064:65:43","text":" @notice emitted when function registry updated"},"eventSelector":"9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa","id":10439,"name":"FunctionRegistryChanged","nameLocation":"1140:23:43","nodeType":"EventDefinition","parameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10435,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"1171:9:43","nodeType":"VariableDeclaration","scope":10439,"src":"1164:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10434,"name":"string","nodeType":"ElementaryTypeName","src":"1164:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10437,"indexed":false,"mutability":"mutable","name":"active","nameLocation":"1187:6:43","nodeType":"VariableDeclaration","scope":10439,"src":"1182:11:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10436,"name":"bool","nodeType":"ElementaryTypeName","src":"1182:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1163:31:43"},"src":"1134:61:43"},{"body":{"id":10458,"nodeType":"Block","src":"1286:127:43","statements":[{"expression":{"arguments":[{"id":10446,"name":"XVSBridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10442,"src":"1317:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10445,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"1296:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":10447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1296:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10448,"nodeType":"ExpressionStatement","src":"1296:32:43"},{"expression":{"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10449,"name":"XVSBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"1338:9:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10451,"name":"XVSBridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10442,"src":"1363:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10450,"name":"IXVSProxyOFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"1350:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IXVSProxyOFT_$11260_$","typeString":"type(contract IXVSProxyOFT)"}},"id":10452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:24:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"src":"1338:36:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"id":10454,"nodeType":"ExpressionStatement","src":"1338:36:43"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10455,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"1384:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1384:22:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10457,"nodeType":"ExpressionStatement","src":"1384:22:43"}]},"documentation":{"id":10440,"nodeType":"StructuredDocumentation","src":"1201:48:43","text":"@custom:oz-upgrades-unsafe-allow constructor"},"id":10459,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10442,"mutability":"mutable","name":"XVSBridge_","nameLocation":"1274:10:43","nodeType":"VariableDeclaration","scope":10459,"src":"1266:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10441,"name":"address","nodeType":"ElementaryTypeName","src":"1266:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1265:20:43"},"returnParameters":{"id":10444,"nodeType":"ParameterList","parameters":[],"src":"1286:0:43"},"scope":10751,"src":"1254:159:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10471,"nodeType":"Block","src":"1587:63:43","statements":[{"expression":{"arguments":[{"id":10468,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10462,"src":"1621:21:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10467,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8515,"src":"1597:23:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1597:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10470,"nodeType":"ExpressionStatement","src":"1597:46:43"}]},"documentation":{"id":10460,"nodeType":"StructuredDocumentation","src":"1419:91:43","text":" @param accessControlManager_ Address of access control manager contract."},"functionSelector":"c4d66de8","id":10472,"implemented":true,"kind":"function","modifiers":[{"id":10465,"kind":"modifierInvocation","modifierName":{"id":10464,"name":"initializer","nameLocations":["1575:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":4516,"src":"1575:11:43"},"nodeType":"ModifierInvocation","src":"1575:11:43"}],"name":"initialize","nameLocation":"1524:10:43","nodeType":"FunctionDefinition","parameters":{"id":10463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10462,"mutability":"mutable","name":"accessControlManager_","nameLocation":"1543:21:43","nodeType":"VariableDeclaration","scope":10472,"src":"1535:29:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10461,"name":"address","nodeType":"ElementaryTypeName","src":"1535:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1534:31:43"},"returnParameters":{"id":10466,"nodeType":"ParameterList","parameters":[],"src":"1587:0:43"},"scope":10751,"src":"1515:135:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10521,"nodeType":"Block","src":"1911:284:43","statements":[{"assignments":[10481],"declarations":[{"constant":false,"id":10481,"mutability":"mutable","name":"fun","nameLocation":"1935:3:43","nodeType":"VariableDeclaration","scope":10521,"src":"1921:17:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10480,"name":"string","nodeType":"ElementaryTypeName","src":"1921:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":10486,"initialValue":{"arguments":[{"expression":{"id":10483,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1958:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:3:43","memberName":"sig","nodeType":"MemberAccess","src":"1958:7:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":10482,"name":"_getFunctionName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10730,"src":"1941:16:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_string_memory_ptr_$","typeString":"function (bytes4) view returns (string memory)"}},"id":10485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1941:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1921:45:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10490,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10481,"src":"1990:3:43","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1984:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10488,"name":"bytes","nodeType":"ElementaryTypeName","src":"1984:5:43","typeDescriptions":{}}},"id":10491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1984:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1995:6:43","memberName":"length","nodeType":"MemberAccess","src":"1984:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2005:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1984:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","id":10495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2008:20:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","typeString":"literal_string \"Function not found\""},"value":"Function not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","typeString":"literal_string \"Function not found\""}],"id":10487,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1976:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1976:53:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10497,"nodeType":"ExpressionStatement","src":"1976:53:43"},{"expression":{"arguments":[{"id":10499,"name":"fun","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10481,"src":"2059:3:43","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10498,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8618,"src":"2039:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":10500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:24:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10501,"nodeType":"ExpressionStatement","src":"2039:24:43"},{"assignments":[10503,10505],"declarations":[{"constant":false,"id":10503,"mutability":"mutable","name":"ok","nameLocation":"2079:2:43","nodeType":"VariableDeclaration","scope":10521,"src":"2074:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10502,"name":"bool","nodeType":"ElementaryTypeName","src":"2074:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10505,"mutability":"mutable","name":"res","nameLocation":"2096:3:43","nodeType":"VariableDeclaration","scope":10521,"src":"2083:16:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10504,"name":"bytes","nodeType":"ElementaryTypeName","src":"2083:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10513,"initialValue":{"arguments":[{"id":10511,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"2127:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":10508,"name":"XVSBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"2111:9:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}],"id":10507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2103:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10506,"name":"address","nodeType":"ElementaryTypeName","src":"2103:7:43","typeDescriptions":{}}},"id":10509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2122:4:43","memberName":"call","nodeType":"MemberAccess","src":"2103:23:43","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:29:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2073:59:43"},{"expression":{"arguments":[{"id":10515,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"2150:2:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c206661696c6564","id":10516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2154:13:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","typeString":"literal_string \"call failed\""},"value":"call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","typeString":"literal_string \"call failed\""}],"id":10514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2142:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2142:26:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10518,"nodeType":"ExpressionStatement","src":"2142:26:43"},{"expression":{"id":10519,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"2185:3:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10479,"id":10520,"nodeType":"Return","src":"2178:10:43"}]},"documentation":{"id":10473,"nodeType":"StructuredDocumentation","src":"1656:188:43","text":" @notice Invoked when called function does not exist in the contract.\n @return Response of low level call.\n @custom:access Controlled by AccessControlManager."},"id":10522,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10475,"mutability":"mutable","name":"data","nameLocation":"1873:4:43","nodeType":"VariableDeclaration","scope":10522,"src":"1858:19:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10474,"name":"bytes","nodeType":"ElementaryTypeName","src":"1858:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1857:21:43"},"returnParameters":{"id":10479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10522,"src":"1897:12:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10477,"name":"bytes","nodeType":"ElementaryTypeName","src":"1897:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1896:14:43"},"scope":10751,"src":"1849:346:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10554,"nodeType":"Block","src":"2654:280:43","statements":[{"expression":{"arguments":[{"hexValue":"7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329","id":10531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2684:39:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""},"value":"setTrustedRemoteAddress(uint16,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6c3d16528fdb8baf9e729063f35f9c7184418596f7c04e03850cd5ff17b0f92","typeString":"literal_string \"setTrustedRemoteAddress(uint16,bytes)\""}],"id":10530,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8618,"src":"2664:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2664:60:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10533,"nodeType":"ExpressionStatement","src":"2664:60:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":10537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10535,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10525,"src":"2742:14:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2760:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2742:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","id":10538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2763:26:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""},"value":"ChainId must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""}],"id":10534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2734:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10540,"nodeType":"ExpressionStatement","src":"2734:56:43"},{"expression":{"arguments":[{"arguments":[{"id":10543,"name":"remoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10527,"src":"2836:14:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":10542,"name":"bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10750,"src":"2821:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":10544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2821:30:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10541,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"2800:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":10545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2800:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10546,"nodeType":"ExpressionStatement","src":"2800:52:43"},{"expression":{"arguments":[{"id":10550,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10525,"src":"2896:14:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10551,"name":"remoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10527,"src":"2912:14:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":10547,"name":"XVSBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"2862:9:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"id":10549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2872:23:43","memberName":"setTrustedRemoteAddress","nodeType":"MemberAccess","referencedDeclaration":11250,"src":"2862:33:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint16,bytes memory) external"}},"id":10552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2862:65:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10553,"nodeType":"ExpressionStatement","src":"2862:65:43"}]},"documentation":{"id":10523,"nodeType":"StructuredDocumentation","src":"2201:352:43","text":" @notice Sets trusted remote on particular chain.\n @param remoteChainId_ Chain Id of the destination chain.\n @param remoteAddress_ Address of the destination bridge.\n @custom:access Controlled by AccessControlManager.\n @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero."},"functionSelector":"a6c3d165","id":10555,"implemented":true,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"2567:23:43","nodeType":"FunctionDefinition","parameters":{"id":10528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10525,"mutability":"mutable","name":"remoteChainId_","nameLocation":"2598:14:43","nodeType":"VariableDeclaration","scope":10555,"src":"2591:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10524,"name":"uint16","nodeType":"ElementaryTypeName","src":"2591:6:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10527,"mutability":"mutable","name":"remoteAddress_","nameLocation":"2629:14:43","nodeType":"VariableDeclaration","scope":10555,"src":"2614:29:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10526,"name":"bytes","nodeType":"ElementaryTypeName","src":"2614:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2590:54:43"},"returnParameters":{"id":10529,"nodeType":"ParameterList","parameters":[],"src":"2654:0:43"},"scope":10751,"src":"2558:376:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10663,"nodeType":"Block","src":"3414:794:43","statements":[{"assignments":[10568],"declarations":[{"constant":false,"id":10568,"mutability":"mutable","name":"signatureLength","nameLocation":"3432:15:43","nodeType":"VariableDeclaration","scope":10663,"src":"3424:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10567,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10571,"initialValue":{"expression":{"id":10569,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"3450:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":10570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3462:6:43","memberName":"length","nodeType":"MemberAccess","src":"3450:18:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3424:44:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10573,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10568,"src":"3486:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":10574,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10562,"src":"3505:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3513:6:43","memberName":"length","nodeType":"MemberAccess","src":"3505:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3486:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d65206c656e677468","id":10577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3521:40:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","typeString":"literal_string \"Input arrays must have the same length\""},"value":"Input arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","typeString":"literal_string \"Input arrays must have the same length\""}],"id":10572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3478:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3478:84:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10579,"nodeType":"ExpressionStatement","src":"3478:84:43"},{"body":{"id":10661,"nodeType":"Block","src":"3611:591:43","statements":[{"assignments":[10587],"declarations":[{"constant":false,"id":10587,"mutability":"mutable","name":"sigHash","nameLocation":"3632:7:43","nodeType":"VariableDeclaration","scope":10661,"src":"3625:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10586,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3625:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":10599,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":10593,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"3665:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":10595,"indexExpression":{"id":10594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3677:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3665:14:43","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":10592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10591,"name":"bytes","nodeType":"ElementaryTypeName","src":"3659:5:43","typeDescriptions":{}}},"id":10596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":10590,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3649:9:43","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3649:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3642:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":10588,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3642:6:43","typeDescriptions":{}}},"id":10598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:40:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3625:57:43"},{"assignments":[10601],"declarations":[{"constant":false,"id":10601,"mutability":"mutable","name":"signature","nameLocation":"3709:9:43","nodeType":"VariableDeclaration","scope":10661,"src":"3696:22:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10600,"name":"bytes","nodeType":"ElementaryTypeName","src":"3696:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10608,"initialValue":{"arguments":[{"baseExpression":{"id":10604,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"3727:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":10606,"indexExpression":{"id":10605,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"3744:7:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3727:25:43","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":10603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3721:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10602,"name":"bytes","nodeType":"ElementaryTypeName","src":"3721:5:43","typeDescriptions":{}}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3696:57:43"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":10609,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10562,"src":"3771:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":10611,"indexExpression":{"id":10610,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3779:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3771:10:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10612,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10601,"src":"3785:9:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3795:6:43","memberName":"length","nodeType":"MemberAccess","src":"3785:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3785:21:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3771:35:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3961:11:43","subExpression":{"baseExpression":{"id":10633,"name":"active_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10562,"src":"3962:7:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":10635,"indexExpression":{"id":10634,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3970:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3962:10:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10637,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10601,"src":"3976:9:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3986:6:43","memberName":"length","nodeType":"MemberAccess","src":"3976:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3996:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3976:21:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3961:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10655,"nodeType":"IfStatement","src":"3957:176:43","trueBody":{"id":10654,"nodeType":"Block","src":"3999:134:43","statements":[{"expression":{"id":10645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4017:32:43","subExpression":{"baseExpression":{"id":10642,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"4024:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":10644,"indexExpression":{"id":10643,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"4041:7:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4024:25:43","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10646,"nodeType":"ExpressionStatement","src":"4017:32:43"},{"eventCall":{"arguments":[{"baseExpression":{"id":10648,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"4096:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":10650,"indexExpression":{"id":10649,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"4108:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4096:14:43","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"66616c7365","id":10651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4112:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10647,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"4072:23:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4072:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10653,"nodeType":"EmitStatement","src":"4067:51:43"}]}},"id":10656,"nodeType":"IfStatement","src":"3767:366:43","trueBody":{"id":10632,"nodeType":"Block","src":"3808:143:43","statements":[{"expression":{"id":10623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10617,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"3826:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":10619,"indexExpression":{"id":10618,"name":"sigHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"3843:7:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3826:25:43","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":10620,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"3854:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":10622,"indexExpression":{"id":10621,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3866:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3854:14:43","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"3826:42:43","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":10624,"nodeType":"ExpressionStatement","src":"3826:42:43"},{"eventCall":{"arguments":[{"baseExpression":{"id":10626,"name":"signatures_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10559,"src":"3915:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string calldata[] calldata"}},"id":10628,"indexExpression":{"id":10627,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3927:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3915:14:43","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"74727565","id":10629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3931:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10625,"name":"FunctionRegistryChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10439,"src":"3891:23:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool)"}},"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3891:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10631,"nodeType":"EmitStatement","src":"3886:50:43"}]}},{"id":10660,"nodeType":"UncheckedBlock","src":"4146:46:43","statements":[{"expression":{"id":10658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4174:3:43","subExpression":{"id":10657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"4176:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10659,"nodeType":"ExpressionStatement","src":"4174:3:43"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10581,"src":"3588:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10584,"name":"signatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10568,"src":"3592:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3588:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10662,"initializationExpression":{"assignments":[10581],"declarations":[{"constant":false,"id":10581,"mutability":"mutable","name":"i","nameLocation":"3585:1:43","nodeType":"VariableDeclaration","scope":10662,"src":"3577:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10580,"name":"uint256","nodeType":"ElementaryTypeName","src":"3577:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10582,"nodeType":"VariableDeclarationStatement","src":"3577:9:43"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"3572:630:43"}]},"documentation":{"id":10556,"nodeType":"StructuredDocumentation","src":"2940:369:43","text":" @notice A setter for the registry of functions that are allowed to be executed from proposals.\n @param signatures_  Function signature to be added or removed.\n @param active_ bool value, should be true to add function.\n @custom:access Only owner.\n @custom:event Emits FunctionRegistryChanged if bool value of function changes."},"functionSelector":"4bb7453e","id":10664,"implemented":true,"kind":"function","modifiers":[{"id":10565,"kind":"modifierInvocation","modifierName":{"id":10564,"name":"onlyOwner","nameLocations":["3404:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":4359,"src":"3404:9:43"},"nodeType":"ModifierInvocation","src":"3404:9:43"}],"name":"upsertSignature","nameLocation":"3323:15:43","nodeType":"FunctionDefinition","parameters":{"id":10563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10559,"mutability":"mutable","name":"signatures_","nameLocation":"3357:11:43","nodeType":"VariableDeclaration","scope":10664,"src":"3339:29:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":10557,"name":"string","nodeType":"ElementaryTypeName","src":"3339:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":10558,"nodeType":"ArrayTypeName","src":"3339:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":10562,"mutability":"mutable","name":"active_","nameLocation":"3386:7:43","nodeType":"VariableDeclaration","scope":10664,"src":"3370:23:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":10560,"name":"bool","nodeType":"ElementaryTypeName","src":"3370:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10561,"nodeType":"ArrayTypeName","src":"3370:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3338:56:43"},"returnParameters":{"id":10566,"nodeType":"ParameterList","parameters":[],"src":"3414:0:43"},"scope":10751,"src":"3314:894:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10680,"nodeType":"Block","src":"4502:120:43","statements":[{"expression":{"arguments":[{"hexValue":"7472616e736665724272696467654f776e657273686970286164647265737329","id":10671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4532:34:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f90b5406c7cde78070dfe9c18268e7221f4985713dafd643183340649a7977e","typeString":"literal_string \"transferBridgeOwnership(address)\""},"value":"transferBridgeOwnership(address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f90b5406c7cde78070dfe9c18268e7221f4985713dafd643183340649a7977e","typeString":"literal_string \"transferBridgeOwnership(address)\""}],"id":10670,"name":"_checkAccessAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8618,"src":"4512:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":10672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4512:55:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10673,"nodeType":"ExpressionStatement","src":"4512:55:43"},{"expression":{"arguments":[{"id":10677,"name":"newOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10667,"src":"4605:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10674,"name":"XVSBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"4577:9:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"id":10676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4587:17:43","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":11243,"src":"4577:27:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":10678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4577:38:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10679,"nodeType":"ExpressionStatement","src":"4577:38:43"}]},"documentation":{"id":10665,"nodeType":"StructuredDocumentation","src":"4214:222:43","text":" @notice This function transfers the ownership of the bridge from this contract to new owner.\n @param newOwner_ New owner of the XVS Bridge.\n @custom:access Controlled by AccessControlManager."},"functionSelector":"3f90b540","id":10681,"implemented":true,"kind":"function","modifiers":[],"name":"transferBridgeOwnership","nameLocation":"4450:23:43","nodeType":"FunctionDefinition","parameters":{"id":10668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10667,"mutability":"mutable","name":"newOwner_","nameLocation":"4482:9:43","nodeType":"VariableDeclaration","scope":10681,"src":"4474:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10666,"name":"address","nodeType":"ElementaryTypeName","src":"4474:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4473:19:43"},"returnParameters":{"id":10669,"nodeType":"ParameterList","parameters":[],"src":"4502:0:43"},"scope":10751,"src":"4441:181:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10710,"nodeType":"Block","src":"5137:209:43","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":10694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10692,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"5155:14:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5173:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5155:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","id":10695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5176:26:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""},"value":"ChainId must not be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","typeString":"literal_string \"ChainId must not be zero\""}],"id":10691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5147:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5147:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10697,"nodeType":"ExpressionStatement","src":"5147:56:43"},{"expression":{"arguments":[{"arguments":[{"id":10700,"name":"remoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"5249:14:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":10699,"name":"bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10750,"src":"5234:14:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":10701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5234:30:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10698,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"5213:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":10702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5213:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10703,"nodeType":"ExpressionStatement","src":"5213:52:43"},{"expression":{"arguments":[{"id":10706,"name":"remoteChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"5308:14:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10707,"name":"remoteAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"5324:14:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":10704,"name":"XVSBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"5282:9:43","typeDescriptions":{"typeIdentifier":"t_contract$_IXVSProxyOFT_$11260","typeString":"contract IXVSProxyOFT"}},"id":10705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5292:15:43","memberName":"isTrustedRemote","nodeType":"MemberAccess","referencedDeclaration":11259,"src":"5282:25:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (uint16,bytes memory) external returns (bool)"}},"id":10708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:57:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10690,"id":10709,"nodeType":"Return","src":"5275:64:43"}]},"documentation":{"id":10682,"nodeType":"StructuredDocumentation","src":"4628:401:43","text":" @notice Returns true if remote address is trustedRemote corresponds to chainId_.\n @param remoteChainId_ Chain Id of the destination chain.\n @param remoteAddress_ Address of the destination bridge.\n @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\n @return Bool indicating whether the remote chain is trusted or not."},"functionSelector":"3d8b38f6","id":10711,"implemented":true,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"5043:15:43","nodeType":"FunctionDefinition","parameters":{"id":10687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10684,"mutability":"mutable","name":"remoteChainId_","nameLocation":"5066:14:43","nodeType":"VariableDeclaration","scope":10711,"src":"5059:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10683,"name":"uint16","nodeType":"ElementaryTypeName","src":"5059:6:43","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10686,"mutability":"mutable","name":"remoteAddress_","nameLocation":"5097:14:43","nodeType":"VariableDeclaration","scope":10711,"src":"5082:29:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10685,"name":"bytes","nodeType":"ElementaryTypeName","src":"5082:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5058:54:43"},"returnParameters":{"id":10690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10711,"src":"5131:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10688,"name":"bool","nodeType":"ElementaryTypeName","src":"5131:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5130:6:43"},"scope":10751,"src":"5034:312:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4396],"body":{"id":10716,"nodeType":"Block","src":"5498:2:43","statements":[]},"documentation":{"id":10712,"nodeType":"StructuredDocumentation","src":"5352:96:43","text":" @notice Empty implementation of renounce ownership to avoid any mishappening."},"functionSelector":"715018a6","id":10717,"implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"5462:17:43","nodeType":"FunctionDefinition","overrides":{"id":10714,"nodeType":"OverrideSpecifier","overrides":[],"src":"5489:8:43"},"parameters":{"id":10713,"nodeType":"ParameterList","parameters":[],"src":"5479:2:43"},"returnParameters":{"id":10715,"nodeType":"ParameterList","parameters":[],"src":"5498:0:43"},"scope":10751,"src":"5453:47:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10729,"nodeType":"Block","src":"5802:52:43","statements":[{"expression":{"baseExpression":{"id":10725,"name":"functionRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"5819:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_string_storage_$","typeString":"mapping(bytes4 => string storage ref)"}},"id":10727,"indexExpression":{"id":10726,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10720,"src":"5836:10:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5819:28:43","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":10724,"id":10728,"nodeType":"Return","src":"5812:35:43"}]},"documentation":{"id":10718,"nodeType":"StructuredDocumentation","src":"5506:208:43","text":" @dev Returns function name string associated with function signature.\n @param signature_ Four bytes of function signature.\n @return Function signature corresponding to its hash."},"id":10730,"implemented":true,"kind":"function","modifiers":[],"name":"_getFunctionName","nameLocation":"5728:16:43","nodeType":"FunctionDefinition","parameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10720,"mutability":"mutable","name":"signature_","nameLocation":"5752:10:43","nodeType":"VariableDeclaration","scope":10730,"src":"5745:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10719,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5745:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5744:19:43"},"returnParameters":{"id":10724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10730,"src":"5787:13:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10722,"name":"string","nodeType":"ElementaryTypeName","src":"5787:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5786:15:43"},"scope":10751,"src":"5719:135:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10749,"nodeType":"Block","src":"6100:52:43","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":10744,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10733,"src":"6141:1:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":10743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":10742,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6133:7:43","typeDescriptions":{}}},"id":10745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":10741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6125:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10740,"name":"uint160","nodeType":"ElementaryTypeName","src":"6125:7:43","typeDescriptions":{}}},"id":10746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:19:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6117:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10738,"name":"address","nodeType":"ElementaryTypeName","src":"6117:7:43","typeDescriptions":{}}},"id":10747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6117:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10737,"id":10748,"nodeType":"Return","src":"6110:35:43"}]},"documentation":{"id":10731,"nodeType":"StructuredDocumentation","src":"5860:162:43","text":" @notice Converts given bytes into address.\n @param b Bytes to be converted into address.\n @return Converted address of given bytes."},"id":10750,"implemented":true,"kind":"function","modifiers":[],"name":"bytesToAddress","nameLocation":"6036:14:43","nodeType":"FunctionDefinition","parameters":{"id":10734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10733,"mutability":"mutable","name":"b","nameLocation":"6066:1:43","nodeType":"VariableDeclaration","scope":10750,"src":"6051:16:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10732,"name":"bytes","nodeType":"ElementaryTypeName","src":"6051:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6050:18:43"},"returnParameters":{"id":10737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10750,"src":"6091:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10735,"name":"address","nodeType":"ElementaryTypeName","src":"6091:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6090:9:43"},"scope":10751,"src":"6027:125:43","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":10752,"src":"732:5422:43","usedErrors":[8500,9312],"usedEvents":[4239,4330,4460,8491,10439]}],"src":"41:6114:43"},"id":43},"contracts/Bridge/XVSProxyOFTDest.sol":{"ast":{"absolutePath":"contracts/Bridge/XVSProxyOFTDest.sol","exportedSymbols":{"BaseXVSProxyOFT":[10412],"IXVS":[11235],"XVSProxyOFTDest":[10912]},"id":10913,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10753,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:44"},{"absolutePath":"contracts/Bridge/interfaces/IXVS.sol","file":"./interfaces/IXVS.sol","id":10755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10913,"sourceUnit":11236,"src":"66:45:44","symbolAliases":[{"foreign":{"id":10754,"name":"IXVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"75:4:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Bridge/BaseXVSProxyOFT.sol","file":"./BaseXVSProxyOFT.sol","id":10757,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10913,"sourceUnit":10413,"src":"112:56:44","symbolAliases":[{"foreign":{"id":10756,"name":"BaseXVSProxyOFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"121:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10759,"name":"BaseXVSProxyOFT","nameLocations":["576:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":10412,"src":"576:15:44"},"id":10760,"nodeType":"InheritanceSpecifier","src":"576:15:44"}],"canonicalName":"XVSProxyOFTDest","contractDependencies":[],"contractKind":"contract","documentation":{"id":10758,"nodeType":"StructuredDocumentation","src":"170:376:44","text":" @title XVSProxyOFTDest\n @author Venus\n @notice XVSProxyOFTDest contract builds upon the functionality of its parent contract, BaseXVSProxyOFT,\n and focuses on managing token transfers to the destination chain.\n It provides functions to check eligibility and perform the actual token transfers while maintaining strict access controls and pausing mechanisms."},"fullyImplemented":true,"id":10912,"linearizedBaseContracts":[10912,10412,3128,4207,4148,7303,7315,4083,1212,971,1402,1371,5488,9293,5596,7050],"name":"XVSProxyOFTDest","nameLocation":"557:15:44","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":10761,"nodeType":"StructuredDocumentation","src":"598:89:44","text":" @notice Emits when stored message dropped without successful retrying."},"eventSelector":"48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee","id":10769,"name":"DropFailedMessage","nameLocation":"698:17:44","nodeType":"EventDefinition","parameters":{"id":10768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10763,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"723:10:44","nodeType":"VariableDeclaration","scope":10769,"src":"716:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10762,"name":"uint16","nodeType":"ElementaryTypeName","src":"716:6:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10765,"indexed":true,"mutability":"mutable","name":"srcAddress","nameLocation":"749:10:44","nodeType":"VariableDeclaration","scope":10769,"src":"735:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10764,"name":"bytes","nodeType":"ElementaryTypeName","src":"735:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10767,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"768:5:44","nodeType":"VariableDeclaration","scope":10769,"src":"761:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10766,"name":"uint64","nodeType":"ElementaryTypeName","src":"761:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"715:59:44"},"src":"692:83:44"},{"body":{"id":10786,"nodeType":"Block","src":"985:2:44","statements":[]},"id":10787,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10780,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"931:13:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10781,"name":"sharedDecimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"946:15:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":10782,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10775,"src":"963:11:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10783,"name":"oracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"976:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":10784,"kind":"baseConstructorSpecifier","modifierName":{"id":10779,"name":"BaseXVSProxyOFT","nameLocations":["915:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":10412,"src":"915:15:44"},"nodeType":"ModifierInvocation","src":"915:69:44"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10771,"mutability":"mutable","name":"tokenAddress_","nameLocation":"810:13:44","nodeType":"VariableDeclaration","scope":10787,"src":"802:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10770,"name":"address","nodeType":"ElementaryTypeName","src":"802:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10773,"mutability":"mutable","name":"sharedDecimals_","nameLocation":"839:15:44","nodeType":"VariableDeclaration","scope":10787,"src":"833:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10772,"name":"uint8","nodeType":"ElementaryTypeName","src":"833:5:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10775,"mutability":"mutable","name":"lzEndpoint_","nameLocation":"872:11:44","nodeType":"VariableDeclaration","scope":10787,"src":"864:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10774,"name":"address","nodeType":"ElementaryTypeName","src":"864:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10777,"mutability":"mutable","name":"oracle_","nameLocation":"901:7:44","nodeType":"VariableDeclaration","scope":10787,"src":"893:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10776,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"792:122:44"},"returnParameters":{"id":10785,"nodeType":"ParameterList","parameters":[],"src":"985:0:44"},"scope":10912,"src":"781:206:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10818,"nodeType":"Block","src":"1452:144:44","statements":[{"expression":{"id":10810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":10799,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"1462:14:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":10803,"indexExpression":{"id":10800,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10790,"src":"1477:11:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1462:27:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":10804,"indexExpression":{"id":10801,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10792,"src":"1490:11:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1462:40:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":10805,"indexExpression":{"id":10802,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10794,"src":"1503:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1462:48:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":10808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1521:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1513:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1513:7:44","typeDescriptions":{}}},"id":10809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1462:61:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10811,"nodeType":"ExpressionStatement","src":"1462:61:44"},{"eventCall":{"arguments":[{"id":10813,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10790,"src":"1556:11:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10814,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10792,"src":"1569:11:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10815,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10794,"src":"1582:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":10812,"name":"DropFailedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10769,"src":"1538:17:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (uint16,bytes memory,uint64)"}},"id":10816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1538:51:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10817,"nodeType":"EmitStatement","src":"1533:56:44"}]},"documentation":{"id":10788,"nodeType":"StructuredDocumentation","src":"993:347:44","text":" @notice Clear failed messages from the storage.\n @param srcChainId_ Chain id of source\n @param srcAddress_ Address of source followed by current bridge address\n @param nonce_ Nonce_ of the transaction\n @custom:access Only owner\n @custom:event Emits DropFailedMessage on clearance of failed message."},"functionSelector":"84e69c69","id":10819,"implemented":true,"kind":"function","modifiers":[{"id":10797,"kind":"modifierInvocation","modifierName":{"id":10796,"name":"onlyOwner","nameLocations":["1442:9:44"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"1442:9:44"},"nodeType":"ModifierInvocation","src":"1442:9:44"}],"name":"dropFailedMessage","nameLocation":"1354:17:44","nodeType":"FunctionDefinition","parameters":{"id":10795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10790,"mutability":"mutable","name":"srcChainId_","nameLocation":"1379:11:44","nodeType":"VariableDeclaration","scope":10819,"src":"1372:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10789,"name":"uint16","nodeType":"ElementaryTypeName","src":"1372:6:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10792,"mutability":"mutable","name":"srcAddress_","nameLocation":"1405:11:44","nodeType":"VariableDeclaration","scope":10819,"src":"1392:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10791,"name":"bytes","nodeType":"ElementaryTypeName","src":"1392:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10794,"mutability":"mutable","name":"nonce_","nameLocation":"1425:6:44","nodeType":"VariableDeclaration","scope":10819,"src":"1418:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10793,"name":"uint64","nodeType":"ElementaryTypeName","src":"1418:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1371:61:44"},"returnParameters":{"id":10798,"nodeType":"ParameterList","parameters":[],"src":"1452:0:44"},"scope":10912,"src":"1345:251:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3121],"body":{"id":10830,"nodeType":"Block","src":"1875:48:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10826,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"1892:10:44","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":10827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1903:11:44","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":6210,"src":"1892:22:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1892:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10825,"id":10829,"nodeType":"Return","src":"1885:31:44"}]},"documentation":{"id":10820,"nodeType":"StructuredDocumentation","src":"1602:200:44","text":" @notice Returns the total circulating supply of the token on the destination chain i.e (total supply).\n @return total circulating supply of the token on the destination chain."},"functionSelector":"9358928b","id":10831,"implemented":true,"kind":"function","modifiers":[],"name":"circulatingSupply","nameLocation":"1816:17:44","nodeType":"FunctionDefinition","overrides":{"id":10822,"nodeType":"OverrideSpecifier","overrides":[],"src":"1848:8:44"},"parameters":{"id":10821,"nodeType":"ParameterList","parameters":[],"src":"1833:2:44"},"returnParameters":{"id":10825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10831,"src":"1866:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1866:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1865:9:44"},"scope":10912,"src":"1807:116:44","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4055],"body":{"id":10875,"nodeType":"Block","src":"2363:221:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10849,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"2381:5:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10850,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"2390:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2390:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c6572","id":10853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2404:36:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","typeString":"literal_string \"ProxyOFT: owner is not send caller\""},"value":"ProxyOFT: owner is not send caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","typeString":"literal_string \"ProxyOFT: owner is not send caller\""}],"id":10848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2373:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2373:68:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10855,"nodeType":"ExpressionStatement","src":"2373:68:44"},{"expression":{"arguments":[{"id":10857,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"2469:5:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10858,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10836,"src":"2476:11:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10859,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10840,"src":"2489:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10856,"name":"_isEligibleToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10231,"src":"2451:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (address,uint16,uint256)"}},"id":10860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2451:46:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10861,"nodeType":"ExpressionStatement","src":"2451:46:44"},{"expression":{"arguments":[{"id":10869,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"2538:5:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10870,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10840,"src":"2545:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":10865,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"2520:10:44","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":10864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10863,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:44","typeDescriptions":{}}},"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2512:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10862,"name":"IXVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2507:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IXVS_$11235_$","typeString":"type(contract IXVS)"}},"id":10867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IXVS_$11235","typeString":"contract IXVS"}},"id":10868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2533:4:44","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":11234,"src":"2507:30:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:46:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10872,"nodeType":"ExpressionStatement","src":"2507:46:44"},{"expression":{"id":10873,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10840,"src":"2570:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10847,"id":10874,"nodeType":"Return","src":"2563:14:44"}]},"documentation":{"id":10832,"nodeType":"StructuredDocumentation","src":"1929:260:44","text":" @notice Debit tokens from the given address\n @param from_  Address from which tokens to be debited\n @param dstChainId_ Destination chain id\n @param amount_ Amount of tokens to be debited\n @return Actual amount debited"},"id":10876,"implemented":true,"kind":"function","modifiers":[{"id":10844,"kind":"modifierInvocation","modifierName":{"id":10843,"name":"whenNotPaused","nameLocations":["2331:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"2331:13:44"},"nodeType":"ModifierInvocation","src":"2331:13:44"}],"name":"_debitFrom","nameLocation":"2203:10:44","nodeType":"FunctionDefinition","overrides":{"id":10842,"nodeType":"OverrideSpecifier","overrides":[],"src":"2322:8:44"},"parameters":{"id":10841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10834,"mutability":"mutable","name":"from_","nameLocation":"2231:5:44","nodeType":"VariableDeclaration","scope":10876,"src":"2223:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10833,"name":"address","nodeType":"ElementaryTypeName","src":"2223:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10836,"mutability":"mutable","name":"dstChainId_","nameLocation":"2253:11:44","nodeType":"VariableDeclaration","scope":10876,"src":"2246:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10835,"name":"uint16","nodeType":"ElementaryTypeName","src":"2246:6:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10876,"src":"2274:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2274:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10840,"mutability":"mutable","name":"amount_","nameLocation":"2299:7:44","nodeType":"VariableDeclaration","scope":10876,"src":"2291:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10839,"name":"uint256","nodeType":"ElementaryTypeName","src":"2291:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2213:99:44"},"returnParameters":{"id":10847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10876,"src":"2354:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10845,"name":"uint256","nodeType":"ElementaryTypeName","src":"2354:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2353:9:44"},"scope":10912,"src":"2194:390:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4066],"body":{"id":10910,"nodeType":"Block","src":"3012:156:44","statements":[{"expression":{"arguments":[{"id":10892,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10881,"src":"3043:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10893,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10879,"src":"3055:11:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":10894,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"3068:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10891,"name":"_isEligibleToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"3022:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (address,uint16,uint256)"}},"id":10895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3022:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10896,"nodeType":"ExpressionStatement","src":"3022:54:44"},{"expression":{"arguments":[{"id":10904,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10881,"src":"3117:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10905,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"3129:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":10900,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"3099:10:44","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}],"id":10899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3091:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10898,"name":"address","nodeType":"ElementaryTypeName","src":"3091:7:44","typeDescriptions":{}}},"id":10901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10897,"name":"IXVS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"3086:4:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IXVS_$11235_$","typeString":"type(contract IXVS)"}},"id":10902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IXVS_$11235","typeString":"contract IXVS"}},"id":10903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3112:4:44","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":11227,"src":"3086:30:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":10906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:51:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10907,"nodeType":"ExpressionStatement","src":"3086:51:44"},{"expression":{"id":10908,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"3154:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10890,"id":10909,"nodeType":"Return","src":"3147:14:44"}]},"documentation":{"id":10877,"nodeType":"StructuredDocumentation","src":"2590:261:44","text":" @notice Credit tokens in the given account\n @param srcChainId_  Source chain id\n @param toAddress_ Address on which token will be credited\n @param amount_ Amount of tokens to be credited\n @return Actual amount credited"},"id":10911,"implemented":true,"kind":"function","modifiers":[{"id":10887,"kind":"modifierInvocation","modifierName":{"id":10886,"name":"whenNotPaused","nameLocations":["2980:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"2980:13:44"},"nodeType":"ModifierInvocation","src":"2980:13:44"}],"name":"_creditTo","nameLocation":"2865:9:44","nodeType":"FunctionDefinition","overrides":{"id":10885,"nodeType":"OverrideSpecifier","overrides":[],"src":"2971:8:44"},"parameters":{"id":10884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10879,"mutability":"mutable","name":"srcChainId_","nameLocation":"2891:11:44","nodeType":"VariableDeclaration","scope":10911,"src":"2884:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10878,"name":"uint16","nodeType":"ElementaryTypeName","src":"2884:6:44","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10881,"mutability":"mutable","name":"toAddress_","nameLocation":"2920:10:44","nodeType":"VariableDeclaration","scope":10911,"src":"2912:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10880,"name":"address","nodeType":"ElementaryTypeName","src":"2912:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10883,"mutability":"mutable","name":"amount_","nameLocation":"2948:7:44","nodeType":"VariableDeclaration","scope":10911,"src":"2940:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10882,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2874:87:44"},"returnParameters":{"id":10890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10911,"src":"3003:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10888,"name":"uint256","nodeType":"ElementaryTypeName","src":"3003:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3002:9:44"},"scope":10912,"src":"2856:312:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":10913,"src":"548:2622:44","usedErrors":[9312,9511],"usedEvents":[471,477,483,491,1009,1019,3172,3181,3191,3195,5389,5499,5504,9437,9446,9455,9464,9473,9480,9485,9490,9499,9504,10769]}],"src":"41:3130:44"},"id":44},"contracts/Bridge/XVSProxyOFTSrc.sol":{"ast":{"absolutePath":"contracts/Bridge/XVSProxyOFTSrc.sol","exportedSymbols":{"BaseXVSProxyOFT":[10412],"IERC20":[6261],"SafeERC20":[6698],"XVSProxyOFTSrc":[11217]},"id":11218,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":10914,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:45"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":10917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11218,"sourceUnit":6699,"src":"66:92:45","symbolAliases":[{"foreign":{"id":10915,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6698,"src":"75:9:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":10916,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"86:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Bridge/BaseXVSProxyOFT.sol","file":"./BaseXVSProxyOFT.sol","id":10919,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11218,"sourceUnit":10413,"src":"159:56:45","symbolAliases":[{"foreign":{"id":10918,"name":"BaseXVSProxyOFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"168:15:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10921,"name":"BaseXVSProxyOFT","nameLocations":["678:15:45"],"nodeType":"IdentifierPath","referencedDeclaration":10412,"src":"678:15:45"},"id":10922,"nodeType":"InheritanceSpecifier","src":"678:15:45"}],"canonicalName":"XVSProxyOFTSrc","contractDependencies":[],"contractKind":"contract","documentation":{"id":10920,"nodeType":"StructuredDocumentation","src":"217:432:45","text":" @title XVSProxyOFTSrc\n @author Venus\n @notice XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions,\n focusing on the source side of these transactions.\n It monitors the total amount transferred to other chains, ensuring it complies with defined limits,\n and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain."},"fullyImplemented":true,"id":11217,"linearizedBaseContracts":[11217,10412,3128,4207,4148,7303,7315,4083,1212,971,1402,1371,5488,9293,5596,7050],"name":"XVSProxyOFTSrc","nameLocation":"660:14:45","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10926,"libraryName":{"id":10923,"name":"SafeERC20","nameLocations":["706:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6698,"src":"706:9:45"},"nodeType":"UsingForDirective","src":"700:27:45","typeName":{"id":10925,"nodeType":"UserDefinedTypeName","pathNode":{"id":10924,"name":"IERC20","nameLocations":["720:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":6261,"src":"720:6:45"},"referencedDeclaration":6261,"src":"720:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}}},{"constant":false,"documentation":{"id":10927,"nodeType":"StructuredDocumentation","src":"732:92:45","text":" @notice Total amount that is transferred from this chain to other chains."},"functionSelector":"9689cb05","id":10929,"mutability":"mutable","name":"outboundAmount","nameLocation":"844:14:45","nodeType":"VariableDeclaration","scope":11217,"src":"829:29:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10928,"name":"uint256","nodeType":"ElementaryTypeName","src":"829:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":10930,"nodeType":"StructuredDocumentation","src":"865:78:45","text":" @notice Emits when locked token released manually by owner."},"eventSelector":"22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab96","id":10936,"name":"FallbackWithdraw","nameLocation":"954:16:45","nodeType":"EventDefinition","parameters":{"id":10935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10932,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"987:2:45","nodeType":"VariableDeclaration","scope":10936,"src":"971:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10931,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10934,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"999:6:45","nodeType":"VariableDeclaration","scope":10936,"src":"991:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10933,"name":"uint256","nodeType":"ElementaryTypeName","src":"991:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:36:45"},"src":"948:59:45"},{"anonymous":false,"documentation":{"id":10937,"nodeType":"StructuredDocumentation","src":"1012:89:45","text":" @notice Emits when stored message dropped without successful retrying."},"eventSelector":"48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee","id":10945,"name":"DropFailedMessage","nameLocation":"1112:17:45","nodeType":"EventDefinition","parameters":{"id":10944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10939,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"1137:10:45","nodeType":"VariableDeclaration","scope":10945,"src":"1130:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":10938,"name":"uint16","nodeType":"ElementaryTypeName","src":"1130:6:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":10941,"indexed":true,"mutability":"mutable","name":"srcAddress","nameLocation":"1163:10:45","nodeType":"VariableDeclaration","scope":10945,"src":"1149:24:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10940,"name":"bytes","nodeType":"ElementaryTypeName","src":"1149:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10943,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"1182:5:45","nodeType":"VariableDeclaration","scope":10945,"src":"1175:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10942,"name":"uint64","nodeType":"ElementaryTypeName","src":"1175:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1129:59:45"},"src":"1106:83:45"},{"anonymous":false,"documentation":{"id":10946,"nodeType":"StructuredDocumentation","src":"1194:75:45","text":" @notice Event emitted when tokens are forcefully locked."},"eventSelector":"5e6172210489e8382b0281a3e17233598e143c96f8ac1f90923540b554cea112","id":10952,"name":"FallbackDeposit","nameLocation":"1280:15:45","nodeType":"EventDefinition","parameters":{"id":10951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10948,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1312:4:45","nodeType":"VariableDeclaration","scope":10952,"src":"1296:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10947,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10950,"indexed":false,"mutability":"mutable","name":"amount_","nameLocation":"1326:7:45","nodeType":"VariableDeclaration","scope":10952,"src":"1318:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10949,"name":"uint256","nodeType":"ElementaryTypeName","src":"1318:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1295:39:45"},"src":"1274:61:45"},{"body":{"id":10969,"nodeType":"Block","src":"1545:2:45","statements":[]},"id":10970,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10963,"name":"tokenAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10954,"src":"1491:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10964,"name":"sharedDecimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10956,"src":"1506:15:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":10965,"name":"lzEndpoint_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10958,"src":"1523:11:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10966,"name":"oracle_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10960,"src":"1536:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":10967,"kind":"baseConstructorSpecifier","modifierName":{"id":10962,"name":"BaseXVSProxyOFT","nameLocations":["1475:15:45"],"nodeType":"IdentifierPath","referencedDeclaration":10412,"src":"1475:15:45"},"nodeType":"ModifierInvocation","src":"1475:69:45"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10954,"mutability":"mutable","name":"tokenAddress_","nameLocation":"1370:13:45","nodeType":"VariableDeclaration","scope":10970,"src":"1362:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10953,"name":"address","nodeType":"ElementaryTypeName","src":"1362:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10956,"mutability":"mutable","name":"sharedDecimals_","nameLocation":"1399:15:45","nodeType":"VariableDeclaration","scope":10970,"src":"1393:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10955,"name":"uint8","nodeType":"ElementaryTypeName","src":"1393:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10958,"mutability":"mutable","name":"lzEndpoint_","nameLocation":"1432:11:45","nodeType":"VariableDeclaration","scope":10970,"src":"1424:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10957,"name":"address","nodeType":"ElementaryTypeName","src":"1424:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10960,"mutability":"mutable","name":"oracle_","nameLocation":"1461:7:45","nodeType":"VariableDeclaration","scope":10970,"src":"1453:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10959,"name":"address","nodeType":"ElementaryTypeName","src":"1453:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1352:122:45"},"returnParameters":{"id":10968,"nodeType":"ParameterList","parameters":[],"src":"1545:0:45"},"scope":11217,"src":"1341:206:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11006,"nodeType":"Block","src":"2037:272:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10981,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"2055:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10982,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"2073:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2055:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"576974686472617720616d6f756e742073686f756c64206265206c657373207468616e206f7574626f756e6420616d6f756e74","id":10984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2082:53:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea","typeString":"literal_string \"Withdraw amount should be less than outbound amount\""},"value":"Withdraw amount should be less than outbound amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea","typeString":"literal_string \"Withdraw amount should be less than outbound amount\""}],"id":10980,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2047:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:89:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10986,"nodeType":"ExpressionStatement","src":"2047:89:45"},{"id":10991,"nodeType":"UncheckedBlock","src":"2146:60:45","statements":[{"expression":{"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10987,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"2170:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10988,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"2188:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2170:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10990,"nodeType":"ExpressionStatement","src":"2170:25:45"}]},{"expression":{"arguments":[{"arguments":[{"id":10995,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2237:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}],"id":10994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2229:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10993,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:45","typeDescriptions":{}}},"id":10996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2229:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10997,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"2244:3:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10998,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"2249:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10992,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[10401],"referencedDeclaration":10401,"src":"2215:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":10999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2215:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11000,"nodeType":"ExpressionStatement","src":"2215:42:45"},{"eventCall":{"arguments":[{"id":11002,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"2289:3:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11003,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"2294:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11001,"name":"FallbackWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10936,"src":"2272:16:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2272:30:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11005,"nodeType":"EmitStatement","src":"2267:35:45"}]},"documentation":{"id":10971,"nodeType":"StructuredDocumentation","src":"1553:404:45","text":" @notice Only call it when there is no way to recover the failed message.\n `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending.\n @param to_ The address to withdraw to\n @param amount_ The amount of withdrawal\n @custom:access Only owner.\n @custom:event Emits FallbackWithdraw, once done with transfer."},"functionSelector":"48e4a04a","id":11007,"implemented":true,"kind":"function","modifiers":[{"id":10978,"kind":"modifierInvocation","modifierName":{"id":10977,"name":"onlyOwner","nameLocations":["2027:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"2027:9:45"},"nodeType":"ModifierInvocation","src":"2027:9:45"}],"name":"fallbackWithdraw","nameLocation":"1971:16:45","nodeType":"FunctionDefinition","parameters":{"id":10976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10973,"mutability":"mutable","name":"to_","nameLocation":"1996:3:45","nodeType":"VariableDeclaration","scope":11007,"src":"1988:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10972,"name":"address","nodeType":"ElementaryTypeName","src":"1988:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10975,"mutability":"mutable","name":"amount_","nameLocation":"2009:7:45","nodeType":"VariableDeclaration","scope":11007,"src":"2001:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10974,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:30:45"},"returnParameters":{"id":10979,"nodeType":"ParameterList","parameters":[],"src":"2037:0:45"},"scope":11217,"src":"1962:347:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11058,"nodeType":"Block","src":"2746:352:45","statements":[{"assignments":[11018,null],"declarations":[{"constant":false,"id":11018,"mutability":"mutable","name":"actualAmount","nameLocation":"2765:12:45","nodeType":"VariableDeclaration","scope":11058,"src":"2757:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11017,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":11022,"initialValue":{"arguments":[{"id":11020,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11012,"src":"2795:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11019,"name":"_removeDust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3874,"src":"2783:11:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256)"}},"id":11021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:20:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2756:47:45"},{"expression":{"id":11025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11023,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"2814:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":11024,"name":"actualAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11018,"src":"2832:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2814:30:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11026,"nodeType":"ExpressionStatement","src":"2814:30:45"},{"assignments":[11028],"declarations":[{"constant":false,"id":11028,"mutability":"mutable","name":"cap","nameLocation":"2862:3:45","nodeType":"VariableDeclaration","scope":11058,"src":"2854:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11027,"name":"uint256","nodeType":"ElementaryTypeName","src":"2854:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11036,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":11032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2880:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":11031,"name":"uint64","nodeType":"ElementaryTypeName","src":"2880:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":11030,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2875:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":11034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2888:3:45","memberName":"max","nodeType":"MemberAccess","src":"2875:16:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":11029,"name":"_sd2ld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"2868:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint64) view returns (uint256)"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2868:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2854:38:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11038,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11028,"src":"2910:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11039,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"2917:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a206f7574626f756e64416d6f756e74206f766572666c6f77","id":11041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2933:35:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","typeString":"literal_string \"ProxyOFT: outboundAmount overflow\""},"value":"ProxyOFT: outboundAmount overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","typeString":"literal_string \"ProxyOFT: outboundAmount overflow\""}],"id":11037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2902:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:67:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11043,"nodeType":"ExpressionStatement","src":"2902:67:45"},{"expression":{"arguments":[{"id":11045,"name":"depositor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"2994:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11048,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}],"id":11047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11046,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:45","typeDescriptions":{}}},"id":11049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11050,"name":"actualAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11018,"src":"3021:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11044,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[10401],"referencedDeclaration":10401,"src":"2980:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":11051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:54:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11052,"nodeType":"ExpressionStatement","src":"2980:54:45"},{"eventCall":{"arguments":[{"id":11054,"name":"depositor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"3066:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11055,"name":"actualAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11018,"src":"3078:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11053,"name":"FallbackDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10952,"src":"3050:15:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3050:41:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11057,"nodeType":"EmitStatement","src":"3045:46:45"}]},"documentation":{"id":11008,"nodeType":"StructuredDocumentation","src":"2315:345:45","text":" @notice Forces the lock of tokens by increasing outbound amount and transferring tokens from the sender to the contract.\n @param amount_ The amount of tokens to lock.\n @param depositor_ Address of the depositor.\n @custom:access Only owner.\n @custom:event Emits FallbackDeposit, once done with transfer."},"functionSelector":"4be66720","id":11059,"implemented":true,"kind":"function","modifiers":[{"id":11015,"kind":"modifierInvocation","modifierName":{"id":11014,"name":"onlyOwner","nameLocations":["2736:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"2736:9:45"},"nodeType":"ModifierInvocation","src":"2736:9:45"}],"name":"fallbackDeposit","nameLocation":"2674:15:45","nodeType":"FunctionDefinition","parameters":{"id":11013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11010,"mutability":"mutable","name":"depositor_","nameLocation":"2698:10:45","nodeType":"VariableDeclaration","scope":11059,"src":"2690:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11009,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11012,"mutability":"mutable","name":"amount_","nameLocation":"2718:7:45","nodeType":"VariableDeclaration","scope":11059,"src":"2710:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11011,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2689:37:45"},"returnParameters":{"id":11016,"nodeType":"ParameterList","parameters":[],"src":"2746:0:45"},"scope":11217,"src":"2665:433:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11090,"nodeType":"Block","src":"3564:144:45","statements":[{"expression":{"id":11082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":11071,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"3574:14:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$_$","typeString":"mapping(uint16 => mapping(bytes memory => mapping(uint64 => bytes32)))"}},"id":11075,"indexExpression":{"id":11072,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"3589:11:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3574:27:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_mapping$_t_uint64_$_t_bytes32_$_$","typeString":"mapping(bytes memory => mapping(uint64 => bytes32))"}},"id":11076,"indexExpression":{"id":11073,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11064,"src":"3602:11:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3574:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_bytes32_$","typeString":"mapping(uint64 => bytes32)"}},"id":11077,"indexExpression":{"id":11074,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11066,"src":"3615:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3574:48:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":11080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3633:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3625:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3625:7:45","typeDescriptions":{}}},"id":11081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3625:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3574:61:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11083,"nodeType":"ExpressionStatement","src":"3574:61:45"},{"eventCall":{"arguments":[{"id":11085,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11062,"src":"3668:11:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11086,"name":"srcAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11064,"src":"3681:11:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11087,"name":"nonce_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11066,"src":"3694:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":11084,"name":"DropFailedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10945,"src":"3650:17:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint16_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (uint16,bytes memory,uint64)"}},"id":11088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:51:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11089,"nodeType":"EmitStatement","src":"3645:56:45"}]},"documentation":{"id":11060,"nodeType":"StructuredDocumentation","src":"3104:348:45","text":" @notice Clear failed messages from the storage.\n @param srcChainId_ Chain id of source\n @param srcAddress_ Address of source followed by current bridge address\n @param nonce_ Nonce_ of the transaction\n @custom:access Only owner.\n @custom:event Emits DropFailedMessage on clearance of failed message."},"functionSelector":"84e69c69","id":11091,"implemented":true,"kind":"function","modifiers":[{"id":11069,"kind":"modifierInvocation","modifierName":{"id":11068,"name":"onlyOwner","nameLocations":["3554:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"3554:9:45"},"nodeType":"ModifierInvocation","src":"3554:9:45"}],"name":"dropFailedMessage","nameLocation":"3466:17:45","nodeType":"FunctionDefinition","parameters":{"id":11067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11062,"mutability":"mutable","name":"srcChainId_","nameLocation":"3491:11:45","nodeType":"VariableDeclaration","scope":11091,"src":"3484:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11061,"name":"uint16","nodeType":"ElementaryTypeName","src":"3484:6:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11064,"mutability":"mutable","name":"srcAddress_","nameLocation":"3517:11:45","nodeType":"VariableDeclaration","scope":11091,"src":"3504:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11063,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":11066,"mutability":"mutable","name":"nonce_","nameLocation":"3537:6:45","nodeType":"VariableDeclaration","scope":11091,"src":"3530:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11065,"name":"uint64","nodeType":"ElementaryTypeName","src":"3530:6:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3483:61:45"},"returnParameters":{"id":11070,"nodeType":"ParameterList","parameters":[],"src":"3564:0:45"},"scope":11217,"src":"3457:251:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3121],"body":{"id":11104,"nodeType":"Block","src":"4004:65:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11098,"name":"innerToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9377,"src":"4021:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6261","typeString":"contract IERC20"}},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4032:11:45","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":6210,"src":"4021:22:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4021:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11101,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"4048:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4021:41:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11097,"id":11103,"nodeType":"Return","src":"4014:48:45"}]},"documentation":{"id":11092,"nodeType":"StructuredDocumentation","src":"3714:217:45","text":" @notice Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract).\n @return Returns difference in total supply and the outbound amount."},"functionSelector":"9358928b","id":11105,"implemented":true,"kind":"function","modifiers":[],"name":"circulatingSupply","nameLocation":"3945:17:45","nodeType":"FunctionDefinition","overrides":{"id":11094,"nodeType":"OverrideSpecifier","overrides":[],"src":"3977:8:45"},"parameters":{"id":11093,"nodeType":"ParameterList","parameters":[],"src":"3962:2:45"},"returnParameters":{"id":11097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11105,"src":"3995:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11095,"name":"uint256","nodeType":"ElementaryTypeName","src":"3995:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3994:9:45"},"scope":11217,"src":"3936:133:45","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4055],"body":{"id":11170,"nodeType":"Block","src":"4509:397:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11123,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11108,"src":"4527:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11124,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"4536:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4536:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4527:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c6572","id":11127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4550:36:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","typeString":"literal_string \"ProxyOFT: owner is not send caller\""},"value":"ProxyOFT: owner is not send caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","typeString":"literal_string \"ProxyOFT: owner is not send caller\""}],"id":11122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4519:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4519:68:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11129,"nodeType":"ExpressionStatement","src":"4519:68:45"},{"expression":{"arguments":[{"id":11131,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11108,"src":"4615:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11132,"name":"dstChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11110,"src":"4622:11:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11133,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11114,"src":"4635:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11130,"name":"_isEligibleToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10231,"src":"4597:17:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (address,uint16,uint256)"}},"id":11134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4597:46:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11135,"nodeType":"ExpressionStatement","src":"4597:46:45"},{"assignments":[11137],"declarations":[{"constant":false,"id":11137,"mutability":"mutable","name":"amount","nameLocation":"4662:6:45","nodeType":"VariableDeclaration","scope":11170,"src":"4654:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11136,"name":"uint256","nodeType":"ElementaryTypeName","src":"4654:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11146,"initialValue":{"arguments":[{"id":11139,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11108,"src":"4685:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11142,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4700:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}],"id":11141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4692:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11140,"name":"address","nodeType":"ElementaryTypeName","src":"4692:7:45","typeDescriptions":{}}},"id":11143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4692:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11144,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11114,"src":"4707:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11138,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[10401],"referencedDeclaration":10401,"src":"4671:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":11145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4671:44:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4654:61:45"},{"expression":{"id":11149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11147,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"4726:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":11148,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"4744:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4726:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11150,"nodeType":"ExpressionStatement","src":"4726:24:45"},{"assignments":[11152],"declarations":[{"constant":false,"id":11152,"mutability":"mutable","name":"cap","nameLocation":"4768:3:45","nodeType":"VariableDeclaration","scope":11170,"src":"4760:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11151,"name":"uint256","nodeType":"ElementaryTypeName","src":"4760:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11160,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":11156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4786:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":11155,"name":"uint64","nodeType":"ElementaryTypeName","src":"4786:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":11154,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4781:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":11158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4794:3:45","memberName":"max","nodeType":"MemberAccess","src":"4781:16:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":11153,"name":"_sd2ld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"4774:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint64) view returns (uint256)"}},"id":11159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4760:38:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11162,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11152,"src":"4816:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11163,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"4823:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4816:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f78794f46543a206f7574626f756e64416d6f756e74206f766572666c6f77","id":11165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4839:35:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","typeString":"literal_string \"ProxyOFT: outboundAmount overflow\""},"value":"ProxyOFT: outboundAmount overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","typeString":"literal_string \"ProxyOFT: outboundAmount overflow\""}],"id":11161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4808:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:67:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11167,"nodeType":"ExpressionStatement","src":"4808:67:45"},{"expression":{"id":11168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"4893:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11121,"id":11169,"nodeType":"Return","src":"4886:13:45"}]},"documentation":{"id":11106,"nodeType":"StructuredDocumentation","src":"4075:260:45","text":" @notice Debit tokens from the given address\n @param from_  Address from which tokens to be debited\n @param dstChainId_ Destination chain id\n @param amount_ Amount of tokens to be debited\n @return Actual amount debited"},"id":11171,"implemented":true,"kind":"function","modifiers":[{"id":11118,"kind":"modifierInvocation","modifierName":{"id":11117,"name":"whenNotPaused","nameLocations":["4477:13:45"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"4477:13:45"},"nodeType":"ModifierInvocation","src":"4477:13:45"}],"name":"_debitFrom","nameLocation":"4349:10:45","nodeType":"FunctionDefinition","overrides":{"id":11116,"nodeType":"OverrideSpecifier","overrides":[],"src":"4468:8:45"},"parameters":{"id":11115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11108,"mutability":"mutable","name":"from_","nameLocation":"4377:5:45","nodeType":"VariableDeclaration","scope":11171,"src":"4369:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11107,"name":"address","nodeType":"ElementaryTypeName","src":"4369:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11110,"mutability":"mutable","name":"dstChainId_","nameLocation":"4399:11:45","nodeType":"VariableDeclaration","scope":11171,"src":"4392:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11109,"name":"uint16","nodeType":"ElementaryTypeName","src":"4392:6:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11171,"src":"4420:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4420:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11114,"mutability":"mutable","name":"amount_","nameLocation":"4445:7:45","nodeType":"VariableDeclaration","scope":11171,"src":"4437:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11113,"name":"uint256","nodeType":"ElementaryTypeName","src":"4437:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4359:99:45"},"returnParameters":{"id":11121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11171,"src":"4500:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4500:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4499:9:45"},"scope":11217,"src":"4340:566:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4066],"body":{"id":11215,"nodeType":"Block","src":"5334:325:45","statements":[{"expression":{"arguments":[{"id":11187,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"5365:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11188,"name":"srcChainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"5377:11:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":11189,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11178,"src":"5390:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11186,"name":"_isEligibleToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"5344:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (address,uint16,uint256)"}},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5344:54:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11191,"nodeType":"ExpressionStatement","src":"5344:54:45"},{"expression":{"id":11194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11192,"name":"outboundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"5408:14:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":11193,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11178,"src":"5426:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5408:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11195,"nodeType":"ExpressionStatement","src":"5408:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11196,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"5518:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":11199,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5540:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}],"id":11198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5532:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11197,"name":"address","nodeType":"ElementaryTypeName","src":"5532:7:45","typeDescriptions":{}}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5532:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5518:27:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11205,"nodeType":"IfStatement","src":"5514:72:45","trueBody":{"id":11204,"nodeType":"Block","src":"5547:39:45","statements":[{"expression":{"id":11202,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11178,"src":"5568:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11185,"id":11203,"nodeType":"Return","src":"5561:14:45"}]}},{"expression":{"arguments":[{"arguments":[{"id":11209,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5625:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XVSProxyOFTSrc_$11217","typeString":"contract XVSProxyOFTSrc"}],"id":11208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5617:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11207,"name":"address","nodeType":"ElementaryTypeName","src":"5617:7:45","typeDescriptions":{}}},"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11211,"name":"toAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"5632:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11212,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11178,"src":"5644:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11206,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[10401],"referencedDeclaration":10401,"src":"5603:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":11213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5603:49:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11185,"id":11214,"nodeType":"Return","src":"5596:56:45"}]},"documentation":{"id":11172,"nodeType":"StructuredDocumentation","src":"4912:261:45","text":" @notice Credit tokens in the given account\n @param srcChainId_  Source chain id\n @param toAddress_ Address on which token will be credited\n @param amount_ Amount of tokens to be credited\n @return Actual amount credited"},"id":11216,"implemented":true,"kind":"function","modifiers":[{"id":11182,"kind":"modifierInvocation","modifierName":{"id":11181,"name":"whenNotPaused","nameLocations":["5302:13:45"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"5302:13:45"},"nodeType":"ModifierInvocation","src":"5302:13:45"}],"name":"_creditTo","nameLocation":"5187:9:45","nodeType":"FunctionDefinition","overrides":{"id":11180,"nodeType":"OverrideSpecifier","overrides":[],"src":"5293:8:45"},"parameters":{"id":11179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11174,"mutability":"mutable","name":"srcChainId_","nameLocation":"5213:11:45","nodeType":"VariableDeclaration","scope":11216,"src":"5206:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11173,"name":"uint16","nodeType":"ElementaryTypeName","src":"5206:6:45","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11176,"mutability":"mutable","name":"toAddress_","nameLocation":"5242:10:45","nodeType":"VariableDeclaration","scope":11216,"src":"5234:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11175,"name":"address","nodeType":"ElementaryTypeName","src":"5234:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11178,"mutability":"mutable","name":"amount_","nameLocation":"5270:7:45","nodeType":"VariableDeclaration","scope":11216,"src":"5262:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11177,"name":"uint256","nodeType":"ElementaryTypeName","src":"5262:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5196:87:45"},"returnParameters":{"id":11185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11216,"src":"5325:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11183,"name":"uint256","nodeType":"ElementaryTypeName","src":"5325:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5324:9:45"},"scope":11217,"src":"5178:481:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11218,"src":"651:5010:45","usedErrors":[9312,9511],"usedEvents":[471,477,483,491,1009,1019,3172,3181,3191,3195,5389,5499,5504,9437,9446,9455,9464,9473,9480,9485,9490,9499,9504,10936,10945,10952]}],"src":"41:5621:45"},"id":45},"contracts/Bridge/interfaces/IXVS.sol":{"ast":{"absolutePath":"contracts/Bridge/interfaces/IXVS.sol","exportedSymbols":{"IXVS":[11235]},"id":11236,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11219,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:46"},{"abstract":false,"baseContracts":[],"canonicalName":"IXVS","contractDependencies":[],"contractKind":"interface","documentation":{"id":11220,"nodeType":"StructuredDocumentation","src":"67:88:46","text":" @title IXVS\n @author Venus\n @notice Interface implemented by `XVS` token."},"fullyImplemented":false,"id":11235,"linearizedBaseContracts":[11235],"name":"IXVS","nameLocation":"166:4:46","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40c10f19","id":11227,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"186:4:46","nodeType":"FunctionDefinition","parameters":{"id":11225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11222,"mutability":"mutable","name":"to","nameLocation":"199:2:46","nodeType":"VariableDeclaration","scope":11227,"src":"191:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11221,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11224,"mutability":"mutable","name":"amount","nameLocation":"211:6:46","nodeType":"VariableDeclaration","scope":11227,"src":"203:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11223,"name":"uint256","nodeType":"ElementaryTypeName","src":"203:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"190:28:46"},"returnParameters":{"id":11226,"nodeType":"ParameterList","parameters":[],"src":"227:0:46"},"scope":11235,"src":"177:51:46","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9dc29fac","id":11234,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"243:4:46","nodeType":"FunctionDefinition","parameters":{"id":11232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11229,"mutability":"mutable","name":"from","nameLocation":"256:4:46","nodeType":"VariableDeclaration","scope":11234,"src":"248:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11228,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11231,"mutability":"mutable","name":"amount","nameLocation":"270:6:46","nodeType":"VariableDeclaration","scope":11234,"src":"262:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11230,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"247:30:46"},"returnParameters":{"id":11233,"nodeType":"ParameterList","parameters":[],"src":"286:0:46"},"scope":11235,"src":"234:53:46","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11236,"src":"156:133:46","usedErrors":[],"usedEvents":[]}],"src":"41:249:46"},"id":46},"contracts/Bridge/interfaces/IXVSProxyOFT.sol":{"ast":{"absolutePath":"contracts/Bridge/interfaces/IXVSProxyOFT.sol","exportedSymbols":{"IXVSProxyOFT":[11260]},"id":11261,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11237,"literals":["solidity","^","0.8",".25"],"nodeType":"PragmaDirective","src":"41:24:47"},{"abstract":false,"baseContracts":[],"canonicalName":"IXVSProxyOFT","contractDependencies":[],"contractKind":"interface","documentation":{"id":11238,"nodeType":"StructuredDocumentation","src":"67:98:47","text":" @title IXVSProxyOFT\n @author Venus\n @notice Interface implemented by `XVSProxyOFT`."},"fullyImplemented":false,"id":11260,"linearizedBaseContracts":[11260],"name":"IXVSProxyOFT","nameLocation":"176:12:47","nodeType":"ContractDefinition","nodes":[{"functionSelector":"f2fde38b","id":11243,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"204:17:47","nodeType":"FunctionDefinition","parameters":{"id":11241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"addr","nameLocation":"230:4:47","nodeType":"VariableDeclaration","scope":11243,"src":"222:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11239,"name":"address","nodeType":"ElementaryTypeName","src":"222:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"221:14:47"},"returnParameters":{"id":11242,"nodeType":"ParameterList","parameters":[],"src":"244:0:47"},"scope":11260,"src":"195:50:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a6c3d165","id":11250,"implemented":false,"kind":"function","modifiers":[],"name":"setTrustedRemoteAddress","nameLocation":"260:23:47","nodeType":"FunctionDefinition","parameters":{"id":11248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11245,"mutability":"mutable","name":"remoteChainId","nameLocation":"291:13:47","nodeType":"VariableDeclaration","scope":11250,"src":"284:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11244,"name":"uint16","nodeType":"ElementaryTypeName","src":"284:6:47","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11247,"mutability":"mutable","name":"srcAddress","nameLocation":"321:10:47","nodeType":"VariableDeclaration","scope":11250,"src":"306:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11246,"name":"bytes","nodeType":"ElementaryTypeName","src":"306:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"283:49:47"},"returnParameters":{"id":11249,"nodeType":"ParameterList","parameters":[],"src":"341:0:47"},"scope":11260,"src":"251:91:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3d8b38f6","id":11259,"implemented":false,"kind":"function","modifiers":[],"name":"isTrustedRemote","nameLocation":"357:15:47","nodeType":"FunctionDefinition","parameters":{"id":11255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11252,"mutability":"mutable","name":"remoteChainId","nameLocation":"380:13:47","nodeType":"VariableDeclaration","scope":11259,"src":"373:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":11251,"name":"uint16","nodeType":"ElementaryTypeName","src":"373:6:47","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":11254,"mutability":"mutable","name":"srcAddress","nameLocation":"410:10:47","nodeType":"VariableDeclaration","scope":11259,"src":"395:25:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11253,"name":"bytes","nodeType":"ElementaryTypeName","src":"395:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"372:49:47"},"returnParameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11259,"src":"440:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11256,"name":"bool","nodeType":"ElementaryTypeName","src":"440:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"439:6:47"},"scope":11260,"src":"348:98:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11261,"src":"166:282:47","usedErrors":[],"usedEvents":[]}],"src":"41:408:47"},"id":47},"contracts/Bridge/token/TokenController.sol":{"ast":{"absolutePath":"contracts/Bridge/token/TokenController.sol","exportedSymbols":{"IAccessControlManagerV8":[8664],"Ownable":[5488],"Pausable":[5596],"TokenController":[11715],"ensureNonzeroAddress":[9333]},"id":11716,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11262,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:48"},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol","id":11264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":8665,"src":"66:127:48","symbolAliases":[{"foreign":{"id":11263,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8664,"src":"75:23:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":11266,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":5597,"src":"194:73:48","symbolAliases":[{"foreign":{"id":11265,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5596,"src":"203:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":11268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":5489,"src":"268:69:48","symbolAliases":[{"foreign":{"id":11267,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5488,"src":"277:7:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/solidity-utilities/contracts/validators.sol","file":"@venusprotocol/solidity-utilities/contracts/validators.sol","id":11270,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":9349,"src":"338:98:48","symbolAliases":[{"foreign":{"id":11269,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"347:20:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11272,"name":"Ownable","nameLocations":["817:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":5488,"src":"817:7:48"},"id":11273,"nodeType":"InheritanceSpecifier","src":"817:7:48"},{"baseName":{"id":11274,"name":"Pausable","nameLocations":["826:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":5596,"src":"826:8:48"},"id":11275,"nodeType":"InheritanceSpecifier","src":"826:8:48"}],"canonicalName":"TokenController","contractDependencies":[],"contractKind":"contract","documentation":{"id":11271,"nodeType":"StructuredDocumentation","src":"438:349:48","text":" @title TokenController\n @author Venus\n @notice TokenController contract acts as a governance and access control mechanism,\n allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem.\n It provides a flexible framework for token-related operations."},"fullyImplemented":true,"id":11715,"linearizedBaseContracts":[11715,5596,5488,7050],"name":"TokenController","nameLocation":"798:15:48","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":11276,"nodeType":"StructuredDocumentation","src":"841:67:48","text":" @notice Access control manager contract address."},"functionSelector":"b4a0bdf3","id":11278,"mutability":"mutable","name":"accessControlManager","nameLocation":"928:20:48","nodeType":"VariableDeclaration","scope":11715,"src":"913:35:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11277,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11279,"nodeType":"StructuredDocumentation","src":"954:93:48","text":" @notice A Mapping used to keep track of the blacklist status of addresses."},"id":11283,"mutability":"mutable","name":"_blacklist","nameLocation":"1086:10:48","nodeType":"VariableDeclaration","scope":11715,"src":"1052:44:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":11282,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11280,"name":"address","nodeType":"ElementaryTypeName","src":"1060:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1052:24:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11281,"name":"bool","nodeType":"ElementaryTypeName","src":"1071:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":11284,"nodeType":"StructuredDocumentation","src":"1102:111:48","text":" @notice A mapping is used to keep track of the maximum amount a minter is permitted to mint."},"functionSelector":"391efe12","id":11288,"mutability":"mutable","name":"minterToCap","nameLocation":"1253:11:48","nodeType":"VariableDeclaration","scope":11715,"src":"1218:46:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":11287,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11285,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:27:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"documentation":{"id":11289,"nodeType":"StructuredDocumentation","src":"1270:99:48","text":" @notice A Mapping used to keep track of the amount i.e already minted by minter."},"functionSelector":"7b517334","id":11293,"mutability":"mutable","name":"minterToMintedAmount","nameLocation":"1409:20:48","nodeType":"VariableDeclaration","scope":11715,"src":"1374:55:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":11292,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11290,"name":"address","nodeType":"ElementaryTypeName","src":"1382:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1374:27:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1393:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":11294,"nodeType":"StructuredDocumentation","src":"1436:82:48","text":" @notice Emitted when the blacklist status of a user is updated."},"eventSelector":"6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac","id":11300,"name":"BlacklistUpdated","nameLocation":"1529:16:48","nodeType":"EventDefinition","parameters":{"id":11299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11296,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"1562:4:48","nodeType":"VariableDeclaration","scope":11300,"src":"1546:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11295,"name":"address","nodeType":"ElementaryTypeName","src":"1546:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11298,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1573:5:48","nodeType":"VariableDeclaration","scope":11300,"src":"1568:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11297,"name":"bool","nodeType":"ElementaryTypeName","src":"1568:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1545:34:48"},"src":"1523:57:48"},{"anonymous":false,"documentation":{"id":11301,"nodeType":"StructuredDocumentation","src":"1585:84:48","text":" @notice Emitted when the minting limit for a minter is increased."},"eventSelector":"0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb","id":11307,"name":"MintLimitIncreased","nameLocation":"1680:18:48","nodeType":"EventDefinition","parameters":{"id":11306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11303,"indexed":true,"mutability":"mutable","name":"minter","nameLocation":"1715:6:48","nodeType":"VariableDeclaration","scope":11307,"src":"1699:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11302,"name":"address","nodeType":"ElementaryTypeName","src":"1699:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11305,"indexed":false,"mutability":"mutable","name":"newLimit","nameLocation":"1731:8:48","nodeType":"VariableDeclaration","scope":11307,"src":"1723:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1698:42:48"},"src":"1674:67:48"},{"anonymous":false,"documentation":{"id":11308,"nodeType":"StructuredDocumentation","src":"1746:84:48","text":" @notice Emitted when the minting limit for a minter is decreased."},"eventSelector":"be214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e61","id":11314,"name":"MintLimitDecreased","nameLocation":"1841:18:48","nodeType":"EventDefinition","parameters":{"id":11313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11310,"indexed":true,"mutability":"mutable","name":"minter","nameLocation":"1876:6:48","nodeType":"VariableDeclaration","scope":11314,"src":"1860:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11309,"name":"address","nodeType":"ElementaryTypeName","src":"1860:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11312,"indexed":false,"mutability":"mutable","name":"newLimit","nameLocation":"1892:8:48","nodeType":"VariableDeclaration","scope":11314,"src":"1884:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1884:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1859:42:48"},"src":"1835:67:48"},{"anonymous":false,"documentation":{"id":11315,"nodeType":"StructuredDocumentation","src":"1907:80:48","text":" @notice Emitted when the minting cap for a minter is changed."},"eventSelector":"01a85f4ecff52e70907e25b863010bca98a9458d9f2fe9b3efb4c47d197e6448","id":11321,"name":"MintCapChanged","nameLocation":"1998:14:48","nodeType":"EventDefinition","parameters":{"id":11320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11317,"indexed":true,"mutability":"mutable","name":"minter","nameLocation":"2029:6:48","nodeType":"VariableDeclaration","scope":11321,"src":"2013:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11316,"name":"address","nodeType":"ElementaryTypeName","src":"2013:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11319,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2045:6:48","nodeType":"VariableDeclaration","scope":11321,"src":"2037:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11318,"name":"uint256","nodeType":"ElementaryTypeName","src":"2037:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2012:40:48"},"src":"1992:61:48"},{"anonymous":false,"documentation":{"id":11322,"nodeType":"StructuredDocumentation","src":"2058:109:48","text":" @notice Emitted when the address of the access control manager of the contract is updated."},"eventSelector":"66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0","id":11328,"name":"NewAccessControlManager","nameLocation":"2178:23:48","nodeType":"EventDefinition","parameters":{"id":11327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11324,"indexed":true,"mutability":"mutable","name":"oldAccessControlManager","nameLocation":"2218:23:48","nodeType":"VariableDeclaration","scope":11328,"src":"2202:39:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11323,"name":"address","nodeType":"ElementaryTypeName","src":"2202:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11326,"indexed":true,"mutability":"mutable","name":"newAccessControlManager","nameLocation":"2259:23:48","nodeType":"VariableDeclaration","scope":11328,"src":"2243:39:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11325,"name":"address","nodeType":"ElementaryTypeName","src":"2243:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2201:82:48"},"src":"2172:112:48"},{"anonymous":false,"documentation":{"id":11329,"nodeType":"StructuredDocumentation","src":"2289:98:48","text":" @notice Emitted when all minted tokens are migrated from one minter to another."},"eventSelector":"63ce671e4a37975f0a9e340f6f72320c617a5f728b83e3860b03aa847dc26ebb","id":11335,"name":"MintedTokensMigrated","nameLocation":"2398:20:48","nodeType":"EventDefinition","parameters":{"id":11334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11331,"indexed":true,"mutability":"mutable","name":"source","nameLocation":"2435:6:48","nodeType":"VariableDeclaration","scope":11335,"src":"2419:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11330,"name":"address","nodeType":"ElementaryTypeName","src":"2419:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11333,"indexed":true,"mutability":"mutable","name":"destination","nameLocation":"2459:11:48","nodeType":"VariableDeclaration","scope":11335,"src":"2443:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11332,"name":"address","nodeType":"ElementaryTypeName","src":"2443:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2418:53:48"},"src":"2392:80:48"},{"documentation":{"id":11336,"nodeType":"StructuredDocumentation","src":"2478:178:48","text":" @notice This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap."},"errorSelector":"4f2dbd1d","id":11338,"name":"MintLimitExceed","nameLocation":"2667:15:48","nodeType":"ErrorDefinition","parameters":{"id":11337,"nodeType":"ParameterList","parameters":[],"src":"2682:2:48"},"src":"2661:24:48"},{"documentation":{"id":11339,"nodeType":"StructuredDocumentation","src":"2690:137:48","text":" @notice This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address."},"errorSelector":"571f7b49","id":11343,"name":"AccountBlacklisted","nameLocation":"2838:18:48","nodeType":"ErrorDefinition","parameters":{"id":11342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11341,"mutability":"mutable","name":"user","nameLocation":"2865:4:48","nodeType":"VariableDeclaration","scope":11343,"src":"2857:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11340,"name":"address","nodeType":"ElementaryTypeName","src":"2857:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2856:14:48"},"src":"2832:39:48"},{"documentation":{"id":11344,"nodeType":"StructuredDocumentation","src":"2876:108:48","text":" @notice This error is used to indicate that sender is not allowed to perform this action."},"errorSelector":"82b42900","id":11346,"name":"Unauthorized","nameLocation":"2995:12:48","nodeType":"ErrorDefinition","parameters":{"id":11345,"nodeType":"ParameterList","parameters":[],"src":"3007:2:48"},"src":"2989:21:48"},{"documentation":{"id":11347,"nodeType":"StructuredDocumentation","src":"3015:135:48","text":" @notice This error is used to indicate that the new cap is greater than the previously minted tokens for the minter."},"errorSelector":"ce89973d","id":11349,"name":"NewCapNotGreaterThanMintedTokens","nameLocation":"3161:32:48","nodeType":"ErrorDefinition","parameters":{"id":11348,"nodeType":"ParameterList","parameters":[],"src":"3193:2:48"},"src":"3155:41:48"},{"documentation":{"id":11350,"nodeType":"StructuredDocumentation","src":"3201:95:48","text":" @notice This error is used to indicate that the addresses must be different."},"errorSelector":"80ae98f5","id":11352,"name":"AddressesMustDiffer","nameLocation":"3307:19:48","nodeType":"ErrorDefinition","parameters":{"id":11351,"nodeType":"ParameterList","parameters":[],"src":"3326:2:48"},"src":"3301:28:48"},{"documentation":{"id":11353,"nodeType":"StructuredDocumentation","src":"3334:117:48","text":" @notice This error is used to indicate that the minter did not mint the required amount of tokens."},"errorSelector":"915e5e52","id":11355,"name":"MintedAmountExceed","nameLocation":"3462:18:48","nodeType":"ErrorDefinition","parameters":{"id":11354,"nodeType":"ParameterList","parameters":[],"src":"3480:2:48"},"src":"3456:27:48"},{"body":{"id":11369,"nodeType":"Block","src":"3733:114:48","statements":[{"expression":{"arguments":[{"id":11362,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"3764:21:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11361,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"3743:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3743:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11364,"nodeType":"ExpressionStatement","src":"3743:43:48"},{"expression":{"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11365,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"3796:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11366,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"3819:21:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3796:44:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11368,"nodeType":"ExpressionStatement","src":"3796:44:48"}]},"documentation":{"id":11356,"nodeType":"StructuredDocumentation","src":"3489:196:48","text":" @param accessControlManager_ Address of access control manager contract.\n @custom:error ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero."},"id":11370,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11358,"mutability":"mutable","name":"accessControlManager_","nameLocation":"3710:21:48","nodeType":"VariableDeclaration","scope":11370,"src":"3702:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11357,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3701:31:48"},"returnParameters":{"id":11360,"nodeType":"ParameterList","parameters":[],"src":"3733:0:48"},"scope":11715,"src":"3690:157:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11381,"nodeType":"Block","src":"3981:60:48","statements":[{"expression":{"arguments":[{"hexValue":"70617573652829","id":11375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:9:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""},"value":"pause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8456cb591a934d53f6ccc6332123a165a1f3562907bf11330d847a29ca49eb89","typeString":"literal_string \"pause()\""}],"id":11374,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"3991:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3991:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11377,"nodeType":"ExpressionStatement","src":"3991:25:48"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11378,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"4026:6:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:8:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11380,"nodeType":"ExpressionStatement","src":"4026:8:48"}]},"documentation":{"id":11371,"nodeType":"StructuredDocumentation","src":"3853:97:48","text":" @notice Pauses Token\n @custom:access Controlled by AccessControlManager."},"functionSelector":"8456cb59","id":11382,"implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"3964:5:48","nodeType":"FunctionDefinition","parameters":{"id":11372,"nodeType":"ParameterList","parameters":[],"src":"3969:2:48"},"returnParameters":{"id":11373,"nodeType":"ParameterList","parameters":[],"src":"3981:0:48"},"scope":11715,"src":"3955:86:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11393,"nodeType":"Block","src":"4178:64:48","statements":[{"expression":{"arguments":[{"hexValue":"756e70617573652829","id":11387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4203:11:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""},"value":"unpause()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc","typeString":"literal_string \"unpause()\""}],"id":11386,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"4188:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4188:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11389,"nodeType":"ExpressionStatement","src":"4188:27:48"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11390,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5595,"src":"4225:8:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4225:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11392,"nodeType":"ExpressionStatement","src":"4225:10:48"}]},"documentation":{"id":11383,"nodeType":"StructuredDocumentation","src":"4047:98:48","text":" @notice Resumes Token\n @custom:access Controlled by AccessControlManager."},"functionSelector":"3f4ba83a","id":11394,"implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"4159:7:48","nodeType":"FunctionDefinition","parameters":{"id":11384,"nodeType":"ParameterList","parameters":[],"src":"4166:2:48"},"returnParameters":{"id":11385,"nodeType":"ParameterList","parameters":[],"src":"4178:0:48"},"scope":11715,"src":"4150:92:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11417,"nodeType":"Block","src":"4575:146:48","statements":[{"expression":{"arguments":[{"hexValue":"757064617465426c61636b6c69737428616464726573732c626f6f6c29","id":11403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4600:31:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_9155e08385a4b7584a2ab6721592391bc4d93111bd245fddeb9f4943713818fa","typeString":"literal_string \"updateBlacklist(address,bool)\""},"value":"updateBlacklist(address,bool)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9155e08385a4b7584a2ab6721592391bc4d93111bd245fddeb9f4943713818fa","typeString":"literal_string \"updateBlacklist(address,bool)\""}],"id":11402,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"4585:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11405,"nodeType":"ExpressionStatement","src":"4585:47:48"},{"expression":{"id":11410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11406,"name":"_blacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"4642:10:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11408,"indexExpression":{"id":11407,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"4653:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4642:17:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11409,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"4662:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4642:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11411,"nodeType":"ExpressionStatement","src":"4642:26:48"},{"eventCall":{"arguments":[{"id":11413,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"4700:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11414,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"4707:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11412,"name":"BlacklistUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11300,"src":"4683:16:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":11415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4683:31:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11416,"nodeType":"EmitStatement","src":"4678:36:48"}]},"documentation":{"id":11395,"nodeType":"StructuredDocumentation","src":"4248:260:48","text":" @notice Function to update blacklist.\n @param user_ User address to be affected.\n @param value_ Boolean to toggle value.\n @custom:access Controlled by AccessControlManager.\n @custom:event Emits BlacklistUpdated event."},"functionSelector":"9155e083","id":11418,"implemented":true,"kind":"function","modifiers":[],"name":"updateBlacklist","nameLocation":"4522:15:48","nodeType":"FunctionDefinition","parameters":{"id":11400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11397,"mutability":"mutable","name":"user_","nameLocation":"4546:5:48","nodeType":"VariableDeclaration","scope":11418,"src":"4538:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11396,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11399,"mutability":"mutable","name":"value_","nameLocation":"4558:6:48","nodeType":"VariableDeclaration","scope":11418,"src":"4553:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11398,"name":"bool","nodeType":"ElementaryTypeName","src":"4553:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4537:28:48"},"returnParameters":{"id":11401,"nodeType":"ParameterList","parameters":[],"src":"4575:0:48"},"scope":11715,"src":"4513:208:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11451,"nodeType":"Block","src":"5035:271:48","statements":[{"expression":{"arguments":[{"hexValue":"7365744d696e7443617028616464726573732c75696e7432353629","id":11427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5060:29:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c06abe772e489c7c12b8856a7e6dc9d04636b013e4c6fdaa4fe239a11858ef09","typeString":"literal_string \"setMintCap(address,uint256)\""},"value":"setMintCap(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c06abe772e489c7c12b8856a7e6dc9d04636b013e4c6fdaa4fe239a11858ef09","typeString":"literal_string \"setMintCap(address,uint256)\""}],"id":11426,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"5045:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5045:45:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11429,"nodeType":"ExpressionStatement","src":"5045:45:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11430,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11423,"src":"5105:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":11431,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"5115:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11433,"indexExpression":{"id":11432,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11421,"src":"5136:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5115:29:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5105:39:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11439,"nodeType":"IfStatement","src":"5101:111:48","trueBody":{"id":11438,"nodeType":"Block","src":"5146:66:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11435,"name":"NewCapNotGreaterThanMintedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11349,"src":"5167:32:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5167:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11437,"nodeType":"RevertStatement","src":"5160:41:48"}]}},{"expression":{"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11440,"name":"minterToCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"5222:11:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11442,"indexExpression":{"id":11441,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11421,"src":"5234:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5222:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11443,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11423,"src":"5245:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5222:30:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11445,"nodeType":"ExpressionStatement","src":"5222:30:48"},{"eventCall":{"arguments":[{"id":11447,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11421,"src":"5282:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11448,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11423,"src":"5291:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11446,"name":"MintCapChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11321,"src":"5267:14:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5267:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11450,"nodeType":"EmitStatement","src":"5262:37:48"}]},"documentation":{"id":11419,"nodeType":"StructuredDocumentation","src":"4727:240:48","text":" @notice Sets the minting cap for minter.\n @param minter_ Minter address.\n @param amount_ Cap for the minter.\n @custom:access Controlled by AccessControlManager.\n @custom:event Emits MintCapChanged."},"functionSelector":"c06abe77","id":11452,"implemented":true,"kind":"function","modifiers":[],"name":"setMintCap","nameLocation":"4981:10:48","nodeType":"FunctionDefinition","parameters":{"id":11424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11421,"mutability":"mutable","name":"minter_","nameLocation":"5000:7:48","nodeType":"VariableDeclaration","scope":11452,"src":"4992:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11420,"name":"address","nodeType":"ElementaryTypeName","src":"4992:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11423,"mutability":"mutable","name":"amount_","nameLocation":"5017:7:48","nodeType":"VariableDeclaration","scope":11452,"src":"5009:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11422,"name":"uint256","nodeType":"ElementaryTypeName","src":"5009:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4991:34:48"},"returnParameters":{"id":11425,"nodeType":"ParameterList","parameters":[],"src":"5035:0:48"},"scope":11715,"src":"4972:334:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11473,"nodeType":"Block","src":"5826:206:48","statements":[{"expression":{"arguments":[{"id":11461,"name":"newAccessControlAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11455,"src":"5857:24:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11460,"name":"ensureNonzeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"5836:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:46:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11463,"nodeType":"ExpressionStatement","src":"5836:46:48"},{"eventCall":{"arguments":[{"id":11465,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"5921:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11466,"name":"newAccessControlAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11455,"src":"5943:24:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11464,"name":"NewAccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11328,"src":"5897:23:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:71:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11468,"nodeType":"EmitStatement","src":"5892:76:48"},{"expression":{"id":11471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11469,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"5978:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11470,"name":"newAccessControlAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11455,"src":"6001:24:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5978:47:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11472,"nodeType":"ExpressionStatement","src":"5978:47:48"}]},"documentation":{"id":11453,"nodeType":"StructuredDocumentation","src":"5312:423:48","text":" @notice Sets the address of the access control manager of this contract.\n @dev Admin function to set the access control address.\n @param newAccessControlAddress_ New address for the access control.\n @custom:access Only owner.\n @custom:event Emits NewAccessControlManager.\n @custom:error ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero."},"functionSelector":"0e32cb86","id":11474,"implemented":true,"kind":"function","modifiers":[{"id":11458,"kind":"modifierInvocation","modifierName":{"id":11457,"name":"onlyOwner","nameLocations":["5816:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":5407,"src":"5816:9:48"},"nodeType":"ModifierInvocation","src":"5816:9:48"}],"name":"setAccessControlManager","nameLocation":"5749:23:48","nodeType":"FunctionDefinition","parameters":{"id":11456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11455,"mutability":"mutable","name":"newAccessControlAddress_","nameLocation":"5781:24:48","nodeType":"VariableDeclaration","scope":11474,"src":"5773:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11454,"name":"address","nodeType":"ElementaryTypeName","src":"5773:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5772:34:48"},"returnParameters":{"id":11459,"nodeType":"ParameterList","parameters":[],"src":"5826:0:48"},"scope":11715,"src":"5740:292:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11569,"nodeType":"Block","src":"6823:1000:48","statements":[{"expression":{"arguments":[{"hexValue":"6d6967726174654d696e746572546f6b656e7328616464726573732c6164647265737329","id":11483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:38:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_d89e2dac6d9de0dcfc60a3a17a2cd4888df74f4866728f27134e601ed389fc69","typeString":"literal_string \"migrateMinterTokens(address,address)\""},"value":"migrateMinterTokens(address,address)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d89e2dac6d9de0dcfc60a3a17a2cd4888df74f4866728f27134e601ed389fc69","typeString":"literal_string \"migrateMinterTokens(address,address)\""}],"id":11482,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"6833:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6833:54:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11485,"nodeType":"ExpressionStatement","src":"6833:54:48"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11486,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6902:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11487,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"6913:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6902:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11493,"nodeType":"IfStatement","src":"6898:82:48","trueBody":{"id":11492,"nodeType":"Block","src":"6927:53:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11489,"name":"AddressesMustDiffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11352,"src":"6948:19:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6948:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11491,"nodeType":"RevertStatement","src":"6941:28:48"}]}},{"assignments":[11495],"declarations":[{"constant":false,"id":11495,"mutability":"mutable","name":"sourceCap","nameLocation":"6998:9:48","nodeType":"VariableDeclaration","scope":11569,"src":"6990:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11494,"name":"uint256","nodeType":"ElementaryTypeName","src":"6990:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11499,"initialValue":{"baseExpression":{"id":11496,"name":"minterToCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"7010:11:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11498,"indexExpression":{"id":11497,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7022:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7010:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6990:40:48"},{"assignments":[11501],"declarations":[{"constant":false,"id":11501,"mutability":"mutable","name":"destinationCap","nameLocation":"7048:14:48","nodeType":"VariableDeclaration","scope":11569,"src":"7040:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11500,"name":"uint256","nodeType":"ElementaryTypeName","src":"7040:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11505,"initialValue":{"baseExpression":{"id":11502,"name":"minterToCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"7065:11:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11504,"indexExpression":{"id":11503,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"7077:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7065:25:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7040:50:48"},{"assignments":[11507],"declarations":[{"constant":false,"id":11507,"mutability":"mutable","name":"sourceMinted","nameLocation":"7109:12:48","nodeType":"VariableDeclaration","scope":11569,"src":"7101:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11506,"name":"uint256","nodeType":"ElementaryTypeName","src":"7101:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11511,"initialValue":{"baseExpression":{"id":11508,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"7124:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11510,"indexExpression":{"id":11509,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7145:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7124:29:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7101:52:48"},{"assignments":[11513],"declarations":[{"constant":false,"id":11513,"mutability":"mutable","name":"destinationMinted","nameLocation":"7171:17:48","nodeType":"VariableDeclaration","scope":11569,"src":"7163:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11512,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11517,"initialValue":{"baseExpression":{"id":11514,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"7191:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11516,"indexExpression":{"id":11515,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"7212:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7191:34:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7163:62:48"},{"assignments":[11519],"declarations":[{"constant":false,"id":11519,"mutability":"mutable","name":"newDestinationMinted","nameLocation":"7243:20:48","nodeType":"VariableDeclaration","scope":11569,"src":"7235:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11518,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11523,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11520,"name":"destinationMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11513,"src":"7266:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11521,"name":"sourceMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11507,"src":"7286:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7266:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7235:63:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11524,"name":"newDestinationMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"7313:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11525,"name":"destinationCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"7336:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7313:37:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11531,"nodeType":"IfStatement","src":"7309:92:48","trueBody":{"id":11530,"nodeType":"Block","src":"7352:49:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11527,"name":"MintLimitExceed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11338,"src":"7373:15:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7373:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11529,"nodeType":"RevertStatement","src":"7366:24:48"}]}},{"expression":{"id":11536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11532,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"7411:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11534,"indexExpression":{"id":11533,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7432:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7411:29:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":11535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7443:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7411:33:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11537,"nodeType":"ExpressionStatement","src":"7411:33:48"},{"expression":{"id":11542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11538,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"7454:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11540,"indexExpression":{"id":11539,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"7475:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7454:34:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11541,"name":"newDestinationMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"7491:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7454:57:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11543,"nodeType":"ExpressionStatement","src":"7454:57:48"},{"assignments":[11545],"declarations":[{"constant":false,"id":11545,"mutability":"mutable","name":"availableLimit","nameLocation":"7529:14:48","nodeType":"VariableDeclaration","scope":11569,"src":"7521:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11544,"name":"uint256","nodeType":"ElementaryTypeName","src":"7521:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11546,"nodeType":"VariableDeclarationStatement","src":"7521:22:48"},{"id":11553,"nodeType":"UncheckedBlock","src":"7553:89:48","statements":[{"expression":{"id":11551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11547,"name":"availableLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"7577:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11548,"name":"destinationCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11501,"src":"7594:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11549,"name":"newDestinationMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"7611:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7594:37:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7577:54:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11552,"nodeType":"ExpressionStatement","src":"7577:54:48"}]},{"eventCall":{"arguments":[{"id":11555,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"7676:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11556,"name":"availableLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"7690:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11554,"name":"MintLimitDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11314,"src":"7657:18:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7657:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11558,"nodeType":"EmitStatement","src":"7652:53:48"},{"eventCall":{"arguments":[{"id":11560,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7739:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11561,"name":"sourceCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11495,"src":"7748:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11559,"name":"MintLimitIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11307,"src":"7720:18:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7720:38:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11563,"nodeType":"EmitStatement","src":"7715:43:48"},{"eventCall":{"arguments":[{"id":11565,"name":"source_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7794:7:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11566,"name":"destination_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11479,"src":"7803:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11564,"name":"MintedTokensMigrated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11335,"src":"7773:20:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7773:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11568,"nodeType":"EmitStatement","src":"7768:48:48"}]},"documentation":{"id":11475,"nodeType":"StructuredDocumentation","src":"6038:703:48","text":" @notice Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\n @param source_ Minter address to migrate tokens from.\n @param destination_ Minter address to migrate tokens to.\n @custom:access Controlled by AccessControlManager.\n @custom:error MintLimitExceed is thrown when the minting limit exceeds the cap after migration.\n @custom:error AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\n @custom:event Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.\n @custom:event Emits MintedTokensMigrated."},"functionSelector":"d89e2dac","id":11570,"implemented":true,"kind":"function","modifiers":[],"name":"migrateMinterTokens","nameLocation":"6755:19:48","nodeType":"FunctionDefinition","parameters":{"id":11480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11477,"mutability":"mutable","name":"source_","nameLocation":"6783:7:48","nodeType":"VariableDeclaration","scope":11570,"src":"6775:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11476,"name":"address","nodeType":"ElementaryTypeName","src":"6775:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11479,"mutability":"mutable","name":"destination_","nameLocation":"6800:12:48","nodeType":"VariableDeclaration","scope":11570,"src":"6792:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11478,"name":"address","nodeType":"ElementaryTypeName","src":"6792:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6774:39:48"},"returnParameters":{"id":11481,"nodeType":"ParameterList","parameters":[],"src":"6823:0:48"},"scope":11715,"src":"6746:1077:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11582,"nodeType":"Block","src":"8076:41:48","statements":[{"expression":{"baseExpression":{"id":11578,"name":"_blacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"8093:10:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11580,"indexExpression":{"id":11579,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11573,"src":"8104:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8093:17:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11577,"id":11581,"nodeType":"Return","src":"8086:24:48"}]},"documentation":{"id":11571,"nodeType":"StructuredDocumentation","src":"7829:175:48","text":" @notice Returns the blacklist status of the address.\n @param user_ Address of user to check blacklist status.\n @return bool status of blacklist."},"functionSelector":"e47d6060","id":11583,"implemented":true,"kind":"function","modifiers":[],"name":"isBlackListed","nameLocation":"8018:13:48","nodeType":"FunctionDefinition","parameters":{"id":11574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11573,"mutability":"mutable","name":"user_","nameLocation":"8040:5:48","nodeType":"VariableDeclaration","scope":11583,"src":"8032:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11572,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8031:15:48"},"returnParameters":{"id":11577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11583,"src":"8070:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11575,"name":"bool","nodeType":"ElementaryTypeName","src":"8070:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8069:6:48"},"scope":11715,"src":"8009:108:48","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11640,"nodeType":"Block","src":"8588:499:48","statements":[{"assignments":[11594],"declarations":[{"constant":false,"id":11594,"mutability":"mutable","name":"mintingCap","nameLocation":"8606:10:48","nodeType":"VariableDeclaration","scope":11640,"src":"8598:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11593,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11598,"initialValue":{"baseExpression":{"id":11595,"name":"minterToCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"8619:11:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11597,"indexExpression":{"id":11596,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11586,"src":"8631:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8619:18:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8598:39:48"},{"assignments":[11600],"declarations":[{"constant":false,"id":11600,"mutability":"mutable","name":"totalMintedOld","nameLocation":"8655:14:48","nodeType":"VariableDeclaration","scope":11640,"src":"8647:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11599,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11604,"initialValue":{"baseExpression":{"id":11601,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"8672:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11603,"indexExpression":{"id":11602,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11586,"src":"8693:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8672:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8647:52:48"},{"assignments":[11606],"declarations":[{"constant":false,"id":11606,"mutability":"mutable","name":"totalMintedNew","nameLocation":"8717:14:48","nodeType":"VariableDeclaration","scope":11640,"src":"8709:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11605,"name":"uint256","nodeType":"ElementaryTypeName","src":"8709:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11610,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11607,"name":"totalMintedOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"8734:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11608,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11590,"src":"8751:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8734:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8709:49:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11611,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"8773:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11612,"name":"mintingCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11594,"src":"8790:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8773:27:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11618,"nodeType":"IfStatement","src":"8769:82:48","trueBody":{"id":11617,"nodeType":"Block","src":"8802:49:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11614,"name":"MintLimitExceed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11338,"src":"8823:15:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8823:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11616,"nodeType":"RevertStatement","src":"8816:24:48"}]}},{"expression":{"id":11623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11619,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"8860:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11621,"indexExpression":{"id":11620,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11586,"src":"8881:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8860:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11622,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"8890:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8860:44:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11624,"nodeType":"ExpressionStatement","src":"8860:44:48"},{"assignments":[11626],"declarations":[{"constant":false,"id":11626,"mutability":"mutable","name":"availableLimit","nameLocation":"8922:14:48","nodeType":"VariableDeclaration","scope":11640,"src":"8914:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11625,"name":"uint256","nodeType":"ElementaryTypeName","src":"8914:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11627,"nodeType":"VariableDeclarationStatement","src":"8914:22:48"},{"id":11634,"nodeType":"UncheckedBlock","src":"8946:79:48","statements":[{"expression":{"id":11632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11628,"name":"availableLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11626,"src":"8970:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11629,"name":"mintingCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11594,"src":"8987:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11630,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"9000:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8987:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8970:44:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11633,"nodeType":"ExpressionStatement","src":"8970:44:48"}]},{"eventCall":{"arguments":[{"id":11636,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11586,"src":"9058:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11637,"name":"availableLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11626,"src":"9065:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11635,"name":"MintLimitDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11314,"src":"9039:18:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9039:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11639,"nodeType":"EmitStatement","src":"9034:46:48"}]},"documentation":{"id":11584,"nodeType":"StructuredDocumentation","src":"8123:379:48","text":" @dev Checks the minter cap and eligibility of receiver to receive tokens.\n @param from_  Minter address.\n @param to_  Receiver address.\n @param amount_  Amount to be mint.\n @custom:error MintLimitExceed is thrown when minting limit exceeds the cap.\n @custom:event Emits MintLimitDecreased with minter address and available limits."},"id":11641,"implemented":true,"kind":"function","modifiers":[],"name":"_isEligibleToMint","nameLocation":"8516:17:48","nodeType":"FunctionDefinition","parameters":{"id":11591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11586,"mutability":"mutable","name":"from_","nameLocation":"8542:5:48","nodeType":"VariableDeclaration","scope":11641,"src":"8534:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11585,"name":"address","nodeType":"ElementaryTypeName","src":"8534:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11588,"mutability":"mutable","name":"to_","nameLocation":"8557:3:48","nodeType":"VariableDeclaration","scope":11641,"src":"8549:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11587,"name":"address","nodeType":"ElementaryTypeName","src":"8549:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11590,"mutability":"mutable","name":"amount_","nameLocation":"8570:7:48","nodeType":"VariableDeclaration","scope":11641,"src":"8562:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11589,"name":"uint256","nodeType":"ElementaryTypeName","src":"8562:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8533:45:48"},"returnParameters":{"id":11592,"nodeType":"ParameterList","parameters":[],"src":"8588:0:48"},"scope":11715,"src":"8507:580:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11692,"nodeType":"Block","src":"9536:459:48","statements":[{"assignments":[11650],"declarations":[{"constant":false,"id":11650,"mutability":"mutable","name":"totalMintedOld","nameLocation":"9554:14:48","nodeType":"VariableDeclaration","scope":11692,"src":"9546:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11649,"name":"uint256","nodeType":"ElementaryTypeName","src":"9546:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11654,"initialValue":{"baseExpression":{"id":11651,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"9571:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11653,"indexExpression":{"id":11652,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"9592:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9571:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9546:52:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11655,"name":"totalMintedOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"9613:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11656,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11646,"src":"9630:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9613:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11662,"nodeType":"IfStatement","src":"9609:82:48","trueBody":{"id":11661,"nodeType":"Block","src":"9639:52:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11658,"name":"MintedAmountExceed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11355,"src":"9660:18:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9660:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11660,"nodeType":"RevertStatement","src":"9653:27:48"}]}},{"assignments":[11664],"declarations":[{"constant":false,"id":11664,"mutability":"mutable","name":"totalMintedNew","nameLocation":"9709:14:48","nodeType":"VariableDeclaration","scope":11692,"src":"9701:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11663,"name":"uint256","nodeType":"ElementaryTypeName","src":"9701:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11665,"nodeType":"VariableDeclarationStatement","src":"9701:22:48"},{"id":11672,"nodeType":"UncheckedBlock","src":"9733:76:48","statements":[{"expression":{"id":11670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11666,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11664,"src":"9757:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11667,"name":"totalMintedOld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"9774:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11668,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11646,"src":"9791:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9774:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9757:41:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11671,"nodeType":"ExpressionStatement","src":"9757:41:48"}]},{"expression":{"id":11677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11673,"name":"minterToMintedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"9818:20:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11675,"indexExpression":{"id":11674,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"9839:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9818:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11676,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11664,"src":"9848:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9818:44:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11678,"nodeType":"ExpressionStatement","src":"9818:44:48"},{"assignments":[11680],"declarations":[{"constant":false,"id":11680,"mutability":"mutable","name":"availableLimit","nameLocation":"9880:14:48","nodeType":"VariableDeclaration","scope":11692,"src":"9872:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11679,"name":"uint256","nodeType":"ElementaryTypeName","src":"9872:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11686,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":11681,"name":"minterToCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11288,"src":"9897:11:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11683,"indexExpression":{"id":11682,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"9909:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9897:18:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11684,"name":"totalMintedNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11664,"src":"9918:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9897:35:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9872:60:48"},{"eventCall":{"arguments":[{"id":11688,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"9966:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11689,"name":"availableLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11680,"src":"9973:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11687,"name":"MintLimitIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11307,"src":"9947:18:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11691,"nodeType":"EmitStatement","src":"9942:46:48"}]},"documentation":{"id":11642,"nodeType":"StructuredDocumentation","src":"9093:369:48","text":" @dev This is post hook of burn function, increases minting limit of the minter.\n @param from_ Minter address.\n @param amount_  Amount burned.\n @custom:error MintedAmountExceed is thrown when `amount_` is greater than the tokens minted by `from_`.\n @custom:event Emits MintLimitIncreased with minter address and availabe limit."},"id":11693,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseMintLimit","nameLocation":"9476:18:48","nodeType":"FunctionDefinition","parameters":{"id":11647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11644,"mutability":"mutable","name":"from_","nameLocation":"9503:5:48","nodeType":"VariableDeclaration","scope":11693,"src":"9495:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11643,"name":"address","nodeType":"ElementaryTypeName","src":"9495:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11646,"mutability":"mutable","name":"amount_","nameLocation":"9518:7:48","nodeType":"VariableDeclaration","scope":11693,"src":"9510:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11645,"name":"uint256","nodeType":"ElementaryTypeName","src":"9510:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9494:32:48"},"returnParameters":{"id":11648,"nodeType":"ParameterList","parameters":[],"src":"9536:0:48"},"scope":11715,"src":"9467:528:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11713,"nodeType":"Block","src":"10323:156:48","statements":[{"condition":{"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10337:88:48","subExpression":{"arguments":[{"expression":{"id":11703,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10400:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10404:6:48","memberName":"sender","nodeType":"MemberAccess","src":"10400:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11705,"name":"functionSig_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"10412:12:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":11700,"name":"accessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"10362:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11699,"name":"IAccessControlManagerV8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8664,"src":"10338:23:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlManagerV8_$8664_$","typeString":"type(contract IAccessControlManagerV8)"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:45:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControlManagerV8_$8664","typeString":"contract IAccessControlManagerV8"}},"id":11702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10384:15:48","memberName":"isAllowedToCall","nodeType":"MemberAccess","referencedDeclaration":8652,"src":"10338:61:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (address,string memory) view external returns (bool)"}},"id":11706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:87:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11712,"nodeType":"IfStatement","src":"10333:140:48","trueBody":{"id":11711,"nodeType":"Block","src":"10427:46:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":11708,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"10448:12:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10448:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11710,"nodeType":"RevertStatement","src":"10441:21:48"}]}}]},"documentation":{"id":11694,"nodeType":"StructuredDocumentation","src":"10001:251:48","text":" @dev Checks the caller is allowed to call the specified fuction.\n @param functionSig_ Function signatureon which access is to be checked.\n @custom:error Unauthorized, thrown when unauthorised user try to access function."},"id":11714,"implemented":true,"kind":"function","modifiers":[],"name":"_ensureAllowed","nameLocation":"10266:14:48","nodeType":"FunctionDefinition","parameters":{"id":11697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11696,"mutability":"mutable","name":"functionSig_","nameLocation":"10295:12:48","nodeType":"VariableDeclaration","scope":11714,"src":"10281:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11695,"name":"string","nodeType":"ElementaryTypeName","src":"10281:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10280:28:48"},"returnParameters":{"id":11698,"nodeType":"ParameterList","parameters":[],"src":"10323:0:48"},"scope":11715,"src":"10257:222:48","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11716,"src":"789:9692:48","usedErrors":[9312,11338,11343,11346,11349,11352,11355],"usedEvents":[5389,5499,5504,11300,11307,11314,11321,11328,11335]}],"src":"41:10441:48"},"id":48},"contracts/Bridge/token/XVS.sol":{"ast":{"absolutePath":"contracts/Bridge/token/XVS.sol","exportedSymbols":{"ERC20":[6183],"TokenController":[11715],"XVS":[11825]},"id":11826,"license":"BSD-3-Clause","nodeType":"SourceUnit","nodes":[{"id":11717,"literals":["solidity","0.8",".25"],"nodeType":"PragmaDirective","src":"41:23:49"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":11719,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":6184,"src":"66:70:49","symbolAliases":[{"foreign":{"id":11718,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"75:5:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Bridge/token/TokenController.sol","file":"./TokenController.sol","id":11721,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":11716,"src":"138:56:49","symbolAliases":[{"foreign":{"id":11720,"name":"TokenController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11715,"src":"147:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11723,"name":"ERC20","nameLocations":["535:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":6183,"src":"535:5:49"},"id":11724,"nodeType":"InheritanceSpecifier","src":"535:5:49"},{"baseName":{"id":11725,"name":"TokenController","nameLocations":["542:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":11715,"src":"542:15:49"},"id":11726,"nodeType":"InheritanceSpecifier","src":"542:15:49"}],"canonicalName":"XVS","contractDependencies":[],"contractKind":"contract","documentation":{"id":11722,"nodeType":"StructuredDocumentation","src":"196:321:49","text":" @title XVS\n @author Venus\n @notice XVS contract serves as a customized ERC-20 token with additional minting and burning functionality.\n  It also incorporates access control features provided by the \"TokenController\" contract to ensure proper governance and restrictions on minting and burning operations."},"fullyImplemented":true,"id":11825,"linearizedBaseContracts":[11825,11715,5596,5488,6183,6286,6261,7050],"name":"XVS","nameLocation":"528:3:49","nodeType":"ContractDefinition","nodes":[{"body":{"id":11738,"nodeType":"Block","src":"672:2:49","statements":[]},"id":11739,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"56656e757320585653","id":11731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"613:11:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_d84c4b3c1f9f605f7f18dd0b1188e8ce81bbbebd49601b26fa44c5ea39592223","typeString":"literal_string \"Venus XVS\""},"value":"Venus XVS"},{"hexValue":"585653","id":11732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"626:5:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_76e8c3a4e0bf6a403f16853d9a583f26097ecbfbbc77b1ec65fa370c98b12bf0","typeString":"literal_string \"XVS\""},"value":"XVS"}],"id":11733,"kind":"baseConstructorSpecifier","modifierName":{"id":11730,"name":"ERC20","nameLocations":["607:5:49"],"nodeType":"IdentifierPath","referencedDeclaration":6183,"src":"607:5:49"},"nodeType":"ModifierInvocation","src":"607:25:49"},{"arguments":[{"id":11735,"name":"accessControlManager_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11728,"src":"649:21:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11736,"kind":"baseConstructorSpecifier","modifierName":{"id":11734,"name":"TokenController","nameLocations":["633:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":11715,"src":"633:15:49"},"nodeType":"ModifierInvocation","src":"633:38:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11728,"mutability":"mutable","name":"accessControlManager_","nameLocation":"584:21:49","nodeType":"VariableDeclaration","scope":11739,"src":"576:29:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11727,"name":"address","nodeType":"ElementaryTypeName","src":"576:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"575:31:49"},"returnParameters":{"id":11737,"nodeType":"ParameterList","parameters":[],"src":"672:0:49"},"scope":11825,"src":"564:110:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11765,"nodeType":"Block","src":"1245:148:49","statements":[{"expression":{"arguments":[{"hexValue":"6d696e7428616464726573732c75696e7432353629","id":11750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:23:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""},"value":"mint(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""}],"id":11749,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"1255:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1255:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11752,"nodeType":"ExpressionStatement","src":"1255:39:49"},{"expression":{"arguments":[{"expression":{"id":11754,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1322:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1326:6:49","memberName":"sender","nodeType":"MemberAccess","src":"1322:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11756,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"1334:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11757,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11744,"src":"1344:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11753,"name":"_isEligibleToMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11641,"src":"1304:17:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11759,"nodeType":"ExpressionStatement","src":"1304:48:49"},{"expression":{"arguments":[{"id":11761,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"1368:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11762,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11744,"src":"1378:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11760,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"1362:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11764,"nodeType":"ExpressionStatement","src":"1362:24:49"}]},"documentation":{"id":11740,"nodeType":"StructuredDocumentation","src":"680:488:49","text":" @notice Creates `amount_` tokens and assigns them to `account_`, increasing\n the total supply. Checks access and eligibility.\n @param account_ Address to which tokens are assigned.\n @param amount_ Amount of tokens to be assigned.\n @custom:access Controlled by AccessControlManager.\n @custom:event Emits MintLimitDecreased with new available limit.\n @custom:error MintLimitExceed is thrown when minting amount exceeds the maximum cap."},"functionSelector":"40c10f19","id":11766,"implemented":true,"kind":"function","modifiers":[{"id":11747,"kind":"modifierInvocation","modifierName":{"id":11746,"name":"whenNotPaused","nameLocations":["1231:13:49"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"1231:13:49"},"nodeType":"ModifierInvocation","src":"1231:13:49"}],"name":"mint","nameLocation":"1182:4:49","nodeType":"FunctionDefinition","parameters":{"id":11745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11742,"mutability":"mutable","name":"account_","nameLocation":"1195:8:49","nodeType":"VariableDeclaration","scope":11766,"src":"1187:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11741,"name":"address","nodeType":"ElementaryTypeName","src":"1187:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11744,"mutability":"mutable","name":"amount_","nameLocation":"1213:7:49","nodeType":"VariableDeclaration","scope":11766,"src":"1205:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1205:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:35:49"},"returnParameters":{"id":11748,"nodeType":"ParameterList","parameters":[],"src":"1245:0:49"},"scope":11825,"src":"1173:220:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11791,"nodeType":"Block","src":"1859:139:49","statements":[{"expression":{"arguments":[{"hexValue":"6275726e28616464726573732c75696e7432353629","id":11777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1884:23:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba","typeString":"literal_string \"burn(address,uint256)\""},"value":"burn(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba","typeString":"literal_string \"burn(address,uint256)\""}],"id":11776,"name":"_ensureAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"1869:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":11778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11779,"nodeType":"ExpressionStatement","src":"1869:39:49"},{"expression":{"arguments":[{"id":11781,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"1924:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11782,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"1934:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11780,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6072,"src":"1918:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1918:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11784,"nodeType":"ExpressionStatement","src":"1918:24:49"},{"expression":{"arguments":[{"expression":{"id":11786,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1971:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1975:6:49","memberName":"sender","nodeType":"MemberAccess","src":"1971:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11788,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"1983:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11785,"name":"_increaseMintLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11693,"src":"1952:18:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11790,"nodeType":"ExpressionStatement","src":"1952:39:49"}]},"documentation":{"id":11767,"nodeType":"StructuredDocumentation","src":"1399:383:49","text":" @notice Destroys `amount_` tokens from `account_`, reducing the\n total supply. Checks access and eligibility.\n @param account_ Address from which tokens be destroyed.\n @param amount_ Amount of tokens to be destroyed.\n @custom:access Controlled by AccessControlManager.\n @custom:event Emits MintLimitIncreased with new available limit."},"functionSelector":"9dc29fac","id":11792,"implemented":true,"kind":"function","modifiers":[{"id":11774,"kind":"modifierInvocation","modifierName":{"id":11773,"name":"whenNotPaused","nameLocations":["1845:13:49"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"1845:13:49"},"nodeType":"ModifierInvocation","src":"1845:13:49"}],"name":"burn","nameLocation":"1796:4:49","nodeType":"FunctionDefinition","parameters":{"id":11772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11769,"mutability":"mutable","name":"account_","nameLocation":"1809:8:49","nodeType":"VariableDeclaration","scope":11792,"src":"1801:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11768,"name":"address","nodeType":"ElementaryTypeName","src":"1801:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11771,"mutability":"mutable","name":"amount_","nameLocation":"1827:7:49","nodeType":"VariableDeclaration","scope":11792,"src":"1819:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11770,"name":"uint256","nodeType":"ElementaryTypeName","src":"1819:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1800:35:49"},"returnParameters":{"id":11775,"nodeType":"ParameterList","parameters":[],"src":"1859:0:49"},"scope":11825,"src":"1787:211:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6171],"body":{"id":11823,"nodeType":"Block","src":"2558:181:49","statements":[{"condition":{"baseExpression":{"id":11805,"name":"_blacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2572:10:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11807,"indexExpression":{"id":11806,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"2583:3:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2572:15:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11813,"nodeType":"IfStatement","src":"2568:76:49","trueBody":{"id":11812,"nodeType":"Block","src":"2589:55:49","statements":[{"errorCall":{"arguments":[{"id":11809,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"2629:3:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11808,"name":"AccountBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11343,"src":"2610:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2610:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11811,"nodeType":"RevertStatement","src":"2603:30:49"}]}},{"condition":{"baseExpression":{"id":11814,"name":"_blacklist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2657:10:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11816,"indexExpression":{"id":11815,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"2668:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2657:17:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11822,"nodeType":"IfStatement","src":"2653:80:49","trueBody":{"id":11821,"nodeType":"Block","src":"2676:57:49","statements":[{"errorCall":{"arguments":[{"id":11818,"name":"from_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"2716:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11817,"name":"AccountBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11343,"src":"2697:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":11819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11820,"nodeType":"RevertStatement","src":"2690:32:49"}]}}]},"documentation":{"id":11793,"nodeType":"StructuredDocumentation","src":"2004:442:49","text":" @notice Hook that is called before any transfer of tokens. This includes\n minting and burning.\n @param from_ Address of account from which tokens are to be transferred.\n @param to_ Address of the account to which tokens are to be transferred.\n @param amount_ The amount of tokens to be transferred.\n @custom:error AccountBlacklisted is thrown when either `from` or `to` address is blacklisted."},"id":11824,"implemented":true,"kind":"function","modifiers":[{"id":11803,"kind":"modifierInvocation","modifierName":{"id":11802,"name":"whenNotPaused","nameLocations":["2544:13:49"],"nodeType":"IdentifierPath","referencedDeclaration":5523,"src":"2544:13:49"},"nodeType":"ModifierInvocation","src":"2544:13:49"}],"name":"_beforeTokenTransfer","nameLocation":"2460:20:49","nodeType":"FunctionDefinition","overrides":{"id":11801,"nodeType":"OverrideSpecifier","overrides":[],"src":"2535:8:49"},"parameters":{"id":11800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11795,"mutability":"mutable","name":"from_","nameLocation":"2489:5:49","nodeType":"VariableDeclaration","scope":11824,"src":"2481:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11794,"name":"address","nodeType":"ElementaryTypeName","src":"2481:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11797,"mutability":"mutable","name":"to_","nameLocation":"2504:3:49","nodeType":"VariableDeclaration","scope":11824,"src":"2496:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11796,"name":"address","nodeType":"ElementaryTypeName","src":"2496:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11799,"mutability":"mutable","name":"amount_","nameLocation":"2517:7:49","nodeType":"VariableDeclaration","scope":11824,"src":"2509:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11798,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2480:45:49"},"returnParameters":{"id":11804,"nodeType":"ParameterList","parameters":[],"src":"2558:0:49"},"scope":11825,"src":"2451:288:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11826,"src":"519:2222:49","usedErrors":[9312,11338,11343,11346,11349,11352,11355],"usedEvents":[5389,5499,5504,6195,6204,11300,11307,11314,11321,11328,11335]}],"src":"41:2701:49"},"id":49},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[13036],"Context":[13058],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"Ownable":[11989],"Proxy":[12422],"ProxyAdmin":[12577],"StorageSlot":[13118],"TransparentUpgradeableProxy":[12741]},"id":11829,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":11827,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:50"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","file":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","id":11828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11829,"sourceUnit":12578,"src":"63:79:50","symbolAliases":[],"unitAlias":""}],"src":"39:104:50"},"id":50},"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"contracts/hardhat-dependency-compiler/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[13036],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"OptimizedTransparentUpgradeableProxy":[13293],"Proxy":[12422],"StorageSlot":[13118]},"id":11832,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":11830,"literals":["solidity",">","0.0",".0"],"nodeType":"PragmaDirective","src":"39:23:51"},{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","file":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","id":11831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11832,"sourceUnit":13294,"src":"63:80:51","symbolAliases":[],"unitAlias":""}],"src":"39:105:51"},"id":51},"contracts/test/MockToken.sol":{"ast":{"absolutePath":"contracts/test/MockToken.sol","exportedSymbols":{"AccessControlManager":[8465],"ERC20":[6183],"LZEndpointMock":[2945],"MockToken":[11883]},"id":11884,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11833,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:52"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":11835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11884,"sourceUnit":6184,"src":"130:70:52","symbolAliases":[{"foreign":{"id":11834,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"139:5:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","file":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol","id":11837,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11884,"sourceUnit":2946,"src":"201:107:52","symbolAliases":[{"foreign":{"id":11836,"name":"LZEndpointMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2945,"src":"210:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol","file":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol","id":11839,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11884,"sourceUnit":8466,"src":"309:121:52","symbolAliases":[{"foreign":{"id":11838,"name":"AccessControlManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"318:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11840,"name":"ERC20","nameLocations":["454:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":6183,"src":"454:5:52"},"id":11841,"nodeType":"InheritanceSpecifier","src":"454:5:52"}],"canonicalName":"MockToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11883,"linearizedBaseContracts":[11883,6183,6286,6261,7050],"name":"MockToken","nameLocation":"441:9:52","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":11843,"mutability":"immutable","name":"_decimals","nameLocation":"490:9:52","nodeType":"VariableDeclaration","scope":11883,"src":"466:33:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11842,"name":"uint8","nodeType":"ElementaryTypeName","src":"466:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":11860,"nodeType":"Block","src":"601:38:52","statements":[{"expression":{"id":11858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11856,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"611:9:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11857,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11849,"src":"623:9:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"611:21:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":11859,"nodeType":"ExpressionStatement","src":"611:21:52"}]},"id":11861,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11852,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11845,"src":"585:5:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11853,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11847,"src":"592:7:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":11854,"kind":"baseConstructorSpecifier","modifierName":{"id":11851,"name":"ERC20","nameLocations":["579:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":6183,"src":"579:5:52"},"nodeType":"ModifierInvocation","src":"579:21:52"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11845,"mutability":"mutable","name":"name_","nameLocation":"532:5:52","nodeType":"VariableDeclaration","scope":11861,"src":"518:19:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11844,"name":"string","nodeType":"ElementaryTypeName","src":"518:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11847,"mutability":"mutable","name":"symbol_","nameLocation":"553:7:52","nodeType":"VariableDeclaration","scope":11861,"src":"539:21:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11846,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11849,"mutability":"mutable","name":"decimals_","nameLocation":"568:9:52","nodeType":"VariableDeclaration","scope":11861,"src":"562:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11848,"name":"uint8","nodeType":"ElementaryTypeName","src":"562:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"517:61:52"},"returnParameters":{"id":11855,"nodeType":"ParameterList","parameters":[],"src":"601:0:52"},"scope":11883,"src":"506:133:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11872,"nodeType":"Block","src":"686:42:52","statements":[{"expression":{"arguments":[{"expression":{"id":11867,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"702:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"706:6:52","memberName":"sender","nodeType":"MemberAccess","src":"702:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11869,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11863,"src":"714:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11866,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"696:5:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"696:25:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11871,"nodeType":"ExpressionStatement","src":"696:25:52"}]},"functionSelector":"57915897","id":11873,"implemented":true,"kind":"function","modifiers":[],"name":"faucet","nameLocation":"654:6:52","nodeType":"FunctionDefinition","parameters":{"id":11864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11863,"mutability":"mutable","name":"amount","nameLocation":"669:6:52","nodeType":"VariableDeclaration","scope":11873,"src":"661:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11862,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"660:16:52"},"returnParameters":{"id":11865,"nodeType":"ParameterList","parameters":[],"src":"686:0:52"},"scope":11883,"src":"645:83:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5671],"body":{"id":11881,"nodeType":"Block","src":"799:33:52","statements":[{"expression":{"id":11879,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11843,"src":"816:9:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":11878,"id":11880,"nodeType":"Return","src":"809:16:52"}]},"functionSelector":"313ce567","id":11882,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"743:8:52","nodeType":"FunctionDefinition","overrides":{"id":11875,"nodeType":"OverrideSpecifier","overrides":[],"src":"774:8:52"},"parameters":{"id":11874,"nodeType":"ParameterList","parameters":[],"src":"751:2:52"},"returnParameters":{"id":11878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11882,"src":"792:5:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11876,"name":"uint8","nodeType":"ElementaryTypeName","src":"792:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"791:7:52"},"scope":11883,"src":"734:98:52","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":11884,"src":"432:402:52","usedErrors":[],"usedEvents":[6195,6204]}],"src":"105:730:52"},"id":52},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","exportedSymbols":{"Context":[13058],"Ownable":[11989]},"id":11990,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11885,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:53"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","file":"../utils/Context.sol","id":11886,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11990,"sourceUnit":13059,"src":"112:30:53","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":11888,"name":"Context","nameLocations":["668:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":13058,"src":"668:7:53"},"id":11889,"nodeType":"InheritanceSpecifier","src":"668:7:53"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":11887,"nodeType":"StructuredDocumentation","src":"144:494:53","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":11989,"linearizedBaseContracts":[11989,13058],"name":"Ownable","nameLocation":"657:7:53","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":11891,"mutability":"mutable","name":"_owner","nameLocation":"698:6:53","nodeType":"VariableDeclaration","scope":11989,"src":"682:22:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11890,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":11897,"name":"OwnershipTransferred","nameLocation":"717:20:53","nodeType":"EventDefinition","parameters":{"id":11896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11893,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:53","nodeType":"VariableDeclaration","scope":11897,"src":"738:29:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11892,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11895,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:53","nodeType":"VariableDeclaration","scope":11897,"src":"769:24:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11894,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:53"},"src":"711:84:53"},{"body":{"id":11907,"nodeType":"Block","src":"932:49:53","statements":[{"expression":{"arguments":[{"id":11904,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11900,"src":"961:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11903,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11988,"src":"942:18:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11906,"nodeType":"ExpressionStatement","src":"942:32:53"}]},"documentation":{"id":11898,"nodeType":"StructuredDocumentation","src":"801:91:53","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":11908,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11900,"mutability":"mutable","name":"initialOwner","nameLocation":"918:12:53","nodeType":"VariableDeclaration","scope":11908,"src":"910:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11899,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"909:22:53"},"returnParameters":{"id":11902,"nodeType":"ParameterList","parameters":[],"src":"932:0:53"},"scope":11989,"src":"897:84:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11916,"nodeType":"Block","src":"1112:30:53","statements":[{"expression":{"id":11914,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11891,"src":"1129:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11913,"id":11915,"nodeType":"Return","src":"1122:13:53"}]},"documentation":{"id":11909,"nodeType":"StructuredDocumentation","src":"987:65:53","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":11917,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1066:5:53","nodeType":"FunctionDefinition","parameters":{"id":11910,"nodeType":"ParameterList","parameters":[],"src":"1071:2:53"},"returnParameters":{"id":11913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11917,"src":"1103:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11911,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1102:9:53"},"scope":11989,"src":"1057:85:53","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":11930,"nodeType":"Block","src":"1251:96:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11921,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11917,"src":"1269:5:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:7:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11923,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"1280:10:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:12:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1269:23:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":11926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1294:34:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":11920,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1261:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11928,"nodeType":"ExpressionStatement","src":"1261:68:53"},{"id":11929,"nodeType":"PlaceholderStatement","src":"1339:1:53"}]},"documentation":{"id":11918,"nodeType":"StructuredDocumentation","src":"1148:77:53","text":" @dev Throws if called by any account other than the owner."},"id":11931,"name":"onlyOwner","nameLocation":"1239:9:53","nodeType":"ModifierDefinition","parameters":{"id":11919,"nodeType":"ParameterList","parameters":[],"src":"1248:2:53"},"src":"1230:117:53","virtual":false,"visibility":"internal"},{"body":{"id":11944,"nodeType":"Block","src":"1743:47:53","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":11940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1780:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:53","typeDescriptions":{}}},"id":11941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11937,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11988,"src":"1753:18:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11943,"nodeType":"ExpressionStatement","src":"1753:30:53"}]},"documentation":{"id":11932,"nodeType":"StructuredDocumentation","src":"1353:331:53","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":11945,"implemented":true,"kind":"function","modifiers":[{"id":11935,"kind":"modifierInvocation","modifierName":{"id":11934,"name":"onlyOwner","nameLocations":["1733:9:53"],"nodeType":"IdentifierPath","referencedDeclaration":11931,"src":"1733:9:53"},"nodeType":"ModifierInvocation","src":"1733:9:53"}],"name":"renounceOwnership","nameLocation":"1698:17:53","nodeType":"FunctionDefinition","parameters":{"id":11933,"nodeType":"ParameterList","parameters":[],"src":"1715:2:53"},"returnParameters":{"id":11936,"nodeType":"ParameterList","parameters":[],"src":"1743:0:53"},"scope":11989,"src":"1689:101:53","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":11967,"nodeType":"Block","src":"2009:128:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11954,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"2027:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2047:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2039:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11955,"name":"address","nodeType":"ElementaryTypeName","src":"2039:7:53","typeDescriptions":{}}},"id":11958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2027:22:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":11960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2051:40:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":11953,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2019:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:73:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11962,"nodeType":"ExpressionStatement","src":"2019:73:53"},{"expression":{"arguments":[{"id":11964,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"2121:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11963,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11988,"src":"2102:18:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:28:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11966,"nodeType":"ExpressionStatement","src":"2102:28:53"}]},"documentation":{"id":11946,"nodeType":"StructuredDocumentation","src":"1796:138:53","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":11968,"implemented":true,"kind":"function","modifiers":[{"id":11951,"kind":"modifierInvocation","modifierName":{"id":11950,"name":"onlyOwner","nameLocations":["1999:9:53"],"nodeType":"IdentifierPath","referencedDeclaration":11931,"src":"1999:9:53"},"nodeType":"ModifierInvocation","src":"1999:9:53"}],"name":"transferOwnership","nameLocation":"1948:17:53","nodeType":"FunctionDefinition","parameters":{"id":11949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11948,"mutability":"mutable","name":"newOwner","nameLocation":"1974:8:53","nodeType":"VariableDeclaration","scope":11968,"src":"1966:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11947,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1965:18:53"},"returnParameters":{"id":11952,"nodeType":"ParameterList","parameters":[],"src":"2009:0:53"},"scope":11989,"src":"1939:198:53","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":11987,"nodeType":"Block","src":"2354:124:53","statements":[{"assignments":[11975],"declarations":[{"constant":false,"id":11975,"mutability":"mutable","name":"oldOwner","nameLocation":"2372:8:53","nodeType":"VariableDeclaration","scope":11987,"src":"2364:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11974,"name":"address","nodeType":"ElementaryTypeName","src":"2364:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11977,"initialValue":{"id":11976,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11891,"src":"2383:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2364:25:53"},{"expression":{"id":11980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11978,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11891,"src":"2399:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11979,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"2408:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2399:17:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11981,"nodeType":"ExpressionStatement","src":"2399:17:53"},{"eventCall":{"arguments":[{"id":11983,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11975,"src":"2452:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11984,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"2462:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11982,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11897,"src":"2431:20:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11986,"nodeType":"EmitStatement","src":"2426:45:53"}]},"documentation":{"id":11969,"nodeType":"StructuredDocumentation","src":"2143:143:53","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":11988,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2300:18:53","nodeType":"FunctionDefinition","parameters":{"id":11972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11971,"mutability":"mutable","name":"newOwner","nameLocation":"2327:8:53","nodeType":"VariableDeclaration","scope":11988,"src":"2319:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11970,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:18:53"},"returnParameters":{"id":11973,"nodeType":"ParameterList","parameters":[],"src":"2354:0:53"},"scope":11989,"src":"2291:187:53","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":11990,"src":"639:1841:53","usedErrors":[],"usedEvents":[11897]}],"src":"87:2394:53"},"id":53},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[11999]},"id":12000,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11991,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:54"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":11992,"nodeType":"StructuredDocumentation","src":"143:203:54","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":11999,"linearizedBaseContracts":[11999],"name":"IERC1822Proxiable","nameLocation":"357:17:54","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11993,"nodeType":"StructuredDocumentation","src":"381:438:54","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":11998,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"833:13:54","nodeType":"FunctionDefinition","parameters":{"id":11994,"nodeType":"ParameterList","parameters":[],"src":"846:2:54"},"returnParameters":{"id":11997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11998,"src":"872:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"872:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"871:9:54"},"scope":11999,"src":"824:57:54","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":12000,"src":"347:536:54","usedErrors":[],"usedEvents":[]}],"src":"118:766:54"},"id":54},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[13036],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"Proxy":[12422],"StorageSlot":[13118]},"id":12053,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12001,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:55"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","file":"../Proxy.sol","id":12002,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12053,"sourceUnit":12423,"src":"124:22:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":12003,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12053,"sourceUnit":12371,"src":"147:30:55","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12005,"name":"Proxy","nameLocations":["577:5:55"],"nodeType":"IdentifierPath","referencedDeclaration":12422,"src":"577:5:55"},"id":12006,"nodeType":"InheritanceSpecifier","src":"577:5:55"},{"baseName":{"id":12007,"name":"ERC1967Upgrade","nameLocations":["584:14:55"],"nodeType":"IdentifierPath","referencedDeclaration":12370,"src":"584:14:55"},"id":12008,"nodeType":"InheritanceSpecifier","src":"584:14:55"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":12004,"nodeType":"StructuredDocumentation","src":"179:372:55","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":12052,"linearizedBaseContracts":[12052,12370,12422],"name":"ERC1967Proxy","nameLocation":"561:12:55","nodeType":"ContractDefinition","nodes":[{"body":{"id":12038,"nodeType":"Block","src":"1001:161:55","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12017,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"1018:20:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":12023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1068:30:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""},"value":"eip1967.proxy.implementation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""}],"id":12022,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1058:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:41:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1050:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12020,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:55","typeDescriptions":{}}},"id":12025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:50:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1050:54:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1042:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:55","typeDescriptions":{}}},"id":12028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1042:63:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1018:87:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12016,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1011:6:55","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:95:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12031,"nodeType":"ExpressionStatement","src":"1011:95:55"},{"expression":{"arguments":[{"id":12033,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"1134:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12034,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"1142:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":12035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1149:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12032,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"1116:17:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":12036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12037,"nodeType":"ExpressionStatement","src":"1116:39:55"}]},"documentation":{"id":12009,"nodeType":"StructuredDocumentation","src":"605:335:55","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."},"id":12039,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12011,"mutability":"mutable","name":"_logic","nameLocation":"965:6:55","nodeType":"VariableDeclaration","scope":12039,"src":"957:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12010,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12013,"mutability":"mutable","name":"_data","nameLocation":"986:5:55","nodeType":"VariableDeclaration","scope":12039,"src":"973:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12012,"name":"bytes","nodeType":"ElementaryTypeName","src":"973:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"956:36:55"},"returnParameters":{"id":12015,"nodeType":"ParameterList","parameters":[],"src":"1001:0:55"},"scope":12052,"src":"945:217:55","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[12387],"body":{"id":12050,"nodeType":"Block","src":"1321:59:55","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12046,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"1338:14:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$12370_$","typeString":"type(contract ERC1967Upgrade)"}},"id":12047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:18:55","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":12084,"src":"1338:33:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12045,"id":12049,"nodeType":"Return","src":"1331:42:55"}]},"documentation":{"id":12040,"nodeType":"StructuredDocumentation","src":"1168:67:55","text":" @dev Returns the current implementation address."},"id":12051,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1249:15:55","nodeType":"FunctionDefinition","overrides":{"id":12042,"nodeType":"OverrideSpecifier","overrides":[],"src":"1289:8:55"},"parameters":{"id":12041,"nodeType":"ParameterList","parameters":[],"src":"1264:2:55"},"returnParameters":{"id":12045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12044,"mutability":"mutable","name":"impl","nameLocation":"1315:4:55","nodeType":"VariableDeclaration","scope":12051,"src":"1307:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12043,"name":"address","nodeType":"ElementaryTypeName","src":"1307:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1306:14:55"},"scope":12052,"src":"1240:140:55","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":12053,"src":"552:830:55","usedErrors":[],"usedEvents":[12071,12217,12282]}],"src":"99:1284:55"},"id":55},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[13036],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"StorageSlot":[13118]},"id":12371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12054,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"121:23:56"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":12055,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12371,"sourceUnit":12433,"src":"146:31:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":12056,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12371,"sourceUnit":12000,"src":"178:45:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","file":"../../utils/Address.sol","id":12057,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12371,"sourceUnit":13037,"src":"224:33:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":12058,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12371,"sourceUnit":13119,"src":"258:37:56","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":12059,"nodeType":"StructuredDocumentation","src":"297:236:56","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":12370,"linearizedBaseContracts":[12370],"name":"ERC1967Upgrade","nameLocation":"552:14:56","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":12062,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"677:14:56","nodeType":"VariableDeclaration","scope":12370,"src":"652:108:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"652:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":12061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"694:66:56","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":12063,"nodeType":"StructuredDocumentation","src":"767:214:56","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":12066,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1012:20:56","nodeType":"VariableDeclaration","scope":12370,"src":"986:115:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"986:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":12065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:66:56","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":12067,"nodeType":"StructuredDocumentation","src":"1108:68:56","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":12071,"name":"Upgraded","nameLocation":"1187:8:56","nodeType":"EventDefinition","parameters":{"id":12070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12069,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1212:14:56","nodeType":"VariableDeclaration","scope":12071,"src":"1196:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"1196:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1195:32:56"},"src":"1181:47:56"},{"body":{"id":12083,"nodeType":"Block","src":"1368:78:56","statements":[{"expression":{"expression":{"arguments":[{"id":12079,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"1412:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12077,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"1385:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"1385:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:48:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1434:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"1385:54:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12076,"id":12082,"nodeType":"Return","src":"1378:61:56"}]},"documentation":{"id":12072,"nodeType":"StructuredDocumentation","src":"1234:67:56","text":" @dev Returns the current implementation address."},"id":12084,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1315:18:56","nodeType":"FunctionDefinition","parameters":{"id":12073,"nodeType":"ParameterList","parameters":[],"src":"1333:2:56"},"returnParameters":{"id":12076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12084,"src":"1359:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12074,"name":"address","nodeType":"ElementaryTypeName","src":"1359:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1358:9:56"},"scope":12370,"src":"1306:140:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12107,"nodeType":"Block","src":"1600:196:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":12093,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"1637:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12091,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"1618:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13036_$","typeString":"type(library Address)"}},"id":12092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":12759,"src":"1618:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1618:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":12095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1657:47:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":12090,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1610:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:95:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12097,"nodeType":"ExpressionStatement","src":"1610:95:56"},{"expression":{"id":12105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12101,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"1742:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12098,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"1715:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"1715:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:48:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1764:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"1715:54:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12104,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"1772:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1715:74:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12106,"nodeType":"ExpressionStatement","src":"1715:74:56"}]},"documentation":{"id":12085,"nodeType":"StructuredDocumentation","src":"1452:80:56","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":12108,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1546:18:56","nodeType":"FunctionDefinition","parameters":{"id":12088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12087,"mutability":"mutable","name":"newImplementation","nameLocation":"1573:17:56","nodeType":"VariableDeclaration","scope":12108,"src":"1565:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12086,"name":"address","nodeType":"ElementaryTypeName","src":"1565:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1564:27:56"},"returnParameters":{"id":12089,"nodeType":"ParameterList","parameters":[],"src":"1600:0:56"},"scope":12370,"src":"1537:259:56","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12122,"nodeType":"Block","src":"1958:96:56","statements":[{"expression":{"arguments":[{"id":12115,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"1987:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12114,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"1968:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12117,"nodeType":"ExpressionStatement","src":"1968:37:56"},{"eventCall":{"arguments":[{"id":12119,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12111,"src":"2029:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12118,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12071,"src":"2020:8:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:27:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12121,"nodeType":"EmitStatement","src":"2015:32:56"}]},"documentation":{"id":12109,"nodeType":"StructuredDocumentation","src":"1802:95:56","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":12123,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1911:10:56","nodeType":"FunctionDefinition","parameters":{"id":12112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12111,"mutability":"mutable","name":"newImplementation","nameLocation":"1930:17:56","nodeType":"VariableDeclaration","scope":12123,"src":"1922:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12110,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1921:27:56"},"returnParameters":{"id":12113,"nodeType":"ParameterList","parameters":[],"src":"1958:0:56"},"scope":12370,"src":"1902:152:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12152,"nodeType":"Block","src":"2316:167:56","statements":[{"expression":{"arguments":[{"id":12134,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12126,"src":"2337:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12133,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12123,"src":"2326:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:29:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12136,"nodeType":"ExpressionStatement","src":"2326:29:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12137,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"2369:4:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:6:56","memberName":"length","nodeType":"MemberAccess","src":"2369:11:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2369:15:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":12141,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12130,"src":"2388:9:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2369:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12151,"nodeType":"IfStatement","src":"2365:112:56","trueBody":{"id":12150,"nodeType":"Block","src":"2399:78:56","statements":[{"expression":{"arguments":[{"id":12146,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12126,"src":"2442:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12147,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"2461:4:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12143,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"2413:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13036_$","typeString":"type(library Address)"}},"id":12145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2421:20:56","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":12969,"src":"2413:28:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":12148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:53:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12149,"nodeType":"ExpressionStatement","src":"2413:53:56"}]}}]},"documentation":{"id":12124,"nodeType":"StructuredDocumentation","src":"2060:123:56","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":12153,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2197:17:56","nodeType":"FunctionDefinition","parameters":{"id":12131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12126,"mutability":"mutable","name":"newImplementation","nameLocation":"2232:17:56","nodeType":"VariableDeclaration","scope":12153,"src":"2224:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12125,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12128,"mutability":"mutable","name":"data","nameLocation":"2272:4:56","nodeType":"VariableDeclaration","scope":12153,"src":"2259:17:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12127,"name":"bytes","nodeType":"ElementaryTypeName","src":"2259:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12130,"mutability":"mutable","name":"forceCall","nameLocation":"2291:9:56","nodeType":"VariableDeclaration","scope":12153,"src":"2286:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12129,"name":"bool","nodeType":"ElementaryTypeName","src":"2286:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2214:92:56"},"returnParameters":{"id":12132,"nodeType":"ParameterList","parameters":[],"src":"2316:0:56"},"scope":12370,"src":"2188:295:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12205,"nodeType":"Block","src":"2787:820:56","statements":[{"condition":{"expression":{"arguments":[{"id":12165,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12062,"src":"3128:14:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12163,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"3101:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3113:14:56","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":13095,"src":"3101:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$13067_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":12166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3101:42:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$13067_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":12167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13066,"src":"3101:48:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12203,"nodeType":"Block","src":"3219:382:56","statements":[{"clauses":[{"block":{"id":12188,"nodeType":"Block","src":"3313:115:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12182,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"3339:4:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12183,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"3347:20:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3339:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":12185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3369:43:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":12181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3331:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3331:82:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12187,"nodeType":"ExpressionStatement","src":"3331:82:56"}]},"errorName":"","id":12189,"nodeType":"TryCatchClause","parameters":{"id":12180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12179,"mutability":"mutable","name":"slot","nameLocation":"3307:4:56","nodeType":"VariableDeclaration","scope":12189,"src":"3299:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3298:14:56"},"src":"3290:138:56"},{"block":{"id":12194,"nodeType":"Block","src":"3435:89:56","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":12191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3460:48:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":12190,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3453:6:56","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12193,"nodeType":"ExpressionStatement","src":"3453:56:56"}]},"errorName":"","id":12195,"nodeType":"TryCatchClause","src":"3429:95:56"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12174,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"3255:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12173,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11999,"src":"3237:17:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$11999_$","typeString":"type(contract IERC1822Proxiable)"}},"id":12175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:36:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$11999","typeString":"contract IERC1822Proxiable"}},"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3274:13:56","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":11998,"src":"3237:50:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":12177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:52:56","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12196,"nodeType":"TryStatement","src":"3233:291:56"},{"expression":{"arguments":[{"id":12198,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"3555:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12199,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12158,"src":"3574:4:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12200,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12160,"src":"3580:9:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12197,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"3537:17:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":12201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:53:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12202,"nodeType":"ExpressionStatement","src":"3537:53:56"}]},"id":12204,"nodeType":"IfStatement","src":"3097:504:56","trueBody":{"id":12172,"nodeType":"Block","src":"3151:62:56","statements":[{"expression":{"arguments":[{"id":12169,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"3184:17:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12168,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"3165:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:37:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12171,"nodeType":"ExpressionStatement","src":"3165:37:56"}]}}]},"documentation":{"id":12154,"nodeType":"StructuredDocumentation","src":"2489:161:56","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":12206,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2664:21:56","nodeType":"FunctionDefinition","parameters":{"id":12161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12156,"mutability":"mutable","name":"newImplementation","nameLocation":"2703:17:56","nodeType":"VariableDeclaration","scope":12206,"src":"2695:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12155,"name":"address","nodeType":"ElementaryTypeName","src":"2695:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12158,"mutability":"mutable","name":"data","nameLocation":"2743:4:56","nodeType":"VariableDeclaration","scope":12206,"src":"2730:17:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12157,"name":"bytes","nodeType":"ElementaryTypeName","src":"2730:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12160,"mutability":"mutable","name":"forceCall","nameLocation":"2762:9:56","nodeType":"VariableDeclaration","scope":12206,"src":"2757:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12159,"name":"bool","nodeType":"ElementaryTypeName","src":"2757:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2685:92:56"},"returnParameters":{"id":12162,"nodeType":"ParameterList","parameters":[],"src":"2787:0:56"},"scope":12370,"src":"2655:952:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":12207,"nodeType":"StructuredDocumentation","src":"3613:189:56","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":12210,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3833:11:56","nodeType":"VariableDeclaration","scope":12370,"src":"3807:106:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3807:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":12209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3847:66:56","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":12211,"nodeType":"StructuredDocumentation","src":"3920:67:56","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":12217,"name":"AdminChanged","nameLocation":"3998:12:56","nodeType":"EventDefinition","parameters":{"id":12216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12213,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4019:13:56","nodeType":"VariableDeclaration","scope":12217,"src":"4011:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12212,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12215,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4042:8:56","nodeType":"VariableDeclaration","scope":12217,"src":"4034:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12214,"name":"address","nodeType":"ElementaryTypeName","src":"4034:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:41:56"},"src":"3992:60:56"},{"body":{"id":12229,"nodeType":"Block","src":"4174:69:56","statements":[{"expression":{"expression":{"arguments":[{"id":12225,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"4218:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12223,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"4191:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4203:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"4191:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4231:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"4191:45:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12222,"id":12228,"nodeType":"Return","src":"4184:52:56"}]},"documentation":{"id":12218,"nodeType":"StructuredDocumentation","src":"4058:50:56","text":" @dev Returns the current admin."},"id":12230,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4122:9:56","nodeType":"FunctionDefinition","parameters":{"id":12219,"nodeType":"ParameterList","parameters":[],"src":"4131:2:56"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12230,"src":"4165:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12220,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4164:9:56"},"scope":12370,"src":"4113:130:56","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":12255,"nodeType":"Block","src":"4370:156:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12237,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"4388:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4400:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12238,"name":"address","nodeType":"ElementaryTypeName","src":"4400:7:56","typeDescriptions":{}}},"id":12241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:10:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4388:22:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":12243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4412:40:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":12236,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4380:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:73:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12245,"nodeType":"ExpressionStatement","src":"4380:73:56"},{"expression":{"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12249,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"4490:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12246,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"4463:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"4463:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:39:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4503:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"4463:45:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12252,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"4511:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4463:56:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12254,"nodeType":"ExpressionStatement","src":"4463:56:56"}]},"documentation":{"id":12231,"nodeType":"StructuredDocumentation","src":"4249:71:56","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":12256,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4334:9:56","nodeType":"FunctionDefinition","parameters":{"id":12234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12233,"mutability":"mutable","name":"newAdmin","nameLocation":"4352:8:56","nodeType":"VariableDeclaration","scope":12256,"src":"4344:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12232,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4343:18:56"},"returnParameters":{"id":12235,"nodeType":"ParameterList","parameters":[],"src":"4370:0:56"},"scope":12370,"src":"4325:201:56","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12272,"nodeType":"Block","src":"4686:86:56","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12263,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"4714:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12265,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"4727:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12262,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"4701:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12267,"nodeType":"EmitStatement","src":"4696:40:56"},{"expression":{"arguments":[{"id":12269,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"4756:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12268,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12256,"src":"4746:9:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4746:19:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12271,"nodeType":"ExpressionStatement","src":"4746:19:56"}]},"documentation":{"id":12257,"nodeType":"StructuredDocumentation","src":"4532:100:56","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":12273,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4646:12:56","nodeType":"FunctionDefinition","parameters":{"id":12260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12259,"mutability":"mutable","name":"newAdmin","nameLocation":"4667:8:56","nodeType":"VariableDeclaration","scope":12273,"src":"4659:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12258,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4658:18:56"},"returnParameters":{"id":12261,"nodeType":"ParameterList","parameters":[],"src":"4686:0:56"},"scope":12370,"src":"4637:135:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":12274,"nodeType":"StructuredDocumentation","src":"4778:232:56","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":12277,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5041:12:56","nodeType":"VariableDeclaration","scope":12370,"src":"5015:107:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":12276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5056:66:56","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":12278,"nodeType":"StructuredDocumentation","src":"5129:60:56","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":12282,"name":"BeaconUpgraded","nameLocation":"5200:14:56","nodeType":"EventDefinition","parameters":{"id":12281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12280,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5231:6:56","nodeType":"VariableDeclaration","scope":12282,"src":"5215:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12279,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5214:24:56"},"src":"5194:45:56"},{"body":{"id":12294,"nodeType":"Block","src":"5355:70:56","statements":[{"expression":{"expression":{"arguments":[{"id":12290,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12277,"src":"5399:12:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12288,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"5372:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5384:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"5372:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5372:40:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5413:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"5372:46:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12287,"id":12293,"nodeType":"Return","src":"5365:53:56"}]},"documentation":{"id":12283,"nodeType":"StructuredDocumentation","src":"5245:51:56","text":" @dev Returns the current beacon."},"id":12295,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5310:10:56","nodeType":"FunctionDefinition","parameters":{"id":12284,"nodeType":"ParameterList","parameters":[],"src":"5320:2:56"},"returnParameters":{"id":12287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12295,"src":"5346:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12285,"name":"address","nodeType":"ElementaryTypeName","src":"5346:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5345:9:56"},"scope":12370,"src":"5301:124:56","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12330,"nodeType":"Block","src":"5554:290:56","statements":[{"expression":{"arguments":[{"arguments":[{"id":12304,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12298,"src":"5591:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12302,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"5572:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13036_$","typeString":"type(library Address)"}},"id":12303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5580:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":12759,"src":"5572:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:29:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":12306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:39:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":12301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5564:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5564:79:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12308,"nodeType":"ExpressionStatement","src":"5564:79:56"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12313,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12298,"src":"5688:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12312,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"5680:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12432_$","typeString":"type(contract IBeacon)"}},"id":12314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12432","typeString":"contract IBeacon"}},"id":12315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:56","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12431,"src":"5680:33:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12310,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"5661:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13036_$","typeString":"type(library Address)"}},"id":12311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:56","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":12759,"src":"5661:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":12318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5718:50:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":12309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5653:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:116:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12320,"nodeType":"ExpressionStatement","src":"5653:116:56"},{"expression":{"id":12328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":12324,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12277,"src":"5806:12:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12321,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"5779:11:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$13118_$","typeString":"type(library StorageSlot)"}},"id":12323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5791:14:56","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":13084,"src":"5779:26:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$13064_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":12325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5779:40:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":12326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5820:5:56","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13063,"src":"5779:46:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12327,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12298,"src":"5828:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5779:58:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12329,"nodeType":"ExpressionStatement","src":"5779:58:56"}]},"documentation":{"id":12296,"nodeType":"StructuredDocumentation","src":"5431:71:56","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":12331,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5516:10:56","nodeType":"FunctionDefinition","parameters":{"id":12299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12298,"mutability":"mutable","name":"newBeacon","nameLocation":"5535:9:56","nodeType":"VariableDeclaration","scope":12331,"src":"5527:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12297,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:19:56"},"returnParameters":{"id":12300,"nodeType":"ParameterList","parameters":[],"src":"5554:0:56"},"scope":12370,"src":"5507:337:56","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12368,"nodeType":"Block","src":"6273:217:56","statements":[{"expression":{"arguments":[{"id":12342,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"6294:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12341,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12331,"src":"6283:10:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:21:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12344,"nodeType":"ExpressionStatement","src":"6283:21:56"},{"eventCall":{"arguments":[{"id":12346,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"6334:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12345,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"6319:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12348,"nodeType":"EmitStatement","src":"6314:30:56"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12349,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12336,"src":"6358:4:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6363:6:56","memberName":"length","nodeType":"MemberAccess","src":"6358:11:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6358:15:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":12353,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"6377:9:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6358:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12367,"nodeType":"IfStatement","src":"6354:130:56","trueBody":{"id":12366,"nodeType":"Block","src":"6388:96:56","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12359,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"6439:9:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12358,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"6431:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$12432_$","typeString":"type(contract IBeacon)"}},"id":12360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:18:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$12432","typeString":"contract IBeacon"}},"id":12361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6450:14:56","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":12431,"src":"6431:33:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6431:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12363,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12336,"src":"6468:4:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12355,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"6402:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$13036_$","typeString":"type(library Address)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6410:20:56","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":12969,"src":"6402:28:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":12364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6402:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12365,"nodeType":"ExpressionStatement","src":"6402:71:56"}]}}]},"documentation":{"id":12332,"nodeType":"StructuredDocumentation","src":"5850:292:56","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":12369,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6156:23:56","nodeType":"FunctionDefinition","parameters":{"id":12339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12334,"mutability":"mutable","name":"newBeacon","nameLocation":"6197:9:56","nodeType":"VariableDeclaration","scope":12369,"src":"6189:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12333,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"data","nameLocation":"6229:4:56","nodeType":"VariableDeclaration","scope":12369,"src":"6216:17:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12335,"name":"bytes","nodeType":"ElementaryTypeName","src":"6216:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12338,"mutability":"mutable","name":"forceCall","nameLocation":"6248:9:56","nodeType":"VariableDeclaration","scope":12369,"src":"6243:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12337,"name":"bool","nodeType":"ElementaryTypeName","src":"6243:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6179:84:56"},"returnParameters":{"id":12340,"nodeType":"ParameterList","parameters":[],"src":"6273:0:56"},"scope":12370,"src":"6147:343:56","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12371,"src":"534:5958:56","usedErrors":[],"usedEvents":[12071,12217,12282]}],"src":"121:6372:56"},"id":56},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol","exportedSymbols":{"Proxy":[12422]},"id":12423,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12372,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:57"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":12373,"nodeType":"StructuredDocumentation","src":"129:598:57","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":12422,"linearizedBaseContracts":[12422],"name":"Proxy","nameLocation":"746:5:57","nodeType":"ContractDefinition","nodes":[{"body":{"id":12380,"nodeType":"Block","src":"1013:835:57","statements":[{"AST":{"nativeSrc":"1032:810:57","nodeType":"YulBlock","src":"1032:810:57","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1285:1:57","nodeType":"YulLiteral","src":"1285:1:57","type":"","value":"0"},{"kind":"number","nativeSrc":"1288:1:57","nodeType":"YulLiteral","src":"1288:1:57","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1291:12:57","nodeType":"YulIdentifier","src":"1291:12:57"},"nativeSrc":"1291:14:57","nodeType":"YulFunctionCall","src":"1291:14:57"}],"functionName":{"name":"calldatacopy","nativeSrc":"1272:12:57","nodeType":"YulIdentifier","src":"1272:12:57"},"nativeSrc":"1272:34:57","nodeType":"YulFunctionCall","src":"1272:34:57"},"nativeSrc":"1272:34:57","nodeType":"YulExpressionStatement","src":"1272:34:57"},{"nativeSrc":"1433:74:57","nodeType":"YulVariableDeclaration","src":"1433:74:57","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1460:3:57","nodeType":"YulIdentifier","src":"1460:3:57"},"nativeSrc":"1460:5:57","nodeType":"YulFunctionCall","src":"1460:5:57"},{"name":"implementation","nativeSrc":"1467:14:57","nodeType":"YulIdentifier","src":"1467:14:57"},{"kind":"number","nativeSrc":"1483:1:57","nodeType":"YulLiteral","src":"1483:1:57","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1486:12:57","nodeType":"YulIdentifier","src":"1486:12:57"},"nativeSrc":"1486:14:57","nodeType":"YulFunctionCall","src":"1486:14:57"},{"kind":"number","nativeSrc":"1502:1:57","nodeType":"YulLiteral","src":"1502:1:57","type":"","value":"0"},{"kind":"number","nativeSrc":"1505:1:57","nodeType":"YulLiteral","src":"1505:1:57","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1447:12:57","nodeType":"YulIdentifier","src":"1447:12:57"},"nativeSrc":"1447:60:57","nodeType":"YulFunctionCall","src":"1447:60:57"},"variables":[{"name":"result","nativeSrc":"1437:6:57","nodeType":"YulTypedName","src":"1437:6:57","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1575:1:57","nodeType":"YulLiteral","src":"1575:1:57","type":"","value":"0"},{"kind":"number","nativeSrc":"1578:1:57","nodeType":"YulLiteral","src":"1578:1:57","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1581:14:57","nodeType":"YulIdentifier","src":"1581:14:57"},"nativeSrc":"1581:16:57","nodeType":"YulFunctionCall","src":"1581:16:57"}],"functionName":{"name":"returndatacopy","nativeSrc":"1560:14:57","nodeType":"YulIdentifier","src":"1560:14:57"},"nativeSrc":"1560:38:57","nodeType":"YulFunctionCall","src":"1560:38:57"},"nativeSrc":"1560:38:57","nodeType":"YulExpressionStatement","src":"1560:38:57"},{"cases":[{"body":{"nativeSrc":"1693:59:57","nodeType":"YulBlock","src":"1693:59:57","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1718:1:57","nodeType":"YulLiteral","src":"1718:1:57","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1721:14:57","nodeType":"YulIdentifier","src":"1721:14:57"},"nativeSrc":"1721:16:57","nodeType":"YulFunctionCall","src":"1721:16:57"}],"functionName":{"name":"revert","nativeSrc":"1711:6:57","nodeType":"YulIdentifier","src":"1711:6:57"},"nativeSrc":"1711:27:57","nodeType":"YulFunctionCall","src":"1711:27:57"},"nativeSrc":"1711:27:57","nodeType":"YulExpressionStatement","src":"1711:27:57"}]},"nativeSrc":"1686:66:57","nodeType":"YulCase","src":"1686:66:57","value":{"kind":"number","nativeSrc":"1691:1:57","nodeType":"YulLiteral","src":"1691:1:57","type":"","value":"0"}},{"body":{"nativeSrc":"1773:59:57","nodeType":"YulBlock","src":"1773:59:57","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:57","nodeType":"YulLiteral","src":"1798:1:57","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1801:14:57","nodeType":"YulIdentifier","src":"1801:14:57"},"nativeSrc":"1801:16:57","nodeType":"YulFunctionCall","src":"1801:16:57"}],"functionName":{"name":"return","nativeSrc":"1791:6:57","nodeType":"YulIdentifier","src":"1791:6:57"},"nativeSrc":"1791:27:57","nodeType":"YulFunctionCall","src":"1791:27:57"},"nativeSrc":"1791:27:57","nodeType":"YulExpressionStatement","src":"1791:27:57"}]},"nativeSrc":"1765:67:57","nodeType":"YulCase","src":"1765:67:57","value":"default"}],"expression":{"name":"result","nativeSrc":"1619:6:57","nodeType":"YulIdentifier","src":"1619:6:57"},"nativeSrc":"1612:220:57","nodeType":"YulSwitch","src":"1612:220:57"}]},"evmVersion":"paris","externalReferences":[{"declaration":12376,"isOffset":false,"isSlot":false,"src":"1467:14:57","valueSize":1}],"id":12379,"nodeType":"InlineAssembly","src":"1023:819:57"}]},"documentation":{"id":12374,"nodeType":"StructuredDocumentation","src":"758:190:57","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":12381,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"962:9:57","nodeType":"FunctionDefinition","parameters":{"id":12377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12376,"mutability":"mutable","name":"implementation","nameLocation":"980:14:57","nodeType":"VariableDeclaration","scope":12381,"src":"972:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12375,"name":"address","nodeType":"ElementaryTypeName","src":"972:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"971:24:57"},"returnParameters":{"id":12378,"nodeType":"ParameterList","parameters":[],"src":"1013:0:57"},"scope":12422,"src":"953:895:57","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":12382,"nodeType":"StructuredDocumentation","src":"1854:172:57","text":" @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":12387,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2040:15:57","nodeType":"FunctionDefinition","parameters":{"id":12383,"nodeType":"ParameterList","parameters":[],"src":"2055:2:57"},"returnParameters":{"id":12386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12387,"src":"2089:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12384,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2088:9:57"},"scope":12422,"src":"2031:67:57","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":12399,"nodeType":"Block","src":"2365:72:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12391,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12421,"src":"2375:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:17:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12393,"nodeType":"ExpressionStatement","src":"2375:17:57"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12395,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12387,"src":"2412:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:17:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12394,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12381,"src":"2402:9:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2402:28:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12398,"nodeType":"ExpressionStatement","src":"2402:28:57"}]},"documentation":{"id":12388,"nodeType":"StructuredDocumentation","src":"2104:218:57","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internall call site, it will return directly to the external caller."},"id":12400,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2336:9:57","nodeType":"FunctionDefinition","parameters":{"id":12389,"nodeType":"ParameterList","parameters":[],"src":"2345:2:57"},"returnParameters":{"id":12390,"nodeType":"ParameterList","parameters":[],"src":"2365:0:57"},"scope":12422,"src":"2327:110:57","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12407,"nodeType":"Block","src":"2670:28:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12404,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12400,"src":"2680:9:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:11:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12406,"nodeType":"ExpressionStatement","src":"2680:11:57"}]},"documentation":{"id":12401,"nodeType":"StructuredDocumentation","src":"2443:186:57","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":12408,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12402,"nodeType":"ParameterList","parameters":[],"src":"2642:2:57"},"returnParameters":{"id":12403,"nodeType":"ParameterList","parameters":[],"src":"2670:0:57"},"scope":12422,"src":"2634:64:57","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":12415,"nodeType":"Block","src":"2893:28:57","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12412,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12400,"src":"2903:9:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:11:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12414,"nodeType":"ExpressionStatement","src":"2903:11:57"}]},"documentation":{"id":12409,"nodeType":"StructuredDocumentation","src":"2704:149:57","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":12416,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12410,"nodeType":"ParameterList","parameters":[],"src":"2865:2:57"},"returnParameters":{"id":12411,"nodeType":"ParameterList","parameters":[],"src":"2893:0:57"},"scope":12422,"src":"2858:63:57","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":12420,"nodeType":"Block","src":"3246:2:57","statements":[]},"documentation":{"id":12417,"nodeType":"StructuredDocumentation","src":"2927:270:57","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overriden should call `super._beforeFallback()`."},"id":12421,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3211:15:57","nodeType":"FunctionDefinition","parameters":{"id":12418,"nodeType":"ParameterList","parameters":[],"src":"3226:2:57"},"returnParameters":{"id":12419,"nodeType":"ParameterList","parameters":[],"src":"3246:0:57"},"scope":12422,"src":"3202:46:57","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":12423,"src":"728:2522:57","usedErrors":[],"usedEvents":[]}],"src":"104:3147:57"},"id":57},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[12432]},"id":12433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12424,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:58"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":12425,"nodeType":"StructuredDocumentation","src":"118:79:58","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":12432,"linearizedBaseContracts":[12432],"name":"IBeacon","nameLocation":"208:7:58","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12426,"nodeType":"StructuredDocumentation","src":"222:162:58","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":12431,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:58","nodeType":"FunctionDefinition","parameters":{"id":12427,"nodeType":"ParameterList","parameters":[],"src":"412:2:58"},"returnParameters":{"id":12430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12431,"src":"438:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12428,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:58"},"scope":12432,"src":"389:58:58","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":12433,"src":"198:251:58","usedErrors":[],"usedEvents":[]}],"src":"93:357:58"},"id":58},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"Address":[13036],"Context":[13058],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"Ownable":[11989],"Proxy":[12422],"ProxyAdmin":[12577],"StorageSlot":[13118],"TransparentUpgradeableProxy":[12741]},"id":12578,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12434,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:59"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":12435,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12578,"sourceUnit":12742,"src":"126:43:59","symbolAliases":[],"unitAlias":""},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol","file":"../../access/Ownable.sol","id":12436,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12578,"sourceUnit":11990,"src":"170:34:59","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12438,"name":"Ownable","nameLocations":["458:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":11989,"src":"458:7:59"},"id":12439,"nodeType":"InheritanceSpecifier","src":"458:7:59"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":12437,"nodeType":"StructuredDocumentation","src":"206:228:59","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":12577,"linearizedBaseContracts":[12577,11989,13058],"name":"ProxyAdmin","nameLocation":"444:10:59","nodeType":"ContractDefinition","nodes":[{"body":{"id":12447,"nodeType":"Block","src":"530:2:59","statements":[]},"id":12448,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12444,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12441,"src":"516:12:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12445,"kind":"baseConstructorSpecifier","modifierName":{"id":12443,"name":"Ownable","nameLocations":["508:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":11989,"src":"508:7:59"},"nodeType":"ModifierInvocation","src":"508:21:59"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12441,"mutability":"mutable","name":"initialOwner","nameLocation":"494:12:59","nodeType":"VariableDeclaration","scope":12448,"src":"486:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12440,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"485:22:59"},"returnParameters":{"id":12446,"nodeType":"ParameterList","parameters":[],"src":"530:0:59"},"scope":12577,"src":"473:59:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12481,"nodeType":"Block","src":"806:332:59","statements":[{"assignments":[12458,12460],"declarations":[{"constant":false,"id":12458,"mutability":"mutable","name":"success","nameLocation":"979:7:59","nodeType":"VariableDeclaration","scope":12481,"src":"974:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12457,"name":"bool","nodeType":"ElementaryTypeName","src":"974:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12460,"mutability":"mutable","name":"returndata","nameLocation":"1001:10:59","nodeType":"VariableDeclaration","scope":12481,"src":"988:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12459,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12468,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":12466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1041:13:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":12463,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12452,"src":"1023:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}],"id":12462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12461,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:59","typeDescriptions":{}}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:10:59","memberName":"staticcall","nodeType":"MemberAccess","src":"1015:25:59","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":12467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:40:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"973:82:59"},{"expression":{"arguments":[{"id":12470,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12458,"src":"1073:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1065:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12472,"nodeType":"ExpressionStatement","src":"1065:16:59"},{"expression":{"arguments":[{"id":12475,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12460,"src":"1109:10:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1122:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12476,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:59","typeDescriptions":{}}}],"id":12478,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1121:9:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":12473,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1098:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1102:6:59","memberName":"decode","nodeType":"MemberAccess","src":"1098:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":12456,"id":12480,"nodeType":"Return","src":"1091:40:59"}]},"documentation":{"id":12449,"nodeType":"StructuredDocumentation","src":"538:158:59","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","id":12482,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"710:22:59","nodeType":"FunctionDefinition","parameters":{"id":12453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12452,"mutability":"mutable","name":"proxy","nameLocation":"761:5:59","nodeType":"VariableDeclaration","scope":12482,"src":"733:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":12451,"nodeType":"UserDefinedTypeName","pathNode":{"id":12450,"name":"TransparentUpgradeableProxy","nameLocations":["733:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":12741,"src":"733:27:59"},"referencedDeclaration":12741,"src":"733:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"732:35:59"},"returnParameters":{"id":12456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12482,"src":"797:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12454,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"796:9:59"},"scope":12577,"src":"701:437:59","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12515,"nodeType":"Block","src":"1394:323:59","statements":[{"assignments":[12492,12494],"declarations":[{"constant":false,"id":12492,"mutability":"mutable","name":"success","nameLocation":"1558:7:59","nodeType":"VariableDeclaration","scope":12515,"src":"1553:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12491,"name":"bool","nodeType":"ElementaryTypeName","src":"1553:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12494,"mutability":"mutable","name":"returndata","nameLocation":"1580:10:59","nodeType":"VariableDeclaration","scope":12515,"src":"1567:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12493,"name":"bytes","nodeType":"ElementaryTypeName","src":"1567:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12502,"initialValue":{"arguments":[{"hexValue":"f851a440","id":12500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1620:13:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":12497,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12486,"src":"1602:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}],"id":12496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12495,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:59","typeDescriptions":{}}},"id":12498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1609:10:59","memberName":"staticcall","nodeType":"MemberAccess","src":"1594:25:59","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":12501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:40:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1552:82:59"},{"expression":{"arguments":[{"id":12504,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12492,"src":"1652:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12503,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1644:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12506,"nodeType":"ExpressionStatement","src":"1644:16:59"},{"expression":{"arguments":[{"id":12509,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12494,"src":"1688:10:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":12511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12510,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:59","typeDescriptions":{}}}],"id":12512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1700:9:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":12507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1677:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1681:6:59","memberName":"decode","nodeType":"MemberAccess","src":"1677:10:59","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":12490,"id":12514,"nodeType":"Return","src":"1670:40:59"}]},"documentation":{"id":12483,"nodeType":"StructuredDocumentation","src":"1144:149:59","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","id":12516,"implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1307:13:59","nodeType":"FunctionDefinition","parameters":{"id":12487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12486,"mutability":"mutable","name":"proxy","nameLocation":"1349:5:59","nodeType":"VariableDeclaration","scope":12516,"src":"1321:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":12485,"nodeType":"UserDefinedTypeName","pathNode":{"id":12484,"name":"TransparentUpgradeableProxy","nameLocations":["1321:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":12741,"src":"1321:27:59"},"referencedDeclaration":12741,"src":"1321:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1320:35:59"},"returnParameters":{"id":12490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12516,"src":"1385:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12488,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1384:9:59"},"scope":12577,"src":"1298:419:59","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12533,"nodeType":"Block","src":"1995:44:59","statements":[{"expression":{"arguments":[{"id":12530,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"2023:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12527,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"2005:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"id":12529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2011:11:59","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":12675,"src":"2005:17:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":12531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:27:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12532,"nodeType":"ExpressionStatement","src":"2005:27:59"}]},"documentation":{"id":12517,"nodeType":"StructuredDocumentation","src":"1723:163:59","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","id":12534,"implemented":true,"kind":"function","modifiers":[{"id":12525,"kind":"modifierInvocation","modifierName":{"id":12524,"name":"onlyOwner","nameLocations":["1985:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":11931,"src":"1985:9:59"},"nodeType":"ModifierInvocation","src":"1985:9:59"}],"name":"changeProxyAdmin","nameLocation":"1900:16:59","nodeType":"FunctionDefinition","parameters":{"id":12523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12520,"mutability":"mutable","name":"proxy","nameLocation":"1945:5:59","nodeType":"VariableDeclaration","scope":12534,"src":"1917:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":12519,"nodeType":"UserDefinedTypeName","pathNode":{"id":12518,"name":"TransparentUpgradeableProxy","nameLocations":["1917:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":12741,"src":"1917:27:59"},"referencedDeclaration":12741,"src":"1917:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":12522,"mutability":"mutable","name":"newAdmin","nameLocation":"1960:8:59","nodeType":"VariableDeclaration","scope":12534,"src":"1952:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12521,"name":"address","nodeType":"ElementaryTypeName","src":"1952:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:53:59"},"returnParameters":{"id":12526,"nodeType":"ParameterList","parameters":[],"src":"1995:0:59"},"scope":12577,"src":"1891:148:59","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":12551,"nodeType":"Block","src":"2345:48:59","statements":[{"expression":{"arguments":[{"id":12548,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12540,"src":"2371:14:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12545,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12538,"src":"2355:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"id":12547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2361:9:59","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":12693,"src":"2355:15:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":12549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12550,"nodeType":"ExpressionStatement","src":"2355:31:59"}]},"documentation":{"id":12535,"nodeType":"StructuredDocumentation","src":"2045:194:59","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","id":12552,"implemented":true,"kind":"function","modifiers":[{"id":12543,"kind":"modifierInvocation","modifierName":{"id":12542,"name":"onlyOwner","nameLocations":["2335:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":11931,"src":"2335:9:59"},"nodeType":"ModifierInvocation","src":"2335:9:59"}],"name":"upgrade","nameLocation":"2253:7:59","nodeType":"FunctionDefinition","parameters":{"id":12541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12538,"mutability":"mutable","name":"proxy","nameLocation":"2289:5:59","nodeType":"VariableDeclaration","scope":12552,"src":"2261:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":12537,"nodeType":"UserDefinedTypeName","pathNode":{"id":12536,"name":"TransparentUpgradeableProxy","nameLocations":["2261:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":12741,"src":"2261:27:59"},"referencedDeclaration":12741,"src":"2261:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":12540,"mutability":"mutable","name":"implementation","nameLocation":"2304:14:59","nodeType":"VariableDeclaration","scope":12552,"src":"2296:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12539,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2260:59:59"},"returnParameters":{"id":12544,"nodeType":"ParameterList","parameters":[],"src":"2345:0:59"},"scope":12577,"src":"2244:149:59","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":12575,"nodeType":"Block","src":"2824:79:59","statements":[{"expression":{"arguments":[{"id":12571,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12558,"src":"2875:14:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12572,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12560,"src":"2891:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12565,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12556,"src":"2834:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"id":12567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:16:59","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":12710,"src":"2834:22:59","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":12570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":12568,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2864:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:5:59","memberName":"value","nodeType":"MemberAccess","src":"2864:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2834:40:59","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":12573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:62:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12574,"nodeType":"ExpressionStatement","src":"2834:62:59"}]},"documentation":{"id":12553,"nodeType":"StructuredDocumentation","src":"2399:255:59","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"9623609d","id":12576,"implemented":true,"kind":"function","modifiers":[{"id":12563,"kind":"modifierInvocation","modifierName":{"id":12562,"name":"onlyOwner","nameLocations":["2814:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":11931,"src":"2814:9:59"},"nodeType":"ModifierInvocation","src":"2814:9:59"}],"name":"upgradeAndCall","nameLocation":"2668:14:59","nodeType":"FunctionDefinition","parameters":{"id":12561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12556,"mutability":"mutable","name":"proxy","nameLocation":"2720:5:59","nodeType":"VariableDeclaration","scope":12576,"src":"2692:33:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":12555,"nodeType":"UserDefinedTypeName","pathNode":{"id":12554,"name":"TransparentUpgradeableProxy","nameLocations":["2692:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":12741,"src":"2692:27:59"},"referencedDeclaration":12741,"src":"2692:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$12741","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":12558,"mutability":"mutable","name":"implementation","nameLocation":"2743:14:59","nodeType":"VariableDeclaration","scope":12576,"src":"2735:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12557,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12560,"mutability":"mutable","name":"data","nameLocation":"2780:4:59","nodeType":"VariableDeclaration","scope":12576,"src":"2767:17:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12559,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:108:59"},"returnParameters":{"id":12564,"nodeType":"ParameterList","parameters":[],"src":"2824:0:59"},"scope":12577,"src":"2659:244:59","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":12578,"src":"435:2470:59","usedErrors":[],"usedEvents":[11897]}],"src":"101:2805:59"},"id":59},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[13036],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"Proxy":[12422],"StorageSlot":[13118],"TransparentUpgradeableProxy":[12741]},"id":12742,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12579,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:60"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":12580,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12742,"sourceUnit":12053,"src":"143:37:60","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12582,"name":"ERC1967Proxy","nameLocations":["1674:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":12052,"src":"1674:12:60"},"id":12583,"nodeType":"InheritanceSpecifier","src":"1674:12:60"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":12581,"nodeType":"StructuredDocumentation","src":"182:1451:60","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":12741,"linearizedBaseContracts":[12741,12052,12370,12422],"name":"TransparentUpgradeableProxy","nameLocation":"1643:27:60","nodeType":"ContractDefinition","nodes":[{"body":{"id":12617,"nodeType":"Block","src":"2038:124:60","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12598,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"2055:11:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":12604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2096:21:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":12603,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2086:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2078:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12601,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:60","typeDescriptions":{}}},"id":12606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:41:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2078:45:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2070:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2070:7:60","typeDescriptions":{}}},"id":12609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:54:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2055:69:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12597,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2048:6:60","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:77:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12612,"nodeType":"ExpressionStatement","src":"2048:77:60"},{"expression":{"arguments":[{"id":12614,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12588,"src":"2148:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12613,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12273,"src":"2135:12:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12616,"nodeType":"ExpressionStatement","src":"2135:20:60"}]},"documentation":{"id":12584,"nodeType":"StructuredDocumentation","src":"1693:210:60","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":12618,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12593,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12586,"src":"2023:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12594,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"2031:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12595,"kind":"baseConstructorSpecifier","modifierName":{"id":12592,"name":"ERC1967Proxy","nameLocations":["2010:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":12052,"src":"2010:12:60"},"nodeType":"ModifierInvocation","src":"2010:27:60"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12586,"mutability":"mutable","name":"_logic","nameLocation":"1937:6:60","nodeType":"VariableDeclaration","scope":12618,"src":"1929:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12585,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12588,"mutability":"mutable","name":"admin_","nameLocation":"1961:6:60","nodeType":"VariableDeclaration","scope":12618,"src":"1953:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12587,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12590,"mutability":"mutable","name":"_data","nameLocation":"1990:5:60","nodeType":"VariableDeclaration","scope":12618,"src":"1977:18:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12589,"name":"bytes","nodeType":"ElementaryTypeName","src":"1977:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1919:82:60"},"returnParameters":{"id":12596,"nodeType":"ParameterList","parameters":[],"src":"2038:0:60"},"scope":12741,"src":"1908:254:60","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":12633,"nodeType":"Block","src":"2322:115:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2336:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2340:6:60","memberName":"sender","nodeType":"MemberAccess","src":"2336:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12623,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"2350:9:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:11:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2336:25:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12631,"nodeType":"Block","src":"2395:36:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12628,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12400,"src":"2409:9:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:11:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12630,"nodeType":"ExpressionStatement","src":"2409:11:60"}]},"id":12632,"nodeType":"IfStatement","src":"2332:99:60","trueBody":{"id":12627,"nodeType":"Block","src":"2363:26:60","statements":[{"id":12626,"nodeType":"PlaceholderStatement","src":"2377:1:60"}]}}]},"documentation":{"id":12619,"nodeType":"StructuredDocumentation","src":"2168:130:60","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":12634,"name":"ifAdmin","nameLocation":"2312:7:60","nodeType":"ModifierDefinition","parameters":{"id":12620,"nodeType":"ParameterList","parameters":[],"src":"2319:2:60"},"src":"2303:134:60","virtual":false,"visibility":"internal"},{"body":{"id":12647,"nodeType":"Block","src":"2938:37:60","statements":[{"expression":{"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12642,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12640,"src":"2948:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":12643,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"2957:9:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:11:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:20:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12646,"nodeType":"ExpressionStatement","src":"2948:20:60"}]},"documentation":{"id":12635,"nodeType":"StructuredDocumentation","src":"2443:431:60","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":12648,"implemented":true,"kind":"function","modifiers":[{"id":12638,"kind":"modifierInvocation","modifierName":{"id":12637,"name":"ifAdmin","nameLocations":["2905:7:60"],"nodeType":"IdentifierPath","referencedDeclaration":12634,"src":"2905:7:60"},"nodeType":"ModifierInvocation","src":"2905:7:60"}],"name":"admin","nameLocation":"2888:5:60","nodeType":"FunctionDefinition","parameters":{"id":12636,"nodeType":"ParameterList","parameters":[],"src":"2893:2:60"},"returnParameters":{"id":12641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12640,"mutability":"mutable","name":"admin_","nameLocation":"2930:6:60","nodeType":"VariableDeclaration","scope":12648,"src":"2922:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12639,"name":"address","nodeType":"ElementaryTypeName","src":"2922:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2921:16:60"},"scope":12741,"src":"2879:96:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12661,"nodeType":"Block","src":"3512:52:60","statements":[{"expression":{"id":12659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12656,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12654,"src":"3522:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":12657,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[12051],"referencedDeclaration":12051,"src":"3540:15:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3522:35:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12660,"nodeType":"ExpressionStatement","src":"3522:35:60"}]},"documentation":{"id":12649,"nodeType":"StructuredDocumentation","src":"2981:449:60","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":12662,"implemented":true,"kind":"function","modifiers":[{"id":12652,"kind":"modifierInvocation","modifierName":{"id":12651,"name":"ifAdmin","nameLocations":["3470:7:60"],"nodeType":"IdentifierPath","referencedDeclaration":12634,"src":"3470:7:60"},"nodeType":"ModifierInvocation","src":"3470:7:60"}],"name":"implementation","nameLocation":"3444:14:60","nodeType":"FunctionDefinition","parameters":{"id":12650,"nodeType":"ParameterList","parameters":[],"src":"3458:2:60"},"returnParameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"implementation_","nameLocation":"3495:15:60","nodeType":"VariableDeclaration","scope":12662,"src":"3487:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12653,"name":"address","nodeType":"ElementaryTypeName","src":"3487:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3486:25:60"},"scope":12741,"src":"3435:129:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12674,"nodeType":"Block","src":"3833:39:60","statements":[{"expression":{"arguments":[{"id":12671,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12665,"src":"3856:8:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12670,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12273,"src":"3843:12:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":12672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12673,"nodeType":"ExpressionStatement","src":"3843:22:60"}]},"documentation":{"id":12663,"nodeType":"StructuredDocumentation","src":"3570:194:60","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"functionSelector":"8f283970","id":12675,"implemented":true,"kind":"function","modifiers":[{"id":12668,"kind":"modifierInvocation","modifierName":{"id":12667,"name":"ifAdmin","nameLocations":["3825:7:60"],"nodeType":"IdentifierPath","referencedDeclaration":12634,"src":"3825:7:60"},"nodeType":"ModifierInvocation","src":"3825:7:60"}],"name":"changeAdmin","nameLocation":"3778:11:60","nodeType":"FunctionDefinition","parameters":{"id":12666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12665,"mutability":"mutable","name":"newAdmin","nameLocation":"3798:8:60","nodeType":"VariableDeclaration","scope":12675,"src":"3790:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12664,"name":"address","nodeType":"ElementaryTypeName","src":"3790:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3789:18:60"},"returnParameters":{"id":12669,"nodeType":"ParameterList","parameters":[],"src":"3833:0:60"},"scope":12741,"src":"3769:103:60","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":12692,"nodeType":"Block","src":"4095:71:60","statements":[{"expression":{"arguments":[{"id":12684,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12678,"src":"4123:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":12687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4148:2:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":12686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12685,"name":"bytes","nodeType":"ElementaryTypeName","src":"4142:5:60","typeDescriptions":{}}},"id":12688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:9:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12683,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4105:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":12690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4105:54:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12691,"nodeType":"ExpressionStatement","src":"4105:54:60"}]},"documentation":{"id":12676,"nodeType":"StructuredDocumentation","src":"3878:149:60","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":12693,"implemented":true,"kind":"function","modifiers":[{"id":12681,"kind":"modifierInvocation","modifierName":{"id":12680,"name":"ifAdmin","nameLocations":["4087:7:60"],"nodeType":"IdentifierPath","referencedDeclaration":12634,"src":"4087:7:60"},"nodeType":"ModifierInvocation","src":"4087:7:60"}],"name":"upgradeTo","nameLocation":"4041:9:60","nodeType":"FunctionDefinition","parameters":{"id":12679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12678,"mutability":"mutable","name":"newImplementation","nameLocation":"4059:17:60","nodeType":"VariableDeclaration","scope":12693,"src":"4051:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12677,"name":"address","nodeType":"ElementaryTypeName","src":"4051:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4050:27:60"},"returnParameters":{"id":12682,"nodeType":"ParameterList","parameters":[],"src":"4095:0:60"},"scope":12741,"src":"4032:134:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12709,"nodeType":"Block","src":"4641:65:60","statements":[{"expression":{"arguments":[{"id":12704,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12696,"src":"4669:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12705,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12698,"src":"4688:4:60","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":12706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4694:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12703,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4651:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":12707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4651:48:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12708,"nodeType":"ExpressionStatement","src":"4651:48:60"}]},"documentation":{"id":12694,"nodeType":"StructuredDocumentation","src":"4172:365:60","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":12710,"implemented":true,"kind":"function","modifiers":[{"id":12701,"kind":"modifierInvocation","modifierName":{"id":12700,"name":"ifAdmin","nameLocations":["4633:7:60"],"nodeType":"IdentifierPath","referencedDeclaration":12634,"src":"4633:7:60"},"nodeType":"ModifierInvocation","src":"4633:7:60"}],"name":"upgradeToAndCall","nameLocation":"4551:16:60","nodeType":"FunctionDefinition","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12696,"mutability":"mutable","name":"newImplementation","nameLocation":"4576:17:60","nodeType":"VariableDeclaration","scope":12710,"src":"4568:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12695,"name":"address","nodeType":"ElementaryTypeName","src":"4568:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12698,"mutability":"mutable","name":"data","nameLocation":"4610:4:60","nodeType":"VariableDeclaration","scope":12710,"src":"4595:19:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12697,"name":"bytes","nodeType":"ElementaryTypeName","src":"4595:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4567:48:60"},"returnParameters":{"id":12702,"nodeType":"ParameterList","parameters":[],"src":"4641:0:60"},"scope":12741,"src":"4542:164:60","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":12719,"nodeType":"Block","src":"4825:35:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12716,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"4842:9:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:11:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":12715,"id":12718,"nodeType":"Return","src":"4835:18:60"}]},"documentation":{"id":12711,"nodeType":"StructuredDocumentation","src":"4712:50:60","text":" @dev Returns the current admin."},"id":12720,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4776:6:60","nodeType":"FunctionDefinition","parameters":{"id":12712,"nodeType":"ParameterList","parameters":[],"src":"4782:2:60"},"returnParameters":{"id":12715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12720,"src":"4816:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12713,"name":"address","nodeType":"ElementaryTypeName","src":"4816:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4815:9:60"},"scope":12741,"src":"4767:93:60","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[12421],"body":{"id":12739,"nodeType":"Block","src":"5034:154:60","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12726,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5052:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5056:6:60","memberName":"sender","nodeType":"MemberAccess","src":"5052:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12728,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"5066:9:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:11:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:25:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":12731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5079:68:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":12725,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5044:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:104:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12733,"nodeType":"ExpressionStatement","src":"5044:104:60"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12734,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5158:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$12741_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:15:60","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":12421,"src":"5158:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12738,"nodeType":"ExpressionStatement","src":"5158:23:60"}]},"documentation":{"id":12721,"nodeType":"StructuredDocumentation","src":"4866:110:60","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":12740,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4990:15:60","nodeType":"FunctionDefinition","overrides":{"id":12723,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:60"},"parameters":{"id":12722,"nodeType":"ParameterList","parameters":[],"src":"5005:2:60"},"returnParameters":{"id":12724,"nodeType":"ParameterList","parameters":[],"src":"5034:0:60"},"scope":12741,"src":"4981:207:60","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":12742,"src":"1634:3556:60","usedErrors":[],"usedEvents":[12071,12217,12282]}],"src":"118:5073:60"},"id":60},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[13036]},"id":13037,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12743,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"106:23:61"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":12744,"nodeType":"StructuredDocumentation","src":"131:67:61","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":13036,"linearizedBaseContracts":[13036],"name":"Address","nameLocation":"207:7:61","nodeType":"ContractDefinition","nodes":[{"body":{"id":12758,"nodeType":"Block","src":"1246:254:61","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12752,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"1470:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:4:61","memberName":"code","nodeType":"MemberAccess","src":"1470:12:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1483:6:61","memberName":"length","nodeType":"MemberAccess","src":"1470:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1470:23:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12751,"id":12757,"nodeType":"Return","src":"1463:30:61"}]},"documentation":{"id":12745,"nodeType":"StructuredDocumentation","src":"221:954:61","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":12759,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1189:10:61","nodeType":"FunctionDefinition","parameters":{"id":12748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12747,"mutability":"mutable","name":"account","nameLocation":"1208:7:61","nodeType":"VariableDeclaration","scope":12759,"src":"1200:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12746,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1199:17:61"},"returnParameters":{"id":12751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12759,"src":"1240:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12749,"name":"bool","nodeType":"ElementaryTypeName","src":"1240:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1239:6:61"},"scope":13036,"src":"1180:320:61","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12792,"nodeType":"Block","src":"2488:241:61","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12770,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2514:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13036","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13036","typeString":"library Address"}],"id":12769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12768,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:61","typeDescriptions":{}}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:61","memberName":"balance","nodeType":"MemberAccess","src":"2506:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12773,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12764,"src":"2531:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:31:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":12775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:31:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":12767,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2498:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:73:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12777,"nodeType":"ExpressionStatement","src":"2498:73:61"},{"assignments":[12779,null],"declarations":[{"constant":false,"id":12779,"mutability":"mutable","name":"success","nameLocation":"2588:7:61","nodeType":"VariableDeclaration","scope":12792,"src":"2583:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12778,"name":"bool","nodeType":"ElementaryTypeName","src":"2583:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":12786,"initialValue":{"arguments":[{"hexValue":"","id":12784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2631:2:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":12780,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"2601:9:61","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2611:4:61","memberName":"call","nodeType":"MemberAccess","src":"2601:14:61","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12782,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12764,"src":"2623:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2601:29:61","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2601:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2582:52:61"},{"expression":{"arguments":[{"id":12788,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"2652:7:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":12789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2661:60:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":12787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2644:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:78:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12791,"nodeType":"ExpressionStatement","src":"2644:78:61"}]},"documentation":{"id":12760,"nodeType":"StructuredDocumentation","src":"1506:906:61","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":12793,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2426:9:61","nodeType":"FunctionDefinition","parameters":{"id":12765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12762,"mutability":"mutable","name":"recipient","nameLocation":"2452:9:61","nodeType":"VariableDeclaration","scope":12793,"src":"2436:25:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":12761,"name":"address","nodeType":"ElementaryTypeName","src":"2436:15:61","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":12764,"mutability":"mutable","name":"amount","nameLocation":"2471:6:61","nodeType":"VariableDeclaration","scope":12793,"src":"2463:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2435:43:61"},"returnParameters":{"id":12766,"nodeType":"ParameterList","parameters":[],"src":"2488:0:61"},"scope":13036,"src":"2417:312:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12809,"nodeType":"Block","src":"3560:84:61","statements":[{"expression":{"arguments":[{"id":12804,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12796,"src":"3590:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12805,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"3598:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":12806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3604:32:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":12803,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[12810,12830],"referencedDeclaration":12830,"src":"3577:12:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":12807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:60:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12802,"id":12808,"nodeType":"Return","src":"3570:67:61"}]},"documentation":{"id":12794,"nodeType":"StructuredDocumentation","src":"2735:731:61","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":12810,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3480:12:61","nodeType":"FunctionDefinition","parameters":{"id":12799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12796,"mutability":"mutable","name":"target","nameLocation":"3501:6:61","nodeType":"VariableDeclaration","scope":12810,"src":"3493:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12795,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12798,"mutability":"mutable","name":"data","nameLocation":"3522:4:61","nodeType":"VariableDeclaration","scope":12810,"src":"3509:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12797,"name":"bytes","nodeType":"ElementaryTypeName","src":"3509:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3492:35:61"},"returnParameters":{"id":12802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12810,"src":"3546:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12800,"name":"bytes","nodeType":"ElementaryTypeName","src":"3546:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3545:14:61"},"scope":13036,"src":"3471:173:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12829,"nodeType":"Block","src":"4013:76:61","statements":[{"expression":{"arguments":[{"id":12823,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12813,"src":"4052:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12824,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12815,"src":"4060:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":12825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4066:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12826,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12817,"src":"4069:12:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12822,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[12850,12900],"referencedDeclaration":12900,"src":"4030:21:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":12827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:52:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12821,"id":12828,"nodeType":"Return","src":"4023:59:61"}]},"documentation":{"id":12811,"nodeType":"StructuredDocumentation","src":"3650:211:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":12830,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3875:12:61","nodeType":"FunctionDefinition","parameters":{"id":12818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12813,"mutability":"mutable","name":"target","nameLocation":"3905:6:61","nodeType":"VariableDeclaration","scope":12830,"src":"3897:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12812,"name":"address","nodeType":"ElementaryTypeName","src":"3897:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12815,"mutability":"mutable","name":"data","nameLocation":"3934:4:61","nodeType":"VariableDeclaration","scope":12830,"src":"3921:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12814,"name":"bytes","nodeType":"ElementaryTypeName","src":"3921:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12817,"mutability":"mutable","name":"errorMessage","nameLocation":"3962:12:61","nodeType":"VariableDeclaration","scope":12830,"src":"3948:26:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12816,"name":"string","nodeType":"ElementaryTypeName","src":"3948:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3887:93:61"},"returnParameters":{"id":12821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12830,"src":"3999:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12819,"name":"bytes","nodeType":"ElementaryTypeName","src":"3999:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3998:14:61"},"scope":13036,"src":"3866:223:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12849,"nodeType":"Block","src":"4594:111:61","statements":[{"expression":{"arguments":[{"id":12843,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12833,"src":"4633:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12844,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12835,"src":"4641:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12837,"src":"4647:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":12846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:43:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":12842,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[12850,12900],"referencedDeclaration":12900,"src":"4611:21:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":12847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:87:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12841,"id":12848,"nodeType":"Return","src":"4604:94:61"}]},"documentation":{"id":12831,"nodeType":"StructuredDocumentation","src":"4095:351:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":12850,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4460:21:61","nodeType":"FunctionDefinition","parameters":{"id":12838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12833,"mutability":"mutable","name":"target","nameLocation":"4499:6:61","nodeType":"VariableDeclaration","scope":12850,"src":"4491:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12832,"name":"address","nodeType":"ElementaryTypeName","src":"4491:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12835,"mutability":"mutable","name":"data","nameLocation":"4528:4:61","nodeType":"VariableDeclaration","scope":12850,"src":"4515:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12834,"name":"bytes","nodeType":"ElementaryTypeName","src":"4515:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12837,"mutability":"mutable","name":"value","nameLocation":"4550:5:61","nodeType":"VariableDeclaration","scope":12850,"src":"4542:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12836,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4481:80:61"},"returnParameters":{"id":12841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12850,"src":"4580:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12839,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4579:14:61"},"scope":13036,"src":"4451:254:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12899,"nodeType":"Block","src":"5132:320:61","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12867,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5158:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$13036","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$13036","typeString":"library Address"}],"id":12866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5150:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12865,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:61","typeDescriptions":{}}},"id":12868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5150:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:7:61","memberName":"balance","nodeType":"MemberAccess","src":"5150:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12857,"src":"5175:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:30:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":12872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5182:40:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":12864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5142:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:81:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12874,"nodeType":"ExpressionStatement","src":"5142:81:61"},{"expression":{"arguments":[{"arguments":[{"id":12877,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12853,"src":"5252:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12876,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"5241:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5241:18:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":12879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5261:31:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":12875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5233:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:60:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12881,"nodeType":"ExpressionStatement","src":"5233:60:61"},{"assignments":[12883,12885],"declarations":[{"constant":false,"id":12883,"mutability":"mutable","name":"success","nameLocation":"5310:7:61","nodeType":"VariableDeclaration","scope":12899,"src":"5305:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12882,"name":"bool","nodeType":"ElementaryTypeName","src":"5305:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12885,"mutability":"mutable","name":"returndata","nameLocation":"5332:10:61","nodeType":"VariableDeclaration","scope":12899,"src":"5319:23:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12884,"name":"bytes","nodeType":"ElementaryTypeName","src":"5319:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12892,"initialValue":{"arguments":[{"id":12890,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12855,"src":"5372:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12886,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12853,"src":"5346:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:4:61","memberName":"call","nodeType":"MemberAccess","src":"5346:11:61","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12888,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12857,"src":"5365:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5346:25:61","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":12891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5304:73:61"},{"expression":{"arguments":[{"id":12894,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12883,"src":"5411:7:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12895,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12885,"src":"5420:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12896,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12859,"src":"5432:12:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12893,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13035,"src":"5394:16:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":12897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12863,"id":12898,"nodeType":"Return","src":"5387:58:61"}]},"documentation":{"id":12851,"nodeType":"StructuredDocumentation","src":"4711:237:61","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":12900,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4962:21:61","nodeType":"FunctionDefinition","parameters":{"id":12860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12853,"mutability":"mutable","name":"target","nameLocation":"5001:6:61","nodeType":"VariableDeclaration","scope":12900,"src":"4993:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12852,"name":"address","nodeType":"ElementaryTypeName","src":"4993:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12855,"mutability":"mutable","name":"data","nameLocation":"5030:4:61","nodeType":"VariableDeclaration","scope":12900,"src":"5017:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12854,"name":"bytes","nodeType":"ElementaryTypeName","src":"5017:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12857,"mutability":"mutable","name":"value","nameLocation":"5052:5:61","nodeType":"VariableDeclaration","scope":12900,"src":"5044:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12856,"name":"uint256","nodeType":"ElementaryTypeName","src":"5044:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12859,"mutability":"mutable","name":"errorMessage","nameLocation":"5081:12:61","nodeType":"VariableDeclaration","scope":12900,"src":"5067:26:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12858,"name":"string","nodeType":"ElementaryTypeName","src":"5067:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4983:116:61"},"returnParameters":{"id":12863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12900,"src":"5118:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12861,"name":"bytes","nodeType":"ElementaryTypeName","src":"5118:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5117:14:61"},"scope":13036,"src":"4953:499:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12916,"nodeType":"Block","src":"5729:97:61","statements":[{"expression":{"arguments":[{"id":12911,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12903,"src":"5765:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12912,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12905,"src":"5773:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":12913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5779:39:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":12910,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[12917,12952],"referencedDeclaration":12952,"src":"5746:18:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":12914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:73:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12909,"id":12915,"nodeType":"Return","src":"5739:80:61"}]},"documentation":{"id":12901,"nodeType":"StructuredDocumentation","src":"5458:166:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":12917,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5638:18:61","nodeType":"FunctionDefinition","parameters":{"id":12906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12903,"mutability":"mutable","name":"target","nameLocation":"5665:6:61","nodeType":"VariableDeclaration","scope":12917,"src":"5657:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12902,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12905,"mutability":"mutable","name":"data","nameLocation":"5686:4:61","nodeType":"VariableDeclaration","scope":12917,"src":"5673:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12904,"name":"bytes","nodeType":"ElementaryTypeName","src":"5673:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5656:35:61"},"returnParameters":{"id":12909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12917,"src":"5715:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12907,"name":"bytes","nodeType":"ElementaryTypeName","src":"5715:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5714:14:61"},"scope":13036,"src":"5629:197:61","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12951,"nodeType":"Block","src":"6168:228:61","statements":[{"expression":{"arguments":[{"arguments":[{"id":12931,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"6197:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12930,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"6186:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:18:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":12933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6206:38:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":12929,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6178:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:67:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12935,"nodeType":"ExpressionStatement","src":"6178:67:61"},{"assignments":[12937,12939],"declarations":[{"constant":false,"id":12937,"mutability":"mutable","name":"success","nameLocation":"6262:7:61","nodeType":"VariableDeclaration","scope":12951,"src":"6257:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12936,"name":"bool","nodeType":"ElementaryTypeName","src":"6257:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12939,"mutability":"mutable","name":"returndata","nameLocation":"6284:10:61","nodeType":"VariableDeclaration","scope":12951,"src":"6271:23:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12938,"name":"bytes","nodeType":"ElementaryTypeName","src":"6271:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12944,"initialValue":{"arguments":[{"id":12942,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12922,"src":"6316:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12940,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12920,"src":"6298:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:10:61","memberName":"staticcall","nodeType":"MemberAccess","src":"6298:17:61","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":12943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:23:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6256:65:61"},{"expression":{"arguments":[{"id":12946,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12937,"src":"6355:7:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12947,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12939,"src":"6364:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12948,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12924,"src":"6376:12:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12945,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13035,"src":"6338:16:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":12949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12928,"id":12950,"nodeType":"Return","src":"6331:58:61"}]},"documentation":{"id":12918,"nodeType":"StructuredDocumentation","src":"5832:173:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":12952,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6019:18:61","nodeType":"FunctionDefinition","parameters":{"id":12925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12920,"mutability":"mutable","name":"target","nameLocation":"6055:6:61","nodeType":"VariableDeclaration","scope":12952,"src":"6047:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12919,"name":"address","nodeType":"ElementaryTypeName","src":"6047:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12922,"mutability":"mutable","name":"data","nameLocation":"6084:4:61","nodeType":"VariableDeclaration","scope":12952,"src":"6071:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12921,"name":"bytes","nodeType":"ElementaryTypeName","src":"6071:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12924,"mutability":"mutable","name":"errorMessage","nameLocation":"6112:12:61","nodeType":"VariableDeclaration","scope":12952,"src":"6098:26:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12923,"name":"string","nodeType":"ElementaryTypeName","src":"6098:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6037:93:61"},"returnParameters":{"id":12928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12952,"src":"6154:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12926,"name":"bytes","nodeType":"ElementaryTypeName","src":"6154:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6153:14:61"},"scope":13036,"src":"6010:386:61","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12968,"nodeType":"Block","src":"6672:101:61","statements":[{"expression":{"arguments":[{"id":12963,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12955,"src":"6710:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12964,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12957,"src":"6718:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":12965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6724:41:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":12962,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[12969,13004],"referencedDeclaration":13004,"src":"6689:20:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":12966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:77:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12961,"id":12967,"nodeType":"Return","src":"6682:84:61"}]},"documentation":{"id":12953,"nodeType":"StructuredDocumentation","src":"6402:168:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":12969,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6584:20:61","nodeType":"FunctionDefinition","parameters":{"id":12958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12955,"mutability":"mutable","name":"target","nameLocation":"6613:6:61","nodeType":"VariableDeclaration","scope":12969,"src":"6605:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12954,"name":"address","nodeType":"ElementaryTypeName","src":"6605:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12957,"mutability":"mutable","name":"data","nameLocation":"6634:4:61","nodeType":"VariableDeclaration","scope":12969,"src":"6621:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12956,"name":"bytes","nodeType":"ElementaryTypeName","src":"6621:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6604:35:61"},"returnParameters":{"id":12961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12969,"src":"6658:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12959,"name":"bytes","nodeType":"ElementaryTypeName","src":"6658:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6657:14:61"},"scope":13036,"src":"6575:198:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13003,"nodeType":"Block","src":"7114:232:61","statements":[{"expression":{"arguments":[{"arguments":[{"id":12983,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"7143:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12982,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12759,"src":"7132:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7132:18:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":12985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7152:40:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":12981,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7124:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7124:69:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12987,"nodeType":"ExpressionStatement","src":"7124:69:61"},{"assignments":[12989,12991],"declarations":[{"constant":false,"id":12989,"mutability":"mutable","name":"success","nameLocation":"7210:7:61","nodeType":"VariableDeclaration","scope":13003,"src":"7205:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12988,"name":"bool","nodeType":"ElementaryTypeName","src":"7205:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12991,"mutability":"mutable","name":"returndata","nameLocation":"7232:10:61","nodeType":"VariableDeclaration","scope":13003,"src":"7219:23:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12990,"name":"bytes","nodeType":"ElementaryTypeName","src":"7219:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12996,"initialValue":{"arguments":[{"id":12994,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"7266:4:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12992,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"7246:6:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7253:12:61","memberName":"delegatecall","nodeType":"MemberAccess","src":"7246:19:61","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7246:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7204:67:61"},{"expression":{"arguments":[{"id":12998,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12989,"src":"7305:7:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12999,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12991,"src":"7314:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13000,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12976,"src":"7326:12:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12997,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13035,"src":"7288:16:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":13001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7288:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12980,"id":13002,"nodeType":"Return","src":"7281:58:61"}]},"documentation":{"id":12970,"nodeType":"StructuredDocumentation","src":"6779:175:61","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":13004,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6968:20:61","nodeType":"FunctionDefinition","parameters":{"id":12977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12972,"mutability":"mutable","name":"target","nameLocation":"7006:6:61","nodeType":"VariableDeclaration","scope":13004,"src":"6998:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12971,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"data","nameLocation":"7035:4:61","nodeType":"VariableDeclaration","scope":13004,"src":"7022:17:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12973,"name":"bytes","nodeType":"ElementaryTypeName","src":"7022:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12976,"mutability":"mutable","name":"errorMessage","nameLocation":"7063:12:61","nodeType":"VariableDeclaration","scope":13004,"src":"7049:26:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12975,"name":"string","nodeType":"ElementaryTypeName","src":"7049:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6988:93:61"},"returnParameters":{"id":12980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13004,"src":"7100:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12978,"name":"bytes","nodeType":"ElementaryTypeName","src":"7100:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7099:14:61"},"scope":13036,"src":"6959:387:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13034,"nodeType":"Block","src":"7726:532:61","statements":[{"condition":{"id":13016,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"7740:7:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13032,"nodeType":"Block","src":"7797:455:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13020,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"7881:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:6:61","memberName":"length","nodeType":"MemberAccess","src":"7881:17:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7901:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7881:21:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13030,"nodeType":"Block","src":"8189:53:61","statements":[{"expression":{"arguments":[{"id":13027,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"8214:12:61","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13026,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8207:6:61","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":13028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8207:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13029,"nodeType":"ExpressionStatement","src":"8207:20:61"}]},"id":13031,"nodeType":"IfStatement","src":"7877:365:61","trueBody":{"id":13025,"nodeType":"Block","src":"7904:279:61","statements":[{"AST":{"nativeSrc":"8024:145:61","nodeType":"YulBlock","src":"8024:145:61","statements":[{"nativeSrc":"8046:40:61","nodeType":"YulVariableDeclaration","src":"8046:40:61","value":{"arguments":[{"name":"returndata","nativeSrc":"8075:10:61","nodeType":"YulIdentifier","src":"8075:10:61"}],"functionName":{"name":"mload","nativeSrc":"8069:5:61","nodeType":"YulIdentifier","src":"8069:5:61"},"nativeSrc":"8069:17:61","nodeType":"YulFunctionCall","src":"8069:17:61"},"variables":[{"name":"returndata_size","nativeSrc":"8050:15:61","nodeType":"YulTypedName","src":"8050:15:61","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8118:2:61","nodeType":"YulLiteral","src":"8118:2:61","type":"","value":"32"},{"name":"returndata","nativeSrc":"8122:10:61","nodeType":"YulIdentifier","src":"8122:10:61"}],"functionName":{"name":"add","nativeSrc":"8114:3:61","nodeType":"YulIdentifier","src":"8114:3:61"},"nativeSrc":"8114:19:61","nodeType":"YulFunctionCall","src":"8114:19:61"},{"name":"returndata_size","nativeSrc":"8135:15:61","nodeType":"YulIdentifier","src":"8135:15:61"}],"functionName":{"name":"revert","nativeSrc":"8107:6:61","nodeType":"YulIdentifier","src":"8107:6:61"},"nativeSrc":"8107:44:61","nodeType":"YulFunctionCall","src":"8107:44:61"},"nativeSrc":"8107:44:61","nodeType":"YulExpressionStatement","src":"8107:44:61"}]},"evmVersion":"paris","externalReferences":[{"declaration":13009,"isOffset":false,"isSlot":false,"src":"8075:10:61","valueSize":1},{"declaration":13009,"isOffset":false,"isSlot":false,"src":"8122:10:61","valueSize":1}],"id":13024,"nodeType":"InlineAssembly","src":"8015:154:61"}]}}]},"id":13033,"nodeType":"IfStatement","src":"7736:516:61","trueBody":{"id":13019,"nodeType":"Block","src":"7749:42:61","statements":[{"expression":{"id":13017,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"7770:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":13015,"id":13018,"nodeType":"Return","src":"7763:17:61"}]}}]},"documentation":{"id":13005,"nodeType":"StructuredDocumentation","src":"7352:209:61","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":13035,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7575:16:61","nodeType":"FunctionDefinition","parameters":{"id":13012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13007,"mutability":"mutable","name":"success","nameLocation":"7606:7:61","nodeType":"VariableDeclaration","scope":13035,"src":"7601:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13006,"name":"bool","nodeType":"ElementaryTypeName","src":"7601:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13009,"mutability":"mutable","name":"returndata","nameLocation":"7636:10:61","nodeType":"VariableDeclaration","scope":13035,"src":"7623:23:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13008,"name":"bytes","nodeType":"ElementaryTypeName","src":"7623:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13011,"mutability":"mutable","name":"errorMessage","nameLocation":"7670:12:61","nodeType":"VariableDeclaration","scope":13035,"src":"7656:26:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13010,"name":"string","nodeType":"ElementaryTypeName","src":"7656:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7591:97:61"},"returnParameters":{"id":13015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13035,"src":"7712:12:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13013,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7711:14:61"},"scope":13036,"src":"7566:692:61","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":13037,"src":"199:8061:61","usedErrors":[],"usedEvents":[]}],"src":"106:8155:61"},"id":61},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol","exportedSymbols":{"Context":[13058]},"id":13059,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13038,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:62"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":13039,"nodeType":"StructuredDocumentation","src":"111:496:62","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":13058,"linearizedBaseContracts":[13058],"name":"Context","nameLocation":"626:7:62","nodeType":"ContractDefinition","nodes":[{"body":{"id":13047,"nodeType":"Block","src":"702:34:62","statements":[{"expression":{"expression":{"id":13044,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:62","memberName":"sender","nodeType":"MemberAccess","src":"719:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13043,"id":13046,"nodeType":"Return","src":"712:17:62"}]},"id":13048,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:62","nodeType":"FunctionDefinition","parameters":{"id":13040,"nodeType":"ParameterList","parameters":[],"src":"659:2:62"},"returnParameters":{"id":13043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13048,"src":"693:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13041,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:62"},"scope":13058,"src":"640:96:62","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":13056,"nodeType":"Block","src":"809:32:62","statements":[{"expression":{"expression":{"id":13053,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:62","memberName":"data","nodeType":"MemberAccess","src":"826:8:62","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":13052,"id":13055,"nodeType":"Return","src":"819:15:62"}]},"id":13057,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:62","nodeType":"FunctionDefinition","parameters":{"id":13049,"nodeType":"ParameterList","parameters":[],"src":"759:2:62"},"returnParameters":{"id":13052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13057,"src":"793:14:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13050,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:62"},"scope":13058,"src":"742:99:62","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":13059,"src":"608:235:62","usedErrors":[],"usedEvents":[]}],"src":"86:758:62"},"id":62},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[13118]},"id":13119,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13060,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"90:23:63"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":13061,"nodeType":"StructuredDocumentation","src":"115:1148:63","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":13118,"linearizedBaseContracts":[13118],"name":"StorageSlot","nameLocation":"1272:11:63","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":13064,"members":[{"constant":false,"id":13063,"mutability":"mutable","name":"value","nameLocation":"1327:5:63","nodeType":"VariableDeclaration","scope":13064,"src":"1319:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13062,"name":"address","nodeType":"ElementaryTypeName","src":"1319:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1297:11:63","nodeType":"StructDefinition","scope":13118,"src":"1290:49:63","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":13067,"members":[{"constant":false,"id":13066,"mutability":"mutable","name":"value","nameLocation":"1379:5:63","nodeType":"VariableDeclaration","scope":13067,"src":"1374:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13065,"name":"bool","nodeType":"ElementaryTypeName","src":"1374:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1352:11:63","nodeType":"StructDefinition","scope":13118,"src":"1345:46:63","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":13070,"members":[{"constant":false,"id":13069,"mutability":"mutable","name":"value","nameLocation":"1434:5:63","nodeType":"VariableDeclaration","scope":13070,"src":"1426:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1404:11:63","nodeType":"StructDefinition","scope":13118,"src":"1397:49:63","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":13073,"members":[{"constant":false,"id":13072,"mutability":"mutable","name":"value","nameLocation":"1489:5:63","nodeType":"VariableDeclaration","scope":13073,"src":"1481:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1459:11:63","nodeType":"StructDefinition","scope":13118,"src":"1452:49:63","visibility":"public"},{"body":{"id":13083,"nodeType":"Block","src":"1683:63:63","statements":[{"AST":{"nativeSrc":"1702:38:63","nodeType":"YulBlock","src":"1702:38:63","statements":[{"nativeSrc":"1716:14:63","nodeType":"YulAssignment","src":"1716:14:63","value":{"name":"slot","nativeSrc":"1726:4:63","nodeType":"YulIdentifier","src":"1726:4:63"},"variableNames":[{"name":"r.slot","nativeSrc":"1716:6:63","nodeType":"YulIdentifier","src":"1716:6:63"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13080,"isOffset":false,"isSlot":true,"src":"1716:6:63","suffix":"slot","valueSize":1},{"declaration":13076,"isOffset":false,"isSlot":false,"src":"1726:4:63","valueSize":1}],"id":13082,"nodeType":"InlineAssembly","src":"1693:47:63"}]},"documentation":{"id":13074,"nodeType":"StructuredDocumentation","src":"1507:87:63","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":13084,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1608:14:63","nodeType":"FunctionDefinition","parameters":{"id":13077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13076,"mutability":"mutable","name":"slot","nameLocation":"1631:4:63","nodeType":"VariableDeclaration","scope":13084,"src":"1623:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13075,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1622:14:63"},"returnParameters":{"id":13081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13080,"mutability":"mutable","name":"r","nameLocation":"1680:1:63","nodeType":"VariableDeclaration","scope":13084,"src":"1660:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":13079,"nodeType":"UserDefinedTypeName","pathNode":{"id":13078,"name":"AddressSlot","nameLocations":["1660:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":13064,"src":"1660:11:63"},"referencedDeclaration":13064,"src":"1660:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$13064_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1659:23:63"},"scope":13118,"src":"1599:147:63","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13094,"nodeType":"Block","src":"1928:63:63","statements":[{"AST":{"nativeSrc":"1947:38:63","nodeType":"YulBlock","src":"1947:38:63","statements":[{"nativeSrc":"1961:14:63","nodeType":"YulAssignment","src":"1961:14:63","value":{"name":"slot","nativeSrc":"1971:4:63","nodeType":"YulIdentifier","src":"1971:4:63"},"variableNames":[{"name":"r.slot","nativeSrc":"1961:6:63","nodeType":"YulIdentifier","src":"1961:6:63"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13091,"isOffset":false,"isSlot":true,"src":"1961:6:63","suffix":"slot","valueSize":1},{"declaration":13087,"isOffset":false,"isSlot":false,"src":"1971:4:63","valueSize":1}],"id":13093,"nodeType":"InlineAssembly","src":"1938:47:63"}]},"documentation":{"id":13085,"nodeType":"StructuredDocumentation","src":"1752:87:63","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":13095,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1853:14:63","nodeType":"FunctionDefinition","parameters":{"id":13088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13087,"mutability":"mutable","name":"slot","nameLocation":"1876:4:63","nodeType":"VariableDeclaration","scope":13095,"src":"1868:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1868:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1867:14:63"},"returnParameters":{"id":13092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13091,"mutability":"mutable","name":"r","nameLocation":"1925:1:63","nodeType":"VariableDeclaration","scope":13095,"src":"1905:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$13067_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":13090,"nodeType":"UserDefinedTypeName","pathNode":{"id":13089,"name":"BooleanSlot","nameLocations":["1905:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":13067,"src":"1905:11:63"},"referencedDeclaration":13067,"src":"1905:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$13067_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1904:23:63"},"scope":13118,"src":"1844:147:63","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13105,"nodeType":"Block","src":"2173:63:63","statements":[{"AST":{"nativeSrc":"2192:38:63","nodeType":"YulBlock","src":"2192:38:63","statements":[{"nativeSrc":"2206:14:63","nodeType":"YulAssignment","src":"2206:14:63","value":{"name":"slot","nativeSrc":"2216:4:63","nodeType":"YulIdentifier","src":"2216:4:63"},"variableNames":[{"name":"r.slot","nativeSrc":"2206:6:63","nodeType":"YulIdentifier","src":"2206:6:63"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13102,"isOffset":false,"isSlot":true,"src":"2206:6:63","suffix":"slot","valueSize":1},{"declaration":13098,"isOffset":false,"isSlot":false,"src":"2216:4:63","valueSize":1}],"id":13104,"nodeType":"InlineAssembly","src":"2183:47:63"}]},"documentation":{"id":13096,"nodeType":"StructuredDocumentation","src":"1997:87:63","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":13106,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2098:14:63","nodeType":"FunctionDefinition","parameters":{"id":13099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13098,"mutability":"mutable","name":"slot","nameLocation":"2121:4:63","nodeType":"VariableDeclaration","scope":13106,"src":"2113:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2113:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2112:14:63"},"returnParameters":{"id":13103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13102,"mutability":"mutable","name":"r","nameLocation":"2170:1:63","nodeType":"VariableDeclaration","scope":13106,"src":"2150:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$13070_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":13101,"nodeType":"UserDefinedTypeName","pathNode":{"id":13100,"name":"Bytes32Slot","nameLocations":["2150:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":13070,"src":"2150:11:63"},"referencedDeclaration":13070,"src":"2150:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$13070_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2149:23:63"},"scope":13118,"src":"2089:147:63","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13116,"nodeType":"Block","src":"2418:63:63","statements":[{"AST":{"nativeSrc":"2437:38:63","nodeType":"YulBlock","src":"2437:38:63","statements":[{"nativeSrc":"2451:14:63","nodeType":"YulAssignment","src":"2451:14:63","value":{"name":"slot","nativeSrc":"2461:4:63","nodeType":"YulIdentifier","src":"2461:4:63"},"variableNames":[{"name":"r.slot","nativeSrc":"2451:6:63","nodeType":"YulIdentifier","src":"2451:6:63"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":13113,"isOffset":false,"isSlot":true,"src":"2451:6:63","suffix":"slot","valueSize":1},{"declaration":13109,"isOffset":false,"isSlot":false,"src":"2461:4:63","valueSize":1}],"id":13115,"nodeType":"InlineAssembly","src":"2428:47:63"}]},"documentation":{"id":13107,"nodeType":"StructuredDocumentation","src":"2242:87:63","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":13117,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2343:14:63","nodeType":"FunctionDefinition","parameters":{"id":13110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13109,"mutability":"mutable","name":"slot","nameLocation":"2366:4:63","nodeType":"VariableDeclaration","scope":13117,"src":"2358:12:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2358:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2357:14:63"},"returnParameters":{"id":13114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13113,"mutability":"mutable","name":"r","nameLocation":"2415:1:63","nodeType":"VariableDeclaration","scope":13117,"src":"2395:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$13073_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":13112,"nodeType":"UserDefinedTypeName","pathNode":{"id":13111,"name":"Uint256Slot","nameLocations":["2395:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":13073,"src":"2395:11:63"},"referencedDeclaration":13073,"src":"2395:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$13073_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2394:23:63"},"scope":13118,"src":"2334:147:63","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":13119,"src":"1264:1219:63","usedErrors":[],"usedEvents":[]}],"src":"90:2394:63"},"id":63},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol","exportedSymbols":{"Address":[13036],"ERC1967Proxy":[12052],"ERC1967Upgrade":[12370],"IBeacon":[12432],"IERC1822Proxiable":[11999],"OptimizedTransparentUpgradeableProxy":[13293],"Proxy":[12422],"StorageSlot":[13118]},"id":13294,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13120,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:64"},{"absolutePath":"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","file":"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol","id":13121,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13294,"sourceUnit":12053,"src":"143:56:64","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13123,"name":"ERC1967Proxy","nameLocations":["1702:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":12052,"src":"1702:12:64"},"id":13124,"nodeType":"InheritanceSpecifier","src":"1702:12:64"}],"canonicalName":"OptimizedTransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":13122,"nodeType":"StructuredDocumentation","src":"201:1451:64","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"id":13293,"linearizedBaseContracts":[13293,12052,12370,12422],"name":"OptimizedTransparentUpgradeableProxy","nameLocation":"1662:36:64","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":13126,"mutability":"immutable","name":"_ADMIN","nameLocation":"1748:6:64","nodeType":"VariableDeclaration","scope":13293,"src":"1721:33:64","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13125,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":13173,"nodeType":"Block","src":"2106:369:64","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":13141,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"2123:11:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e61646d696e","id":13147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:21:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""},"value":"eip1967.proxy.admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104","typeString":"literal_string \"eip1967.proxy.admin\""}],"id":13146,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2154:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":13144,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:64","typeDescriptions":{}}},"id":13149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2190:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2146:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:64","typeDescriptions":{}}},"id":13152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2123:69:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13140,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2116:6:64","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:77:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13155,"nodeType":"ExpressionStatement","src":"2116:77:64"},{"expression":{"id":13158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13156,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13126,"src":"2203:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13157,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13131,"src":"2212:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2203:15:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13159,"nodeType":"ExpressionStatement","src":"2203:15:64"},{"assignments":[13161],"declarations":[{"constant":false,"id":13161,"mutability":"mutable","name":"slot","nameLocation":"2285:4:64","nodeType":"VariableDeclaration","scope":13173,"src":"2277:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2277:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13163,"initialValue":{"id":13162,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12210,"src":"2292:11:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2277:26:64"},{"AST":{"nativeSrc":"2378:44:64","nodeType":"YulBlock","src":"2378:44:64","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2399:4:64","nodeType":"YulIdentifier","src":"2399:4:64"},{"name":"admin_","nativeSrc":"2405:6:64","nodeType":"YulIdentifier","src":"2405:6:64"}],"functionName":{"name":"sstore","nativeSrc":"2392:6:64","nodeType":"YulIdentifier","src":"2392:6:64"},"nativeSrc":"2392:20:64","nodeType":"YulFunctionCall","src":"2392:20:64"},"nativeSrc":"2392:20:64","nodeType":"YulExpressionStatement","src":"2392:20:64"}]},"evmVersion":"paris","externalReferences":[{"declaration":13131,"isOffset":false,"isSlot":false,"src":"2405:6:64","valueSize":1},{"declaration":13161,"isOffset":false,"isSlot":false,"src":"2399:4:64","valueSize":1}],"id":13164,"nodeType":"InlineAssembly","src":"2369:53:64"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":13168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2449:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13166,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:64","typeDescriptions":{}}},"id":13169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:10:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13170,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13131,"src":"2461:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13165,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2436:12:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":13171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13172,"nodeType":"EmitStatement","src":"2431:37:64"}]},"documentation":{"id":13127,"nodeType":"StructuredDocumentation","src":"1761:210:64","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"id":13174,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":13136,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13129,"src":"2091:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13137,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13133,"src":"2099:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":13138,"kind":"baseConstructorSpecifier","modifierName":{"id":13135,"name":"ERC1967Proxy","nameLocations":["2078:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":12052,"src":"2078:12:64"},"nodeType":"ModifierInvocation","src":"2078:27:64"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13129,"mutability":"mutable","name":"_logic","nameLocation":"2005:6:64","nodeType":"VariableDeclaration","scope":13174,"src":"1997:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13128,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13131,"mutability":"mutable","name":"admin_","nameLocation":"2029:6:64","nodeType":"VariableDeclaration","scope":13174,"src":"2021:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13130,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13133,"mutability":"mutable","name":"_data","nameLocation":"2058:5:64","nodeType":"VariableDeclaration","scope":13174,"src":"2045:18:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2045:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1987:82:64"},"returnParameters":{"id":13139,"nodeType":"ParameterList","parameters":[],"src":"2106:0:64"},"scope":13293,"src":"1976:499:64","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":13189,"nodeType":"Block","src":"2635:115:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13177,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:64","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13179,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[13292],"referencedDeclaration":13292,"src":"2663:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:11:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13187,"nodeType":"Block","src":"2708:36:64","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13184,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12400,"src":"2722:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:11:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13186,"nodeType":"ExpressionStatement","src":"2722:11:64"}]},"id":13188,"nodeType":"IfStatement","src":"2645:99:64","trueBody":{"id":13183,"nodeType":"Block","src":"2676:26:64","statements":[{"id":13182,"nodeType":"PlaceholderStatement","src":"2690:1:64"}]}}]},"documentation":{"id":13175,"nodeType":"StructuredDocumentation","src":"2481:130:64","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"id":13190,"name":"ifAdmin","nameLocation":"2625:7:64","nodeType":"ModifierDefinition","parameters":{"id":13176,"nodeType":"ParameterList","parameters":[],"src":"2632:2:64"},"src":"2616:134:64","virtual":false,"visibility":"internal"},{"body":{"id":13203,"nodeType":"Block","src":"3251:37:64","statements":[{"expression":{"id":13201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13198,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"3261:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":13199,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[13292],"referencedDeclaration":13292,"src":"3270:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3270:11:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3261:20:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13202,"nodeType":"ExpressionStatement","src":"3261:20:64"}]},"documentation":{"id":13191,"nodeType":"StructuredDocumentation","src":"2756:431:64","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","id":13204,"implemented":true,"kind":"function","modifiers":[{"id":13194,"kind":"modifierInvocation","modifierName":{"id":13193,"name":"ifAdmin","nameLocations":["3218:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"3218:7:64"},"nodeType":"ModifierInvocation","src":"3218:7:64"}],"name":"admin","nameLocation":"3201:5:64","nodeType":"FunctionDefinition","parameters":{"id":13192,"nodeType":"ParameterList","parameters":[],"src":"3206:2:64"},"returnParameters":{"id":13197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13196,"mutability":"mutable","name":"admin_","nameLocation":"3243:6:64","nodeType":"VariableDeclaration","scope":13204,"src":"3235:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13195,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3234:16:64"},"scope":13293,"src":"3192:96:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13217,"nodeType":"Block","src":"3825:52:64","statements":[{"expression":{"id":13215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13212,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13210,"src":"3835:15:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":13213,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[12051],"referencedDeclaration":12051,"src":"3853:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:17:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3835:35:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13216,"nodeType":"ExpressionStatement","src":"3835:35:64"}]},"documentation":{"id":13205,"nodeType":"StructuredDocumentation","src":"3294:449:64","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","id":13218,"implemented":true,"kind":"function","modifiers":[{"id":13208,"kind":"modifierInvocation","modifierName":{"id":13207,"name":"ifAdmin","nameLocations":["3783:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"3783:7:64"},"nodeType":"ModifierInvocation","src":"3783:7:64"}],"name":"implementation","nameLocation":"3757:14:64","nodeType":"FunctionDefinition","parameters":{"id":13206,"nodeType":"ParameterList","parameters":[],"src":"3771:2:64"},"returnParameters":{"id":13211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13210,"mutability":"mutable","name":"implementation_","nameLocation":"3808:15:64","nodeType":"VariableDeclaration","scope":13218,"src":"3800:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13209,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3799:25:64"},"scope":13293,"src":"3748:129:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13235,"nodeType":"Block","src":"4100:71:64","statements":[{"expression":{"arguments":[{"id":13227,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"4128:17:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":13230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4153:2:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4147:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":13228,"name":"bytes","nodeType":"ElementaryTypeName","src":"4147:5:64","typeDescriptions":{}}},"id":13231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:9:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":13232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4158:5:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13226,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4110:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4110:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13234,"nodeType":"ExpressionStatement","src":"4110:54:64"}]},"documentation":{"id":13219,"nodeType":"StructuredDocumentation","src":"3883:149:64","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","id":13236,"implemented":true,"kind":"function","modifiers":[{"id":13224,"kind":"modifierInvocation","modifierName":{"id":13223,"name":"ifAdmin","nameLocations":["4092:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"4092:7:64"},"nodeType":"ModifierInvocation","src":"4092:7:64"}],"name":"upgradeTo","nameLocation":"4046:9:64","nodeType":"FunctionDefinition","parameters":{"id":13222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13221,"mutability":"mutable","name":"newImplementation","nameLocation":"4064:17:64","nodeType":"VariableDeclaration","scope":13236,"src":"4056:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13220,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4055:27:64"},"returnParameters":{"id":13225,"nodeType":"ParameterList","parameters":[],"src":"4100:0:64"},"scope":13293,"src":"4037:134:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13252,"nodeType":"Block","src":"4646:65:64","statements":[{"expression":{"arguments":[{"id":13247,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13239,"src":"4674:17:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13248,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13241,"src":"4693:4:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":13249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4699:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13246,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4656:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":13250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13251,"nodeType":"ExpressionStatement","src":"4656:48:64"}]},"documentation":{"id":13237,"nodeType":"StructuredDocumentation","src":"4177:365:64","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","id":13253,"implemented":true,"kind":"function","modifiers":[{"id":13244,"kind":"modifierInvocation","modifierName":{"id":13243,"name":"ifAdmin","nameLocations":["4638:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"4638:7:64"},"nodeType":"ModifierInvocation","src":"4638:7:64"}],"name":"upgradeToAndCall","nameLocation":"4556:16:64","nodeType":"FunctionDefinition","parameters":{"id":13242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13239,"mutability":"mutable","name":"newImplementation","nameLocation":"4581:17:64","nodeType":"VariableDeclaration","scope":13253,"src":"4573:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13238,"name":"address","nodeType":"ElementaryTypeName","src":"4573:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13241,"mutability":"mutable","name":"data","nameLocation":"4615:4:64","nodeType":"VariableDeclaration","scope":13253,"src":"4600:19:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13240,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4572:48:64"},"returnParameters":{"id":13245,"nodeType":"ParameterList","parameters":[],"src":"4646:0:64"},"scope":13293,"src":"4547:164:64","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":13262,"nodeType":"Block","src":"4830:35:64","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13259,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[13292],"referencedDeclaration":13292,"src":"4847:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:11:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13258,"id":13261,"nodeType":"Return","src":"4840:18:64"}]},"documentation":{"id":13254,"nodeType":"StructuredDocumentation","src":"4717:50:64","text":" @dev Returns the current admin."},"id":13263,"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4781:6:64","nodeType":"FunctionDefinition","parameters":{"id":13255,"nodeType":"ParameterList","parameters":[],"src":"4787:2:64"},"returnParameters":{"id":13258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13263,"src":"4821:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13256,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4820:9:64"},"scope":13293,"src":"4772:93:64","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[12421],"body":{"id":13282,"nodeType":"Block","src":"5039:154:64","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5057:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5061:6:64","memberName":"sender","nodeType":"MemberAccess","src":"5057:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13271,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[13292],"referencedDeclaration":13292,"src":"5071:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:11:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5057:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":13274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:68:64","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":13268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5049:7:64","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5049:104:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13276,"nodeType":"ExpressionStatement","src":"5049:104:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13277,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5163:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimizedTransparentUpgradeableProxy_$13293_$","typeString":"type(contract super OptimizedTransparentUpgradeableProxy)"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5169:15:64","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":12421,"src":"5163:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13281,"nodeType":"ExpressionStatement","src":"5163:23:64"}]},"documentation":{"id":13264,"nodeType":"StructuredDocumentation","src":"4871:110:64","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"id":13283,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4995:15:64","nodeType":"FunctionDefinition","overrides":{"id":13266,"nodeType":"OverrideSpecifier","overrides":[],"src":"5030:8:64"},"parameters":{"id":13265,"nodeType":"ParameterList","parameters":[],"src":"5010:2:64"},"returnParameters":{"id":13267,"nodeType":"ParameterList","parameters":[],"src":"5039:0:64"},"scope":13293,"src":"4986:207:64","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[12230],"body":{"id":13291,"nodeType":"Block","src":"5269:30:64","statements":[{"expression":{"id":13289,"name":"_ADMIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13126,"src":"5286:6:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13288,"id":13290,"nodeType":"Return","src":"5279:13:64"}]},"id":13292,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"5208:9:64","nodeType":"FunctionDefinition","overrides":{"id":13285,"nodeType":"OverrideSpecifier","overrides":[],"src":"5242:8:64"},"parameters":{"id":13284,"nodeType":"ParameterList","parameters":[],"src":"5217:2:64"},"returnParameters":{"id":13288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13292,"src":"5260:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13286,"name":"address","nodeType":"ElementaryTypeName","src":"5260:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5259:9:64"},"scope":13293,"src":"5199:100:64","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":13294,"src":"1653:3648:64","usedErrors":[],"usedEvents":[12071,12217,12282]}],"src":"118:5184:64"},"id":64}},"contracts":{"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol":{"BytesLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207afeb277a4cc11db01a6ebf8ad85ed56951406d43a8357061bb4f868ae0f970d64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xFEB277A4CC11DB01A6EBF8AD85ED56951406D43A8357061BB4F868 0xAE 0xF SWAP8 0xD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"369:18622:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:18622:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207afeb277a4cc11db01a6ebf8ad85ed56951406d43a8357061bb4f868ae0f970d64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xFEB277A4CC11DB01A6EBF8AD85ED56951406D43A8357061BB4F868 0xAE 0xF SWAP8 0xD PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"369:18622:0:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"concat(bytes memory,bytes memory)":"infinite","concatStorage(bytes storage pointer,bytes memory)":"infinite","equal(bytes memory,bytes memory)":"infinite","equalStorage(bytes storage pointer,bytes memory)":"infinite","slice(bytes memory,uint256,uint256)":"infinite","toAddress(bytes memory,uint256)":"infinite","toBytes32(bytes memory,uint256)":"infinite","toUint128(bytes memory,uint256)":"infinite","toUint16(bytes memory,uint256)":"infinite","toUint256(bytes memory,uint256)":"infinite","toUint32(bytes memory,uint256)":"infinite","toUint64(bytes memory,uint256)":"infinite","toUint8(bytes memory,uint256)":"infinite","toUint96(bytes memory,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol":{"ExcessivelySafeCall":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa336c5bbed4c929c2bc3d9e3ae8ab4b0de984691785dafce1348066062062f64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG3 CALLDATASIZE 0xC5 0xBB 0xED 0x4C SWAP3 SWAP13 0x2B 0xC3 0xD9 0xE3 0xAE DUP11 0xB4 0xB0 0xDE SWAP9 CHAINID SWAP2 PUSH25 0x5DAFCE1348066062062F64736F6C6343000819003300000000 ","sourceMap":"72:5387:1:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;72:5387:1;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa336c5bbed4c929c2bc3d9e3ae8ab4b0de984691785dafce1348066062062f64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG3 CALLDATASIZE 0xC5 0xBB 0xED 0x4C SWAP3 SWAP13 0x2B 0xC3 0xD9 0xE3 0xAE DUP11 0xB4 0xB0 0xDE SWAP9 CHAINID SWAP2 PUSH25 0x5DAFCE1348066062062F64736F6C6343000819003300000000 ","sourceMap":"72:5387:1:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"excessivelySafeCall(address,uint256,uint16,bytes memory)":"infinite","excessivelySafeStaticCall(address,uint256,uint16,bytes memory)":"infinite","swapSelector(bytes4,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":\"ExcessivelySafeCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol":{"LzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":\"LzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":455,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol:LzApp","label":"precrime","offset":0,"slot":"4","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol":{"NonblockingLzApp":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":\"NonblockingLzApp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":455,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol:NonblockingLzApp","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol":{"ILayerZeroEndpoint":{"abi":[{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParam","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParam\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_destination\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":\"ILayerZeroEndpoint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol":{"ILayerZeroReceiver":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"lzReceive(uint16,bytes,uint64,bytes)":"001d3567"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":\"ILayerZeroReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol":{"ILayerZeroUserApplicationConfig":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"forceResumeReceive(uint16,bytes)":"42d65a8d","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":\"ILayerZeroUserApplicationConfig\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol":{"LzLib":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220811f7bf896e0646c89603db3377ed7b5a6f69243a065737ea5ca150a55635eee64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0x1F PUSH28 0xF896E0646C89603DB3377ED7B5A6F69243A065737EA5CA150A55635E 0xEE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"98:3167:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;98:3167:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220811f7bf896e0646c89603db3377ed7b5a6f69243a065737ea5ca150a55635eee64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP2 0x1F PUSH28 0xF896E0646C89603DB3377ED7B5A6F69243A065737EA5CA150A55635E 0xEE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"98:3167:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"addressToBytes32(address)":"infinite","buildAdapterParams(struct LzLib.AirdropParams memory,uint256)":"infinite","buildAirdropAdapterParams(uint256,struct LzLib.AirdropParams memory)":"infinite","buildDefaultAdapterParams(uint256)":"infinite","bytes32ToAddress(bytes32)":"infinite","decodeAdapterParams(bytes memory)":"infinite","getGasLimit(bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":\"LzLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol":{"LZEndpointMock":{"abi":[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"ValueTransferFailed","type":"event"},{"inputs":[],"name":"blockNextMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdapterParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getLengthOfQueue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainID","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lzEndpointLookup","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mockChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"msgsToDeliver","outputs":[{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMsgBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeConfig","outputs":[{"internalType":"uint256","name":"zroFee","type":"uint256"},{"internalType":"uint256","name":"nativeBP","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerFeeConfig","outputs":[{"internalType":"uint128","name":"dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"baseGas","type":"uint64"},{"internalType":"uint64","name":"gasPerByte","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"setDefaultAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"destAddr","type":"address"},{"internalType":"address","name":"lzEndpointAddr","type":"address"}],"name":"setDestLzEndpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_oracleFee","type":"uint256"}],"name":"setOracleFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"},{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dstPriceRatio","type":"uint128"},{"internalType":"uint128","name":"_dstGasPriceInWei","type":"uint128"},{"internalType":"uint128","name":"_dstNativeAmtCap","type":"uint128"},{"internalType":"uint64","name":"_baseGas","type":"uint64"},{"internalType":"uint64","name":"_gasPerByte","type":"uint64"}],"name":"setRelayerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1834":{"entryPoint":null,"id":1834,"parameterSlots":1,"returnSlots":0},"@buildDefaultAdapterParams_1471":{"entryPoint":272,"id":1471,"parameterSlots":1,"returnSlots":1},"abi_decode_t_uint16_fromMemory":{"entryPoint":335,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16_fromMemory":{"entryPoint":352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16_nonPadded_inplace_fromStack":{"entryPoint":852,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":871,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":877,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":581,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":550,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":481,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":645,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":437,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint16":{"entryPoint":840,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":415,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":393,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"shift_left_240":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":532,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":496,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":316,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:7279:65","nodeType":"YulBlock","src":"0:7279:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"378:45:65","nodeType":"YulBlock","src":"378:45:65","statements":[{"nativeSrc":"388:29:65","nodeType":"YulAssignment","src":"388:29:65","value":{"arguments":[{"name":"value","nativeSrc":"403:5:65","nodeType":"YulIdentifier","src":"403:5:65"},{"kind":"number","nativeSrc":"410:6:65","nodeType":"YulLiteral","src":"410:6:65","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"399:3:65","nodeType":"YulIdentifier","src":"399:3:65"},"nativeSrc":"399:18:65","nodeType":"YulFunctionCall","src":"399:18:65"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:65","nodeType":"YulIdentifier","src":"388:7:65"}]}]},"name":"cleanup_t_uint16","nativeSrc":"334:89:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:65","nodeType":"YulTypedName","src":"360:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:65","nodeType":"YulTypedName","src":"370:7:65","type":""}],"src":"334:89:65"},{"body":{"nativeSrc":"471:78:65","nodeType":"YulBlock","src":"471:78:65","statements":[{"body":{"nativeSrc":"527:16:65","nodeType":"YulBlock","src":"527:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"536:1:65","nodeType":"YulLiteral","src":"536:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"539:1:65","nodeType":"YulLiteral","src":"539:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"529:6:65","nodeType":"YulIdentifier","src":"529:6:65"},"nativeSrc":"529:12:65","nodeType":"YulFunctionCall","src":"529:12:65"},"nativeSrc":"529:12:65","nodeType":"YulExpressionStatement","src":"529:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"494:5:65","nodeType":"YulIdentifier","src":"494:5:65"},{"arguments":[{"name":"value","nativeSrc":"518:5:65","nodeType":"YulIdentifier","src":"518:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"501:16:65","nodeType":"YulIdentifier","src":"501:16:65"},"nativeSrc":"501:23:65","nodeType":"YulFunctionCall","src":"501:23:65"}],"functionName":{"name":"eq","nativeSrc":"491:2:65","nodeType":"YulIdentifier","src":"491:2:65"},"nativeSrc":"491:34:65","nodeType":"YulFunctionCall","src":"491:34:65"}],"functionName":{"name":"iszero","nativeSrc":"484:6:65","nodeType":"YulIdentifier","src":"484:6:65"},"nativeSrc":"484:42:65","nodeType":"YulFunctionCall","src":"484:42:65"},"nativeSrc":"481:62:65","nodeType":"YulIf","src":"481:62:65"}]},"name":"validator_revert_t_uint16","nativeSrc":"429:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"464:5:65","nodeType":"YulTypedName","src":"464:5:65","type":""}],"src":"429:120:65"},{"body":{"nativeSrc":"617:79:65","nodeType":"YulBlock","src":"617:79:65","statements":[{"nativeSrc":"627:22:65","nodeType":"YulAssignment","src":"627:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"642:6:65","nodeType":"YulIdentifier","src":"642:6:65"}],"functionName":{"name":"mload","nativeSrc":"636:5:65","nodeType":"YulIdentifier","src":"636:5:65"},"nativeSrc":"636:13:65","nodeType":"YulFunctionCall","src":"636:13:65"},"variableNames":[{"name":"value","nativeSrc":"627:5:65","nodeType":"YulIdentifier","src":"627:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"684:5:65","nodeType":"YulIdentifier","src":"684:5:65"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"658:25:65","nodeType":"YulIdentifier","src":"658:25:65"},"nativeSrc":"658:32:65","nodeType":"YulFunctionCall","src":"658:32:65"},"nativeSrc":"658:32:65","nodeType":"YulExpressionStatement","src":"658:32:65"}]},"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"555:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"595:6:65","nodeType":"YulTypedName","src":"595:6:65","type":""},{"name":"end","nativeSrc":"603:3:65","nodeType":"YulTypedName","src":"603:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"611:5:65","nodeType":"YulTypedName","src":"611:5:65","type":""}],"src":"555:141:65"},{"body":{"nativeSrc":"778:273:65","nodeType":"YulBlock","src":"778:273:65","statements":[{"body":{"nativeSrc":"824:83:65","nodeType":"YulBlock","src":"824:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"826:77:65","nodeType":"YulIdentifier","src":"826:77:65"},"nativeSrc":"826:79:65","nodeType":"YulFunctionCall","src":"826:79:65"},"nativeSrc":"826:79:65","nodeType":"YulExpressionStatement","src":"826:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"799:7:65","nodeType":"YulIdentifier","src":"799:7:65"},{"name":"headStart","nativeSrc":"808:9:65","nodeType":"YulIdentifier","src":"808:9:65"}],"functionName":{"name":"sub","nativeSrc":"795:3:65","nodeType":"YulIdentifier","src":"795:3:65"},"nativeSrc":"795:23:65","nodeType":"YulFunctionCall","src":"795:23:65"},{"kind":"number","nativeSrc":"820:2:65","nodeType":"YulLiteral","src":"820:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"791:3:65","nodeType":"YulIdentifier","src":"791:3:65"},"nativeSrc":"791:32:65","nodeType":"YulFunctionCall","src":"791:32:65"},"nativeSrc":"788:119:65","nodeType":"YulIf","src":"788:119:65"},{"nativeSrc":"917:127:65","nodeType":"YulBlock","src":"917:127:65","statements":[{"nativeSrc":"932:15:65","nodeType":"YulVariableDeclaration","src":"932:15:65","value":{"kind":"number","nativeSrc":"946:1:65","nodeType":"YulLiteral","src":"946:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"936:6:65","nodeType":"YulTypedName","src":"936:6:65","type":""}]},{"nativeSrc":"961:73:65","nodeType":"YulAssignment","src":"961:73:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1006:9:65","nodeType":"YulIdentifier","src":"1006:9:65"},{"name":"offset","nativeSrc":"1017:6:65","nodeType":"YulIdentifier","src":"1017:6:65"}],"functionName":{"name":"add","nativeSrc":"1002:3:65","nodeType":"YulIdentifier","src":"1002:3:65"},"nativeSrc":"1002:22:65","nodeType":"YulFunctionCall","src":"1002:22:65"},{"name":"dataEnd","nativeSrc":"1026:7:65","nodeType":"YulIdentifier","src":"1026:7:65"}],"functionName":{"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"971:30:65","nodeType":"YulIdentifier","src":"971:30:65"},"nativeSrc":"971:63:65","nodeType":"YulFunctionCall","src":"971:63:65"},"variableNames":[{"name":"value0","nativeSrc":"961:6:65","nodeType":"YulIdentifier","src":"961:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16_fromMemory","nativeSrc":"702:349:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"748:9:65","nodeType":"YulTypedName","src":"748:9:65","type":""},{"name":"dataEnd","nativeSrc":"759:7:65","nodeType":"YulTypedName","src":"759:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"771:6:65","nodeType":"YulTypedName","src":"771:6:65","type":""}],"src":"702:349:65"},{"body":{"nativeSrc":"1115:40:65","nodeType":"YulBlock","src":"1115:40:65","statements":[{"nativeSrc":"1126:22:65","nodeType":"YulAssignment","src":"1126:22:65","value":{"arguments":[{"name":"value","nativeSrc":"1142:5:65","nodeType":"YulIdentifier","src":"1142:5:65"}],"functionName":{"name":"mload","nativeSrc":"1136:5:65","nodeType":"YulIdentifier","src":"1136:5:65"},"nativeSrc":"1136:12:65","nodeType":"YulFunctionCall","src":"1136:12:65"},"variableNames":[{"name":"length","nativeSrc":"1126:6:65","nodeType":"YulIdentifier","src":"1126:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"1057:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1098:5:65","nodeType":"YulTypedName","src":"1098:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1108:6:65","nodeType":"YulTypedName","src":"1108:6:65","type":""}],"src":"1057:98:65"},{"body":{"nativeSrc":"1189:152:65","nodeType":"YulBlock","src":"1189:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1206:1:65","nodeType":"YulLiteral","src":"1206:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1209:77:65","nodeType":"YulLiteral","src":"1209:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1199:6:65","nodeType":"YulIdentifier","src":"1199:6:65"},"nativeSrc":"1199:88:65","nodeType":"YulFunctionCall","src":"1199:88:65"},"nativeSrc":"1199:88:65","nodeType":"YulExpressionStatement","src":"1199:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1303:1:65","nodeType":"YulLiteral","src":"1303:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1306:4:65","nodeType":"YulLiteral","src":"1306:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1296:6:65","nodeType":"YulIdentifier","src":"1296:6:65"},"nativeSrc":"1296:15:65","nodeType":"YulFunctionCall","src":"1296:15:65"},"nativeSrc":"1296:15:65","nodeType":"YulExpressionStatement","src":"1296:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1327:1:65","nodeType":"YulLiteral","src":"1327:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1330:4:65","nodeType":"YulLiteral","src":"1330:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1320:6:65","nodeType":"YulIdentifier","src":"1320:6:65"},"nativeSrc":"1320:15:65","nodeType":"YulFunctionCall","src":"1320:15:65"},"nativeSrc":"1320:15:65","nodeType":"YulExpressionStatement","src":"1320:15:65"}]},"name":"panic_error_0x41","nativeSrc":"1161:180:65","nodeType":"YulFunctionDefinition","src":"1161:180:65"},{"body":{"nativeSrc":"1375:152:65","nodeType":"YulBlock","src":"1375:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1392:1:65","nodeType":"YulLiteral","src":"1392:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1395:77:65","nodeType":"YulLiteral","src":"1395:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1385:6:65","nodeType":"YulIdentifier","src":"1385:6:65"},"nativeSrc":"1385:88:65","nodeType":"YulFunctionCall","src":"1385:88:65"},"nativeSrc":"1385:88:65","nodeType":"YulExpressionStatement","src":"1385:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1489:1:65","nodeType":"YulLiteral","src":"1489:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1492:4:65","nodeType":"YulLiteral","src":"1492:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1482:6:65","nodeType":"YulIdentifier","src":"1482:6:65"},"nativeSrc":"1482:15:65","nodeType":"YulFunctionCall","src":"1482:15:65"},"nativeSrc":"1482:15:65","nodeType":"YulExpressionStatement","src":"1482:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1513:1:65","nodeType":"YulLiteral","src":"1513:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1516:4:65","nodeType":"YulLiteral","src":"1516:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1506:6:65","nodeType":"YulIdentifier","src":"1506:6:65"},"nativeSrc":"1506:15:65","nodeType":"YulFunctionCall","src":"1506:15:65"},"nativeSrc":"1506:15:65","nodeType":"YulExpressionStatement","src":"1506:15:65"}]},"name":"panic_error_0x22","nativeSrc":"1347:180:65","nodeType":"YulFunctionDefinition","src":"1347:180:65"},{"body":{"nativeSrc":"1584:269:65","nodeType":"YulBlock","src":"1584:269:65","statements":[{"nativeSrc":"1594:22:65","nodeType":"YulAssignment","src":"1594:22:65","value":{"arguments":[{"name":"data","nativeSrc":"1608:4:65","nodeType":"YulIdentifier","src":"1608:4:65"},{"kind":"number","nativeSrc":"1614:1:65","nodeType":"YulLiteral","src":"1614:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"1604:3:65","nodeType":"YulIdentifier","src":"1604:3:65"},"nativeSrc":"1604:12:65","nodeType":"YulFunctionCall","src":"1604:12:65"},"variableNames":[{"name":"length","nativeSrc":"1594:6:65","nodeType":"YulIdentifier","src":"1594:6:65"}]},{"nativeSrc":"1625:38:65","nodeType":"YulVariableDeclaration","src":"1625:38:65","value":{"arguments":[{"name":"data","nativeSrc":"1655:4:65","nodeType":"YulIdentifier","src":"1655:4:65"},{"kind":"number","nativeSrc":"1661:1:65","nodeType":"YulLiteral","src":"1661:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1651:3:65","nodeType":"YulIdentifier","src":"1651:3:65"},"nativeSrc":"1651:12:65","nodeType":"YulFunctionCall","src":"1651:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1629:18:65","nodeType":"YulTypedName","src":"1629:18:65","type":""}]},{"body":{"nativeSrc":"1702:51:65","nodeType":"YulBlock","src":"1702:51:65","statements":[{"nativeSrc":"1716:27:65","nodeType":"YulAssignment","src":"1716:27:65","value":{"arguments":[{"name":"length","nativeSrc":"1730:6:65","nodeType":"YulIdentifier","src":"1730:6:65"},{"kind":"number","nativeSrc":"1738:4:65","nodeType":"YulLiteral","src":"1738:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1726:3:65","nodeType":"YulIdentifier","src":"1726:3:65"},"nativeSrc":"1726:17:65","nodeType":"YulFunctionCall","src":"1726:17:65"},"variableNames":[{"name":"length","nativeSrc":"1716:6:65","nodeType":"YulIdentifier","src":"1716:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1682:18:65","nodeType":"YulIdentifier","src":"1682:18:65"}],"functionName":{"name":"iszero","nativeSrc":"1675:6:65","nodeType":"YulIdentifier","src":"1675:6:65"},"nativeSrc":"1675:26:65","nodeType":"YulFunctionCall","src":"1675:26:65"},"nativeSrc":"1672:81:65","nodeType":"YulIf","src":"1672:81:65"},{"body":{"nativeSrc":"1805:42:65","nodeType":"YulBlock","src":"1805:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"1819:16:65","nodeType":"YulIdentifier","src":"1819:16:65"},"nativeSrc":"1819:18:65","nodeType":"YulFunctionCall","src":"1819:18:65"},"nativeSrc":"1819:18:65","nodeType":"YulExpressionStatement","src":"1819:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1769:18:65","nodeType":"YulIdentifier","src":"1769:18:65"},{"arguments":[{"name":"length","nativeSrc":"1792:6:65","nodeType":"YulIdentifier","src":"1792:6:65"},{"kind":"number","nativeSrc":"1800:2:65","nodeType":"YulLiteral","src":"1800:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1789:2:65","nodeType":"YulIdentifier","src":"1789:2:65"},"nativeSrc":"1789:14:65","nodeType":"YulFunctionCall","src":"1789:14:65"}],"functionName":{"name":"eq","nativeSrc":"1766:2:65","nodeType":"YulIdentifier","src":"1766:2:65"},"nativeSrc":"1766:38:65","nodeType":"YulFunctionCall","src":"1766:38:65"},"nativeSrc":"1763:84:65","nodeType":"YulIf","src":"1763:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"1533:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1568:4:65","nodeType":"YulTypedName","src":"1568:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1577:6:65","nodeType":"YulTypedName","src":"1577:6:65","type":""}],"src":"1533:320:65"},{"body":{"nativeSrc":"1912:87:65","nodeType":"YulBlock","src":"1912:87:65","statements":[{"nativeSrc":"1922:11:65","nodeType":"YulAssignment","src":"1922:11:65","value":{"name":"ptr","nativeSrc":"1930:3:65","nodeType":"YulIdentifier","src":"1930:3:65"},"variableNames":[{"name":"data","nativeSrc":"1922:4:65","nodeType":"YulIdentifier","src":"1922:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1950:1:65","nodeType":"YulLiteral","src":"1950:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"1953:3:65","nodeType":"YulIdentifier","src":"1953:3:65"}],"functionName":{"name":"mstore","nativeSrc":"1943:6:65","nodeType":"YulIdentifier","src":"1943:6:65"},"nativeSrc":"1943:14:65","nodeType":"YulFunctionCall","src":"1943:14:65"},"nativeSrc":"1943:14:65","nodeType":"YulExpressionStatement","src":"1943:14:65"},{"nativeSrc":"1966:26:65","nodeType":"YulAssignment","src":"1966:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"1984:1:65","nodeType":"YulLiteral","src":"1984:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1987:4:65","nodeType":"YulLiteral","src":"1987:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1974:9:65","nodeType":"YulIdentifier","src":"1974:9:65"},"nativeSrc":"1974:18:65","nodeType":"YulFunctionCall","src":"1974:18:65"},"variableNames":[{"name":"data","nativeSrc":"1966:4:65","nodeType":"YulIdentifier","src":"1966:4:65"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"1859:140:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"1899:3:65","nodeType":"YulTypedName","src":"1899:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"1907:4:65","nodeType":"YulTypedName","src":"1907:4:65","type":""}],"src":"1859:140:65"},{"body":{"nativeSrc":"2049:49:65","nodeType":"YulBlock","src":"2049:49:65","statements":[{"nativeSrc":"2059:33:65","nodeType":"YulAssignment","src":"2059:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2077:5:65","nodeType":"YulIdentifier","src":"2077:5:65"},{"kind":"number","nativeSrc":"2084:2:65","nodeType":"YulLiteral","src":"2084:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2073:3:65","nodeType":"YulIdentifier","src":"2073:3:65"},"nativeSrc":"2073:14:65","nodeType":"YulFunctionCall","src":"2073:14:65"},{"kind":"number","nativeSrc":"2089:2:65","nodeType":"YulLiteral","src":"2089:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"2069:3:65","nodeType":"YulIdentifier","src":"2069:3:65"},"nativeSrc":"2069:23:65","nodeType":"YulFunctionCall","src":"2069:23:65"},"variableNames":[{"name":"result","nativeSrc":"2059:6:65","nodeType":"YulIdentifier","src":"2059:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"2005:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2032:5:65","nodeType":"YulTypedName","src":"2032:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2042:6:65","nodeType":"YulTypedName","src":"2042:6:65","type":""}],"src":"2005:93:65"},{"body":{"nativeSrc":"2157:54:65","nodeType":"YulBlock","src":"2157:54:65","statements":[{"nativeSrc":"2167:37:65","nodeType":"YulAssignment","src":"2167:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"2192:4:65","nodeType":"YulIdentifier","src":"2192:4:65"},{"name":"value","nativeSrc":"2198:5:65","nodeType":"YulIdentifier","src":"2198:5:65"}],"functionName":{"name":"shl","nativeSrc":"2188:3:65","nodeType":"YulIdentifier","src":"2188:3:65"},"nativeSrc":"2188:16:65","nodeType":"YulFunctionCall","src":"2188:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"2167:8:65","nodeType":"YulIdentifier","src":"2167:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"2104:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"2132:4:65","nodeType":"YulTypedName","src":"2132:4:65","type":""},{"name":"value","nativeSrc":"2138:5:65","nodeType":"YulTypedName","src":"2138:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"2148:8:65","nodeType":"YulTypedName","src":"2148:8:65","type":""}],"src":"2104:107:65"},{"body":{"nativeSrc":"2293:317:65","nodeType":"YulBlock","src":"2293:317:65","statements":[{"nativeSrc":"2303:35:65","nodeType":"YulVariableDeclaration","src":"2303:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"2324:10:65","nodeType":"YulIdentifier","src":"2324:10:65"},{"kind":"number","nativeSrc":"2336:1:65","nodeType":"YulLiteral","src":"2336:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"2320:3:65","nodeType":"YulIdentifier","src":"2320:3:65"},"nativeSrc":"2320:18:65","nodeType":"YulFunctionCall","src":"2320:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"2307:9:65","nodeType":"YulTypedName","src":"2307:9:65","type":""}]},{"nativeSrc":"2347:109:65","nodeType":"YulVariableDeclaration","src":"2347:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"2378:9:65","nodeType":"YulIdentifier","src":"2378:9:65"},{"kind":"number","nativeSrc":"2389:66:65","nodeType":"YulLiteral","src":"2389:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"2359:18:65","nodeType":"YulIdentifier","src":"2359:18:65"},"nativeSrc":"2359:97:65","nodeType":"YulFunctionCall","src":"2359:97:65"},"variables":[{"name":"mask","nativeSrc":"2351:4:65","nodeType":"YulTypedName","src":"2351:4:65","type":""}]},{"nativeSrc":"2465:51:65","nodeType":"YulAssignment","src":"2465:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"2496:9:65","nodeType":"YulIdentifier","src":"2496:9:65"},{"name":"toInsert","nativeSrc":"2507:8:65","nodeType":"YulIdentifier","src":"2507:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"2477:18:65","nodeType":"YulIdentifier","src":"2477:18:65"},"nativeSrc":"2477:39:65","nodeType":"YulFunctionCall","src":"2477:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"2465:8:65","nodeType":"YulIdentifier","src":"2465:8:65"}]},{"nativeSrc":"2525:30:65","nodeType":"YulAssignment","src":"2525:30:65","value":{"arguments":[{"name":"value","nativeSrc":"2538:5:65","nodeType":"YulIdentifier","src":"2538:5:65"},{"arguments":[{"name":"mask","nativeSrc":"2549:4:65","nodeType":"YulIdentifier","src":"2549:4:65"}],"functionName":{"name":"not","nativeSrc":"2545:3:65","nodeType":"YulIdentifier","src":"2545:3:65"},"nativeSrc":"2545:9:65","nodeType":"YulFunctionCall","src":"2545:9:65"}],"functionName":{"name":"and","nativeSrc":"2534:3:65","nodeType":"YulIdentifier","src":"2534:3:65"},"nativeSrc":"2534:21:65","nodeType":"YulFunctionCall","src":"2534:21:65"},"variableNames":[{"name":"value","nativeSrc":"2525:5:65","nodeType":"YulIdentifier","src":"2525:5:65"}]},{"nativeSrc":"2564:40:65","nodeType":"YulAssignment","src":"2564:40:65","value":{"arguments":[{"name":"value","nativeSrc":"2577:5:65","nodeType":"YulIdentifier","src":"2577:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"2588:8:65","nodeType":"YulIdentifier","src":"2588:8:65"},{"name":"mask","nativeSrc":"2598:4:65","nodeType":"YulIdentifier","src":"2598:4:65"}],"functionName":{"name":"and","nativeSrc":"2584:3:65","nodeType":"YulIdentifier","src":"2584:3:65"},"nativeSrc":"2584:19:65","nodeType":"YulFunctionCall","src":"2584:19:65"}],"functionName":{"name":"or","nativeSrc":"2574:2:65","nodeType":"YulIdentifier","src":"2574:2:65"},"nativeSrc":"2574:30:65","nodeType":"YulFunctionCall","src":"2574:30:65"},"variableNames":[{"name":"result","nativeSrc":"2564:6:65","nodeType":"YulIdentifier","src":"2564:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"2217:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2254:5:65","nodeType":"YulTypedName","src":"2254:5:65","type":""},{"name":"shiftBytes","nativeSrc":"2261:10:65","nodeType":"YulTypedName","src":"2261:10:65","type":""},{"name":"toInsert","nativeSrc":"2273:8:65","nodeType":"YulTypedName","src":"2273:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2286:6:65","nodeType":"YulTypedName","src":"2286:6:65","type":""}],"src":"2217:393:65"},{"body":{"nativeSrc":"2661:32:65","nodeType":"YulBlock","src":"2661:32:65","statements":[{"nativeSrc":"2671:16:65","nodeType":"YulAssignment","src":"2671:16:65","value":{"name":"value","nativeSrc":"2682:5:65","nodeType":"YulIdentifier","src":"2682:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2671:7:65","nodeType":"YulIdentifier","src":"2671:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2616:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2643:5:65","nodeType":"YulTypedName","src":"2643:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2653:7:65","nodeType":"YulTypedName","src":"2653:7:65","type":""}],"src":"2616:77:65"},{"body":{"nativeSrc":"2731:28:65","nodeType":"YulBlock","src":"2731:28:65","statements":[{"nativeSrc":"2741:12:65","nodeType":"YulAssignment","src":"2741:12:65","value":{"name":"value","nativeSrc":"2748:5:65","nodeType":"YulIdentifier","src":"2748:5:65"},"variableNames":[{"name":"ret","nativeSrc":"2741:3:65","nodeType":"YulIdentifier","src":"2741:3:65"}]}]},"name":"identity","nativeSrc":"2699:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2717:5:65","nodeType":"YulTypedName","src":"2717:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2727:3:65","nodeType":"YulTypedName","src":"2727:3:65","type":""}],"src":"2699:60:65"},{"body":{"nativeSrc":"2825:82:65","nodeType":"YulBlock","src":"2825:82:65","statements":[{"nativeSrc":"2835:66:65","nodeType":"YulAssignment","src":"2835:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2893:5:65","nodeType":"YulIdentifier","src":"2893:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2875:17:65","nodeType":"YulIdentifier","src":"2875:17:65"},"nativeSrc":"2875:24:65","nodeType":"YulFunctionCall","src":"2875:24:65"}],"functionName":{"name":"identity","nativeSrc":"2866:8:65","nodeType":"YulIdentifier","src":"2866:8:65"},"nativeSrc":"2866:34:65","nodeType":"YulFunctionCall","src":"2866:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2848:17:65","nodeType":"YulIdentifier","src":"2848:17:65"},"nativeSrc":"2848:53:65","nodeType":"YulFunctionCall","src":"2848:53:65"},"variableNames":[{"name":"converted","nativeSrc":"2835:9:65","nodeType":"YulIdentifier","src":"2835:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"2765:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2805:5:65","nodeType":"YulTypedName","src":"2805:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2815:9:65","nodeType":"YulTypedName","src":"2815:9:65","type":""}],"src":"2765:142:65"},{"body":{"nativeSrc":"2960:28:65","nodeType":"YulBlock","src":"2960:28:65","statements":[{"nativeSrc":"2970:12:65","nodeType":"YulAssignment","src":"2970:12:65","value":{"name":"value","nativeSrc":"2977:5:65","nodeType":"YulIdentifier","src":"2977:5:65"},"variableNames":[{"name":"ret","nativeSrc":"2970:3:65","nodeType":"YulIdentifier","src":"2970:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"2913:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2946:5:65","nodeType":"YulTypedName","src":"2946:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2956:3:65","nodeType":"YulTypedName","src":"2956:3:65","type":""}],"src":"2913:75:65"},{"body":{"nativeSrc":"3070:193:65","nodeType":"YulBlock","src":"3070:193:65","statements":[{"nativeSrc":"3080:63:65","nodeType":"YulVariableDeclaration","src":"3080:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"3135:7:65","nodeType":"YulIdentifier","src":"3135:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"3104:30:65","nodeType":"YulIdentifier","src":"3104:30:65"},"nativeSrc":"3104:39:65","nodeType":"YulFunctionCall","src":"3104:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"3084:16:65","nodeType":"YulTypedName","src":"3084:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3159:4:65","nodeType":"YulIdentifier","src":"3159:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3199:4:65","nodeType":"YulIdentifier","src":"3199:4:65"}],"functionName":{"name":"sload","nativeSrc":"3193:5:65","nodeType":"YulIdentifier","src":"3193:5:65"},"nativeSrc":"3193:11:65","nodeType":"YulFunctionCall","src":"3193:11:65"},{"name":"offset","nativeSrc":"3206:6:65","nodeType":"YulIdentifier","src":"3206:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"3238:16:65","nodeType":"YulIdentifier","src":"3238:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"3214:23:65","nodeType":"YulIdentifier","src":"3214:23:65"},"nativeSrc":"3214:41:65","nodeType":"YulFunctionCall","src":"3214:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"3165:27:65","nodeType":"YulIdentifier","src":"3165:27:65"},"nativeSrc":"3165:91:65","nodeType":"YulFunctionCall","src":"3165:91:65"}],"functionName":{"name":"sstore","nativeSrc":"3152:6:65","nodeType":"YulIdentifier","src":"3152:6:65"},"nativeSrc":"3152:105:65","nodeType":"YulFunctionCall","src":"3152:105:65"},"nativeSrc":"3152:105:65","nodeType":"YulExpressionStatement","src":"3152:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"2994:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3047:4:65","nodeType":"YulTypedName","src":"3047:4:65","type":""},{"name":"offset","nativeSrc":"3053:6:65","nodeType":"YulTypedName","src":"3053:6:65","type":""},{"name":"value_0","nativeSrc":"3061:7:65","nodeType":"YulTypedName","src":"3061:7:65","type":""}],"src":"2994:269:65"},{"body":{"nativeSrc":"3318:24:65","nodeType":"YulBlock","src":"3318:24:65","statements":[{"nativeSrc":"3328:8:65","nodeType":"YulAssignment","src":"3328:8:65","value":{"kind":"number","nativeSrc":"3335:1:65","nodeType":"YulLiteral","src":"3335:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"3328:3:65","nodeType":"YulIdentifier","src":"3328:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"3269:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"3314:3:65","nodeType":"YulTypedName","src":"3314:3:65","type":""}],"src":"3269:73:65"},{"body":{"nativeSrc":"3401:136:65","nodeType":"YulBlock","src":"3401:136:65","statements":[{"nativeSrc":"3411:46:65","nodeType":"YulVariableDeclaration","src":"3411:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"3425:30:65","nodeType":"YulIdentifier","src":"3425:30:65"},"nativeSrc":"3425:32:65","nodeType":"YulFunctionCall","src":"3425:32:65"},"variables":[{"name":"zero_0","nativeSrc":"3415:6:65","nodeType":"YulTypedName","src":"3415:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3510:4:65","nodeType":"YulIdentifier","src":"3510:4:65"},{"name":"offset","nativeSrc":"3516:6:65","nodeType":"YulIdentifier","src":"3516:6:65"},{"name":"zero_0","nativeSrc":"3524:6:65","nodeType":"YulIdentifier","src":"3524:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"3466:43:65","nodeType":"YulIdentifier","src":"3466:43:65"},"nativeSrc":"3466:65:65","nodeType":"YulFunctionCall","src":"3466:65:65"},"nativeSrc":"3466:65:65","nodeType":"YulExpressionStatement","src":"3466:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"3348:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3387:4:65","nodeType":"YulTypedName","src":"3387:4:65","type":""},{"name":"offset","nativeSrc":"3393:6:65","nodeType":"YulTypedName","src":"3393:6:65","type":""}],"src":"3348:189:65"},{"body":{"nativeSrc":"3593:136:65","nodeType":"YulBlock","src":"3593:136:65","statements":[{"body":{"nativeSrc":"3660:63:65","nodeType":"YulBlock","src":"3660:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"3704:5:65","nodeType":"YulIdentifier","src":"3704:5:65"},{"kind":"number","nativeSrc":"3711:1:65","nodeType":"YulLiteral","src":"3711:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"3674:29:65","nodeType":"YulIdentifier","src":"3674:29:65"},"nativeSrc":"3674:39:65","nodeType":"YulFunctionCall","src":"3674:39:65"},"nativeSrc":"3674:39:65","nodeType":"YulExpressionStatement","src":"3674:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"3613:5:65","nodeType":"YulIdentifier","src":"3613:5:65"},{"name":"end","nativeSrc":"3620:3:65","nodeType":"YulIdentifier","src":"3620:3:65"}],"functionName":{"name":"lt","nativeSrc":"3610:2:65","nodeType":"YulIdentifier","src":"3610:2:65"},"nativeSrc":"3610:14:65","nodeType":"YulFunctionCall","src":"3610:14:65"},"nativeSrc":"3603:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"3625:26:65","nodeType":"YulBlock","src":"3625:26:65","statements":[{"nativeSrc":"3627:22:65","nodeType":"YulAssignment","src":"3627:22:65","value":{"arguments":[{"name":"start","nativeSrc":"3640:5:65","nodeType":"YulIdentifier","src":"3640:5:65"},{"kind":"number","nativeSrc":"3647:1:65","nodeType":"YulLiteral","src":"3647:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3636:3:65","nodeType":"YulIdentifier","src":"3636:3:65"},"nativeSrc":"3636:13:65","nodeType":"YulFunctionCall","src":"3636:13:65"},"variableNames":[{"name":"start","nativeSrc":"3627:5:65","nodeType":"YulIdentifier","src":"3627:5:65"}]}]},"pre":{"nativeSrc":"3607:2:65","nodeType":"YulBlock","src":"3607:2:65","statements":[]},"src":"3603:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"3543:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"3581:5:65","nodeType":"YulTypedName","src":"3581:5:65","type":""},{"name":"end","nativeSrc":"3588:3:65","nodeType":"YulTypedName","src":"3588:3:65","type":""}],"src":"3543:186:65"},{"body":{"nativeSrc":"3813:463:65","nodeType":"YulBlock","src":"3813:463:65","statements":[{"body":{"nativeSrc":"3839:430:65","nodeType":"YulBlock","src":"3839:430:65","statements":[{"nativeSrc":"3853:53:65","nodeType":"YulVariableDeclaration","src":"3853:53:65","value":{"arguments":[{"name":"array","nativeSrc":"3900:5:65","nodeType":"YulIdentifier","src":"3900:5:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"3869:30:65","nodeType":"YulIdentifier","src":"3869:30:65"},"nativeSrc":"3869:37:65","nodeType":"YulFunctionCall","src":"3869:37:65"},"variables":[{"name":"dataArea","nativeSrc":"3857:8:65","nodeType":"YulTypedName","src":"3857:8:65","type":""}]},{"nativeSrc":"3919:63:65","nodeType":"YulVariableDeclaration","src":"3919:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"3942:8:65","nodeType":"YulIdentifier","src":"3942:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"3970:10:65","nodeType":"YulIdentifier","src":"3970:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"3952:17:65","nodeType":"YulIdentifier","src":"3952:17:65"},"nativeSrc":"3952:29:65","nodeType":"YulFunctionCall","src":"3952:29:65"}],"functionName":{"name":"add","nativeSrc":"3938:3:65","nodeType":"YulIdentifier","src":"3938:3:65"},"nativeSrc":"3938:44:65","nodeType":"YulFunctionCall","src":"3938:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"3923:11:65","nodeType":"YulTypedName","src":"3923:11:65","type":""}]},{"body":{"nativeSrc":"4139:27:65","nodeType":"YulBlock","src":"4139:27:65","statements":[{"nativeSrc":"4141:23:65","nodeType":"YulAssignment","src":"4141:23:65","value":{"name":"dataArea","nativeSrc":"4156:8:65","nodeType":"YulIdentifier","src":"4156:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"4141:11:65","nodeType":"YulIdentifier","src":"4141:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"4123:10:65","nodeType":"YulIdentifier","src":"4123:10:65"},{"kind":"number","nativeSrc":"4135:2:65","nodeType":"YulLiteral","src":"4135:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4120:2:65","nodeType":"YulIdentifier","src":"4120:2:65"},"nativeSrc":"4120:18:65","nodeType":"YulFunctionCall","src":"4120:18:65"},"nativeSrc":"4117:49:65","nodeType":"YulIf","src":"4117:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"4208:11:65","nodeType":"YulIdentifier","src":"4208:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"4225:8:65","nodeType":"YulIdentifier","src":"4225:8:65"},{"arguments":[{"name":"len","nativeSrc":"4253:3:65","nodeType":"YulIdentifier","src":"4253:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"4235:17:65","nodeType":"YulIdentifier","src":"4235:17:65"},"nativeSrc":"4235:22:65","nodeType":"YulFunctionCall","src":"4235:22:65"}],"functionName":{"name":"add","nativeSrc":"4221:3:65","nodeType":"YulIdentifier","src":"4221:3:65"},"nativeSrc":"4221:37:65","nodeType":"YulFunctionCall","src":"4221:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"4179:28:65","nodeType":"YulIdentifier","src":"4179:28:65"},"nativeSrc":"4179:80:65","nodeType":"YulFunctionCall","src":"4179:80:65"},"nativeSrc":"4179:80:65","nodeType":"YulExpressionStatement","src":"4179:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"3830:3:65","nodeType":"YulIdentifier","src":"3830:3:65"},{"kind":"number","nativeSrc":"3835:2:65","nodeType":"YulLiteral","src":"3835:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3827:2:65","nodeType":"YulIdentifier","src":"3827:2:65"},"nativeSrc":"3827:11:65","nodeType":"YulFunctionCall","src":"3827:11:65"},"nativeSrc":"3824:445:65","nodeType":"YulIf","src":"3824:445:65"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"3735:541:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"3789:5:65","nodeType":"YulTypedName","src":"3789:5:65","type":""},{"name":"len","nativeSrc":"3796:3:65","nodeType":"YulTypedName","src":"3796:3:65","type":""},{"name":"startIndex","nativeSrc":"3801:10:65","nodeType":"YulTypedName","src":"3801:10:65","type":""}],"src":"3735:541:65"},{"body":{"nativeSrc":"4345:54:65","nodeType":"YulBlock","src":"4345:54:65","statements":[{"nativeSrc":"4355:37:65","nodeType":"YulAssignment","src":"4355:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"4380:4:65","nodeType":"YulIdentifier","src":"4380:4:65"},{"name":"value","nativeSrc":"4386:5:65","nodeType":"YulIdentifier","src":"4386:5:65"}],"functionName":{"name":"shr","nativeSrc":"4376:3:65","nodeType":"YulIdentifier","src":"4376:3:65"},"nativeSrc":"4376:16:65","nodeType":"YulFunctionCall","src":"4376:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"4355:8:65","nodeType":"YulIdentifier","src":"4355:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"4282:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4320:4:65","nodeType":"YulTypedName","src":"4320:4:65","type":""},{"name":"value","nativeSrc":"4326:5:65","nodeType":"YulTypedName","src":"4326:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4336:8:65","nodeType":"YulTypedName","src":"4336:8:65","type":""}],"src":"4282:117:65"},{"body":{"nativeSrc":"4456:118:65","nodeType":"YulBlock","src":"4456:118:65","statements":[{"nativeSrc":"4466:68:65","nodeType":"YulVariableDeclaration","src":"4466:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4515:1:65","nodeType":"YulLiteral","src":"4515:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"4518:5:65","nodeType":"YulIdentifier","src":"4518:5:65"}],"functionName":{"name":"mul","nativeSrc":"4511:3:65","nodeType":"YulIdentifier","src":"4511:3:65"},"nativeSrc":"4511:13:65","nodeType":"YulFunctionCall","src":"4511:13:65"},{"arguments":[{"kind":"number","nativeSrc":"4530:1:65","nodeType":"YulLiteral","src":"4530:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4526:3:65","nodeType":"YulIdentifier","src":"4526:3:65"},"nativeSrc":"4526:6:65","nodeType":"YulFunctionCall","src":"4526:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"4482:28:65","nodeType":"YulIdentifier","src":"4482:28:65"},"nativeSrc":"4482:51:65","nodeType":"YulFunctionCall","src":"4482:51:65"}],"functionName":{"name":"not","nativeSrc":"4478:3:65","nodeType":"YulIdentifier","src":"4478:3:65"},"nativeSrc":"4478:56:65","nodeType":"YulFunctionCall","src":"4478:56:65"},"variables":[{"name":"mask","nativeSrc":"4470:4:65","nodeType":"YulTypedName","src":"4470:4:65","type":""}]},{"nativeSrc":"4543:25:65","nodeType":"YulAssignment","src":"4543:25:65","value":{"arguments":[{"name":"data","nativeSrc":"4557:4:65","nodeType":"YulIdentifier","src":"4557:4:65"},{"name":"mask","nativeSrc":"4563:4:65","nodeType":"YulIdentifier","src":"4563:4:65"}],"functionName":{"name":"and","nativeSrc":"4553:3:65","nodeType":"YulIdentifier","src":"4553:3:65"},"nativeSrc":"4553:15:65","nodeType":"YulFunctionCall","src":"4553:15:65"},"variableNames":[{"name":"result","nativeSrc":"4543:6:65","nodeType":"YulIdentifier","src":"4543:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"4405:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4433:4:65","nodeType":"YulTypedName","src":"4433:4:65","type":""},{"name":"bytes","nativeSrc":"4439:5:65","nodeType":"YulTypedName","src":"4439:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4449:6:65","nodeType":"YulTypedName","src":"4449:6:65","type":""}],"src":"4405:169:65"},{"body":{"nativeSrc":"4660:214:65","nodeType":"YulBlock","src":"4660:214:65","statements":[{"nativeSrc":"4793:37:65","nodeType":"YulAssignment","src":"4793:37:65","value":{"arguments":[{"name":"data","nativeSrc":"4820:4:65","nodeType":"YulIdentifier","src":"4820:4:65"},{"name":"len","nativeSrc":"4826:3:65","nodeType":"YulIdentifier","src":"4826:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"4801:18:65","nodeType":"YulIdentifier","src":"4801:18:65"},"nativeSrc":"4801:29:65","nodeType":"YulFunctionCall","src":"4801:29:65"},"variableNames":[{"name":"data","nativeSrc":"4793:4:65","nodeType":"YulIdentifier","src":"4793:4:65"}]},{"nativeSrc":"4839:29:65","nodeType":"YulAssignment","src":"4839:29:65","value":{"arguments":[{"name":"data","nativeSrc":"4850:4:65","nodeType":"YulIdentifier","src":"4850:4:65"},{"arguments":[{"kind":"number","nativeSrc":"4860:1:65","nodeType":"YulLiteral","src":"4860:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"4863:3:65","nodeType":"YulIdentifier","src":"4863:3:65"}],"functionName":{"name":"mul","nativeSrc":"4856:3:65","nodeType":"YulIdentifier","src":"4856:3:65"},"nativeSrc":"4856:11:65","nodeType":"YulFunctionCall","src":"4856:11:65"}],"functionName":{"name":"or","nativeSrc":"4847:2:65","nodeType":"YulIdentifier","src":"4847:2:65"},"nativeSrc":"4847:21:65","nodeType":"YulFunctionCall","src":"4847:21:65"},"variableNames":[{"name":"used","nativeSrc":"4839:4:65","nodeType":"YulIdentifier","src":"4839:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4579:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4641:4:65","nodeType":"YulTypedName","src":"4641:4:65","type":""},{"name":"len","nativeSrc":"4647:3:65","nodeType":"YulTypedName","src":"4647:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"4655:4:65","nodeType":"YulTypedName","src":"4655:4:65","type":""}],"src":"4579:295:65"},{"body":{"nativeSrc":"4969:1300:65","nodeType":"YulBlock","src":"4969:1300:65","statements":[{"nativeSrc":"4980:50:65","nodeType":"YulVariableDeclaration","src":"4980:50:65","value":{"arguments":[{"name":"src","nativeSrc":"5026:3:65","nodeType":"YulIdentifier","src":"5026:3:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4994:31:65","nodeType":"YulIdentifier","src":"4994:31:65"},"nativeSrc":"4994:36:65","nodeType":"YulFunctionCall","src":"4994:36:65"},"variables":[{"name":"newLen","nativeSrc":"4984:6:65","nodeType":"YulTypedName","src":"4984:6:65","type":""}]},{"body":{"nativeSrc":"5115:22:65","nodeType":"YulBlock","src":"5115:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5117:16:65","nodeType":"YulIdentifier","src":"5117:16:65"},"nativeSrc":"5117:18:65","nodeType":"YulFunctionCall","src":"5117:18:65"},"nativeSrc":"5117:18:65","nodeType":"YulExpressionStatement","src":"5117:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"5087:6:65","nodeType":"YulIdentifier","src":"5087:6:65"},{"kind":"number","nativeSrc":"5095:18:65","nodeType":"YulLiteral","src":"5095:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5084:2:65","nodeType":"YulIdentifier","src":"5084:2:65"},"nativeSrc":"5084:30:65","nodeType":"YulFunctionCall","src":"5084:30:65"},"nativeSrc":"5081:56:65","nodeType":"YulIf","src":"5081:56:65"},{"nativeSrc":"5147:52:65","nodeType":"YulVariableDeclaration","src":"5147:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5193:4:65","nodeType":"YulIdentifier","src":"5193:4:65"}],"functionName":{"name":"sload","nativeSrc":"5187:5:65","nodeType":"YulIdentifier","src":"5187:5:65"},"nativeSrc":"5187:11:65","nodeType":"YulFunctionCall","src":"5187:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"5161:25:65","nodeType":"YulIdentifier","src":"5161:25:65"},"nativeSrc":"5161:38:65","nodeType":"YulFunctionCall","src":"5161:38:65"},"variables":[{"name":"oldLen","nativeSrc":"5151:6:65","nodeType":"YulTypedName","src":"5151:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5291:4:65","nodeType":"YulIdentifier","src":"5291:4:65"},{"name":"oldLen","nativeSrc":"5297:6:65","nodeType":"YulIdentifier","src":"5297:6:65"},{"name":"newLen","nativeSrc":"5305:6:65","nodeType":"YulIdentifier","src":"5305:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"5246:44:65","nodeType":"YulIdentifier","src":"5246:44:65"},"nativeSrc":"5246:66:65","nodeType":"YulFunctionCall","src":"5246:66:65"},"nativeSrc":"5246:66:65","nodeType":"YulExpressionStatement","src":"5246:66:65"},{"nativeSrc":"5322:18:65","nodeType":"YulVariableDeclaration","src":"5322:18:65","value":{"kind":"number","nativeSrc":"5339:1:65","nodeType":"YulLiteral","src":"5339:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"5326:9:65","nodeType":"YulTypedName","src":"5326:9:65","type":""}]},{"nativeSrc":"5350:17:65","nodeType":"YulAssignment","src":"5350:17:65","value":{"kind":"number","nativeSrc":"5363:4:65","nodeType":"YulLiteral","src":"5363:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"5350:9:65","nodeType":"YulIdentifier","src":"5350:9:65"}]},{"cases":[{"body":{"nativeSrc":"5414:610:65","nodeType":"YulBlock","src":"5414:610:65","statements":[{"nativeSrc":"5428:37:65","nodeType":"YulVariableDeclaration","src":"5428:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"5447:6:65","nodeType":"YulIdentifier","src":"5447:6:65"},{"arguments":[{"kind":"number","nativeSrc":"5459:4:65","nodeType":"YulLiteral","src":"5459:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"5455:3:65","nodeType":"YulIdentifier","src":"5455:3:65"},"nativeSrc":"5455:9:65","nodeType":"YulFunctionCall","src":"5455:9:65"}],"functionName":{"name":"and","nativeSrc":"5443:3:65","nodeType":"YulIdentifier","src":"5443:3:65"},"nativeSrc":"5443:22:65","nodeType":"YulFunctionCall","src":"5443:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"5432:7:65","nodeType":"YulTypedName","src":"5432:7:65","type":""}]},{"nativeSrc":"5479:50:65","nodeType":"YulVariableDeclaration","src":"5479:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"5524:4:65","nodeType":"YulIdentifier","src":"5524:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"5493:30:65","nodeType":"YulIdentifier","src":"5493:30:65"},"nativeSrc":"5493:36:65","nodeType":"YulFunctionCall","src":"5493:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"5483:6:65","nodeType":"YulTypedName","src":"5483:6:65","type":""}]},{"nativeSrc":"5542:10:65","nodeType":"YulVariableDeclaration","src":"5542:10:65","value":{"kind":"number","nativeSrc":"5551:1:65","nodeType":"YulLiteral","src":"5551:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5546:1:65","nodeType":"YulTypedName","src":"5546:1:65","type":""}]},{"body":{"nativeSrc":"5610:163:65","nodeType":"YulBlock","src":"5610:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"5635:6:65","nodeType":"YulIdentifier","src":"5635:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5653:3:65","nodeType":"YulIdentifier","src":"5653:3:65"},{"name":"srcOffset","nativeSrc":"5658:9:65","nodeType":"YulIdentifier","src":"5658:9:65"}],"functionName":{"name":"add","nativeSrc":"5649:3:65","nodeType":"YulIdentifier","src":"5649:3:65"},"nativeSrc":"5649:19:65","nodeType":"YulFunctionCall","src":"5649:19:65"}],"functionName":{"name":"mload","nativeSrc":"5643:5:65","nodeType":"YulIdentifier","src":"5643:5:65"},"nativeSrc":"5643:26:65","nodeType":"YulFunctionCall","src":"5643:26:65"}],"functionName":{"name":"sstore","nativeSrc":"5628:6:65","nodeType":"YulIdentifier","src":"5628:6:65"},"nativeSrc":"5628:42:65","nodeType":"YulFunctionCall","src":"5628:42:65"},"nativeSrc":"5628:42:65","nodeType":"YulExpressionStatement","src":"5628:42:65"},{"nativeSrc":"5687:24:65","nodeType":"YulAssignment","src":"5687:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"5701:6:65","nodeType":"YulIdentifier","src":"5701:6:65"},{"kind":"number","nativeSrc":"5709:1:65","nodeType":"YulLiteral","src":"5709:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5697:3:65","nodeType":"YulIdentifier","src":"5697:3:65"},"nativeSrc":"5697:14:65","nodeType":"YulFunctionCall","src":"5697:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"5687:6:65","nodeType":"YulIdentifier","src":"5687:6:65"}]},{"nativeSrc":"5728:31:65","nodeType":"YulAssignment","src":"5728:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"5745:9:65","nodeType":"YulIdentifier","src":"5745:9:65"},{"kind":"number","nativeSrc":"5756:2:65","nodeType":"YulLiteral","src":"5756:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5741:3:65","nodeType":"YulIdentifier","src":"5741:3:65"},"nativeSrc":"5741:18:65","nodeType":"YulFunctionCall","src":"5741:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"5728:9:65","nodeType":"YulIdentifier","src":"5728:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5576:1:65","nodeType":"YulIdentifier","src":"5576:1:65"},{"name":"loopEnd","nativeSrc":"5579:7:65","nodeType":"YulIdentifier","src":"5579:7:65"}],"functionName":{"name":"lt","nativeSrc":"5573:2:65","nodeType":"YulIdentifier","src":"5573:2:65"},"nativeSrc":"5573:14:65","nodeType":"YulFunctionCall","src":"5573:14:65"},"nativeSrc":"5565:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"5588:21:65","nodeType":"YulBlock","src":"5588:21:65","statements":[{"nativeSrc":"5590:17:65","nodeType":"YulAssignment","src":"5590:17:65","value":{"arguments":[{"name":"i","nativeSrc":"5599:1:65","nodeType":"YulIdentifier","src":"5599:1:65"},{"kind":"number","nativeSrc":"5602:4:65","nodeType":"YulLiteral","src":"5602:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5595:3:65","nodeType":"YulIdentifier","src":"5595:3:65"},"nativeSrc":"5595:12:65","nodeType":"YulFunctionCall","src":"5595:12:65"},"variableNames":[{"name":"i","nativeSrc":"5590:1:65","nodeType":"YulIdentifier","src":"5590:1:65"}]}]},"pre":{"nativeSrc":"5569:3:65","nodeType":"YulBlock","src":"5569:3:65","statements":[]},"src":"5565:208:65"},{"body":{"nativeSrc":"5809:156:65","nodeType":"YulBlock","src":"5809:156:65","statements":[{"nativeSrc":"5827:43:65","nodeType":"YulVariableDeclaration","src":"5827:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5854:3:65","nodeType":"YulIdentifier","src":"5854:3:65"},{"name":"srcOffset","nativeSrc":"5859:9:65","nodeType":"YulIdentifier","src":"5859:9:65"}],"functionName":{"name":"add","nativeSrc":"5850:3:65","nodeType":"YulIdentifier","src":"5850:3:65"},"nativeSrc":"5850:19:65","nodeType":"YulFunctionCall","src":"5850:19:65"}],"functionName":{"name":"mload","nativeSrc":"5844:5:65","nodeType":"YulIdentifier","src":"5844:5:65"},"nativeSrc":"5844:26:65","nodeType":"YulFunctionCall","src":"5844:26:65"},"variables":[{"name":"lastValue","nativeSrc":"5831:9:65","nodeType":"YulTypedName","src":"5831:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"5894:6:65","nodeType":"YulIdentifier","src":"5894:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"5921:9:65","nodeType":"YulIdentifier","src":"5921:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"5936:6:65","nodeType":"YulIdentifier","src":"5936:6:65"},{"kind":"number","nativeSrc":"5944:4:65","nodeType":"YulLiteral","src":"5944:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"5932:3:65","nodeType":"YulIdentifier","src":"5932:3:65"},"nativeSrc":"5932:17:65","nodeType":"YulFunctionCall","src":"5932:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"5902:18:65","nodeType":"YulIdentifier","src":"5902:18:65"},"nativeSrc":"5902:48:65","nodeType":"YulFunctionCall","src":"5902:48:65"}],"functionName":{"name":"sstore","nativeSrc":"5887:6:65","nodeType":"YulIdentifier","src":"5887:6:65"},"nativeSrc":"5887:64:65","nodeType":"YulFunctionCall","src":"5887:64:65"},"nativeSrc":"5887:64:65","nodeType":"YulExpressionStatement","src":"5887:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"5792:7:65","nodeType":"YulIdentifier","src":"5792:7:65"},{"name":"newLen","nativeSrc":"5801:6:65","nodeType":"YulIdentifier","src":"5801:6:65"}],"functionName":{"name":"lt","nativeSrc":"5789:2:65","nodeType":"YulIdentifier","src":"5789:2:65"},"nativeSrc":"5789:19:65","nodeType":"YulFunctionCall","src":"5789:19:65"},"nativeSrc":"5786:179:65","nodeType":"YulIf","src":"5786:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5985:4:65","nodeType":"YulIdentifier","src":"5985:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"5999:6:65","nodeType":"YulIdentifier","src":"5999:6:65"},{"kind":"number","nativeSrc":"6007:1:65","nodeType":"YulLiteral","src":"6007:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"5995:3:65","nodeType":"YulIdentifier","src":"5995:3:65"},"nativeSrc":"5995:14:65","nodeType":"YulFunctionCall","src":"5995:14:65"},{"kind":"number","nativeSrc":"6011:1:65","nodeType":"YulLiteral","src":"6011:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5991:3:65","nodeType":"YulIdentifier","src":"5991:3:65"},"nativeSrc":"5991:22:65","nodeType":"YulFunctionCall","src":"5991:22:65"}],"functionName":{"name":"sstore","nativeSrc":"5978:6:65","nodeType":"YulIdentifier","src":"5978:6:65"},"nativeSrc":"5978:36:65","nodeType":"YulFunctionCall","src":"5978:36:65"},"nativeSrc":"5978:36:65","nodeType":"YulExpressionStatement","src":"5978:36:65"}]},"nativeSrc":"5407:617:65","nodeType":"YulCase","src":"5407:617:65","value":{"kind":"number","nativeSrc":"5412:1:65","nodeType":"YulLiteral","src":"5412:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"6041:222:65","nodeType":"YulBlock","src":"6041:222:65","statements":[{"nativeSrc":"6055:14:65","nodeType":"YulVariableDeclaration","src":"6055:14:65","value":{"kind":"number","nativeSrc":"6068:1:65","nodeType":"YulLiteral","src":"6068:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"6059:5:65","nodeType":"YulTypedName","src":"6059:5:65","type":""}]},{"body":{"nativeSrc":"6092:67:65","nodeType":"YulBlock","src":"6092:67:65","statements":[{"nativeSrc":"6110:35:65","nodeType":"YulAssignment","src":"6110:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6129:3:65","nodeType":"YulIdentifier","src":"6129:3:65"},{"name":"srcOffset","nativeSrc":"6134:9:65","nodeType":"YulIdentifier","src":"6134:9:65"}],"functionName":{"name":"add","nativeSrc":"6125:3:65","nodeType":"YulIdentifier","src":"6125:3:65"},"nativeSrc":"6125:19:65","nodeType":"YulFunctionCall","src":"6125:19:65"}],"functionName":{"name":"mload","nativeSrc":"6119:5:65","nodeType":"YulIdentifier","src":"6119:5:65"},"nativeSrc":"6119:26:65","nodeType":"YulFunctionCall","src":"6119:26:65"},"variableNames":[{"name":"value","nativeSrc":"6110:5:65","nodeType":"YulIdentifier","src":"6110:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"6085:6:65","nodeType":"YulIdentifier","src":"6085:6:65"},"nativeSrc":"6082:77:65","nodeType":"YulIf","src":"6082:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6179:4:65","nodeType":"YulIdentifier","src":"6179:4:65"},{"arguments":[{"name":"value","nativeSrc":"6238:5:65","nodeType":"YulIdentifier","src":"6238:5:65"},{"name":"newLen","nativeSrc":"6245:6:65","nodeType":"YulIdentifier","src":"6245:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6185:52:65","nodeType":"YulIdentifier","src":"6185:52:65"},"nativeSrc":"6185:67:65","nodeType":"YulFunctionCall","src":"6185:67:65"}],"functionName":{"name":"sstore","nativeSrc":"6172:6:65","nodeType":"YulIdentifier","src":"6172:6:65"},"nativeSrc":"6172:81:65","nodeType":"YulFunctionCall","src":"6172:81:65"},"nativeSrc":"6172:81:65","nodeType":"YulExpressionStatement","src":"6172:81:65"}]},"nativeSrc":"6033:230:65","nodeType":"YulCase","src":"6033:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"5387:6:65","nodeType":"YulIdentifier","src":"5387:6:65"},{"kind":"number","nativeSrc":"5395:2:65","nodeType":"YulLiteral","src":"5395:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"5384:2:65","nodeType":"YulIdentifier","src":"5384:2:65"},"nativeSrc":"5384:14:65","nodeType":"YulFunctionCall","src":"5384:14:65"},"nativeSrc":"5377:886:65","nodeType":"YulSwitch","src":"5377:886:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"4879:1390:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"4958:4:65","nodeType":"YulTypedName","src":"4958:4:65","type":""},{"name":"src","nativeSrc":"4964:3:65","nodeType":"YulTypedName","src":"4964:3:65","type":""}],"src":"4879:1390:65"},{"body":{"nativeSrc":"6318:53:65","nodeType":"YulBlock","src":"6318:53:65","statements":[{"nativeSrc":"6328:36:65","nodeType":"YulAssignment","src":"6328:36:65","value":{"arguments":[{"kind":"number","nativeSrc":"6353:3:65","nodeType":"YulLiteral","src":"6353:3:65","type":"","value":"240"},{"name":"value","nativeSrc":"6358:5:65","nodeType":"YulIdentifier","src":"6358:5:65"}],"functionName":{"name":"shl","nativeSrc":"6349:3:65","nodeType":"YulIdentifier","src":"6349:3:65"},"nativeSrc":"6349:15:65","nodeType":"YulFunctionCall","src":"6349:15:65"},"variableNames":[{"name":"newValue","nativeSrc":"6328:8:65","nodeType":"YulIdentifier","src":"6328:8:65"}]}]},"name":"shift_left_240","nativeSrc":"6275:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6299:5:65","nodeType":"YulTypedName","src":"6299:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6309:8:65","nodeType":"YulTypedName","src":"6309:8:65","type":""}],"src":"6275:96:65"},{"body":{"nativeSrc":"6423:48:65","nodeType":"YulBlock","src":"6423:48:65","statements":[{"nativeSrc":"6433:32:65","nodeType":"YulAssignment","src":"6433:32:65","value":{"arguments":[{"name":"value","nativeSrc":"6459:5:65","nodeType":"YulIdentifier","src":"6459:5:65"}],"functionName":{"name":"shift_left_240","nativeSrc":"6444:14:65","nodeType":"YulIdentifier","src":"6444:14:65"},"nativeSrc":"6444:21:65","nodeType":"YulFunctionCall","src":"6444:21:65"},"variableNames":[{"name":"aligned","nativeSrc":"6433:7:65","nodeType":"YulIdentifier","src":"6433:7:65"}]}]},"name":"leftAlign_t_uint16","nativeSrc":"6377:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6405:5:65","nodeType":"YulTypedName","src":"6405:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"6415:7:65","nodeType":"YulTypedName","src":"6415:7:65","type":""}],"src":"6377:94:65"},{"body":{"nativeSrc":"6558:72:65","nodeType":"YulBlock","src":"6558:72:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6575:3:65","nodeType":"YulIdentifier","src":"6575:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6616:5:65","nodeType":"YulIdentifier","src":"6616:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"6599:16:65","nodeType":"YulIdentifier","src":"6599:16:65"},"nativeSrc":"6599:23:65","nodeType":"YulFunctionCall","src":"6599:23:65"}],"functionName":{"name":"leftAlign_t_uint16","nativeSrc":"6580:18:65","nodeType":"YulIdentifier","src":"6580:18:65"},"nativeSrc":"6580:43:65","nodeType":"YulFunctionCall","src":"6580:43:65"}],"functionName":{"name":"mstore","nativeSrc":"6568:6:65","nodeType":"YulIdentifier","src":"6568:6:65"},"nativeSrc":"6568:56:65","nodeType":"YulFunctionCall","src":"6568:56:65"},"nativeSrc":"6568:56:65","nodeType":"YulExpressionStatement","src":"6568:56:65"}]},"name":"abi_encode_t_uint16_to_t_uint16_nonPadded_inplace_fromStack","nativeSrc":"6477:153:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6546:5:65","nodeType":"YulTypedName","src":"6546:5:65","type":""},{"name":"pos","nativeSrc":"6553:3:65","nodeType":"YulTypedName","src":"6553:3:65","type":""}],"src":"6477:153:65"},{"body":{"nativeSrc":"6683:32:65","nodeType":"YulBlock","src":"6683:32:65","statements":[{"nativeSrc":"6693:16:65","nodeType":"YulAssignment","src":"6693:16:65","value":{"name":"value","nativeSrc":"6704:5:65","nodeType":"YulIdentifier","src":"6704:5:65"},"variableNames":[{"name":"aligned","nativeSrc":"6693:7:65","nodeType":"YulIdentifier","src":"6693:7:65"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"6636:79:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6665:5:65","nodeType":"YulTypedName","src":"6665:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"6675:7:65","nodeType":"YulTypedName","src":"6675:7:65","type":""}],"src":"6636:79:65"},{"body":{"nativeSrc":"6804:74:65","nodeType":"YulBlock","src":"6804:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6821:3:65","nodeType":"YulIdentifier","src":"6821:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6864:5:65","nodeType":"YulIdentifier","src":"6864:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6846:17:65","nodeType":"YulIdentifier","src":"6846:17:65"},"nativeSrc":"6846:24:65","nodeType":"YulFunctionCall","src":"6846:24:65"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"6826:19:65","nodeType":"YulIdentifier","src":"6826:19:65"},"nativeSrc":"6826:45:65","nodeType":"YulFunctionCall","src":"6826:45:65"}],"functionName":{"name":"mstore","nativeSrc":"6814:6:65","nodeType":"YulIdentifier","src":"6814:6:65"},"nativeSrc":"6814:58:65","nodeType":"YulFunctionCall","src":"6814:58:65"},"nativeSrc":"6814:58:65","nodeType":"YulExpressionStatement","src":"6814:58:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"6721:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6792:5:65","nodeType":"YulTypedName","src":"6792:5:65","type":""},{"name":"pos","nativeSrc":"6799:3:65","nodeType":"YulTypedName","src":"6799:3:65","type":""}],"src":"6721:157:65"},{"body":{"nativeSrc":"7026:250:65","nodeType":"YulBlock","src":"7026:250:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"7097:6:65","nodeType":"YulIdentifier","src":"7097:6:65"},{"name":"pos","nativeSrc":"7106:3:65","nodeType":"YulIdentifier","src":"7106:3:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_nonPadded_inplace_fromStack","nativeSrc":"7037:59:65","nodeType":"YulIdentifier","src":"7037:59:65"},"nativeSrc":"7037:73:65","nodeType":"YulFunctionCall","src":"7037:73:65"},"nativeSrc":"7037:73:65","nodeType":"YulExpressionStatement","src":"7037:73:65"},{"nativeSrc":"7119:18:65","nodeType":"YulAssignment","src":"7119:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"7130:3:65","nodeType":"YulIdentifier","src":"7130:3:65"},{"kind":"number","nativeSrc":"7135:1:65","nodeType":"YulLiteral","src":"7135:1:65","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"7126:3:65","nodeType":"YulIdentifier","src":"7126:3:65"},"nativeSrc":"7126:11:65","nodeType":"YulFunctionCall","src":"7126:11:65"},"variableNames":[{"name":"pos","nativeSrc":"7119:3:65","nodeType":"YulIdentifier","src":"7119:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7209:6:65","nodeType":"YulIdentifier","src":"7209:6:65"},{"name":"pos","nativeSrc":"7218:3:65","nodeType":"YulIdentifier","src":"7218:3:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"7147:61:65","nodeType":"YulIdentifier","src":"7147:61:65"},"nativeSrc":"7147:75:65","nodeType":"YulFunctionCall","src":"7147:75:65"},"nativeSrc":"7147:75:65","nodeType":"YulExpressionStatement","src":"7147:75:65"},{"nativeSrc":"7231:19:65","nodeType":"YulAssignment","src":"7231:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"7242:3:65","nodeType":"YulIdentifier","src":"7242:3:65"},{"kind":"number","nativeSrc":"7247:2:65","nodeType":"YulLiteral","src":"7247:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7238:3:65","nodeType":"YulIdentifier","src":"7238:3:65"},"nativeSrc":"7238:12:65","nodeType":"YulFunctionCall","src":"7238:12:65"},"variableNames":[{"name":"pos","nativeSrc":"7231:3:65","nodeType":"YulIdentifier","src":"7231:3:65"}]},{"nativeSrc":"7260:10:65","nodeType":"YulAssignment","src":"7260:10:65","value":{"name":"pos","nativeSrc":"7267:3:65","nodeType":"YulIdentifier","src":"7267:3:65"},"variableNames":[{"name":"end","nativeSrc":"7260:3:65","nodeType":"YulIdentifier","src":"7260:3:65"}]}]},"name":"abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"6884:392:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6997:3:65","nodeType":"YulTypedName","src":"6997:3:65","type":""},{"name":"value1","nativeSrc":"7003:6:65","nodeType":"YulTypedName","src":"7003:6:65","type":""},{"name":"value0","nativeSrc":"7011:6:65","nodeType":"YulTypedName","src":"7011:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7022:3:65","nodeType":"YulTypedName","src":"7022:3:65","type":""}],"src":"6884:392:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function abi_decode_tuple_t_uint16_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_bytes_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_bytes_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n        let newLen := array_length_t_bytes_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function shift_left_240(value) -> newValue {\n        newValue :=\n\n        shl(240, value)\n\n    }\n\n    function leftAlign_t_uint16(value) -> aligned {\n        aligned := shift_left_240(value)\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint16(cleanup_t_uint16(value)))\n    }\n\n    function leftAlign_t_uint256(value) -> aligned {\n        aligned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n    }\n\n    function abi_encode_tuple_packed_t_uint16_t_uint256__to_t_uint16_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        abi_encode_t_uint16_to_t_uint16_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 2)\n\n        abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        end := pos\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6080604052600c805461ffff191661010117905534801561001f57600080fd5b506040516135f93803806135f983398101604081905261003e91610160565b6001805461ffff191661ffff83161781556040805160a0810182526402540be400808252602080830191909152678ac7230489e8000082840152606460608301526080909101929092527402540be400000000000000000000000002540be4006002557801000000000000006400000000000000008ac7230489e800006003558051808201909152670de0b6b3a76400008082526103e891909201819052600491909155600555662386f26fc100006006556100fc62030d40610110565b6007906101099082610285565b5050610393565b606060018260405160200161012692919061036d565b6040516020818303038152906040529050919050565b61ffff8116811461014c57600080fd5b50565b805161015a8161013c565b92915050565b60006020828403121561017557610175600080fd5b6000610181848461014f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806101c957607f821691505b6020821081036101db576101db61019f565b50919050565b600061015a6101ed8381565b90565b6101f9836101e1565b815460001960089490940293841b1916921b91909117905550565b60006102218184846101f0565b505050565b8181101561024157610239600082610214565b600101610226565b5050565b601f821115610221576000818152602090206020601f8501048101602085101561026c5750805b61027e6020601f860104830182610226565b5050505050565b81516001600160401b0381111561029e5761029e610189565b6102a882546101b5565b6102b3828285610245565b6020601f8311600181146102e757600084156102cf5750858201515b600019600886021c1981166002860217865550610340565b600085815260208120601f198616915b8281101561031757888501518255602094850194600190920191016102f7565b868310156103335784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b600061015a8260f01b90565b61036161ffff8216610348565b82525050565b80610361565b60006103798285610354565b6002820191506103898284610367565b5060200192915050565b613257806103a26000396000f3fe60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a14610796578063f5ecbdbc146107b2578063f9cd3ceb146107d2578063fbba623b146107e8578063fdc07c701461080857600080fd5b8063ca066b3514610716578063cbed8b9c14610737578063d23104f114610758578063da1a7c9a14610271578063db14f3051461077b57600080fd5b8063b6d9ef60116100f2578063b6d9ef6014610644578063c08f15a114610664578063c2fa4813146106ad578063c5803100146106cd578063c81b383a146106e057600080fd5b80639924d33b146105915780639c729da114610432578063aaff5f16146105e3578063b20864991461060357600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043257806376a386dc1461045f5780637a145748146104da5780637f6df8e614610507578063907c5e7e1461053457600080fd5b80633408e470146103b95780633e0dd83e146103d257806340a7bb10146103f257806342d65a8d1461041257600080fd5b806310ddb137116101ed57806310ddb1371461025157806312a9ee6b146102cc578063240de277146102fb578063272bd384146103215780632c365e251461034357600080fd5b806307d3277f1461021f57806307e0db1714610251578063096568f6146102715780630eaf6ea61461029f575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604051610248929190611e23565b60405180910390f35b34801561025d57600080fd5b5061026f61026c366004611e5a565b50565b005b34801561027d57600080fd5b5061029261028c366004611ea0565b50600190565b6040516102489190611ecb565b3480156102ab57600080fd5b506102bf6102ba366004611f2a565b610828565b6040516102489190611f8d565b3480156102d857600080fd5b506102ec6102e73660046120a5565b61086e565b6040516102489392919061217f565b34801561030757600080fd5b5061026f6103163660046121b5565b600491909155600555565b34801561032d57600080fd5b5061033661096b565b60405161024891906121f2565b34801561034f57600080fd5b5061026f61035e366004612237565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103c557600080fd5b5060015461ffff16610292565b3480156103de57600080fd5b506001546102bf9062010000900460ff1681565b3480156103fe57600080fd5b5061023a61040d3660046122c2565b6109f9565b34801561041e57600080fd5b5061026f61042d366004611f2a565b610af8565b34801561043e57600080fd5b5061045261044d366004611ea0565b503090565b6040516102489190612361565b34801561046b57600080fd5b506104cb61047a36600461236f565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604051610248939291906123bc565b3480156104e657600080fd5b506104fa6104f53660046123e4565b610be3565b6040516102489190612417565b34801561051357600080fd5b50610527610522366004611f2a565b610c1b565b6040516102489190612425565b34801561054057600080fd5b50600254600354610580916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604051610248959493929190612442565b34801561059d57600080fd5b506104fa6105ac36600461236f565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b3480156105ef57600080fd5b5061026f6105fe36600461248e565b610c57565b34801561060f57600080fd5b506104fa61061e3660046123e4565b60096020908152600092835260408084209091529082529020546001600160401b031681565b34801561065057600080fd5b5061026f61065f36600461251c565b600655565b34801561067057600080fd5b5061026f61067f36600461253d565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b3480156106b957600080fd5b5061026f6106c836600461255f565b610e0d565b61026f6106db366004612627565b6114d0565b3480156106ec57600080fd5b506104526106fb366004611ea0565b6000602081905290815260409020546001600160a01b031681565b34801561072257600080fd5b506102bf600c54610100900460ff1660021490565b34801561074357600080fd5b5061026f610752366004612705565b50505050565b34801561076457600080fd5b5061026f6001805462ff0000191662010000179055565b34801561078757600080fd5b506001546102929061ffff1681565b3480156107a257600080fd5b506102bf600c5460ff1660021490565b3480156107be57600080fd5b506103366107cd366004612783565b61191e565b3480156107de57600080fd5b5061052760065481565b3480156107f457600080fd5b5061026f6108033660046127db565b611936565b34801561081457600080fd5b506104fa610823366004611f2a565b611946565b61ffff83166000908152600a6020526040808220905182919061084e9086908690612828565b9081526040519081900360200190206001015415159150505b9392505050565b600b60209081526000848152604090208351808501830180519281529083019285019290922091528054829081106108a557600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506108e89061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061284b565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905083565b600780546109789061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a49061284b565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b505050505081565b600080600080845111610a965760078054610a139061284b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3f9061284b565b8015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050505050610a98565b835b90506000610aab8960018a8a518661198b565b90506000610abc8783600654611ae5565b905086610acc5780945084610ad1565b809350835b50600654610adf838761288d565b610ae9919061288d565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610b1b9085908590612828565b9081526040519081900360200190206001810154909150610b575760405162461bcd60e51b8152600401610b4e906128d5565b60405180910390fd5b8054600160401b90046001600160a01b03163314610b875760405162461bcd60e51b8152600401610b4e90612919565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610bd09086908690869061294c565b60405180910390a1610752848484611b22565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b03165b92915050565b61ffff83166000908152600b60205260408082209051610c3e9085908590612828565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610c7a9087908790612828565b9081526040519081900360200190206001810154909150610cad5760405162461bcd60e51b8152600401610b4e906128d5565b80546001600160401b031682148015610ce0575080600101548383604051610cd6929190612828565b6040518091039020145b610cfc5760405162461bcd60e51b8152600401610b4e906129a1565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610d469089908990612828565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610d92908b908b908b9087908c908c906004016129b1565b600060405180830381600087803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610dfb959493929190612a00565b60405180910390a15050505050505050565b600c54610100900460ff16600114610e375760405162461bcd60e51b8152600401610b4e90612a81565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610e69908a908a90612828565b90815260200160405180910390209050600860008a61ffff1661ffff1681526020019081526020016000208888604051610ea4929190612828565b9081526040519081900360200190208054600090610eca906001600160401b0316612a91565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b031614610f1d5760405162461bcd60e51b8152600401610b4e90612aef565b6001810154156111e35761ffff89166000908152600b60205260408082209051610f4a908b908b90612828565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561117457815460018181018455600084815260209081902084516002909402018054918501516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b0390941693909317178255604083015183929182019061102b9082612b9f565b50505060005b825461103f90600190612c66565b8110156110f95782818154811061105857611058612c79565b906000526020600020906002020183826001611074919061288d565b8154811061108457611084612c79565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b03169092029190911781556001808201906110ee90840182612c9a565b505050600101611031565b50808260008154811061110e5761110e612c79565b600091825260209182902083516002909202018054928401516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b03909216919091179190911781556040820151600182019061116b9082612b9f565b509050506111dc565b815460018181018455600084815260209081902084516002909402018054918501516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b039094169390931717825560408301518392918201906111d89082612b9f565b5050505b50506114b6565b60015462010000900460ff1615611311576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611230929190612828565b604080519182900390912090915261ffff8b166000908152600a602052819020905161125f908b908b90612828565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916112f8918c918c918c918c918c918b918b9190612d63565b60405180910390a16001805462ff0000191690556114b6565b604051621d356760e01b81526001600160a01b03871690621d3567908690611347908d908d908d908c908b908b906004016129b1565b600060405180830381600088803b15801561136157600080fd5b5087f193505050508015611373575060015b6114b6573d8080156113a1576040519150601f19603f3d011682016040523d82523d6000602084013e6113a6565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516113e3929190612828565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611412908c908c90612828565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db906114a0908c908c908c908c908c908b908b908a90612d63565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146114f55760405162461bcd60e51b8152600401610b4e90612e13565b600c805460ff1916600217905585516028146115235760405162461bcd60e51b8152600401610b4e90612e6c565b60148601516001600160a01b0380821660009081526020819052604090205416806115605760405162461bcd60e51b8152600401610b4e90612ed6565b6000808451116115fa57600780546115779061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546115a39061284b565b80156115f05780601f106115c5576101008083540402835291602001916115f0565b820191906000526020600020905b8154815290600101906020018083116115d357829003601f168201915b50505050506115fc565b835b9050600061164d8b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a161515866109f9565b509050803410156116705760405162461bcd60e51b8152600401610b4e90612f2c565b61ffff8b1660009081526009602090815260408083203384529091528120805482906116a4906001600160401b0316612a91565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346116d79190612c66565b9050801561175d576000896001600160a01b0316826040516116f890612f3c565b60006040518083038185875af1925050503d8060008114611735576040519150601f19603f3d011682016040523d82523d6000602084013e61173a565b606091505b505090508061175b5760405162461bcd60e51b8152600401610b4e90612f7b565b505b600080600061176b87611d19565b91955093509150508115611816576000816001600160a01b03168360405161179290612f3c565b60006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b50509050806118145760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6000338a60405160200161182b929190612fb3565b604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016118cb96959493929190612fd9565b600060405180830381600087803b1580156118e557600080fd5b505af11580156118f9573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b6040805160208101909152600081525b949350505050565b60076119428282612b9f565b5050565b61ffff831660009081526008602052604080822090516119699085908590612828565b908152604051908190036020019020546001600160401b031690509392505050565b60008060008061199a85611d19565b5092509250925060008361ffff166002036119e7576003546001600160801b03168211156119da5760405162461bcd60e51b8152600401610b4e90613077565b6119e4828261288d565b90505b600354600090611a08908590600160801b90046001600160401b031661288d565b600254611a259190600160801b90046001600160801b0316613087565b9050611a31818361288d565b6002549092506000906402540be40090611a54906001600160801b031685613087565b611a5e91906130bc565b6002546003549192506000916402540be400916001600160801b0380821692611aa192600160c01b9091046001600160401b031691600160801b909104166130d4565b611aab91906130d4565b611ab591906130fa565b6001600160801b03169050611aca818b613087565b611ad4908361288d565b9d9c50505050505050505050505050565b60008315611af65750600454610867565b60055461271090611b07848661288d565b611b119190613087565b611b1b91906130bc565b9050610867565b61ffff83166000908152600b60205260408082209051611b459085908590612828565b908152602001604051809103902090505b8054156107525780546000908290611b7090600190612c66565b81548110611b8057611b80612c79565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611bd99061284b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c059061284b565b8015611c525780601f10611c2757610100808354040283529160200191611c52565b820191906000526020600020905b815481529060010190602001808311611c3557829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401611c9c959493929190613117565b600060405180830381600087803b158015611cb657600080fd5b505af1158015611cca573d6000803e3d6000fd5b5050505081805480611cde57611cde613164565b60008281526020812060026000199093019283020180546001600160e01b031916815590611d0f6001830182611dcd565b5050905550611b56565b600080600080845160221480611d30575060428551115b611d4c5760405162461bcd60e51b8152600401610b4e906131a6565b60028501519350602285015192508361ffff1660011480611d7157508361ffff166002145b611d8d5760405162461bcd60e51b8152600401610b4e906131df565b60008311611dad5760405162461bcd60e51b8152600401610b4e90613211565b8361ffff16600203611dc6575050604283015160568401515b9193509193565b508054611dd99061284b565b6000825580601f10611de9575050565b601f01602090049060005260206000209081019061026c91905b80821115611e175760008155600101611e03565b5090565b805b82525050565b60408101611e318285611e1b565b6108676020830184611e1b565b61ffff81165b811461026c57600080fd5b8035610c1581611e3e565b600060208284031215611e6f57611e6f600080fd5b600061192e8484611e4f565b60006001600160a01b038216610c15565b611e4481611e7b565b8035610c1581611e8c565b600060208284031215611eb557611eb5600080fd5b600061192e8484611e95565b61ffff8116611e1d565b60208101610c158284611ec1565b60008083601f840112611eee57611eee600080fd5b5081356001600160401b03811115611f0857611f08600080fd5b602083019150836001820283011115611f2357611f23600080fd5b9250929050565b600080600060408486031215611f4257611f42600080fd5b6000611f4e8686611e4f565b93505060208401356001600160401b03811115611f6d57611f6d600080fd5b611f7986828701611ed9565b92509250509250925092565b801515611e1d565b60208101610c158284611f85565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715611fd657611fd6611f9b565b6040525050565b6000611fe860405190565b9050611ff48282611fb1565b919050565b60006001600160401b0382111561201257612012611f9b565b601f19601f83011660200192915050565b82818337506000910152565b600061204261203d84611ff9565b611fdd565b90508281526020810184848401111561205d5761205d600080fd5b612068848285612023565b509392505050565b600082601f83011261208457612084600080fd5b813561192e84826020860161202f565b80611e44565b8035610c1581612094565b6000806000606084860312156120bd576120bd600080fd5b60006120c98686611e4f565b93505060208401356001600160401b038111156120e8576120e8600080fd5b6120f486828701612070565b92505060406121058682870161209a565b9150509250925092565b611e1d81611e7b565b6001600160401b038116611e1d565b60005b8381101561214257818101518382015260200161212a565b50506000910152565b6000612155825190565b80845260208401935061216c818560208601612127565b601f19601f8201165b9093019392505050565b6060810161218d828661210f565b61219a6020830185612118565b81810360408301526121ac818461214b565b95945050505050565b600080604083850312156121cb576121cb600080fd5b60006121d7858561209a565b92505060206121e88582860161209a565b9150509250929050565b60208082528101610867818461214b565b6001600160801b038116611e44565b8035610c1581612203565b6001600160401b038116611e44565b8035610c158161221d565b600080600080600060a0868803121561225257612252600080fd5b600061225e8888612212565b955050602061226f88828901612212565b945050604061228088828901612212565b93505060606122918882890161222c565b92505060806122a28882890161222c565b9150509295509295909350565b801515611e44565b8035610c15816122af565b600080600080600060a086880312156122dd576122dd600080fd5b60006122e98888611e4f565b95505060206122fa88828901611e95565b94505060408601356001600160401b0381111561231957612319600080fd5b61232588828901612070565b9350506060612336888289016122b7565b92505060808601356001600160401b0381111561235557612355600080fd5b6122a288828901612070565b60208101610c15828461210f565b6000806040838503121561238557612385600080fd5b60006123918585611e4f565b92505060208301356001600160401b038111156123b0576123b0600080fd5b6121e885828601612070565b606081016123ca8286612118565b6123d7602083018561210f565b61192e6040830184611e1b565b600080604083850312156123fa576123fa600080fd5b60006124068585611e4f565b92505060206121e885828601611e95565b60208101610c158284612118565b60208101610c158284611e1b565b6001600160801b038116611e1d565b60a081016124508288612433565b61245d6020830187612433565b61246a6040830186612433565b6124776060830185612118565b6124846080830184612118565b9695505050505050565b6000806000806000606086880312156124a9576124a9600080fd5b60006124b58888611e4f565b95505060208601356001600160401b038111156124d4576124d4600080fd5b6124e088828901611ed9565b945094505060408601356001600160401b0381111561250157612501600080fd5b61250d88828901611ed9565b92509250509295509295909350565b60006020828403121561253157612531600080fd5b600061192e848461209a565b6000806040838503121561255357612553600080fd5b60006124068585611e95565b60008060008060008060008060c0898b03121561257e5761257e600080fd5b600061258a8b8b611e4f565b98505060208901356001600160401b038111156125a9576125a9600080fd5b6125b58b828c01611ed9565b975097505060406125c88b828c01611e95565b95505060606125d98b828c0161222c565b94505060806125ea8b828c0161209a565b93505060a08901356001600160401b0381111561260957612609600080fd5b6126158b828c01611ed9565b92509250509295985092959890939650565b600080600080600080600060c0888a03121561264557612645600080fd5b60006126518a8a611e4f565b97505060208801356001600160401b0381111561267057612670600080fd5b61267c8a828b01612070565b96505060408801356001600160401b0381111561269b5761269b600080fd5b6126a78a828b01611ed9565b955095505060606126ba8a828b01611e95565b93505060806126cb8a828b01611e95565b92505060a08801356001600160401b038111156126ea576126ea600080fd5b6126f68a828b01612070565b91505092959891949750929550565b6000806000806080858703121561271e5761271e600080fd5b600061272a8787611e4f565b945050602061273b87828801611e4f565b935050604061274c8782880161209a565b92505060608501356001600160401b0381111561276b5761276b600080fd5b61277787828801612070565b91505092959194509250565b6000806000806080858703121561279c5761279c600080fd5b60006127a88787611e4f565b94505060206127b987828801611e4f565b93505060406127ca87828801611e95565b92505060606127778782880161209a565b6000602082840312156127f0576127f0600080fd5b81356001600160401b0381111561280957612809600080fd5b61192e84828501612070565b6000612822838584612023565b50500190565b600061192e828486612815565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061285f57607f821691505b60208210810361287157612871612835565b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1557610c15612877565b60208082527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164910190815260005b5060200190565b60208082528101610c15816128a0565b601d81526000602082017f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572000000815291506128ce565b60208082528101610c15816128e5565b818352600060208401935061293f838584612023565b601f19601f840116612175565b6040810161295a8286611ec1565b81810360208301526121ac818486612929565b601e81526000602082017f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f61640000815291506128ce565b60208082528101610c158161296d565b608081016129bf8289611ec1565b81810360208301526129d2818789612929565b90506129e16040830186612118565b81810360608301526129f4818486612929565b98975050505050505050565b60808101612a0e8288611ec1565b8181036020830152612a21818688612929565b9050612a306040830185612118565b612484606083018461210f565b602481526000602082017f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472815263616e637960e01b602082015291505b5060400190565b60208082528101610c1581612a3d565b6001600160401b0316600067fffffffffffffffe198201612ab457612ab4612877565b5060010190565b601a81526000602082017f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365000000000000815291506128ce565b60208082528101610c1581612abb565b6000610c15612b0b8381565b90565b612b1783612aff565b815460001960089490940293841b1916921b91909117905550565b6000612b3f818484612b0e565b505050565b8181101561194257612b57600082612b32565b600101612b44565b601f821115612b3f576000818152602090206020601f85010481016020851015612b865750805b612b986020601f860104830182612b44565b5050505050565b81516001600160401b03811115612bb857612bb8611f9b565b612bc2825461284b565b612bcd828285612b5f565b6020601f831160018114612c025760008415612be95750858201515b600019600886021c19811660028602175b865550612c5e565b600085815260208120601f198616915b82811015612c325788850151825560209485019460019092019101612c12565b86831015612c5157888501516000196008601f8a16021c1981165b8355505b6001600288020188555050505b505050505050565b81810381811115610c1557610c15612877565b634e487b7160e01b600052603260045260246000fd5b8054610c158161284b565b818103612ca5575050565b612cae82612c8f565b6001600160401b03811115612cc557612cc5611f9b565b612ccf825461284b565b612cda828285612b5f565b6000601f831160018114612d0a5760008415612be9575081860154600019600886021c1981166002860217612bfa565b600095865260208087208688529087209096601f19861691905b82811015612d445788850154825560019485019490910190602001612d24565b86831015612c5157888501546000196008601f8a16021c198116612c4d565b60c08101612d71828b611ec1565b8181036020830152612d8481898b612929565b9050612d93604083018861210f565b612da06060830187612118565b8181036080830152612db3818587612929565b905081810360a0830152612dc7818461214b565b9a9950505050505050505050565b602181526000602082017f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e638152607960f81b60208201529150612a7a565b60208082528101610c1581612dd5565b602c81526000602082017f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652081526b616464726573732073697a6560a01b60208201529150612a7a565b60208082528101610c1581612e23565b603781526000602082017f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657281527f5a65726f20456e64706f696e74206e6f7420666f756e6400000000000000000060208201529150612a7a565b60208082528101610c1581612e7c565b602981526000602082017f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766581526820666f72206665657360b81b60208201529150612a7a565b60208082528101610c1581612ee6565b6000610c1582612b0b565b601f81526000602082017f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e6400815291506128ce565b60208082528101610c1581612f47565b6000610c158260601b90565b6000610c1582612f8b565b611e1d612fae82611e7b565b612f97565b6000612fbf8285612fa2565b601482019150612fcf8284612fa2565b5060140192915050565b60c08101612fe78289611ec1565b8181036020830152612ff9818861214b565b9050613008604083018761210f565b6130156060830186612118565b6130226080830185611e1b565b81810360a08301526129f4818461214b565b602681526000602082017f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2081526503630b933b2960d51b60208201529150612a7a565b60208082528101610c1581613034565b81810280821583820485141761309f5761309f612877565b5092915050565b634e487b7160e01b600052601260045260246000fd5b6000825b9250826130cf576130cf6130a6565b500490565b6001600160801b0391821691908116908282029081169081811461309f5761309f612877565b60006001600160801b03821691506001600160801b0383166130c0565b608081016131258288611ec1565b8181036020830152613138818688612929565b90506131476040830185612118565b8181036060830152613159818461214b565b979650505050505050565b634e487b7160e01b600052603160045260246000fd5b6015815260006020820174496e76616c69642061646170746572506172616d7360581b815291506128ce565b60208082528101610c158161317a565b6012815260006020820171556e737570706f727465642074785479706560701b815291506128ce565b60208082528101610c15816131b6565b600b81526000602082016a47617320746f6f206c6f7760a81b815291506128ce565b60208082528101610c15816131ef56fea2646970667358221220fca9b00680b4a1836f02c8657e12b713df7e33656c6c5bb08c5e30c86f054b8364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xC DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x101 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x35F9 CODESIZE SUB DUP1 PUSH2 0x35F9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x3E SWAP2 PUSH2 0x160 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF DUP4 AND OR DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH5 0x2540BE400 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH8 0x8AC7230489E80000 DUP3 DUP5 ADD MSTORE PUSH1 0x64 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH21 0x2540BE400000000000000000000000002540BE400 PUSH1 0x2 SSTORE PUSH25 0x1000000000000006400000000000000008AC7230489E80000 PUSH1 0x3 SSTORE DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH8 0xDE0B6B3A7640000 DUP1 DUP3 MSTORE PUSH2 0x3E8 SWAP2 SWAP1 SWAP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE PUSH7 0x2386F26FC10000 PUSH1 0x6 SSTORE PUSH2 0xFC PUSH3 0x30D40 PUSH2 0x110 JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x109 SWAP1 DUP3 PUSH2 0x285 JUMP JUMPDEST POP POP PUSH2 0x393 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x126 SWAP3 SWAP2 SWAP1 PUSH2 0x36D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x15A DUP2 PUSH2 0x13C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x175 JUMPI PUSH2 0x175 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x181 DUP5 DUP5 PUSH2 0x14F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1DB JUMPI PUSH2 0x1DB PUSH2 0x19F JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15A PUSH2 0x1ED DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1F9 DUP4 PUSH2 0x1E1 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x221 DUP2 DUP5 DUP5 PUSH2 0x1F0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x241 JUMPI PUSH2 0x239 PUSH1 0x0 DUP3 PUSH2 0x214 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x226 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x26C JUMPI POP DUP1 JUMPDEST PUSH2 0x27E PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x226 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29E JUMPI PUSH2 0x29E PUSH2 0x189 JUMP JUMPDEST PUSH2 0x2A8 DUP3 SLOAD PUSH2 0x1B5 JUMP JUMPDEST PUSH2 0x2B3 DUP3 DUP3 DUP6 PUSH2 0x245 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E7 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2CF JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x340 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x317 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2F7 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x333 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15A DUP3 PUSH1 0xF0 SHL SWAP1 JUMP JUMPDEST PUSH2 0x361 PUSH2 0xFFFF DUP3 AND PUSH2 0x348 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST DUP1 PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP3 DUP6 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP2 POP PUSH2 0x389 DUP3 DUP5 PUSH2 0x367 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3257 DUP1 PUSH2 0x3A2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x796 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x808 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x716 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x737 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x758 JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x6AD JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x6CD JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x591 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x45F JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2CC JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x29F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP3 SWAP2 SWAP1 PUSH2 0x1E23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x1E5A JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28C CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0x828 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x2E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A5 JUMP JUMPDEST PUSH2 0x86E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x21B5 JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0x96B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x35E CALLDATASIZE PUSH1 0x4 PUSH2 0x2237 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x292 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2BF SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x40D CALLDATASIZE PUSH1 0x4 PUSH2 0x22C2 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x42D CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0xAF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH2 0x44D CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2361 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4CB PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x236F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x23E4 JUMP JUMPDEST PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2425 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x580 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2442 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x5AC CALLDATASIZE PUSH1 0x4 PUSH2 0x236F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x5FE CALLDATASIZE PUSH1 0x4 PUSH2 0x248E JUMP JUMPDEST PUSH2 0xC57 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x61E CALLDATASIZE PUSH1 0x4 PUSH2 0x23E4 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x65F CALLDATASIZE PUSH1 0x4 PUSH2 0x251C JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x67F CALLDATASIZE PUSH1 0x4 PUSH2 0x253D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x6C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x255F JUMP JUMPDEST PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x26F PUSH2 0x6DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x14D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH2 0x6FB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x752 CALLDATASIZE PUSH1 0x4 PUSH2 0x2705 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x292 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2783 JUMP JUMPDEST PUSH2 0x191E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DB JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0x1946 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x84E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x8E8 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x914 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x961 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x936 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x961 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x944 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0x978 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9A4 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9F1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9C6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9F1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9D4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xA96 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xA13 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA3F SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA8C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA61 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA8C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA6F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xA98 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAAB DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x198B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xABC DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1AE5 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xACC JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xAD1 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xADF DUP4 DUP8 PUSH2 0x288D JUMP JUMPDEST PUSH2 0xAE9 SWAP2 SWAP1 PUSH2 0x288D JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xB1B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xB57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x28D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2919 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xBD0 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x294C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x752 DUP5 DUP5 DUP5 PUSH2 0x1B22 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xC3E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xC7A SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xCAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x28D5 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xCE0 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD6 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xCFC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x29A1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xD46 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xD92 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDC0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xDFB SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xE37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2A81 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xE69 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0xEA4 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xECA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2A91 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x11E3 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xF4A SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1174 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x102B SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x103F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x10F9 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1058 JUMPI PUSH2 0x1058 PUSH2 0x2C79 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1074 SWAP2 SWAP1 PUSH2 0x288D JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1084 JUMPI PUSH2 0x1084 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x10EE SWAP1 DUP5 ADD DUP3 PUSH2 0x2C9A JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1031 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x110E JUMPI PUSH2 0x110E PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD SWAP3 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x116B SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x11DC JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x11D8 SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1311 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1230 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x125F SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x12F8 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x1347 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1373 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x14B6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x13A6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x13E3 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1412 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x14A0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x14F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2E13 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2E6C JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1560 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2ED6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x15FA JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1577 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x15A3 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x15F0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15C5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x15F0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x15D3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x15FC JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x164D DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0x9F9 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2F2C JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x16A4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2A91 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x16D7 SWAP2 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x175D JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP1 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1735 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x173A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2F7B JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x176B DUP8 PUSH2 0x1D19 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1792 SWAP1 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x17CF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x17D4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1814 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x0 CALLER DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x182B SWAP3 SWAP2 SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18CB SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FD9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x1942 DUP3 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1969 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x199A DUP6 PUSH2 0x1D19 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x19E7 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x19DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x3077 JUMP JUMPDEST PUSH2 0x19E4 DUP3 DUP3 PUSH2 0x288D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1A08 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x288D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A25 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x3087 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A31 DUP2 DUP4 PUSH2 0x288D JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1A54 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1A5E SWAP2 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1AA1 SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x1AAB SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x1AB5 SWAP2 SWAP1 PUSH2 0x30FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1ACA DUP2 DUP12 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1AD4 SWAP1 DUP4 PUSH2 0x288D JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1AF6 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x867 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1B07 DUP5 DUP7 PUSH2 0x288D JUMP JUMPDEST PUSH2 0x1B11 SWAP2 SWAP1 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1B1B SWAP2 SWAP1 PUSH2 0x30BC JUMP JUMPDEST SWAP1 POP PUSH2 0x867 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1B45 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x752 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1B70 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1B80 JUMPI PUSH2 0x1B80 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1BD9 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C05 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1C52 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1C27 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1C52 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1C35 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3117 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x1CDE JUMPI PUSH2 0x1CDE PUSH2 0x3164 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x1D0F PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x1DCD JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x1D30 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x1D4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x1D71 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x1D8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x31DF JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x1DAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x3211 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x1DC6 JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x1DD9 SWAP1 PUSH2 0x284B JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1DE9 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1E17 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1E03 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1E31 DUP3 DUP6 PUSH2 0x1E1B JUMP JUMPDEST PUSH2 0x867 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x1E3E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x1E4F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC15 JUMP JUMPDEST PUSH2 0x1E44 DUP2 PUSH2 0x1E7B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EB5 JUMPI PUSH2 0x1EB5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1EEE JUMPI PUSH2 0x1EEE PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F08 JUMPI PUSH2 0x1F08 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1F23 JUMPI PUSH2 0x1F23 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1F42 JUMPI PUSH2 0x1F42 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F4E DUP7 DUP7 PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F6D JUMPI PUSH2 0x1F6D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F79 DUP7 DUP3 DUP8 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1F85 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1FD6 JUMPI PUSH2 0x1FD6 PUSH2 0x1F9B JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE8 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1FF4 DUP3 DUP3 PUSH2 0x1FB1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2012 JUMPI PUSH2 0x2012 PUSH2 0x1F9B JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2042 PUSH2 0x203D DUP5 PUSH2 0x1FF9 JUMP JUMPDEST PUSH2 0x1FDD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x205D JUMPI PUSH2 0x205D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2068 DUP5 DUP3 DUP6 PUSH2 0x2023 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2084 JUMPI PUSH2 0x2084 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x192E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x202F JUMP JUMPDEST DUP1 PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x2094 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x20BD JUMPI PUSH2 0x20BD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x20C9 DUP7 DUP7 PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x20E8 JUMPI PUSH2 0x20E8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x20F4 DUP7 DUP3 DUP8 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2105 DUP7 DUP3 DUP8 ADD PUSH2 0x209A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1E1D DUP2 PUSH2 0x1E7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2142 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x212A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2155 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x216C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x218D DUP3 DUP7 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x219A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x21AC DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21D7 DUP6 DUP6 PUSH2 0x209A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x209A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x867 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x2203 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x221D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2252 JUMPI PUSH2 0x2252 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x225E DUP9 DUP9 PUSH2 0x2212 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x226F DUP9 DUP3 DUP10 ADD PUSH2 0x2212 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2280 DUP9 DUP3 DUP10 ADD PUSH2 0x2212 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2291 DUP9 DUP3 DUP10 ADD PUSH2 0x222C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x22A2 DUP9 DUP3 DUP10 ADD PUSH2 0x222C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x22AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x22DD JUMPI PUSH2 0x22DD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22E9 DUP9 DUP9 PUSH2 0x1E4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x22FA DUP9 DUP3 DUP10 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2319 JUMPI PUSH2 0x2319 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2325 DUP9 DUP3 DUP10 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2336 DUP9 DUP3 DUP10 ADD PUSH2 0x22B7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2355 JUMPI PUSH2 0x2355 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A2 DUP9 DUP3 DUP10 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x210F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2385 JUMPI PUSH2 0x2385 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2391 DUP6 DUP6 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23B0 JUMPI PUSH2 0x23B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x23CA DUP3 DUP7 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x23D7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x192E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23FA JUMPI PUSH2 0x23FA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2406 DUP6 DUP6 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x1E95 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x2118 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x2450 DUP3 DUP9 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x245D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x246A PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x2477 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x2484 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2118 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x24A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B5 DUP9 DUP9 PUSH2 0x1E4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D4 JUMPI PUSH2 0x24D4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E0 DUP9 DUP3 DUP10 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2501 JUMPI PUSH2 0x2501 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x250D DUP9 DUP3 DUP10 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2531 JUMPI PUSH2 0x2531 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x209A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2553 JUMPI PUSH2 0x2553 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2406 DUP6 DUP6 PUSH2 0x1E95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x257E JUMPI PUSH2 0x257E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x258A DUP12 DUP12 PUSH2 0x1E4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25A9 JUMPI PUSH2 0x25A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B5 DUP12 DUP3 DUP13 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 PUSH2 0x25C8 DUP12 DUP3 DUP13 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x25D9 DUP12 DUP3 DUP13 ADD PUSH2 0x222C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x25EA DUP12 DUP3 DUP13 ADD PUSH2 0x209A JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2609 JUMPI PUSH2 0x2609 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2615 DUP12 DUP3 DUP13 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2645 JUMPI PUSH2 0x2645 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2651 DUP11 DUP11 PUSH2 0x1E4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2670 JUMPI PUSH2 0x2670 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x267C DUP11 DUP3 DUP12 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A7 DUP11 DUP3 DUP12 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 PUSH2 0x26BA DUP11 DUP3 DUP12 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x26CB DUP11 DUP3 DUP12 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26EA JUMPI PUSH2 0x26EA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26F6 DUP11 DUP3 DUP12 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x271E JUMPI PUSH2 0x271E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x272A DUP8 DUP8 PUSH2 0x1E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x273B DUP8 DUP3 DUP9 ADD PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x274C DUP8 DUP3 DUP9 ADD PUSH2 0x209A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x276B JUMPI PUSH2 0x276B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2777 DUP8 DUP3 DUP9 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x279C JUMPI PUSH2 0x279C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x27A8 DUP8 DUP8 PUSH2 0x1E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27B9 DUP8 DUP3 DUP9 ADD PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x27CA DUP8 DUP3 DUP9 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2777 DUP8 DUP3 DUP9 ADD PUSH2 0x209A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27F0 JUMPI PUSH2 0x27F0 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2809 JUMPI PUSH2 0x2809 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x192E DUP5 DUP3 DUP6 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2822 DUP4 DUP6 DUP5 PUSH2 0x2023 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP3 DUP5 DUP7 PUSH2 0x2815 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x285F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2871 JUMPI PUSH2 0x2871 PUSH2 0x2835 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0x2877 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x28A0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x28E5 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x293F DUP4 DUP6 DUP5 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x2175 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x295A DUP3 DUP7 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x21AC DUP2 DUP5 DUP7 PUSH2 0x2929 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x296D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x29BF DUP3 DUP10 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x29D2 DUP2 DUP8 DUP10 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x29E1 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x29F4 DUP2 DUP5 DUP7 PUSH2 0x2929 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2A0E DUP3 DUP9 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2A21 DUP2 DUP7 DUP9 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x2A30 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x2484 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x210F JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 DUP2 MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFE NOT DUP3 ADD PUSH2 0x2AB4 JUMPI PUSH2 0x2AB4 PUSH2 0x2877 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 PUSH2 0x2B0B DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2B17 DUP4 PUSH2 0x2AFF JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B3F DUP2 DUP5 DUP5 PUSH2 0x2B0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1942 JUMPI PUSH2 0x2B57 PUSH1 0x0 DUP3 PUSH2 0x2B32 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2B44 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2B86 JUMPI POP DUP1 JUMPDEST PUSH2 0x2B98 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2B44 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BB8 JUMPI PUSH2 0x2BB8 PUSH2 0x1F9B JUMP JUMPDEST PUSH2 0x2BC2 DUP3 SLOAD PUSH2 0x284B JUMP JUMPDEST PUSH2 0x2BCD DUP3 DUP3 DUP6 PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C02 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2BE9 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR JUMPDEST DUP7 SSTORE POP PUSH2 0x2C5E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C32 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2C12 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2C51 JUMPI DUP9 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP11 AND MUL SHR NOT DUP2 AND JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0x2877 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SLOAD PUSH2 0xC15 DUP2 PUSH2 0x284B JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x2CA5 JUMPI POP POP JUMP JUMPDEST PUSH2 0x2CAE DUP3 PUSH2 0x2C8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CC5 JUMPI PUSH2 0x2CC5 PUSH2 0x1F9B JUMP JUMPDEST PUSH2 0x2CCF DUP3 SLOAD PUSH2 0x284B JUMP JUMPDEST PUSH2 0x2CDA DUP3 DUP3 DUP6 PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2BE9 JUMPI POP DUP2 DUP7 ADD SLOAD PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR PUSH2 0x2BFA JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x20 DUP1 DUP8 KECCAK256 DUP7 DUP9 MSTORE SWAP1 DUP8 KECCAK256 SWAP1 SWAP7 PUSH1 0x1F NOT DUP7 AND SWAP2 SWAP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2D44 JUMPI DUP9 DUP6 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2D24 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2C51 JUMPI DUP9 DUP6 ADD SLOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP11 AND MUL SHR NOT DUP2 AND PUSH2 0x2C4D JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2D71 DUP3 DUP12 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2D84 DUP2 DUP10 DUP12 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D93 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x2DA0 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2DB3 DUP2 DUP6 DUP8 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x2DC7 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 DUP2 MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2DD5 JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 DUP2 MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2E23 JUMP JUMPDEST PUSH1 0x37 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 DUP2 MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 DUP2 MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2EE6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH2 0x2B0B JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH2 0x2F8B JUMP JUMPDEST PUSH2 0x1E1D PUSH2 0x2FAE DUP3 PUSH2 0x1E7B JUMP JUMPDEST PUSH2 0x2F97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBF DUP3 DUP6 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x2FCF DUP3 DUP5 PUSH2 0x2FA2 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2FE7 DUP3 DUP10 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2FF9 DUP2 DUP9 PUSH2 0x214B JUMP JUMPDEST SWAP1 POP PUSH2 0x3008 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x3015 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x3022 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x1E1B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x29F4 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 DUP2 MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x3034 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x2877 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 JUMPDEST SWAP3 POP DUP3 PUSH2 0x30CF JUMPI PUSH2 0x30CF PUSH2 0x30A6 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 MUL SWAP1 DUP2 AND SWAP1 DUP2 DUP2 EQ PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x2877 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND PUSH2 0x30C0 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3125 DUP3 DUP9 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3138 DUP2 DUP7 DUP9 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x3147 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3159 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x317A JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x31B6 JUMP JUMPDEST PUSH1 0xB DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x31EF JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xA9 0xB0 MOD DUP1 0xB4 LOG1 DUP4 PUSH16 0x2C8657E12B713DF7E33656C6C5BB08C MCOPY ADDRESS 0xC8 PUSH16 0x54B8364736F6C634300081900330000 ","sourceMap":"812:15736:8:-:0;;;1945:38;;;-1:-1:-1;;1989:41:8;;;;;3374:530;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3413:11;:22;;-1:-1:-1;;3413:22:8;;;;;;;3488:222;;;;;;;;3534:4;3488:222;;;;;;;;;;;3642:4;3488:222;;;;3669:3;3488:222;;;;;;;;;;;;3469:241;:16;:241;;;;3740:49;;;;;;;;3767:4;3740:49;;;3783:4;3740:49;;;;;;;3720:17;:69;;;;;;3821:4;3809:9;:16;3858:39;3890:6;3858:31;:39::i;:::-;3835:20;;:62;;:20;:62;:::i;:::-;;3374:530;812:15736;;918:238:7;989:12;1138:1;1142:6;1114:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1107:42;;918:238;;;:::o;429:120:65:-;410:6;399:18;;494:5;491:34;481:62;;539:1;536;529:12;481:62;429:120;:::o;555:141::-;636:13;;658:32;636:13;658:32;:::i;:::-;555:141;;;;:::o;702:349::-;771:6;820:2;808:9;799:7;795:23;791:32;788:119;;;826:79;197:1;194;187:12;826:79;946:1;971:63;1026:7;1006:9;971:63;:::i;:::-;961:73;702:349;-1:-1:-1;;;;702:349:65:o;1161:180::-;-1:-1:-1;;;1206:1:65;1199:88;1306:4;1303:1;1296:15;1330:4;1327:1;1320:15;1347:180;-1:-1:-1;;;1392:1:65;1385:88;1492:4;1489:1;1482:15;1516:4;1513:1;1506:15;1533:320;1614:1;1604:12;;1661:1;1651:12;;;1672:81;;1738:4;1730:6;1726:17;1716:27;;1672:81;1800:2;1792:6;1789:14;1769:18;1766:38;1763:84;;1819:18;;:::i;:::-;1584:269;1533:320;;;:::o;2765:142::-;2815:9;2848:53;2866:34;2893:5;2866:34;2616:77;2875:24;2682:5;2616:77;2994:269;3104:39;3135:7;3104:39;:::i;:::-;3193:11;;-1:-1:-1;;2336:1:65;2320:18;;;;2188:16;;;2545:9;2534:21;2188:16;;2574:30;;;;3152:105;;-1:-1:-1;2994:269:65:o;3348:189::-;3314:3;3466:65;3524:6;3516;3510:4;3466:65;:::i;:::-;3401:136;3348:189;;:::o;3543:186::-;3620:3;3613:5;3610:14;3603:120;;;3674:39;3711:1;3704:5;3674:39;:::i;:::-;3647:1;3636:13;3603:120;;;3543:186;;:::o;3735:541::-;3835:2;3830:3;3827:11;3824:445;;;1907:4;1943:14;;;1987:4;1974:18;;2089:2;2084;2073:14;;2069:23;3942:8;3938:44;4135:2;4123:10;4120:18;4117:49;;;-1:-1:-1;4156:8:65;4117:49;4179:80;2089:2;2084;2073:14;;2069:23;4225:8;4221:37;4208:11;4179:80;:::i;:::-;3839:430;;3735:541;;;:::o;4879:1390::-;1136:12;;-1:-1:-1;;;;;5087:6:65;5084:30;5081:56;;;5117:18;;:::i;:::-;5161:38;5193:4;5187:11;5161:38;:::i;:::-;5246:66;5305:6;5297;5291:4;5246:66;:::i;:::-;5363:4;5395:2;5384:14;;5412:1;5407:617;;;;6068:1;6085:6;6082:77;;;-1:-1:-1;6125:19:65;;;6119:26;6082:77;-1:-1:-1;;4515:1:65;4511:13;;4376:16;4478:56;4553:15;;4860:1;4856:11;;4847:21;6179:4;6172:81;6041:222;5377:886;;5407:617;1907:4;1943:14;;;1987:4;1974:18;;-1:-1:-1;;5443:22:65;;;5565:208;5579:7;5576:1;5573:14;5565:208;;;5649:19;;;5643:26;5628:42;;5756:2;5741:18;;;;5709:1;5697:14;;;;5595:12;5565:208;;;5801:6;5792:7;5789:19;5786:179;;;5850:19;;;5844:26;-1:-1:-1;;5944:4:65;5932:17;;4515:1;4511:13;4376:16;4478:56;4553:15;5887:64;;5786:179;6011:1;6007;5999:6;5995:14;5991:22;5985:4;5978:36;5414:610;;;5377:886;;4969:1300;;;4879:1390;;:::o;6377:94::-;6415:7;6444:21;6459:5;6353:3;6349:15;;6275:96;6477:153;6580:43;410:6;399:18;;6580:43;:::i;:::-;6575:3;6568:56;6477:153;;:::o;6721:157::-;6864:5;6826:45;2616:77;6884:392;7022:3;7037:73;7106:3;7097:6;7037:73;:::i;:::-;7135:1;7130:3;7126:11;7119:18;;7147:75;7218:3;7209:6;7147:75;:::i;:::-;-1:-1:-1;7247:2:65;7238:12;;6884:392;-1:-1:-1;;6884:392:65:o;:::-;812:15736:8;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_clearMsgQue_2818":{"entryPoint":6946,"id":2818,"parameterSlots":3,"returnSlots":0},"@_getProtocolFees_2848":{"entryPoint":6885,"id":2848,"parameterSlots":3,"returnSlots":1},"@_getRelayerFee_2944":{"entryPoint":6539,"id":2944,"parameterSlots":5,"returnSlots":1},"@blockNextMsg_2667":{"entryPoint":null,"id":2667,"parameterSlots":0,"returnSlots":0},"@decodeAdapterParams_1588":{"entryPoint":7449,"id":1588,"parameterSlots":1,"returnSlots":4},"@defaultAdapterParams_1659":{"entryPoint":2411,"id":1659,"parameterSlots":0,"returnSlots":0},"@estimateFees_2316":{"entryPoint":2553,"id":2316,"parameterSlots":5,"returnSlots":2},"@forceResumeReceive_2642":{"entryPoint":2808,"id":2642,"parameterSlots":3,"returnSlots":0},"@getChainId_2325":{"entryPoint":null,"id":2325,"parameterSlots":0,"returnSlots":1},"@getConfig_2521":{"entryPoint":6430,"id":2521,"parameterSlots":4,"returnSlots":1},"@getInboundNonce_2234":{"entryPoint":6470,"id":2234,"parameterSlots":3,"returnSlots":1},"@getLengthOfQueue_2659":{"entryPoint":3099,"id":2659,"parameterSlots":3,"returnSlots":1},"@getOutboundNonce_2251":{"entryPoint":3043,"id":2251,"parameterSlots":2,"returnSlots":1},"@getReceiveLibraryAddress_2482":{"entryPoint":null,"id":2482,"parameterSlots":1,"returnSlots":1},"@getReceiveVersion_2543":{"entryPoint":null,"id":2543,"parameterSlots":1,"returnSlots":1},"@getSendLibraryAddress_2468":{"entryPoint":null,"id":2468,"parameterSlots":1,"returnSlots":1},"@getSendVersion_2532":{"entryPoint":null,"id":2532,"parameterSlots":1,"returnSlots":1},"@hasStoredPayload_2454":{"entryPoint":2088,"id":2454,"parameterSlots":3,"returnSlots":1},"@inboundNonce_1665":{"entryPoint":null,"id":1665,"parameterSlots":0,"returnSlots":0},"@isReceivingPayload_2504":{"entryPoint":null,"id":2504,"parameterSlots":0,"returnSlots":1},"@isSendingPayload_2493":{"entryPoint":null,"id":2493,"parameterSlots":0,"returnSlots":1},"@lzEndpointLookup_1645":{"entryPoint":null,"id":1645,"parameterSlots":0,"returnSlots":0},"@mockChainId_1647":{"entryPoint":null,"id":1647,"parameterSlots":0,"returnSlots":0},"@msgsToDeliver_1686":{"entryPoint":2158,"id":1686,"parameterSlots":0,"returnSlots":0},"@nextMsgBlocked_1649":{"entryPoint":null,"id":1649,"parameterSlots":0,"returnSlots":0},"@oracleFee_1657":{"entryPoint":null,"id":1657,"parameterSlots":0,"returnSlots":0},"@outboundNonce_1671":{"entryPoint":null,"id":1671,"parameterSlots":0,"returnSlots":0},"@protocolFeeConfig_1655":{"entryPoint":null,"id":1655,"parameterSlots":0,"returnSlots":0},"@receivePayload_2217":{"entryPoint":3597,"id":2217,"parameterSlots":8,"returnSlots":0},"@relayerFeeConfig_1652":{"entryPoint":null,"id":1652,"parameterSlots":0,"returnSlots":0},"@retryPayload_2426":{"entryPoint":3159,"id":2426,"parameterSlots":5,"returnSlots":0},"@send_2010":{"entryPoint":5328,"id":2010,"parameterSlots":7,"returnSlots":0},"@setConfig_2556":{"entryPoint":null,"id":2556,"parameterSlots":4,"returnSlots":0},"@setDefaultAdapterParams_2765":{"entryPoint":6454,"id":2765,"parameterSlots":1,"returnSlots":0},"@setDestLzEndpoint_2681":{"entryPoint":null,"id":2681,"parameterSlots":2,"returnSlots":0},"@setOracleFee_2755":{"entryPoint":null,"id":2755,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_2745":{"entryPoint":null,"id":2745,"parameterSlots":2,"returnSlots":0},"@setReceiveVersion_2570":{"entryPoint":null,"id":2570,"parameterSlots":1,"returnSlots":0},"@setRelayerPrice_2725":{"entryPoint":null,"id":2725,"parameterSlots":5,"returnSlots":0},"@setSendVersion_2563":{"entryPoint":null,"id":2563,"parameterSlots":1,"returnSlots":0},"@storedPayload_1678":{"entryPoint":null,"id":1678,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":8239,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":7829,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":8887,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":7897,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":8304,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint128":{"entryPoint":8722,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16":{"entryPoint":7759,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":8346,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":8748,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":9533,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr":{"entryPoint":10203,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64":{"entryPoint":8759,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16":{"entryPoint":7770,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_address":{"entryPoint":9188,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr":{"entryPoint":8898,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":7978,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr":{"entryPoint":9567,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":9358,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_bytes_memory_ptr":{"entryPoint":9071,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr":{"entryPoint":9767,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256":{"entryPoint":8357,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":10115,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr":{"entryPoint":9989,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256":{"entryPoint":9500,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":8629,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":8463,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":12194,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":8069,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":10537,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":10261,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":8523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df_to_t_string_memory_ptr_fromStack":{"entryPoint":11900,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811_to_t_string_memory_ptr_fromStack":{"entryPoint":12666,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a_to_t_string_memory_ptr_fromStack":{"entryPoint":12006,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b_to_t_string_memory_ptr_fromStack":{"entryPoint":10469,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83_to_t_string_memory_ptr_fromStack":{"entryPoint":12726,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db_to_t_string_memory_ptr_fromStack":{"entryPoint":10400,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe_to_t_string_memory_ptr_fromStack":{"entryPoint":10605,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb_to_t_string_memory_ptr_fromStack":{"entryPoint":11733,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab_to_t_string_memory_ptr_fromStack":{"entryPoint":10813,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b_to_t_string_memory_ptr_fromStack":{"entryPoint":12783,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206_to_t_string_memory_ptr_fromStack":{"entryPoint":12340,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b_to_t_string_memory_ptr_fromStack":{"entryPoint":11811,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac_to_t_string_memory_ptr_fromStack":{"entryPoint":10939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790_to_t_string_memory_ptr_fromStack":{"entryPoint":12103,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint128_to_t_uint128_fromStack":{"entryPoint":9267,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":7873,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":7707,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":8472,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":12211,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10280,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12092,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":9057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8575,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":8077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11990,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12710,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12076,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10521,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12767,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10453,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10657,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11795,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10881,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12407,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11884,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10991,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":12155,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed":{"entryPoint":9282,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":7883,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10572,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11619,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed":{"entryPoint":10752,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10673,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12567,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12249,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":9253,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7715,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":9239,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed":{"entryPoint":9148,"id":null,"parameterSlots":4,"returnSlots":1},"allocate_memory":{"entryPoint":8157,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":8185,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_storage":{"entryPoint":11407,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10381,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint128":{"entryPoint":12538,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":12476,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint128":{"entryPoint":12500,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":12423,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11366,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":11103,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":7803,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":11076,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":11007,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":11167,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage":{"entryPoint":11418,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":8227,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":8487,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":10315,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":8113,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint64":{"entryPoint":10897,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":12183,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":12171,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":10359,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":12454,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":10293,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":12644,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11385,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8091,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":11058,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":11022,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":7820,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":8879,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint128":{"entryPoint":8707,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":7742,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8340,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":8733,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:55079:65","nodeType":"YulBlock","src":"0:55079:65","statements":[{"body":{"nativeSrc":"52:32:65","nodeType":"YulBlock","src":"52:32:65","statements":[{"nativeSrc":"62:16:65","nodeType":"YulAssignment","src":"62:16:65","value":{"name":"value","nativeSrc":"73:5:65","nodeType":"YulIdentifier","src":"73:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:65","nodeType":"YulIdentifier","src":"62:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:65","nodeType":"YulTypedName","src":"34:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:65","nodeType":"YulTypedName","src":"44:7:65","type":""}],"src":"7:77:65"},{"body":{"nativeSrc":"155:53:65","nodeType":"YulBlock","src":"155:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:65","nodeType":"YulIdentifier","src":"172:3:65"},{"arguments":[{"name":"value","nativeSrc":"195:5:65","nodeType":"YulIdentifier","src":"195:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:65","nodeType":"YulIdentifier","src":"177:17:65"},"nativeSrc":"177:24:65","nodeType":"YulFunctionCall","src":"177:24:65"}],"functionName":{"name":"mstore","nativeSrc":"165:6:65","nodeType":"YulIdentifier","src":"165:6:65"},"nativeSrc":"165:37:65","nodeType":"YulFunctionCall","src":"165:37:65"},"nativeSrc":"165:37:65","nodeType":"YulExpressionStatement","src":"165:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:65","nodeType":"YulTypedName","src":"143:5:65","type":""},{"name":"pos","nativeSrc":"150:3:65","nodeType":"YulTypedName","src":"150:3:65","type":""}],"src":"90:118:65"},{"body":{"nativeSrc":"340:206:65","nodeType":"YulBlock","src":"340:206:65","statements":[{"nativeSrc":"350:26:65","nodeType":"YulAssignment","src":"350:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"362:9:65","nodeType":"YulIdentifier","src":"362:9:65"},{"kind":"number","nativeSrc":"373:2:65","nodeType":"YulLiteral","src":"373:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"358:3:65","nodeType":"YulIdentifier","src":"358:3:65"},"nativeSrc":"358:18:65","nodeType":"YulFunctionCall","src":"358:18:65"},"variableNames":[{"name":"tail","nativeSrc":"350:4:65","nodeType":"YulIdentifier","src":"350:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"430:6:65","nodeType":"YulIdentifier","src":"430:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"443:9:65","nodeType":"YulIdentifier","src":"443:9:65"},{"kind":"number","nativeSrc":"454:1:65","nodeType":"YulLiteral","src":"454:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"439:3:65","nodeType":"YulIdentifier","src":"439:3:65"},"nativeSrc":"439:17:65","nodeType":"YulFunctionCall","src":"439:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"386:43:65","nodeType":"YulIdentifier","src":"386:43:65"},"nativeSrc":"386:71:65","nodeType":"YulFunctionCall","src":"386:71:65"},"nativeSrc":"386:71:65","nodeType":"YulExpressionStatement","src":"386:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"511:6:65","nodeType":"YulIdentifier","src":"511:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"524:9:65","nodeType":"YulIdentifier","src":"524:9:65"},{"kind":"number","nativeSrc":"535:2:65","nodeType":"YulLiteral","src":"535:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"520:3:65","nodeType":"YulIdentifier","src":"520:3:65"},"nativeSrc":"520:18:65","nodeType":"YulFunctionCall","src":"520:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"467:43:65","nodeType":"YulIdentifier","src":"467:43:65"},"nativeSrc":"467:72:65","nodeType":"YulFunctionCall","src":"467:72:65"},"nativeSrc":"467:72:65","nodeType":"YulExpressionStatement","src":"467:72:65"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"214:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"304:9:65","nodeType":"YulTypedName","src":"304:9:65","type":""},{"name":"value1","nativeSrc":"316:6:65","nodeType":"YulTypedName","src":"316:6:65","type":""},{"name":"value0","nativeSrc":"324:6:65","nodeType":"YulTypedName","src":"324:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"335:4:65","nodeType":"YulTypedName","src":"335:4:65","type":""}],"src":"214:332:65"},{"body":{"nativeSrc":"592:35:65","nodeType":"YulBlock","src":"592:35:65","statements":[{"nativeSrc":"602:19:65","nodeType":"YulAssignment","src":"602:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"618:2:65","nodeType":"YulLiteral","src":"618:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"612:5:65","nodeType":"YulIdentifier","src":"612:5:65"},"nativeSrc":"612:9:65","nodeType":"YulFunctionCall","src":"612:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"602:6:65","nodeType":"YulIdentifier","src":"602:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"552:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"585:6:65","nodeType":"YulTypedName","src":"585:6:65","type":""}],"src":"552:75:65"},{"body":{"nativeSrc":"722:28:65","nodeType":"YulBlock","src":"722:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"739:1:65","nodeType":"YulLiteral","src":"739:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"742:1:65","nodeType":"YulLiteral","src":"742:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"732:6:65","nodeType":"YulIdentifier","src":"732:6:65"},"nativeSrc":"732:12:65","nodeType":"YulFunctionCall","src":"732:12:65"},"nativeSrc":"732:12:65","nodeType":"YulExpressionStatement","src":"732:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"633:117:65","nodeType":"YulFunctionDefinition","src":"633:117:65"},{"body":{"nativeSrc":"845:28:65","nodeType":"YulBlock","src":"845:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"862:1:65","nodeType":"YulLiteral","src":"862:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"865:1:65","nodeType":"YulLiteral","src":"865:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"855:6:65","nodeType":"YulIdentifier","src":"855:6:65"},"nativeSrc":"855:12:65","nodeType":"YulFunctionCall","src":"855:12:65"},"nativeSrc":"855:12:65","nodeType":"YulExpressionStatement","src":"855:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"756:117:65","nodeType":"YulFunctionDefinition","src":"756:117:65"},{"body":{"nativeSrc":"923:45:65","nodeType":"YulBlock","src":"923:45:65","statements":[{"nativeSrc":"933:29:65","nodeType":"YulAssignment","src":"933:29:65","value":{"arguments":[{"name":"value","nativeSrc":"948:5:65","nodeType":"YulIdentifier","src":"948:5:65"},{"kind":"number","nativeSrc":"955:6:65","nodeType":"YulLiteral","src":"955:6:65","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"944:3:65","nodeType":"YulIdentifier","src":"944:3:65"},"nativeSrc":"944:18:65","nodeType":"YulFunctionCall","src":"944:18:65"},"variableNames":[{"name":"cleaned","nativeSrc":"933:7:65","nodeType":"YulIdentifier","src":"933:7:65"}]}]},"name":"cleanup_t_uint16","nativeSrc":"879:89:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"905:5:65","nodeType":"YulTypedName","src":"905:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"915:7:65","nodeType":"YulTypedName","src":"915:7:65","type":""}],"src":"879:89:65"},{"body":{"nativeSrc":"1016:78:65","nodeType":"YulBlock","src":"1016:78:65","statements":[{"body":{"nativeSrc":"1072:16:65","nodeType":"YulBlock","src":"1072:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1081:1:65","nodeType":"YulLiteral","src":"1081:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1084:1:65","nodeType":"YulLiteral","src":"1084:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1074:6:65","nodeType":"YulIdentifier","src":"1074:6:65"},"nativeSrc":"1074:12:65","nodeType":"YulFunctionCall","src":"1074:12:65"},"nativeSrc":"1074:12:65","nodeType":"YulExpressionStatement","src":"1074:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1039:5:65","nodeType":"YulIdentifier","src":"1039:5:65"},{"arguments":[{"name":"value","nativeSrc":"1063:5:65","nodeType":"YulIdentifier","src":"1063:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"1046:16:65","nodeType":"YulIdentifier","src":"1046:16:65"},"nativeSrc":"1046:23:65","nodeType":"YulFunctionCall","src":"1046:23:65"}],"functionName":{"name":"eq","nativeSrc":"1036:2:65","nodeType":"YulIdentifier","src":"1036:2:65"},"nativeSrc":"1036:34:65","nodeType":"YulFunctionCall","src":"1036:34:65"}],"functionName":{"name":"iszero","nativeSrc":"1029:6:65","nodeType":"YulIdentifier","src":"1029:6:65"},"nativeSrc":"1029:42:65","nodeType":"YulFunctionCall","src":"1029:42:65"},"nativeSrc":"1026:62:65","nodeType":"YulIf","src":"1026:62:65"}]},"name":"validator_revert_t_uint16","nativeSrc":"974:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1009:5:65","nodeType":"YulTypedName","src":"1009:5:65","type":""}],"src":"974:120:65"},{"body":{"nativeSrc":"1151:86:65","nodeType":"YulBlock","src":"1151:86:65","statements":[{"nativeSrc":"1161:29:65","nodeType":"YulAssignment","src":"1161:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1183:6:65","nodeType":"YulIdentifier","src":"1183:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1170:12:65","nodeType":"YulIdentifier","src":"1170:12:65"},"nativeSrc":"1170:20:65","nodeType":"YulFunctionCall","src":"1170:20:65"},"variableNames":[{"name":"value","nativeSrc":"1161:5:65","nodeType":"YulIdentifier","src":"1161:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1225:5:65","nodeType":"YulIdentifier","src":"1225:5:65"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"1199:25:65","nodeType":"YulIdentifier","src":"1199:25:65"},"nativeSrc":"1199:32:65","nodeType":"YulFunctionCall","src":"1199:32:65"},"nativeSrc":"1199:32:65","nodeType":"YulExpressionStatement","src":"1199:32:65"}]},"name":"abi_decode_t_uint16","nativeSrc":"1100:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1129:6:65","nodeType":"YulTypedName","src":"1129:6:65","type":""},{"name":"end","nativeSrc":"1137:3:65","nodeType":"YulTypedName","src":"1137:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1145:5:65","nodeType":"YulTypedName","src":"1145:5:65","type":""}],"src":"1100:137:65"},{"body":{"nativeSrc":"1308:262:65","nodeType":"YulBlock","src":"1308:262:65","statements":[{"body":{"nativeSrc":"1354:83:65","nodeType":"YulBlock","src":"1354:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1356:77:65","nodeType":"YulIdentifier","src":"1356:77:65"},"nativeSrc":"1356:79:65","nodeType":"YulFunctionCall","src":"1356:79:65"},"nativeSrc":"1356:79:65","nodeType":"YulExpressionStatement","src":"1356:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1329:7:65","nodeType":"YulIdentifier","src":"1329:7:65"},{"name":"headStart","nativeSrc":"1338:9:65","nodeType":"YulIdentifier","src":"1338:9:65"}],"functionName":{"name":"sub","nativeSrc":"1325:3:65","nodeType":"YulIdentifier","src":"1325:3:65"},"nativeSrc":"1325:23:65","nodeType":"YulFunctionCall","src":"1325:23:65"},{"kind":"number","nativeSrc":"1350:2:65","nodeType":"YulLiteral","src":"1350:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1321:3:65","nodeType":"YulIdentifier","src":"1321:3:65"},"nativeSrc":"1321:32:65","nodeType":"YulFunctionCall","src":"1321:32:65"},"nativeSrc":"1318:119:65","nodeType":"YulIf","src":"1318:119:65"},{"nativeSrc":"1447:116:65","nodeType":"YulBlock","src":"1447:116:65","statements":[{"nativeSrc":"1462:15:65","nodeType":"YulVariableDeclaration","src":"1462:15:65","value":{"kind":"number","nativeSrc":"1476:1:65","nodeType":"YulLiteral","src":"1476:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1466:6:65","nodeType":"YulTypedName","src":"1466:6:65","type":""}]},{"nativeSrc":"1491:62:65","nodeType":"YulAssignment","src":"1491:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1525:9:65","nodeType":"YulIdentifier","src":"1525:9:65"},{"name":"offset","nativeSrc":"1536:6:65","nodeType":"YulIdentifier","src":"1536:6:65"}],"functionName":{"name":"add","nativeSrc":"1521:3:65","nodeType":"YulIdentifier","src":"1521:3:65"},"nativeSrc":"1521:22:65","nodeType":"YulFunctionCall","src":"1521:22:65"},{"name":"dataEnd","nativeSrc":"1545:7:65","nodeType":"YulIdentifier","src":"1545:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"1501:19:65","nodeType":"YulIdentifier","src":"1501:19:65"},"nativeSrc":"1501:52:65","nodeType":"YulFunctionCall","src":"1501:52:65"},"variableNames":[{"name":"value0","nativeSrc":"1491:6:65","nodeType":"YulIdentifier","src":"1491:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"1243:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1278:9:65","nodeType":"YulTypedName","src":"1278:9:65","type":""},{"name":"dataEnd","nativeSrc":"1289:7:65","nodeType":"YulTypedName","src":"1289:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1301:6:65","nodeType":"YulTypedName","src":"1301:6:65","type":""}],"src":"1243:327:65"},{"body":{"nativeSrc":"1621:81:65","nodeType":"YulBlock","src":"1621:81:65","statements":[{"nativeSrc":"1631:65:65","nodeType":"YulAssignment","src":"1631:65:65","value":{"arguments":[{"name":"value","nativeSrc":"1646:5:65","nodeType":"YulIdentifier","src":"1646:5:65"},{"kind":"number","nativeSrc":"1653:42:65","nodeType":"YulLiteral","src":"1653:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1642:3:65","nodeType":"YulIdentifier","src":"1642:3:65"},"nativeSrc":"1642:54:65","nodeType":"YulFunctionCall","src":"1642:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1631:7:65","nodeType":"YulIdentifier","src":"1631:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1576:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1603:5:65","nodeType":"YulTypedName","src":"1603:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1613:7:65","nodeType":"YulTypedName","src":"1613:7:65","type":""}],"src":"1576:126:65"},{"body":{"nativeSrc":"1753:51:65","nodeType":"YulBlock","src":"1753:51:65","statements":[{"nativeSrc":"1763:35:65","nodeType":"YulAssignment","src":"1763:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1792:5:65","nodeType":"YulIdentifier","src":"1792:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1774:17:65","nodeType":"YulIdentifier","src":"1774:17:65"},"nativeSrc":"1774:24:65","nodeType":"YulFunctionCall","src":"1774:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1763:7:65","nodeType":"YulIdentifier","src":"1763:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1708:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1735:5:65","nodeType":"YulTypedName","src":"1735:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1745:7:65","nodeType":"YulTypedName","src":"1745:7:65","type":""}],"src":"1708:96:65"},{"body":{"nativeSrc":"1853:79:65","nodeType":"YulBlock","src":"1853:79:65","statements":[{"body":{"nativeSrc":"1910:16:65","nodeType":"YulBlock","src":"1910:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1919:1:65","nodeType":"YulLiteral","src":"1919:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1922:1:65","nodeType":"YulLiteral","src":"1922:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1912:6:65","nodeType":"YulIdentifier","src":"1912:6:65"},"nativeSrc":"1912:12:65","nodeType":"YulFunctionCall","src":"1912:12:65"},"nativeSrc":"1912:12:65","nodeType":"YulExpressionStatement","src":"1912:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1876:5:65","nodeType":"YulIdentifier","src":"1876:5:65"},{"arguments":[{"name":"value","nativeSrc":"1901:5:65","nodeType":"YulIdentifier","src":"1901:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1883:17:65","nodeType":"YulIdentifier","src":"1883:17:65"},"nativeSrc":"1883:24:65","nodeType":"YulFunctionCall","src":"1883:24:65"}],"functionName":{"name":"eq","nativeSrc":"1873:2:65","nodeType":"YulIdentifier","src":"1873:2:65"},"nativeSrc":"1873:35:65","nodeType":"YulFunctionCall","src":"1873:35:65"}],"functionName":{"name":"iszero","nativeSrc":"1866:6:65","nodeType":"YulIdentifier","src":"1866:6:65"},"nativeSrc":"1866:43:65","nodeType":"YulFunctionCall","src":"1866:43:65"},"nativeSrc":"1863:63:65","nodeType":"YulIf","src":"1863:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"1810:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1846:5:65","nodeType":"YulTypedName","src":"1846:5:65","type":""}],"src":"1810:122:65"},{"body":{"nativeSrc":"1990:87:65","nodeType":"YulBlock","src":"1990:87:65","statements":[{"nativeSrc":"2000:29:65","nodeType":"YulAssignment","src":"2000:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2022:6:65","nodeType":"YulIdentifier","src":"2022:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2009:12:65","nodeType":"YulIdentifier","src":"2009:12:65"},"nativeSrc":"2009:20:65","nodeType":"YulFunctionCall","src":"2009:20:65"},"variableNames":[{"name":"value","nativeSrc":"2000:5:65","nodeType":"YulIdentifier","src":"2000:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2065:5:65","nodeType":"YulIdentifier","src":"2065:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2038:26:65","nodeType":"YulIdentifier","src":"2038:26:65"},"nativeSrc":"2038:33:65","nodeType":"YulFunctionCall","src":"2038:33:65"},"nativeSrc":"2038:33:65","nodeType":"YulExpressionStatement","src":"2038:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"1938:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1968:6:65","nodeType":"YulTypedName","src":"1968:6:65","type":""},{"name":"end","nativeSrc":"1976:3:65","nodeType":"YulTypedName","src":"1976:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1984:5:65","nodeType":"YulTypedName","src":"1984:5:65","type":""}],"src":"1938:139:65"},{"body":{"nativeSrc":"2149:263:65","nodeType":"YulBlock","src":"2149:263:65","statements":[{"body":{"nativeSrc":"2195:83:65","nodeType":"YulBlock","src":"2195:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2197:77:65","nodeType":"YulIdentifier","src":"2197:77:65"},"nativeSrc":"2197:79:65","nodeType":"YulFunctionCall","src":"2197:79:65"},"nativeSrc":"2197:79:65","nodeType":"YulExpressionStatement","src":"2197:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2170:7:65","nodeType":"YulIdentifier","src":"2170:7:65"},{"name":"headStart","nativeSrc":"2179:9:65","nodeType":"YulIdentifier","src":"2179:9:65"}],"functionName":{"name":"sub","nativeSrc":"2166:3:65","nodeType":"YulIdentifier","src":"2166:3:65"},"nativeSrc":"2166:23:65","nodeType":"YulFunctionCall","src":"2166:23:65"},{"kind":"number","nativeSrc":"2191:2:65","nodeType":"YulLiteral","src":"2191:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2162:3:65","nodeType":"YulIdentifier","src":"2162:3:65"},"nativeSrc":"2162:32:65","nodeType":"YulFunctionCall","src":"2162:32:65"},"nativeSrc":"2159:119:65","nodeType":"YulIf","src":"2159:119:65"},{"nativeSrc":"2288:117:65","nodeType":"YulBlock","src":"2288:117:65","statements":[{"nativeSrc":"2303:15:65","nodeType":"YulVariableDeclaration","src":"2303:15:65","value":{"kind":"number","nativeSrc":"2317:1:65","nodeType":"YulLiteral","src":"2317:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2307:6:65","nodeType":"YulTypedName","src":"2307:6:65","type":""}]},{"nativeSrc":"2332:63:65","nodeType":"YulAssignment","src":"2332:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2367:9:65","nodeType":"YulIdentifier","src":"2367:9:65"},{"name":"offset","nativeSrc":"2378:6:65","nodeType":"YulIdentifier","src":"2378:6:65"}],"functionName":{"name":"add","nativeSrc":"2363:3:65","nodeType":"YulIdentifier","src":"2363:3:65"},"nativeSrc":"2363:22:65","nodeType":"YulFunctionCall","src":"2363:22:65"},{"name":"dataEnd","nativeSrc":"2387:7:65","nodeType":"YulIdentifier","src":"2387:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2342:20:65","nodeType":"YulIdentifier","src":"2342:20:65"},"nativeSrc":"2342:53:65","nodeType":"YulFunctionCall","src":"2342:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2332:6:65","nodeType":"YulIdentifier","src":"2332:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2083:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2119:9:65","nodeType":"YulTypedName","src":"2119:9:65","type":""},{"name":"dataEnd","nativeSrc":"2130:7:65","nodeType":"YulTypedName","src":"2130:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2142:6:65","nodeType":"YulTypedName","src":"2142:6:65","type":""}],"src":"2083:329:65"},{"body":{"nativeSrc":"2481:52:65","nodeType":"YulBlock","src":"2481:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2498:3:65","nodeType":"YulIdentifier","src":"2498:3:65"},{"arguments":[{"name":"value","nativeSrc":"2520:5:65","nodeType":"YulIdentifier","src":"2520:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"2503:16:65","nodeType":"YulIdentifier","src":"2503:16:65"},"nativeSrc":"2503:23:65","nodeType":"YulFunctionCall","src":"2503:23:65"}],"functionName":{"name":"mstore","nativeSrc":"2491:6:65","nodeType":"YulIdentifier","src":"2491:6:65"},"nativeSrc":"2491:36:65","nodeType":"YulFunctionCall","src":"2491:36:65"},"nativeSrc":"2491:36:65","nodeType":"YulExpressionStatement","src":"2491:36:65"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"2418:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2469:5:65","nodeType":"YulTypedName","src":"2469:5:65","type":""},{"name":"pos","nativeSrc":"2476:3:65","nodeType":"YulTypedName","src":"2476:3:65","type":""}],"src":"2418:115:65"},{"body":{"nativeSrc":"2635:122:65","nodeType":"YulBlock","src":"2635:122:65","statements":[{"nativeSrc":"2645:26:65","nodeType":"YulAssignment","src":"2645:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"2657:9:65","nodeType":"YulIdentifier","src":"2657:9:65"},{"kind":"number","nativeSrc":"2668:2:65","nodeType":"YulLiteral","src":"2668:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2653:3:65","nodeType":"YulIdentifier","src":"2653:3:65"},"nativeSrc":"2653:18:65","nodeType":"YulFunctionCall","src":"2653:18:65"},"variableNames":[{"name":"tail","nativeSrc":"2645:4:65","nodeType":"YulIdentifier","src":"2645:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2723:6:65","nodeType":"YulIdentifier","src":"2723:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"2736:9:65","nodeType":"YulIdentifier","src":"2736:9:65"},{"kind":"number","nativeSrc":"2747:1:65","nodeType":"YulLiteral","src":"2747:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2732:3:65","nodeType":"YulIdentifier","src":"2732:3:65"},"nativeSrc":"2732:17:65","nodeType":"YulFunctionCall","src":"2732:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"2681:41:65","nodeType":"YulIdentifier","src":"2681:41:65"},"nativeSrc":"2681:69:65","nodeType":"YulFunctionCall","src":"2681:69:65"},"nativeSrc":"2681:69:65","nodeType":"YulExpressionStatement","src":"2681:69:65"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"2539:218:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2607:9:65","nodeType":"YulTypedName","src":"2607:9:65","type":""},{"name":"value0","nativeSrc":"2619:6:65","nodeType":"YulTypedName","src":"2619:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2630:4:65","nodeType":"YulTypedName","src":"2630:4:65","type":""}],"src":"2539:218:65"},{"body":{"nativeSrc":"2852:28:65","nodeType":"YulBlock","src":"2852:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2869:1:65","nodeType":"YulLiteral","src":"2869:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2872:1:65","nodeType":"YulLiteral","src":"2872:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2862:6:65","nodeType":"YulIdentifier","src":"2862:6:65"},"nativeSrc":"2862:12:65","nodeType":"YulFunctionCall","src":"2862:12:65"},"nativeSrc":"2862:12:65","nodeType":"YulExpressionStatement","src":"2862:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2763:117:65","nodeType":"YulFunctionDefinition","src":"2763:117:65"},{"body":{"nativeSrc":"2975:28:65","nodeType":"YulBlock","src":"2975:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2992:1:65","nodeType":"YulLiteral","src":"2992:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2995:1:65","nodeType":"YulLiteral","src":"2995:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2985:6:65","nodeType":"YulIdentifier","src":"2985:6:65"},"nativeSrc":"2985:12:65","nodeType":"YulFunctionCall","src":"2985:12:65"},"nativeSrc":"2985:12:65","nodeType":"YulExpressionStatement","src":"2985:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2886:117:65","nodeType":"YulFunctionDefinition","src":"2886:117:65"},{"body":{"nativeSrc":"3098:28:65","nodeType":"YulBlock","src":"3098:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3115:1:65","nodeType":"YulLiteral","src":"3115:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3118:1:65","nodeType":"YulLiteral","src":"3118:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3108:6:65","nodeType":"YulIdentifier","src":"3108:6:65"},"nativeSrc":"3108:12:65","nodeType":"YulFunctionCall","src":"3108:12:65"},"nativeSrc":"3108:12:65","nodeType":"YulExpressionStatement","src":"3108:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3009:117:65","nodeType":"YulFunctionDefinition","src":"3009:117:65"},{"body":{"nativeSrc":"3219:478:65","nodeType":"YulBlock","src":"3219:478:65","statements":[{"body":{"nativeSrc":"3268:83:65","nodeType":"YulBlock","src":"3268:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3270:77:65","nodeType":"YulIdentifier","src":"3270:77:65"},"nativeSrc":"3270:79:65","nodeType":"YulFunctionCall","src":"3270:79:65"},"nativeSrc":"3270:79:65","nodeType":"YulExpressionStatement","src":"3270:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3247:6:65","nodeType":"YulIdentifier","src":"3247:6:65"},{"kind":"number","nativeSrc":"3255:4:65","nodeType":"YulLiteral","src":"3255:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3243:3:65","nodeType":"YulIdentifier","src":"3243:3:65"},"nativeSrc":"3243:17:65","nodeType":"YulFunctionCall","src":"3243:17:65"},{"name":"end","nativeSrc":"3262:3:65","nodeType":"YulIdentifier","src":"3262:3:65"}],"functionName":{"name":"slt","nativeSrc":"3239:3:65","nodeType":"YulIdentifier","src":"3239:3:65"},"nativeSrc":"3239:27:65","nodeType":"YulFunctionCall","src":"3239:27:65"}],"functionName":{"name":"iszero","nativeSrc":"3232:6:65","nodeType":"YulIdentifier","src":"3232:6:65"},"nativeSrc":"3232:35:65","nodeType":"YulFunctionCall","src":"3232:35:65"},"nativeSrc":"3229:122:65","nodeType":"YulIf","src":"3229:122:65"},{"nativeSrc":"3360:30:65","nodeType":"YulAssignment","src":"3360:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"3383:6:65","nodeType":"YulIdentifier","src":"3383:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3370:12:65","nodeType":"YulIdentifier","src":"3370:12:65"},"nativeSrc":"3370:20:65","nodeType":"YulFunctionCall","src":"3370:20:65"},"variableNames":[{"name":"length","nativeSrc":"3360:6:65","nodeType":"YulIdentifier","src":"3360:6:65"}]},{"body":{"nativeSrc":"3433:83:65","nodeType":"YulBlock","src":"3433:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3435:77:65","nodeType":"YulIdentifier","src":"3435:77:65"},"nativeSrc":"3435:79:65","nodeType":"YulFunctionCall","src":"3435:79:65"},"nativeSrc":"3435:79:65","nodeType":"YulExpressionStatement","src":"3435:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3405:6:65","nodeType":"YulIdentifier","src":"3405:6:65"},{"kind":"number","nativeSrc":"3413:18:65","nodeType":"YulLiteral","src":"3413:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3402:2:65","nodeType":"YulIdentifier","src":"3402:2:65"},"nativeSrc":"3402:30:65","nodeType":"YulFunctionCall","src":"3402:30:65"},"nativeSrc":"3399:117:65","nodeType":"YulIf","src":"3399:117:65"},{"nativeSrc":"3525:29:65","nodeType":"YulAssignment","src":"3525:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3541:6:65","nodeType":"YulIdentifier","src":"3541:6:65"},{"kind":"number","nativeSrc":"3549:4:65","nodeType":"YulLiteral","src":"3549:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3537:3:65","nodeType":"YulIdentifier","src":"3537:3:65"},"nativeSrc":"3537:17:65","nodeType":"YulFunctionCall","src":"3537:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"3525:8:65","nodeType":"YulIdentifier","src":"3525:8:65"}]},{"body":{"nativeSrc":"3608:83:65","nodeType":"YulBlock","src":"3608:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3610:77:65","nodeType":"YulIdentifier","src":"3610:77:65"},"nativeSrc":"3610:79:65","nodeType":"YulFunctionCall","src":"3610:79:65"},"nativeSrc":"3610:79:65","nodeType":"YulExpressionStatement","src":"3610:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3573:8:65","nodeType":"YulIdentifier","src":"3573:8:65"},{"arguments":[{"name":"length","nativeSrc":"3587:6:65","nodeType":"YulIdentifier","src":"3587:6:65"},{"kind":"number","nativeSrc":"3595:4:65","nodeType":"YulLiteral","src":"3595:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3583:3:65","nodeType":"YulIdentifier","src":"3583:3:65"},"nativeSrc":"3583:17:65","nodeType":"YulFunctionCall","src":"3583:17:65"}],"functionName":{"name":"add","nativeSrc":"3569:3:65","nodeType":"YulIdentifier","src":"3569:3:65"},"nativeSrc":"3569:32:65","nodeType":"YulFunctionCall","src":"3569:32:65"},{"name":"end","nativeSrc":"3603:3:65","nodeType":"YulIdentifier","src":"3603:3:65"}],"functionName":{"name":"gt","nativeSrc":"3566:2:65","nodeType":"YulIdentifier","src":"3566:2:65"},"nativeSrc":"3566:41:65","nodeType":"YulFunctionCall","src":"3566:41:65"},"nativeSrc":"3563:128:65","nodeType":"YulIf","src":"3563:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3145:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3186:6:65","nodeType":"YulTypedName","src":"3186:6:65","type":""},{"name":"end","nativeSrc":"3194:3:65","nodeType":"YulTypedName","src":"3194:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3202:8:65","nodeType":"YulTypedName","src":"3202:8:65","type":""},{"name":"length","nativeSrc":"3212:6:65","nodeType":"YulTypedName","src":"3212:6:65","type":""}],"src":"3145:552:65"},{"body":{"nativeSrc":"3804:569:65","nodeType":"YulBlock","src":"3804:569:65","statements":[{"body":{"nativeSrc":"3850:83:65","nodeType":"YulBlock","src":"3850:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3852:77:65","nodeType":"YulIdentifier","src":"3852:77:65"},"nativeSrc":"3852:79:65","nodeType":"YulFunctionCall","src":"3852:79:65"},"nativeSrc":"3852:79:65","nodeType":"YulExpressionStatement","src":"3852:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3825:7:65","nodeType":"YulIdentifier","src":"3825:7:65"},{"name":"headStart","nativeSrc":"3834:9:65","nodeType":"YulIdentifier","src":"3834:9:65"}],"functionName":{"name":"sub","nativeSrc":"3821:3:65","nodeType":"YulIdentifier","src":"3821:3:65"},"nativeSrc":"3821:23:65","nodeType":"YulFunctionCall","src":"3821:23:65"},{"kind":"number","nativeSrc":"3846:2:65","nodeType":"YulLiteral","src":"3846:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3817:3:65","nodeType":"YulIdentifier","src":"3817:3:65"},"nativeSrc":"3817:32:65","nodeType":"YulFunctionCall","src":"3817:32:65"},"nativeSrc":"3814:119:65","nodeType":"YulIf","src":"3814:119:65"},{"nativeSrc":"3943:116:65","nodeType":"YulBlock","src":"3943:116:65","statements":[{"nativeSrc":"3958:15:65","nodeType":"YulVariableDeclaration","src":"3958:15:65","value":{"kind":"number","nativeSrc":"3972:1:65","nodeType":"YulLiteral","src":"3972:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3962:6:65","nodeType":"YulTypedName","src":"3962:6:65","type":""}]},{"nativeSrc":"3987:62:65","nodeType":"YulAssignment","src":"3987:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4021:9:65","nodeType":"YulIdentifier","src":"4021:9:65"},{"name":"offset","nativeSrc":"4032:6:65","nodeType":"YulIdentifier","src":"4032:6:65"}],"functionName":{"name":"add","nativeSrc":"4017:3:65","nodeType":"YulIdentifier","src":"4017:3:65"},"nativeSrc":"4017:22:65","nodeType":"YulFunctionCall","src":"4017:22:65"},{"name":"dataEnd","nativeSrc":"4041:7:65","nodeType":"YulIdentifier","src":"4041:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"3997:19:65","nodeType":"YulIdentifier","src":"3997:19:65"},"nativeSrc":"3997:52:65","nodeType":"YulFunctionCall","src":"3997:52:65"},"variableNames":[{"name":"value0","nativeSrc":"3987:6:65","nodeType":"YulIdentifier","src":"3987:6:65"}]}]},{"nativeSrc":"4069:297:65","nodeType":"YulBlock","src":"4069:297:65","statements":[{"nativeSrc":"4084:46:65","nodeType":"YulVariableDeclaration","src":"4084:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4115:9:65","nodeType":"YulIdentifier","src":"4115:9:65"},{"kind":"number","nativeSrc":"4126:2:65","nodeType":"YulLiteral","src":"4126:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4111:3:65","nodeType":"YulIdentifier","src":"4111:3:65"},"nativeSrc":"4111:18:65","nodeType":"YulFunctionCall","src":"4111:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"4098:12:65","nodeType":"YulIdentifier","src":"4098:12:65"},"nativeSrc":"4098:32:65","nodeType":"YulFunctionCall","src":"4098:32:65"},"variables":[{"name":"offset","nativeSrc":"4088:6:65","nodeType":"YulTypedName","src":"4088:6:65","type":""}]},{"body":{"nativeSrc":"4177:83:65","nodeType":"YulBlock","src":"4177:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4179:77:65","nodeType":"YulIdentifier","src":"4179:77:65"},"nativeSrc":"4179:79:65","nodeType":"YulFunctionCall","src":"4179:79:65"},"nativeSrc":"4179:79:65","nodeType":"YulExpressionStatement","src":"4179:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4149:6:65","nodeType":"YulIdentifier","src":"4149:6:65"},{"kind":"number","nativeSrc":"4157:18:65","nodeType":"YulLiteral","src":"4157:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4146:2:65","nodeType":"YulIdentifier","src":"4146:2:65"},"nativeSrc":"4146:30:65","nodeType":"YulFunctionCall","src":"4146:30:65"},"nativeSrc":"4143:117:65","nodeType":"YulIf","src":"4143:117:65"},{"nativeSrc":"4274:82:65","nodeType":"YulAssignment","src":"4274:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4328:9:65","nodeType":"YulIdentifier","src":"4328:9:65"},{"name":"offset","nativeSrc":"4339:6:65","nodeType":"YulIdentifier","src":"4339:6:65"}],"functionName":{"name":"add","nativeSrc":"4324:3:65","nodeType":"YulIdentifier","src":"4324:3:65"},"nativeSrc":"4324:22:65","nodeType":"YulFunctionCall","src":"4324:22:65"},{"name":"dataEnd","nativeSrc":"4348:7:65","nodeType":"YulIdentifier","src":"4348:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4292:31:65","nodeType":"YulIdentifier","src":"4292:31:65"},"nativeSrc":"4292:64:65","nodeType":"YulFunctionCall","src":"4292:64:65"},"variableNames":[{"name":"value1","nativeSrc":"4274:6:65","nodeType":"YulIdentifier","src":"4274:6:65"},{"name":"value2","nativeSrc":"4282:6:65","nodeType":"YulIdentifier","src":"4282:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"3703:670:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3758:9:65","nodeType":"YulTypedName","src":"3758:9:65","type":""},{"name":"dataEnd","nativeSrc":"3769:7:65","nodeType":"YulTypedName","src":"3769:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3781:6:65","nodeType":"YulTypedName","src":"3781:6:65","type":""},{"name":"value1","nativeSrc":"3789:6:65","nodeType":"YulTypedName","src":"3789:6:65","type":""},{"name":"value2","nativeSrc":"3797:6:65","nodeType":"YulTypedName","src":"3797:6:65","type":""}],"src":"3703:670:65"},{"body":{"nativeSrc":"4421:48:65","nodeType":"YulBlock","src":"4421:48:65","statements":[{"nativeSrc":"4431:32:65","nodeType":"YulAssignment","src":"4431:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4456:5:65","nodeType":"YulIdentifier","src":"4456:5:65"}],"functionName":{"name":"iszero","nativeSrc":"4449:6:65","nodeType":"YulIdentifier","src":"4449:6:65"},"nativeSrc":"4449:13:65","nodeType":"YulFunctionCall","src":"4449:13:65"}],"functionName":{"name":"iszero","nativeSrc":"4442:6:65","nodeType":"YulIdentifier","src":"4442:6:65"},"nativeSrc":"4442:21:65","nodeType":"YulFunctionCall","src":"4442:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4431:7:65","nodeType":"YulIdentifier","src":"4431:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"4379:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4403:5:65","nodeType":"YulTypedName","src":"4403:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4413:7:65","nodeType":"YulTypedName","src":"4413:7:65","type":""}],"src":"4379:90:65"},{"body":{"nativeSrc":"4534:50:65","nodeType":"YulBlock","src":"4534:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4551:3:65","nodeType":"YulIdentifier","src":"4551:3:65"},{"arguments":[{"name":"value","nativeSrc":"4571:5:65","nodeType":"YulIdentifier","src":"4571:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4556:14:65","nodeType":"YulIdentifier","src":"4556:14:65"},"nativeSrc":"4556:21:65","nodeType":"YulFunctionCall","src":"4556:21:65"}],"functionName":{"name":"mstore","nativeSrc":"4544:6:65","nodeType":"YulIdentifier","src":"4544:6:65"},"nativeSrc":"4544:34:65","nodeType":"YulFunctionCall","src":"4544:34:65"},"nativeSrc":"4544:34:65","nodeType":"YulExpressionStatement","src":"4544:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4475:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4522:5:65","nodeType":"YulTypedName","src":"4522:5:65","type":""},{"name":"pos","nativeSrc":"4529:3:65","nodeType":"YulTypedName","src":"4529:3:65","type":""}],"src":"4475:109:65"},{"body":{"nativeSrc":"4682:118:65","nodeType":"YulBlock","src":"4682:118:65","statements":[{"nativeSrc":"4692:26:65","nodeType":"YulAssignment","src":"4692:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4704:9:65","nodeType":"YulIdentifier","src":"4704:9:65"},{"kind":"number","nativeSrc":"4715:2:65","nodeType":"YulLiteral","src":"4715:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4700:3:65","nodeType":"YulIdentifier","src":"4700:3:65"},"nativeSrc":"4700:18:65","nodeType":"YulFunctionCall","src":"4700:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4692:4:65","nodeType":"YulIdentifier","src":"4692:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4766:6:65","nodeType":"YulIdentifier","src":"4766:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4779:9:65","nodeType":"YulIdentifier","src":"4779:9:65"},{"kind":"number","nativeSrc":"4790:1:65","nodeType":"YulLiteral","src":"4790:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4775:3:65","nodeType":"YulIdentifier","src":"4775:3:65"},"nativeSrc":"4775:17:65","nodeType":"YulFunctionCall","src":"4775:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4728:37:65","nodeType":"YulIdentifier","src":"4728:37:65"},"nativeSrc":"4728:65:65","nodeType":"YulFunctionCall","src":"4728:65:65"},"nativeSrc":"4728:65:65","nodeType":"YulExpressionStatement","src":"4728:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4590:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4654:9:65","nodeType":"YulTypedName","src":"4654:9:65","type":""},{"name":"value0","nativeSrc":"4666:6:65","nodeType":"YulTypedName","src":"4666:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4677:4:65","nodeType":"YulTypedName","src":"4677:4:65","type":""}],"src":"4590:210:65"},{"body":{"nativeSrc":"4895:28:65","nodeType":"YulBlock","src":"4895:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4912:1:65","nodeType":"YulLiteral","src":"4912:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4915:1:65","nodeType":"YulLiteral","src":"4915:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4905:6:65","nodeType":"YulIdentifier","src":"4905:6:65"},"nativeSrc":"4905:12:65","nodeType":"YulFunctionCall","src":"4905:12:65"},"nativeSrc":"4905:12:65","nodeType":"YulExpressionStatement","src":"4905:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"4806:117:65","nodeType":"YulFunctionDefinition","src":"4806:117:65"},{"body":{"nativeSrc":"4977:54:65","nodeType":"YulBlock","src":"4977:54:65","statements":[{"nativeSrc":"4987:38:65","nodeType":"YulAssignment","src":"4987:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5005:5:65","nodeType":"YulIdentifier","src":"5005:5:65"},{"kind":"number","nativeSrc":"5012:2:65","nodeType":"YulLiteral","src":"5012:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5001:3:65","nodeType":"YulIdentifier","src":"5001:3:65"},"nativeSrc":"5001:14:65","nodeType":"YulFunctionCall","src":"5001:14:65"},{"arguments":[{"kind":"number","nativeSrc":"5021:2:65","nodeType":"YulLiteral","src":"5021:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5017:3:65","nodeType":"YulIdentifier","src":"5017:3:65"},"nativeSrc":"5017:7:65","nodeType":"YulFunctionCall","src":"5017:7:65"}],"functionName":{"name":"and","nativeSrc":"4997:3:65","nodeType":"YulIdentifier","src":"4997:3:65"},"nativeSrc":"4997:28:65","nodeType":"YulFunctionCall","src":"4997:28:65"},"variableNames":[{"name":"result","nativeSrc":"4987:6:65","nodeType":"YulIdentifier","src":"4987:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4929:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4960:5:65","nodeType":"YulTypedName","src":"4960:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4970:6:65","nodeType":"YulTypedName","src":"4970:6:65","type":""}],"src":"4929:102:65"},{"body":{"nativeSrc":"5065:152:65","nodeType":"YulBlock","src":"5065:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5082:1:65","nodeType":"YulLiteral","src":"5082:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5085:77:65","nodeType":"YulLiteral","src":"5085:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5075:6:65","nodeType":"YulIdentifier","src":"5075:6:65"},"nativeSrc":"5075:88:65","nodeType":"YulFunctionCall","src":"5075:88:65"},"nativeSrc":"5075:88:65","nodeType":"YulExpressionStatement","src":"5075:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5179:1:65","nodeType":"YulLiteral","src":"5179:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"5182:4:65","nodeType":"YulLiteral","src":"5182:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5172:6:65","nodeType":"YulIdentifier","src":"5172:6:65"},"nativeSrc":"5172:15:65","nodeType":"YulFunctionCall","src":"5172:15:65"},"nativeSrc":"5172:15:65","nodeType":"YulExpressionStatement","src":"5172:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5203:1:65","nodeType":"YulLiteral","src":"5203:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5206:4:65","nodeType":"YulLiteral","src":"5206:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5196:6:65","nodeType":"YulIdentifier","src":"5196:6:65"},"nativeSrc":"5196:15:65","nodeType":"YulFunctionCall","src":"5196:15:65"},"nativeSrc":"5196:15:65","nodeType":"YulExpressionStatement","src":"5196:15:65"}]},"name":"panic_error_0x41","nativeSrc":"5037:180:65","nodeType":"YulFunctionDefinition","src":"5037:180:65"},{"body":{"nativeSrc":"5266:238:65","nodeType":"YulBlock","src":"5266:238:65","statements":[{"nativeSrc":"5276:58:65","nodeType":"YulVariableDeclaration","src":"5276:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"5298:6:65","nodeType":"YulIdentifier","src":"5298:6:65"},{"arguments":[{"name":"size","nativeSrc":"5328:4:65","nodeType":"YulIdentifier","src":"5328:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5306:21:65","nodeType":"YulIdentifier","src":"5306:21:65"},"nativeSrc":"5306:27:65","nodeType":"YulFunctionCall","src":"5306:27:65"}],"functionName":{"name":"add","nativeSrc":"5294:3:65","nodeType":"YulIdentifier","src":"5294:3:65"},"nativeSrc":"5294:40:65","nodeType":"YulFunctionCall","src":"5294:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"5280:10:65","nodeType":"YulTypedName","src":"5280:10:65","type":""}]},{"body":{"nativeSrc":"5445:22:65","nodeType":"YulBlock","src":"5445:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5447:16:65","nodeType":"YulIdentifier","src":"5447:16:65"},"nativeSrc":"5447:18:65","nodeType":"YulFunctionCall","src":"5447:18:65"},"nativeSrc":"5447:18:65","nodeType":"YulExpressionStatement","src":"5447:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5388:10:65","nodeType":"YulIdentifier","src":"5388:10:65"},{"kind":"number","nativeSrc":"5400:18:65","nodeType":"YulLiteral","src":"5400:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5385:2:65","nodeType":"YulIdentifier","src":"5385:2:65"},"nativeSrc":"5385:34:65","nodeType":"YulFunctionCall","src":"5385:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5424:10:65","nodeType":"YulIdentifier","src":"5424:10:65"},{"name":"memPtr","nativeSrc":"5436:6:65","nodeType":"YulIdentifier","src":"5436:6:65"}],"functionName":{"name":"lt","nativeSrc":"5421:2:65","nodeType":"YulIdentifier","src":"5421:2:65"},"nativeSrc":"5421:22:65","nodeType":"YulFunctionCall","src":"5421:22:65"}],"functionName":{"name":"or","nativeSrc":"5382:2:65","nodeType":"YulIdentifier","src":"5382:2:65"},"nativeSrc":"5382:62:65","nodeType":"YulFunctionCall","src":"5382:62:65"},"nativeSrc":"5379:88:65","nodeType":"YulIf","src":"5379:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5483:2:65","nodeType":"YulLiteral","src":"5483:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5487:10:65","nodeType":"YulIdentifier","src":"5487:10:65"}],"functionName":{"name":"mstore","nativeSrc":"5476:6:65","nodeType":"YulIdentifier","src":"5476:6:65"},"nativeSrc":"5476:22:65","nodeType":"YulFunctionCall","src":"5476:22:65"},"nativeSrc":"5476:22:65","nodeType":"YulExpressionStatement","src":"5476:22:65"}]},"name":"finalize_allocation","nativeSrc":"5223:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5252:6:65","nodeType":"YulTypedName","src":"5252:6:65","type":""},{"name":"size","nativeSrc":"5260:4:65","nodeType":"YulTypedName","src":"5260:4:65","type":""}],"src":"5223:281:65"},{"body":{"nativeSrc":"5551:88:65","nodeType":"YulBlock","src":"5551:88:65","statements":[{"nativeSrc":"5561:30:65","nodeType":"YulAssignment","src":"5561:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"5571:18:65","nodeType":"YulIdentifier","src":"5571:18:65"},"nativeSrc":"5571:20:65","nodeType":"YulFunctionCall","src":"5571:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"5561:6:65","nodeType":"YulIdentifier","src":"5561:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5620:6:65","nodeType":"YulIdentifier","src":"5620:6:65"},{"name":"size","nativeSrc":"5628:4:65","nodeType":"YulIdentifier","src":"5628:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"5600:19:65","nodeType":"YulIdentifier","src":"5600:19:65"},"nativeSrc":"5600:33:65","nodeType":"YulFunctionCall","src":"5600:33:65"},"nativeSrc":"5600:33:65","nodeType":"YulExpressionStatement","src":"5600:33:65"}]},"name":"allocate_memory","nativeSrc":"5510:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"5535:4:65","nodeType":"YulTypedName","src":"5535:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"5544:6:65","nodeType":"YulTypedName","src":"5544:6:65","type":""}],"src":"5510:129:65"},{"body":{"nativeSrc":"5711:241:65","nodeType":"YulBlock","src":"5711:241:65","statements":[{"body":{"nativeSrc":"5816:22:65","nodeType":"YulBlock","src":"5816:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5818:16:65","nodeType":"YulIdentifier","src":"5818:16:65"},"nativeSrc":"5818:18:65","nodeType":"YulFunctionCall","src":"5818:18:65"},"nativeSrc":"5818:18:65","nodeType":"YulExpressionStatement","src":"5818:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5788:6:65","nodeType":"YulIdentifier","src":"5788:6:65"},{"kind":"number","nativeSrc":"5796:18:65","nodeType":"YulLiteral","src":"5796:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5785:2:65","nodeType":"YulIdentifier","src":"5785:2:65"},"nativeSrc":"5785:30:65","nodeType":"YulFunctionCall","src":"5785:30:65"},"nativeSrc":"5782:56:65","nodeType":"YulIf","src":"5782:56:65"},{"nativeSrc":"5848:37:65","nodeType":"YulAssignment","src":"5848:37:65","value":{"arguments":[{"name":"length","nativeSrc":"5878:6:65","nodeType":"YulIdentifier","src":"5878:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5856:21:65","nodeType":"YulIdentifier","src":"5856:21:65"},"nativeSrc":"5856:29:65","nodeType":"YulFunctionCall","src":"5856:29:65"},"variableNames":[{"name":"size","nativeSrc":"5848:4:65","nodeType":"YulIdentifier","src":"5848:4:65"}]},{"nativeSrc":"5922:23:65","nodeType":"YulAssignment","src":"5922:23:65","value":{"arguments":[{"name":"size","nativeSrc":"5934:4:65","nodeType":"YulIdentifier","src":"5934:4:65"},{"kind":"number","nativeSrc":"5940:4:65","nodeType":"YulLiteral","src":"5940:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5930:3:65","nodeType":"YulIdentifier","src":"5930:3:65"},"nativeSrc":"5930:15:65","nodeType":"YulFunctionCall","src":"5930:15:65"},"variableNames":[{"name":"size","nativeSrc":"5922:4:65","nodeType":"YulIdentifier","src":"5922:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"5645:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5695:6:65","nodeType":"YulTypedName","src":"5695:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5706:4:65","nodeType":"YulTypedName","src":"5706:4:65","type":""}],"src":"5645:307:65"},{"body":{"nativeSrc":"6022:84:65","nodeType":"YulBlock","src":"6022:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"6046:3:65","nodeType":"YulIdentifier","src":"6046:3:65"},{"name":"src","nativeSrc":"6051:3:65","nodeType":"YulIdentifier","src":"6051:3:65"},{"name":"length","nativeSrc":"6056:6:65","nodeType":"YulIdentifier","src":"6056:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"6033:12:65","nodeType":"YulIdentifier","src":"6033:12:65"},"nativeSrc":"6033:30:65","nodeType":"YulFunctionCall","src":"6033:30:65"},"nativeSrc":"6033:30:65","nodeType":"YulExpressionStatement","src":"6033:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6083:3:65","nodeType":"YulIdentifier","src":"6083:3:65"},{"name":"length","nativeSrc":"6088:6:65","nodeType":"YulIdentifier","src":"6088:6:65"}],"functionName":{"name":"add","nativeSrc":"6079:3:65","nodeType":"YulIdentifier","src":"6079:3:65"},"nativeSrc":"6079:16:65","nodeType":"YulFunctionCall","src":"6079:16:65"},{"kind":"number","nativeSrc":"6097:1:65","nodeType":"YulLiteral","src":"6097:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6072:6:65","nodeType":"YulIdentifier","src":"6072:6:65"},"nativeSrc":"6072:27:65","nodeType":"YulFunctionCall","src":"6072:27:65"},"nativeSrc":"6072:27:65","nodeType":"YulExpressionStatement","src":"6072:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"5958:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6004:3:65","nodeType":"YulTypedName","src":"6004:3:65","type":""},{"name":"dst","nativeSrc":"6009:3:65","nodeType":"YulTypedName","src":"6009:3:65","type":""},{"name":"length","nativeSrc":"6014:6:65","nodeType":"YulTypedName","src":"6014:6:65","type":""}],"src":"5958:148:65"},{"body":{"nativeSrc":"6195:340:65","nodeType":"YulBlock","src":"6195:340:65","statements":[{"nativeSrc":"6205:74:65","nodeType":"YulAssignment","src":"6205:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6271:6:65","nodeType":"YulIdentifier","src":"6271:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"6230:40:65","nodeType":"YulIdentifier","src":"6230:40:65"},"nativeSrc":"6230:48:65","nodeType":"YulFunctionCall","src":"6230:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"6214:15:65","nodeType":"YulIdentifier","src":"6214:15:65"},"nativeSrc":"6214:65:65","nodeType":"YulFunctionCall","src":"6214:65:65"},"variableNames":[{"name":"array","nativeSrc":"6205:5:65","nodeType":"YulIdentifier","src":"6205:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6295:5:65","nodeType":"YulIdentifier","src":"6295:5:65"},{"name":"length","nativeSrc":"6302:6:65","nodeType":"YulIdentifier","src":"6302:6:65"}],"functionName":{"name":"mstore","nativeSrc":"6288:6:65","nodeType":"YulIdentifier","src":"6288:6:65"},"nativeSrc":"6288:21:65","nodeType":"YulFunctionCall","src":"6288:21:65"},"nativeSrc":"6288:21:65","nodeType":"YulExpressionStatement","src":"6288:21:65"},{"nativeSrc":"6318:27:65","nodeType":"YulVariableDeclaration","src":"6318:27:65","value":{"arguments":[{"name":"array","nativeSrc":"6333:5:65","nodeType":"YulIdentifier","src":"6333:5:65"},{"kind":"number","nativeSrc":"6340:4:65","nodeType":"YulLiteral","src":"6340:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6329:3:65","nodeType":"YulIdentifier","src":"6329:3:65"},"nativeSrc":"6329:16:65","nodeType":"YulFunctionCall","src":"6329:16:65"},"variables":[{"name":"dst","nativeSrc":"6322:3:65","nodeType":"YulTypedName","src":"6322:3:65","type":""}]},{"body":{"nativeSrc":"6383:83:65","nodeType":"YulBlock","src":"6383:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"6385:77:65","nodeType":"YulIdentifier","src":"6385:77:65"},"nativeSrc":"6385:79:65","nodeType":"YulFunctionCall","src":"6385:79:65"},"nativeSrc":"6385:79:65","nodeType":"YulExpressionStatement","src":"6385:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6364:3:65","nodeType":"YulIdentifier","src":"6364:3:65"},{"name":"length","nativeSrc":"6369:6:65","nodeType":"YulIdentifier","src":"6369:6:65"}],"functionName":{"name":"add","nativeSrc":"6360:3:65","nodeType":"YulIdentifier","src":"6360:3:65"},"nativeSrc":"6360:16:65","nodeType":"YulFunctionCall","src":"6360:16:65"},{"name":"end","nativeSrc":"6378:3:65","nodeType":"YulIdentifier","src":"6378:3:65"}],"functionName":{"name":"gt","nativeSrc":"6357:2:65","nodeType":"YulIdentifier","src":"6357:2:65"},"nativeSrc":"6357:25:65","nodeType":"YulFunctionCall","src":"6357:25:65"},"nativeSrc":"6354:112:65","nodeType":"YulIf","src":"6354:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"6512:3:65","nodeType":"YulIdentifier","src":"6512:3:65"},{"name":"dst","nativeSrc":"6517:3:65","nodeType":"YulIdentifier","src":"6517:3:65"},{"name":"length","nativeSrc":"6522:6:65","nodeType":"YulIdentifier","src":"6522:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"6475:36:65","nodeType":"YulIdentifier","src":"6475:36:65"},"nativeSrc":"6475:54:65","nodeType":"YulFunctionCall","src":"6475:54:65"},"nativeSrc":"6475:54:65","nodeType":"YulExpressionStatement","src":"6475:54:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"6112:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6168:3:65","nodeType":"YulTypedName","src":"6168:3:65","type":""},{"name":"length","nativeSrc":"6173:6:65","nodeType":"YulTypedName","src":"6173:6:65","type":""},{"name":"end","nativeSrc":"6181:3:65","nodeType":"YulTypedName","src":"6181:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6189:5:65","nodeType":"YulTypedName","src":"6189:5:65","type":""}],"src":"6112:423:65"},{"body":{"nativeSrc":"6615:277:65","nodeType":"YulBlock","src":"6615:277:65","statements":[{"body":{"nativeSrc":"6664:83:65","nodeType":"YulBlock","src":"6664:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6666:77:65","nodeType":"YulIdentifier","src":"6666:77:65"},"nativeSrc":"6666:79:65","nodeType":"YulFunctionCall","src":"6666:79:65"},"nativeSrc":"6666:79:65","nodeType":"YulExpressionStatement","src":"6666:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6643:6:65","nodeType":"YulIdentifier","src":"6643:6:65"},{"kind":"number","nativeSrc":"6651:4:65","nodeType":"YulLiteral","src":"6651:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6639:3:65","nodeType":"YulIdentifier","src":"6639:3:65"},"nativeSrc":"6639:17:65","nodeType":"YulFunctionCall","src":"6639:17:65"},{"name":"end","nativeSrc":"6658:3:65","nodeType":"YulIdentifier","src":"6658:3:65"}],"functionName":{"name":"slt","nativeSrc":"6635:3:65","nodeType":"YulIdentifier","src":"6635:3:65"},"nativeSrc":"6635:27:65","nodeType":"YulFunctionCall","src":"6635:27:65"}],"functionName":{"name":"iszero","nativeSrc":"6628:6:65","nodeType":"YulIdentifier","src":"6628:6:65"},"nativeSrc":"6628:35:65","nodeType":"YulFunctionCall","src":"6628:35:65"},"nativeSrc":"6625:122:65","nodeType":"YulIf","src":"6625:122:65"},{"nativeSrc":"6756:34:65","nodeType":"YulVariableDeclaration","src":"6756:34:65","value":{"arguments":[{"name":"offset","nativeSrc":"6783:6:65","nodeType":"YulIdentifier","src":"6783:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"6770:12:65","nodeType":"YulIdentifier","src":"6770:12:65"},"nativeSrc":"6770:20:65","nodeType":"YulFunctionCall","src":"6770:20:65"},"variables":[{"name":"length","nativeSrc":"6760:6:65","nodeType":"YulTypedName","src":"6760:6:65","type":""}]},{"nativeSrc":"6799:87:65","nodeType":"YulAssignment","src":"6799:87:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6859:6:65","nodeType":"YulIdentifier","src":"6859:6:65"},{"kind":"number","nativeSrc":"6867:4:65","nodeType":"YulLiteral","src":"6867:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6855:3:65","nodeType":"YulIdentifier","src":"6855:3:65"},"nativeSrc":"6855:17:65","nodeType":"YulFunctionCall","src":"6855:17:65"},{"name":"length","nativeSrc":"6874:6:65","nodeType":"YulIdentifier","src":"6874:6:65"},{"name":"end","nativeSrc":"6882:3:65","nodeType":"YulIdentifier","src":"6882:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"6808:46:65","nodeType":"YulIdentifier","src":"6808:46:65"},"nativeSrc":"6808:78:65","nodeType":"YulFunctionCall","src":"6808:78:65"},"variableNames":[{"name":"array","nativeSrc":"6799:5:65","nodeType":"YulIdentifier","src":"6799:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"6554:338:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6593:6:65","nodeType":"YulTypedName","src":"6593:6:65","type":""},{"name":"end","nativeSrc":"6601:3:65","nodeType":"YulTypedName","src":"6601:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6609:5:65","nodeType":"YulTypedName","src":"6609:5:65","type":""}],"src":"6554:338:65"},{"body":{"nativeSrc":"6941:79:65","nodeType":"YulBlock","src":"6941:79:65","statements":[{"body":{"nativeSrc":"6998:16:65","nodeType":"YulBlock","src":"6998:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7007:1:65","nodeType":"YulLiteral","src":"7007:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7010:1:65","nodeType":"YulLiteral","src":"7010:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7000:6:65","nodeType":"YulIdentifier","src":"7000:6:65"},"nativeSrc":"7000:12:65","nodeType":"YulFunctionCall","src":"7000:12:65"},"nativeSrc":"7000:12:65","nodeType":"YulExpressionStatement","src":"7000:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6964:5:65","nodeType":"YulIdentifier","src":"6964:5:65"},{"arguments":[{"name":"value","nativeSrc":"6989:5:65","nodeType":"YulIdentifier","src":"6989:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6971:17:65","nodeType":"YulIdentifier","src":"6971:17:65"},"nativeSrc":"6971:24:65","nodeType":"YulFunctionCall","src":"6971:24:65"}],"functionName":{"name":"eq","nativeSrc":"6961:2:65","nodeType":"YulIdentifier","src":"6961:2:65"},"nativeSrc":"6961:35:65","nodeType":"YulFunctionCall","src":"6961:35:65"}],"functionName":{"name":"iszero","nativeSrc":"6954:6:65","nodeType":"YulIdentifier","src":"6954:6:65"},"nativeSrc":"6954:43:65","nodeType":"YulFunctionCall","src":"6954:43:65"},"nativeSrc":"6951:63:65","nodeType":"YulIf","src":"6951:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"6898:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6934:5:65","nodeType":"YulTypedName","src":"6934:5:65","type":""}],"src":"6898:122:65"},{"body":{"nativeSrc":"7078:87:65","nodeType":"YulBlock","src":"7078:87:65","statements":[{"nativeSrc":"7088:29:65","nodeType":"YulAssignment","src":"7088:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"7110:6:65","nodeType":"YulIdentifier","src":"7110:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"7097:12:65","nodeType":"YulIdentifier","src":"7097:12:65"},"nativeSrc":"7097:20:65","nodeType":"YulFunctionCall","src":"7097:20:65"},"variableNames":[{"name":"value","nativeSrc":"7088:5:65","nodeType":"YulIdentifier","src":"7088:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7153:5:65","nodeType":"YulIdentifier","src":"7153:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7126:26:65","nodeType":"YulIdentifier","src":"7126:26:65"},"nativeSrc":"7126:33:65","nodeType":"YulFunctionCall","src":"7126:33:65"},"nativeSrc":"7126:33:65","nodeType":"YulExpressionStatement","src":"7126:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"7026:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7056:6:65","nodeType":"YulTypedName","src":"7056:6:65","type":""},{"name":"end","nativeSrc":"7064:3:65","nodeType":"YulTypedName","src":"7064:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7072:5:65","nodeType":"YulTypedName","src":"7072:5:65","type":""}],"src":"7026:139:65"},{"body":{"nativeSrc":"7279:687:65","nodeType":"YulBlock","src":"7279:687:65","statements":[{"body":{"nativeSrc":"7325:83:65","nodeType":"YulBlock","src":"7325:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7327:77:65","nodeType":"YulIdentifier","src":"7327:77:65"},"nativeSrc":"7327:79:65","nodeType":"YulFunctionCall","src":"7327:79:65"},"nativeSrc":"7327:79:65","nodeType":"YulExpressionStatement","src":"7327:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7300:7:65","nodeType":"YulIdentifier","src":"7300:7:65"},{"name":"headStart","nativeSrc":"7309:9:65","nodeType":"YulIdentifier","src":"7309:9:65"}],"functionName":{"name":"sub","nativeSrc":"7296:3:65","nodeType":"YulIdentifier","src":"7296:3:65"},"nativeSrc":"7296:23:65","nodeType":"YulFunctionCall","src":"7296:23:65"},{"kind":"number","nativeSrc":"7321:2:65","nodeType":"YulLiteral","src":"7321:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7292:3:65","nodeType":"YulIdentifier","src":"7292:3:65"},"nativeSrc":"7292:32:65","nodeType":"YulFunctionCall","src":"7292:32:65"},"nativeSrc":"7289:119:65","nodeType":"YulIf","src":"7289:119:65"},{"nativeSrc":"7418:116:65","nodeType":"YulBlock","src":"7418:116:65","statements":[{"nativeSrc":"7433:15:65","nodeType":"YulVariableDeclaration","src":"7433:15:65","value":{"kind":"number","nativeSrc":"7447:1:65","nodeType":"YulLiteral","src":"7447:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7437:6:65","nodeType":"YulTypedName","src":"7437:6:65","type":""}]},{"nativeSrc":"7462:62:65","nodeType":"YulAssignment","src":"7462:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7496:9:65","nodeType":"YulIdentifier","src":"7496:9:65"},{"name":"offset","nativeSrc":"7507:6:65","nodeType":"YulIdentifier","src":"7507:6:65"}],"functionName":{"name":"add","nativeSrc":"7492:3:65","nodeType":"YulIdentifier","src":"7492:3:65"},"nativeSrc":"7492:22:65","nodeType":"YulFunctionCall","src":"7492:22:65"},{"name":"dataEnd","nativeSrc":"7516:7:65","nodeType":"YulIdentifier","src":"7516:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"7472:19:65","nodeType":"YulIdentifier","src":"7472:19:65"},"nativeSrc":"7472:52:65","nodeType":"YulFunctionCall","src":"7472:52:65"},"variableNames":[{"name":"value0","nativeSrc":"7462:6:65","nodeType":"YulIdentifier","src":"7462:6:65"}]}]},{"nativeSrc":"7544:287:65","nodeType":"YulBlock","src":"7544:287:65","statements":[{"nativeSrc":"7559:46:65","nodeType":"YulVariableDeclaration","src":"7559:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7590:9:65","nodeType":"YulIdentifier","src":"7590:9:65"},{"kind":"number","nativeSrc":"7601:2:65","nodeType":"YulLiteral","src":"7601:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7586:3:65","nodeType":"YulIdentifier","src":"7586:3:65"},"nativeSrc":"7586:18:65","nodeType":"YulFunctionCall","src":"7586:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"7573:12:65","nodeType":"YulIdentifier","src":"7573:12:65"},"nativeSrc":"7573:32:65","nodeType":"YulFunctionCall","src":"7573:32:65"},"variables":[{"name":"offset","nativeSrc":"7563:6:65","nodeType":"YulTypedName","src":"7563:6:65","type":""}]},{"body":{"nativeSrc":"7652:83:65","nodeType":"YulBlock","src":"7652:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7654:77:65","nodeType":"YulIdentifier","src":"7654:77:65"},"nativeSrc":"7654:79:65","nodeType":"YulFunctionCall","src":"7654:79:65"},"nativeSrc":"7654:79:65","nodeType":"YulExpressionStatement","src":"7654:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7624:6:65","nodeType":"YulIdentifier","src":"7624:6:65"},{"kind":"number","nativeSrc":"7632:18:65","nodeType":"YulLiteral","src":"7632:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7621:2:65","nodeType":"YulIdentifier","src":"7621:2:65"},"nativeSrc":"7621:30:65","nodeType":"YulFunctionCall","src":"7621:30:65"},"nativeSrc":"7618:117:65","nodeType":"YulIf","src":"7618:117:65"},{"nativeSrc":"7749:72:65","nodeType":"YulAssignment","src":"7749:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7793:9:65","nodeType":"YulIdentifier","src":"7793:9:65"},{"name":"offset","nativeSrc":"7804:6:65","nodeType":"YulIdentifier","src":"7804:6:65"}],"functionName":{"name":"add","nativeSrc":"7789:3:65","nodeType":"YulIdentifier","src":"7789:3:65"},"nativeSrc":"7789:22:65","nodeType":"YulFunctionCall","src":"7789:22:65"},{"name":"dataEnd","nativeSrc":"7813:7:65","nodeType":"YulIdentifier","src":"7813:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"7759:29:65","nodeType":"YulIdentifier","src":"7759:29:65"},"nativeSrc":"7759:62:65","nodeType":"YulFunctionCall","src":"7759:62:65"},"variableNames":[{"name":"value1","nativeSrc":"7749:6:65","nodeType":"YulIdentifier","src":"7749:6:65"}]}]},{"nativeSrc":"7841:118:65","nodeType":"YulBlock","src":"7841:118:65","statements":[{"nativeSrc":"7856:16:65","nodeType":"YulVariableDeclaration","src":"7856:16:65","value":{"kind":"number","nativeSrc":"7870:2:65","nodeType":"YulLiteral","src":"7870:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7860:6:65","nodeType":"YulTypedName","src":"7860:6:65","type":""}]},{"nativeSrc":"7886:63:65","nodeType":"YulAssignment","src":"7886:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7921:9:65","nodeType":"YulIdentifier","src":"7921:9:65"},{"name":"offset","nativeSrc":"7932:6:65","nodeType":"YulIdentifier","src":"7932:6:65"}],"functionName":{"name":"add","nativeSrc":"7917:3:65","nodeType":"YulIdentifier","src":"7917:3:65"},"nativeSrc":"7917:22:65","nodeType":"YulFunctionCall","src":"7917:22:65"},{"name":"dataEnd","nativeSrc":"7941:7:65","nodeType":"YulIdentifier","src":"7941:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7896:20:65","nodeType":"YulIdentifier","src":"7896:20:65"},"nativeSrc":"7896:53:65","nodeType":"YulFunctionCall","src":"7896:53:65"},"variableNames":[{"name":"value2","nativeSrc":"7886:6:65","nodeType":"YulIdentifier","src":"7886:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256","nativeSrc":"7171:795:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7233:9:65","nodeType":"YulTypedName","src":"7233:9:65","type":""},{"name":"dataEnd","nativeSrc":"7244:7:65","nodeType":"YulTypedName","src":"7244:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7256:6:65","nodeType":"YulTypedName","src":"7256:6:65","type":""},{"name":"value1","nativeSrc":"7264:6:65","nodeType":"YulTypedName","src":"7264:6:65","type":""},{"name":"value2","nativeSrc":"7272:6:65","nodeType":"YulTypedName","src":"7272:6:65","type":""}],"src":"7171:795:65"},{"body":{"nativeSrc":"8037:53:65","nodeType":"YulBlock","src":"8037:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8054:3:65","nodeType":"YulIdentifier","src":"8054:3:65"},{"arguments":[{"name":"value","nativeSrc":"8077:5:65","nodeType":"YulIdentifier","src":"8077:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8059:17:65","nodeType":"YulIdentifier","src":"8059:17:65"},"nativeSrc":"8059:24:65","nodeType":"YulFunctionCall","src":"8059:24:65"}],"functionName":{"name":"mstore","nativeSrc":"8047:6:65","nodeType":"YulIdentifier","src":"8047:6:65"},"nativeSrc":"8047:37:65","nodeType":"YulFunctionCall","src":"8047:37:65"},"nativeSrc":"8047:37:65","nodeType":"YulExpressionStatement","src":"8047:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7972:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8025:5:65","nodeType":"YulTypedName","src":"8025:5:65","type":""},{"name":"pos","nativeSrc":"8032:3:65","nodeType":"YulTypedName","src":"8032:3:65","type":""}],"src":"7972:118:65"},{"body":{"nativeSrc":"8140:57:65","nodeType":"YulBlock","src":"8140:57:65","statements":[{"nativeSrc":"8150:41:65","nodeType":"YulAssignment","src":"8150:41:65","value":{"arguments":[{"name":"value","nativeSrc":"8165:5:65","nodeType":"YulIdentifier","src":"8165:5:65"},{"kind":"number","nativeSrc":"8172:18:65","nodeType":"YulLiteral","src":"8172:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"8161:3:65","nodeType":"YulIdentifier","src":"8161:3:65"},"nativeSrc":"8161:30:65","nodeType":"YulFunctionCall","src":"8161:30:65"},"variableNames":[{"name":"cleaned","nativeSrc":"8150:7:65","nodeType":"YulIdentifier","src":"8150:7:65"}]}]},"name":"cleanup_t_uint64","nativeSrc":"8096:101:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8122:5:65","nodeType":"YulTypedName","src":"8122:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8132:7:65","nodeType":"YulTypedName","src":"8132:7:65","type":""}],"src":"8096:101:65"},{"body":{"nativeSrc":"8266:52:65","nodeType":"YulBlock","src":"8266:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8283:3:65","nodeType":"YulIdentifier","src":"8283:3:65"},{"arguments":[{"name":"value","nativeSrc":"8305:5:65","nodeType":"YulIdentifier","src":"8305:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"8288:16:65","nodeType":"YulIdentifier","src":"8288:16:65"},"nativeSrc":"8288:23:65","nodeType":"YulFunctionCall","src":"8288:23:65"}],"functionName":{"name":"mstore","nativeSrc":"8276:6:65","nodeType":"YulIdentifier","src":"8276:6:65"},"nativeSrc":"8276:36:65","nodeType":"YulFunctionCall","src":"8276:36:65"},"nativeSrc":"8276:36:65","nodeType":"YulExpressionStatement","src":"8276:36:65"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"8203:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8254:5:65","nodeType":"YulTypedName","src":"8254:5:65","type":""},{"name":"pos","nativeSrc":"8261:3:65","nodeType":"YulTypedName","src":"8261:3:65","type":""}],"src":"8203:115:65"},{"body":{"nativeSrc":"8382:40:65","nodeType":"YulBlock","src":"8382:40:65","statements":[{"nativeSrc":"8393:22:65","nodeType":"YulAssignment","src":"8393:22:65","value":{"arguments":[{"name":"value","nativeSrc":"8409:5:65","nodeType":"YulIdentifier","src":"8409:5:65"}],"functionName":{"name":"mload","nativeSrc":"8403:5:65","nodeType":"YulIdentifier","src":"8403:5:65"},"nativeSrc":"8403:12:65","nodeType":"YulFunctionCall","src":"8403:12:65"},"variableNames":[{"name":"length","nativeSrc":"8393:6:65","nodeType":"YulIdentifier","src":"8393:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8324:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8365:5:65","nodeType":"YulTypedName","src":"8365:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8375:6:65","nodeType":"YulTypedName","src":"8375:6:65","type":""}],"src":"8324:98:65"},{"body":{"nativeSrc":"8523:73:65","nodeType":"YulBlock","src":"8523:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8540:3:65","nodeType":"YulIdentifier","src":"8540:3:65"},{"name":"length","nativeSrc":"8545:6:65","nodeType":"YulIdentifier","src":"8545:6:65"}],"functionName":{"name":"mstore","nativeSrc":"8533:6:65","nodeType":"YulIdentifier","src":"8533:6:65"},"nativeSrc":"8533:19:65","nodeType":"YulFunctionCall","src":"8533:19:65"},"nativeSrc":"8533:19:65","nodeType":"YulExpressionStatement","src":"8533:19:65"},{"nativeSrc":"8561:29:65","nodeType":"YulAssignment","src":"8561:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"8580:3:65","nodeType":"YulIdentifier","src":"8580:3:65"},{"kind":"number","nativeSrc":"8585:4:65","nodeType":"YulLiteral","src":"8585:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8576:3:65","nodeType":"YulIdentifier","src":"8576:3:65"},"nativeSrc":"8576:14:65","nodeType":"YulFunctionCall","src":"8576:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"8561:11:65","nodeType":"YulIdentifier","src":"8561:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"8428:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8495:3:65","nodeType":"YulTypedName","src":"8495:3:65","type":""},{"name":"length","nativeSrc":"8500:6:65","nodeType":"YulTypedName","src":"8500:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8511:11:65","nodeType":"YulTypedName","src":"8511:11:65","type":""}],"src":"8428:168:65"},{"body":{"nativeSrc":"8664:186:65","nodeType":"YulBlock","src":"8664:186:65","statements":[{"nativeSrc":"8675:10:65","nodeType":"YulVariableDeclaration","src":"8675:10:65","value":{"kind":"number","nativeSrc":"8684:1:65","nodeType":"YulLiteral","src":"8684:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8679:1:65","nodeType":"YulTypedName","src":"8679:1:65","type":""}]},{"body":{"nativeSrc":"8744:63:65","nodeType":"YulBlock","src":"8744:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8769:3:65","nodeType":"YulIdentifier","src":"8769:3:65"},{"name":"i","nativeSrc":"8774:1:65","nodeType":"YulIdentifier","src":"8774:1:65"}],"functionName":{"name":"add","nativeSrc":"8765:3:65","nodeType":"YulIdentifier","src":"8765:3:65"},"nativeSrc":"8765:11:65","nodeType":"YulFunctionCall","src":"8765:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8788:3:65","nodeType":"YulIdentifier","src":"8788:3:65"},{"name":"i","nativeSrc":"8793:1:65","nodeType":"YulIdentifier","src":"8793:1:65"}],"functionName":{"name":"add","nativeSrc":"8784:3:65","nodeType":"YulIdentifier","src":"8784:3:65"},"nativeSrc":"8784:11:65","nodeType":"YulFunctionCall","src":"8784:11:65"}],"functionName":{"name":"mload","nativeSrc":"8778:5:65","nodeType":"YulIdentifier","src":"8778:5:65"},"nativeSrc":"8778:18:65","nodeType":"YulFunctionCall","src":"8778:18:65"}],"functionName":{"name":"mstore","nativeSrc":"8758:6:65","nodeType":"YulIdentifier","src":"8758:6:65"},"nativeSrc":"8758:39:65","nodeType":"YulFunctionCall","src":"8758:39:65"},"nativeSrc":"8758:39:65","nodeType":"YulExpressionStatement","src":"8758:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8705:1:65","nodeType":"YulIdentifier","src":"8705:1:65"},{"name":"length","nativeSrc":"8708:6:65","nodeType":"YulIdentifier","src":"8708:6:65"}],"functionName":{"name":"lt","nativeSrc":"8702:2:65","nodeType":"YulIdentifier","src":"8702:2:65"},"nativeSrc":"8702:13:65","nodeType":"YulFunctionCall","src":"8702:13:65"},"nativeSrc":"8694:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"8716:19:65","nodeType":"YulBlock","src":"8716:19:65","statements":[{"nativeSrc":"8718:15:65","nodeType":"YulAssignment","src":"8718:15:65","value":{"arguments":[{"name":"i","nativeSrc":"8727:1:65","nodeType":"YulIdentifier","src":"8727:1:65"},{"kind":"number","nativeSrc":"8730:2:65","nodeType":"YulLiteral","src":"8730:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8723:3:65","nodeType":"YulIdentifier","src":"8723:3:65"},"nativeSrc":"8723:10:65","nodeType":"YulFunctionCall","src":"8723:10:65"},"variableNames":[{"name":"i","nativeSrc":"8718:1:65","nodeType":"YulIdentifier","src":"8718:1:65"}]}]},"pre":{"nativeSrc":"8698:3:65","nodeType":"YulBlock","src":"8698:3:65","statements":[]},"src":"8694:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8827:3:65","nodeType":"YulIdentifier","src":"8827:3:65"},{"name":"length","nativeSrc":"8832:6:65","nodeType":"YulIdentifier","src":"8832:6:65"}],"functionName":{"name":"add","nativeSrc":"8823:3:65","nodeType":"YulIdentifier","src":"8823:3:65"},"nativeSrc":"8823:16:65","nodeType":"YulFunctionCall","src":"8823:16:65"},{"kind":"number","nativeSrc":"8841:1:65","nodeType":"YulLiteral","src":"8841:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8816:6:65","nodeType":"YulIdentifier","src":"8816:6:65"},"nativeSrc":"8816:27:65","nodeType":"YulFunctionCall","src":"8816:27:65"},"nativeSrc":"8816:27:65","nodeType":"YulExpressionStatement","src":"8816:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8602:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8646:3:65","nodeType":"YulTypedName","src":"8646:3:65","type":""},{"name":"dst","nativeSrc":"8651:3:65","nodeType":"YulTypedName","src":"8651:3:65","type":""},{"name":"length","nativeSrc":"8656:6:65","nodeType":"YulTypedName","src":"8656:6:65","type":""}],"src":"8602:248:65"},{"body":{"nativeSrc":"8946:283:65","nodeType":"YulBlock","src":"8946:283:65","statements":[{"nativeSrc":"8956:52:65","nodeType":"YulVariableDeclaration","src":"8956:52:65","value":{"arguments":[{"name":"value","nativeSrc":"9002:5:65","nodeType":"YulIdentifier","src":"9002:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8970:31:65","nodeType":"YulIdentifier","src":"8970:31:65"},"nativeSrc":"8970:38:65","nodeType":"YulFunctionCall","src":"8970:38:65"},"variables":[{"name":"length","nativeSrc":"8960:6:65","nodeType":"YulTypedName","src":"8960:6:65","type":""}]},{"nativeSrc":"9017:77:65","nodeType":"YulAssignment","src":"9017:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"9082:3:65","nodeType":"YulIdentifier","src":"9082:3:65"},{"name":"length","nativeSrc":"9087:6:65","nodeType":"YulIdentifier","src":"9087:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9024:57:65","nodeType":"YulIdentifier","src":"9024:57:65"},"nativeSrc":"9024:70:65","nodeType":"YulFunctionCall","src":"9024:70:65"},"variableNames":[{"name":"pos","nativeSrc":"9017:3:65","nodeType":"YulIdentifier","src":"9017:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9142:5:65","nodeType":"YulIdentifier","src":"9142:5:65"},{"kind":"number","nativeSrc":"9149:4:65","nodeType":"YulLiteral","src":"9149:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9138:3:65","nodeType":"YulIdentifier","src":"9138:3:65"},"nativeSrc":"9138:16:65","nodeType":"YulFunctionCall","src":"9138:16:65"},{"name":"pos","nativeSrc":"9156:3:65","nodeType":"YulIdentifier","src":"9156:3:65"},{"name":"length","nativeSrc":"9161:6:65","nodeType":"YulIdentifier","src":"9161:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9103:34:65","nodeType":"YulIdentifier","src":"9103:34:65"},"nativeSrc":"9103:65:65","nodeType":"YulFunctionCall","src":"9103:65:65"},"nativeSrc":"9103:65:65","nodeType":"YulExpressionStatement","src":"9103:65:65"},{"nativeSrc":"9177:46:65","nodeType":"YulAssignment","src":"9177:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"9188:3:65","nodeType":"YulIdentifier","src":"9188:3:65"},{"arguments":[{"name":"length","nativeSrc":"9215:6:65","nodeType":"YulIdentifier","src":"9215:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9193:21:65","nodeType":"YulIdentifier","src":"9193:21:65"},"nativeSrc":"9193:29:65","nodeType":"YulFunctionCall","src":"9193:29:65"}],"functionName":{"name":"add","nativeSrc":"9184:3:65","nodeType":"YulIdentifier","src":"9184:3:65"},"nativeSrc":"9184:39:65","nodeType":"YulFunctionCall","src":"9184:39:65"},"variableNames":[{"name":"end","nativeSrc":"9177:3:65","nodeType":"YulIdentifier","src":"9177:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"8856:373:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8927:5:65","nodeType":"YulTypedName","src":"8927:5:65","type":""},{"name":"pos","nativeSrc":"8934:3:65","nodeType":"YulTypedName","src":"8934:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8942:3:65","nodeType":"YulTypedName","src":"8942:3:65","type":""}],"src":"8856:373:65"},{"body":{"nativeSrc":"9405:355:65","nodeType":"YulBlock","src":"9405:355:65","statements":[{"nativeSrc":"9415:26:65","nodeType":"YulAssignment","src":"9415:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9427:9:65","nodeType":"YulIdentifier","src":"9427:9:65"},{"kind":"number","nativeSrc":"9438:2:65","nodeType":"YulLiteral","src":"9438:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9423:3:65","nodeType":"YulIdentifier","src":"9423:3:65"},"nativeSrc":"9423:18:65","nodeType":"YulFunctionCall","src":"9423:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9415:4:65","nodeType":"YulIdentifier","src":"9415:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9495:6:65","nodeType":"YulIdentifier","src":"9495:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9508:9:65","nodeType":"YulIdentifier","src":"9508:9:65"},{"kind":"number","nativeSrc":"9519:1:65","nodeType":"YulLiteral","src":"9519:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9504:3:65","nodeType":"YulIdentifier","src":"9504:3:65"},"nativeSrc":"9504:17:65","nodeType":"YulFunctionCall","src":"9504:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9451:43:65","nodeType":"YulIdentifier","src":"9451:43:65"},"nativeSrc":"9451:71:65","nodeType":"YulFunctionCall","src":"9451:71:65"},"nativeSrc":"9451:71:65","nodeType":"YulExpressionStatement","src":"9451:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9574:6:65","nodeType":"YulIdentifier","src":"9574:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9587:9:65","nodeType":"YulIdentifier","src":"9587:9:65"},{"kind":"number","nativeSrc":"9598:2:65","nodeType":"YulLiteral","src":"9598:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9583:3:65","nodeType":"YulIdentifier","src":"9583:3:65"},"nativeSrc":"9583:18:65","nodeType":"YulFunctionCall","src":"9583:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"9532:41:65","nodeType":"YulIdentifier","src":"9532:41:65"},"nativeSrc":"9532:70:65","nodeType":"YulFunctionCall","src":"9532:70:65"},"nativeSrc":"9532:70:65","nodeType":"YulExpressionStatement","src":"9532:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9623:9:65","nodeType":"YulIdentifier","src":"9623:9:65"},{"kind":"number","nativeSrc":"9634:2:65","nodeType":"YulLiteral","src":"9634:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9619:3:65","nodeType":"YulIdentifier","src":"9619:3:65"},"nativeSrc":"9619:18:65","nodeType":"YulFunctionCall","src":"9619:18:65"},{"arguments":[{"name":"tail","nativeSrc":"9643:4:65","nodeType":"YulIdentifier","src":"9643:4:65"},{"name":"headStart","nativeSrc":"9649:9:65","nodeType":"YulIdentifier","src":"9649:9:65"}],"functionName":{"name":"sub","nativeSrc":"9639:3:65","nodeType":"YulIdentifier","src":"9639:3:65"},"nativeSrc":"9639:20:65","nodeType":"YulFunctionCall","src":"9639:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9612:6:65","nodeType":"YulIdentifier","src":"9612:6:65"},"nativeSrc":"9612:48:65","nodeType":"YulFunctionCall","src":"9612:48:65"},"nativeSrc":"9612:48:65","nodeType":"YulExpressionStatement","src":"9612:48:65"},{"nativeSrc":"9669:84:65","nodeType":"YulAssignment","src":"9669:84:65","value":{"arguments":[{"name":"value2","nativeSrc":"9739:6:65","nodeType":"YulIdentifier","src":"9739:6:65"},{"name":"tail","nativeSrc":"9748:4:65","nodeType":"YulIdentifier","src":"9748:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"9677:61:65","nodeType":"YulIdentifier","src":"9677:61:65"},"nativeSrc":"9677:76:65","nodeType":"YulFunctionCall","src":"9677:76:65"},"variableNames":[{"name":"tail","nativeSrc":"9669:4:65","nodeType":"YulIdentifier","src":"9669:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9235:525:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9361:9:65","nodeType":"YulTypedName","src":"9361:9:65","type":""},{"name":"value2","nativeSrc":"9373:6:65","nodeType":"YulTypedName","src":"9373:6:65","type":""},{"name":"value1","nativeSrc":"9381:6:65","nodeType":"YulTypedName","src":"9381:6:65","type":""},{"name":"value0","nativeSrc":"9389:6:65","nodeType":"YulTypedName","src":"9389:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9400:4:65","nodeType":"YulTypedName","src":"9400:4:65","type":""}],"src":"9235:525:65"},{"body":{"nativeSrc":"9849:391:65","nodeType":"YulBlock","src":"9849:391:65","statements":[{"body":{"nativeSrc":"9895:83:65","nodeType":"YulBlock","src":"9895:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9897:77:65","nodeType":"YulIdentifier","src":"9897:77:65"},"nativeSrc":"9897:79:65","nodeType":"YulFunctionCall","src":"9897:79:65"},"nativeSrc":"9897:79:65","nodeType":"YulExpressionStatement","src":"9897:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9870:7:65","nodeType":"YulIdentifier","src":"9870:7:65"},{"name":"headStart","nativeSrc":"9879:9:65","nodeType":"YulIdentifier","src":"9879:9:65"}],"functionName":{"name":"sub","nativeSrc":"9866:3:65","nodeType":"YulIdentifier","src":"9866:3:65"},"nativeSrc":"9866:23:65","nodeType":"YulFunctionCall","src":"9866:23:65"},{"kind":"number","nativeSrc":"9891:2:65","nodeType":"YulLiteral","src":"9891:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9862:3:65","nodeType":"YulIdentifier","src":"9862:3:65"},"nativeSrc":"9862:32:65","nodeType":"YulFunctionCall","src":"9862:32:65"},"nativeSrc":"9859:119:65","nodeType":"YulIf","src":"9859:119:65"},{"nativeSrc":"9988:117:65","nodeType":"YulBlock","src":"9988:117:65","statements":[{"nativeSrc":"10003:15:65","nodeType":"YulVariableDeclaration","src":"10003:15:65","value":{"kind":"number","nativeSrc":"10017:1:65","nodeType":"YulLiteral","src":"10017:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10007:6:65","nodeType":"YulTypedName","src":"10007:6:65","type":""}]},{"nativeSrc":"10032:63:65","nodeType":"YulAssignment","src":"10032:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10067:9:65","nodeType":"YulIdentifier","src":"10067:9:65"},{"name":"offset","nativeSrc":"10078:6:65","nodeType":"YulIdentifier","src":"10078:6:65"}],"functionName":{"name":"add","nativeSrc":"10063:3:65","nodeType":"YulIdentifier","src":"10063:3:65"},"nativeSrc":"10063:22:65","nodeType":"YulFunctionCall","src":"10063:22:65"},{"name":"dataEnd","nativeSrc":"10087:7:65","nodeType":"YulIdentifier","src":"10087:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10042:20:65","nodeType":"YulIdentifier","src":"10042:20:65"},"nativeSrc":"10042:53:65","nodeType":"YulFunctionCall","src":"10042:53:65"},"variableNames":[{"name":"value0","nativeSrc":"10032:6:65","nodeType":"YulIdentifier","src":"10032:6:65"}]}]},{"nativeSrc":"10115:118:65","nodeType":"YulBlock","src":"10115:118:65","statements":[{"nativeSrc":"10130:16:65","nodeType":"YulVariableDeclaration","src":"10130:16:65","value":{"kind":"number","nativeSrc":"10144:2:65","nodeType":"YulLiteral","src":"10144:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10134:6:65","nodeType":"YulTypedName","src":"10134:6:65","type":""}]},{"nativeSrc":"10160:63:65","nodeType":"YulAssignment","src":"10160:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10195:9:65","nodeType":"YulIdentifier","src":"10195:9:65"},{"name":"offset","nativeSrc":"10206:6:65","nodeType":"YulIdentifier","src":"10206:6:65"}],"functionName":{"name":"add","nativeSrc":"10191:3:65","nodeType":"YulIdentifier","src":"10191:3:65"},"nativeSrc":"10191:22:65","nodeType":"YulFunctionCall","src":"10191:22:65"},{"name":"dataEnd","nativeSrc":"10215:7:65","nodeType":"YulIdentifier","src":"10215:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10170:20:65","nodeType":"YulIdentifier","src":"10170:20:65"},"nativeSrc":"10170:53:65","nodeType":"YulFunctionCall","src":"10170:53:65"},"variableNames":[{"name":"value1","nativeSrc":"10160:6:65","nodeType":"YulIdentifier","src":"10160:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"9766:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9811:9:65","nodeType":"YulTypedName","src":"9811:9:65","type":""},{"name":"dataEnd","nativeSrc":"9822:7:65","nodeType":"YulTypedName","src":"9822:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9834:6:65","nodeType":"YulTypedName","src":"9834:6:65","type":""},{"name":"value1","nativeSrc":"9842:6:65","nodeType":"YulTypedName","src":"9842:6:65","type":""}],"src":"9766:474:65"},{"body":{"nativeSrc":"10362:193:65","nodeType":"YulBlock","src":"10362:193:65","statements":[{"nativeSrc":"10372:26:65","nodeType":"YulAssignment","src":"10372:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10384:9:65","nodeType":"YulIdentifier","src":"10384:9:65"},{"kind":"number","nativeSrc":"10395:2:65","nodeType":"YulLiteral","src":"10395:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10380:3:65","nodeType":"YulIdentifier","src":"10380:3:65"},"nativeSrc":"10380:18:65","nodeType":"YulFunctionCall","src":"10380:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10372:4:65","nodeType":"YulIdentifier","src":"10372:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10419:9:65","nodeType":"YulIdentifier","src":"10419:9:65"},{"kind":"number","nativeSrc":"10430:1:65","nodeType":"YulLiteral","src":"10430:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10415:3:65","nodeType":"YulIdentifier","src":"10415:3:65"},"nativeSrc":"10415:17:65","nodeType":"YulFunctionCall","src":"10415:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10438:4:65","nodeType":"YulIdentifier","src":"10438:4:65"},{"name":"headStart","nativeSrc":"10444:9:65","nodeType":"YulIdentifier","src":"10444:9:65"}],"functionName":{"name":"sub","nativeSrc":"10434:3:65","nodeType":"YulIdentifier","src":"10434:3:65"},"nativeSrc":"10434:20:65","nodeType":"YulFunctionCall","src":"10434:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10408:6:65","nodeType":"YulIdentifier","src":"10408:6:65"},"nativeSrc":"10408:47:65","nodeType":"YulFunctionCall","src":"10408:47:65"},"nativeSrc":"10408:47:65","nodeType":"YulExpressionStatement","src":"10408:47:65"},{"nativeSrc":"10464:84:65","nodeType":"YulAssignment","src":"10464:84:65","value":{"arguments":[{"name":"value0","nativeSrc":"10534:6:65","nodeType":"YulIdentifier","src":"10534:6:65"},{"name":"tail","nativeSrc":"10543:4:65","nodeType":"YulIdentifier","src":"10543:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"10472:61:65","nodeType":"YulIdentifier","src":"10472:61:65"},"nativeSrc":"10472:76:65","nodeType":"YulFunctionCall","src":"10472:76:65"},"variableNames":[{"name":"tail","nativeSrc":"10464:4:65","nodeType":"YulIdentifier","src":"10464:4:65"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"10246:309:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10334:9:65","nodeType":"YulTypedName","src":"10334:9:65","type":""},{"name":"value0","nativeSrc":"10346:6:65","nodeType":"YulTypedName","src":"10346:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10357:4:65","nodeType":"YulTypedName","src":"10357:4:65","type":""}],"src":"10246:309:65"},{"body":{"nativeSrc":"10606:73:65","nodeType":"YulBlock","src":"10606:73:65","statements":[{"nativeSrc":"10616:57:65","nodeType":"YulAssignment","src":"10616:57:65","value":{"arguments":[{"name":"value","nativeSrc":"10631:5:65","nodeType":"YulIdentifier","src":"10631:5:65"},{"kind":"number","nativeSrc":"10638:34:65","nodeType":"YulLiteral","src":"10638:34:65","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"10627:3:65","nodeType":"YulIdentifier","src":"10627:3:65"},"nativeSrc":"10627:46:65","nodeType":"YulFunctionCall","src":"10627:46:65"},"variableNames":[{"name":"cleaned","nativeSrc":"10616:7:65","nodeType":"YulIdentifier","src":"10616:7:65"}]}]},"name":"cleanup_t_uint128","nativeSrc":"10561:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10588:5:65","nodeType":"YulTypedName","src":"10588:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10598:7:65","nodeType":"YulTypedName","src":"10598:7:65","type":""}],"src":"10561:118:65"},{"body":{"nativeSrc":"10728:79:65","nodeType":"YulBlock","src":"10728:79:65","statements":[{"body":{"nativeSrc":"10785:16:65","nodeType":"YulBlock","src":"10785:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10794:1:65","nodeType":"YulLiteral","src":"10794:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"10797:1:65","nodeType":"YulLiteral","src":"10797:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10787:6:65","nodeType":"YulIdentifier","src":"10787:6:65"},"nativeSrc":"10787:12:65","nodeType":"YulFunctionCall","src":"10787:12:65"},"nativeSrc":"10787:12:65","nodeType":"YulExpressionStatement","src":"10787:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10751:5:65","nodeType":"YulIdentifier","src":"10751:5:65"},{"arguments":[{"name":"value","nativeSrc":"10776:5:65","nodeType":"YulIdentifier","src":"10776:5:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"10758:17:65","nodeType":"YulIdentifier","src":"10758:17:65"},"nativeSrc":"10758:24:65","nodeType":"YulFunctionCall","src":"10758:24:65"}],"functionName":{"name":"eq","nativeSrc":"10748:2:65","nodeType":"YulIdentifier","src":"10748:2:65"},"nativeSrc":"10748:35:65","nodeType":"YulFunctionCall","src":"10748:35:65"}],"functionName":{"name":"iszero","nativeSrc":"10741:6:65","nodeType":"YulIdentifier","src":"10741:6:65"},"nativeSrc":"10741:43:65","nodeType":"YulFunctionCall","src":"10741:43:65"},"nativeSrc":"10738:63:65","nodeType":"YulIf","src":"10738:63:65"}]},"name":"validator_revert_t_uint128","nativeSrc":"10685:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10721:5:65","nodeType":"YulTypedName","src":"10721:5:65","type":""}],"src":"10685:122:65"},{"body":{"nativeSrc":"10865:87:65","nodeType":"YulBlock","src":"10865:87:65","statements":[{"nativeSrc":"10875:29:65","nodeType":"YulAssignment","src":"10875:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"10897:6:65","nodeType":"YulIdentifier","src":"10897:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"10884:12:65","nodeType":"YulIdentifier","src":"10884:12:65"},"nativeSrc":"10884:20:65","nodeType":"YulFunctionCall","src":"10884:20:65"},"variableNames":[{"name":"value","nativeSrc":"10875:5:65","nodeType":"YulIdentifier","src":"10875:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10940:5:65","nodeType":"YulIdentifier","src":"10940:5:65"}],"functionName":{"name":"validator_revert_t_uint128","nativeSrc":"10913:26:65","nodeType":"YulIdentifier","src":"10913:26:65"},"nativeSrc":"10913:33:65","nodeType":"YulFunctionCall","src":"10913:33:65"},"nativeSrc":"10913:33:65","nodeType":"YulExpressionStatement","src":"10913:33:65"}]},"name":"abi_decode_t_uint128","nativeSrc":"10813:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10843:6:65","nodeType":"YulTypedName","src":"10843:6:65","type":""},{"name":"end","nativeSrc":"10851:3:65","nodeType":"YulTypedName","src":"10851:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10859:5:65","nodeType":"YulTypedName","src":"10859:5:65","type":""}],"src":"10813:139:65"},{"body":{"nativeSrc":"11000:78:65","nodeType":"YulBlock","src":"11000:78:65","statements":[{"body":{"nativeSrc":"11056:16:65","nodeType":"YulBlock","src":"11056:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11065:1:65","nodeType":"YulLiteral","src":"11065:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"11068:1:65","nodeType":"YulLiteral","src":"11068:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11058:6:65","nodeType":"YulIdentifier","src":"11058:6:65"},"nativeSrc":"11058:12:65","nodeType":"YulFunctionCall","src":"11058:12:65"},"nativeSrc":"11058:12:65","nodeType":"YulExpressionStatement","src":"11058:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11023:5:65","nodeType":"YulIdentifier","src":"11023:5:65"},{"arguments":[{"name":"value","nativeSrc":"11047:5:65","nodeType":"YulIdentifier","src":"11047:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"11030:16:65","nodeType":"YulIdentifier","src":"11030:16:65"},"nativeSrc":"11030:23:65","nodeType":"YulFunctionCall","src":"11030:23:65"}],"functionName":{"name":"eq","nativeSrc":"11020:2:65","nodeType":"YulIdentifier","src":"11020:2:65"},"nativeSrc":"11020:34:65","nodeType":"YulFunctionCall","src":"11020:34:65"}],"functionName":{"name":"iszero","nativeSrc":"11013:6:65","nodeType":"YulIdentifier","src":"11013:6:65"},"nativeSrc":"11013:42:65","nodeType":"YulFunctionCall","src":"11013:42:65"},"nativeSrc":"11010:62:65","nodeType":"YulIf","src":"11010:62:65"}]},"name":"validator_revert_t_uint64","nativeSrc":"10958:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10993:5:65","nodeType":"YulTypedName","src":"10993:5:65","type":""}],"src":"10958:120:65"},{"body":{"nativeSrc":"11135:86:65","nodeType":"YulBlock","src":"11135:86:65","statements":[{"nativeSrc":"11145:29:65","nodeType":"YulAssignment","src":"11145:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"11167:6:65","nodeType":"YulIdentifier","src":"11167:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"11154:12:65","nodeType":"YulIdentifier","src":"11154:12:65"},"nativeSrc":"11154:20:65","nodeType":"YulFunctionCall","src":"11154:20:65"},"variableNames":[{"name":"value","nativeSrc":"11145:5:65","nodeType":"YulIdentifier","src":"11145:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11209:5:65","nodeType":"YulIdentifier","src":"11209:5:65"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"11183:25:65","nodeType":"YulIdentifier","src":"11183:25:65"},"nativeSrc":"11183:32:65","nodeType":"YulFunctionCall","src":"11183:32:65"},"nativeSrc":"11183:32:65","nodeType":"YulExpressionStatement","src":"11183:32:65"}]},"name":"abi_decode_t_uint64","nativeSrc":"11084:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11113:6:65","nodeType":"YulTypedName","src":"11113:6:65","type":""},{"name":"end","nativeSrc":"11121:3:65","nodeType":"YulTypedName","src":"11121:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11129:5:65","nodeType":"YulTypedName","src":"11129:5:65","type":""}],"src":"11084:137:65"},{"body":{"nativeSrc":"11359:775:65","nodeType":"YulBlock","src":"11359:775:65","statements":[{"body":{"nativeSrc":"11406:83:65","nodeType":"YulBlock","src":"11406:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11408:77:65","nodeType":"YulIdentifier","src":"11408:77:65"},"nativeSrc":"11408:79:65","nodeType":"YulFunctionCall","src":"11408:79:65"},"nativeSrc":"11408:79:65","nodeType":"YulExpressionStatement","src":"11408:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11380:7:65","nodeType":"YulIdentifier","src":"11380:7:65"},{"name":"headStart","nativeSrc":"11389:9:65","nodeType":"YulIdentifier","src":"11389:9:65"}],"functionName":{"name":"sub","nativeSrc":"11376:3:65","nodeType":"YulIdentifier","src":"11376:3:65"},"nativeSrc":"11376:23:65","nodeType":"YulFunctionCall","src":"11376:23:65"},{"kind":"number","nativeSrc":"11401:3:65","nodeType":"YulLiteral","src":"11401:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"11372:3:65","nodeType":"YulIdentifier","src":"11372:3:65"},"nativeSrc":"11372:33:65","nodeType":"YulFunctionCall","src":"11372:33:65"},"nativeSrc":"11369:120:65","nodeType":"YulIf","src":"11369:120:65"},{"nativeSrc":"11499:117:65","nodeType":"YulBlock","src":"11499:117:65","statements":[{"nativeSrc":"11514:15:65","nodeType":"YulVariableDeclaration","src":"11514:15:65","value":{"kind":"number","nativeSrc":"11528:1:65","nodeType":"YulLiteral","src":"11528:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11518:6:65","nodeType":"YulTypedName","src":"11518:6:65","type":""}]},{"nativeSrc":"11543:63:65","nodeType":"YulAssignment","src":"11543:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11578:9:65","nodeType":"YulIdentifier","src":"11578:9:65"},{"name":"offset","nativeSrc":"11589:6:65","nodeType":"YulIdentifier","src":"11589:6:65"}],"functionName":{"name":"add","nativeSrc":"11574:3:65","nodeType":"YulIdentifier","src":"11574:3:65"},"nativeSrc":"11574:22:65","nodeType":"YulFunctionCall","src":"11574:22:65"},{"name":"dataEnd","nativeSrc":"11598:7:65","nodeType":"YulIdentifier","src":"11598:7:65"}],"functionName":{"name":"abi_decode_t_uint128","nativeSrc":"11553:20:65","nodeType":"YulIdentifier","src":"11553:20:65"},"nativeSrc":"11553:53:65","nodeType":"YulFunctionCall","src":"11553:53:65"},"variableNames":[{"name":"value0","nativeSrc":"11543:6:65","nodeType":"YulIdentifier","src":"11543:6:65"}]}]},{"nativeSrc":"11626:118:65","nodeType":"YulBlock","src":"11626:118:65","statements":[{"nativeSrc":"11641:16:65","nodeType":"YulVariableDeclaration","src":"11641:16:65","value":{"kind":"number","nativeSrc":"11655:2:65","nodeType":"YulLiteral","src":"11655:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11645:6:65","nodeType":"YulTypedName","src":"11645:6:65","type":""}]},{"nativeSrc":"11671:63:65","nodeType":"YulAssignment","src":"11671:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11706:9:65","nodeType":"YulIdentifier","src":"11706:9:65"},{"name":"offset","nativeSrc":"11717:6:65","nodeType":"YulIdentifier","src":"11717:6:65"}],"functionName":{"name":"add","nativeSrc":"11702:3:65","nodeType":"YulIdentifier","src":"11702:3:65"},"nativeSrc":"11702:22:65","nodeType":"YulFunctionCall","src":"11702:22:65"},{"name":"dataEnd","nativeSrc":"11726:7:65","nodeType":"YulIdentifier","src":"11726:7:65"}],"functionName":{"name":"abi_decode_t_uint128","nativeSrc":"11681:20:65","nodeType":"YulIdentifier","src":"11681:20:65"},"nativeSrc":"11681:53:65","nodeType":"YulFunctionCall","src":"11681:53:65"},"variableNames":[{"name":"value1","nativeSrc":"11671:6:65","nodeType":"YulIdentifier","src":"11671:6:65"}]}]},{"nativeSrc":"11754:118:65","nodeType":"YulBlock","src":"11754:118:65","statements":[{"nativeSrc":"11769:16:65","nodeType":"YulVariableDeclaration","src":"11769:16:65","value":{"kind":"number","nativeSrc":"11783:2:65","nodeType":"YulLiteral","src":"11783:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11773:6:65","nodeType":"YulTypedName","src":"11773:6:65","type":""}]},{"nativeSrc":"11799:63:65","nodeType":"YulAssignment","src":"11799:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11834:9:65","nodeType":"YulIdentifier","src":"11834:9:65"},{"name":"offset","nativeSrc":"11845:6:65","nodeType":"YulIdentifier","src":"11845:6:65"}],"functionName":{"name":"add","nativeSrc":"11830:3:65","nodeType":"YulIdentifier","src":"11830:3:65"},"nativeSrc":"11830:22:65","nodeType":"YulFunctionCall","src":"11830:22:65"},{"name":"dataEnd","nativeSrc":"11854:7:65","nodeType":"YulIdentifier","src":"11854:7:65"}],"functionName":{"name":"abi_decode_t_uint128","nativeSrc":"11809:20:65","nodeType":"YulIdentifier","src":"11809:20:65"},"nativeSrc":"11809:53:65","nodeType":"YulFunctionCall","src":"11809:53:65"},"variableNames":[{"name":"value2","nativeSrc":"11799:6:65","nodeType":"YulIdentifier","src":"11799:6:65"}]}]},{"nativeSrc":"11882:117:65","nodeType":"YulBlock","src":"11882:117:65","statements":[{"nativeSrc":"11897:16:65","nodeType":"YulVariableDeclaration","src":"11897:16:65","value":{"kind":"number","nativeSrc":"11911:2:65","nodeType":"YulLiteral","src":"11911:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11901:6:65","nodeType":"YulTypedName","src":"11901:6:65","type":""}]},{"nativeSrc":"11927:62:65","nodeType":"YulAssignment","src":"11927:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11961:9:65","nodeType":"YulIdentifier","src":"11961:9:65"},{"name":"offset","nativeSrc":"11972:6:65","nodeType":"YulIdentifier","src":"11972:6:65"}],"functionName":{"name":"add","nativeSrc":"11957:3:65","nodeType":"YulIdentifier","src":"11957:3:65"},"nativeSrc":"11957:22:65","nodeType":"YulFunctionCall","src":"11957:22:65"},{"name":"dataEnd","nativeSrc":"11981:7:65","nodeType":"YulIdentifier","src":"11981:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"11937:19:65","nodeType":"YulIdentifier","src":"11937:19:65"},"nativeSrc":"11937:52:65","nodeType":"YulFunctionCall","src":"11937:52:65"},"variableNames":[{"name":"value3","nativeSrc":"11927:6:65","nodeType":"YulIdentifier","src":"11927:6:65"}]}]},{"nativeSrc":"12009:118:65","nodeType":"YulBlock","src":"12009:118:65","statements":[{"nativeSrc":"12024:17:65","nodeType":"YulVariableDeclaration","src":"12024:17:65","value":{"kind":"number","nativeSrc":"12038:3:65","nodeType":"YulLiteral","src":"12038:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"12028:6:65","nodeType":"YulTypedName","src":"12028:6:65","type":""}]},{"nativeSrc":"12055:62:65","nodeType":"YulAssignment","src":"12055:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12089:9:65","nodeType":"YulIdentifier","src":"12089:9:65"},{"name":"offset","nativeSrc":"12100:6:65","nodeType":"YulIdentifier","src":"12100:6:65"}],"functionName":{"name":"add","nativeSrc":"12085:3:65","nodeType":"YulIdentifier","src":"12085:3:65"},"nativeSrc":"12085:22:65","nodeType":"YulFunctionCall","src":"12085:22:65"},{"name":"dataEnd","nativeSrc":"12109:7:65","nodeType":"YulIdentifier","src":"12109:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"12065:19:65","nodeType":"YulIdentifier","src":"12065:19:65"},"nativeSrc":"12065:52:65","nodeType":"YulFunctionCall","src":"12065:52:65"},"variableNames":[{"name":"value4","nativeSrc":"12055:6:65","nodeType":"YulIdentifier","src":"12055:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64","nativeSrc":"11227:907:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11297:9:65","nodeType":"YulTypedName","src":"11297:9:65","type":""},{"name":"dataEnd","nativeSrc":"11308:7:65","nodeType":"YulTypedName","src":"11308:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11320:6:65","nodeType":"YulTypedName","src":"11320:6:65","type":""},{"name":"value1","nativeSrc":"11328:6:65","nodeType":"YulTypedName","src":"11328:6:65","type":""},{"name":"value2","nativeSrc":"11336:6:65","nodeType":"YulTypedName","src":"11336:6:65","type":""},{"name":"value3","nativeSrc":"11344:6:65","nodeType":"YulTypedName","src":"11344:6:65","type":""},{"name":"value4","nativeSrc":"11352:6:65","nodeType":"YulTypedName","src":"11352:6:65","type":""}],"src":"11227:907:65"},{"body":{"nativeSrc":"12180:76:65","nodeType":"YulBlock","src":"12180:76:65","statements":[{"body":{"nativeSrc":"12234:16:65","nodeType":"YulBlock","src":"12234:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12243:1:65","nodeType":"YulLiteral","src":"12243:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12246:1:65","nodeType":"YulLiteral","src":"12246:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12236:6:65","nodeType":"YulIdentifier","src":"12236:6:65"},"nativeSrc":"12236:12:65","nodeType":"YulFunctionCall","src":"12236:12:65"},"nativeSrc":"12236:12:65","nodeType":"YulExpressionStatement","src":"12236:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12203:5:65","nodeType":"YulIdentifier","src":"12203:5:65"},{"arguments":[{"name":"value","nativeSrc":"12225:5:65","nodeType":"YulIdentifier","src":"12225:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12210:14:65","nodeType":"YulIdentifier","src":"12210:14:65"},"nativeSrc":"12210:21:65","nodeType":"YulFunctionCall","src":"12210:21:65"}],"functionName":{"name":"eq","nativeSrc":"12200:2:65","nodeType":"YulIdentifier","src":"12200:2:65"},"nativeSrc":"12200:32:65","nodeType":"YulFunctionCall","src":"12200:32:65"}],"functionName":{"name":"iszero","nativeSrc":"12193:6:65","nodeType":"YulIdentifier","src":"12193:6:65"},"nativeSrc":"12193:40:65","nodeType":"YulFunctionCall","src":"12193:40:65"},"nativeSrc":"12190:60:65","nodeType":"YulIf","src":"12190:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"12140:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12173:5:65","nodeType":"YulTypedName","src":"12173:5:65","type":""}],"src":"12140:116:65"},{"body":{"nativeSrc":"12311:84:65","nodeType":"YulBlock","src":"12311:84:65","statements":[{"nativeSrc":"12321:29:65","nodeType":"YulAssignment","src":"12321:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"12343:6:65","nodeType":"YulIdentifier","src":"12343:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"12330:12:65","nodeType":"YulIdentifier","src":"12330:12:65"},"nativeSrc":"12330:20:65","nodeType":"YulFunctionCall","src":"12330:20:65"},"variableNames":[{"name":"value","nativeSrc":"12321:5:65","nodeType":"YulIdentifier","src":"12321:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12383:5:65","nodeType":"YulIdentifier","src":"12383:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12359:23:65","nodeType":"YulIdentifier","src":"12359:23:65"},"nativeSrc":"12359:30:65","nodeType":"YulFunctionCall","src":"12359:30:65"},"nativeSrc":"12359:30:65","nodeType":"YulExpressionStatement","src":"12359:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"12262:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12289:6:65","nodeType":"YulTypedName","src":"12289:6:65","type":""},{"name":"end","nativeSrc":"12297:3:65","nodeType":"YulTypedName","src":"12297:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12305:5:65","nodeType":"YulTypedName","src":"12305:5:65","type":""}],"src":"12262:133:65"},{"body":{"nativeSrc":"12549:1111:65","nodeType":"YulBlock","src":"12549:1111:65","statements":[{"body":{"nativeSrc":"12596:83:65","nodeType":"YulBlock","src":"12596:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12598:77:65","nodeType":"YulIdentifier","src":"12598:77:65"},"nativeSrc":"12598:79:65","nodeType":"YulFunctionCall","src":"12598:79:65"},"nativeSrc":"12598:79:65","nodeType":"YulExpressionStatement","src":"12598:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12570:7:65","nodeType":"YulIdentifier","src":"12570:7:65"},{"name":"headStart","nativeSrc":"12579:9:65","nodeType":"YulIdentifier","src":"12579:9:65"}],"functionName":{"name":"sub","nativeSrc":"12566:3:65","nodeType":"YulIdentifier","src":"12566:3:65"},"nativeSrc":"12566:23:65","nodeType":"YulFunctionCall","src":"12566:23:65"},{"kind":"number","nativeSrc":"12591:3:65","nodeType":"YulLiteral","src":"12591:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"12562:3:65","nodeType":"YulIdentifier","src":"12562:3:65"},"nativeSrc":"12562:33:65","nodeType":"YulFunctionCall","src":"12562:33:65"},"nativeSrc":"12559:120:65","nodeType":"YulIf","src":"12559:120:65"},{"nativeSrc":"12689:116:65","nodeType":"YulBlock","src":"12689:116:65","statements":[{"nativeSrc":"12704:15:65","nodeType":"YulVariableDeclaration","src":"12704:15:65","value":{"kind":"number","nativeSrc":"12718:1:65","nodeType":"YulLiteral","src":"12718:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12708:6:65","nodeType":"YulTypedName","src":"12708:6:65","type":""}]},{"nativeSrc":"12733:62:65","nodeType":"YulAssignment","src":"12733:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12767:9:65","nodeType":"YulIdentifier","src":"12767:9:65"},{"name":"offset","nativeSrc":"12778:6:65","nodeType":"YulIdentifier","src":"12778:6:65"}],"functionName":{"name":"add","nativeSrc":"12763:3:65","nodeType":"YulIdentifier","src":"12763:3:65"},"nativeSrc":"12763:22:65","nodeType":"YulFunctionCall","src":"12763:22:65"},{"name":"dataEnd","nativeSrc":"12787:7:65","nodeType":"YulIdentifier","src":"12787:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"12743:19:65","nodeType":"YulIdentifier","src":"12743:19:65"},"nativeSrc":"12743:52:65","nodeType":"YulFunctionCall","src":"12743:52:65"},"variableNames":[{"name":"value0","nativeSrc":"12733:6:65","nodeType":"YulIdentifier","src":"12733:6:65"}]}]},{"nativeSrc":"12815:118:65","nodeType":"YulBlock","src":"12815:118:65","statements":[{"nativeSrc":"12830:16:65","nodeType":"YulVariableDeclaration","src":"12830:16:65","value":{"kind":"number","nativeSrc":"12844:2:65","nodeType":"YulLiteral","src":"12844:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12834:6:65","nodeType":"YulTypedName","src":"12834:6:65","type":""}]},{"nativeSrc":"12860:63:65","nodeType":"YulAssignment","src":"12860:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12895:9:65","nodeType":"YulIdentifier","src":"12895:9:65"},{"name":"offset","nativeSrc":"12906:6:65","nodeType":"YulIdentifier","src":"12906:6:65"}],"functionName":{"name":"add","nativeSrc":"12891:3:65","nodeType":"YulIdentifier","src":"12891:3:65"},"nativeSrc":"12891:22:65","nodeType":"YulFunctionCall","src":"12891:22:65"},{"name":"dataEnd","nativeSrc":"12915:7:65","nodeType":"YulIdentifier","src":"12915:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12870:20:65","nodeType":"YulIdentifier","src":"12870:20:65"},"nativeSrc":"12870:53:65","nodeType":"YulFunctionCall","src":"12870:53:65"},"variableNames":[{"name":"value1","nativeSrc":"12860:6:65","nodeType":"YulIdentifier","src":"12860:6:65"}]}]},{"nativeSrc":"12943:287:65","nodeType":"YulBlock","src":"12943:287:65","statements":[{"nativeSrc":"12958:46:65","nodeType":"YulVariableDeclaration","src":"12958:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12989:9:65","nodeType":"YulIdentifier","src":"12989:9:65"},{"kind":"number","nativeSrc":"13000:2:65","nodeType":"YulLiteral","src":"13000:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12985:3:65","nodeType":"YulIdentifier","src":"12985:3:65"},"nativeSrc":"12985:18:65","nodeType":"YulFunctionCall","src":"12985:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"12972:12:65","nodeType":"YulIdentifier","src":"12972:12:65"},"nativeSrc":"12972:32:65","nodeType":"YulFunctionCall","src":"12972:32:65"},"variables":[{"name":"offset","nativeSrc":"12962:6:65","nodeType":"YulTypedName","src":"12962:6:65","type":""}]},{"body":{"nativeSrc":"13051:83:65","nodeType":"YulBlock","src":"13051:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13053:77:65","nodeType":"YulIdentifier","src":"13053:77:65"},"nativeSrc":"13053:79:65","nodeType":"YulFunctionCall","src":"13053:79:65"},"nativeSrc":"13053:79:65","nodeType":"YulExpressionStatement","src":"13053:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13023:6:65","nodeType":"YulIdentifier","src":"13023:6:65"},{"kind":"number","nativeSrc":"13031:18:65","nodeType":"YulLiteral","src":"13031:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13020:2:65","nodeType":"YulIdentifier","src":"13020:2:65"},"nativeSrc":"13020:30:65","nodeType":"YulFunctionCall","src":"13020:30:65"},"nativeSrc":"13017:117:65","nodeType":"YulIf","src":"13017:117:65"},{"nativeSrc":"13148:72:65","nodeType":"YulAssignment","src":"13148:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13192:9:65","nodeType":"YulIdentifier","src":"13192:9:65"},{"name":"offset","nativeSrc":"13203:6:65","nodeType":"YulIdentifier","src":"13203:6:65"}],"functionName":{"name":"add","nativeSrc":"13188:3:65","nodeType":"YulIdentifier","src":"13188:3:65"},"nativeSrc":"13188:22:65","nodeType":"YulFunctionCall","src":"13188:22:65"},{"name":"dataEnd","nativeSrc":"13212:7:65","nodeType":"YulIdentifier","src":"13212:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13158:29:65","nodeType":"YulIdentifier","src":"13158:29:65"},"nativeSrc":"13158:62:65","nodeType":"YulFunctionCall","src":"13158:62:65"},"variableNames":[{"name":"value2","nativeSrc":"13148:6:65","nodeType":"YulIdentifier","src":"13148:6:65"}]}]},{"nativeSrc":"13240:115:65","nodeType":"YulBlock","src":"13240:115:65","statements":[{"nativeSrc":"13255:16:65","nodeType":"YulVariableDeclaration","src":"13255:16:65","value":{"kind":"number","nativeSrc":"13269:2:65","nodeType":"YulLiteral","src":"13269:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"13259:6:65","nodeType":"YulTypedName","src":"13259:6:65","type":""}]},{"nativeSrc":"13285:60:65","nodeType":"YulAssignment","src":"13285:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13317:9:65","nodeType":"YulIdentifier","src":"13317:9:65"},{"name":"offset","nativeSrc":"13328:6:65","nodeType":"YulIdentifier","src":"13328:6:65"}],"functionName":{"name":"add","nativeSrc":"13313:3:65","nodeType":"YulIdentifier","src":"13313:3:65"},"nativeSrc":"13313:22:65","nodeType":"YulFunctionCall","src":"13313:22:65"},{"name":"dataEnd","nativeSrc":"13337:7:65","nodeType":"YulIdentifier","src":"13337:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"13295:17:65","nodeType":"YulIdentifier","src":"13295:17:65"},"nativeSrc":"13295:50:65","nodeType":"YulFunctionCall","src":"13295:50:65"},"variableNames":[{"name":"value3","nativeSrc":"13285:6:65","nodeType":"YulIdentifier","src":"13285:6:65"}]}]},{"nativeSrc":"13365:288:65","nodeType":"YulBlock","src":"13365:288:65","statements":[{"nativeSrc":"13380:47:65","nodeType":"YulVariableDeclaration","src":"13380:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13411:9:65","nodeType":"YulIdentifier","src":"13411:9:65"},{"kind":"number","nativeSrc":"13422:3:65","nodeType":"YulLiteral","src":"13422:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13407:3:65","nodeType":"YulIdentifier","src":"13407:3:65"},"nativeSrc":"13407:19:65","nodeType":"YulFunctionCall","src":"13407:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"13394:12:65","nodeType":"YulIdentifier","src":"13394:12:65"},"nativeSrc":"13394:33:65","nodeType":"YulFunctionCall","src":"13394:33:65"},"variables":[{"name":"offset","nativeSrc":"13384:6:65","nodeType":"YulTypedName","src":"13384:6:65","type":""}]},{"body":{"nativeSrc":"13474:83:65","nodeType":"YulBlock","src":"13474:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13476:77:65","nodeType":"YulIdentifier","src":"13476:77:65"},"nativeSrc":"13476:79:65","nodeType":"YulFunctionCall","src":"13476:79:65"},"nativeSrc":"13476:79:65","nodeType":"YulExpressionStatement","src":"13476:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13446:6:65","nodeType":"YulIdentifier","src":"13446:6:65"},{"kind":"number","nativeSrc":"13454:18:65","nodeType":"YulLiteral","src":"13454:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13443:2:65","nodeType":"YulIdentifier","src":"13443:2:65"},"nativeSrc":"13443:30:65","nodeType":"YulFunctionCall","src":"13443:30:65"},"nativeSrc":"13440:117:65","nodeType":"YulIf","src":"13440:117:65"},{"nativeSrc":"13571:72:65","nodeType":"YulAssignment","src":"13571:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13615:9:65","nodeType":"YulIdentifier","src":"13615:9:65"},{"name":"offset","nativeSrc":"13626:6:65","nodeType":"YulIdentifier","src":"13626:6:65"}],"functionName":{"name":"add","nativeSrc":"13611:3:65","nodeType":"YulIdentifier","src":"13611:3:65"},"nativeSrc":"13611:22:65","nodeType":"YulFunctionCall","src":"13611:22:65"},{"name":"dataEnd","nativeSrc":"13635:7:65","nodeType":"YulIdentifier","src":"13635:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13581:29:65","nodeType":"YulIdentifier","src":"13581:29:65"},"nativeSrc":"13581:62:65","nodeType":"YulFunctionCall","src":"13581:62:65"},"variableNames":[{"name":"value4","nativeSrc":"13571:6:65","nodeType":"YulIdentifier","src":"13571:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr","nativeSrc":"12401:1259:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12487:9:65","nodeType":"YulTypedName","src":"12487:9:65","type":""},{"name":"dataEnd","nativeSrc":"12498:7:65","nodeType":"YulTypedName","src":"12498:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12510:6:65","nodeType":"YulTypedName","src":"12510:6:65","type":""},{"name":"value1","nativeSrc":"12518:6:65","nodeType":"YulTypedName","src":"12518:6:65","type":""},{"name":"value2","nativeSrc":"12526:6:65","nodeType":"YulTypedName","src":"12526:6:65","type":""},{"name":"value3","nativeSrc":"12534:6:65","nodeType":"YulTypedName","src":"12534:6:65","type":""},{"name":"value4","nativeSrc":"12542:6:65","nodeType":"YulTypedName","src":"12542:6:65","type":""}],"src":"12401:1259:65"},{"body":{"nativeSrc":"13764:124:65","nodeType":"YulBlock","src":"13764:124:65","statements":[{"nativeSrc":"13774:26:65","nodeType":"YulAssignment","src":"13774:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"13786:9:65","nodeType":"YulIdentifier","src":"13786:9:65"},{"kind":"number","nativeSrc":"13797:2:65","nodeType":"YulLiteral","src":"13797:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13782:3:65","nodeType":"YulIdentifier","src":"13782:3:65"},"nativeSrc":"13782:18:65","nodeType":"YulFunctionCall","src":"13782:18:65"},"variableNames":[{"name":"tail","nativeSrc":"13774:4:65","nodeType":"YulIdentifier","src":"13774:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13854:6:65","nodeType":"YulIdentifier","src":"13854:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"13867:9:65","nodeType":"YulIdentifier","src":"13867:9:65"},{"kind":"number","nativeSrc":"13878:1:65","nodeType":"YulLiteral","src":"13878:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13863:3:65","nodeType":"YulIdentifier","src":"13863:3:65"},"nativeSrc":"13863:17:65","nodeType":"YulFunctionCall","src":"13863:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13810:43:65","nodeType":"YulIdentifier","src":"13810:43:65"},"nativeSrc":"13810:71:65","nodeType":"YulFunctionCall","src":"13810:71:65"},"nativeSrc":"13810:71:65","nodeType":"YulExpressionStatement","src":"13810:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"13666:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13736:9:65","nodeType":"YulTypedName","src":"13736:9:65","type":""},{"name":"value0","nativeSrc":"13748:6:65","nodeType":"YulTypedName","src":"13748:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13759:4:65","nodeType":"YulTypedName","src":"13759:4:65","type":""}],"src":"13666:222:65"},{"body":{"nativeSrc":"13985:559:65","nodeType":"YulBlock","src":"13985:559:65","statements":[{"body":{"nativeSrc":"14031:83:65","nodeType":"YulBlock","src":"14031:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14033:77:65","nodeType":"YulIdentifier","src":"14033:77:65"},"nativeSrc":"14033:79:65","nodeType":"YulFunctionCall","src":"14033:79:65"},"nativeSrc":"14033:79:65","nodeType":"YulExpressionStatement","src":"14033:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14006:7:65","nodeType":"YulIdentifier","src":"14006:7:65"},{"name":"headStart","nativeSrc":"14015:9:65","nodeType":"YulIdentifier","src":"14015:9:65"}],"functionName":{"name":"sub","nativeSrc":"14002:3:65","nodeType":"YulIdentifier","src":"14002:3:65"},"nativeSrc":"14002:23:65","nodeType":"YulFunctionCall","src":"14002:23:65"},{"kind":"number","nativeSrc":"14027:2:65","nodeType":"YulLiteral","src":"14027:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"13998:3:65","nodeType":"YulIdentifier","src":"13998:3:65"},"nativeSrc":"13998:32:65","nodeType":"YulFunctionCall","src":"13998:32:65"},"nativeSrc":"13995:119:65","nodeType":"YulIf","src":"13995:119:65"},{"nativeSrc":"14124:116:65","nodeType":"YulBlock","src":"14124:116:65","statements":[{"nativeSrc":"14139:15:65","nodeType":"YulVariableDeclaration","src":"14139:15:65","value":{"kind":"number","nativeSrc":"14153:1:65","nodeType":"YulLiteral","src":"14153:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14143:6:65","nodeType":"YulTypedName","src":"14143:6:65","type":""}]},{"nativeSrc":"14168:62:65","nodeType":"YulAssignment","src":"14168:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14202:9:65","nodeType":"YulIdentifier","src":"14202:9:65"},{"name":"offset","nativeSrc":"14213:6:65","nodeType":"YulIdentifier","src":"14213:6:65"}],"functionName":{"name":"add","nativeSrc":"14198:3:65","nodeType":"YulIdentifier","src":"14198:3:65"},"nativeSrc":"14198:22:65","nodeType":"YulFunctionCall","src":"14198:22:65"},{"name":"dataEnd","nativeSrc":"14222:7:65","nodeType":"YulIdentifier","src":"14222:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"14178:19:65","nodeType":"YulIdentifier","src":"14178:19:65"},"nativeSrc":"14178:52:65","nodeType":"YulFunctionCall","src":"14178:52:65"},"variableNames":[{"name":"value0","nativeSrc":"14168:6:65","nodeType":"YulIdentifier","src":"14168:6:65"}]}]},{"nativeSrc":"14250:287:65","nodeType":"YulBlock","src":"14250:287:65","statements":[{"nativeSrc":"14265:46:65","nodeType":"YulVariableDeclaration","src":"14265:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14296:9:65","nodeType":"YulIdentifier","src":"14296:9:65"},{"kind":"number","nativeSrc":"14307:2:65","nodeType":"YulLiteral","src":"14307:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14292:3:65","nodeType":"YulIdentifier","src":"14292:3:65"},"nativeSrc":"14292:18:65","nodeType":"YulFunctionCall","src":"14292:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"14279:12:65","nodeType":"YulIdentifier","src":"14279:12:65"},"nativeSrc":"14279:32:65","nodeType":"YulFunctionCall","src":"14279:32:65"},"variables":[{"name":"offset","nativeSrc":"14269:6:65","nodeType":"YulTypedName","src":"14269:6:65","type":""}]},{"body":{"nativeSrc":"14358:83:65","nodeType":"YulBlock","src":"14358:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14360:77:65","nodeType":"YulIdentifier","src":"14360:77:65"},"nativeSrc":"14360:79:65","nodeType":"YulFunctionCall","src":"14360:79:65"},"nativeSrc":"14360:79:65","nodeType":"YulExpressionStatement","src":"14360:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14330:6:65","nodeType":"YulIdentifier","src":"14330:6:65"},{"kind":"number","nativeSrc":"14338:18:65","nodeType":"YulLiteral","src":"14338:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14327:2:65","nodeType":"YulIdentifier","src":"14327:2:65"},"nativeSrc":"14327:30:65","nodeType":"YulFunctionCall","src":"14327:30:65"},"nativeSrc":"14324:117:65","nodeType":"YulIf","src":"14324:117:65"},{"nativeSrc":"14455:72:65","nodeType":"YulAssignment","src":"14455:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14499:9:65","nodeType":"YulIdentifier","src":"14499:9:65"},{"name":"offset","nativeSrc":"14510:6:65","nodeType":"YulIdentifier","src":"14510:6:65"}],"functionName":{"name":"add","nativeSrc":"14495:3:65","nodeType":"YulIdentifier","src":"14495:3:65"},"nativeSrc":"14495:22:65","nodeType":"YulFunctionCall","src":"14495:22:65"},{"name":"dataEnd","nativeSrc":"14519:7:65","nodeType":"YulIdentifier","src":"14519:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14465:29:65","nodeType":"YulIdentifier","src":"14465:29:65"},"nativeSrc":"14465:62:65","nodeType":"YulFunctionCall","src":"14465:62:65"},"variableNames":[{"name":"value1","nativeSrc":"14455:6:65","nodeType":"YulIdentifier","src":"14455:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptr","nativeSrc":"13894:650:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13947:9:65","nodeType":"YulTypedName","src":"13947:9:65","type":""},{"name":"dataEnd","nativeSrc":"13958:7:65","nodeType":"YulTypedName","src":"13958:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13970:6:65","nodeType":"YulTypedName","src":"13970:6:65","type":""},{"name":"value1","nativeSrc":"13978:6:65","nodeType":"YulTypedName","src":"13978:6:65","type":""}],"src":"13894:650:65"},{"body":{"nativeSrc":"14595:32:65","nodeType":"YulBlock","src":"14595:32:65","statements":[{"nativeSrc":"14605:16:65","nodeType":"YulAssignment","src":"14605:16:65","value":{"name":"value","nativeSrc":"14616:5:65","nodeType":"YulIdentifier","src":"14616:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"14605:7:65","nodeType":"YulIdentifier","src":"14605:7:65"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"14550:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14577:5:65","nodeType":"YulTypedName","src":"14577:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14587:7:65","nodeType":"YulTypedName","src":"14587:7:65","type":""}],"src":"14550:77:65"},{"body":{"nativeSrc":"14698:53:65","nodeType":"YulBlock","src":"14698:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14715:3:65","nodeType":"YulIdentifier","src":"14715:3:65"},{"arguments":[{"name":"value","nativeSrc":"14738:5:65","nodeType":"YulIdentifier","src":"14738:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"14720:17:65","nodeType":"YulIdentifier","src":"14720:17:65"},"nativeSrc":"14720:24:65","nodeType":"YulFunctionCall","src":"14720:24:65"}],"functionName":{"name":"mstore","nativeSrc":"14708:6:65","nodeType":"YulIdentifier","src":"14708:6:65"},"nativeSrc":"14708:37:65","nodeType":"YulFunctionCall","src":"14708:37:65"},"nativeSrc":"14708:37:65","nodeType":"YulExpressionStatement","src":"14708:37:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"14633:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14686:5:65","nodeType":"YulTypedName","src":"14686:5:65","type":""},{"name":"pos","nativeSrc":"14693:3:65","nodeType":"YulTypedName","src":"14693:3:65","type":""}],"src":"14633:118:65"},{"body":{"nativeSrc":"14909:286:65","nodeType":"YulBlock","src":"14909:286:65","statements":[{"nativeSrc":"14919:26:65","nodeType":"YulAssignment","src":"14919:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14931:9:65","nodeType":"YulIdentifier","src":"14931:9:65"},{"kind":"number","nativeSrc":"14942:2:65","nodeType":"YulLiteral","src":"14942:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14927:3:65","nodeType":"YulIdentifier","src":"14927:3:65"},"nativeSrc":"14927:18:65","nodeType":"YulFunctionCall","src":"14927:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14919:4:65","nodeType":"YulIdentifier","src":"14919:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14997:6:65","nodeType":"YulIdentifier","src":"14997:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15010:9:65","nodeType":"YulIdentifier","src":"15010:9:65"},{"kind":"number","nativeSrc":"15021:1:65","nodeType":"YulLiteral","src":"15021:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15006:3:65","nodeType":"YulIdentifier","src":"15006:3:65"},"nativeSrc":"15006:17:65","nodeType":"YulFunctionCall","src":"15006:17:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"14955:41:65","nodeType":"YulIdentifier","src":"14955:41:65"},"nativeSrc":"14955:69:65","nodeType":"YulFunctionCall","src":"14955:69:65"},"nativeSrc":"14955:69:65","nodeType":"YulExpressionStatement","src":"14955:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"15078:6:65","nodeType":"YulIdentifier","src":"15078:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15091:9:65","nodeType":"YulIdentifier","src":"15091:9:65"},{"kind":"number","nativeSrc":"15102:2:65","nodeType":"YulLiteral","src":"15102:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15087:3:65","nodeType":"YulIdentifier","src":"15087:3:65"},"nativeSrc":"15087:18:65","nodeType":"YulFunctionCall","src":"15087:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"15034:43:65","nodeType":"YulIdentifier","src":"15034:43:65"},"nativeSrc":"15034:72:65","nodeType":"YulFunctionCall","src":"15034:72:65"},"nativeSrc":"15034:72:65","nodeType":"YulExpressionStatement","src":"15034:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"15160:6:65","nodeType":"YulIdentifier","src":"15160:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15173:9:65","nodeType":"YulIdentifier","src":"15173:9:65"},{"kind":"number","nativeSrc":"15184:2:65","nodeType":"YulLiteral","src":"15184:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15169:3:65","nodeType":"YulIdentifier","src":"15169:3:65"},"nativeSrc":"15169:18:65","nodeType":"YulFunctionCall","src":"15169:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"15116:43:65","nodeType":"YulIdentifier","src":"15116:43:65"},"nativeSrc":"15116:72:65","nodeType":"YulFunctionCall","src":"15116:72:65"},"nativeSrc":"15116:72:65","nodeType":"YulExpressionStatement","src":"15116:72:65"}]},"name":"abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed","nativeSrc":"14757:438:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14865:9:65","nodeType":"YulTypedName","src":"14865:9:65","type":""},{"name":"value2","nativeSrc":"14877:6:65","nodeType":"YulTypedName","src":"14877:6:65","type":""},{"name":"value1","nativeSrc":"14885:6:65","nodeType":"YulTypedName","src":"14885:6:65","type":""},{"name":"value0","nativeSrc":"14893:6:65","nodeType":"YulTypedName","src":"14893:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14904:4:65","nodeType":"YulTypedName","src":"14904:4:65","type":""}],"src":"14757:438:65"},{"body":{"nativeSrc":"15283:390:65","nodeType":"YulBlock","src":"15283:390:65","statements":[{"body":{"nativeSrc":"15329:83:65","nodeType":"YulBlock","src":"15329:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15331:77:65","nodeType":"YulIdentifier","src":"15331:77:65"},"nativeSrc":"15331:79:65","nodeType":"YulFunctionCall","src":"15331:79:65"},"nativeSrc":"15331:79:65","nodeType":"YulExpressionStatement","src":"15331:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15304:7:65","nodeType":"YulIdentifier","src":"15304:7:65"},{"name":"headStart","nativeSrc":"15313:9:65","nodeType":"YulIdentifier","src":"15313:9:65"}],"functionName":{"name":"sub","nativeSrc":"15300:3:65","nodeType":"YulIdentifier","src":"15300:3:65"},"nativeSrc":"15300:23:65","nodeType":"YulFunctionCall","src":"15300:23:65"},{"kind":"number","nativeSrc":"15325:2:65","nodeType":"YulLiteral","src":"15325:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15296:3:65","nodeType":"YulIdentifier","src":"15296:3:65"},"nativeSrc":"15296:32:65","nodeType":"YulFunctionCall","src":"15296:32:65"},"nativeSrc":"15293:119:65","nodeType":"YulIf","src":"15293:119:65"},{"nativeSrc":"15422:116:65","nodeType":"YulBlock","src":"15422:116:65","statements":[{"nativeSrc":"15437:15:65","nodeType":"YulVariableDeclaration","src":"15437:15:65","value":{"kind":"number","nativeSrc":"15451:1:65","nodeType":"YulLiteral","src":"15451:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15441:6:65","nodeType":"YulTypedName","src":"15441:6:65","type":""}]},{"nativeSrc":"15466:62:65","nodeType":"YulAssignment","src":"15466:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15500:9:65","nodeType":"YulIdentifier","src":"15500:9:65"},{"name":"offset","nativeSrc":"15511:6:65","nodeType":"YulIdentifier","src":"15511:6:65"}],"functionName":{"name":"add","nativeSrc":"15496:3:65","nodeType":"YulIdentifier","src":"15496:3:65"},"nativeSrc":"15496:22:65","nodeType":"YulFunctionCall","src":"15496:22:65"},{"name":"dataEnd","nativeSrc":"15520:7:65","nodeType":"YulIdentifier","src":"15520:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"15476:19:65","nodeType":"YulIdentifier","src":"15476:19:65"},"nativeSrc":"15476:52:65","nodeType":"YulFunctionCall","src":"15476:52:65"},"variableNames":[{"name":"value0","nativeSrc":"15466:6:65","nodeType":"YulIdentifier","src":"15466:6:65"}]}]},{"nativeSrc":"15548:118:65","nodeType":"YulBlock","src":"15548:118:65","statements":[{"nativeSrc":"15563:16:65","nodeType":"YulVariableDeclaration","src":"15563:16:65","value":{"kind":"number","nativeSrc":"15577:2:65","nodeType":"YulLiteral","src":"15577:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15567:6:65","nodeType":"YulTypedName","src":"15567:6:65","type":""}]},{"nativeSrc":"15593:63:65","nodeType":"YulAssignment","src":"15593:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15628:9:65","nodeType":"YulIdentifier","src":"15628:9:65"},{"name":"offset","nativeSrc":"15639:6:65","nodeType":"YulIdentifier","src":"15639:6:65"}],"functionName":{"name":"add","nativeSrc":"15624:3:65","nodeType":"YulIdentifier","src":"15624:3:65"},"nativeSrc":"15624:22:65","nodeType":"YulFunctionCall","src":"15624:22:65"},{"name":"dataEnd","nativeSrc":"15648:7:65","nodeType":"YulIdentifier","src":"15648:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15603:20:65","nodeType":"YulIdentifier","src":"15603:20:65"},"nativeSrc":"15603:53:65","nodeType":"YulFunctionCall","src":"15603:53:65"},"variableNames":[{"name":"value1","nativeSrc":"15593:6:65","nodeType":"YulIdentifier","src":"15593:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_address","nativeSrc":"15201:472:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15245:9:65","nodeType":"YulTypedName","src":"15245:9:65","type":""},{"name":"dataEnd","nativeSrc":"15256:7:65","nodeType":"YulTypedName","src":"15256:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15268:6:65","nodeType":"YulTypedName","src":"15268:6:65","type":""},{"name":"value1","nativeSrc":"15276:6:65","nodeType":"YulTypedName","src":"15276:6:65","type":""}],"src":"15201:472:65"},{"body":{"nativeSrc":"15775:122:65","nodeType":"YulBlock","src":"15775:122:65","statements":[{"nativeSrc":"15785:26:65","nodeType":"YulAssignment","src":"15785:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"15797:9:65","nodeType":"YulIdentifier","src":"15797:9:65"},{"kind":"number","nativeSrc":"15808:2:65","nodeType":"YulLiteral","src":"15808:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15793:3:65","nodeType":"YulIdentifier","src":"15793:3:65"},"nativeSrc":"15793:18:65","nodeType":"YulFunctionCall","src":"15793:18:65"},"variableNames":[{"name":"tail","nativeSrc":"15785:4:65","nodeType":"YulIdentifier","src":"15785:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"15863:6:65","nodeType":"YulIdentifier","src":"15863:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15876:9:65","nodeType":"YulIdentifier","src":"15876:9:65"},{"kind":"number","nativeSrc":"15887:1:65","nodeType":"YulLiteral","src":"15887:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15872:3:65","nodeType":"YulIdentifier","src":"15872:3:65"},"nativeSrc":"15872:17:65","nodeType":"YulFunctionCall","src":"15872:17:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"15821:41:65","nodeType":"YulIdentifier","src":"15821:41:65"},"nativeSrc":"15821:69:65","nodeType":"YulFunctionCall","src":"15821:69:65"},"nativeSrc":"15821:69:65","nodeType":"YulExpressionStatement","src":"15821:69:65"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"15679:218:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15747:9:65","nodeType":"YulTypedName","src":"15747:9:65","type":""},{"name":"value0","nativeSrc":"15759:6:65","nodeType":"YulTypedName","src":"15759:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15770:4:65","nodeType":"YulTypedName","src":"15770:4:65","type":""}],"src":"15679:218:65"},{"body":{"nativeSrc":"16001:124:65","nodeType":"YulBlock","src":"16001:124:65","statements":[{"nativeSrc":"16011:26:65","nodeType":"YulAssignment","src":"16011:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16023:9:65","nodeType":"YulIdentifier","src":"16023:9:65"},{"kind":"number","nativeSrc":"16034:2:65","nodeType":"YulLiteral","src":"16034:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16019:3:65","nodeType":"YulIdentifier","src":"16019:3:65"},"nativeSrc":"16019:18:65","nodeType":"YulFunctionCall","src":"16019:18:65"},"variableNames":[{"name":"tail","nativeSrc":"16011:4:65","nodeType":"YulIdentifier","src":"16011:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16091:6:65","nodeType":"YulIdentifier","src":"16091:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16104:9:65","nodeType":"YulIdentifier","src":"16104:9:65"},{"kind":"number","nativeSrc":"16115:1:65","nodeType":"YulLiteral","src":"16115:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16100:3:65","nodeType":"YulIdentifier","src":"16100:3:65"},"nativeSrc":"16100:17:65","nodeType":"YulFunctionCall","src":"16100:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"16047:43:65","nodeType":"YulIdentifier","src":"16047:43:65"},"nativeSrc":"16047:71:65","nodeType":"YulFunctionCall","src":"16047:71:65"},"nativeSrc":"16047:71:65","nodeType":"YulExpressionStatement","src":"16047:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"15903:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15973:9:65","nodeType":"YulTypedName","src":"15973:9:65","type":""},{"name":"value0","nativeSrc":"15985:6:65","nodeType":"YulTypedName","src":"15985:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15996:4:65","nodeType":"YulTypedName","src":"15996:4:65","type":""}],"src":"15903:222:65"},{"body":{"nativeSrc":"16196:53:65","nodeType":"YulBlock","src":"16196:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16213:3:65","nodeType":"YulIdentifier","src":"16213:3:65"},{"arguments":[{"name":"value","nativeSrc":"16236:5:65","nodeType":"YulIdentifier","src":"16236:5:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"16218:17:65","nodeType":"YulIdentifier","src":"16218:17:65"},"nativeSrc":"16218:24:65","nodeType":"YulFunctionCall","src":"16218:24:65"}],"functionName":{"name":"mstore","nativeSrc":"16206:6:65","nodeType":"YulIdentifier","src":"16206:6:65"},"nativeSrc":"16206:37:65","nodeType":"YulFunctionCall","src":"16206:37:65"},"nativeSrc":"16206:37:65","nodeType":"YulExpressionStatement","src":"16206:37:65"}]},"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nativeSrc":"16131:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16184:5:65","nodeType":"YulTypedName","src":"16184:5:65","type":""},{"name":"pos","nativeSrc":"16191:3:65","nodeType":"YulTypedName","src":"16191:3:65","type":""}],"src":"16131:118:65"},{"body":{"nativeSrc":"16461:450:65","nodeType":"YulBlock","src":"16461:450:65","statements":[{"nativeSrc":"16471:27:65","nodeType":"YulAssignment","src":"16471:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16483:9:65","nodeType":"YulIdentifier","src":"16483:9:65"},{"kind":"number","nativeSrc":"16494:3:65","nodeType":"YulLiteral","src":"16494:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"16479:3:65","nodeType":"YulIdentifier","src":"16479:3:65"},"nativeSrc":"16479:19:65","nodeType":"YulFunctionCall","src":"16479:19:65"},"variableNames":[{"name":"tail","nativeSrc":"16471:4:65","nodeType":"YulIdentifier","src":"16471:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16552:6:65","nodeType":"YulIdentifier","src":"16552:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16565:9:65","nodeType":"YulIdentifier","src":"16565:9:65"},{"kind":"number","nativeSrc":"16576:1:65","nodeType":"YulLiteral","src":"16576:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16561:3:65","nodeType":"YulIdentifier","src":"16561:3:65"},"nativeSrc":"16561:17:65","nodeType":"YulFunctionCall","src":"16561:17:65"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nativeSrc":"16508:43:65","nodeType":"YulIdentifier","src":"16508:43:65"},"nativeSrc":"16508:71:65","nodeType":"YulFunctionCall","src":"16508:71:65"},"nativeSrc":"16508:71:65","nodeType":"YulExpressionStatement","src":"16508:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"16633:6:65","nodeType":"YulIdentifier","src":"16633:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16646:9:65","nodeType":"YulIdentifier","src":"16646:9:65"},{"kind":"number","nativeSrc":"16657:2:65","nodeType":"YulLiteral","src":"16657:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16642:3:65","nodeType":"YulIdentifier","src":"16642:3:65"},"nativeSrc":"16642:18:65","nodeType":"YulFunctionCall","src":"16642:18:65"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nativeSrc":"16589:43:65","nodeType":"YulIdentifier","src":"16589:43:65"},"nativeSrc":"16589:72:65","nodeType":"YulFunctionCall","src":"16589:72:65"},"nativeSrc":"16589:72:65","nodeType":"YulExpressionStatement","src":"16589:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"16715:6:65","nodeType":"YulIdentifier","src":"16715:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16728:9:65","nodeType":"YulIdentifier","src":"16728:9:65"},{"kind":"number","nativeSrc":"16739:2:65","nodeType":"YulLiteral","src":"16739:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16724:3:65","nodeType":"YulIdentifier","src":"16724:3:65"},"nativeSrc":"16724:18:65","nodeType":"YulFunctionCall","src":"16724:18:65"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nativeSrc":"16671:43:65","nodeType":"YulIdentifier","src":"16671:43:65"},"nativeSrc":"16671:72:65","nodeType":"YulFunctionCall","src":"16671:72:65"},"nativeSrc":"16671:72:65","nodeType":"YulExpressionStatement","src":"16671:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"16795:6:65","nodeType":"YulIdentifier","src":"16795:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16808:9:65","nodeType":"YulIdentifier","src":"16808:9:65"},{"kind":"number","nativeSrc":"16819:2:65","nodeType":"YulLiteral","src":"16819:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16804:3:65","nodeType":"YulIdentifier","src":"16804:3:65"},"nativeSrc":"16804:18:65","nodeType":"YulFunctionCall","src":"16804:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"16753:41:65","nodeType":"YulIdentifier","src":"16753:41:65"},"nativeSrc":"16753:70:65","nodeType":"YulFunctionCall","src":"16753:70:65"},"nativeSrc":"16753:70:65","nodeType":"YulExpressionStatement","src":"16753:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"16875:6:65","nodeType":"YulIdentifier","src":"16875:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16888:9:65","nodeType":"YulIdentifier","src":"16888:9:65"},{"kind":"number","nativeSrc":"16899:3:65","nodeType":"YulLiteral","src":"16899:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"16884:3:65","nodeType":"YulIdentifier","src":"16884:3:65"},"nativeSrc":"16884:19:65","nodeType":"YulFunctionCall","src":"16884:19:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"16833:41:65","nodeType":"YulIdentifier","src":"16833:41:65"},"nativeSrc":"16833:71:65","nodeType":"YulFunctionCall","src":"16833:71:65"},"nativeSrc":"16833:71:65","nodeType":"YulExpressionStatement","src":"16833:71:65"}]},"name":"abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed","nativeSrc":"16255:656:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16401:9:65","nodeType":"YulTypedName","src":"16401:9:65","type":""},{"name":"value4","nativeSrc":"16413:6:65","nodeType":"YulTypedName","src":"16413:6:65","type":""},{"name":"value3","nativeSrc":"16421:6:65","nodeType":"YulTypedName","src":"16421:6:65","type":""},{"name":"value2","nativeSrc":"16429:6:65","nodeType":"YulTypedName","src":"16429:6:65","type":""},{"name":"value1","nativeSrc":"16437:6:65","nodeType":"YulTypedName","src":"16437:6:65","type":""},{"name":"value0","nativeSrc":"16445:6:65","nodeType":"YulTypedName","src":"16445:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16456:4:65","nodeType":"YulTypedName","src":"16456:4:65","type":""}],"src":"16255:656:65"},{"body":{"nativeSrc":"17054:876:65","nodeType":"YulBlock","src":"17054:876:65","statements":[{"body":{"nativeSrc":"17100:83:65","nodeType":"YulBlock","src":"17100:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17102:77:65","nodeType":"YulIdentifier","src":"17102:77:65"},"nativeSrc":"17102:79:65","nodeType":"YulFunctionCall","src":"17102:79:65"},"nativeSrc":"17102:79:65","nodeType":"YulExpressionStatement","src":"17102:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17075:7:65","nodeType":"YulIdentifier","src":"17075:7:65"},{"name":"headStart","nativeSrc":"17084:9:65","nodeType":"YulIdentifier","src":"17084:9:65"}],"functionName":{"name":"sub","nativeSrc":"17071:3:65","nodeType":"YulIdentifier","src":"17071:3:65"},"nativeSrc":"17071:23:65","nodeType":"YulFunctionCall","src":"17071:23:65"},{"kind":"number","nativeSrc":"17096:2:65","nodeType":"YulLiteral","src":"17096:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"17067:3:65","nodeType":"YulIdentifier","src":"17067:3:65"},"nativeSrc":"17067:32:65","nodeType":"YulFunctionCall","src":"17067:32:65"},"nativeSrc":"17064:119:65","nodeType":"YulIf","src":"17064:119:65"},{"nativeSrc":"17193:116:65","nodeType":"YulBlock","src":"17193:116:65","statements":[{"nativeSrc":"17208:15:65","nodeType":"YulVariableDeclaration","src":"17208:15:65","value":{"kind":"number","nativeSrc":"17222:1:65","nodeType":"YulLiteral","src":"17222:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17212:6:65","nodeType":"YulTypedName","src":"17212:6:65","type":""}]},{"nativeSrc":"17237:62:65","nodeType":"YulAssignment","src":"17237:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17271:9:65","nodeType":"YulIdentifier","src":"17271:9:65"},{"name":"offset","nativeSrc":"17282:6:65","nodeType":"YulIdentifier","src":"17282:6:65"}],"functionName":{"name":"add","nativeSrc":"17267:3:65","nodeType":"YulIdentifier","src":"17267:3:65"},"nativeSrc":"17267:22:65","nodeType":"YulFunctionCall","src":"17267:22:65"},{"name":"dataEnd","nativeSrc":"17291:7:65","nodeType":"YulIdentifier","src":"17291:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"17247:19:65","nodeType":"YulIdentifier","src":"17247:19:65"},"nativeSrc":"17247:52:65","nodeType":"YulFunctionCall","src":"17247:52:65"},"variableNames":[{"name":"value0","nativeSrc":"17237:6:65","nodeType":"YulIdentifier","src":"17237:6:65"}]}]},{"nativeSrc":"17319:297:65","nodeType":"YulBlock","src":"17319:297:65","statements":[{"nativeSrc":"17334:46:65","nodeType":"YulVariableDeclaration","src":"17334:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17365:9:65","nodeType":"YulIdentifier","src":"17365:9:65"},{"kind":"number","nativeSrc":"17376:2:65","nodeType":"YulLiteral","src":"17376:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17361:3:65","nodeType":"YulIdentifier","src":"17361:3:65"},"nativeSrc":"17361:18:65","nodeType":"YulFunctionCall","src":"17361:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"17348:12:65","nodeType":"YulIdentifier","src":"17348:12:65"},"nativeSrc":"17348:32:65","nodeType":"YulFunctionCall","src":"17348:32:65"},"variables":[{"name":"offset","nativeSrc":"17338:6:65","nodeType":"YulTypedName","src":"17338:6:65","type":""}]},{"body":{"nativeSrc":"17427:83:65","nodeType":"YulBlock","src":"17427:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17429:77:65","nodeType":"YulIdentifier","src":"17429:77:65"},"nativeSrc":"17429:79:65","nodeType":"YulFunctionCall","src":"17429:79:65"},"nativeSrc":"17429:79:65","nodeType":"YulExpressionStatement","src":"17429:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17399:6:65","nodeType":"YulIdentifier","src":"17399:6:65"},{"kind":"number","nativeSrc":"17407:18:65","nodeType":"YulLiteral","src":"17407:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17396:2:65","nodeType":"YulIdentifier","src":"17396:2:65"},"nativeSrc":"17396:30:65","nodeType":"YulFunctionCall","src":"17396:30:65"},"nativeSrc":"17393:117:65","nodeType":"YulIf","src":"17393:117:65"},{"nativeSrc":"17524:82:65","nodeType":"YulAssignment","src":"17524:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17578:9:65","nodeType":"YulIdentifier","src":"17578:9:65"},{"name":"offset","nativeSrc":"17589:6:65","nodeType":"YulIdentifier","src":"17589:6:65"}],"functionName":{"name":"add","nativeSrc":"17574:3:65","nodeType":"YulIdentifier","src":"17574:3:65"},"nativeSrc":"17574:22:65","nodeType":"YulFunctionCall","src":"17574:22:65"},{"name":"dataEnd","nativeSrc":"17598:7:65","nodeType":"YulIdentifier","src":"17598:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"17542:31:65","nodeType":"YulIdentifier","src":"17542:31:65"},"nativeSrc":"17542:64:65","nodeType":"YulFunctionCall","src":"17542:64:65"},"variableNames":[{"name":"value1","nativeSrc":"17524:6:65","nodeType":"YulIdentifier","src":"17524:6:65"},{"name":"value2","nativeSrc":"17532:6:65","nodeType":"YulIdentifier","src":"17532:6:65"}]}]},{"nativeSrc":"17626:297:65","nodeType":"YulBlock","src":"17626:297:65","statements":[{"nativeSrc":"17641:46:65","nodeType":"YulVariableDeclaration","src":"17641:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17672:9:65","nodeType":"YulIdentifier","src":"17672:9:65"},{"kind":"number","nativeSrc":"17683:2:65","nodeType":"YulLiteral","src":"17683:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17668:3:65","nodeType":"YulIdentifier","src":"17668:3:65"},"nativeSrc":"17668:18:65","nodeType":"YulFunctionCall","src":"17668:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"17655:12:65","nodeType":"YulIdentifier","src":"17655:12:65"},"nativeSrc":"17655:32:65","nodeType":"YulFunctionCall","src":"17655:32:65"},"variables":[{"name":"offset","nativeSrc":"17645:6:65","nodeType":"YulTypedName","src":"17645:6:65","type":""}]},{"body":{"nativeSrc":"17734:83:65","nodeType":"YulBlock","src":"17734:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17736:77:65","nodeType":"YulIdentifier","src":"17736:77:65"},"nativeSrc":"17736:79:65","nodeType":"YulFunctionCall","src":"17736:79:65"},"nativeSrc":"17736:79:65","nodeType":"YulExpressionStatement","src":"17736:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17706:6:65","nodeType":"YulIdentifier","src":"17706:6:65"},{"kind":"number","nativeSrc":"17714:18:65","nodeType":"YulLiteral","src":"17714:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17703:2:65","nodeType":"YulIdentifier","src":"17703:2:65"},"nativeSrc":"17703:30:65","nodeType":"YulFunctionCall","src":"17703:30:65"},"nativeSrc":"17700:117:65","nodeType":"YulIf","src":"17700:117:65"},{"nativeSrc":"17831:82:65","nodeType":"YulAssignment","src":"17831:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17885:9:65","nodeType":"YulIdentifier","src":"17885:9:65"},{"name":"offset","nativeSrc":"17896:6:65","nodeType":"YulIdentifier","src":"17896:6:65"}],"functionName":{"name":"add","nativeSrc":"17881:3:65","nodeType":"YulIdentifier","src":"17881:3:65"},"nativeSrc":"17881:22:65","nodeType":"YulFunctionCall","src":"17881:22:65"},{"name":"dataEnd","nativeSrc":"17905:7:65","nodeType":"YulIdentifier","src":"17905:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"17849:31:65","nodeType":"YulIdentifier","src":"17849:31:65"},"nativeSrc":"17849:64:65","nodeType":"YulFunctionCall","src":"17849:64:65"},"variableNames":[{"name":"value3","nativeSrc":"17831:6:65","nodeType":"YulIdentifier","src":"17831:6:65"},{"name":"value4","nativeSrc":"17839:6:65","nodeType":"YulIdentifier","src":"17839:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"16917:1013:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16992:9:65","nodeType":"YulTypedName","src":"16992:9:65","type":""},{"name":"dataEnd","nativeSrc":"17003:7:65","nodeType":"YulTypedName","src":"17003:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17015:6:65","nodeType":"YulTypedName","src":"17015:6:65","type":""},{"name":"value1","nativeSrc":"17023:6:65","nodeType":"YulTypedName","src":"17023:6:65","type":""},{"name":"value2","nativeSrc":"17031:6:65","nodeType":"YulTypedName","src":"17031:6:65","type":""},{"name":"value3","nativeSrc":"17039:6:65","nodeType":"YulTypedName","src":"17039:6:65","type":""},{"name":"value4","nativeSrc":"17047:6:65","nodeType":"YulTypedName","src":"17047:6:65","type":""}],"src":"16917:1013:65"},{"body":{"nativeSrc":"18002:263:65","nodeType":"YulBlock","src":"18002:263:65","statements":[{"body":{"nativeSrc":"18048:83:65","nodeType":"YulBlock","src":"18048:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18050:77:65","nodeType":"YulIdentifier","src":"18050:77:65"},"nativeSrc":"18050:79:65","nodeType":"YulFunctionCall","src":"18050:79:65"},"nativeSrc":"18050:79:65","nodeType":"YulExpressionStatement","src":"18050:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18023:7:65","nodeType":"YulIdentifier","src":"18023:7:65"},{"name":"headStart","nativeSrc":"18032:9:65","nodeType":"YulIdentifier","src":"18032:9:65"}],"functionName":{"name":"sub","nativeSrc":"18019:3:65","nodeType":"YulIdentifier","src":"18019:3:65"},"nativeSrc":"18019:23:65","nodeType":"YulFunctionCall","src":"18019:23:65"},{"kind":"number","nativeSrc":"18044:2:65","nodeType":"YulLiteral","src":"18044:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18015:3:65","nodeType":"YulIdentifier","src":"18015:3:65"},"nativeSrc":"18015:32:65","nodeType":"YulFunctionCall","src":"18015:32:65"},"nativeSrc":"18012:119:65","nodeType":"YulIf","src":"18012:119:65"},{"nativeSrc":"18141:117:65","nodeType":"YulBlock","src":"18141:117:65","statements":[{"nativeSrc":"18156:15:65","nodeType":"YulVariableDeclaration","src":"18156:15:65","value":{"kind":"number","nativeSrc":"18170:1:65","nodeType":"YulLiteral","src":"18170:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18160:6:65","nodeType":"YulTypedName","src":"18160:6:65","type":""}]},{"nativeSrc":"18185:63:65","nodeType":"YulAssignment","src":"18185:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18220:9:65","nodeType":"YulIdentifier","src":"18220:9:65"},{"name":"offset","nativeSrc":"18231:6:65","nodeType":"YulIdentifier","src":"18231:6:65"}],"functionName":{"name":"add","nativeSrc":"18216:3:65","nodeType":"YulIdentifier","src":"18216:3:65"},"nativeSrc":"18216:22:65","nodeType":"YulFunctionCall","src":"18216:22:65"},{"name":"dataEnd","nativeSrc":"18240:7:65","nodeType":"YulIdentifier","src":"18240:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"18195:20:65","nodeType":"YulIdentifier","src":"18195:20:65"},"nativeSrc":"18195:53:65","nodeType":"YulFunctionCall","src":"18195:53:65"},"variableNames":[{"name":"value0","nativeSrc":"18185:6:65","nodeType":"YulIdentifier","src":"18185:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"17936:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17972:9:65","nodeType":"YulTypedName","src":"17972:9:65","type":""},{"name":"dataEnd","nativeSrc":"17983:7:65","nodeType":"YulTypedName","src":"17983:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17995:6:65","nodeType":"YulTypedName","src":"17995:6:65","type":""}],"src":"17936:329:65"},{"body":{"nativeSrc":"18354:391:65","nodeType":"YulBlock","src":"18354:391:65","statements":[{"body":{"nativeSrc":"18400:83:65","nodeType":"YulBlock","src":"18400:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18402:77:65","nodeType":"YulIdentifier","src":"18402:77:65"},"nativeSrc":"18402:79:65","nodeType":"YulFunctionCall","src":"18402:79:65"},"nativeSrc":"18402:79:65","nodeType":"YulExpressionStatement","src":"18402:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18375:7:65","nodeType":"YulIdentifier","src":"18375:7:65"},{"name":"headStart","nativeSrc":"18384:9:65","nodeType":"YulIdentifier","src":"18384:9:65"}],"functionName":{"name":"sub","nativeSrc":"18371:3:65","nodeType":"YulIdentifier","src":"18371:3:65"},"nativeSrc":"18371:23:65","nodeType":"YulFunctionCall","src":"18371:23:65"},{"kind":"number","nativeSrc":"18396:2:65","nodeType":"YulLiteral","src":"18396:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"18367:3:65","nodeType":"YulIdentifier","src":"18367:3:65"},"nativeSrc":"18367:32:65","nodeType":"YulFunctionCall","src":"18367:32:65"},"nativeSrc":"18364:119:65","nodeType":"YulIf","src":"18364:119:65"},{"nativeSrc":"18493:117:65","nodeType":"YulBlock","src":"18493:117:65","statements":[{"nativeSrc":"18508:15:65","nodeType":"YulVariableDeclaration","src":"18508:15:65","value":{"kind":"number","nativeSrc":"18522:1:65","nodeType":"YulLiteral","src":"18522:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18512:6:65","nodeType":"YulTypedName","src":"18512:6:65","type":""}]},{"nativeSrc":"18537:63:65","nodeType":"YulAssignment","src":"18537:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18572:9:65","nodeType":"YulIdentifier","src":"18572:9:65"},{"name":"offset","nativeSrc":"18583:6:65","nodeType":"YulIdentifier","src":"18583:6:65"}],"functionName":{"name":"add","nativeSrc":"18568:3:65","nodeType":"YulIdentifier","src":"18568:3:65"},"nativeSrc":"18568:22:65","nodeType":"YulFunctionCall","src":"18568:22:65"},{"name":"dataEnd","nativeSrc":"18592:7:65","nodeType":"YulIdentifier","src":"18592:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"18547:20:65","nodeType":"YulIdentifier","src":"18547:20:65"},"nativeSrc":"18547:53:65","nodeType":"YulFunctionCall","src":"18547:53:65"},"variableNames":[{"name":"value0","nativeSrc":"18537:6:65","nodeType":"YulIdentifier","src":"18537:6:65"}]}]},{"nativeSrc":"18620:118:65","nodeType":"YulBlock","src":"18620:118:65","statements":[{"nativeSrc":"18635:16:65","nodeType":"YulVariableDeclaration","src":"18635:16:65","value":{"kind":"number","nativeSrc":"18649:2:65","nodeType":"YulLiteral","src":"18649:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"18639:6:65","nodeType":"YulTypedName","src":"18639:6:65","type":""}]},{"nativeSrc":"18665:63:65","nodeType":"YulAssignment","src":"18665:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18700:9:65","nodeType":"YulIdentifier","src":"18700:9:65"},{"name":"offset","nativeSrc":"18711:6:65","nodeType":"YulIdentifier","src":"18711:6:65"}],"functionName":{"name":"add","nativeSrc":"18696:3:65","nodeType":"YulIdentifier","src":"18696:3:65"},"nativeSrc":"18696:22:65","nodeType":"YulFunctionCall","src":"18696:22:65"},{"name":"dataEnd","nativeSrc":"18720:7:65","nodeType":"YulIdentifier","src":"18720:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"18675:20:65","nodeType":"YulIdentifier","src":"18675:20:65"},"nativeSrc":"18675:53:65","nodeType":"YulFunctionCall","src":"18675:53:65"},"variableNames":[{"name":"value1","nativeSrc":"18665:6:65","nodeType":"YulIdentifier","src":"18665:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"18271:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18316:9:65","nodeType":"YulTypedName","src":"18316:9:65","type":""},{"name":"dataEnd","nativeSrc":"18327:7:65","nodeType":"YulTypedName","src":"18327:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18339:6:65","nodeType":"YulTypedName","src":"18339:6:65","type":""},{"name":"value1","nativeSrc":"18347:6:65","nodeType":"YulTypedName","src":"18347:6:65","type":""}],"src":"18271:474:65"},{"body":{"nativeSrc":"18938:1262:65","nodeType":"YulBlock","src":"18938:1262:65","statements":[{"body":{"nativeSrc":"18985:83:65","nodeType":"YulBlock","src":"18985:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18987:77:65","nodeType":"YulIdentifier","src":"18987:77:65"},"nativeSrc":"18987:79:65","nodeType":"YulFunctionCall","src":"18987:79:65"},"nativeSrc":"18987:79:65","nodeType":"YulExpressionStatement","src":"18987:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18959:7:65","nodeType":"YulIdentifier","src":"18959:7:65"},{"name":"headStart","nativeSrc":"18968:9:65","nodeType":"YulIdentifier","src":"18968:9:65"}],"functionName":{"name":"sub","nativeSrc":"18955:3:65","nodeType":"YulIdentifier","src":"18955:3:65"},"nativeSrc":"18955:23:65","nodeType":"YulFunctionCall","src":"18955:23:65"},{"kind":"number","nativeSrc":"18980:3:65","nodeType":"YulLiteral","src":"18980:3:65","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"18951:3:65","nodeType":"YulIdentifier","src":"18951:3:65"},"nativeSrc":"18951:33:65","nodeType":"YulFunctionCall","src":"18951:33:65"},"nativeSrc":"18948:120:65","nodeType":"YulIf","src":"18948:120:65"},{"nativeSrc":"19078:116:65","nodeType":"YulBlock","src":"19078:116:65","statements":[{"nativeSrc":"19093:15:65","nodeType":"YulVariableDeclaration","src":"19093:15:65","value":{"kind":"number","nativeSrc":"19107:1:65","nodeType":"YulLiteral","src":"19107:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19097:6:65","nodeType":"YulTypedName","src":"19097:6:65","type":""}]},{"nativeSrc":"19122:62:65","nodeType":"YulAssignment","src":"19122:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19156:9:65","nodeType":"YulIdentifier","src":"19156:9:65"},{"name":"offset","nativeSrc":"19167:6:65","nodeType":"YulIdentifier","src":"19167:6:65"}],"functionName":{"name":"add","nativeSrc":"19152:3:65","nodeType":"YulIdentifier","src":"19152:3:65"},"nativeSrc":"19152:22:65","nodeType":"YulFunctionCall","src":"19152:22:65"},{"name":"dataEnd","nativeSrc":"19176:7:65","nodeType":"YulIdentifier","src":"19176:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"19132:19:65","nodeType":"YulIdentifier","src":"19132:19:65"},"nativeSrc":"19132:52:65","nodeType":"YulFunctionCall","src":"19132:52:65"},"variableNames":[{"name":"value0","nativeSrc":"19122:6:65","nodeType":"YulIdentifier","src":"19122:6:65"}]}]},{"nativeSrc":"19204:297:65","nodeType":"YulBlock","src":"19204:297:65","statements":[{"nativeSrc":"19219:46:65","nodeType":"YulVariableDeclaration","src":"19219:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19250:9:65","nodeType":"YulIdentifier","src":"19250:9:65"},{"kind":"number","nativeSrc":"19261:2:65","nodeType":"YulLiteral","src":"19261:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19246:3:65","nodeType":"YulIdentifier","src":"19246:3:65"},"nativeSrc":"19246:18:65","nodeType":"YulFunctionCall","src":"19246:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"19233:12:65","nodeType":"YulIdentifier","src":"19233:12:65"},"nativeSrc":"19233:32:65","nodeType":"YulFunctionCall","src":"19233:32:65"},"variables":[{"name":"offset","nativeSrc":"19223:6:65","nodeType":"YulTypedName","src":"19223:6:65","type":""}]},{"body":{"nativeSrc":"19312:83:65","nodeType":"YulBlock","src":"19312:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19314:77:65","nodeType":"YulIdentifier","src":"19314:77:65"},"nativeSrc":"19314:79:65","nodeType":"YulFunctionCall","src":"19314:79:65"},"nativeSrc":"19314:79:65","nodeType":"YulExpressionStatement","src":"19314:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19284:6:65","nodeType":"YulIdentifier","src":"19284:6:65"},{"kind":"number","nativeSrc":"19292:18:65","nodeType":"YulLiteral","src":"19292:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19281:2:65","nodeType":"YulIdentifier","src":"19281:2:65"},"nativeSrc":"19281:30:65","nodeType":"YulFunctionCall","src":"19281:30:65"},"nativeSrc":"19278:117:65","nodeType":"YulIf","src":"19278:117:65"},{"nativeSrc":"19409:82:65","nodeType":"YulAssignment","src":"19409:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19463:9:65","nodeType":"YulIdentifier","src":"19463:9:65"},{"name":"offset","nativeSrc":"19474:6:65","nodeType":"YulIdentifier","src":"19474:6:65"}],"functionName":{"name":"add","nativeSrc":"19459:3:65","nodeType":"YulIdentifier","src":"19459:3:65"},"nativeSrc":"19459:22:65","nodeType":"YulFunctionCall","src":"19459:22:65"},{"name":"dataEnd","nativeSrc":"19483:7:65","nodeType":"YulIdentifier","src":"19483:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"19427:31:65","nodeType":"YulIdentifier","src":"19427:31:65"},"nativeSrc":"19427:64:65","nodeType":"YulFunctionCall","src":"19427:64:65"},"variableNames":[{"name":"value1","nativeSrc":"19409:6:65","nodeType":"YulIdentifier","src":"19409:6:65"},{"name":"value2","nativeSrc":"19417:6:65","nodeType":"YulIdentifier","src":"19417:6:65"}]}]},{"nativeSrc":"19511:118:65","nodeType":"YulBlock","src":"19511:118:65","statements":[{"nativeSrc":"19526:16:65","nodeType":"YulVariableDeclaration","src":"19526:16:65","value":{"kind":"number","nativeSrc":"19540:2:65","nodeType":"YulLiteral","src":"19540:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"19530:6:65","nodeType":"YulTypedName","src":"19530:6:65","type":""}]},{"nativeSrc":"19556:63:65","nodeType":"YulAssignment","src":"19556:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19591:9:65","nodeType":"YulIdentifier","src":"19591:9:65"},{"name":"offset","nativeSrc":"19602:6:65","nodeType":"YulIdentifier","src":"19602:6:65"}],"functionName":{"name":"add","nativeSrc":"19587:3:65","nodeType":"YulIdentifier","src":"19587:3:65"},"nativeSrc":"19587:22:65","nodeType":"YulFunctionCall","src":"19587:22:65"},{"name":"dataEnd","nativeSrc":"19611:7:65","nodeType":"YulIdentifier","src":"19611:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19566:20:65","nodeType":"YulIdentifier","src":"19566:20:65"},"nativeSrc":"19566:53:65","nodeType":"YulFunctionCall","src":"19566:53:65"},"variableNames":[{"name":"value3","nativeSrc":"19556:6:65","nodeType":"YulIdentifier","src":"19556:6:65"}]}]},{"nativeSrc":"19639:117:65","nodeType":"YulBlock","src":"19639:117:65","statements":[{"nativeSrc":"19654:16:65","nodeType":"YulVariableDeclaration","src":"19654:16:65","value":{"kind":"number","nativeSrc":"19668:2:65","nodeType":"YulLiteral","src":"19668:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"19658:6:65","nodeType":"YulTypedName","src":"19658:6:65","type":""}]},{"nativeSrc":"19684:62:65","nodeType":"YulAssignment","src":"19684:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19718:9:65","nodeType":"YulIdentifier","src":"19718:9:65"},{"name":"offset","nativeSrc":"19729:6:65","nodeType":"YulIdentifier","src":"19729:6:65"}],"functionName":{"name":"add","nativeSrc":"19714:3:65","nodeType":"YulIdentifier","src":"19714:3:65"},"nativeSrc":"19714:22:65","nodeType":"YulFunctionCall","src":"19714:22:65"},{"name":"dataEnd","nativeSrc":"19738:7:65","nodeType":"YulIdentifier","src":"19738:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"19694:19:65","nodeType":"YulIdentifier","src":"19694:19:65"},"nativeSrc":"19694:52:65","nodeType":"YulFunctionCall","src":"19694:52:65"},"variableNames":[{"name":"value4","nativeSrc":"19684:6:65","nodeType":"YulIdentifier","src":"19684:6:65"}]}]},{"nativeSrc":"19766:119:65","nodeType":"YulBlock","src":"19766:119:65","statements":[{"nativeSrc":"19781:17:65","nodeType":"YulVariableDeclaration","src":"19781:17:65","value":{"kind":"number","nativeSrc":"19795:3:65","nodeType":"YulLiteral","src":"19795:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"19785:6:65","nodeType":"YulTypedName","src":"19785:6:65","type":""}]},{"nativeSrc":"19812:63:65","nodeType":"YulAssignment","src":"19812:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19847:9:65","nodeType":"YulIdentifier","src":"19847:9:65"},{"name":"offset","nativeSrc":"19858:6:65","nodeType":"YulIdentifier","src":"19858:6:65"}],"functionName":{"name":"add","nativeSrc":"19843:3:65","nodeType":"YulIdentifier","src":"19843:3:65"},"nativeSrc":"19843:22:65","nodeType":"YulFunctionCall","src":"19843:22:65"},{"name":"dataEnd","nativeSrc":"19867:7:65","nodeType":"YulIdentifier","src":"19867:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"19822:20:65","nodeType":"YulIdentifier","src":"19822:20:65"},"nativeSrc":"19822:53:65","nodeType":"YulFunctionCall","src":"19822:53:65"},"variableNames":[{"name":"value5","nativeSrc":"19812:6:65","nodeType":"YulIdentifier","src":"19812:6:65"}]}]},{"nativeSrc":"19895:298:65","nodeType":"YulBlock","src":"19895:298:65","statements":[{"nativeSrc":"19910:47:65","nodeType":"YulVariableDeclaration","src":"19910:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19941:9:65","nodeType":"YulIdentifier","src":"19941:9:65"},{"kind":"number","nativeSrc":"19952:3:65","nodeType":"YulLiteral","src":"19952:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"19937:3:65","nodeType":"YulIdentifier","src":"19937:3:65"},"nativeSrc":"19937:19:65","nodeType":"YulFunctionCall","src":"19937:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"19924:12:65","nodeType":"YulIdentifier","src":"19924:12:65"},"nativeSrc":"19924:33:65","nodeType":"YulFunctionCall","src":"19924:33:65"},"variables":[{"name":"offset","nativeSrc":"19914:6:65","nodeType":"YulTypedName","src":"19914:6:65","type":""}]},{"body":{"nativeSrc":"20004:83:65","nodeType":"YulBlock","src":"20004:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"20006:77:65","nodeType":"YulIdentifier","src":"20006:77:65"},"nativeSrc":"20006:79:65","nodeType":"YulFunctionCall","src":"20006:79:65"},"nativeSrc":"20006:79:65","nodeType":"YulExpressionStatement","src":"20006:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19976:6:65","nodeType":"YulIdentifier","src":"19976:6:65"},{"kind":"number","nativeSrc":"19984:18:65","nodeType":"YulLiteral","src":"19984:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19973:2:65","nodeType":"YulIdentifier","src":"19973:2:65"},"nativeSrc":"19973:30:65","nodeType":"YulFunctionCall","src":"19973:30:65"},"nativeSrc":"19970:117:65","nodeType":"YulIf","src":"19970:117:65"},{"nativeSrc":"20101:82:65","nodeType":"YulAssignment","src":"20101:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20155:9:65","nodeType":"YulIdentifier","src":"20155:9:65"},{"name":"offset","nativeSrc":"20166:6:65","nodeType":"YulIdentifier","src":"20166:6:65"}],"functionName":{"name":"add","nativeSrc":"20151:3:65","nodeType":"YulIdentifier","src":"20151:3:65"},"nativeSrc":"20151:22:65","nodeType":"YulFunctionCall","src":"20151:22:65"},{"name":"dataEnd","nativeSrc":"20175:7:65","nodeType":"YulIdentifier","src":"20175:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"20119:31:65","nodeType":"YulIdentifier","src":"20119:31:65"},"nativeSrc":"20119:64:65","nodeType":"YulFunctionCall","src":"20119:64:65"},"variableNames":[{"name":"value6","nativeSrc":"20101:6:65","nodeType":"YulIdentifier","src":"20101:6:65"},{"name":"value7","nativeSrc":"20109:6:65","nodeType":"YulIdentifier","src":"20109:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr","nativeSrc":"18751:1449:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18852:9:65","nodeType":"YulTypedName","src":"18852:9:65","type":""},{"name":"dataEnd","nativeSrc":"18863:7:65","nodeType":"YulTypedName","src":"18863:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18875:6:65","nodeType":"YulTypedName","src":"18875:6:65","type":""},{"name":"value1","nativeSrc":"18883:6:65","nodeType":"YulTypedName","src":"18883:6:65","type":""},{"name":"value2","nativeSrc":"18891:6:65","nodeType":"YulTypedName","src":"18891:6:65","type":""},{"name":"value3","nativeSrc":"18899:6:65","nodeType":"YulTypedName","src":"18899:6:65","type":""},{"name":"value4","nativeSrc":"18907:6:65","nodeType":"YulTypedName","src":"18907:6:65","type":""},{"name":"value5","nativeSrc":"18915:6:65","nodeType":"YulTypedName","src":"18915:6:65","type":""},{"name":"value6","nativeSrc":"18923:6:65","nodeType":"YulTypedName","src":"18923:6:65","type":""},{"name":"value7","nativeSrc":"18931:6:65","nodeType":"YulTypedName","src":"18931:6:65","type":""}],"src":"18751:1449:65"},{"body":{"nativeSrc":"20259:51:65","nodeType":"YulBlock","src":"20259:51:65","statements":[{"nativeSrc":"20269:35:65","nodeType":"YulAssignment","src":"20269:35:65","value":{"arguments":[{"name":"value","nativeSrc":"20298:5:65","nodeType":"YulIdentifier","src":"20298:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"20280:17:65","nodeType":"YulIdentifier","src":"20280:17:65"},"nativeSrc":"20280:24:65","nodeType":"YulFunctionCall","src":"20280:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"20269:7:65","nodeType":"YulIdentifier","src":"20269:7:65"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"20206:104:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20241:5:65","nodeType":"YulTypedName","src":"20241:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"20251:7:65","nodeType":"YulTypedName","src":"20251:7:65","type":""}],"src":"20206:104:65"},{"body":{"nativeSrc":"20367:87:65","nodeType":"YulBlock","src":"20367:87:65","statements":[{"body":{"nativeSrc":"20432:16:65","nodeType":"YulBlock","src":"20432:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20441:1:65","nodeType":"YulLiteral","src":"20441:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"20444:1:65","nodeType":"YulLiteral","src":"20444:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"20434:6:65","nodeType":"YulIdentifier","src":"20434:6:65"},"nativeSrc":"20434:12:65","nodeType":"YulFunctionCall","src":"20434:12:65"},"nativeSrc":"20434:12:65","nodeType":"YulExpressionStatement","src":"20434:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20390:5:65","nodeType":"YulIdentifier","src":"20390:5:65"},{"arguments":[{"name":"value","nativeSrc":"20423:5:65","nodeType":"YulIdentifier","src":"20423:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"20397:25:65","nodeType":"YulIdentifier","src":"20397:25:65"},"nativeSrc":"20397:32:65","nodeType":"YulFunctionCall","src":"20397:32:65"}],"functionName":{"name":"eq","nativeSrc":"20387:2:65","nodeType":"YulIdentifier","src":"20387:2:65"},"nativeSrc":"20387:43:65","nodeType":"YulFunctionCall","src":"20387:43:65"}],"functionName":{"name":"iszero","nativeSrc":"20380:6:65","nodeType":"YulIdentifier","src":"20380:6:65"},"nativeSrc":"20380:51:65","nodeType":"YulFunctionCall","src":"20380:51:65"},"nativeSrc":"20377:71:65","nodeType":"YulIf","src":"20377:71:65"}]},"name":"validator_revert_t_address_payable","nativeSrc":"20316:138:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20360:5:65","nodeType":"YulTypedName","src":"20360:5:65","type":""}],"src":"20316:138:65"},{"body":{"nativeSrc":"20520:95:65","nodeType":"YulBlock","src":"20520:95:65","statements":[{"nativeSrc":"20530:29:65","nodeType":"YulAssignment","src":"20530:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"20552:6:65","nodeType":"YulIdentifier","src":"20552:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"20539:12:65","nodeType":"YulIdentifier","src":"20539:12:65"},"nativeSrc":"20539:20:65","nodeType":"YulFunctionCall","src":"20539:20:65"},"variableNames":[{"name":"value","nativeSrc":"20530:5:65","nodeType":"YulIdentifier","src":"20530:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20603:5:65","nodeType":"YulIdentifier","src":"20603:5:65"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"20568:34:65","nodeType":"YulIdentifier","src":"20568:34:65"},"nativeSrc":"20568:41:65","nodeType":"YulFunctionCall","src":"20568:41:65"},"nativeSrc":"20568:41:65","nodeType":"YulExpressionStatement","src":"20568:41:65"}]},"name":"abi_decode_t_address_payable","nativeSrc":"20460:155:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20498:6:65","nodeType":"YulTypedName","src":"20498:6:65","type":""},{"name":"end","nativeSrc":"20506:3:65","nodeType":"YulTypedName","src":"20506:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20514:5:65","nodeType":"YulTypedName","src":"20514:5:65","type":""}],"src":"20460:155:65"},{"body":{"nativeSrc":"20816:1430:65","nodeType":"YulBlock","src":"20816:1430:65","statements":[{"body":{"nativeSrc":"20863:83:65","nodeType":"YulBlock","src":"20863:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"20865:77:65","nodeType":"YulIdentifier","src":"20865:77:65"},"nativeSrc":"20865:79:65","nodeType":"YulFunctionCall","src":"20865:79:65"},"nativeSrc":"20865:79:65","nodeType":"YulExpressionStatement","src":"20865:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20837:7:65","nodeType":"YulIdentifier","src":"20837:7:65"},{"name":"headStart","nativeSrc":"20846:9:65","nodeType":"YulIdentifier","src":"20846:9:65"}],"functionName":{"name":"sub","nativeSrc":"20833:3:65","nodeType":"YulIdentifier","src":"20833:3:65"},"nativeSrc":"20833:23:65","nodeType":"YulFunctionCall","src":"20833:23:65"},{"kind":"number","nativeSrc":"20858:3:65","nodeType":"YulLiteral","src":"20858:3:65","type":"","value":"192"}],"functionName":{"name":"slt","nativeSrc":"20829:3:65","nodeType":"YulIdentifier","src":"20829:3:65"},"nativeSrc":"20829:33:65","nodeType":"YulFunctionCall","src":"20829:33:65"},"nativeSrc":"20826:120:65","nodeType":"YulIf","src":"20826:120:65"},{"nativeSrc":"20956:116:65","nodeType":"YulBlock","src":"20956:116:65","statements":[{"nativeSrc":"20971:15:65","nodeType":"YulVariableDeclaration","src":"20971:15:65","value":{"kind":"number","nativeSrc":"20985:1:65","nodeType":"YulLiteral","src":"20985:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20975:6:65","nodeType":"YulTypedName","src":"20975:6:65","type":""}]},{"nativeSrc":"21000:62:65","nodeType":"YulAssignment","src":"21000:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21034:9:65","nodeType":"YulIdentifier","src":"21034:9:65"},{"name":"offset","nativeSrc":"21045:6:65","nodeType":"YulIdentifier","src":"21045:6:65"}],"functionName":{"name":"add","nativeSrc":"21030:3:65","nodeType":"YulIdentifier","src":"21030:3:65"},"nativeSrc":"21030:22:65","nodeType":"YulFunctionCall","src":"21030:22:65"},{"name":"dataEnd","nativeSrc":"21054:7:65","nodeType":"YulIdentifier","src":"21054:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"21010:19:65","nodeType":"YulIdentifier","src":"21010:19:65"},"nativeSrc":"21010:52:65","nodeType":"YulFunctionCall","src":"21010:52:65"},"variableNames":[{"name":"value0","nativeSrc":"21000:6:65","nodeType":"YulIdentifier","src":"21000:6:65"}]}]},{"nativeSrc":"21082:287:65","nodeType":"YulBlock","src":"21082:287:65","statements":[{"nativeSrc":"21097:46:65","nodeType":"YulVariableDeclaration","src":"21097:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21128:9:65","nodeType":"YulIdentifier","src":"21128:9:65"},{"kind":"number","nativeSrc":"21139:2:65","nodeType":"YulLiteral","src":"21139:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21124:3:65","nodeType":"YulIdentifier","src":"21124:3:65"},"nativeSrc":"21124:18:65","nodeType":"YulFunctionCall","src":"21124:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"21111:12:65","nodeType":"YulIdentifier","src":"21111:12:65"},"nativeSrc":"21111:32:65","nodeType":"YulFunctionCall","src":"21111:32:65"},"variables":[{"name":"offset","nativeSrc":"21101:6:65","nodeType":"YulTypedName","src":"21101:6:65","type":""}]},{"body":{"nativeSrc":"21190:83:65","nodeType":"YulBlock","src":"21190:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"21192:77:65","nodeType":"YulIdentifier","src":"21192:77:65"},"nativeSrc":"21192:79:65","nodeType":"YulFunctionCall","src":"21192:79:65"},"nativeSrc":"21192:79:65","nodeType":"YulExpressionStatement","src":"21192:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"21162:6:65","nodeType":"YulIdentifier","src":"21162:6:65"},{"kind":"number","nativeSrc":"21170:18:65","nodeType":"YulLiteral","src":"21170:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21159:2:65","nodeType":"YulIdentifier","src":"21159:2:65"},"nativeSrc":"21159:30:65","nodeType":"YulFunctionCall","src":"21159:30:65"},"nativeSrc":"21156:117:65","nodeType":"YulIf","src":"21156:117:65"},{"nativeSrc":"21287:72:65","nodeType":"YulAssignment","src":"21287:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21331:9:65","nodeType":"YulIdentifier","src":"21331:9:65"},{"name":"offset","nativeSrc":"21342:6:65","nodeType":"YulIdentifier","src":"21342:6:65"}],"functionName":{"name":"add","nativeSrc":"21327:3:65","nodeType":"YulIdentifier","src":"21327:3:65"},"nativeSrc":"21327:22:65","nodeType":"YulFunctionCall","src":"21327:22:65"},{"name":"dataEnd","nativeSrc":"21351:7:65","nodeType":"YulIdentifier","src":"21351:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"21297:29:65","nodeType":"YulIdentifier","src":"21297:29:65"},"nativeSrc":"21297:62:65","nodeType":"YulFunctionCall","src":"21297:62:65"},"variableNames":[{"name":"value1","nativeSrc":"21287:6:65","nodeType":"YulIdentifier","src":"21287:6:65"}]}]},{"nativeSrc":"21379:297:65","nodeType":"YulBlock","src":"21379:297:65","statements":[{"nativeSrc":"21394:46:65","nodeType":"YulVariableDeclaration","src":"21394:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21425:9:65","nodeType":"YulIdentifier","src":"21425:9:65"},{"kind":"number","nativeSrc":"21436:2:65","nodeType":"YulLiteral","src":"21436:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21421:3:65","nodeType":"YulIdentifier","src":"21421:3:65"},"nativeSrc":"21421:18:65","nodeType":"YulFunctionCall","src":"21421:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"21408:12:65","nodeType":"YulIdentifier","src":"21408:12:65"},"nativeSrc":"21408:32:65","nodeType":"YulFunctionCall","src":"21408:32:65"},"variables":[{"name":"offset","nativeSrc":"21398:6:65","nodeType":"YulTypedName","src":"21398:6:65","type":""}]},{"body":{"nativeSrc":"21487:83:65","nodeType":"YulBlock","src":"21487:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"21489:77:65","nodeType":"YulIdentifier","src":"21489:77:65"},"nativeSrc":"21489:79:65","nodeType":"YulFunctionCall","src":"21489:79:65"},"nativeSrc":"21489:79:65","nodeType":"YulExpressionStatement","src":"21489:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"21459:6:65","nodeType":"YulIdentifier","src":"21459:6:65"},{"kind":"number","nativeSrc":"21467:18:65","nodeType":"YulLiteral","src":"21467:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21456:2:65","nodeType":"YulIdentifier","src":"21456:2:65"},"nativeSrc":"21456:30:65","nodeType":"YulFunctionCall","src":"21456:30:65"},"nativeSrc":"21453:117:65","nodeType":"YulIf","src":"21453:117:65"},{"nativeSrc":"21584:82:65","nodeType":"YulAssignment","src":"21584:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21638:9:65","nodeType":"YulIdentifier","src":"21638:9:65"},{"name":"offset","nativeSrc":"21649:6:65","nodeType":"YulIdentifier","src":"21649:6:65"}],"functionName":{"name":"add","nativeSrc":"21634:3:65","nodeType":"YulIdentifier","src":"21634:3:65"},"nativeSrc":"21634:22:65","nodeType":"YulFunctionCall","src":"21634:22:65"},{"name":"dataEnd","nativeSrc":"21658:7:65","nodeType":"YulIdentifier","src":"21658:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"21602:31:65","nodeType":"YulIdentifier","src":"21602:31:65"},"nativeSrc":"21602:64:65","nodeType":"YulFunctionCall","src":"21602:64:65"},"variableNames":[{"name":"value2","nativeSrc":"21584:6:65","nodeType":"YulIdentifier","src":"21584:6:65"},{"name":"value3","nativeSrc":"21592:6:65","nodeType":"YulIdentifier","src":"21592:6:65"}]}]},{"nativeSrc":"21686:126:65","nodeType":"YulBlock","src":"21686:126:65","statements":[{"nativeSrc":"21701:16:65","nodeType":"YulVariableDeclaration","src":"21701:16:65","value":{"kind":"number","nativeSrc":"21715:2:65","nodeType":"YulLiteral","src":"21715:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"21705:6:65","nodeType":"YulTypedName","src":"21705:6:65","type":""}]},{"nativeSrc":"21731:71:65","nodeType":"YulAssignment","src":"21731:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21774:9:65","nodeType":"YulIdentifier","src":"21774:9:65"},{"name":"offset","nativeSrc":"21785:6:65","nodeType":"YulIdentifier","src":"21785:6:65"}],"functionName":{"name":"add","nativeSrc":"21770:3:65","nodeType":"YulIdentifier","src":"21770:3:65"},"nativeSrc":"21770:22:65","nodeType":"YulFunctionCall","src":"21770:22:65"},{"name":"dataEnd","nativeSrc":"21794:7:65","nodeType":"YulIdentifier","src":"21794:7:65"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"21741:28:65","nodeType":"YulIdentifier","src":"21741:28:65"},"nativeSrc":"21741:61:65","nodeType":"YulFunctionCall","src":"21741:61:65"},"variableNames":[{"name":"value4","nativeSrc":"21731:6:65","nodeType":"YulIdentifier","src":"21731:6:65"}]}]},{"nativeSrc":"21822:119:65","nodeType":"YulBlock","src":"21822:119:65","statements":[{"nativeSrc":"21837:17:65","nodeType":"YulVariableDeclaration","src":"21837:17:65","value":{"kind":"number","nativeSrc":"21851:3:65","nodeType":"YulLiteral","src":"21851:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"21841:6:65","nodeType":"YulTypedName","src":"21841:6:65","type":""}]},{"nativeSrc":"21868:63:65","nodeType":"YulAssignment","src":"21868:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21903:9:65","nodeType":"YulIdentifier","src":"21903:9:65"},{"name":"offset","nativeSrc":"21914:6:65","nodeType":"YulIdentifier","src":"21914:6:65"}],"functionName":{"name":"add","nativeSrc":"21899:3:65","nodeType":"YulIdentifier","src":"21899:3:65"},"nativeSrc":"21899:22:65","nodeType":"YulFunctionCall","src":"21899:22:65"},{"name":"dataEnd","nativeSrc":"21923:7:65","nodeType":"YulIdentifier","src":"21923:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"21878:20:65","nodeType":"YulIdentifier","src":"21878:20:65"},"nativeSrc":"21878:53:65","nodeType":"YulFunctionCall","src":"21878:53:65"},"variableNames":[{"name":"value5","nativeSrc":"21868:6:65","nodeType":"YulIdentifier","src":"21868:6:65"}]}]},{"nativeSrc":"21951:288:65","nodeType":"YulBlock","src":"21951:288:65","statements":[{"nativeSrc":"21966:47:65","nodeType":"YulVariableDeclaration","src":"21966:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21997:9:65","nodeType":"YulIdentifier","src":"21997:9:65"},{"kind":"number","nativeSrc":"22008:3:65","nodeType":"YulLiteral","src":"22008:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21993:3:65","nodeType":"YulIdentifier","src":"21993:3:65"},"nativeSrc":"21993:19:65","nodeType":"YulFunctionCall","src":"21993:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"21980:12:65","nodeType":"YulIdentifier","src":"21980:12:65"},"nativeSrc":"21980:33:65","nodeType":"YulFunctionCall","src":"21980:33:65"},"variables":[{"name":"offset","nativeSrc":"21970:6:65","nodeType":"YulTypedName","src":"21970:6:65","type":""}]},{"body":{"nativeSrc":"22060:83:65","nodeType":"YulBlock","src":"22060:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"22062:77:65","nodeType":"YulIdentifier","src":"22062:77:65"},"nativeSrc":"22062:79:65","nodeType":"YulFunctionCall","src":"22062:79:65"},"nativeSrc":"22062:79:65","nodeType":"YulExpressionStatement","src":"22062:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"22032:6:65","nodeType":"YulIdentifier","src":"22032:6:65"},{"kind":"number","nativeSrc":"22040:18:65","nodeType":"YulLiteral","src":"22040:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22029:2:65","nodeType":"YulIdentifier","src":"22029:2:65"},"nativeSrc":"22029:30:65","nodeType":"YulFunctionCall","src":"22029:30:65"},"nativeSrc":"22026:117:65","nodeType":"YulIf","src":"22026:117:65"},{"nativeSrc":"22157:72:65","nodeType":"YulAssignment","src":"22157:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22201:9:65","nodeType":"YulIdentifier","src":"22201:9:65"},{"name":"offset","nativeSrc":"22212:6:65","nodeType":"YulIdentifier","src":"22212:6:65"}],"functionName":{"name":"add","nativeSrc":"22197:3:65","nodeType":"YulIdentifier","src":"22197:3:65"},"nativeSrc":"22197:22:65","nodeType":"YulFunctionCall","src":"22197:22:65"},{"name":"dataEnd","nativeSrc":"22221:7:65","nodeType":"YulIdentifier","src":"22221:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"22167:29:65","nodeType":"YulIdentifier","src":"22167:29:65"},"nativeSrc":"22167:62:65","nodeType":"YulFunctionCall","src":"22167:62:65"},"variableNames":[{"name":"value6","nativeSrc":"22157:6:65","nodeType":"YulIdentifier","src":"22157:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr","nativeSrc":"20621:1625:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20738:9:65","nodeType":"YulTypedName","src":"20738:9:65","type":""},{"name":"dataEnd","nativeSrc":"20749:7:65","nodeType":"YulTypedName","src":"20749:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20761:6:65","nodeType":"YulTypedName","src":"20761:6:65","type":""},{"name":"value1","nativeSrc":"20769:6:65","nodeType":"YulTypedName","src":"20769:6:65","type":""},{"name":"value2","nativeSrc":"20777:6:65","nodeType":"YulTypedName","src":"20777:6:65","type":""},{"name":"value3","nativeSrc":"20785:6:65","nodeType":"YulTypedName","src":"20785:6:65","type":""},{"name":"value4","nativeSrc":"20793:6:65","nodeType":"YulTypedName","src":"20793:6:65","type":""},{"name":"value5","nativeSrc":"20801:6:65","nodeType":"YulTypedName","src":"20801:6:65","type":""},{"name":"value6","nativeSrc":"20809:6:65","nodeType":"YulTypedName","src":"20809:6:65","type":""}],"src":"20621:1625:65"},{"body":{"nativeSrc":"22376:815:65","nodeType":"YulBlock","src":"22376:815:65","statements":[{"body":{"nativeSrc":"22423:83:65","nodeType":"YulBlock","src":"22423:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22425:77:65","nodeType":"YulIdentifier","src":"22425:77:65"},"nativeSrc":"22425:79:65","nodeType":"YulFunctionCall","src":"22425:79:65"},"nativeSrc":"22425:79:65","nodeType":"YulExpressionStatement","src":"22425:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22397:7:65","nodeType":"YulIdentifier","src":"22397:7:65"},{"name":"headStart","nativeSrc":"22406:9:65","nodeType":"YulIdentifier","src":"22406:9:65"}],"functionName":{"name":"sub","nativeSrc":"22393:3:65","nodeType":"YulIdentifier","src":"22393:3:65"},"nativeSrc":"22393:23:65","nodeType":"YulFunctionCall","src":"22393:23:65"},{"kind":"number","nativeSrc":"22418:3:65","nodeType":"YulLiteral","src":"22418:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"22389:3:65","nodeType":"YulIdentifier","src":"22389:3:65"},"nativeSrc":"22389:33:65","nodeType":"YulFunctionCall","src":"22389:33:65"},"nativeSrc":"22386:120:65","nodeType":"YulIf","src":"22386:120:65"},{"nativeSrc":"22516:116:65","nodeType":"YulBlock","src":"22516:116:65","statements":[{"nativeSrc":"22531:15:65","nodeType":"YulVariableDeclaration","src":"22531:15:65","value":{"kind":"number","nativeSrc":"22545:1:65","nodeType":"YulLiteral","src":"22545:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22535:6:65","nodeType":"YulTypedName","src":"22535:6:65","type":""}]},{"nativeSrc":"22560:62:65","nodeType":"YulAssignment","src":"22560:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22594:9:65","nodeType":"YulIdentifier","src":"22594:9:65"},{"name":"offset","nativeSrc":"22605:6:65","nodeType":"YulIdentifier","src":"22605:6:65"}],"functionName":{"name":"add","nativeSrc":"22590:3:65","nodeType":"YulIdentifier","src":"22590:3:65"},"nativeSrc":"22590:22:65","nodeType":"YulFunctionCall","src":"22590:22:65"},{"name":"dataEnd","nativeSrc":"22614:7:65","nodeType":"YulIdentifier","src":"22614:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22570:19:65","nodeType":"YulIdentifier","src":"22570:19:65"},"nativeSrc":"22570:52:65","nodeType":"YulFunctionCall","src":"22570:52:65"},"variableNames":[{"name":"value0","nativeSrc":"22560:6:65","nodeType":"YulIdentifier","src":"22560:6:65"}]}]},{"nativeSrc":"22642:117:65","nodeType":"YulBlock","src":"22642:117:65","statements":[{"nativeSrc":"22657:16:65","nodeType":"YulVariableDeclaration","src":"22657:16:65","value":{"kind":"number","nativeSrc":"22671:2:65","nodeType":"YulLiteral","src":"22671:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"22661:6:65","nodeType":"YulTypedName","src":"22661:6:65","type":""}]},{"nativeSrc":"22687:62:65","nodeType":"YulAssignment","src":"22687:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22721:9:65","nodeType":"YulIdentifier","src":"22721:9:65"},{"name":"offset","nativeSrc":"22732:6:65","nodeType":"YulIdentifier","src":"22732:6:65"}],"functionName":{"name":"add","nativeSrc":"22717:3:65","nodeType":"YulIdentifier","src":"22717:3:65"},"nativeSrc":"22717:22:65","nodeType":"YulFunctionCall","src":"22717:22:65"},{"name":"dataEnd","nativeSrc":"22741:7:65","nodeType":"YulIdentifier","src":"22741:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22697:19:65","nodeType":"YulIdentifier","src":"22697:19:65"},"nativeSrc":"22697:52:65","nodeType":"YulFunctionCall","src":"22697:52:65"},"variableNames":[{"name":"value1","nativeSrc":"22687:6:65","nodeType":"YulIdentifier","src":"22687:6:65"}]}]},{"nativeSrc":"22769:118:65","nodeType":"YulBlock","src":"22769:118:65","statements":[{"nativeSrc":"22784:16:65","nodeType":"YulVariableDeclaration","src":"22784:16:65","value":{"kind":"number","nativeSrc":"22798:2:65","nodeType":"YulLiteral","src":"22798:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"22788:6:65","nodeType":"YulTypedName","src":"22788:6:65","type":""}]},{"nativeSrc":"22814:63:65","nodeType":"YulAssignment","src":"22814:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22849:9:65","nodeType":"YulIdentifier","src":"22849:9:65"},{"name":"offset","nativeSrc":"22860:6:65","nodeType":"YulIdentifier","src":"22860:6:65"}],"functionName":{"name":"add","nativeSrc":"22845:3:65","nodeType":"YulIdentifier","src":"22845:3:65"},"nativeSrc":"22845:22:65","nodeType":"YulFunctionCall","src":"22845:22:65"},{"name":"dataEnd","nativeSrc":"22869:7:65","nodeType":"YulIdentifier","src":"22869:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"22824:20:65","nodeType":"YulIdentifier","src":"22824:20:65"},"nativeSrc":"22824:53:65","nodeType":"YulFunctionCall","src":"22824:53:65"},"variableNames":[{"name":"value2","nativeSrc":"22814:6:65","nodeType":"YulIdentifier","src":"22814:6:65"}]}]},{"nativeSrc":"22897:287:65","nodeType":"YulBlock","src":"22897:287:65","statements":[{"nativeSrc":"22912:46:65","nodeType":"YulVariableDeclaration","src":"22912:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22943:9:65","nodeType":"YulIdentifier","src":"22943:9:65"},{"kind":"number","nativeSrc":"22954:2:65","nodeType":"YulLiteral","src":"22954:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"22939:3:65","nodeType":"YulIdentifier","src":"22939:3:65"},"nativeSrc":"22939:18:65","nodeType":"YulFunctionCall","src":"22939:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"22926:12:65","nodeType":"YulIdentifier","src":"22926:12:65"},"nativeSrc":"22926:32:65","nodeType":"YulFunctionCall","src":"22926:32:65"},"variables":[{"name":"offset","nativeSrc":"22916:6:65","nodeType":"YulTypedName","src":"22916:6:65","type":""}]},{"body":{"nativeSrc":"23005:83:65","nodeType":"YulBlock","src":"23005:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"23007:77:65","nodeType":"YulIdentifier","src":"23007:77:65"},"nativeSrc":"23007:79:65","nodeType":"YulFunctionCall","src":"23007:79:65"},"nativeSrc":"23007:79:65","nodeType":"YulExpressionStatement","src":"23007:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"22977:6:65","nodeType":"YulIdentifier","src":"22977:6:65"},{"kind":"number","nativeSrc":"22985:18:65","nodeType":"YulLiteral","src":"22985:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22974:2:65","nodeType":"YulIdentifier","src":"22974:2:65"},"nativeSrc":"22974:30:65","nodeType":"YulFunctionCall","src":"22974:30:65"},"nativeSrc":"22971:117:65","nodeType":"YulIf","src":"22971:117:65"},{"nativeSrc":"23102:72:65","nodeType":"YulAssignment","src":"23102:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23146:9:65","nodeType":"YulIdentifier","src":"23146:9:65"},{"name":"offset","nativeSrc":"23157:6:65","nodeType":"YulIdentifier","src":"23157:6:65"}],"functionName":{"name":"add","nativeSrc":"23142:3:65","nodeType":"YulIdentifier","src":"23142:3:65"},"nativeSrc":"23142:22:65","nodeType":"YulFunctionCall","src":"23142:22:65"},{"name":"dataEnd","nativeSrc":"23166:7:65","nodeType":"YulIdentifier","src":"23166:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"23112:29:65","nodeType":"YulIdentifier","src":"23112:29:65"},"nativeSrc":"23112:62:65","nodeType":"YulFunctionCall","src":"23112:62:65"},"variableNames":[{"name":"value3","nativeSrc":"23102:6:65","nodeType":"YulIdentifier","src":"23102:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr","nativeSrc":"22252:939:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22322:9:65","nodeType":"YulTypedName","src":"22322:9:65","type":""},{"name":"dataEnd","nativeSrc":"22333:7:65","nodeType":"YulTypedName","src":"22333:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22345:6:65","nodeType":"YulTypedName","src":"22345:6:65","type":""},{"name":"value1","nativeSrc":"22353:6:65","nodeType":"YulTypedName","src":"22353:6:65","type":""},{"name":"value2","nativeSrc":"22361:6:65","nodeType":"YulTypedName","src":"22361:6:65","type":""},{"name":"value3","nativeSrc":"22369:6:65","nodeType":"YulTypedName","src":"22369:6:65","type":""}],"src":"22252:939:65"},{"body":{"nativeSrc":"23312:646:65","nodeType":"YulBlock","src":"23312:646:65","statements":[{"body":{"nativeSrc":"23359:83:65","nodeType":"YulBlock","src":"23359:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23361:77:65","nodeType":"YulIdentifier","src":"23361:77:65"},"nativeSrc":"23361:79:65","nodeType":"YulFunctionCall","src":"23361:79:65"},"nativeSrc":"23361:79:65","nodeType":"YulExpressionStatement","src":"23361:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23333:7:65","nodeType":"YulIdentifier","src":"23333:7:65"},{"name":"headStart","nativeSrc":"23342:9:65","nodeType":"YulIdentifier","src":"23342:9:65"}],"functionName":{"name":"sub","nativeSrc":"23329:3:65","nodeType":"YulIdentifier","src":"23329:3:65"},"nativeSrc":"23329:23:65","nodeType":"YulFunctionCall","src":"23329:23:65"},{"kind":"number","nativeSrc":"23354:3:65","nodeType":"YulLiteral","src":"23354:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"23325:3:65","nodeType":"YulIdentifier","src":"23325:3:65"},"nativeSrc":"23325:33:65","nodeType":"YulFunctionCall","src":"23325:33:65"},"nativeSrc":"23322:120:65","nodeType":"YulIf","src":"23322:120:65"},{"nativeSrc":"23452:116:65","nodeType":"YulBlock","src":"23452:116:65","statements":[{"nativeSrc":"23467:15:65","nodeType":"YulVariableDeclaration","src":"23467:15:65","value":{"kind":"number","nativeSrc":"23481:1:65","nodeType":"YulLiteral","src":"23481:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23471:6:65","nodeType":"YulTypedName","src":"23471:6:65","type":""}]},{"nativeSrc":"23496:62:65","nodeType":"YulAssignment","src":"23496:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23530:9:65","nodeType":"YulIdentifier","src":"23530:9:65"},{"name":"offset","nativeSrc":"23541:6:65","nodeType":"YulIdentifier","src":"23541:6:65"}],"functionName":{"name":"add","nativeSrc":"23526:3:65","nodeType":"YulIdentifier","src":"23526:3:65"},"nativeSrc":"23526:22:65","nodeType":"YulFunctionCall","src":"23526:22:65"},{"name":"dataEnd","nativeSrc":"23550:7:65","nodeType":"YulIdentifier","src":"23550:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"23506:19:65","nodeType":"YulIdentifier","src":"23506:19:65"},"nativeSrc":"23506:52:65","nodeType":"YulFunctionCall","src":"23506:52:65"},"variableNames":[{"name":"value0","nativeSrc":"23496:6:65","nodeType":"YulIdentifier","src":"23496:6:65"}]}]},{"nativeSrc":"23578:117:65","nodeType":"YulBlock","src":"23578:117:65","statements":[{"nativeSrc":"23593:16:65","nodeType":"YulVariableDeclaration","src":"23593:16:65","value":{"kind":"number","nativeSrc":"23607:2:65","nodeType":"YulLiteral","src":"23607:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23597:6:65","nodeType":"YulTypedName","src":"23597:6:65","type":""}]},{"nativeSrc":"23623:62:65","nodeType":"YulAssignment","src":"23623:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23657:9:65","nodeType":"YulIdentifier","src":"23657:9:65"},{"name":"offset","nativeSrc":"23668:6:65","nodeType":"YulIdentifier","src":"23668:6:65"}],"functionName":{"name":"add","nativeSrc":"23653:3:65","nodeType":"YulIdentifier","src":"23653:3:65"},"nativeSrc":"23653:22:65","nodeType":"YulFunctionCall","src":"23653:22:65"},{"name":"dataEnd","nativeSrc":"23677:7:65","nodeType":"YulIdentifier","src":"23677:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"23633:19:65","nodeType":"YulIdentifier","src":"23633:19:65"},"nativeSrc":"23633:52:65","nodeType":"YulFunctionCall","src":"23633:52:65"},"variableNames":[{"name":"value1","nativeSrc":"23623:6:65","nodeType":"YulIdentifier","src":"23623:6:65"}]}]},{"nativeSrc":"23705:118:65","nodeType":"YulBlock","src":"23705:118:65","statements":[{"nativeSrc":"23720:16:65","nodeType":"YulVariableDeclaration","src":"23720:16:65","value":{"kind":"number","nativeSrc":"23734:2:65","nodeType":"YulLiteral","src":"23734:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"23724:6:65","nodeType":"YulTypedName","src":"23724:6:65","type":""}]},{"nativeSrc":"23750:63:65","nodeType":"YulAssignment","src":"23750:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23785:9:65","nodeType":"YulIdentifier","src":"23785:9:65"},{"name":"offset","nativeSrc":"23796:6:65","nodeType":"YulIdentifier","src":"23796:6:65"}],"functionName":{"name":"add","nativeSrc":"23781:3:65","nodeType":"YulIdentifier","src":"23781:3:65"},"nativeSrc":"23781:22:65","nodeType":"YulFunctionCall","src":"23781:22:65"},{"name":"dataEnd","nativeSrc":"23805:7:65","nodeType":"YulIdentifier","src":"23805:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"23760:20:65","nodeType":"YulIdentifier","src":"23760:20:65"},"nativeSrc":"23760:53:65","nodeType":"YulFunctionCall","src":"23760:53:65"},"variableNames":[{"name":"value2","nativeSrc":"23750:6:65","nodeType":"YulIdentifier","src":"23750:6:65"}]}]},{"nativeSrc":"23833:118:65","nodeType":"YulBlock","src":"23833:118:65","statements":[{"nativeSrc":"23848:16:65","nodeType":"YulVariableDeclaration","src":"23848:16:65","value":{"kind":"number","nativeSrc":"23862:2:65","nodeType":"YulLiteral","src":"23862:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"23852:6:65","nodeType":"YulTypedName","src":"23852:6:65","type":""}]},{"nativeSrc":"23878:63:65","nodeType":"YulAssignment","src":"23878:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23913:9:65","nodeType":"YulIdentifier","src":"23913:9:65"},{"name":"offset","nativeSrc":"23924:6:65","nodeType":"YulIdentifier","src":"23924:6:65"}],"functionName":{"name":"add","nativeSrc":"23909:3:65","nodeType":"YulIdentifier","src":"23909:3:65"},"nativeSrc":"23909:22:65","nodeType":"YulFunctionCall","src":"23909:22:65"},{"name":"dataEnd","nativeSrc":"23933:7:65","nodeType":"YulIdentifier","src":"23933:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"23888:20:65","nodeType":"YulIdentifier","src":"23888:20:65"},"nativeSrc":"23888:53:65","nodeType":"YulFunctionCall","src":"23888:53:65"},"variableNames":[{"name":"value3","nativeSrc":"23878:6:65","nodeType":"YulIdentifier","src":"23878:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"23197:761:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23258:9:65","nodeType":"YulTypedName","src":"23258:9:65","type":""},{"name":"dataEnd","nativeSrc":"23269:7:65","nodeType":"YulTypedName","src":"23269:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23281:6:65","nodeType":"YulTypedName","src":"23281:6:65","type":""},{"name":"value1","nativeSrc":"23289:6:65","nodeType":"YulTypedName","src":"23289:6:65","type":""},{"name":"value2","nativeSrc":"23297:6:65","nodeType":"YulTypedName","src":"23297:6:65","type":""},{"name":"value3","nativeSrc":"23305:6:65","nodeType":"YulTypedName","src":"23305:6:65","type":""}],"src":"23197:761:65"},{"body":{"nativeSrc":"24039:432:65","nodeType":"YulBlock","src":"24039:432:65","statements":[{"body":{"nativeSrc":"24085:83:65","nodeType":"YulBlock","src":"24085:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"24087:77:65","nodeType":"YulIdentifier","src":"24087:77:65"},"nativeSrc":"24087:79:65","nodeType":"YulFunctionCall","src":"24087:79:65"},"nativeSrc":"24087:79:65","nodeType":"YulExpressionStatement","src":"24087:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"24060:7:65","nodeType":"YulIdentifier","src":"24060:7:65"},{"name":"headStart","nativeSrc":"24069:9:65","nodeType":"YulIdentifier","src":"24069:9:65"}],"functionName":{"name":"sub","nativeSrc":"24056:3:65","nodeType":"YulIdentifier","src":"24056:3:65"},"nativeSrc":"24056:23:65","nodeType":"YulFunctionCall","src":"24056:23:65"},{"kind":"number","nativeSrc":"24081:2:65","nodeType":"YulLiteral","src":"24081:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"24052:3:65","nodeType":"YulIdentifier","src":"24052:3:65"},"nativeSrc":"24052:32:65","nodeType":"YulFunctionCall","src":"24052:32:65"},"nativeSrc":"24049:119:65","nodeType":"YulIf","src":"24049:119:65"},{"nativeSrc":"24178:286:65","nodeType":"YulBlock","src":"24178:286:65","statements":[{"nativeSrc":"24193:45:65","nodeType":"YulVariableDeclaration","src":"24193:45:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24224:9:65","nodeType":"YulIdentifier","src":"24224:9:65"},{"kind":"number","nativeSrc":"24235:1:65","nodeType":"YulLiteral","src":"24235:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24220:3:65","nodeType":"YulIdentifier","src":"24220:3:65"},"nativeSrc":"24220:17:65","nodeType":"YulFunctionCall","src":"24220:17:65"}],"functionName":{"name":"calldataload","nativeSrc":"24207:12:65","nodeType":"YulIdentifier","src":"24207:12:65"},"nativeSrc":"24207:31:65","nodeType":"YulFunctionCall","src":"24207:31:65"},"variables":[{"name":"offset","nativeSrc":"24197:6:65","nodeType":"YulTypedName","src":"24197:6:65","type":""}]},{"body":{"nativeSrc":"24285:83:65","nodeType":"YulBlock","src":"24285:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24287:77:65","nodeType":"YulIdentifier","src":"24287:77:65"},"nativeSrc":"24287:79:65","nodeType":"YulFunctionCall","src":"24287:79:65"},"nativeSrc":"24287:79:65","nodeType":"YulExpressionStatement","src":"24287:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24257:6:65","nodeType":"YulIdentifier","src":"24257:6:65"},{"kind":"number","nativeSrc":"24265:18:65","nodeType":"YulLiteral","src":"24265:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24254:2:65","nodeType":"YulIdentifier","src":"24254:2:65"},"nativeSrc":"24254:30:65","nodeType":"YulFunctionCall","src":"24254:30:65"},"nativeSrc":"24251:117:65","nodeType":"YulIf","src":"24251:117:65"},{"nativeSrc":"24382:72:65","nodeType":"YulAssignment","src":"24382:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24426:9:65","nodeType":"YulIdentifier","src":"24426:9:65"},{"name":"offset","nativeSrc":"24437:6:65","nodeType":"YulIdentifier","src":"24437:6:65"}],"functionName":{"name":"add","nativeSrc":"24422:3:65","nodeType":"YulIdentifier","src":"24422:3:65"},"nativeSrc":"24422:22:65","nodeType":"YulFunctionCall","src":"24422:22:65"},{"name":"dataEnd","nativeSrc":"24446:7:65","nodeType":"YulIdentifier","src":"24446:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"24392:29:65","nodeType":"YulIdentifier","src":"24392:29:65"},"nativeSrc":"24392:62:65","nodeType":"YulFunctionCall","src":"24392:62:65"},"variableNames":[{"name":"value0","nativeSrc":"24382:6:65","nodeType":"YulIdentifier","src":"24382:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr","nativeSrc":"23964:507:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24009:9:65","nodeType":"YulTypedName","src":"24009:9:65","type":""},{"name":"dataEnd","nativeSrc":"24020:7:65","nodeType":"YulTypedName","src":"24020:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"24032:6:65","nodeType":"YulTypedName","src":"24032:6:65","type":""}],"src":"23964:507:65"},{"body":{"nativeSrc":"24590:34:65","nodeType":"YulBlock","src":"24590:34:65","statements":[{"nativeSrc":"24600:18:65","nodeType":"YulAssignment","src":"24600:18:65","value":{"name":"pos","nativeSrc":"24615:3:65","nodeType":"YulIdentifier","src":"24615:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"24600:11:65","nodeType":"YulIdentifier","src":"24600:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"24477:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24562:3:65","nodeType":"YulTypedName","src":"24562:3:65","type":""},{"name":"length","nativeSrc":"24567:6:65","nodeType":"YulTypedName","src":"24567:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"24578:11:65","nodeType":"YulTypedName","src":"24578:11:65","type":""}],"src":"24477:147:65"},{"body":{"nativeSrc":"24770:209:65","nodeType":"YulBlock","src":"24770:209:65","statements":[{"nativeSrc":"24780:95:65","nodeType":"YulAssignment","src":"24780:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"24863:3:65","nodeType":"YulIdentifier","src":"24863:3:65"},{"name":"length","nativeSrc":"24868:6:65","nodeType":"YulIdentifier","src":"24868:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"24787:75:65","nodeType":"YulIdentifier","src":"24787:75:65"},"nativeSrc":"24787:88:65","nodeType":"YulFunctionCall","src":"24787:88:65"},"variableNames":[{"name":"pos","nativeSrc":"24780:3:65","nodeType":"YulIdentifier","src":"24780:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"24922:5:65","nodeType":"YulIdentifier","src":"24922:5:65"},{"name":"pos","nativeSrc":"24929:3:65","nodeType":"YulIdentifier","src":"24929:3:65"},{"name":"length","nativeSrc":"24934:6:65","nodeType":"YulIdentifier","src":"24934:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"24885:36:65","nodeType":"YulIdentifier","src":"24885:36:65"},"nativeSrc":"24885:56:65","nodeType":"YulFunctionCall","src":"24885:56:65"},"nativeSrc":"24885:56:65","nodeType":"YulExpressionStatement","src":"24885:56:65"},{"nativeSrc":"24950:23:65","nodeType":"YulAssignment","src":"24950:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"24961:3:65","nodeType":"YulIdentifier","src":"24961:3:65"},{"name":"length","nativeSrc":"24966:6:65","nodeType":"YulIdentifier","src":"24966:6:65"}],"functionName":{"name":"add","nativeSrc":"24957:3:65","nodeType":"YulIdentifier","src":"24957:3:65"},"nativeSrc":"24957:16:65","nodeType":"YulFunctionCall","src":"24957:16:65"},"variableNames":[{"name":"end","nativeSrc":"24950:3:65","nodeType":"YulIdentifier","src":"24950:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"24652:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"24743:5:65","nodeType":"YulTypedName","src":"24743:5:65","type":""},{"name":"length","nativeSrc":"24750:6:65","nodeType":"YulTypedName","src":"24750:6:65","type":""},{"name":"pos","nativeSrc":"24758:3:65","nodeType":"YulTypedName","src":"24758:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24766:3:65","nodeType":"YulTypedName","src":"24766:3:65","type":""}],"src":"24652:327:65"},{"body":{"nativeSrc":"25129:147:65","nodeType":"YulBlock","src":"25129:147:65","statements":[{"nativeSrc":"25140:110:65","nodeType":"YulAssignment","src":"25140:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"25229:6:65","nodeType":"YulIdentifier","src":"25229:6:65"},{"name":"value1","nativeSrc":"25237:6:65","nodeType":"YulIdentifier","src":"25237:6:65"},{"name":"pos","nativeSrc":"25246:3:65","nodeType":"YulIdentifier","src":"25246:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"25147:81:65","nodeType":"YulIdentifier","src":"25147:81:65"},"nativeSrc":"25147:103:65","nodeType":"YulFunctionCall","src":"25147:103:65"},"variableNames":[{"name":"pos","nativeSrc":"25140:3:65","nodeType":"YulIdentifier","src":"25140:3:65"}]},{"nativeSrc":"25260:10:65","nodeType":"YulAssignment","src":"25260:10:65","value":{"name":"pos","nativeSrc":"25267:3:65","nodeType":"YulIdentifier","src":"25267:3:65"},"variableNames":[{"name":"end","nativeSrc":"25260:3:65","nodeType":"YulIdentifier","src":"25260:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"24985:291:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25100:3:65","nodeType":"YulTypedName","src":"25100:3:65","type":""},{"name":"value1","nativeSrc":"25106:6:65","nodeType":"YulTypedName","src":"25106:6:65","type":""},{"name":"value0","nativeSrc":"25114:6:65","nodeType":"YulTypedName","src":"25114:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25125:3:65","nodeType":"YulTypedName","src":"25125:3:65","type":""}],"src":"24985:291:65"},{"body":{"nativeSrc":"25310:152:65","nodeType":"YulBlock","src":"25310:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25327:1:65","nodeType":"YulLiteral","src":"25327:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"25330:77:65","nodeType":"YulLiteral","src":"25330:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"25320:6:65","nodeType":"YulIdentifier","src":"25320:6:65"},"nativeSrc":"25320:88:65","nodeType":"YulFunctionCall","src":"25320:88:65"},"nativeSrc":"25320:88:65","nodeType":"YulExpressionStatement","src":"25320:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25424:1:65","nodeType":"YulLiteral","src":"25424:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"25427:4:65","nodeType":"YulLiteral","src":"25427:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"25417:6:65","nodeType":"YulIdentifier","src":"25417:6:65"},"nativeSrc":"25417:15:65","nodeType":"YulFunctionCall","src":"25417:15:65"},"nativeSrc":"25417:15:65","nodeType":"YulExpressionStatement","src":"25417:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25448:1:65","nodeType":"YulLiteral","src":"25448:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"25451:4:65","nodeType":"YulLiteral","src":"25451:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"25441:6:65","nodeType":"YulIdentifier","src":"25441:6:65"},"nativeSrc":"25441:15:65","nodeType":"YulFunctionCall","src":"25441:15:65"},"nativeSrc":"25441:15:65","nodeType":"YulExpressionStatement","src":"25441:15:65"}]},"name":"panic_error_0x22","nativeSrc":"25282:180:65","nodeType":"YulFunctionDefinition","src":"25282:180:65"},{"body":{"nativeSrc":"25519:269:65","nodeType":"YulBlock","src":"25519:269:65","statements":[{"nativeSrc":"25529:22:65","nodeType":"YulAssignment","src":"25529:22:65","value":{"arguments":[{"name":"data","nativeSrc":"25543:4:65","nodeType":"YulIdentifier","src":"25543:4:65"},{"kind":"number","nativeSrc":"25549:1:65","nodeType":"YulLiteral","src":"25549:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"25539:3:65","nodeType":"YulIdentifier","src":"25539:3:65"},"nativeSrc":"25539:12:65","nodeType":"YulFunctionCall","src":"25539:12:65"},"variableNames":[{"name":"length","nativeSrc":"25529:6:65","nodeType":"YulIdentifier","src":"25529:6:65"}]},{"nativeSrc":"25560:38:65","nodeType":"YulVariableDeclaration","src":"25560:38:65","value":{"arguments":[{"name":"data","nativeSrc":"25590:4:65","nodeType":"YulIdentifier","src":"25590:4:65"},{"kind":"number","nativeSrc":"25596:1:65","nodeType":"YulLiteral","src":"25596:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"25586:3:65","nodeType":"YulIdentifier","src":"25586:3:65"},"nativeSrc":"25586:12:65","nodeType":"YulFunctionCall","src":"25586:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"25564:18:65","nodeType":"YulTypedName","src":"25564:18:65","type":""}]},{"body":{"nativeSrc":"25637:51:65","nodeType":"YulBlock","src":"25637:51:65","statements":[{"nativeSrc":"25651:27:65","nodeType":"YulAssignment","src":"25651:27:65","value":{"arguments":[{"name":"length","nativeSrc":"25665:6:65","nodeType":"YulIdentifier","src":"25665:6:65"},{"kind":"number","nativeSrc":"25673:4:65","nodeType":"YulLiteral","src":"25673:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"25661:3:65","nodeType":"YulIdentifier","src":"25661:3:65"},"nativeSrc":"25661:17:65","nodeType":"YulFunctionCall","src":"25661:17:65"},"variableNames":[{"name":"length","nativeSrc":"25651:6:65","nodeType":"YulIdentifier","src":"25651:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"25617:18:65","nodeType":"YulIdentifier","src":"25617:18:65"}],"functionName":{"name":"iszero","nativeSrc":"25610:6:65","nodeType":"YulIdentifier","src":"25610:6:65"},"nativeSrc":"25610:26:65","nodeType":"YulFunctionCall","src":"25610:26:65"},"nativeSrc":"25607:81:65","nodeType":"YulIf","src":"25607:81:65"},{"body":{"nativeSrc":"25740:42:65","nodeType":"YulBlock","src":"25740:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"25754:16:65","nodeType":"YulIdentifier","src":"25754:16:65"},"nativeSrc":"25754:18:65","nodeType":"YulFunctionCall","src":"25754:18:65"},"nativeSrc":"25754:18:65","nodeType":"YulExpressionStatement","src":"25754:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"25704:18:65","nodeType":"YulIdentifier","src":"25704:18:65"},{"arguments":[{"name":"length","nativeSrc":"25727:6:65","nodeType":"YulIdentifier","src":"25727:6:65"},{"kind":"number","nativeSrc":"25735:2:65","nodeType":"YulLiteral","src":"25735:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"25724:2:65","nodeType":"YulIdentifier","src":"25724:2:65"},"nativeSrc":"25724:14:65","nodeType":"YulFunctionCall","src":"25724:14:65"}],"functionName":{"name":"eq","nativeSrc":"25701:2:65","nodeType":"YulIdentifier","src":"25701:2:65"},"nativeSrc":"25701:38:65","nodeType":"YulFunctionCall","src":"25701:38:65"},"nativeSrc":"25698:84:65","nodeType":"YulIf","src":"25698:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"25468:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"25503:4:65","nodeType":"YulTypedName","src":"25503:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"25512:6:65","nodeType":"YulTypedName","src":"25512:6:65","type":""}],"src":"25468:320:65"},{"body":{"nativeSrc":"25822:152:65","nodeType":"YulBlock","src":"25822:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25839:1:65","nodeType":"YulLiteral","src":"25839:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"25842:77:65","nodeType":"YulLiteral","src":"25842:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"25832:6:65","nodeType":"YulIdentifier","src":"25832:6:65"},"nativeSrc":"25832:88:65","nodeType":"YulFunctionCall","src":"25832:88:65"},"nativeSrc":"25832:88:65","nodeType":"YulExpressionStatement","src":"25832:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25936:1:65","nodeType":"YulLiteral","src":"25936:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"25939:4:65","nodeType":"YulLiteral","src":"25939:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"25929:6:65","nodeType":"YulIdentifier","src":"25929:6:65"},"nativeSrc":"25929:15:65","nodeType":"YulFunctionCall","src":"25929:15:65"},"nativeSrc":"25929:15:65","nodeType":"YulExpressionStatement","src":"25929:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25960:1:65","nodeType":"YulLiteral","src":"25960:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"25963:4:65","nodeType":"YulLiteral","src":"25963:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"25953:6:65","nodeType":"YulIdentifier","src":"25953:6:65"},"nativeSrc":"25953:15:65","nodeType":"YulFunctionCall","src":"25953:15:65"},"nativeSrc":"25953:15:65","nodeType":"YulExpressionStatement","src":"25953:15:65"}]},"name":"panic_error_0x11","nativeSrc":"25794:180:65","nodeType":"YulFunctionDefinition","src":"25794:180:65"},{"body":{"nativeSrc":"26024:147:65","nodeType":"YulBlock","src":"26024:147:65","statements":[{"nativeSrc":"26034:25:65","nodeType":"YulAssignment","src":"26034:25:65","value":{"arguments":[{"name":"x","nativeSrc":"26057:1:65","nodeType":"YulIdentifier","src":"26057:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"26039:17:65","nodeType":"YulIdentifier","src":"26039:17:65"},"nativeSrc":"26039:20:65","nodeType":"YulFunctionCall","src":"26039:20:65"},"variableNames":[{"name":"x","nativeSrc":"26034:1:65","nodeType":"YulIdentifier","src":"26034:1:65"}]},{"nativeSrc":"26068:25:65","nodeType":"YulAssignment","src":"26068:25:65","value":{"arguments":[{"name":"y","nativeSrc":"26091:1:65","nodeType":"YulIdentifier","src":"26091:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"26073:17:65","nodeType":"YulIdentifier","src":"26073:17:65"},"nativeSrc":"26073:20:65","nodeType":"YulFunctionCall","src":"26073:20:65"},"variableNames":[{"name":"y","nativeSrc":"26068:1:65","nodeType":"YulIdentifier","src":"26068:1:65"}]},{"nativeSrc":"26102:16:65","nodeType":"YulAssignment","src":"26102:16:65","value":{"arguments":[{"name":"x","nativeSrc":"26113:1:65","nodeType":"YulIdentifier","src":"26113:1:65"},{"name":"y","nativeSrc":"26116:1:65","nodeType":"YulIdentifier","src":"26116:1:65"}],"functionName":{"name":"add","nativeSrc":"26109:3:65","nodeType":"YulIdentifier","src":"26109:3:65"},"nativeSrc":"26109:9:65","nodeType":"YulFunctionCall","src":"26109:9:65"},"variableNames":[{"name":"sum","nativeSrc":"26102:3:65","nodeType":"YulIdentifier","src":"26102:3:65"}]},{"body":{"nativeSrc":"26142:22:65","nodeType":"YulBlock","src":"26142:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"26144:16:65","nodeType":"YulIdentifier","src":"26144:16:65"},"nativeSrc":"26144:18:65","nodeType":"YulFunctionCall","src":"26144:18:65"},"nativeSrc":"26144:18:65","nodeType":"YulExpressionStatement","src":"26144:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"26134:1:65","nodeType":"YulIdentifier","src":"26134:1:65"},{"name":"sum","nativeSrc":"26137:3:65","nodeType":"YulIdentifier","src":"26137:3:65"}],"functionName":{"name":"gt","nativeSrc":"26131:2:65","nodeType":"YulIdentifier","src":"26131:2:65"},"nativeSrc":"26131:10:65","nodeType":"YulFunctionCall","src":"26131:10:65"},"nativeSrc":"26128:36:65","nodeType":"YulIf","src":"26128:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"25980:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"26011:1:65","nodeType":"YulTypedName","src":"26011:1:65","type":""},{"name":"y","nativeSrc":"26014:1:65","nodeType":"YulTypedName","src":"26014:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"26020:3:65","nodeType":"YulTypedName","src":"26020:3:65","type":""}],"src":"25980:191:65"},{"body":{"nativeSrc":"26273:73:65","nodeType":"YulBlock","src":"26273:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26290:3:65","nodeType":"YulIdentifier","src":"26290:3:65"},{"name":"length","nativeSrc":"26295:6:65","nodeType":"YulIdentifier","src":"26295:6:65"}],"functionName":{"name":"mstore","nativeSrc":"26283:6:65","nodeType":"YulIdentifier","src":"26283:6:65"},"nativeSrc":"26283:19:65","nodeType":"YulFunctionCall","src":"26283:19:65"},"nativeSrc":"26283:19:65","nodeType":"YulExpressionStatement","src":"26283:19:65"},{"nativeSrc":"26311:29:65","nodeType":"YulAssignment","src":"26311:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"26330:3:65","nodeType":"YulIdentifier","src":"26330:3:65"},{"kind":"number","nativeSrc":"26335:4:65","nodeType":"YulLiteral","src":"26335:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26326:3:65","nodeType":"YulIdentifier","src":"26326:3:65"},"nativeSrc":"26326:14:65","nodeType":"YulFunctionCall","src":"26326:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"26311:11:65","nodeType":"YulIdentifier","src":"26311:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"26177:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26245:3:65","nodeType":"YulTypedName","src":"26245:3:65","type":""},{"name":"length","nativeSrc":"26250:6:65","nodeType":"YulTypedName","src":"26250:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"26261:11:65","nodeType":"YulTypedName","src":"26261:11:65","type":""}],"src":"26177:169:65"},{"body":{"nativeSrc":"26458:76:65","nodeType":"YulBlock","src":"26458:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"26480:6:65","nodeType":"YulIdentifier","src":"26480:6:65"},{"kind":"number","nativeSrc":"26488:1:65","nodeType":"YulLiteral","src":"26488:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26476:3:65","nodeType":"YulIdentifier","src":"26476:3:65"},"nativeSrc":"26476:14:65","nodeType":"YulFunctionCall","src":"26476:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164","kind":"string","nativeSrc":"26492:34:65","nodeType":"YulLiteral","src":"26492:34:65","type":"","value":"LayerZeroMock: no stored payload"}],"functionName":{"name":"mstore","nativeSrc":"26469:6:65","nodeType":"YulIdentifier","src":"26469:6:65"},"nativeSrc":"26469:58:65","nodeType":"YulFunctionCall","src":"26469:58:65"},"nativeSrc":"26469:58:65","nodeType":"YulExpressionStatement","src":"26469:58:65"}]},"name":"store_literal_in_memory_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","nativeSrc":"26352:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"26450:6:65","nodeType":"YulTypedName","src":"26450:6:65","type":""}],"src":"26352:182:65"},{"body":{"nativeSrc":"26686:220:65","nodeType":"YulBlock","src":"26686:220:65","statements":[{"nativeSrc":"26696:74:65","nodeType":"YulAssignment","src":"26696:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"26762:3:65","nodeType":"YulIdentifier","src":"26762:3:65"},{"kind":"number","nativeSrc":"26767:2:65","nodeType":"YulLiteral","src":"26767:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"26703:58:65","nodeType":"YulIdentifier","src":"26703:58:65"},"nativeSrc":"26703:67:65","nodeType":"YulFunctionCall","src":"26703:67:65"},"variableNames":[{"name":"pos","nativeSrc":"26696:3:65","nodeType":"YulIdentifier","src":"26696:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"26868:3:65","nodeType":"YulIdentifier","src":"26868:3:65"}],"functionName":{"name":"store_literal_in_memory_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db","nativeSrc":"26779:88:65","nodeType":"YulIdentifier","src":"26779:88:65"},"nativeSrc":"26779:93:65","nodeType":"YulFunctionCall","src":"26779:93:65"},"nativeSrc":"26779:93:65","nodeType":"YulExpressionStatement","src":"26779:93:65"},{"nativeSrc":"26881:19:65","nodeType":"YulAssignment","src":"26881:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"26892:3:65","nodeType":"YulIdentifier","src":"26892:3:65"},{"kind":"number","nativeSrc":"26897:2:65","nodeType":"YulLiteral","src":"26897:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26888:3:65","nodeType":"YulIdentifier","src":"26888:3:65"},"nativeSrc":"26888:12:65","nodeType":"YulFunctionCall","src":"26888:12:65"},"variableNames":[{"name":"end","nativeSrc":"26881:3:65","nodeType":"YulIdentifier","src":"26881:3:65"}]}]},"name":"abi_encode_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db_to_t_string_memory_ptr_fromStack","nativeSrc":"26540:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26674:3:65","nodeType":"YulTypedName","src":"26674:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26682:3:65","nodeType":"YulTypedName","src":"26682:3:65","type":""}],"src":"26540:366:65"},{"body":{"nativeSrc":"27083:248:65","nodeType":"YulBlock","src":"27083:248:65","statements":[{"nativeSrc":"27093:26:65","nodeType":"YulAssignment","src":"27093:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"27105:9:65","nodeType":"YulIdentifier","src":"27105:9:65"},{"kind":"number","nativeSrc":"27116:2:65","nodeType":"YulLiteral","src":"27116:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27101:3:65","nodeType":"YulIdentifier","src":"27101:3:65"},"nativeSrc":"27101:18:65","nodeType":"YulFunctionCall","src":"27101:18:65"},"variableNames":[{"name":"tail","nativeSrc":"27093:4:65","nodeType":"YulIdentifier","src":"27093:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27140:9:65","nodeType":"YulIdentifier","src":"27140:9:65"},{"kind":"number","nativeSrc":"27151:1:65","nodeType":"YulLiteral","src":"27151:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27136:3:65","nodeType":"YulIdentifier","src":"27136:3:65"},"nativeSrc":"27136:17:65","nodeType":"YulFunctionCall","src":"27136:17:65"},{"arguments":[{"name":"tail","nativeSrc":"27159:4:65","nodeType":"YulIdentifier","src":"27159:4:65"},{"name":"headStart","nativeSrc":"27165:9:65","nodeType":"YulIdentifier","src":"27165:9:65"}],"functionName":{"name":"sub","nativeSrc":"27155:3:65","nodeType":"YulIdentifier","src":"27155:3:65"},"nativeSrc":"27155:20:65","nodeType":"YulFunctionCall","src":"27155:20:65"}],"functionName":{"name":"mstore","nativeSrc":"27129:6:65","nodeType":"YulIdentifier","src":"27129:6:65"},"nativeSrc":"27129:47:65","nodeType":"YulFunctionCall","src":"27129:47:65"},"nativeSrc":"27129:47:65","nodeType":"YulExpressionStatement","src":"27129:47:65"},{"nativeSrc":"27185:139:65","nodeType":"YulAssignment","src":"27185:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"27319:4:65","nodeType":"YulIdentifier","src":"27319:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db_to_t_string_memory_ptr_fromStack","nativeSrc":"27193:124:65","nodeType":"YulIdentifier","src":"27193:124:65"},"nativeSrc":"27193:131:65","nodeType":"YulFunctionCall","src":"27193:131:65"},"variableNames":[{"name":"tail","nativeSrc":"27185:4:65","nodeType":"YulIdentifier","src":"27185:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26912:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27063:9:65","nodeType":"YulTypedName","src":"27063:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27078:4:65","nodeType":"YulTypedName","src":"27078:4:65","type":""}],"src":"26912:419:65"},{"body":{"nativeSrc":"27443:73:65","nodeType":"YulBlock","src":"27443:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"27465:6:65","nodeType":"YulIdentifier","src":"27465:6:65"},{"kind":"number","nativeSrc":"27473:1:65","nodeType":"YulLiteral","src":"27473:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27461:3:65","nodeType":"YulIdentifier","src":"27461:3:65"},"nativeSrc":"27461:14:65","nodeType":"YulFunctionCall","src":"27461:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572","kind":"string","nativeSrc":"27477:31:65","nodeType":"YulLiteral","src":"27477:31:65","type":"","value":"LayerZeroMock: invalid caller"}],"functionName":{"name":"mstore","nativeSrc":"27454:6:65","nodeType":"YulIdentifier","src":"27454:6:65"},"nativeSrc":"27454:55:65","nodeType":"YulFunctionCall","src":"27454:55:65"},"nativeSrc":"27454:55:65","nodeType":"YulExpressionStatement","src":"27454:55:65"}]},"name":"store_literal_in_memory_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","nativeSrc":"27337:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"27435:6:65","nodeType":"YulTypedName","src":"27435:6:65","type":""}],"src":"27337:179:65"},{"body":{"nativeSrc":"27668:220:65","nodeType":"YulBlock","src":"27668:220:65","statements":[{"nativeSrc":"27678:74:65","nodeType":"YulAssignment","src":"27678:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"27744:3:65","nodeType":"YulIdentifier","src":"27744:3:65"},{"kind":"number","nativeSrc":"27749:2:65","nodeType":"YulLiteral","src":"27749:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"27685:58:65","nodeType":"YulIdentifier","src":"27685:58:65"},"nativeSrc":"27685:67:65","nodeType":"YulFunctionCall","src":"27685:67:65"},"variableNames":[{"name":"pos","nativeSrc":"27678:3:65","nodeType":"YulIdentifier","src":"27678:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"27850:3:65","nodeType":"YulIdentifier","src":"27850:3:65"}],"functionName":{"name":"store_literal_in_memory_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b","nativeSrc":"27761:88:65","nodeType":"YulIdentifier","src":"27761:88:65"},"nativeSrc":"27761:93:65","nodeType":"YulFunctionCall","src":"27761:93:65"},"nativeSrc":"27761:93:65","nodeType":"YulExpressionStatement","src":"27761:93:65"},{"nativeSrc":"27863:19:65","nodeType":"YulAssignment","src":"27863:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"27874:3:65","nodeType":"YulIdentifier","src":"27874:3:65"},{"kind":"number","nativeSrc":"27879:2:65","nodeType":"YulLiteral","src":"27879:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27870:3:65","nodeType":"YulIdentifier","src":"27870:3:65"},"nativeSrc":"27870:12:65","nodeType":"YulFunctionCall","src":"27870:12:65"},"variableNames":[{"name":"end","nativeSrc":"27863:3:65","nodeType":"YulIdentifier","src":"27863:3:65"}]}]},"name":"abi_encode_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b_to_t_string_memory_ptr_fromStack","nativeSrc":"27522:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"27656:3:65","nodeType":"YulTypedName","src":"27656:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27664:3:65","nodeType":"YulTypedName","src":"27664:3:65","type":""}],"src":"27522:366:65"},{"body":{"nativeSrc":"28065:248:65","nodeType":"YulBlock","src":"28065:248:65","statements":[{"nativeSrc":"28075:26:65","nodeType":"YulAssignment","src":"28075:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"28087:9:65","nodeType":"YulIdentifier","src":"28087:9:65"},{"kind":"number","nativeSrc":"28098:2:65","nodeType":"YulLiteral","src":"28098:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28083:3:65","nodeType":"YulIdentifier","src":"28083:3:65"},"nativeSrc":"28083:18:65","nodeType":"YulFunctionCall","src":"28083:18:65"},"variableNames":[{"name":"tail","nativeSrc":"28075:4:65","nodeType":"YulIdentifier","src":"28075:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28122:9:65","nodeType":"YulIdentifier","src":"28122:9:65"},{"kind":"number","nativeSrc":"28133:1:65","nodeType":"YulLiteral","src":"28133:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28118:3:65","nodeType":"YulIdentifier","src":"28118:3:65"},"nativeSrc":"28118:17:65","nodeType":"YulFunctionCall","src":"28118:17:65"},{"arguments":[{"name":"tail","nativeSrc":"28141:4:65","nodeType":"YulIdentifier","src":"28141:4:65"},{"name":"headStart","nativeSrc":"28147:9:65","nodeType":"YulIdentifier","src":"28147:9:65"}],"functionName":{"name":"sub","nativeSrc":"28137:3:65","nodeType":"YulIdentifier","src":"28137:3:65"},"nativeSrc":"28137:20:65","nodeType":"YulFunctionCall","src":"28137:20:65"}],"functionName":{"name":"mstore","nativeSrc":"28111:6:65","nodeType":"YulIdentifier","src":"28111:6:65"},"nativeSrc":"28111:47:65","nodeType":"YulFunctionCall","src":"28111:47:65"},"nativeSrc":"28111:47:65","nodeType":"YulExpressionStatement","src":"28111:47:65"},{"nativeSrc":"28167:139:65","nodeType":"YulAssignment","src":"28167:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"28301:4:65","nodeType":"YulIdentifier","src":"28301:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b_to_t_string_memory_ptr_fromStack","nativeSrc":"28175:124:65","nodeType":"YulIdentifier","src":"28175:124:65"},"nativeSrc":"28175:131:65","nodeType":"YulFunctionCall","src":"28175:131:65"},"variableNames":[{"name":"tail","nativeSrc":"28167:4:65","nodeType":"YulIdentifier","src":"28167:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"27894:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28045:9:65","nodeType":"YulTypedName","src":"28045:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28060:4:65","nodeType":"YulTypedName","src":"28060:4:65","type":""}],"src":"27894:419:65"},{"body":{"nativeSrc":"28441:214:65","nodeType":"YulBlock","src":"28441:214:65","statements":[{"nativeSrc":"28451:77:65","nodeType":"YulAssignment","src":"28451:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"28516:3:65","nodeType":"YulIdentifier","src":"28516:3:65"},{"name":"length","nativeSrc":"28521:6:65","nodeType":"YulIdentifier","src":"28521:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"28458:57:65","nodeType":"YulIdentifier","src":"28458:57:65"},"nativeSrc":"28458:70:65","nodeType":"YulFunctionCall","src":"28458:70:65"},"variableNames":[{"name":"pos","nativeSrc":"28451:3:65","nodeType":"YulIdentifier","src":"28451:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"28575:5:65","nodeType":"YulIdentifier","src":"28575:5:65"},{"name":"pos","nativeSrc":"28582:3:65","nodeType":"YulIdentifier","src":"28582:3:65"},{"name":"length","nativeSrc":"28587:6:65","nodeType":"YulIdentifier","src":"28587:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"28538:36:65","nodeType":"YulIdentifier","src":"28538:36:65"},"nativeSrc":"28538:56:65","nodeType":"YulFunctionCall","src":"28538:56:65"},"nativeSrc":"28538:56:65","nodeType":"YulExpressionStatement","src":"28538:56:65"},{"nativeSrc":"28603:46:65","nodeType":"YulAssignment","src":"28603:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"28614:3:65","nodeType":"YulIdentifier","src":"28614:3:65"},{"arguments":[{"name":"length","nativeSrc":"28641:6:65","nodeType":"YulIdentifier","src":"28641:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"28619:21:65","nodeType":"YulIdentifier","src":"28619:21:65"},"nativeSrc":"28619:29:65","nodeType":"YulFunctionCall","src":"28619:29:65"}],"functionName":{"name":"add","nativeSrc":"28610:3:65","nodeType":"YulIdentifier","src":"28610:3:65"},"nativeSrc":"28610:39:65","nodeType":"YulFunctionCall","src":"28610:39:65"},"variableNames":[{"name":"end","nativeSrc":"28603:3:65","nodeType":"YulIdentifier","src":"28603:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"28341:314:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"28414:5:65","nodeType":"YulTypedName","src":"28414:5:65","type":""},{"name":"length","nativeSrc":"28421:6:65","nodeType":"YulTypedName","src":"28421:6:65","type":""},{"name":"pos","nativeSrc":"28429:3:65","nodeType":"YulTypedName","src":"28429:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"28437:3:65","nodeType":"YulTypedName","src":"28437:3:65","type":""}],"src":"28341:314:65"},{"body":{"nativeSrc":"28813:283:65","nodeType":"YulBlock","src":"28813:283:65","statements":[{"nativeSrc":"28823:26:65","nodeType":"YulAssignment","src":"28823:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"28835:9:65","nodeType":"YulIdentifier","src":"28835:9:65"},{"kind":"number","nativeSrc":"28846:2:65","nodeType":"YulLiteral","src":"28846:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28831:3:65","nodeType":"YulIdentifier","src":"28831:3:65"},"nativeSrc":"28831:18:65","nodeType":"YulFunctionCall","src":"28831:18:65"},"variableNames":[{"name":"tail","nativeSrc":"28823:4:65","nodeType":"YulIdentifier","src":"28823:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28901:6:65","nodeType":"YulIdentifier","src":"28901:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"28914:9:65","nodeType":"YulIdentifier","src":"28914:9:65"},{"kind":"number","nativeSrc":"28925:1:65","nodeType":"YulLiteral","src":"28925:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28910:3:65","nodeType":"YulIdentifier","src":"28910:3:65"},"nativeSrc":"28910:17:65","nodeType":"YulFunctionCall","src":"28910:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"28859:41:65","nodeType":"YulIdentifier","src":"28859:41:65"},"nativeSrc":"28859:69:65","nodeType":"YulFunctionCall","src":"28859:69:65"},"nativeSrc":"28859:69:65","nodeType":"YulExpressionStatement","src":"28859:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28949:9:65","nodeType":"YulIdentifier","src":"28949:9:65"},{"kind":"number","nativeSrc":"28960:2:65","nodeType":"YulLiteral","src":"28960:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28945:3:65","nodeType":"YulIdentifier","src":"28945:3:65"},"nativeSrc":"28945:18:65","nodeType":"YulFunctionCall","src":"28945:18:65"},{"arguments":[{"name":"tail","nativeSrc":"28969:4:65","nodeType":"YulIdentifier","src":"28969:4:65"},{"name":"headStart","nativeSrc":"28975:9:65","nodeType":"YulIdentifier","src":"28975:9:65"}],"functionName":{"name":"sub","nativeSrc":"28965:3:65","nodeType":"YulIdentifier","src":"28965:3:65"},"nativeSrc":"28965:20:65","nodeType":"YulFunctionCall","src":"28965:20:65"}],"functionName":{"name":"mstore","nativeSrc":"28938:6:65","nodeType":"YulIdentifier","src":"28938:6:65"},"nativeSrc":"28938:48:65","nodeType":"YulFunctionCall","src":"28938:48:65"},"nativeSrc":"28938:48:65","nodeType":"YulExpressionStatement","src":"28938:48:65"},{"nativeSrc":"28995:94:65","nodeType":"YulAssignment","src":"28995:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"29067:6:65","nodeType":"YulIdentifier","src":"29067:6:65"},{"name":"value2","nativeSrc":"29075:6:65","nodeType":"YulIdentifier","src":"29075:6:65"},{"name":"tail","nativeSrc":"29084:4:65","nodeType":"YulIdentifier","src":"29084:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"29003:63:65","nodeType":"YulIdentifier","src":"29003:63:65"},"nativeSrc":"29003:86:65","nodeType":"YulFunctionCall","src":"29003:86:65"},"variableNames":[{"name":"tail","nativeSrc":"28995:4:65","nodeType":"YulIdentifier","src":"28995:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28661:435:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28769:9:65","nodeType":"YulTypedName","src":"28769:9:65","type":""},{"name":"value2","nativeSrc":"28781:6:65","nodeType":"YulTypedName","src":"28781:6:65","type":""},{"name":"value1","nativeSrc":"28789:6:65","nodeType":"YulTypedName","src":"28789:6:65","type":""},{"name":"value0","nativeSrc":"28797:6:65","nodeType":"YulTypedName","src":"28797:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28808:4:65","nodeType":"YulTypedName","src":"28808:4:65","type":""}],"src":"28661:435:65"},{"body":{"nativeSrc":"29208:74:65","nodeType":"YulBlock","src":"29208:74:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29230:6:65","nodeType":"YulIdentifier","src":"29230:6:65"},{"kind":"number","nativeSrc":"29238:1:65","nodeType":"YulLiteral","src":"29238:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29226:3:65","nodeType":"YulIdentifier","src":"29226:3:65"},"nativeSrc":"29226:14:65","nodeType":"YulFunctionCall","src":"29226:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f6164","kind":"string","nativeSrc":"29242:32:65","nodeType":"YulLiteral","src":"29242:32:65","type":"","value":"LayerZeroMock: invalid payload"}],"functionName":{"name":"mstore","nativeSrc":"29219:6:65","nodeType":"YulIdentifier","src":"29219:6:65"},"nativeSrc":"29219:56:65","nodeType":"YulFunctionCall","src":"29219:56:65"},"nativeSrc":"29219:56:65","nodeType":"YulExpressionStatement","src":"29219:56:65"}]},"name":"store_literal_in_memory_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","nativeSrc":"29102:180:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29200:6:65","nodeType":"YulTypedName","src":"29200:6:65","type":""}],"src":"29102:180:65"},{"body":{"nativeSrc":"29434:220:65","nodeType":"YulBlock","src":"29434:220:65","statements":[{"nativeSrc":"29444:74:65","nodeType":"YulAssignment","src":"29444:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"29510:3:65","nodeType":"YulIdentifier","src":"29510:3:65"},{"kind":"number","nativeSrc":"29515:2:65","nodeType":"YulLiteral","src":"29515:2:65","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29451:58:65","nodeType":"YulIdentifier","src":"29451:58:65"},"nativeSrc":"29451:67:65","nodeType":"YulFunctionCall","src":"29451:67:65"},"variableNames":[{"name":"pos","nativeSrc":"29444:3:65","nodeType":"YulIdentifier","src":"29444:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29616:3:65","nodeType":"YulIdentifier","src":"29616:3:65"}],"functionName":{"name":"store_literal_in_memory_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe","nativeSrc":"29527:88:65","nodeType":"YulIdentifier","src":"29527:88:65"},"nativeSrc":"29527:93:65","nodeType":"YulFunctionCall","src":"29527:93:65"},"nativeSrc":"29527:93:65","nodeType":"YulExpressionStatement","src":"29527:93:65"},{"nativeSrc":"29629:19:65","nodeType":"YulAssignment","src":"29629:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"29640:3:65","nodeType":"YulIdentifier","src":"29640:3:65"},{"kind":"number","nativeSrc":"29645:2:65","nodeType":"YulLiteral","src":"29645:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29636:3:65","nodeType":"YulIdentifier","src":"29636:3:65"},"nativeSrc":"29636:12:65","nodeType":"YulFunctionCall","src":"29636:12:65"},"variableNames":[{"name":"end","nativeSrc":"29629:3:65","nodeType":"YulIdentifier","src":"29629:3:65"}]}]},"name":"abi_encode_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe_to_t_string_memory_ptr_fromStack","nativeSrc":"29288:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29422:3:65","nodeType":"YulTypedName","src":"29422:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29430:3:65","nodeType":"YulTypedName","src":"29430:3:65","type":""}],"src":"29288:366:65"},{"body":{"nativeSrc":"29831:248:65","nodeType":"YulBlock","src":"29831:248:65","statements":[{"nativeSrc":"29841:26:65","nodeType":"YulAssignment","src":"29841:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"29853:9:65","nodeType":"YulIdentifier","src":"29853:9:65"},{"kind":"number","nativeSrc":"29864:2:65","nodeType":"YulLiteral","src":"29864:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29849:3:65","nodeType":"YulIdentifier","src":"29849:3:65"},"nativeSrc":"29849:18:65","nodeType":"YulFunctionCall","src":"29849:18:65"},"variableNames":[{"name":"tail","nativeSrc":"29841:4:65","nodeType":"YulIdentifier","src":"29841:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29888:9:65","nodeType":"YulIdentifier","src":"29888:9:65"},{"kind":"number","nativeSrc":"29899:1:65","nodeType":"YulLiteral","src":"29899:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29884:3:65","nodeType":"YulIdentifier","src":"29884:3:65"},"nativeSrc":"29884:17:65","nodeType":"YulFunctionCall","src":"29884:17:65"},{"arguments":[{"name":"tail","nativeSrc":"29907:4:65","nodeType":"YulIdentifier","src":"29907:4:65"},{"name":"headStart","nativeSrc":"29913:9:65","nodeType":"YulIdentifier","src":"29913:9:65"}],"functionName":{"name":"sub","nativeSrc":"29903:3:65","nodeType":"YulIdentifier","src":"29903:3:65"},"nativeSrc":"29903:20:65","nodeType":"YulFunctionCall","src":"29903:20:65"}],"functionName":{"name":"mstore","nativeSrc":"29877:6:65","nodeType":"YulIdentifier","src":"29877:6:65"},"nativeSrc":"29877:47:65","nodeType":"YulFunctionCall","src":"29877:47:65"},"nativeSrc":"29877:47:65","nodeType":"YulExpressionStatement","src":"29877:47:65"},{"nativeSrc":"29933:139:65","nodeType":"YulAssignment","src":"29933:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"30067:4:65","nodeType":"YulIdentifier","src":"30067:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe_to_t_string_memory_ptr_fromStack","nativeSrc":"29941:124:65","nodeType":"YulIdentifier","src":"29941:124:65"},"nativeSrc":"29941:131:65","nodeType":"YulFunctionCall","src":"29941:131:65"},"variableNames":[{"name":"tail","nativeSrc":"29933:4:65","nodeType":"YulIdentifier","src":"29933:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29660:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29811:9:65","nodeType":"YulTypedName","src":"29811:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29826:4:65","nodeType":"YulTypedName","src":"29826:4:65","type":""}],"src":"29660:419:65"},{"body":{"nativeSrc":"30319:525:65","nodeType":"YulBlock","src":"30319:525:65","statements":[{"nativeSrc":"30329:27:65","nodeType":"YulAssignment","src":"30329:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"30341:9:65","nodeType":"YulIdentifier","src":"30341:9:65"},{"kind":"number","nativeSrc":"30352:3:65","nodeType":"YulLiteral","src":"30352:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"30337:3:65","nodeType":"YulIdentifier","src":"30337:3:65"},"nativeSrc":"30337:19:65","nodeType":"YulFunctionCall","src":"30337:19:65"},"variableNames":[{"name":"tail","nativeSrc":"30329:4:65","nodeType":"YulIdentifier","src":"30329:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"30408:6:65","nodeType":"YulIdentifier","src":"30408:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"30421:9:65","nodeType":"YulIdentifier","src":"30421:9:65"},{"kind":"number","nativeSrc":"30432:1:65","nodeType":"YulLiteral","src":"30432:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30417:3:65","nodeType":"YulIdentifier","src":"30417:3:65"},"nativeSrc":"30417:17:65","nodeType":"YulFunctionCall","src":"30417:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"30366:41:65","nodeType":"YulIdentifier","src":"30366:41:65"},"nativeSrc":"30366:69:65","nodeType":"YulFunctionCall","src":"30366:69:65"},"nativeSrc":"30366:69:65","nodeType":"YulExpressionStatement","src":"30366:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30456:9:65","nodeType":"YulIdentifier","src":"30456:9:65"},{"kind":"number","nativeSrc":"30467:2:65","nodeType":"YulLiteral","src":"30467:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30452:3:65","nodeType":"YulIdentifier","src":"30452:3:65"},"nativeSrc":"30452:18:65","nodeType":"YulFunctionCall","src":"30452:18:65"},{"arguments":[{"name":"tail","nativeSrc":"30476:4:65","nodeType":"YulIdentifier","src":"30476:4:65"},{"name":"headStart","nativeSrc":"30482:9:65","nodeType":"YulIdentifier","src":"30482:9:65"}],"functionName":{"name":"sub","nativeSrc":"30472:3:65","nodeType":"YulIdentifier","src":"30472:3:65"},"nativeSrc":"30472:20:65","nodeType":"YulFunctionCall","src":"30472:20:65"}],"functionName":{"name":"mstore","nativeSrc":"30445:6:65","nodeType":"YulIdentifier","src":"30445:6:65"},"nativeSrc":"30445:48:65","nodeType":"YulFunctionCall","src":"30445:48:65"},"nativeSrc":"30445:48:65","nodeType":"YulExpressionStatement","src":"30445:48:65"},{"nativeSrc":"30502:94:65","nodeType":"YulAssignment","src":"30502:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"30574:6:65","nodeType":"YulIdentifier","src":"30574:6:65"},{"name":"value2","nativeSrc":"30582:6:65","nodeType":"YulIdentifier","src":"30582:6:65"},{"name":"tail","nativeSrc":"30591:4:65","nodeType":"YulIdentifier","src":"30591:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"30510:63:65","nodeType":"YulIdentifier","src":"30510:63:65"},"nativeSrc":"30510:86:65","nodeType":"YulFunctionCall","src":"30510:86:65"},"variableNames":[{"name":"tail","nativeSrc":"30502:4:65","nodeType":"YulIdentifier","src":"30502:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"30648:6:65","nodeType":"YulIdentifier","src":"30648:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"30661:9:65","nodeType":"YulIdentifier","src":"30661:9:65"},{"kind":"number","nativeSrc":"30672:2:65","nodeType":"YulLiteral","src":"30672:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30657:3:65","nodeType":"YulIdentifier","src":"30657:3:65"},"nativeSrc":"30657:18:65","nodeType":"YulFunctionCall","src":"30657:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"30606:41:65","nodeType":"YulIdentifier","src":"30606:41:65"},"nativeSrc":"30606:70:65","nodeType":"YulFunctionCall","src":"30606:70:65"},"nativeSrc":"30606:70:65","nodeType":"YulExpressionStatement","src":"30606:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30697:9:65","nodeType":"YulIdentifier","src":"30697:9:65"},{"kind":"number","nativeSrc":"30708:2:65","nodeType":"YulLiteral","src":"30708:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"30693:3:65","nodeType":"YulIdentifier","src":"30693:3:65"},"nativeSrc":"30693:18:65","nodeType":"YulFunctionCall","src":"30693:18:65"},{"arguments":[{"name":"tail","nativeSrc":"30717:4:65","nodeType":"YulIdentifier","src":"30717:4:65"},{"name":"headStart","nativeSrc":"30723:9:65","nodeType":"YulIdentifier","src":"30723:9:65"}],"functionName":{"name":"sub","nativeSrc":"30713:3:65","nodeType":"YulIdentifier","src":"30713:3:65"},"nativeSrc":"30713:20:65","nodeType":"YulFunctionCall","src":"30713:20:65"}],"functionName":{"name":"mstore","nativeSrc":"30686:6:65","nodeType":"YulIdentifier","src":"30686:6:65"},"nativeSrc":"30686:48:65","nodeType":"YulFunctionCall","src":"30686:48:65"},"nativeSrc":"30686:48:65","nodeType":"YulExpressionStatement","src":"30686:48:65"},{"nativeSrc":"30743:94:65","nodeType":"YulAssignment","src":"30743:94:65","value":{"arguments":[{"name":"value4","nativeSrc":"30815:6:65","nodeType":"YulIdentifier","src":"30815:6:65"},{"name":"value5","nativeSrc":"30823:6:65","nodeType":"YulIdentifier","src":"30823:6:65"},{"name":"tail","nativeSrc":"30832:4:65","nodeType":"YulIdentifier","src":"30832:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"30751:63:65","nodeType":"YulIdentifier","src":"30751:63:65"},"nativeSrc":"30751:86:65","nodeType":"YulFunctionCall","src":"30751:86:65"},"variableNames":[{"name":"tail","nativeSrc":"30743:4:65","nodeType":"YulIdentifier","src":"30743:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"30085:759:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30251:9:65","nodeType":"YulTypedName","src":"30251:9:65","type":""},{"name":"value5","nativeSrc":"30263:6:65","nodeType":"YulTypedName","src":"30263:6:65","type":""},{"name":"value4","nativeSrc":"30271:6:65","nodeType":"YulTypedName","src":"30271:6:65","type":""},{"name":"value3","nativeSrc":"30279:6:65","nodeType":"YulTypedName","src":"30279:6:65","type":""},{"name":"value2","nativeSrc":"30287:6:65","nodeType":"YulTypedName","src":"30287:6:65","type":""},{"name":"value1","nativeSrc":"30295:6:65","nodeType":"YulTypedName","src":"30295:6:65","type":""},{"name":"value0","nativeSrc":"30303:6:65","nodeType":"YulTypedName","src":"30303:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30314:4:65","nodeType":"YulTypedName","src":"30314:4:65","type":""}],"src":"30085:759:65"},{"body":{"nativeSrc":"31056:446:65","nodeType":"YulBlock","src":"31056:446:65","statements":[{"nativeSrc":"31066:27:65","nodeType":"YulAssignment","src":"31066:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"31078:9:65","nodeType":"YulIdentifier","src":"31078:9:65"},{"kind":"number","nativeSrc":"31089:3:65","nodeType":"YulLiteral","src":"31089:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"31074:3:65","nodeType":"YulIdentifier","src":"31074:3:65"},"nativeSrc":"31074:19:65","nodeType":"YulFunctionCall","src":"31074:19:65"},"variableNames":[{"name":"tail","nativeSrc":"31066:4:65","nodeType":"YulIdentifier","src":"31066:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"31145:6:65","nodeType":"YulIdentifier","src":"31145:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"31158:9:65","nodeType":"YulIdentifier","src":"31158:9:65"},{"kind":"number","nativeSrc":"31169:1:65","nodeType":"YulLiteral","src":"31169:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31154:3:65","nodeType":"YulIdentifier","src":"31154:3:65"},"nativeSrc":"31154:17:65","nodeType":"YulFunctionCall","src":"31154:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"31103:41:65","nodeType":"YulIdentifier","src":"31103:41:65"},"nativeSrc":"31103:69:65","nodeType":"YulFunctionCall","src":"31103:69:65"},"nativeSrc":"31103:69:65","nodeType":"YulExpressionStatement","src":"31103:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31193:9:65","nodeType":"YulIdentifier","src":"31193:9:65"},{"kind":"number","nativeSrc":"31204:2:65","nodeType":"YulLiteral","src":"31204:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31189:3:65","nodeType":"YulIdentifier","src":"31189:3:65"},"nativeSrc":"31189:18:65","nodeType":"YulFunctionCall","src":"31189:18:65"},{"arguments":[{"name":"tail","nativeSrc":"31213:4:65","nodeType":"YulIdentifier","src":"31213:4:65"},{"name":"headStart","nativeSrc":"31219:9:65","nodeType":"YulIdentifier","src":"31219:9:65"}],"functionName":{"name":"sub","nativeSrc":"31209:3:65","nodeType":"YulIdentifier","src":"31209:3:65"},"nativeSrc":"31209:20:65","nodeType":"YulFunctionCall","src":"31209:20:65"}],"functionName":{"name":"mstore","nativeSrc":"31182:6:65","nodeType":"YulIdentifier","src":"31182:6:65"},"nativeSrc":"31182:48:65","nodeType":"YulFunctionCall","src":"31182:48:65"},"nativeSrc":"31182:48:65","nodeType":"YulExpressionStatement","src":"31182:48:65"},{"nativeSrc":"31239:94:65","nodeType":"YulAssignment","src":"31239:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"31311:6:65","nodeType":"YulIdentifier","src":"31311:6:65"},{"name":"value2","nativeSrc":"31319:6:65","nodeType":"YulIdentifier","src":"31319:6:65"},{"name":"tail","nativeSrc":"31328:4:65","nodeType":"YulIdentifier","src":"31328:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"31247:63:65","nodeType":"YulIdentifier","src":"31247:63:65"},"nativeSrc":"31247:86:65","nodeType":"YulFunctionCall","src":"31247:86:65"},"variableNames":[{"name":"tail","nativeSrc":"31239:4:65","nodeType":"YulIdentifier","src":"31239:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"31385:6:65","nodeType":"YulIdentifier","src":"31385:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"31398:9:65","nodeType":"YulIdentifier","src":"31398:9:65"},{"kind":"number","nativeSrc":"31409:2:65","nodeType":"YulLiteral","src":"31409:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31394:3:65","nodeType":"YulIdentifier","src":"31394:3:65"},"nativeSrc":"31394:18:65","nodeType":"YulFunctionCall","src":"31394:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"31343:41:65","nodeType":"YulIdentifier","src":"31343:41:65"},"nativeSrc":"31343:70:65","nodeType":"YulFunctionCall","src":"31343:70:65"},"nativeSrc":"31343:70:65","nodeType":"YulExpressionStatement","src":"31343:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"31467:6:65","nodeType":"YulIdentifier","src":"31467:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"31480:9:65","nodeType":"YulIdentifier","src":"31480:9:65"},{"kind":"number","nativeSrc":"31491:2:65","nodeType":"YulLiteral","src":"31491:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"31476:3:65","nodeType":"YulIdentifier","src":"31476:3:65"},"nativeSrc":"31476:18:65","nodeType":"YulFunctionCall","src":"31476:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"31423:43:65","nodeType":"YulIdentifier","src":"31423:43:65"},"nativeSrc":"31423:72:65","nodeType":"YulFunctionCall","src":"31423:72:65"},"nativeSrc":"31423:72:65","nodeType":"YulExpressionStatement","src":"31423:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed","nativeSrc":"30850:652:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30996:9:65","nodeType":"YulTypedName","src":"30996:9:65","type":""},{"name":"value4","nativeSrc":"31008:6:65","nodeType":"YulTypedName","src":"31008:6:65","type":""},{"name":"value3","nativeSrc":"31016:6:65","nodeType":"YulTypedName","src":"31016:6:65","type":""},{"name":"value2","nativeSrc":"31024:6:65","nodeType":"YulTypedName","src":"31024:6:65","type":""},{"name":"value1","nativeSrc":"31032:6:65","nodeType":"YulTypedName","src":"31032:6:65","type":""},{"name":"value0","nativeSrc":"31040:6:65","nodeType":"YulTypedName","src":"31040:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31051:4:65","nodeType":"YulTypedName","src":"31051:4:65","type":""}],"src":"30850:652:65"},{"body":{"nativeSrc":"31614:117:65","nodeType":"YulBlock","src":"31614:117:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31636:6:65","nodeType":"YulIdentifier","src":"31636:6:65"},{"kind":"number","nativeSrc":"31644:1:65","nodeType":"YulLiteral","src":"31644:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31632:3:65","nodeType":"YulIdentifier","src":"31632:3:65"},"nativeSrc":"31632:14:65","nodeType":"YulFunctionCall","src":"31632:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472","kind":"string","nativeSrc":"31648:34:65","nodeType":"YulLiteral","src":"31648:34:65","type":"","value":"LayerZeroMock: no receive reentr"}],"functionName":{"name":"mstore","nativeSrc":"31625:6:65","nodeType":"YulIdentifier","src":"31625:6:65"},"nativeSrc":"31625:58:65","nodeType":"YulFunctionCall","src":"31625:58:65"},"nativeSrc":"31625:58:65","nodeType":"YulExpressionStatement","src":"31625:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31704:6:65","nodeType":"YulIdentifier","src":"31704:6:65"},{"kind":"number","nativeSrc":"31712:2:65","nodeType":"YulLiteral","src":"31712:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31700:3:65","nodeType":"YulIdentifier","src":"31700:3:65"},"nativeSrc":"31700:15:65","nodeType":"YulFunctionCall","src":"31700:15:65"},{"hexValue":"616e6379","kind":"string","nativeSrc":"31717:6:65","nodeType":"YulLiteral","src":"31717:6:65","type":"","value":"ancy"}],"functionName":{"name":"mstore","nativeSrc":"31693:6:65","nodeType":"YulIdentifier","src":"31693:6:65"},"nativeSrc":"31693:31:65","nodeType":"YulFunctionCall","src":"31693:31:65"},"nativeSrc":"31693:31:65","nodeType":"YulExpressionStatement","src":"31693:31:65"}]},"name":"store_literal_in_memory_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","nativeSrc":"31508:223:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"31606:6:65","nodeType":"YulTypedName","src":"31606:6:65","type":""}],"src":"31508:223:65"},{"body":{"nativeSrc":"31883:220:65","nodeType":"YulBlock","src":"31883:220:65","statements":[{"nativeSrc":"31893:74:65","nodeType":"YulAssignment","src":"31893:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"31959:3:65","nodeType":"YulIdentifier","src":"31959:3:65"},{"kind":"number","nativeSrc":"31964:2:65","nodeType":"YulLiteral","src":"31964:2:65","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"31900:58:65","nodeType":"YulIdentifier","src":"31900:58:65"},"nativeSrc":"31900:67:65","nodeType":"YulFunctionCall","src":"31900:67:65"},"variableNames":[{"name":"pos","nativeSrc":"31893:3:65","nodeType":"YulIdentifier","src":"31893:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"32065:3:65","nodeType":"YulIdentifier","src":"32065:3:65"}],"functionName":{"name":"store_literal_in_memory_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab","nativeSrc":"31976:88:65","nodeType":"YulIdentifier","src":"31976:88:65"},"nativeSrc":"31976:93:65","nodeType":"YulFunctionCall","src":"31976:93:65"},"nativeSrc":"31976:93:65","nodeType":"YulExpressionStatement","src":"31976:93:65"},{"nativeSrc":"32078:19:65","nodeType":"YulAssignment","src":"32078:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"32089:3:65","nodeType":"YulIdentifier","src":"32089:3:65"},{"kind":"number","nativeSrc":"32094:2:65","nodeType":"YulLiteral","src":"32094:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32085:3:65","nodeType":"YulIdentifier","src":"32085:3:65"},"nativeSrc":"32085:12:65","nodeType":"YulFunctionCall","src":"32085:12:65"},"variableNames":[{"name":"end","nativeSrc":"32078:3:65","nodeType":"YulIdentifier","src":"32078:3:65"}]}]},"name":"abi_encode_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab_to_t_string_memory_ptr_fromStack","nativeSrc":"31737:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31871:3:65","nodeType":"YulTypedName","src":"31871:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31879:3:65","nodeType":"YulTypedName","src":"31879:3:65","type":""}],"src":"31737:366:65"},{"body":{"nativeSrc":"32280:248:65","nodeType":"YulBlock","src":"32280:248:65","statements":[{"nativeSrc":"32290:26:65","nodeType":"YulAssignment","src":"32290:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"32302:9:65","nodeType":"YulIdentifier","src":"32302:9:65"},{"kind":"number","nativeSrc":"32313:2:65","nodeType":"YulLiteral","src":"32313:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32298:3:65","nodeType":"YulIdentifier","src":"32298:3:65"},"nativeSrc":"32298:18:65","nodeType":"YulFunctionCall","src":"32298:18:65"},"variableNames":[{"name":"tail","nativeSrc":"32290:4:65","nodeType":"YulIdentifier","src":"32290:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32337:9:65","nodeType":"YulIdentifier","src":"32337:9:65"},{"kind":"number","nativeSrc":"32348:1:65","nodeType":"YulLiteral","src":"32348:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32333:3:65","nodeType":"YulIdentifier","src":"32333:3:65"},"nativeSrc":"32333:17:65","nodeType":"YulFunctionCall","src":"32333:17:65"},{"arguments":[{"name":"tail","nativeSrc":"32356:4:65","nodeType":"YulIdentifier","src":"32356:4:65"},{"name":"headStart","nativeSrc":"32362:9:65","nodeType":"YulIdentifier","src":"32362:9:65"}],"functionName":{"name":"sub","nativeSrc":"32352:3:65","nodeType":"YulIdentifier","src":"32352:3:65"},"nativeSrc":"32352:20:65","nodeType":"YulFunctionCall","src":"32352:20:65"}],"functionName":{"name":"mstore","nativeSrc":"32326:6:65","nodeType":"YulIdentifier","src":"32326:6:65"},"nativeSrc":"32326:47:65","nodeType":"YulFunctionCall","src":"32326:47:65"},"nativeSrc":"32326:47:65","nodeType":"YulExpressionStatement","src":"32326:47:65"},{"nativeSrc":"32382:139:65","nodeType":"YulAssignment","src":"32382:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"32516:4:65","nodeType":"YulIdentifier","src":"32516:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab_to_t_string_memory_ptr_fromStack","nativeSrc":"32390:124:65","nodeType":"YulIdentifier","src":"32390:124:65"},"nativeSrc":"32390:131:65","nodeType":"YulFunctionCall","src":"32390:131:65"},"variableNames":[{"name":"tail","nativeSrc":"32382:4:65","nodeType":"YulIdentifier","src":"32382:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32109:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32260:9:65","nodeType":"YulTypedName","src":"32260:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32275:4:65","nodeType":"YulTypedName","src":"32275:4:65","type":""}],"src":"32109:419:65"},{"body":{"nativeSrc":"32576:141:65","nodeType":"YulBlock","src":"32576:141:65","statements":[{"nativeSrc":"32586:32:65","nodeType":"YulAssignment","src":"32586:32:65","value":{"arguments":[{"name":"value","nativeSrc":"32612:5:65","nodeType":"YulIdentifier","src":"32612:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"32595:16:65","nodeType":"YulIdentifier","src":"32595:16:65"},"nativeSrc":"32595:23:65","nodeType":"YulFunctionCall","src":"32595:23:65"},"variableNames":[{"name":"value","nativeSrc":"32586:5:65","nodeType":"YulIdentifier","src":"32586:5:65"}]},{"body":{"nativeSrc":"32660:22:65","nodeType":"YulBlock","src":"32660:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"32662:16:65","nodeType":"YulIdentifier","src":"32662:16:65"},"nativeSrc":"32662:18:65","nodeType":"YulFunctionCall","src":"32662:18:65"},"nativeSrc":"32662:18:65","nodeType":"YulExpressionStatement","src":"32662:18:65"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"32633:5:65","nodeType":"YulIdentifier","src":"32633:5:65"},{"kind":"number","nativeSrc":"32640:18:65","nodeType":"YulLiteral","src":"32640:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"32630:2:65","nodeType":"YulIdentifier","src":"32630:2:65"},"nativeSrc":"32630:29:65","nodeType":"YulFunctionCall","src":"32630:29:65"},"nativeSrc":"32627:55:65","nodeType":"YulIf","src":"32627:55:65"},{"nativeSrc":"32691:20:65","nodeType":"YulAssignment","src":"32691:20:65","value":{"arguments":[{"name":"value","nativeSrc":"32702:5:65","nodeType":"YulIdentifier","src":"32702:5:65"},{"kind":"number","nativeSrc":"32709:1:65","nodeType":"YulLiteral","src":"32709:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"32698:3:65","nodeType":"YulIdentifier","src":"32698:3:65"},"nativeSrc":"32698:13:65","nodeType":"YulFunctionCall","src":"32698:13:65"},"variableNames":[{"name":"ret","nativeSrc":"32691:3:65","nodeType":"YulIdentifier","src":"32691:3:65"}]}]},"name":"increment_t_uint64","nativeSrc":"32534:183:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32562:5:65","nodeType":"YulTypedName","src":"32562:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"32572:3:65","nodeType":"YulTypedName","src":"32572:3:65","type":""}],"src":"32534:183:65"},{"body":{"nativeSrc":"32829:70:65","nodeType":"YulBlock","src":"32829:70:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"32851:6:65","nodeType":"YulIdentifier","src":"32851:6:65"},{"kind":"number","nativeSrc":"32859:1:65","nodeType":"YulLiteral","src":"32859:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32847:3:65","nodeType":"YulIdentifier","src":"32847:3:65"},"nativeSrc":"32847:14:65","nodeType":"YulFunctionCall","src":"32847:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365","kind":"string","nativeSrc":"32863:28:65","nodeType":"YulLiteral","src":"32863:28:65","type":"","value":"LayerZeroMock: wrong nonce"}],"functionName":{"name":"mstore","nativeSrc":"32840:6:65","nodeType":"YulIdentifier","src":"32840:6:65"},"nativeSrc":"32840:52:65","nodeType":"YulFunctionCall","src":"32840:52:65"},"nativeSrc":"32840:52:65","nodeType":"YulExpressionStatement","src":"32840:52:65"}]},"name":"store_literal_in_memory_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","nativeSrc":"32723:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"32821:6:65","nodeType":"YulTypedName","src":"32821:6:65","type":""}],"src":"32723:176:65"},{"body":{"nativeSrc":"33051:220:65","nodeType":"YulBlock","src":"33051:220:65","statements":[{"nativeSrc":"33061:74:65","nodeType":"YulAssignment","src":"33061:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"33127:3:65","nodeType":"YulIdentifier","src":"33127:3:65"},{"kind":"number","nativeSrc":"33132:2:65","nodeType":"YulLiteral","src":"33132:2:65","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"33068:58:65","nodeType":"YulIdentifier","src":"33068:58:65"},"nativeSrc":"33068:67:65","nodeType":"YulFunctionCall","src":"33068:67:65"},"variableNames":[{"name":"pos","nativeSrc":"33061:3:65","nodeType":"YulIdentifier","src":"33061:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"33233:3:65","nodeType":"YulIdentifier","src":"33233:3:65"}],"functionName":{"name":"store_literal_in_memory_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac","nativeSrc":"33144:88:65","nodeType":"YulIdentifier","src":"33144:88:65"},"nativeSrc":"33144:93:65","nodeType":"YulFunctionCall","src":"33144:93:65"},"nativeSrc":"33144:93:65","nodeType":"YulExpressionStatement","src":"33144:93:65"},{"nativeSrc":"33246:19:65","nodeType":"YulAssignment","src":"33246:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"33257:3:65","nodeType":"YulIdentifier","src":"33257:3:65"},{"kind":"number","nativeSrc":"33262:2:65","nodeType":"YulLiteral","src":"33262:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33253:3:65","nodeType":"YulIdentifier","src":"33253:3:65"},"nativeSrc":"33253:12:65","nodeType":"YulFunctionCall","src":"33253:12:65"},"variableNames":[{"name":"end","nativeSrc":"33246:3:65","nodeType":"YulIdentifier","src":"33246:3:65"}]}]},"name":"abi_encode_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac_to_t_string_memory_ptr_fromStack","nativeSrc":"32905:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"33039:3:65","nodeType":"YulTypedName","src":"33039:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"33047:3:65","nodeType":"YulTypedName","src":"33047:3:65","type":""}],"src":"32905:366:65"},{"body":{"nativeSrc":"33448:248:65","nodeType":"YulBlock","src":"33448:248:65","statements":[{"nativeSrc":"33458:26:65","nodeType":"YulAssignment","src":"33458:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"33470:9:65","nodeType":"YulIdentifier","src":"33470:9:65"},{"kind":"number","nativeSrc":"33481:2:65","nodeType":"YulLiteral","src":"33481:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33466:3:65","nodeType":"YulIdentifier","src":"33466:3:65"},"nativeSrc":"33466:18:65","nodeType":"YulFunctionCall","src":"33466:18:65"},"variableNames":[{"name":"tail","nativeSrc":"33458:4:65","nodeType":"YulIdentifier","src":"33458:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33505:9:65","nodeType":"YulIdentifier","src":"33505:9:65"},{"kind":"number","nativeSrc":"33516:1:65","nodeType":"YulLiteral","src":"33516:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33501:3:65","nodeType":"YulIdentifier","src":"33501:3:65"},"nativeSrc":"33501:17:65","nodeType":"YulFunctionCall","src":"33501:17:65"},{"arguments":[{"name":"tail","nativeSrc":"33524:4:65","nodeType":"YulIdentifier","src":"33524:4:65"},{"name":"headStart","nativeSrc":"33530:9:65","nodeType":"YulIdentifier","src":"33530:9:65"}],"functionName":{"name":"sub","nativeSrc":"33520:3:65","nodeType":"YulIdentifier","src":"33520:3:65"},"nativeSrc":"33520:20:65","nodeType":"YulFunctionCall","src":"33520:20:65"}],"functionName":{"name":"mstore","nativeSrc":"33494:6:65","nodeType":"YulIdentifier","src":"33494:6:65"},"nativeSrc":"33494:47:65","nodeType":"YulFunctionCall","src":"33494:47:65"},"nativeSrc":"33494:47:65","nodeType":"YulExpressionStatement","src":"33494:47:65"},{"nativeSrc":"33550:139:65","nodeType":"YulAssignment","src":"33550:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"33684:4:65","nodeType":"YulIdentifier","src":"33684:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac_to_t_string_memory_ptr_fromStack","nativeSrc":"33558:124:65","nodeType":"YulIdentifier","src":"33558:124:65"},"nativeSrc":"33558:131:65","nodeType":"YulFunctionCall","src":"33558:131:65"},"variableNames":[{"name":"tail","nativeSrc":"33550:4:65","nodeType":"YulIdentifier","src":"33550:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"33277:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33428:9:65","nodeType":"YulTypedName","src":"33428:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33443:4:65","nodeType":"YulTypedName","src":"33443:4:65","type":""}],"src":"33277:419:65"},{"body":{"nativeSrc":"33755:87:65","nodeType":"YulBlock","src":"33755:87:65","statements":[{"nativeSrc":"33765:11:65","nodeType":"YulAssignment","src":"33765:11:65","value":{"name":"ptr","nativeSrc":"33773:3:65","nodeType":"YulIdentifier","src":"33773:3:65"},"variableNames":[{"name":"data","nativeSrc":"33765:4:65","nodeType":"YulIdentifier","src":"33765:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33793:1:65","nodeType":"YulLiteral","src":"33793:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"33796:3:65","nodeType":"YulIdentifier","src":"33796:3:65"}],"functionName":{"name":"mstore","nativeSrc":"33786:6:65","nodeType":"YulIdentifier","src":"33786:6:65"},"nativeSrc":"33786:14:65","nodeType":"YulFunctionCall","src":"33786:14:65"},"nativeSrc":"33786:14:65","nodeType":"YulExpressionStatement","src":"33786:14:65"},{"nativeSrc":"33809:26:65","nodeType":"YulAssignment","src":"33809:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"33827:1:65","nodeType":"YulLiteral","src":"33827:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"33830:4:65","nodeType":"YulLiteral","src":"33830:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"33817:9:65","nodeType":"YulIdentifier","src":"33817:9:65"},"nativeSrc":"33817:18:65","nodeType":"YulFunctionCall","src":"33817:18:65"},"variableNames":[{"name":"data","nativeSrc":"33809:4:65","nodeType":"YulIdentifier","src":"33809:4:65"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"33702:140:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"33742:3:65","nodeType":"YulTypedName","src":"33742:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"33750:4:65","nodeType":"YulTypedName","src":"33750:4:65","type":""}],"src":"33702:140:65"},{"body":{"nativeSrc":"33892:49:65","nodeType":"YulBlock","src":"33892:49:65","statements":[{"nativeSrc":"33902:33:65","nodeType":"YulAssignment","src":"33902:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33920:5:65","nodeType":"YulIdentifier","src":"33920:5:65"},{"kind":"number","nativeSrc":"33927:2:65","nodeType":"YulLiteral","src":"33927:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"33916:3:65","nodeType":"YulIdentifier","src":"33916:3:65"},"nativeSrc":"33916:14:65","nodeType":"YulFunctionCall","src":"33916:14:65"},{"kind":"number","nativeSrc":"33932:2:65","nodeType":"YulLiteral","src":"33932:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"33912:3:65","nodeType":"YulIdentifier","src":"33912:3:65"},"nativeSrc":"33912:23:65","nodeType":"YulFunctionCall","src":"33912:23:65"},"variableNames":[{"name":"result","nativeSrc":"33902:6:65","nodeType":"YulIdentifier","src":"33902:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"33848:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"33875:5:65","nodeType":"YulTypedName","src":"33875:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"33885:6:65","nodeType":"YulTypedName","src":"33885:6:65","type":""}],"src":"33848:93:65"},{"body":{"nativeSrc":"34000:54:65","nodeType":"YulBlock","src":"34000:54:65","statements":[{"nativeSrc":"34010:37:65","nodeType":"YulAssignment","src":"34010:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"34035:4:65","nodeType":"YulIdentifier","src":"34035:4:65"},{"name":"value","nativeSrc":"34041:5:65","nodeType":"YulIdentifier","src":"34041:5:65"}],"functionName":{"name":"shl","nativeSrc":"34031:3:65","nodeType":"YulIdentifier","src":"34031:3:65"},"nativeSrc":"34031:16:65","nodeType":"YulFunctionCall","src":"34031:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"34010:8:65","nodeType":"YulIdentifier","src":"34010:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"33947:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"33975:4:65","nodeType":"YulTypedName","src":"33975:4:65","type":""},{"name":"value","nativeSrc":"33981:5:65","nodeType":"YulTypedName","src":"33981:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"33991:8:65","nodeType":"YulTypedName","src":"33991:8:65","type":""}],"src":"33947:107:65"},{"body":{"nativeSrc":"34136:317:65","nodeType":"YulBlock","src":"34136:317:65","statements":[{"nativeSrc":"34146:35:65","nodeType":"YulVariableDeclaration","src":"34146:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"34167:10:65","nodeType":"YulIdentifier","src":"34167:10:65"},{"kind":"number","nativeSrc":"34179:1:65","nodeType":"YulLiteral","src":"34179:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"34163:3:65","nodeType":"YulIdentifier","src":"34163:3:65"},"nativeSrc":"34163:18:65","nodeType":"YulFunctionCall","src":"34163:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"34150:9:65","nodeType":"YulTypedName","src":"34150:9:65","type":""}]},{"nativeSrc":"34190:109:65","nodeType":"YulVariableDeclaration","src":"34190:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"34221:9:65","nodeType":"YulIdentifier","src":"34221:9:65"},{"kind":"number","nativeSrc":"34232:66:65","nodeType":"YulLiteral","src":"34232:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"34202:18:65","nodeType":"YulIdentifier","src":"34202:18:65"},"nativeSrc":"34202:97:65","nodeType":"YulFunctionCall","src":"34202:97:65"},"variables":[{"name":"mask","nativeSrc":"34194:4:65","nodeType":"YulTypedName","src":"34194:4:65","type":""}]},{"nativeSrc":"34308:51:65","nodeType":"YulAssignment","src":"34308:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"34339:9:65","nodeType":"YulIdentifier","src":"34339:9:65"},{"name":"toInsert","nativeSrc":"34350:8:65","nodeType":"YulIdentifier","src":"34350:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"34320:18:65","nodeType":"YulIdentifier","src":"34320:18:65"},"nativeSrc":"34320:39:65","nodeType":"YulFunctionCall","src":"34320:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"34308:8:65","nodeType":"YulIdentifier","src":"34308:8:65"}]},{"nativeSrc":"34368:30:65","nodeType":"YulAssignment","src":"34368:30:65","value":{"arguments":[{"name":"value","nativeSrc":"34381:5:65","nodeType":"YulIdentifier","src":"34381:5:65"},{"arguments":[{"name":"mask","nativeSrc":"34392:4:65","nodeType":"YulIdentifier","src":"34392:4:65"}],"functionName":{"name":"not","nativeSrc":"34388:3:65","nodeType":"YulIdentifier","src":"34388:3:65"},"nativeSrc":"34388:9:65","nodeType":"YulFunctionCall","src":"34388:9:65"}],"functionName":{"name":"and","nativeSrc":"34377:3:65","nodeType":"YulIdentifier","src":"34377:3:65"},"nativeSrc":"34377:21:65","nodeType":"YulFunctionCall","src":"34377:21:65"},"variableNames":[{"name":"value","nativeSrc":"34368:5:65","nodeType":"YulIdentifier","src":"34368:5:65"}]},{"nativeSrc":"34407:40:65","nodeType":"YulAssignment","src":"34407:40:65","value":{"arguments":[{"name":"value","nativeSrc":"34420:5:65","nodeType":"YulIdentifier","src":"34420:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"34431:8:65","nodeType":"YulIdentifier","src":"34431:8:65"},{"name":"mask","nativeSrc":"34441:4:65","nodeType":"YulIdentifier","src":"34441:4:65"}],"functionName":{"name":"and","nativeSrc":"34427:3:65","nodeType":"YulIdentifier","src":"34427:3:65"},"nativeSrc":"34427:19:65","nodeType":"YulFunctionCall","src":"34427:19:65"}],"functionName":{"name":"or","nativeSrc":"34417:2:65","nodeType":"YulIdentifier","src":"34417:2:65"},"nativeSrc":"34417:30:65","nodeType":"YulFunctionCall","src":"34417:30:65"},"variableNames":[{"name":"result","nativeSrc":"34407:6:65","nodeType":"YulIdentifier","src":"34407:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"34060:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34097:5:65","nodeType":"YulTypedName","src":"34097:5:65","type":""},{"name":"shiftBytes","nativeSrc":"34104:10:65","nodeType":"YulTypedName","src":"34104:10:65","type":""},{"name":"toInsert","nativeSrc":"34116:8:65","nodeType":"YulTypedName","src":"34116:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"34129:6:65","nodeType":"YulTypedName","src":"34129:6:65","type":""}],"src":"34060:393:65"},{"body":{"nativeSrc":"34491:28:65","nodeType":"YulBlock","src":"34491:28:65","statements":[{"nativeSrc":"34501:12:65","nodeType":"YulAssignment","src":"34501:12:65","value":{"name":"value","nativeSrc":"34508:5:65","nodeType":"YulIdentifier","src":"34508:5:65"},"variableNames":[{"name":"ret","nativeSrc":"34501:3:65","nodeType":"YulIdentifier","src":"34501:3:65"}]}]},"name":"identity","nativeSrc":"34459:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34477:5:65","nodeType":"YulTypedName","src":"34477:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"34487:3:65","nodeType":"YulTypedName","src":"34487:3:65","type":""}],"src":"34459:60:65"},{"body":{"nativeSrc":"34585:82:65","nodeType":"YulBlock","src":"34585:82:65","statements":[{"nativeSrc":"34595:66:65","nodeType":"YulAssignment","src":"34595:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"34653:5:65","nodeType":"YulIdentifier","src":"34653:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34635:17:65","nodeType":"YulIdentifier","src":"34635:17:65"},"nativeSrc":"34635:24:65","nodeType":"YulFunctionCall","src":"34635:24:65"}],"functionName":{"name":"identity","nativeSrc":"34626:8:65","nodeType":"YulIdentifier","src":"34626:8:65"},"nativeSrc":"34626:34:65","nodeType":"YulFunctionCall","src":"34626:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34608:17:65","nodeType":"YulIdentifier","src":"34608:17:65"},"nativeSrc":"34608:53:65","nodeType":"YulFunctionCall","src":"34608:53:65"},"variableNames":[{"name":"converted","nativeSrc":"34595:9:65","nodeType":"YulIdentifier","src":"34595:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"34525:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34565:5:65","nodeType":"YulTypedName","src":"34565:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"34575:9:65","nodeType":"YulTypedName","src":"34575:9:65","type":""}],"src":"34525:142:65"},{"body":{"nativeSrc":"34720:28:65","nodeType":"YulBlock","src":"34720:28:65","statements":[{"nativeSrc":"34730:12:65","nodeType":"YulAssignment","src":"34730:12:65","value":{"name":"value","nativeSrc":"34737:5:65","nodeType":"YulIdentifier","src":"34737:5:65"},"variableNames":[{"name":"ret","nativeSrc":"34730:3:65","nodeType":"YulIdentifier","src":"34730:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"34673:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34706:5:65","nodeType":"YulTypedName","src":"34706:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"34716:3:65","nodeType":"YulTypedName","src":"34716:3:65","type":""}],"src":"34673:75:65"},{"body":{"nativeSrc":"34830:193:65","nodeType":"YulBlock","src":"34830:193:65","statements":[{"nativeSrc":"34840:63:65","nodeType":"YulVariableDeclaration","src":"34840:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"34895:7:65","nodeType":"YulIdentifier","src":"34895:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"34864:30:65","nodeType":"YulIdentifier","src":"34864:30:65"},"nativeSrc":"34864:39:65","nodeType":"YulFunctionCall","src":"34864:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"34844:16:65","nodeType":"YulTypedName","src":"34844:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"34919:4:65","nodeType":"YulIdentifier","src":"34919:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"34959:4:65","nodeType":"YulIdentifier","src":"34959:4:65"}],"functionName":{"name":"sload","nativeSrc":"34953:5:65","nodeType":"YulIdentifier","src":"34953:5:65"},"nativeSrc":"34953:11:65","nodeType":"YulFunctionCall","src":"34953:11:65"},{"name":"offset","nativeSrc":"34966:6:65","nodeType":"YulIdentifier","src":"34966:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"34998:16:65","nodeType":"YulIdentifier","src":"34998:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"34974:23:65","nodeType":"YulIdentifier","src":"34974:23:65"},"nativeSrc":"34974:41:65","nodeType":"YulFunctionCall","src":"34974:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"34925:27:65","nodeType":"YulIdentifier","src":"34925:27:65"},"nativeSrc":"34925:91:65","nodeType":"YulFunctionCall","src":"34925:91:65"}],"functionName":{"name":"sstore","nativeSrc":"34912:6:65","nodeType":"YulIdentifier","src":"34912:6:65"},"nativeSrc":"34912:105:65","nodeType":"YulFunctionCall","src":"34912:105:65"},"nativeSrc":"34912:105:65","nodeType":"YulExpressionStatement","src":"34912:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"34754:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"34807:4:65","nodeType":"YulTypedName","src":"34807:4:65","type":""},{"name":"offset","nativeSrc":"34813:6:65","nodeType":"YulTypedName","src":"34813:6:65","type":""},{"name":"value_0","nativeSrc":"34821:7:65","nodeType":"YulTypedName","src":"34821:7:65","type":""}],"src":"34754:269:65"},{"body":{"nativeSrc":"35078:24:65","nodeType":"YulBlock","src":"35078:24:65","statements":[{"nativeSrc":"35088:8:65","nodeType":"YulAssignment","src":"35088:8:65","value":{"kind":"number","nativeSrc":"35095:1:65","nodeType":"YulLiteral","src":"35095:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"35088:3:65","nodeType":"YulIdentifier","src":"35088:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"35029:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"35074:3:65","nodeType":"YulTypedName","src":"35074:3:65","type":""}],"src":"35029:73:65"},{"body":{"nativeSrc":"35161:136:65","nodeType":"YulBlock","src":"35161:136:65","statements":[{"nativeSrc":"35171:46:65","nodeType":"YulVariableDeclaration","src":"35171:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"35185:30:65","nodeType":"YulIdentifier","src":"35185:30:65"},"nativeSrc":"35185:32:65","nodeType":"YulFunctionCall","src":"35185:32:65"},"variables":[{"name":"zero_0","nativeSrc":"35175:6:65","nodeType":"YulTypedName","src":"35175:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"35270:4:65","nodeType":"YulIdentifier","src":"35270:4:65"},{"name":"offset","nativeSrc":"35276:6:65","nodeType":"YulIdentifier","src":"35276:6:65"},{"name":"zero_0","nativeSrc":"35284:6:65","nodeType":"YulIdentifier","src":"35284:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"35226:43:65","nodeType":"YulIdentifier","src":"35226:43:65"},"nativeSrc":"35226:65:65","nodeType":"YulFunctionCall","src":"35226:65:65"},"nativeSrc":"35226:65:65","nodeType":"YulExpressionStatement","src":"35226:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"35108:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"35147:4:65","nodeType":"YulTypedName","src":"35147:4:65","type":""},{"name":"offset","nativeSrc":"35153:6:65","nodeType":"YulTypedName","src":"35153:6:65","type":""}],"src":"35108:189:65"},{"body":{"nativeSrc":"35353:136:65","nodeType":"YulBlock","src":"35353:136:65","statements":[{"body":{"nativeSrc":"35420:63:65","nodeType":"YulBlock","src":"35420:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"35464:5:65","nodeType":"YulIdentifier","src":"35464:5:65"},{"kind":"number","nativeSrc":"35471:1:65","nodeType":"YulLiteral","src":"35471:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"35434:29:65","nodeType":"YulIdentifier","src":"35434:29:65"},"nativeSrc":"35434:39:65","nodeType":"YulFunctionCall","src":"35434:39:65"},"nativeSrc":"35434:39:65","nodeType":"YulExpressionStatement","src":"35434:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"35373:5:65","nodeType":"YulIdentifier","src":"35373:5:65"},{"name":"end","nativeSrc":"35380:3:65","nodeType":"YulIdentifier","src":"35380:3:65"}],"functionName":{"name":"lt","nativeSrc":"35370:2:65","nodeType":"YulIdentifier","src":"35370:2:65"},"nativeSrc":"35370:14:65","nodeType":"YulFunctionCall","src":"35370:14:65"},"nativeSrc":"35363:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"35385:26:65","nodeType":"YulBlock","src":"35385:26:65","statements":[{"nativeSrc":"35387:22:65","nodeType":"YulAssignment","src":"35387:22:65","value":{"arguments":[{"name":"start","nativeSrc":"35400:5:65","nodeType":"YulIdentifier","src":"35400:5:65"},{"kind":"number","nativeSrc":"35407:1:65","nodeType":"YulLiteral","src":"35407:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35396:3:65","nodeType":"YulIdentifier","src":"35396:3:65"},"nativeSrc":"35396:13:65","nodeType":"YulFunctionCall","src":"35396:13:65"},"variableNames":[{"name":"start","nativeSrc":"35387:5:65","nodeType":"YulIdentifier","src":"35387:5:65"}]}]},"pre":{"nativeSrc":"35367:2:65","nodeType":"YulBlock","src":"35367:2:65","statements":[]},"src":"35363:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"35303:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"35341:5:65","nodeType":"YulTypedName","src":"35341:5:65","type":""},{"name":"end","nativeSrc":"35348:3:65","nodeType":"YulTypedName","src":"35348:3:65","type":""}],"src":"35303:186:65"},{"body":{"nativeSrc":"35573:463:65","nodeType":"YulBlock","src":"35573:463:65","statements":[{"body":{"nativeSrc":"35599:430:65","nodeType":"YulBlock","src":"35599:430:65","statements":[{"nativeSrc":"35613:53:65","nodeType":"YulVariableDeclaration","src":"35613:53:65","value":{"arguments":[{"name":"array","nativeSrc":"35660:5:65","nodeType":"YulIdentifier","src":"35660:5:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"35629:30:65","nodeType":"YulIdentifier","src":"35629:30:65"},"nativeSrc":"35629:37:65","nodeType":"YulFunctionCall","src":"35629:37:65"},"variables":[{"name":"dataArea","nativeSrc":"35617:8:65","nodeType":"YulTypedName","src":"35617:8:65","type":""}]},{"nativeSrc":"35679:63:65","nodeType":"YulVariableDeclaration","src":"35679:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"35702:8:65","nodeType":"YulIdentifier","src":"35702:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"35730:10:65","nodeType":"YulIdentifier","src":"35730:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"35712:17:65","nodeType":"YulIdentifier","src":"35712:17:65"},"nativeSrc":"35712:29:65","nodeType":"YulFunctionCall","src":"35712:29:65"}],"functionName":{"name":"add","nativeSrc":"35698:3:65","nodeType":"YulIdentifier","src":"35698:3:65"},"nativeSrc":"35698:44:65","nodeType":"YulFunctionCall","src":"35698:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"35683:11:65","nodeType":"YulTypedName","src":"35683:11:65","type":""}]},{"body":{"nativeSrc":"35899:27:65","nodeType":"YulBlock","src":"35899:27:65","statements":[{"nativeSrc":"35901:23:65","nodeType":"YulAssignment","src":"35901:23:65","value":{"name":"dataArea","nativeSrc":"35916:8:65","nodeType":"YulIdentifier","src":"35916:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"35901:11:65","nodeType":"YulIdentifier","src":"35901:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"35883:10:65","nodeType":"YulIdentifier","src":"35883:10:65"},{"kind":"number","nativeSrc":"35895:2:65","nodeType":"YulLiteral","src":"35895:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"35880:2:65","nodeType":"YulIdentifier","src":"35880:2:65"},"nativeSrc":"35880:18:65","nodeType":"YulFunctionCall","src":"35880:18:65"},"nativeSrc":"35877:49:65","nodeType":"YulIf","src":"35877:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"35968:11:65","nodeType":"YulIdentifier","src":"35968:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"35985:8:65","nodeType":"YulIdentifier","src":"35985:8:65"},{"arguments":[{"name":"len","nativeSrc":"36013:3:65","nodeType":"YulIdentifier","src":"36013:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"35995:17:65","nodeType":"YulIdentifier","src":"35995:17:65"},"nativeSrc":"35995:22:65","nodeType":"YulFunctionCall","src":"35995:22:65"}],"functionName":{"name":"add","nativeSrc":"35981:3:65","nodeType":"YulIdentifier","src":"35981:3:65"},"nativeSrc":"35981:37:65","nodeType":"YulFunctionCall","src":"35981:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"35939:28:65","nodeType":"YulIdentifier","src":"35939:28:65"},"nativeSrc":"35939:80:65","nodeType":"YulFunctionCall","src":"35939:80:65"},"nativeSrc":"35939:80:65","nodeType":"YulExpressionStatement","src":"35939:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"35590:3:65","nodeType":"YulIdentifier","src":"35590:3:65"},{"kind":"number","nativeSrc":"35595:2:65","nodeType":"YulLiteral","src":"35595:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"35587:2:65","nodeType":"YulIdentifier","src":"35587:2:65"},"nativeSrc":"35587:11:65","nodeType":"YulFunctionCall","src":"35587:11:65"},"nativeSrc":"35584:445:65","nodeType":"YulIf","src":"35584:445:65"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"35495:541:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"35549:5:65","nodeType":"YulTypedName","src":"35549:5:65","type":""},{"name":"len","nativeSrc":"35556:3:65","nodeType":"YulTypedName","src":"35556:3:65","type":""},{"name":"startIndex","nativeSrc":"35561:10:65","nodeType":"YulTypedName","src":"35561:10:65","type":""}],"src":"35495:541:65"},{"body":{"nativeSrc":"36105:54:65","nodeType":"YulBlock","src":"36105:54:65","statements":[{"nativeSrc":"36115:37:65","nodeType":"YulAssignment","src":"36115:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"36140:4:65","nodeType":"YulIdentifier","src":"36140:4:65"},{"name":"value","nativeSrc":"36146:5:65","nodeType":"YulIdentifier","src":"36146:5:65"}],"functionName":{"name":"shr","nativeSrc":"36136:3:65","nodeType":"YulIdentifier","src":"36136:3:65"},"nativeSrc":"36136:16:65","nodeType":"YulFunctionCall","src":"36136:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"36115:8:65","nodeType":"YulIdentifier","src":"36115:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"36042:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"36080:4:65","nodeType":"YulTypedName","src":"36080:4:65","type":""},{"name":"value","nativeSrc":"36086:5:65","nodeType":"YulTypedName","src":"36086:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"36096:8:65","nodeType":"YulTypedName","src":"36096:8:65","type":""}],"src":"36042:117:65"},{"body":{"nativeSrc":"36216:118:65","nodeType":"YulBlock","src":"36216:118:65","statements":[{"nativeSrc":"36226:68:65","nodeType":"YulVariableDeclaration","src":"36226:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"36275:1:65","nodeType":"YulLiteral","src":"36275:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"36278:5:65","nodeType":"YulIdentifier","src":"36278:5:65"}],"functionName":{"name":"mul","nativeSrc":"36271:3:65","nodeType":"YulIdentifier","src":"36271:3:65"},"nativeSrc":"36271:13:65","nodeType":"YulFunctionCall","src":"36271:13:65"},{"arguments":[{"kind":"number","nativeSrc":"36290:1:65","nodeType":"YulLiteral","src":"36290:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"36286:3:65","nodeType":"YulIdentifier","src":"36286:3:65"},"nativeSrc":"36286:6:65","nodeType":"YulFunctionCall","src":"36286:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"36242:28:65","nodeType":"YulIdentifier","src":"36242:28:65"},"nativeSrc":"36242:51:65","nodeType":"YulFunctionCall","src":"36242:51:65"}],"functionName":{"name":"not","nativeSrc":"36238:3:65","nodeType":"YulIdentifier","src":"36238:3:65"},"nativeSrc":"36238:56:65","nodeType":"YulFunctionCall","src":"36238:56:65"},"variables":[{"name":"mask","nativeSrc":"36230:4:65","nodeType":"YulTypedName","src":"36230:4:65","type":""}]},{"nativeSrc":"36303:25:65","nodeType":"YulAssignment","src":"36303:25:65","value":{"arguments":[{"name":"data","nativeSrc":"36317:4:65","nodeType":"YulIdentifier","src":"36317:4:65"},{"name":"mask","nativeSrc":"36323:4:65","nodeType":"YulIdentifier","src":"36323:4:65"}],"functionName":{"name":"and","nativeSrc":"36313:3:65","nodeType":"YulIdentifier","src":"36313:3:65"},"nativeSrc":"36313:15:65","nodeType":"YulFunctionCall","src":"36313:15:65"},"variableNames":[{"name":"result","nativeSrc":"36303:6:65","nodeType":"YulIdentifier","src":"36303:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"36165:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"36193:4:65","nodeType":"YulTypedName","src":"36193:4:65","type":""},{"name":"bytes","nativeSrc":"36199:5:65","nodeType":"YulTypedName","src":"36199:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"36209:6:65","nodeType":"YulTypedName","src":"36209:6:65","type":""}],"src":"36165:169:65"},{"body":{"nativeSrc":"36420:214:65","nodeType":"YulBlock","src":"36420:214:65","statements":[{"nativeSrc":"36553:37:65","nodeType":"YulAssignment","src":"36553:37:65","value":{"arguments":[{"name":"data","nativeSrc":"36580:4:65","nodeType":"YulIdentifier","src":"36580:4:65"},{"name":"len","nativeSrc":"36586:3:65","nodeType":"YulIdentifier","src":"36586:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"36561:18:65","nodeType":"YulIdentifier","src":"36561:18:65"},"nativeSrc":"36561:29:65","nodeType":"YulFunctionCall","src":"36561:29:65"},"variableNames":[{"name":"data","nativeSrc":"36553:4:65","nodeType":"YulIdentifier","src":"36553:4:65"}]},{"nativeSrc":"36599:29:65","nodeType":"YulAssignment","src":"36599:29:65","value":{"arguments":[{"name":"data","nativeSrc":"36610:4:65","nodeType":"YulIdentifier","src":"36610:4:65"},{"arguments":[{"kind":"number","nativeSrc":"36620:1:65","nodeType":"YulLiteral","src":"36620:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"36623:3:65","nodeType":"YulIdentifier","src":"36623:3:65"}],"functionName":{"name":"mul","nativeSrc":"36616:3:65","nodeType":"YulIdentifier","src":"36616:3:65"},"nativeSrc":"36616:11:65","nodeType":"YulFunctionCall","src":"36616:11:65"}],"functionName":{"name":"or","nativeSrc":"36607:2:65","nodeType":"YulIdentifier","src":"36607:2:65"},"nativeSrc":"36607:21:65","nodeType":"YulFunctionCall","src":"36607:21:65"},"variableNames":[{"name":"used","nativeSrc":"36599:4:65","nodeType":"YulIdentifier","src":"36599:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"36339:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"36401:4:65","nodeType":"YulTypedName","src":"36401:4:65","type":""},{"name":"len","nativeSrc":"36407:3:65","nodeType":"YulTypedName","src":"36407:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"36415:4:65","nodeType":"YulTypedName","src":"36415:4:65","type":""}],"src":"36339:295:65"},{"body":{"nativeSrc":"36729:1300:65","nodeType":"YulBlock","src":"36729:1300:65","statements":[{"nativeSrc":"36740:50:65","nodeType":"YulVariableDeclaration","src":"36740:50:65","value":{"arguments":[{"name":"src","nativeSrc":"36786:3:65","nodeType":"YulIdentifier","src":"36786:3:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"36754:31:65","nodeType":"YulIdentifier","src":"36754:31:65"},"nativeSrc":"36754:36:65","nodeType":"YulFunctionCall","src":"36754:36:65"},"variables":[{"name":"newLen","nativeSrc":"36744:6:65","nodeType":"YulTypedName","src":"36744:6:65","type":""}]},{"body":{"nativeSrc":"36875:22:65","nodeType":"YulBlock","src":"36875:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"36877:16:65","nodeType":"YulIdentifier","src":"36877:16:65"},"nativeSrc":"36877:18:65","nodeType":"YulFunctionCall","src":"36877:18:65"},"nativeSrc":"36877:18:65","nodeType":"YulExpressionStatement","src":"36877:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"36847:6:65","nodeType":"YulIdentifier","src":"36847:6:65"},{"kind":"number","nativeSrc":"36855:18:65","nodeType":"YulLiteral","src":"36855:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"36844:2:65","nodeType":"YulIdentifier","src":"36844:2:65"},"nativeSrc":"36844:30:65","nodeType":"YulFunctionCall","src":"36844:30:65"},"nativeSrc":"36841:56:65","nodeType":"YulIf","src":"36841:56:65"},{"nativeSrc":"36907:52:65","nodeType":"YulVariableDeclaration","src":"36907:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"36953:4:65","nodeType":"YulIdentifier","src":"36953:4:65"}],"functionName":{"name":"sload","nativeSrc":"36947:5:65","nodeType":"YulIdentifier","src":"36947:5:65"},"nativeSrc":"36947:11:65","nodeType":"YulFunctionCall","src":"36947:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"36921:25:65","nodeType":"YulIdentifier","src":"36921:25:65"},"nativeSrc":"36921:38:65","nodeType":"YulFunctionCall","src":"36921:38:65"},"variables":[{"name":"oldLen","nativeSrc":"36911:6:65","nodeType":"YulTypedName","src":"36911:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"37051:4:65","nodeType":"YulIdentifier","src":"37051:4:65"},{"name":"oldLen","nativeSrc":"37057:6:65","nodeType":"YulIdentifier","src":"37057:6:65"},{"name":"newLen","nativeSrc":"37065:6:65","nodeType":"YulIdentifier","src":"37065:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"37006:44:65","nodeType":"YulIdentifier","src":"37006:44:65"},"nativeSrc":"37006:66:65","nodeType":"YulFunctionCall","src":"37006:66:65"},"nativeSrc":"37006:66:65","nodeType":"YulExpressionStatement","src":"37006:66:65"},{"nativeSrc":"37082:18:65","nodeType":"YulVariableDeclaration","src":"37082:18:65","value":{"kind":"number","nativeSrc":"37099:1:65","nodeType":"YulLiteral","src":"37099:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"37086:9:65","nodeType":"YulTypedName","src":"37086:9:65","type":""}]},{"nativeSrc":"37110:17:65","nodeType":"YulAssignment","src":"37110:17:65","value":{"kind":"number","nativeSrc":"37123:4:65","nodeType":"YulLiteral","src":"37123:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"37110:9:65","nodeType":"YulIdentifier","src":"37110:9:65"}]},{"cases":[{"body":{"nativeSrc":"37174:610:65","nodeType":"YulBlock","src":"37174:610:65","statements":[{"nativeSrc":"37188:37:65","nodeType":"YulVariableDeclaration","src":"37188:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"37207:6:65","nodeType":"YulIdentifier","src":"37207:6:65"},{"arguments":[{"kind":"number","nativeSrc":"37219:4:65","nodeType":"YulLiteral","src":"37219:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"37215:3:65","nodeType":"YulIdentifier","src":"37215:3:65"},"nativeSrc":"37215:9:65","nodeType":"YulFunctionCall","src":"37215:9:65"}],"functionName":{"name":"and","nativeSrc":"37203:3:65","nodeType":"YulIdentifier","src":"37203:3:65"},"nativeSrc":"37203:22:65","nodeType":"YulFunctionCall","src":"37203:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"37192:7:65","nodeType":"YulTypedName","src":"37192:7:65","type":""}]},{"nativeSrc":"37239:50:65","nodeType":"YulVariableDeclaration","src":"37239:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"37284:4:65","nodeType":"YulIdentifier","src":"37284:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"37253:30:65","nodeType":"YulIdentifier","src":"37253:30:65"},"nativeSrc":"37253:36:65","nodeType":"YulFunctionCall","src":"37253:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"37243:6:65","nodeType":"YulTypedName","src":"37243:6:65","type":""}]},{"nativeSrc":"37302:10:65","nodeType":"YulVariableDeclaration","src":"37302:10:65","value":{"kind":"number","nativeSrc":"37311:1:65","nodeType":"YulLiteral","src":"37311:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"37306:1:65","nodeType":"YulTypedName","src":"37306:1:65","type":""}]},{"body":{"nativeSrc":"37370:163:65","nodeType":"YulBlock","src":"37370:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"37395:6:65","nodeType":"YulIdentifier","src":"37395:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37413:3:65","nodeType":"YulIdentifier","src":"37413:3:65"},{"name":"srcOffset","nativeSrc":"37418:9:65","nodeType":"YulIdentifier","src":"37418:9:65"}],"functionName":{"name":"add","nativeSrc":"37409:3:65","nodeType":"YulIdentifier","src":"37409:3:65"},"nativeSrc":"37409:19:65","nodeType":"YulFunctionCall","src":"37409:19:65"}],"functionName":{"name":"mload","nativeSrc":"37403:5:65","nodeType":"YulIdentifier","src":"37403:5:65"},"nativeSrc":"37403:26:65","nodeType":"YulFunctionCall","src":"37403:26:65"}],"functionName":{"name":"sstore","nativeSrc":"37388:6:65","nodeType":"YulIdentifier","src":"37388:6:65"},"nativeSrc":"37388:42:65","nodeType":"YulFunctionCall","src":"37388:42:65"},"nativeSrc":"37388:42:65","nodeType":"YulExpressionStatement","src":"37388:42:65"},{"nativeSrc":"37447:24:65","nodeType":"YulAssignment","src":"37447:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"37461:6:65","nodeType":"YulIdentifier","src":"37461:6:65"},{"kind":"number","nativeSrc":"37469:1:65","nodeType":"YulLiteral","src":"37469:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37457:3:65","nodeType":"YulIdentifier","src":"37457:3:65"},"nativeSrc":"37457:14:65","nodeType":"YulFunctionCall","src":"37457:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"37447:6:65","nodeType":"YulIdentifier","src":"37447:6:65"}]},{"nativeSrc":"37488:31:65","nodeType":"YulAssignment","src":"37488:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"37505:9:65","nodeType":"YulIdentifier","src":"37505:9:65"},{"kind":"number","nativeSrc":"37516:2:65","nodeType":"YulLiteral","src":"37516:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37501:3:65","nodeType":"YulIdentifier","src":"37501:3:65"},"nativeSrc":"37501:18:65","nodeType":"YulFunctionCall","src":"37501:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"37488:9:65","nodeType":"YulIdentifier","src":"37488:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"37336:1:65","nodeType":"YulIdentifier","src":"37336:1:65"},{"name":"loopEnd","nativeSrc":"37339:7:65","nodeType":"YulIdentifier","src":"37339:7:65"}],"functionName":{"name":"lt","nativeSrc":"37333:2:65","nodeType":"YulIdentifier","src":"37333:2:65"},"nativeSrc":"37333:14:65","nodeType":"YulFunctionCall","src":"37333:14:65"},"nativeSrc":"37325:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"37348:21:65","nodeType":"YulBlock","src":"37348:21:65","statements":[{"nativeSrc":"37350:17:65","nodeType":"YulAssignment","src":"37350:17:65","value":{"arguments":[{"name":"i","nativeSrc":"37359:1:65","nodeType":"YulIdentifier","src":"37359:1:65"},{"kind":"number","nativeSrc":"37362:4:65","nodeType":"YulLiteral","src":"37362:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37355:3:65","nodeType":"YulIdentifier","src":"37355:3:65"},"nativeSrc":"37355:12:65","nodeType":"YulFunctionCall","src":"37355:12:65"},"variableNames":[{"name":"i","nativeSrc":"37350:1:65","nodeType":"YulIdentifier","src":"37350:1:65"}]}]},"pre":{"nativeSrc":"37329:3:65","nodeType":"YulBlock","src":"37329:3:65","statements":[]},"src":"37325:208:65"},{"body":{"nativeSrc":"37569:156:65","nodeType":"YulBlock","src":"37569:156:65","statements":[{"nativeSrc":"37587:43:65","nodeType":"YulVariableDeclaration","src":"37587:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37614:3:65","nodeType":"YulIdentifier","src":"37614:3:65"},{"name":"srcOffset","nativeSrc":"37619:9:65","nodeType":"YulIdentifier","src":"37619:9:65"}],"functionName":{"name":"add","nativeSrc":"37610:3:65","nodeType":"YulIdentifier","src":"37610:3:65"},"nativeSrc":"37610:19:65","nodeType":"YulFunctionCall","src":"37610:19:65"}],"functionName":{"name":"mload","nativeSrc":"37604:5:65","nodeType":"YulIdentifier","src":"37604:5:65"},"nativeSrc":"37604:26:65","nodeType":"YulFunctionCall","src":"37604:26:65"},"variables":[{"name":"lastValue","nativeSrc":"37591:9:65","nodeType":"YulTypedName","src":"37591:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"37654:6:65","nodeType":"YulIdentifier","src":"37654:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"37681:9:65","nodeType":"YulIdentifier","src":"37681:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"37696:6:65","nodeType":"YulIdentifier","src":"37696:6:65"},{"kind":"number","nativeSrc":"37704:4:65","nodeType":"YulLiteral","src":"37704:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"37692:3:65","nodeType":"YulIdentifier","src":"37692:3:65"},"nativeSrc":"37692:17:65","nodeType":"YulFunctionCall","src":"37692:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"37662:18:65","nodeType":"YulIdentifier","src":"37662:18:65"},"nativeSrc":"37662:48:65","nodeType":"YulFunctionCall","src":"37662:48:65"}],"functionName":{"name":"sstore","nativeSrc":"37647:6:65","nodeType":"YulIdentifier","src":"37647:6:65"},"nativeSrc":"37647:64:65","nodeType":"YulFunctionCall","src":"37647:64:65"},"nativeSrc":"37647:64:65","nodeType":"YulExpressionStatement","src":"37647:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"37552:7:65","nodeType":"YulIdentifier","src":"37552:7:65"},{"name":"newLen","nativeSrc":"37561:6:65","nodeType":"YulIdentifier","src":"37561:6:65"}],"functionName":{"name":"lt","nativeSrc":"37549:2:65","nodeType":"YulIdentifier","src":"37549:2:65"},"nativeSrc":"37549:19:65","nodeType":"YulFunctionCall","src":"37549:19:65"},"nativeSrc":"37546:179:65","nodeType":"YulIf","src":"37546:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"37745:4:65","nodeType":"YulIdentifier","src":"37745:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"37759:6:65","nodeType":"YulIdentifier","src":"37759:6:65"},{"kind":"number","nativeSrc":"37767:1:65","nodeType":"YulLiteral","src":"37767:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"37755:3:65","nodeType":"YulIdentifier","src":"37755:3:65"},"nativeSrc":"37755:14:65","nodeType":"YulFunctionCall","src":"37755:14:65"},{"kind":"number","nativeSrc":"37771:1:65","nodeType":"YulLiteral","src":"37771:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"37751:3:65","nodeType":"YulIdentifier","src":"37751:3:65"},"nativeSrc":"37751:22:65","nodeType":"YulFunctionCall","src":"37751:22:65"}],"functionName":{"name":"sstore","nativeSrc":"37738:6:65","nodeType":"YulIdentifier","src":"37738:6:65"},"nativeSrc":"37738:36:65","nodeType":"YulFunctionCall","src":"37738:36:65"},"nativeSrc":"37738:36:65","nodeType":"YulExpressionStatement","src":"37738:36:65"}]},"nativeSrc":"37167:617:65","nodeType":"YulCase","src":"37167:617:65","value":{"kind":"number","nativeSrc":"37172:1:65","nodeType":"YulLiteral","src":"37172:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"37801:222:65","nodeType":"YulBlock","src":"37801:222:65","statements":[{"nativeSrc":"37815:14:65","nodeType":"YulVariableDeclaration","src":"37815:14:65","value":{"kind":"number","nativeSrc":"37828:1:65","nodeType":"YulLiteral","src":"37828:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"37819:5:65","nodeType":"YulTypedName","src":"37819:5:65","type":""}]},{"body":{"nativeSrc":"37852:67:65","nodeType":"YulBlock","src":"37852:67:65","statements":[{"nativeSrc":"37870:35:65","nodeType":"YulAssignment","src":"37870:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37889:3:65","nodeType":"YulIdentifier","src":"37889:3:65"},{"name":"srcOffset","nativeSrc":"37894:9:65","nodeType":"YulIdentifier","src":"37894:9:65"}],"functionName":{"name":"add","nativeSrc":"37885:3:65","nodeType":"YulIdentifier","src":"37885:3:65"},"nativeSrc":"37885:19:65","nodeType":"YulFunctionCall","src":"37885:19:65"}],"functionName":{"name":"mload","nativeSrc":"37879:5:65","nodeType":"YulIdentifier","src":"37879:5:65"},"nativeSrc":"37879:26:65","nodeType":"YulFunctionCall","src":"37879:26:65"},"variableNames":[{"name":"value","nativeSrc":"37870:5:65","nodeType":"YulIdentifier","src":"37870:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"37845:6:65","nodeType":"YulIdentifier","src":"37845:6:65"},"nativeSrc":"37842:77:65","nodeType":"YulIf","src":"37842:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"37939:4:65","nodeType":"YulIdentifier","src":"37939:4:65"},{"arguments":[{"name":"value","nativeSrc":"37998:5:65","nodeType":"YulIdentifier","src":"37998:5:65"},{"name":"newLen","nativeSrc":"38005:6:65","nodeType":"YulIdentifier","src":"38005:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"37945:52:65","nodeType":"YulIdentifier","src":"37945:52:65"},"nativeSrc":"37945:67:65","nodeType":"YulFunctionCall","src":"37945:67:65"}],"functionName":{"name":"sstore","nativeSrc":"37932:6:65","nodeType":"YulIdentifier","src":"37932:6:65"},"nativeSrc":"37932:81:65","nodeType":"YulFunctionCall","src":"37932:81:65"},"nativeSrc":"37932:81:65","nodeType":"YulExpressionStatement","src":"37932:81:65"}]},"nativeSrc":"37793:230:65","nodeType":"YulCase","src":"37793:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"37147:6:65","nodeType":"YulIdentifier","src":"37147:6:65"},{"kind":"number","nativeSrc":"37155:2:65","nodeType":"YulLiteral","src":"37155:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"37144:2:65","nodeType":"YulIdentifier","src":"37144:2:65"},"nativeSrc":"37144:14:65","nodeType":"YulFunctionCall","src":"37144:14:65"},"nativeSrc":"37137:886:65","nodeType":"YulSwitch","src":"37137:886:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"36639:1390:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"36718:4:65","nodeType":"YulTypedName","src":"36718:4:65","type":""},{"name":"src","nativeSrc":"36724:3:65","nodeType":"YulTypedName","src":"36724:3:65","type":""}],"src":"36639:1390:65"},{"body":{"nativeSrc":"38080:149:65","nodeType":"YulBlock","src":"38080:149:65","statements":[{"nativeSrc":"38090:25:65","nodeType":"YulAssignment","src":"38090:25:65","value":{"arguments":[{"name":"x","nativeSrc":"38113:1:65","nodeType":"YulIdentifier","src":"38113:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38095:17:65","nodeType":"YulIdentifier","src":"38095:17:65"},"nativeSrc":"38095:20:65","nodeType":"YulFunctionCall","src":"38095:20:65"},"variableNames":[{"name":"x","nativeSrc":"38090:1:65","nodeType":"YulIdentifier","src":"38090:1:65"}]},{"nativeSrc":"38124:25:65","nodeType":"YulAssignment","src":"38124:25:65","value":{"arguments":[{"name":"y","nativeSrc":"38147:1:65","nodeType":"YulIdentifier","src":"38147:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"38129:17:65","nodeType":"YulIdentifier","src":"38129:17:65"},"nativeSrc":"38129:20:65","nodeType":"YulFunctionCall","src":"38129:20:65"},"variableNames":[{"name":"y","nativeSrc":"38124:1:65","nodeType":"YulIdentifier","src":"38124:1:65"}]},{"nativeSrc":"38158:17:65","nodeType":"YulAssignment","src":"38158:17:65","value":{"arguments":[{"name":"x","nativeSrc":"38170:1:65","nodeType":"YulIdentifier","src":"38170:1:65"},{"name":"y","nativeSrc":"38173:1:65","nodeType":"YulIdentifier","src":"38173:1:65"}],"functionName":{"name":"sub","nativeSrc":"38166:3:65","nodeType":"YulIdentifier","src":"38166:3:65"},"nativeSrc":"38166:9:65","nodeType":"YulFunctionCall","src":"38166:9:65"},"variableNames":[{"name":"diff","nativeSrc":"38158:4:65","nodeType":"YulIdentifier","src":"38158:4:65"}]},{"body":{"nativeSrc":"38200:22:65","nodeType":"YulBlock","src":"38200:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"38202:16:65","nodeType":"YulIdentifier","src":"38202:16:65"},"nativeSrc":"38202:18:65","nodeType":"YulFunctionCall","src":"38202:18:65"},"nativeSrc":"38202:18:65","nodeType":"YulExpressionStatement","src":"38202:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"38191:4:65","nodeType":"YulIdentifier","src":"38191:4:65"},{"name":"x","nativeSrc":"38197:1:65","nodeType":"YulIdentifier","src":"38197:1:65"}],"functionName":{"name":"gt","nativeSrc":"38188:2:65","nodeType":"YulIdentifier","src":"38188:2:65"},"nativeSrc":"38188:11:65","nodeType":"YulFunctionCall","src":"38188:11:65"},"nativeSrc":"38185:37:65","nodeType":"YulIf","src":"38185:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"38035:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"38066:1:65","nodeType":"YulTypedName","src":"38066:1:65","type":""},{"name":"y","nativeSrc":"38069:1:65","nodeType":"YulTypedName","src":"38069:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"38075:4:65","nodeType":"YulTypedName","src":"38075:4:65","type":""}],"src":"38035:194:65"},{"body":{"nativeSrc":"38263:152:65","nodeType":"YulBlock","src":"38263:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38280:1:65","nodeType":"YulLiteral","src":"38280:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"38283:77:65","nodeType":"YulLiteral","src":"38283:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"38273:6:65","nodeType":"YulIdentifier","src":"38273:6:65"},"nativeSrc":"38273:88:65","nodeType":"YulFunctionCall","src":"38273:88:65"},"nativeSrc":"38273:88:65","nodeType":"YulExpressionStatement","src":"38273:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38377:1:65","nodeType":"YulLiteral","src":"38377:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"38380:4:65","nodeType":"YulLiteral","src":"38380:4:65","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"38370:6:65","nodeType":"YulIdentifier","src":"38370:6:65"},"nativeSrc":"38370:15:65","nodeType":"YulFunctionCall","src":"38370:15:65"},"nativeSrc":"38370:15:65","nodeType":"YulExpressionStatement","src":"38370:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38401:1:65","nodeType":"YulLiteral","src":"38401:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"38404:4:65","nodeType":"YulLiteral","src":"38404:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"38394:6:65","nodeType":"YulIdentifier","src":"38394:6:65"},"nativeSrc":"38394:15:65","nodeType":"YulFunctionCall","src":"38394:15:65"},"nativeSrc":"38394:15:65","nodeType":"YulExpressionStatement","src":"38394:15:65"}]},"name":"panic_error_0x32","nativeSrc":"38235:180:65","nodeType":"YulFunctionDefinition","src":"38235:180:65"},{"body":{"nativeSrc":"38476:93:65","nodeType":"YulBlock","src":"38476:93:65","statements":[{"nativeSrc":"38487:22:65","nodeType":"YulAssignment","src":"38487:22:65","value":{"arguments":[{"name":"value","nativeSrc":"38503:5:65","nodeType":"YulIdentifier","src":"38503:5:65"}],"functionName":{"name":"sload","nativeSrc":"38497:5:65","nodeType":"YulIdentifier","src":"38497:5:65"},"nativeSrc":"38497:12:65","nodeType":"YulFunctionCall","src":"38497:12:65"},"variableNames":[{"name":"length","nativeSrc":"38487:6:65","nodeType":"YulIdentifier","src":"38487:6:65"}]},{"nativeSrc":"38519:43:65","nodeType":"YulAssignment","src":"38519:43:65","value":{"arguments":[{"name":"length","nativeSrc":"38555:6:65","nodeType":"YulIdentifier","src":"38555:6:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"38529:25:65","nodeType":"YulIdentifier","src":"38529:25:65"},"nativeSrc":"38529:33:65","nodeType":"YulFunctionCall","src":"38529:33:65"},"variableNames":[{"name":"length","nativeSrc":"38519:6:65","nodeType":"YulIdentifier","src":"38519:6:65"}]}]},"name":"array_length_t_bytes_storage","nativeSrc":"38421:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"38459:5:65","nodeType":"YulTypedName","src":"38459:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"38469:6:65","nodeType":"YulTypedName","src":"38469:6:65","type":""}],"src":"38421:148:65"},{"body":{"nativeSrc":"38662:1358:65","nodeType":"YulBlock","src":"38662:1358:65","statements":[{"body":{"nativeSrc":"38689:9:65","nodeType":"YulBlock","src":"38689:9:65","statements":[{"nativeSrc":"38691:5:65","nodeType":"YulLeave","src":"38691:5:65"}]},"condition":{"arguments":[{"name":"slot","nativeSrc":"38678:4:65","nodeType":"YulIdentifier","src":"38678:4:65"},{"name":"src","nativeSrc":"38684:3:65","nodeType":"YulIdentifier","src":"38684:3:65"}],"functionName":{"name":"eq","nativeSrc":"38675:2:65","nodeType":"YulIdentifier","src":"38675:2:65"},"nativeSrc":"38675:13:65","nodeType":"YulFunctionCall","src":"38675:13:65"},"nativeSrc":"38672:26:65","nodeType":"YulIf","src":"38672:26:65"},{"nativeSrc":"38708:47:65","nodeType":"YulVariableDeclaration","src":"38708:47:65","value":{"arguments":[{"name":"src","nativeSrc":"38751:3:65","nodeType":"YulIdentifier","src":"38751:3:65"}],"functionName":{"name":"array_length_t_bytes_storage","nativeSrc":"38722:28:65","nodeType":"YulIdentifier","src":"38722:28:65"},"nativeSrc":"38722:33:65","nodeType":"YulFunctionCall","src":"38722:33:65"},"variables":[{"name":"newLen","nativeSrc":"38712:6:65","nodeType":"YulTypedName","src":"38712:6:65","type":""}]},{"body":{"nativeSrc":"38840:22:65","nodeType":"YulBlock","src":"38840:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"38842:16:65","nodeType":"YulIdentifier","src":"38842:16:65"},"nativeSrc":"38842:18:65","nodeType":"YulFunctionCall","src":"38842:18:65"},"nativeSrc":"38842:18:65","nodeType":"YulExpressionStatement","src":"38842:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"38812:6:65","nodeType":"YulIdentifier","src":"38812:6:65"},{"kind":"number","nativeSrc":"38820:18:65","nodeType":"YulLiteral","src":"38820:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"38809:2:65","nodeType":"YulIdentifier","src":"38809:2:65"},"nativeSrc":"38809:30:65","nodeType":"YulFunctionCall","src":"38809:30:65"},"nativeSrc":"38806:56:65","nodeType":"YulIf","src":"38806:56:65"},{"nativeSrc":"38872:52:65","nodeType":"YulVariableDeclaration","src":"38872:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"38918:4:65","nodeType":"YulIdentifier","src":"38918:4:65"}],"functionName":{"name":"sload","nativeSrc":"38912:5:65","nodeType":"YulIdentifier","src":"38912:5:65"},"nativeSrc":"38912:11:65","nodeType":"YulFunctionCall","src":"38912:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"38886:25:65","nodeType":"YulIdentifier","src":"38886:25:65"},"nativeSrc":"38886:38:65","nodeType":"YulFunctionCall","src":"38886:38:65"},"variables":[{"name":"oldLen","nativeSrc":"38876:6:65","nodeType":"YulTypedName","src":"38876:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"39016:4:65","nodeType":"YulIdentifier","src":"39016:4:65"},{"name":"oldLen","nativeSrc":"39022:6:65","nodeType":"YulIdentifier","src":"39022:6:65"},{"name":"newLen","nativeSrc":"39030:6:65","nodeType":"YulIdentifier","src":"39030:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"38971:44:65","nodeType":"YulIdentifier","src":"38971:44:65"},"nativeSrc":"38971:66:65","nodeType":"YulFunctionCall","src":"38971:66:65"},"nativeSrc":"38971:66:65","nodeType":"YulExpressionStatement","src":"38971:66:65"},{"nativeSrc":"39047:18:65","nodeType":"YulVariableDeclaration","src":"39047:18:65","value":{"kind":"number","nativeSrc":"39064:1:65","nodeType":"YulLiteral","src":"39064:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"39051:9:65","nodeType":"YulTypedName","src":"39051:9:65","type":""}]},{"cases":[{"body":{"nativeSrc":"39112:663:65","nodeType":"YulBlock","src":"39112:663:65","statements":[{"nativeSrc":"39126:37:65","nodeType":"YulVariableDeclaration","src":"39126:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"39145:6:65","nodeType":"YulIdentifier","src":"39145:6:65"},{"arguments":[{"kind":"number","nativeSrc":"39157:4:65","nodeType":"YulLiteral","src":"39157:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"39153:3:65","nodeType":"YulIdentifier","src":"39153:3:65"},"nativeSrc":"39153:9:65","nodeType":"YulFunctionCall","src":"39153:9:65"}],"functionName":{"name":"and","nativeSrc":"39141:3:65","nodeType":"YulIdentifier","src":"39141:3:65"},"nativeSrc":"39141:22:65","nodeType":"YulFunctionCall","src":"39141:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"39130:7:65","nodeType":"YulTypedName","src":"39130:7:65","type":""}]},{"nativeSrc":"39176:42:65","nodeType":"YulAssignment","src":"39176:42:65","value":{"arguments":[{"name":"src","nativeSrc":"39214:3:65","nodeType":"YulIdentifier","src":"39214:3:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"39183:30:65","nodeType":"YulIdentifier","src":"39183:30:65"},"nativeSrc":"39183:35:65","nodeType":"YulFunctionCall","src":"39183:35:65"},"variableNames":[{"name":"src","nativeSrc":"39176:3:65","nodeType":"YulIdentifier","src":"39176:3:65"}]},{"nativeSrc":"39231:50:65","nodeType":"YulVariableDeclaration","src":"39231:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"39276:4:65","nodeType":"YulIdentifier","src":"39276:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"39245:30:65","nodeType":"YulIdentifier","src":"39245:30:65"},"nativeSrc":"39245:36:65","nodeType":"YulFunctionCall","src":"39245:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"39235:6:65","nodeType":"YulTypedName","src":"39235:6:65","type":""}]},{"nativeSrc":"39294:10:65","nodeType":"YulVariableDeclaration","src":"39294:10:65","value":{"kind":"number","nativeSrc":"39303:1:65","nodeType":"YulLiteral","src":"39303:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"39298:1:65","nodeType":"YulTypedName","src":"39298:1:65","type":""}]},{"body":{"nativeSrc":"39362:162:65","nodeType":"YulBlock","src":"39362:162:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"39387:6:65","nodeType":"YulIdentifier","src":"39387:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"39405:3:65","nodeType":"YulIdentifier","src":"39405:3:65"},{"name":"srcOffset","nativeSrc":"39410:9:65","nodeType":"YulIdentifier","src":"39410:9:65"}],"functionName":{"name":"add","nativeSrc":"39401:3:65","nodeType":"YulIdentifier","src":"39401:3:65"},"nativeSrc":"39401:19:65","nodeType":"YulFunctionCall","src":"39401:19:65"}],"functionName":{"name":"sload","nativeSrc":"39395:5:65","nodeType":"YulIdentifier","src":"39395:5:65"},"nativeSrc":"39395:26:65","nodeType":"YulFunctionCall","src":"39395:26:65"}],"functionName":{"name":"sstore","nativeSrc":"39380:6:65","nodeType":"YulIdentifier","src":"39380:6:65"},"nativeSrc":"39380:42:65","nodeType":"YulFunctionCall","src":"39380:42:65"},"nativeSrc":"39380:42:65","nodeType":"YulExpressionStatement","src":"39380:42:65"},{"nativeSrc":"39439:24:65","nodeType":"YulAssignment","src":"39439:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"39453:6:65","nodeType":"YulIdentifier","src":"39453:6:65"},{"kind":"number","nativeSrc":"39461:1:65","nodeType":"YulLiteral","src":"39461:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39449:3:65","nodeType":"YulIdentifier","src":"39449:3:65"},"nativeSrc":"39449:14:65","nodeType":"YulFunctionCall","src":"39449:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"39439:6:65","nodeType":"YulIdentifier","src":"39439:6:65"}]},{"nativeSrc":"39480:30:65","nodeType":"YulAssignment","src":"39480:30:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"39497:9:65","nodeType":"YulIdentifier","src":"39497:9:65"},{"kind":"number","nativeSrc":"39508:1:65","nodeType":"YulLiteral","src":"39508:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39493:3:65","nodeType":"YulIdentifier","src":"39493:3:65"},"nativeSrc":"39493:17:65","nodeType":"YulFunctionCall","src":"39493:17:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"39480:9:65","nodeType":"YulIdentifier","src":"39480:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"39328:1:65","nodeType":"YulIdentifier","src":"39328:1:65"},{"name":"loopEnd","nativeSrc":"39331:7:65","nodeType":"YulIdentifier","src":"39331:7:65"}],"functionName":{"name":"lt","nativeSrc":"39325:2:65","nodeType":"YulIdentifier","src":"39325:2:65"},"nativeSrc":"39325:14:65","nodeType":"YulFunctionCall","src":"39325:14:65"},"nativeSrc":"39317:207:65","nodeType":"YulForLoop","post":{"nativeSrc":"39340:21:65","nodeType":"YulBlock","src":"39340:21:65","statements":[{"nativeSrc":"39342:17:65","nodeType":"YulAssignment","src":"39342:17:65","value":{"arguments":[{"name":"i","nativeSrc":"39351:1:65","nodeType":"YulIdentifier","src":"39351:1:65"},{"kind":"number","nativeSrc":"39354:4:65","nodeType":"YulLiteral","src":"39354:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39347:3:65","nodeType":"YulIdentifier","src":"39347:3:65"},"nativeSrc":"39347:12:65","nodeType":"YulFunctionCall","src":"39347:12:65"},"variableNames":[{"name":"i","nativeSrc":"39342:1:65","nodeType":"YulIdentifier","src":"39342:1:65"}]}]},"pre":{"nativeSrc":"39321:3:65","nodeType":"YulBlock","src":"39321:3:65","statements":[]},"src":"39317:207:65"},{"body":{"nativeSrc":"39560:156:65","nodeType":"YulBlock","src":"39560:156:65","statements":[{"nativeSrc":"39578:43:65","nodeType":"YulVariableDeclaration","src":"39578:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"39605:3:65","nodeType":"YulIdentifier","src":"39605:3:65"},{"name":"srcOffset","nativeSrc":"39610:9:65","nodeType":"YulIdentifier","src":"39610:9:65"}],"functionName":{"name":"add","nativeSrc":"39601:3:65","nodeType":"YulIdentifier","src":"39601:3:65"},"nativeSrc":"39601:19:65","nodeType":"YulFunctionCall","src":"39601:19:65"}],"functionName":{"name":"sload","nativeSrc":"39595:5:65","nodeType":"YulIdentifier","src":"39595:5:65"},"nativeSrc":"39595:26:65","nodeType":"YulFunctionCall","src":"39595:26:65"},"variables":[{"name":"lastValue","nativeSrc":"39582:9:65","nodeType":"YulTypedName","src":"39582:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"39645:6:65","nodeType":"YulIdentifier","src":"39645:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"39672:9:65","nodeType":"YulIdentifier","src":"39672:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"39687:6:65","nodeType":"YulIdentifier","src":"39687:6:65"},{"kind":"number","nativeSrc":"39695:4:65","nodeType":"YulLiteral","src":"39695:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"39683:3:65","nodeType":"YulIdentifier","src":"39683:3:65"},"nativeSrc":"39683:17:65","nodeType":"YulFunctionCall","src":"39683:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"39653:18:65","nodeType":"YulIdentifier","src":"39653:18:65"},"nativeSrc":"39653:48:65","nodeType":"YulFunctionCall","src":"39653:48:65"}],"functionName":{"name":"sstore","nativeSrc":"39638:6:65","nodeType":"YulIdentifier","src":"39638:6:65"},"nativeSrc":"39638:64:65","nodeType":"YulFunctionCall","src":"39638:64:65"},"nativeSrc":"39638:64:65","nodeType":"YulExpressionStatement","src":"39638:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"39543:7:65","nodeType":"YulIdentifier","src":"39543:7:65"},{"name":"newLen","nativeSrc":"39552:6:65","nodeType":"YulIdentifier","src":"39552:6:65"}],"functionName":{"name":"lt","nativeSrc":"39540:2:65","nodeType":"YulIdentifier","src":"39540:2:65"},"nativeSrc":"39540:19:65","nodeType":"YulFunctionCall","src":"39540:19:65"},"nativeSrc":"39537:179:65","nodeType":"YulIf","src":"39537:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"39736:4:65","nodeType":"YulIdentifier","src":"39736:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"39750:6:65","nodeType":"YulIdentifier","src":"39750:6:65"},{"kind":"number","nativeSrc":"39758:1:65","nodeType":"YulLiteral","src":"39758:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"39746:3:65","nodeType":"YulIdentifier","src":"39746:3:65"},"nativeSrc":"39746:14:65","nodeType":"YulFunctionCall","src":"39746:14:65"},{"kind":"number","nativeSrc":"39762:1:65","nodeType":"YulLiteral","src":"39762:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39742:3:65","nodeType":"YulIdentifier","src":"39742:3:65"},"nativeSrc":"39742:22:65","nodeType":"YulFunctionCall","src":"39742:22:65"}],"functionName":{"name":"sstore","nativeSrc":"39729:6:65","nodeType":"YulIdentifier","src":"39729:6:65"},"nativeSrc":"39729:36:65","nodeType":"YulFunctionCall","src":"39729:36:65"},"nativeSrc":"39729:36:65","nodeType":"YulExpressionStatement","src":"39729:36:65"}]},"nativeSrc":"39105:670:65","nodeType":"YulCase","src":"39105:670:65","value":{"kind":"number","nativeSrc":"39110:1:65","nodeType":"YulLiteral","src":"39110:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"39792:222:65","nodeType":"YulBlock","src":"39792:222:65","statements":[{"nativeSrc":"39806:14:65","nodeType":"YulVariableDeclaration","src":"39806:14:65","value":{"kind":"number","nativeSrc":"39819:1:65","nodeType":"YulLiteral","src":"39819:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"39810:5:65","nodeType":"YulTypedName","src":"39810:5:65","type":""}]},{"body":{"nativeSrc":"39843:67:65","nodeType":"YulBlock","src":"39843:67:65","statements":[{"nativeSrc":"39861:35:65","nodeType":"YulAssignment","src":"39861:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"39880:3:65","nodeType":"YulIdentifier","src":"39880:3:65"},{"name":"srcOffset","nativeSrc":"39885:9:65","nodeType":"YulIdentifier","src":"39885:9:65"}],"functionName":{"name":"add","nativeSrc":"39876:3:65","nodeType":"YulIdentifier","src":"39876:3:65"},"nativeSrc":"39876:19:65","nodeType":"YulFunctionCall","src":"39876:19:65"}],"functionName":{"name":"sload","nativeSrc":"39870:5:65","nodeType":"YulIdentifier","src":"39870:5:65"},"nativeSrc":"39870:26:65","nodeType":"YulFunctionCall","src":"39870:26:65"},"variableNames":[{"name":"value","nativeSrc":"39861:5:65","nodeType":"YulIdentifier","src":"39861:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"39836:6:65","nodeType":"YulIdentifier","src":"39836:6:65"},"nativeSrc":"39833:77:65","nodeType":"YulIf","src":"39833:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"39930:4:65","nodeType":"YulIdentifier","src":"39930:4:65"},{"arguments":[{"name":"value","nativeSrc":"39989:5:65","nodeType":"YulIdentifier","src":"39989:5:65"},{"name":"newLen","nativeSrc":"39996:6:65","nodeType":"YulIdentifier","src":"39996:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"39936:52:65","nodeType":"YulIdentifier","src":"39936:52:65"},"nativeSrc":"39936:67:65","nodeType":"YulFunctionCall","src":"39936:67:65"}],"functionName":{"name":"sstore","nativeSrc":"39923:6:65","nodeType":"YulIdentifier","src":"39923:6:65"},"nativeSrc":"39923:81:65","nodeType":"YulFunctionCall","src":"39923:81:65"},"nativeSrc":"39923:81:65","nodeType":"YulExpressionStatement","src":"39923:81:65"}]},"nativeSrc":"39784:230:65","nodeType":"YulCase","src":"39784:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"39085:6:65","nodeType":"YulIdentifier","src":"39085:6:65"},{"kind":"number","nativeSrc":"39093:2:65","nodeType":"YulLiteral","src":"39093:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"39082:2:65","nodeType":"YulIdentifier","src":"39082:2:65"},"nativeSrc":"39082:14:65","nodeType":"YulFunctionCall","src":"39082:14:65"},"nativeSrc":"39075:939:65","nodeType":"YulSwitch","src":"39075:939:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage","nativeSrc":"38575:1445:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"38651:4:65","nodeType":"YulTypedName","src":"38651:4:65","type":""},{"name":"src","nativeSrc":"38657:3:65","nodeType":"YulTypedName","src":"38657:3:65","type":""}],"src":"38575:1445:65"},{"body":{"nativeSrc":"40334:760:65","nodeType":"YulBlock","src":"40334:760:65","statements":[{"nativeSrc":"40344:27:65","nodeType":"YulAssignment","src":"40344:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"40356:9:65","nodeType":"YulIdentifier","src":"40356:9:65"},{"kind":"number","nativeSrc":"40367:3:65","nodeType":"YulLiteral","src":"40367:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"40352:3:65","nodeType":"YulIdentifier","src":"40352:3:65"},"nativeSrc":"40352:19:65","nodeType":"YulFunctionCall","src":"40352:19:65"},"variableNames":[{"name":"tail","nativeSrc":"40344:4:65","nodeType":"YulIdentifier","src":"40344:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"40423:6:65","nodeType":"YulIdentifier","src":"40423:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"40436:9:65","nodeType":"YulIdentifier","src":"40436:9:65"},{"kind":"number","nativeSrc":"40447:1:65","nodeType":"YulLiteral","src":"40447:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"40432:3:65","nodeType":"YulIdentifier","src":"40432:3:65"},"nativeSrc":"40432:17:65","nodeType":"YulFunctionCall","src":"40432:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"40381:41:65","nodeType":"YulIdentifier","src":"40381:41:65"},"nativeSrc":"40381:69:65","nodeType":"YulFunctionCall","src":"40381:69:65"},"nativeSrc":"40381:69:65","nodeType":"YulExpressionStatement","src":"40381:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40471:9:65","nodeType":"YulIdentifier","src":"40471:9:65"},{"kind":"number","nativeSrc":"40482:2:65","nodeType":"YulLiteral","src":"40482:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40467:3:65","nodeType":"YulIdentifier","src":"40467:3:65"},"nativeSrc":"40467:18:65","nodeType":"YulFunctionCall","src":"40467:18:65"},{"arguments":[{"name":"tail","nativeSrc":"40491:4:65","nodeType":"YulIdentifier","src":"40491:4:65"},{"name":"headStart","nativeSrc":"40497:9:65","nodeType":"YulIdentifier","src":"40497:9:65"}],"functionName":{"name":"sub","nativeSrc":"40487:3:65","nodeType":"YulIdentifier","src":"40487:3:65"},"nativeSrc":"40487:20:65","nodeType":"YulFunctionCall","src":"40487:20:65"}],"functionName":{"name":"mstore","nativeSrc":"40460:6:65","nodeType":"YulIdentifier","src":"40460:6:65"},"nativeSrc":"40460:48:65","nodeType":"YulFunctionCall","src":"40460:48:65"},"nativeSrc":"40460:48:65","nodeType":"YulExpressionStatement","src":"40460:48:65"},{"nativeSrc":"40517:94:65","nodeType":"YulAssignment","src":"40517:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"40589:6:65","nodeType":"YulIdentifier","src":"40589:6:65"},{"name":"value2","nativeSrc":"40597:6:65","nodeType":"YulIdentifier","src":"40597:6:65"},{"name":"tail","nativeSrc":"40606:4:65","nodeType":"YulIdentifier","src":"40606:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"40525:63:65","nodeType":"YulIdentifier","src":"40525:63:65"},"nativeSrc":"40525:86:65","nodeType":"YulFunctionCall","src":"40525:86:65"},"variableNames":[{"name":"tail","nativeSrc":"40517:4:65","nodeType":"YulIdentifier","src":"40517:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"40665:6:65","nodeType":"YulIdentifier","src":"40665:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"40678:9:65","nodeType":"YulIdentifier","src":"40678:9:65"},{"kind":"number","nativeSrc":"40689:2:65","nodeType":"YulLiteral","src":"40689:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40674:3:65","nodeType":"YulIdentifier","src":"40674:3:65"},"nativeSrc":"40674:18:65","nodeType":"YulFunctionCall","src":"40674:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"40621:43:65","nodeType":"YulIdentifier","src":"40621:43:65"},"nativeSrc":"40621:72:65","nodeType":"YulFunctionCall","src":"40621:72:65"},"nativeSrc":"40621:72:65","nodeType":"YulExpressionStatement","src":"40621:72:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"40745:6:65","nodeType":"YulIdentifier","src":"40745:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"40758:9:65","nodeType":"YulIdentifier","src":"40758:9:65"},{"kind":"number","nativeSrc":"40769:2:65","nodeType":"YulLiteral","src":"40769:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"40754:3:65","nodeType":"YulIdentifier","src":"40754:3:65"},"nativeSrc":"40754:18:65","nodeType":"YulFunctionCall","src":"40754:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"40703:41:65","nodeType":"YulIdentifier","src":"40703:41:65"},"nativeSrc":"40703:70:65","nodeType":"YulFunctionCall","src":"40703:70:65"},"nativeSrc":"40703:70:65","nodeType":"YulExpressionStatement","src":"40703:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40794:9:65","nodeType":"YulIdentifier","src":"40794:9:65"},{"kind":"number","nativeSrc":"40805:3:65","nodeType":"YulLiteral","src":"40805:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"40790:3:65","nodeType":"YulIdentifier","src":"40790:3:65"},"nativeSrc":"40790:19:65","nodeType":"YulFunctionCall","src":"40790:19:65"},{"arguments":[{"name":"tail","nativeSrc":"40815:4:65","nodeType":"YulIdentifier","src":"40815:4:65"},{"name":"headStart","nativeSrc":"40821:9:65","nodeType":"YulIdentifier","src":"40821:9:65"}],"functionName":{"name":"sub","nativeSrc":"40811:3:65","nodeType":"YulIdentifier","src":"40811:3:65"},"nativeSrc":"40811:20:65","nodeType":"YulFunctionCall","src":"40811:20:65"}],"functionName":{"name":"mstore","nativeSrc":"40783:6:65","nodeType":"YulIdentifier","src":"40783:6:65"},"nativeSrc":"40783:49:65","nodeType":"YulFunctionCall","src":"40783:49:65"},"nativeSrc":"40783:49:65","nodeType":"YulExpressionStatement","src":"40783:49:65"},{"nativeSrc":"40841:94:65","nodeType":"YulAssignment","src":"40841:94:65","value":{"arguments":[{"name":"value5","nativeSrc":"40913:6:65","nodeType":"YulIdentifier","src":"40913:6:65"},{"name":"value6","nativeSrc":"40921:6:65","nodeType":"YulIdentifier","src":"40921:6:65"},{"name":"tail","nativeSrc":"40930:4:65","nodeType":"YulIdentifier","src":"40930:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"40849:63:65","nodeType":"YulIdentifier","src":"40849:63:65"},"nativeSrc":"40849:86:65","nodeType":"YulFunctionCall","src":"40849:86:65"},"variableNames":[{"name":"tail","nativeSrc":"40841:4:65","nodeType":"YulIdentifier","src":"40841:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40956:9:65","nodeType":"YulIdentifier","src":"40956:9:65"},{"kind":"number","nativeSrc":"40967:3:65","nodeType":"YulLiteral","src":"40967:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"40952:3:65","nodeType":"YulIdentifier","src":"40952:3:65"},"nativeSrc":"40952:19:65","nodeType":"YulFunctionCall","src":"40952:19:65"},{"arguments":[{"name":"tail","nativeSrc":"40977:4:65","nodeType":"YulIdentifier","src":"40977:4:65"},{"name":"headStart","nativeSrc":"40983:9:65","nodeType":"YulIdentifier","src":"40983:9:65"}],"functionName":{"name":"sub","nativeSrc":"40973:3:65","nodeType":"YulIdentifier","src":"40973:3:65"},"nativeSrc":"40973:20:65","nodeType":"YulFunctionCall","src":"40973:20:65"}],"functionName":{"name":"mstore","nativeSrc":"40945:6:65","nodeType":"YulIdentifier","src":"40945:6:65"},"nativeSrc":"40945:49:65","nodeType":"YulFunctionCall","src":"40945:49:65"},"nativeSrc":"40945:49:65","nodeType":"YulExpressionStatement","src":"40945:49:65"},{"nativeSrc":"41003:84:65","nodeType":"YulAssignment","src":"41003:84:65","value":{"arguments":[{"name":"value7","nativeSrc":"41073:6:65","nodeType":"YulIdentifier","src":"41073:6:65"},{"name":"tail","nativeSrc":"41082:4:65","nodeType":"YulIdentifier","src":"41082:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"41011:61:65","nodeType":"YulIdentifier","src":"41011:61:65"},"nativeSrc":"41011:76:65","nodeType":"YulFunctionCall","src":"41011:76:65"},"variableNames":[{"name":"tail","nativeSrc":"41003:4:65","nodeType":"YulIdentifier","src":"41003:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"40026:1068:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40250:9:65","nodeType":"YulTypedName","src":"40250:9:65","type":""},{"name":"value7","nativeSrc":"40262:6:65","nodeType":"YulTypedName","src":"40262:6:65","type":""},{"name":"value6","nativeSrc":"40270:6:65","nodeType":"YulTypedName","src":"40270:6:65","type":""},{"name":"value5","nativeSrc":"40278:6:65","nodeType":"YulTypedName","src":"40278:6:65","type":""},{"name":"value4","nativeSrc":"40286:6:65","nodeType":"YulTypedName","src":"40286:6:65","type":""},{"name":"value3","nativeSrc":"40294:6:65","nodeType":"YulTypedName","src":"40294:6:65","type":""},{"name":"value2","nativeSrc":"40302:6:65","nodeType":"YulTypedName","src":"40302:6:65","type":""},{"name":"value1","nativeSrc":"40310:6:65","nodeType":"YulTypedName","src":"40310:6:65","type":""},{"name":"value0","nativeSrc":"40318:6:65","nodeType":"YulTypedName","src":"40318:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40329:4:65","nodeType":"YulTypedName","src":"40329:4:65","type":""}],"src":"40026:1068:65"},{"body":{"nativeSrc":"41206:114:65","nodeType":"YulBlock","src":"41206:114:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"41228:6:65","nodeType":"YulIdentifier","src":"41228:6:65"},{"kind":"number","nativeSrc":"41236:1:65","nodeType":"YulLiteral","src":"41236:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41224:3:65","nodeType":"YulIdentifier","src":"41224:3:65"},"nativeSrc":"41224:14:65","nodeType":"YulFunctionCall","src":"41224:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e63","kind":"string","nativeSrc":"41240:34:65","nodeType":"YulLiteral","src":"41240:34:65","type":"","value":"LayerZeroMock: no send reentranc"}],"functionName":{"name":"mstore","nativeSrc":"41217:6:65","nodeType":"YulIdentifier","src":"41217:6:65"},"nativeSrc":"41217:58:65","nodeType":"YulFunctionCall","src":"41217:58:65"},"nativeSrc":"41217:58:65","nodeType":"YulExpressionStatement","src":"41217:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"41296:6:65","nodeType":"YulIdentifier","src":"41296:6:65"},{"kind":"number","nativeSrc":"41304:2:65","nodeType":"YulLiteral","src":"41304:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41292:3:65","nodeType":"YulIdentifier","src":"41292:3:65"},"nativeSrc":"41292:15:65","nodeType":"YulFunctionCall","src":"41292:15:65"},{"hexValue":"79","kind":"string","nativeSrc":"41309:3:65","nodeType":"YulLiteral","src":"41309:3:65","type":"","value":"y"}],"functionName":{"name":"mstore","nativeSrc":"41285:6:65","nodeType":"YulIdentifier","src":"41285:6:65"},"nativeSrc":"41285:28:65","nodeType":"YulFunctionCall","src":"41285:28:65"},"nativeSrc":"41285:28:65","nodeType":"YulExpressionStatement","src":"41285:28:65"}]},"name":"store_literal_in_memory_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","nativeSrc":"41100:220:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"41198:6:65","nodeType":"YulTypedName","src":"41198:6:65","type":""}],"src":"41100:220:65"},{"body":{"nativeSrc":"41472:220:65","nodeType":"YulBlock","src":"41472:220:65","statements":[{"nativeSrc":"41482:74:65","nodeType":"YulAssignment","src":"41482:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"41548:3:65","nodeType":"YulIdentifier","src":"41548:3:65"},{"kind":"number","nativeSrc":"41553:2:65","nodeType":"YulLiteral","src":"41553:2:65","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"41489:58:65","nodeType":"YulIdentifier","src":"41489:58:65"},"nativeSrc":"41489:67:65","nodeType":"YulFunctionCall","src":"41489:67:65"},"variableNames":[{"name":"pos","nativeSrc":"41482:3:65","nodeType":"YulIdentifier","src":"41482:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"41654:3:65","nodeType":"YulIdentifier","src":"41654:3:65"}],"functionName":{"name":"store_literal_in_memory_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb","nativeSrc":"41565:88:65","nodeType":"YulIdentifier","src":"41565:88:65"},"nativeSrc":"41565:93:65","nodeType":"YulFunctionCall","src":"41565:93:65"},"nativeSrc":"41565:93:65","nodeType":"YulExpressionStatement","src":"41565:93:65"},{"nativeSrc":"41667:19:65","nodeType":"YulAssignment","src":"41667:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"41678:3:65","nodeType":"YulIdentifier","src":"41678:3:65"},{"kind":"number","nativeSrc":"41683:2:65","nodeType":"YulLiteral","src":"41683:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"41674:3:65","nodeType":"YulIdentifier","src":"41674:3:65"},"nativeSrc":"41674:12:65","nodeType":"YulFunctionCall","src":"41674:12:65"},"variableNames":[{"name":"end","nativeSrc":"41667:3:65","nodeType":"YulIdentifier","src":"41667:3:65"}]}]},"name":"abi_encode_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb_to_t_string_memory_ptr_fromStack","nativeSrc":"41326:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"41460:3:65","nodeType":"YulTypedName","src":"41460:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"41468:3:65","nodeType":"YulTypedName","src":"41468:3:65","type":""}],"src":"41326:366:65"},{"body":{"nativeSrc":"41869:248:65","nodeType":"YulBlock","src":"41869:248:65","statements":[{"nativeSrc":"41879:26:65","nodeType":"YulAssignment","src":"41879:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"41891:9:65","nodeType":"YulIdentifier","src":"41891:9:65"},{"kind":"number","nativeSrc":"41902:2:65","nodeType":"YulLiteral","src":"41902:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41887:3:65","nodeType":"YulIdentifier","src":"41887:3:65"},"nativeSrc":"41887:18:65","nodeType":"YulFunctionCall","src":"41887:18:65"},"variableNames":[{"name":"tail","nativeSrc":"41879:4:65","nodeType":"YulIdentifier","src":"41879:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41926:9:65","nodeType":"YulIdentifier","src":"41926:9:65"},{"kind":"number","nativeSrc":"41937:1:65","nodeType":"YulLiteral","src":"41937:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41922:3:65","nodeType":"YulIdentifier","src":"41922:3:65"},"nativeSrc":"41922:17:65","nodeType":"YulFunctionCall","src":"41922:17:65"},{"arguments":[{"name":"tail","nativeSrc":"41945:4:65","nodeType":"YulIdentifier","src":"41945:4:65"},{"name":"headStart","nativeSrc":"41951:9:65","nodeType":"YulIdentifier","src":"41951:9:65"}],"functionName":{"name":"sub","nativeSrc":"41941:3:65","nodeType":"YulIdentifier","src":"41941:3:65"},"nativeSrc":"41941:20:65","nodeType":"YulFunctionCall","src":"41941:20:65"}],"functionName":{"name":"mstore","nativeSrc":"41915:6:65","nodeType":"YulIdentifier","src":"41915:6:65"},"nativeSrc":"41915:47:65","nodeType":"YulFunctionCall","src":"41915:47:65"},"nativeSrc":"41915:47:65","nodeType":"YulExpressionStatement","src":"41915:47:65"},{"nativeSrc":"41971:139:65","nodeType":"YulAssignment","src":"41971:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"42105:4:65","nodeType":"YulIdentifier","src":"42105:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb_to_t_string_memory_ptr_fromStack","nativeSrc":"41979:124:65","nodeType":"YulIdentifier","src":"41979:124:65"},"nativeSrc":"41979:131:65","nodeType":"YulFunctionCall","src":"41979:131:65"},"variableNames":[{"name":"tail","nativeSrc":"41971:4:65","nodeType":"YulIdentifier","src":"41971:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41698:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41849:9:65","nodeType":"YulTypedName","src":"41849:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41864:4:65","nodeType":"YulTypedName","src":"41864:4:65","type":""}],"src":"41698:419:65"},{"body":{"nativeSrc":"42229:125:65","nodeType":"YulBlock","src":"42229:125:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"42251:6:65","nodeType":"YulIdentifier","src":"42251:6:65"},{"kind":"number","nativeSrc":"42259:1:65","nodeType":"YulLiteral","src":"42259:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"42247:3:65","nodeType":"YulIdentifier","src":"42247:3:65"},"nativeSrc":"42247:14:65","nodeType":"YulFunctionCall","src":"42247:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f746520","kind":"string","nativeSrc":"42263:34:65","nodeType":"YulLiteral","src":"42263:34:65","type":"","value":"LayerZeroMock: incorrect remote "}],"functionName":{"name":"mstore","nativeSrc":"42240:6:65","nodeType":"YulIdentifier","src":"42240:6:65"},"nativeSrc":"42240:58:65","nodeType":"YulFunctionCall","src":"42240:58:65"},"nativeSrc":"42240:58:65","nodeType":"YulExpressionStatement","src":"42240:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"42319:6:65","nodeType":"YulIdentifier","src":"42319:6:65"},{"kind":"number","nativeSrc":"42327:2:65","nodeType":"YulLiteral","src":"42327:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42315:3:65","nodeType":"YulIdentifier","src":"42315:3:65"},"nativeSrc":"42315:15:65","nodeType":"YulFunctionCall","src":"42315:15:65"},{"hexValue":"616464726573732073697a65","kind":"string","nativeSrc":"42332:14:65","nodeType":"YulLiteral","src":"42332:14:65","type":"","value":"address size"}],"functionName":{"name":"mstore","nativeSrc":"42308:6:65","nodeType":"YulIdentifier","src":"42308:6:65"},"nativeSrc":"42308:39:65","nodeType":"YulFunctionCall","src":"42308:39:65"},"nativeSrc":"42308:39:65","nodeType":"YulExpressionStatement","src":"42308:39:65"}]},"name":"store_literal_in_memory_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","nativeSrc":"42123:231:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"42221:6:65","nodeType":"YulTypedName","src":"42221:6:65","type":""}],"src":"42123:231:65"},{"body":{"nativeSrc":"42506:220:65","nodeType":"YulBlock","src":"42506:220:65","statements":[{"nativeSrc":"42516:74:65","nodeType":"YulAssignment","src":"42516:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"42582:3:65","nodeType":"YulIdentifier","src":"42582:3:65"},{"kind":"number","nativeSrc":"42587:2:65","nodeType":"YulLiteral","src":"42587:2:65","type":"","value":"44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"42523:58:65","nodeType":"YulIdentifier","src":"42523:58:65"},"nativeSrc":"42523:67:65","nodeType":"YulFunctionCall","src":"42523:67:65"},"variableNames":[{"name":"pos","nativeSrc":"42516:3:65","nodeType":"YulIdentifier","src":"42516:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"42688:3:65","nodeType":"YulIdentifier","src":"42688:3:65"}],"functionName":{"name":"store_literal_in_memory_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b","nativeSrc":"42599:88:65","nodeType":"YulIdentifier","src":"42599:88:65"},"nativeSrc":"42599:93:65","nodeType":"YulFunctionCall","src":"42599:93:65"},"nativeSrc":"42599:93:65","nodeType":"YulExpressionStatement","src":"42599:93:65"},{"nativeSrc":"42701:19:65","nodeType":"YulAssignment","src":"42701:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"42712:3:65","nodeType":"YulIdentifier","src":"42712:3:65"},{"kind":"number","nativeSrc":"42717:2:65","nodeType":"YulLiteral","src":"42717:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"42708:3:65","nodeType":"YulIdentifier","src":"42708:3:65"},"nativeSrc":"42708:12:65","nodeType":"YulFunctionCall","src":"42708:12:65"},"variableNames":[{"name":"end","nativeSrc":"42701:3:65","nodeType":"YulIdentifier","src":"42701:3:65"}]}]},"name":"abi_encode_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b_to_t_string_memory_ptr_fromStack","nativeSrc":"42360:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"42494:3:65","nodeType":"YulTypedName","src":"42494:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"42502:3:65","nodeType":"YulTypedName","src":"42502:3:65","type":""}],"src":"42360:366:65"},{"body":{"nativeSrc":"42903:248:65","nodeType":"YulBlock","src":"42903:248:65","statements":[{"nativeSrc":"42913:26:65","nodeType":"YulAssignment","src":"42913:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"42925:9:65","nodeType":"YulIdentifier","src":"42925:9:65"},{"kind":"number","nativeSrc":"42936:2:65","nodeType":"YulLiteral","src":"42936:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42921:3:65","nodeType":"YulIdentifier","src":"42921:3:65"},"nativeSrc":"42921:18:65","nodeType":"YulFunctionCall","src":"42921:18:65"},"variableNames":[{"name":"tail","nativeSrc":"42913:4:65","nodeType":"YulIdentifier","src":"42913:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42960:9:65","nodeType":"YulIdentifier","src":"42960:9:65"},{"kind":"number","nativeSrc":"42971:1:65","nodeType":"YulLiteral","src":"42971:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"42956:3:65","nodeType":"YulIdentifier","src":"42956:3:65"},"nativeSrc":"42956:17:65","nodeType":"YulFunctionCall","src":"42956:17:65"},{"arguments":[{"name":"tail","nativeSrc":"42979:4:65","nodeType":"YulIdentifier","src":"42979:4:65"},{"name":"headStart","nativeSrc":"42985:9:65","nodeType":"YulIdentifier","src":"42985:9:65"}],"functionName":{"name":"sub","nativeSrc":"42975:3:65","nodeType":"YulIdentifier","src":"42975:3:65"},"nativeSrc":"42975:20:65","nodeType":"YulFunctionCall","src":"42975:20:65"}],"functionName":{"name":"mstore","nativeSrc":"42949:6:65","nodeType":"YulIdentifier","src":"42949:6:65"},"nativeSrc":"42949:47:65","nodeType":"YulFunctionCall","src":"42949:47:65"},"nativeSrc":"42949:47:65","nodeType":"YulExpressionStatement","src":"42949:47:65"},{"nativeSrc":"43005:139:65","nodeType":"YulAssignment","src":"43005:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"43139:4:65","nodeType":"YulIdentifier","src":"43139:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b_to_t_string_memory_ptr_fromStack","nativeSrc":"43013:124:65","nodeType":"YulIdentifier","src":"43013:124:65"},"nativeSrc":"43013:131:65","nodeType":"YulFunctionCall","src":"43013:131:65"},"variableNames":[{"name":"tail","nativeSrc":"43005:4:65","nodeType":"YulIdentifier","src":"43005:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"42732:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"42883:9:65","nodeType":"YulTypedName","src":"42883:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"42898:4:65","nodeType":"YulTypedName","src":"42898:4:65","type":""}],"src":"42732:419:65"},{"body":{"nativeSrc":"43263:136:65","nodeType":"YulBlock","src":"43263:136:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"43285:6:65","nodeType":"YulIdentifier","src":"43285:6:65"},{"kind":"number","nativeSrc":"43293:1:65","nodeType":"YulLiteral","src":"43293:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43281:3:65","nodeType":"YulIdentifier","src":"43281:3:65"},"nativeSrc":"43281:14:65","nodeType":"YulFunctionCall","src":"43281:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c61796572","kind":"string","nativeSrc":"43297:34:65","nodeType":"YulLiteral","src":"43297:34:65","type":"","value":"LayerZeroMock: destination Layer"}],"functionName":{"name":"mstore","nativeSrc":"43274:6:65","nodeType":"YulIdentifier","src":"43274:6:65"},"nativeSrc":"43274:58:65","nodeType":"YulFunctionCall","src":"43274:58:65"},"nativeSrc":"43274:58:65","nodeType":"YulExpressionStatement","src":"43274:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"43353:6:65","nodeType":"YulIdentifier","src":"43353:6:65"},{"kind":"number","nativeSrc":"43361:2:65","nodeType":"YulLiteral","src":"43361:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43349:3:65","nodeType":"YulIdentifier","src":"43349:3:65"},"nativeSrc":"43349:15:65","nodeType":"YulFunctionCall","src":"43349:15:65"},{"hexValue":"5a65726f20456e64706f696e74206e6f7420666f756e64","kind":"string","nativeSrc":"43366:25:65","nodeType":"YulLiteral","src":"43366:25:65","type":"","value":"Zero Endpoint not found"}],"functionName":{"name":"mstore","nativeSrc":"43342:6:65","nodeType":"YulIdentifier","src":"43342:6:65"},"nativeSrc":"43342:50:65","nodeType":"YulFunctionCall","src":"43342:50:65"},"nativeSrc":"43342:50:65","nodeType":"YulExpressionStatement","src":"43342:50:65"}]},"name":"store_literal_in_memory_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","nativeSrc":"43157:242:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"43255:6:65","nodeType":"YulTypedName","src":"43255:6:65","type":""}],"src":"43157:242:65"},{"body":{"nativeSrc":"43551:220:65","nodeType":"YulBlock","src":"43551:220:65","statements":[{"nativeSrc":"43561:74:65","nodeType":"YulAssignment","src":"43561:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"43627:3:65","nodeType":"YulIdentifier","src":"43627:3:65"},{"kind":"number","nativeSrc":"43632:2:65","nodeType":"YulLiteral","src":"43632:2:65","type":"","value":"55"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"43568:58:65","nodeType":"YulIdentifier","src":"43568:58:65"},"nativeSrc":"43568:67:65","nodeType":"YulFunctionCall","src":"43568:67:65"},"variableNames":[{"name":"pos","nativeSrc":"43561:3:65","nodeType":"YulIdentifier","src":"43561:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"43733:3:65","nodeType":"YulIdentifier","src":"43733:3:65"}],"functionName":{"name":"store_literal_in_memory_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df","nativeSrc":"43644:88:65","nodeType":"YulIdentifier","src":"43644:88:65"},"nativeSrc":"43644:93:65","nodeType":"YulFunctionCall","src":"43644:93:65"},"nativeSrc":"43644:93:65","nodeType":"YulExpressionStatement","src":"43644:93:65"},{"nativeSrc":"43746:19:65","nodeType":"YulAssignment","src":"43746:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"43757:3:65","nodeType":"YulIdentifier","src":"43757:3:65"},{"kind":"number","nativeSrc":"43762:2:65","nodeType":"YulLiteral","src":"43762:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43753:3:65","nodeType":"YulIdentifier","src":"43753:3:65"},"nativeSrc":"43753:12:65","nodeType":"YulFunctionCall","src":"43753:12:65"},"variableNames":[{"name":"end","nativeSrc":"43746:3:65","nodeType":"YulIdentifier","src":"43746:3:65"}]}]},"name":"abi_encode_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df_to_t_string_memory_ptr_fromStack","nativeSrc":"43405:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"43539:3:65","nodeType":"YulTypedName","src":"43539:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"43547:3:65","nodeType":"YulTypedName","src":"43547:3:65","type":""}],"src":"43405:366:65"},{"body":{"nativeSrc":"43948:248:65","nodeType":"YulBlock","src":"43948:248:65","statements":[{"nativeSrc":"43958:26:65","nodeType":"YulAssignment","src":"43958:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"43970:9:65","nodeType":"YulIdentifier","src":"43970:9:65"},{"kind":"number","nativeSrc":"43981:2:65","nodeType":"YulLiteral","src":"43981:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43966:3:65","nodeType":"YulIdentifier","src":"43966:3:65"},"nativeSrc":"43966:18:65","nodeType":"YulFunctionCall","src":"43966:18:65"},"variableNames":[{"name":"tail","nativeSrc":"43958:4:65","nodeType":"YulIdentifier","src":"43958:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44005:9:65","nodeType":"YulIdentifier","src":"44005:9:65"},{"kind":"number","nativeSrc":"44016:1:65","nodeType":"YulLiteral","src":"44016:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"44001:3:65","nodeType":"YulIdentifier","src":"44001:3:65"},"nativeSrc":"44001:17:65","nodeType":"YulFunctionCall","src":"44001:17:65"},{"arguments":[{"name":"tail","nativeSrc":"44024:4:65","nodeType":"YulIdentifier","src":"44024:4:65"},{"name":"headStart","nativeSrc":"44030:9:65","nodeType":"YulIdentifier","src":"44030:9:65"}],"functionName":{"name":"sub","nativeSrc":"44020:3:65","nodeType":"YulIdentifier","src":"44020:3:65"},"nativeSrc":"44020:20:65","nodeType":"YulFunctionCall","src":"44020:20:65"}],"functionName":{"name":"mstore","nativeSrc":"43994:6:65","nodeType":"YulIdentifier","src":"43994:6:65"},"nativeSrc":"43994:47:65","nodeType":"YulFunctionCall","src":"43994:47:65"},"nativeSrc":"43994:47:65","nodeType":"YulExpressionStatement","src":"43994:47:65"},{"nativeSrc":"44050:139:65","nodeType":"YulAssignment","src":"44050:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"44184:4:65","nodeType":"YulIdentifier","src":"44184:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df_to_t_string_memory_ptr_fromStack","nativeSrc":"44058:124:65","nodeType":"YulIdentifier","src":"44058:124:65"},"nativeSrc":"44058:131:65","nodeType":"YulFunctionCall","src":"44058:131:65"},"variableNames":[{"name":"tail","nativeSrc":"44050:4:65","nodeType":"YulIdentifier","src":"44050:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"43777:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43928:9:65","nodeType":"YulTypedName","src":"43928:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43943:4:65","nodeType":"YulTypedName","src":"43943:4:65","type":""}],"src":"43777:419:65"},{"body":{"nativeSrc":"44308:122:65","nodeType":"YulBlock","src":"44308:122:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"44330:6:65","nodeType":"YulIdentifier","src":"44330:6:65"},{"kind":"number","nativeSrc":"44338:1:65","nodeType":"YulLiteral","src":"44338:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"44326:3:65","nodeType":"YulIdentifier","src":"44326:3:65"},"nativeSrc":"44326:14:65","nodeType":"YulFunctionCall","src":"44326:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e6174697665","kind":"string","nativeSrc":"44342:34:65","nodeType":"YulLiteral","src":"44342:34:65","type":"","value":"LayerZeroMock: not enough native"}],"functionName":{"name":"mstore","nativeSrc":"44319:6:65","nodeType":"YulIdentifier","src":"44319:6:65"},"nativeSrc":"44319:58:65","nodeType":"YulFunctionCall","src":"44319:58:65"},"nativeSrc":"44319:58:65","nodeType":"YulExpressionStatement","src":"44319:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"44398:6:65","nodeType":"YulIdentifier","src":"44398:6:65"},{"kind":"number","nativeSrc":"44406:2:65","nodeType":"YulLiteral","src":"44406:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44394:3:65","nodeType":"YulIdentifier","src":"44394:3:65"},"nativeSrc":"44394:15:65","nodeType":"YulFunctionCall","src":"44394:15:65"},{"hexValue":"20666f722066656573","kind":"string","nativeSrc":"44411:11:65","nodeType":"YulLiteral","src":"44411:11:65","type":"","value":" for fees"}],"functionName":{"name":"mstore","nativeSrc":"44387:6:65","nodeType":"YulIdentifier","src":"44387:6:65"},"nativeSrc":"44387:36:65","nodeType":"YulFunctionCall","src":"44387:36:65"},"nativeSrc":"44387:36:65","nodeType":"YulExpressionStatement","src":"44387:36:65"}]},"name":"store_literal_in_memory_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","nativeSrc":"44202:228:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"44300:6:65","nodeType":"YulTypedName","src":"44300:6:65","type":""}],"src":"44202:228:65"},{"body":{"nativeSrc":"44582:220:65","nodeType":"YulBlock","src":"44582:220:65","statements":[{"nativeSrc":"44592:74:65","nodeType":"YulAssignment","src":"44592:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"44658:3:65","nodeType":"YulIdentifier","src":"44658:3:65"},{"kind":"number","nativeSrc":"44663:2:65","nodeType":"YulLiteral","src":"44663:2:65","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"44599:58:65","nodeType":"YulIdentifier","src":"44599:58:65"},"nativeSrc":"44599:67:65","nodeType":"YulFunctionCall","src":"44599:67:65"},"variableNames":[{"name":"pos","nativeSrc":"44592:3:65","nodeType":"YulIdentifier","src":"44592:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"44764:3:65","nodeType":"YulIdentifier","src":"44764:3:65"}],"functionName":{"name":"store_literal_in_memory_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a","nativeSrc":"44675:88:65","nodeType":"YulIdentifier","src":"44675:88:65"},"nativeSrc":"44675:93:65","nodeType":"YulFunctionCall","src":"44675:93:65"},"nativeSrc":"44675:93:65","nodeType":"YulExpressionStatement","src":"44675:93:65"},{"nativeSrc":"44777:19:65","nodeType":"YulAssignment","src":"44777:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"44788:3:65","nodeType":"YulIdentifier","src":"44788:3:65"},{"kind":"number","nativeSrc":"44793:2:65","nodeType":"YulLiteral","src":"44793:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"44784:3:65","nodeType":"YulIdentifier","src":"44784:3:65"},"nativeSrc":"44784:12:65","nodeType":"YulFunctionCall","src":"44784:12:65"},"variableNames":[{"name":"end","nativeSrc":"44777:3:65","nodeType":"YulIdentifier","src":"44777:3:65"}]}]},"name":"abi_encode_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a_to_t_string_memory_ptr_fromStack","nativeSrc":"44436:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"44570:3:65","nodeType":"YulTypedName","src":"44570:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"44578:3:65","nodeType":"YulTypedName","src":"44578:3:65","type":""}],"src":"44436:366:65"},{"body":{"nativeSrc":"44979:248:65","nodeType":"YulBlock","src":"44979:248:65","statements":[{"nativeSrc":"44989:26:65","nodeType":"YulAssignment","src":"44989:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"45001:9:65","nodeType":"YulIdentifier","src":"45001:9:65"},{"kind":"number","nativeSrc":"45012:2:65","nodeType":"YulLiteral","src":"45012:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44997:3:65","nodeType":"YulIdentifier","src":"44997:3:65"},"nativeSrc":"44997:18:65","nodeType":"YulFunctionCall","src":"44997:18:65"},"variableNames":[{"name":"tail","nativeSrc":"44989:4:65","nodeType":"YulIdentifier","src":"44989:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"45036:9:65","nodeType":"YulIdentifier","src":"45036:9:65"},{"kind":"number","nativeSrc":"45047:1:65","nodeType":"YulLiteral","src":"45047:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"45032:3:65","nodeType":"YulIdentifier","src":"45032:3:65"},"nativeSrc":"45032:17:65","nodeType":"YulFunctionCall","src":"45032:17:65"},{"arguments":[{"name":"tail","nativeSrc":"45055:4:65","nodeType":"YulIdentifier","src":"45055:4:65"},{"name":"headStart","nativeSrc":"45061:9:65","nodeType":"YulIdentifier","src":"45061:9:65"}],"functionName":{"name":"sub","nativeSrc":"45051:3:65","nodeType":"YulIdentifier","src":"45051:3:65"},"nativeSrc":"45051:20:65","nodeType":"YulFunctionCall","src":"45051:20:65"}],"functionName":{"name":"mstore","nativeSrc":"45025:6:65","nodeType":"YulIdentifier","src":"45025:6:65"},"nativeSrc":"45025:47:65","nodeType":"YulFunctionCall","src":"45025:47:65"},"nativeSrc":"45025:47:65","nodeType":"YulExpressionStatement","src":"45025:47:65"},{"nativeSrc":"45081:139:65","nodeType":"YulAssignment","src":"45081:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"45215:4:65","nodeType":"YulIdentifier","src":"45215:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a_to_t_string_memory_ptr_fromStack","nativeSrc":"45089:124:65","nodeType":"YulIdentifier","src":"45089:124:65"},"nativeSrc":"45089:131:65","nodeType":"YulFunctionCall","src":"45089:131:65"},"variableNames":[{"name":"tail","nativeSrc":"45081:4:65","nodeType":"YulIdentifier","src":"45081:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"44808:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44959:9:65","nodeType":"YulTypedName","src":"44959:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"44974:4:65","nodeType":"YulTypedName","src":"44974:4:65","type":""}],"src":"44808:419:65"},{"body":{"nativeSrc":"45339:8:65","nodeType":"YulBlock","src":"45339:8:65","statements":[]},"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"45233:114:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"45331:6:65","nodeType":"YulTypedName","src":"45331:6:65","type":""}],"src":"45233:114:65"},{"body":{"nativeSrc":"45516:235:65","nodeType":"YulBlock","src":"45516:235:65","statements":[{"nativeSrc":"45526:90:65","nodeType":"YulAssignment","src":"45526:90:65","value":{"arguments":[{"name":"pos","nativeSrc":"45609:3:65","nodeType":"YulIdentifier","src":"45609:3:65"},{"kind":"number","nativeSrc":"45614:1:65","nodeType":"YulLiteral","src":"45614:1:65","type":"","value":"0"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"45533:75:65","nodeType":"YulIdentifier","src":"45533:75:65"},"nativeSrc":"45533:83:65","nodeType":"YulFunctionCall","src":"45533:83:65"},"variableNames":[{"name":"pos","nativeSrc":"45526:3:65","nodeType":"YulIdentifier","src":"45526:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"45714:3:65","nodeType":"YulIdentifier","src":"45714:3:65"}],"functionName":{"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"45625:88:65","nodeType":"YulIdentifier","src":"45625:88:65"},"nativeSrc":"45625:93:65","nodeType":"YulFunctionCall","src":"45625:93:65"},"nativeSrc":"45625:93:65","nodeType":"YulExpressionStatement","src":"45625:93:65"},{"nativeSrc":"45727:18:65","nodeType":"YulAssignment","src":"45727:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"45738:3:65","nodeType":"YulIdentifier","src":"45738:3:65"},{"kind":"number","nativeSrc":"45743:1:65","nodeType":"YulLiteral","src":"45743:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"45734:3:65","nodeType":"YulIdentifier","src":"45734:3:65"},"nativeSrc":"45734:11:65","nodeType":"YulFunctionCall","src":"45734:11:65"},"variableNames":[{"name":"end","nativeSrc":"45727:3:65","nodeType":"YulIdentifier","src":"45727:3:65"}]}]},"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"45353:398:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"45504:3:65","nodeType":"YulTypedName","src":"45504:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"45512:3:65","nodeType":"YulTypedName","src":"45512:3:65","type":""}],"src":"45353:398:65"},{"body":{"nativeSrc":"45945:191:65","nodeType":"YulBlock","src":"45945:191:65","statements":[{"nativeSrc":"45956:154:65","nodeType":"YulAssignment","src":"45956:154:65","value":{"arguments":[{"name":"pos","nativeSrc":"46106:3:65","nodeType":"YulIdentifier","src":"46106:3:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"45963:141:65","nodeType":"YulIdentifier","src":"45963:141:65"},"nativeSrc":"45963:147:65","nodeType":"YulFunctionCall","src":"45963:147:65"},"variableNames":[{"name":"pos","nativeSrc":"45956:3:65","nodeType":"YulIdentifier","src":"45956:3:65"}]},{"nativeSrc":"46120:10:65","nodeType":"YulAssignment","src":"46120:10:65","value":{"name":"pos","nativeSrc":"46127:3:65","nodeType":"YulIdentifier","src":"46127:3:65"},"variableNames":[{"name":"end","nativeSrc":"46120:3:65","nodeType":"YulIdentifier","src":"46120:3:65"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"45757:379:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"45932:3:65","nodeType":"YulTypedName","src":"45932:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"45941:3:65","nodeType":"YulTypedName","src":"45941:3:65","type":""}],"src":"45757:379:65"},{"body":{"nativeSrc":"46248:75:65","nodeType":"YulBlock","src":"46248:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"46270:6:65","nodeType":"YulIdentifier","src":"46270:6:65"},{"kind":"number","nativeSrc":"46278:1:65","nodeType":"YulLiteral","src":"46278:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"46266:3:65","nodeType":"YulIdentifier","src":"46266:3:65"},"nativeSrc":"46266:14:65","nodeType":"YulFunctionCall","src":"46266:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e64","kind":"string","nativeSrc":"46282:33:65","nodeType":"YulLiteral","src":"46282:33:65","type":"","value":"LayerZeroMock: failed to refund"}],"functionName":{"name":"mstore","nativeSrc":"46259:6:65","nodeType":"YulIdentifier","src":"46259:6:65"},"nativeSrc":"46259:57:65","nodeType":"YulFunctionCall","src":"46259:57:65"},"nativeSrc":"46259:57:65","nodeType":"YulExpressionStatement","src":"46259:57:65"}]},"name":"store_literal_in_memory_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","nativeSrc":"46142:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"46240:6:65","nodeType":"YulTypedName","src":"46240:6:65","type":""}],"src":"46142:181:65"},{"body":{"nativeSrc":"46475:220:65","nodeType":"YulBlock","src":"46475:220:65","statements":[{"nativeSrc":"46485:74:65","nodeType":"YulAssignment","src":"46485:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"46551:3:65","nodeType":"YulIdentifier","src":"46551:3:65"},{"kind":"number","nativeSrc":"46556:2:65","nodeType":"YulLiteral","src":"46556:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"46492:58:65","nodeType":"YulIdentifier","src":"46492:58:65"},"nativeSrc":"46492:67:65","nodeType":"YulFunctionCall","src":"46492:67:65"},"variableNames":[{"name":"pos","nativeSrc":"46485:3:65","nodeType":"YulIdentifier","src":"46485:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"46657:3:65","nodeType":"YulIdentifier","src":"46657:3:65"}],"functionName":{"name":"store_literal_in_memory_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790","nativeSrc":"46568:88:65","nodeType":"YulIdentifier","src":"46568:88:65"},"nativeSrc":"46568:93:65","nodeType":"YulFunctionCall","src":"46568:93:65"},"nativeSrc":"46568:93:65","nodeType":"YulExpressionStatement","src":"46568:93:65"},{"nativeSrc":"46670:19:65","nodeType":"YulAssignment","src":"46670:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"46681:3:65","nodeType":"YulIdentifier","src":"46681:3:65"},{"kind":"number","nativeSrc":"46686:2:65","nodeType":"YulLiteral","src":"46686:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46677:3:65","nodeType":"YulIdentifier","src":"46677:3:65"},"nativeSrc":"46677:12:65","nodeType":"YulFunctionCall","src":"46677:12:65"},"variableNames":[{"name":"end","nativeSrc":"46670:3:65","nodeType":"YulIdentifier","src":"46670:3:65"}]}]},"name":"abi_encode_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790_to_t_string_memory_ptr_fromStack","nativeSrc":"46329:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"46463:3:65","nodeType":"YulTypedName","src":"46463:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"46471:3:65","nodeType":"YulTypedName","src":"46471:3:65","type":""}],"src":"46329:366:65"},{"body":{"nativeSrc":"46872:248:65","nodeType":"YulBlock","src":"46872:248:65","statements":[{"nativeSrc":"46882:26:65","nodeType":"YulAssignment","src":"46882:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"46894:9:65","nodeType":"YulIdentifier","src":"46894:9:65"},{"kind":"number","nativeSrc":"46905:2:65","nodeType":"YulLiteral","src":"46905:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46890:3:65","nodeType":"YulIdentifier","src":"46890:3:65"},"nativeSrc":"46890:18:65","nodeType":"YulFunctionCall","src":"46890:18:65"},"variableNames":[{"name":"tail","nativeSrc":"46882:4:65","nodeType":"YulIdentifier","src":"46882:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46929:9:65","nodeType":"YulIdentifier","src":"46929:9:65"},{"kind":"number","nativeSrc":"46940:1:65","nodeType":"YulLiteral","src":"46940:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"46925:3:65","nodeType":"YulIdentifier","src":"46925:3:65"},"nativeSrc":"46925:17:65","nodeType":"YulFunctionCall","src":"46925:17:65"},{"arguments":[{"name":"tail","nativeSrc":"46948:4:65","nodeType":"YulIdentifier","src":"46948:4:65"},{"name":"headStart","nativeSrc":"46954:9:65","nodeType":"YulIdentifier","src":"46954:9:65"}],"functionName":{"name":"sub","nativeSrc":"46944:3:65","nodeType":"YulIdentifier","src":"46944:3:65"},"nativeSrc":"46944:20:65","nodeType":"YulFunctionCall","src":"46944:20:65"}],"functionName":{"name":"mstore","nativeSrc":"46918:6:65","nodeType":"YulIdentifier","src":"46918:6:65"},"nativeSrc":"46918:47:65","nodeType":"YulFunctionCall","src":"46918:47:65"},"nativeSrc":"46918:47:65","nodeType":"YulExpressionStatement","src":"46918:47:65"},{"nativeSrc":"46974:139:65","nodeType":"YulAssignment","src":"46974:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"47108:4:65","nodeType":"YulIdentifier","src":"47108:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790_to_t_string_memory_ptr_fromStack","nativeSrc":"46982:124:65","nodeType":"YulIdentifier","src":"46982:124:65"},"nativeSrc":"46982:131:65","nodeType":"YulFunctionCall","src":"46982:131:65"},"variableNames":[{"name":"tail","nativeSrc":"46974:4:65","nodeType":"YulIdentifier","src":"46974:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"46701:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46852:9:65","nodeType":"YulTypedName","src":"46852:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46867:4:65","nodeType":"YulTypedName","src":"46867:4:65","type":""}],"src":"46701:419:65"},{"body":{"nativeSrc":"47168:52:65","nodeType":"YulBlock","src":"47168:52:65","statements":[{"nativeSrc":"47178:35:65","nodeType":"YulAssignment","src":"47178:35:65","value":{"arguments":[{"kind":"number","nativeSrc":"47203:2:65","nodeType":"YulLiteral","src":"47203:2:65","type":"","value":"96"},{"name":"value","nativeSrc":"47207:5:65","nodeType":"YulIdentifier","src":"47207:5:65"}],"functionName":{"name":"shl","nativeSrc":"47199:3:65","nodeType":"YulIdentifier","src":"47199:3:65"},"nativeSrc":"47199:14:65","nodeType":"YulFunctionCall","src":"47199:14:65"},"variableNames":[{"name":"newValue","nativeSrc":"47178:8:65","nodeType":"YulIdentifier","src":"47178:8:65"}]}]},"name":"shift_left_96","nativeSrc":"47126:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47149:5:65","nodeType":"YulTypedName","src":"47149:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"47159:8:65","nodeType":"YulTypedName","src":"47159:8:65","type":""}],"src":"47126:94:65"},{"body":{"nativeSrc":"47273:47:65","nodeType":"YulBlock","src":"47273:47:65","statements":[{"nativeSrc":"47283:31:65","nodeType":"YulAssignment","src":"47283:31:65","value":{"arguments":[{"name":"value","nativeSrc":"47308:5:65","nodeType":"YulIdentifier","src":"47308:5:65"}],"functionName":{"name":"shift_left_96","nativeSrc":"47294:13:65","nodeType":"YulIdentifier","src":"47294:13:65"},"nativeSrc":"47294:20:65","nodeType":"YulFunctionCall","src":"47294:20:65"},"variableNames":[{"name":"aligned","nativeSrc":"47283:7:65","nodeType":"YulIdentifier","src":"47283:7:65"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"47226:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47255:5:65","nodeType":"YulTypedName","src":"47255:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"47265:7:65","nodeType":"YulTypedName","src":"47265:7:65","type":""}],"src":"47226:94:65"},{"body":{"nativeSrc":"47373:53:65","nodeType":"YulBlock","src":"47373:53:65","statements":[{"nativeSrc":"47383:37:65","nodeType":"YulAssignment","src":"47383:37:65","value":{"arguments":[{"name":"value","nativeSrc":"47414:5:65","nodeType":"YulIdentifier","src":"47414:5:65"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"47394:19:65","nodeType":"YulIdentifier","src":"47394:19:65"},"nativeSrc":"47394:26:65","nodeType":"YulFunctionCall","src":"47394:26:65"},"variableNames":[{"name":"aligned","nativeSrc":"47383:7:65","nodeType":"YulIdentifier","src":"47383:7:65"}]}]},"name":"leftAlign_t_address","nativeSrc":"47326:100:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47355:5:65","nodeType":"YulTypedName","src":"47355:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"47365:7:65","nodeType":"YulTypedName","src":"47365:7:65","type":""}],"src":"47326:100:65"},{"body":{"nativeSrc":"47515:74:65","nodeType":"YulBlock","src":"47515:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"47532:3:65","nodeType":"YulIdentifier","src":"47532:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"47575:5:65","nodeType":"YulIdentifier","src":"47575:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"47557:17:65","nodeType":"YulIdentifier","src":"47557:17:65"},"nativeSrc":"47557:24:65","nodeType":"YulFunctionCall","src":"47557:24:65"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"47537:19:65","nodeType":"YulIdentifier","src":"47537:19:65"},"nativeSrc":"47537:45:65","nodeType":"YulFunctionCall","src":"47537:45:65"}],"functionName":{"name":"mstore","nativeSrc":"47525:6:65","nodeType":"YulIdentifier","src":"47525:6:65"},"nativeSrc":"47525:58:65","nodeType":"YulFunctionCall","src":"47525:58:65"},"nativeSrc":"47525:58:65","nodeType":"YulExpressionStatement","src":"47525:58:65"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"47432:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47503:5:65","nodeType":"YulTypedName","src":"47503:5:65","type":""},{"name":"pos","nativeSrc":"47510:3:65","nodeType":"YulTypedName","src":"47510:3:65","type":""}],"src":"47432:157:65"},{"body":{"nativeSrc":"47739:253:65","nodeType":"YulBlock","src":"47739:253:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"47812:6:65","nodeType":"YulIdentifier","src":"47812:6:65"},{"name":"pos","nativeSrc":"47821:3:65","nodeType":"YulIdentifier","src":"47821:3:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"47750:61:65","nodeType":"YulIdentifier","src":"47750:61:65"},"nativeSrc":"47750:75:65","nodeType":"YulFunctionCall","src":"47750:75:65"},"nativeSrc":"47750:75:65","nodeType":"YulExpressionStatement","src":"47750:75:65"},{"nativeSrc":"47834:19:65","nodeType":"YulAssignment","src":"47834:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"47845:3:65","nodeType":"YulIdentifier","src":"47845:3:65"},{"kind":"number","nativeSrc":"47850:2:65","nodeType":"YulLiteral","src":"47850:2:65","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"47841:3:65","nodeType":"YulIdentifier","src":"47841:3:65"},"nativeSrc":"47841:12:65","nodeType":"YulFunctionCall","src":"47841:12:65"},"variableNames":[{"name":"pos","nativeSrc":"47834:3:65","nodeType":"YulIdentifier","src":"47834:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"47925:6:65","nodeType":"YulIdentifier","src":"47925:6:65"},{"name":"pos","nativeSrc":"47934:3:65","nodeType":"YulIdentifier","src":"47934:3:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"47863:61:65","nodeType":"YulIdentifier","src":"47863:61:65"},"nativeSrc":"47863:75:65","nodeType":"YulFunctionCall","src":"47863:75:65"},"nativeSrc":"47863:75:65","nodeType":"YulExpressionStatement","src":"47863:75:65"},{"nativeSrc":"47947:19:65","nodeType":"YulAssignment","src":"47947:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"47958:3:65","nodeType":"YulIdentifier","src":"47958:3:65"},{"kind":"number","nativeSrc":"47963:2:65","nodeType":"YulLiteral","src":"47963:2:65","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"47954:3:65","nodeType":"YulIdentifier","src":"47954:3:65"},"nativeSrc":"47954:12:65","nodeType":"YulFunctionCall","src":"47954:12:65"},"variableNames":[{"name":"pos","nativeSrc":"47947:3:65","nodeType":"YulIdentifier","src":"47947:3:65"}]},{"nativeSrc":"47976:10:65","nodeType":"YulAssignment","src":"47976:10:65","value":{"name":"pos","nativeSrc":"47983:3:65","nodeType":"YulIdentifier","src":"47983:3:65"},"variableNames":[{"name":"end","nativeSrc":"47976:3:65","nodeType":"YulIdentifier","src":"47976:3:65"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"47595:397:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"47710:3:65","nodeType":"YulTypedName","src":"47710:3:65","type":""},{"name":"value1","nativeSrc":"47716:6:65","nodeType":"YulTypedName","src":"47716:6:65","type":""},{"name":"value0","nativeSrc":"47724:6:65","nodeType":"YulTypedName","src":"47724:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"47735:3:65","nodeType":"YulTypedName","src":"47735:3:65","type":""}],"src":"47595:397:65"},{"body":{"nativeSrc":"48268:671:65","nodeType":"YulBlock","src":"48268:671:65","statements":[{"nativeSrc":"48278:27:65","nodeType":"YulAssignment","src":"48278:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"48290:9:65","nodeType":"YulIdentifier","src":"48290:9:65"},{"kind":"number","nativeSrc":"48301:3:65","nodeType":"YulLiteral","src":"48301:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"48286:3:65","nodeType":"YulIdentifier","src":"48286:3:65"},"nativeSrc":"48286:19:65","nodeType":"YulFunctionCall","src":"48286:19:65"},"variableNames":[{"name":"tail","nativeSrc":"48278:4:65","nodeType":"YulIdentifier","src":"48278:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"48357:6:65","nodeType":"YulIdentifier","src":"48357:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"48370:9:65","nodeType":"YulIdentifier","src":"48370:9:65"},{"kind":"number","nativeSrc":"48381:1:65","nodeType":"YulLiteral","src":"48381:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"48366:3:65","nodeType":"YulIdentifier","src":"48366:3:65"},"nativeSrc":"48366:17:65","nodeType":"YulFunctionCall","src":"48366:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"48315:41:65","nodeType":"YulIdentifier","src":"48315:41:65"},"nativeSrc":"48315:69:65","nodeType":"YulFunctionCall","src":"48315:69:65"},"nativeSrc":"48315:69:65","nodeType":"YulExpressionStatement","src":"48315:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"48405:9:65","nodeType":"YulIdentifier","src":"48405:9:65"},{"kind":"number","nativeSrc":"48416:2:65","nodeType":"YulLiteral","src":"48416:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"48401:3:65","nodeType":"YulIdentifier","src":"48401:3:65"},"nativeSrc":"48401:18:65","nodeType":"YulFunctionCall","src":"48401:18:65"},{"arguments":[{"name":"tail","nativeSrc":"48425:4:65","nodeType":"YulIdentifier","src":"48425:4:65"},{"name":"headStart","nativeSrc":"48431:9:65","nodeType":"YulIdentifier","src":"48431:9:65"}],"functionName":{"name":"sub","nativeSrc":"48421:3:65","nodeType":"YulIdentifier","src":"48421:3:65"},"nativeSrc":"48421:20:65","nodeType":"YulFunctionCall","src":"48421:20:65"}],"functionName":{"name":"mstore","nativeSrc":"48394:6:65","nodeType":"YulIdentifier","src":"48394:6:65"},"nativeSrc":"48394:48:65","nodeType":"YulFunctionCall","src":"48394:48:65"},"nativeSrc":"48394:48:65","nodeType":"YulExpressionStatement","src":"48394:48:65"},{"nativeSrc":"48451:84:65","nodeType":"YulAssignment","src":"48451:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"48521:6:65","nodeType":"YulIdentifier","src":"48521:6:65"},{"name":"tail","nativeSrc":"48530:4:65","nodeType":"YulIdentifier","src":"48530:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"48459:61:65","nodeType":"YulIdentifier","src":"48459:61:65"},"nativeSrc":"48459:76:65","nodeType":"YulFunctionCall","src":"48459:76:65"},"variableNames":[{"name":"tail","nativeSrc":"48451:4:65","nodeType":"YulIdentifier","src":"48451:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"48589:6:65","nodeType":"YulIdentifier","src":"48589:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"48602:9:65","nodeType":"YulIdentifier","src":"48602:9:65"},{"kind":"number","nativeSrc":"48613:2:65","nodeType":"YulLiteral","src":"48613:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"48598:3:65","nodeType":"YulIdentifier","src":"48598:3:65"},"nativeSrc":"48598:18:65","nodeType":"YulFunctionCall","src":"48598:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"48545:43:65","nodeType":"YulIdentifier","src":"48545:43:65"},"nativeSrc":"48545:72:65","nodeType":"YulFunctionCall","src":"48545:72:65"},"nativeSrc":"48545:72:65","nodeType":"YulExpressionStatement","src":"48545:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"48669:6:65","nodeType":"YulIdentifier","src":"48669:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"48682:9:65","nodeType":"YulIdentifier","src":"48682:9:65"},{"kind":"number","nativeSrc":"48693:2:65","nodeType":"YulLiteral","src":"48693:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"48678:3:65","nodeType":"YulIdentifier","src":"48678:3:65"},"nativeSrc":"48678:18:65","nodeType":"YulFunctionCall","src":"48678:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"48627:41:65","nodeType":"YulIdentifier","src":"48627:41:65"},"nativeSrc":"48627:70:65","nodeType":"YulFunctionCall","src":"48627:70:65"},"nativeSrc":"48627:70:65","nodeType":"YulExpressionStatement","src":"48627:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"48751:6:65","nodeType":"YulIdentifier","src":"48751:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"48764:9:65","nodeType":"YulIdentifier","src":"48764:9:65"},{"kind":"number","nativeSrc":"48775:3:65","nodeType":"YulLiteral","src":"48775:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"48760:3:65","nodeType":"YulIdentifier","src":"48760:3:65"},"nativeSrc":"48760:19:65","nodeType":"YulFunctionCall","src":"48760:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"48707:43:65","nodeType":"YulIdentifier","src":"48707:43:65"},"nativeSrc":"48707:73:65","nodeType":"YulFunctionCall","src":"48707:73:65"},"nativeSrc":"48707:73:65","nodeType":"YulExpressionStatement","src":"48707:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"48801:9:65","nodeType":"YulIdentifier","src":"48801:9:65"},{"kind":"number","nativeSrc":"48812:3:65","nodeType":"YulLiteral","src":"48812:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"48797:3:65","nodeType":"YulIdentifier","src":"48797:3:65"},"nativeSrc":"48797:19:65","nodeType":"YulFunctionCall","src":"48797:19:65"},{"arguments":[{"name":"tail","nativeSrc":"48822:4:65","nodeType":"YulIdentifier","src":"48822:4:65"},{"name":"headStart","nativeSrc":"48828:9:65","nodeType":"YulIdentifier","src":"48828:9:65"}],"functionName":{"name":"sub","nativeSrc":"48818:3:65","nodeType":"YulIdentifier","src":"48818:3:65"},"nativeSrc":"48818:20:65","nodeType":"YulFunctionCall","src":"48818:20:65"}],"functionName":{"name":"mstore","nativeSrc":"48790:6:65","nodeType":"YulIdentifier","src":"48790:6:65"},"nativeSrc":"48790:49:65","nodeType":"YulFunctionCall","src":"48790:49:65"},"nativeSrc":"48790:49:65","nodeType":"YulExpressionStatement","src":"48790:49:65"},{"nativeSrc":"48848:84:65","nodeType":"YulAssignment","src":"48848:84:65","value":{"arguments":[{"name":"value5","nativeSrc":"48918:6:65","nodeType":"YulIdentifier","src":"48918:6:65"},{"name":"tail","nativeSrc":"48927:4:65","nodeType":"YulIdentifier","src":"48927:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"48856:61:65","nodeType":"YulIdentifier","src":"48856:61:65"},"nativeSrc":"48856:76:65","nodeType":"YulFunctionCall","src":"48856:76:65"},"variableNames":[{"name":"tail","nativeSrc":"48848:4:65","nodeType":"YulIdentifier","src":"48848:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"47998:941:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"48200:9:65","nodeType":"YulTypedName","src":"48200:9:65","type":""},{"name":"value5","nativeSrc":"48212:6:65","nodeType":"YulTypedName","src":"48212:6:65","type":""},{"name":"value4","nativeSrc":"48220:6:65","nodeType":"YulTypedName","src":"48220:6:65","type":""},{"name":"value3","nativeSrc":"48228:6:65","nodeType":"YulTypedName","src":"48228:6:65","type":""},{"name":"value2","nativeSrc":"48236:6:65","nodeType":"YulTypedName","src":"48236:6:65","type":""},{"name":"value1","nativeSrc":"48244:6:65","nodeType":"YulTypedName","src":"48244:6:65","type":""},{"name":"value0","nativeSrc":"48252:6:65","nodeType":"YulTypedName","src":"48252:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"48263:4:65","nodeType":"YulTypedName","src":"48263:4:65","type":""}],"src":"47998:941:65"},{"body":{"nativeSrc":"49051:119:65","nodeType":"YulBlock","src":"49051:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"49073:6:65","nodeType":"YulIdentifier","src":"49073:6:65"},{"kind":"number","nativeSrc":"49081:1:65","nodeType":"YulLiteral","src":"49081:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"49069:3:65","nodeType":"YulIdentifier","src":"49069:3:65"},"nativeSrc":"49069:14:65","nodeType":"YulFunctionCall","src":"49069:14:65"},{"hexValue":"4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f20","kind":"string","nativeSrc":"49085:34:65","nodeType":"YulLiteral","src":"49085:34:65","type":"","value":"LayerZeroMock: dstNativeAmt too "}],"functionName":{"name":"mstore","nativeSrc":"49062:6:65","nodeType":"YulIdentifier","src":"49062:6:65"},"nativeSrc":"49062:58:65","nodeType":"YulFunctionCall","src":"49062:58:65"},"nativeSrc":"49062:58:65","nodeType":"YulExpressionStatement","src":"49062:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"49141:6:65","nodeType":"YulIdentifier","src":"49141:6:65"},{"kind":"number","nativeSrc":"49149:2:65","nodeType":"YulLiteral","src":"49149:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"49137:3:65","nodeType":"YulIdentifier","src":"49137:3:65"},"nativeSrc":"49137:15:65","nodeType":"YulFunctionCall","src":"49137:15:65"},{"hexValue":"6c6172676520","kind":"string","nativeSrc":"49154:8:65","nodeType":"YulLiteral","src":"49154:8:65","type":"","value":"large "}],"functionName":{"name":"mstore","nativeSrc":"49130:6:65","nodeType":"YulIdentifier","src":"49130:6:65"},"nativeSrc":"49130:33:65","nodeType":"YulFunctionCall","src":"49130:33:65"},"nativeSrc":"49130:33:65","nodeType":"YulExpressionStatement","src":"49130:33:65"}]},"name":"store_literal_in_memory_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","nativeSrc":"48945:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"49043:6:65","nodeType":"YulTypedName","src":"49043:6:65","type":""}],"src":"48945:225:65"},{"body":{"nativeSrc":"49322:220:65","nodeType":"YulBlock","src":"49322:220:65","statements":[{"nativeSrc":"49332:74:65","nodeType":"YulAssignment","src":"49332:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"49398:3:65","nodeType":"YulIdentifier","src":"49398:3:65"},{"kind":"number","nativeSrc":"49403:2:65","nodeType":"YulLiteral","src":"49403:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"49339:58:65","nodeType":"YulIdentifier","src":"49339:58:65"},"nativeSrc":"49339:67:65","nodeType":"YulFunctionCall","src":"49339:67:65"},"variableNames":[{"name":"pos","nativeSrc":"49332:3:65","nodeType":"YulIdentifier","src":"49332:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"49504:3:65","nodeType":"YulIdentifier","src":"49504:3:65"}],"functionName":{"name":"store_literal_in_memory_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206","nativeSrc":"49415:88:65","nodeType":"YulIdentifier","src":"49415:88:65"},"nativeSrc":"49415:93:65","nodeType":"YulFunctionCall","src":"49415:93:65"},"nativeSrc":"49415:93:65","nodeType":"YulExpressionStatement","src":"49415:93:65"},{"nativeSrc":"49517:19:65","nodeType":"YulAssignment","src":"49517:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"49528:3:65","nodeType":"YulIdentifier","src":"49528:3:65"},{"kind":"number","nativeSrc":"49533:2:65","nodeType":"YulLiteral","src":"49533:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"49524:3:65","nodeType":"YulIdentifier","src":"49524:3:65"},"nativeSrc":"49524:12:65","nodeType":"YulFunctionCall","src":"49524:12:65"},"variableNames":[{"name":"end","nativeSrc":"49517:3:65","nodeType":"YulIdentifier","src":"49517:3:65"}]}]},"name":"abi_encode_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206_to_t_string_memory_ptr_fromStack","nativeSrc":"49176:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"49310:3:65","nodeType":"YulTypedName","src":"49310:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"49318:3:65","nodeType":"YulTypedName","src":"49318:3:65","type":""}],"src":"49176:366:65"},{"body":{"nativeSrc":"49719:248:65","nodeType":"YulBlock","src":"49719:248:65","statements":[{"nativeSrc":"49729:26:65","nodeType":"YulAssignment","src":"49729:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"49741:9:65","nodeType":"YulIdentifier","src":"49741:9:65"},{"kind":"number","nativeSrc":"49752:2:65","nodeType":"YulLiteral","src":"49752:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"49737:3:65","nodeType":"YulIdentifier","src":"49737:3:65"},"nativeSrc":"49737:18:65","nodeType":"YulFunctionCall","src":"49737:18:65"},"variableNames":[{"name":"tail","nativeSrc":"49729:4:65","nodeType":"YulIdentifier","src":"49729:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"49776:9:65","nodeType":"YulIdentifier","src":"49776:9:65"},{"kind":"number","nativeSrc":"49787:1:65","nodeType":"YulLiteral","src":"49787:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"49772:3:65","nodeType":"YulIdentifier","src":"49772:3:65"},"nativeSrc":"49772:17:65","nodeType":"YulFunctionCall","src":"49772:17:65"},{"arguments":[{"name":"tail","nativeSrc":"49795:4:65","nodeType":"YulIdentifier","src":"49795:4:65"},{"name":"headStart","nativeSrc":"49801:9:65","nodeType":"YulIdentifier","src":"49801:9:65"}],"functionName":{"name":"sub","nativeSrc":"49791:3:65","nodeType":"YulIdentifier","src":"49791:3:65"},"nativeSrc":"49791:20:65","nodeType":"YulFunctionCall","src":"49791:20:65"}],"functionName":{"name":"mstore","nativeSrc":"49765:6:65","nodeType":"YulIdentifier","src":"49765:6:65"},"nativeSrc":"49765:47:65","nodeType":"YulFunctionCall","src":"49765:47:65"},"nativeSrc":"49765:47:65","nodeType":"YulExpressionStatement","src":"49765:47:65"},{"nativeSrc":"49821:139:65","nodeType":"YulAssignment","src":"49821:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"49955:4:65","nodeType":"YulIdentifier","src":"49955:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206_to_t_string_memory_ptr_fromStack","nativeSrc":"49829:124:65","nodeType":"YulIdentifier","src":"49829:124:65"},"nativeSrc":"49829:131:65","nodeType":"YulFunctionCall","src":"49829:131:65"},"variableNames":[{"name":"tail","nativeSrc":"49821:4:65","nodeType":"YulIdentifier","src":"49821:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"49548:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49699:9:65","nodeType":"YulTypedName","src":"49699:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"49714:4:65","nodeType":"YulTypedName","src":"49714:4:65","type":""}],"src":"49548:419:65"},{"body":{"nativeSrc":"50021:362:65","nodeType":"YulBlock","src":"50021:362:65","statements":[{"nativeSrc":"50031:25:65","nodeType":"YulAssignment","src":"50031:25:65","value":{"arguments":[{"name":"x","nativeSrc":"50054:1:65","nodeType":"YulIdentifier","src":"50054:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"50036:17:65","nodeType":"YulIdentifier","src":"50036:17:65"},"nativeSrc":"50036:20:65","nodeType":"YulFunctionCall","src":"50036:20:65"},"variableNames":[{"name":"x","nativeSrc":"50031:1:65","nodeType":"YulIdentifier","src":"50031:1:65"}]},{"nativeSrc":"50065:25:65","nodeType":"YulAssignment","src":"50065:25:65","value":{"arguments":[{"name":"y","nativeSrc":"50088:1:65","nodeType":"YulIdentifier","src":"50088:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"50070:17:65","nodeType":"YulIdentifier","src":"50070:17:65"},"nativeSrc":"50070:20:65","nodeType":"YulFunctionCall","src":"50070:20:65"},"variableNames":[{"name":"y","nativeSrc":"50065:1:65","nodeType":"YulIdentifier","src":"50065:1:65"}]},{"nativeSrc":"50099:28:65","nodeType":"YulVariableDeclaration","src":"50099:28:65","value":{"arguments":[{"name":"x","nativeSrc":"50122:1:65","nodeType":"YulIdentifier","src":"50122:1:65"},{"name":"y","nativeSrc":"50125:1:65","nodeType":"YulIdentifier","src":"50125:1:65"}],"functionName":{"name":"mul","nativeSrc":"50118:3:65","nodeType":"YulIdentifier","src":"50118:3:65"},"nativeSrc":"50118:9:65","nodeType":"YulFunctionCall","src":"50118:9:65"},"variables":[{"name":"product_raw","nativeSrc":"50103:11:65","nodeType":"YulTypedName","src":"50103:11:65","type":""}]},{"nativeSrc":"50136:41:65","nodeType":"YulAssignment","src":"50136:41:65","value":{"arguments":[{"name":"product_raw","nativeSrc":"50165:11:65","nodeType":"YulIdentifier","src":"50165:11:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"50147:17:65","nodeType":"YulIdentifier","src":"50147:17:65"},"nativeSrc":"50147:30:65","nodeType":"YulFunctionCall","src":"50147:30:65"},"variableNames":[{"name":"product","nativeSrc":"50136:7:65","nodeType":"YulIdentifier","src":"50136:7:65"}]},{"body":{"nativeSrc":"50354:22:65","nodeType":"YulBlock","src":"50354:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"50356:16:65","nodeType":"YulIdentifier","src":"50356:16:65"},"nativeSrc":"50356:18:65","nodeType":"YulFunctionCall","src":"50356:18:65"},"nativeSrc":"50356:18:65","nodeType":"YulExpressionStatement","src":"50356:18:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"50287:1:65","nodeType":"YulIdentifier","src":"50287:1:65"}],"functionName":{"name":"iszero","nativeSrc":"50280:6:65","nodeType":"YulIdentifier","src":"50280:6:65"},"nativeSrc":"50280:9:65","nodeType":"YulFunctionCall","src":"50280:9:65"},{"arguments":[{"name":"y","nativeSrc":"50310:1:65","nodeType":"YulIdentifier","src":"50310:1:65"},{"arguments":[{"name":"product","nativeSrc":"50317:7:65","nodeType":"YulIdentifier","src":"50317:7:65"},{"name":"x","nativeSrc":"50326:1:65","nodeType":"YulIdentifier","src":"50326:1:65"}],"functionName":{"name":"div","nativeSrc":"50313:3:65","nodeType":"YulIdentifier","src":"50313:3:65"},"nativeSrc":"50313:15:65","nodeType":"YulFunctionCall","src":"50313:15:65"}],"functionName":{"name":"eq","nativeSrc":"50307:2:65","nodeType":"YulIdentifier","src":"50307:2:65"},"nativeSrc":"50307:22:65","nodeType":"YulFunctionCall","src":"50307:22:65"}],"functionName":{"name":"or","nativeSrc":"50260:2:65","nodeType":"YulIdentifier","src":"50260:2:65"},"nativeSrc":"50260:83:65","nodeType":"YulFunctionCall","src":"50260:83:65"}],"functionName":{"name":"iszero","nativeSrc":"50240:6:65","nodeType":"YulIdentifier","src":"50240:6:65"},"nativeSrc":"50240:113:65","nodeType":"YulFunctionCall","src":"50240:113:65"},"nativeSrc":"50237:139:65","nodeType":"YulIf","src":"50237:139:65"}]},"name":"checked_mul_t_uint256","nativeSrc":"49973:410:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"50004:1:65","nodeType":"YulTypedName","src":"50004:1:65","type":""},{"name":"y","nativeSrc":"50007:1:65","nodeType":"YulTypedName","src":"50007:1:65","type":""}],"returnVariables":[{"name":"product","nativeSrc":"50013:7:65","nodeType":"YulTypedName","src":"50013:7:65","type":""}],"src":"49973:410:65"},{"body":{"nativeSrc":"50417:152:65","nodeType":"YulBlock","src":"50417:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"50434:1:65","nodeType":"YulLiteral","src":"50434:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"50437:77:65","nodeType":"YulLiteral","src":"50437:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"50427:6:65","nodeType":"YulIdentifier","src":"50427:6:65"},"nativeSrc":"50427:88:65","nodeType":"YulFunctionCall","src":"50427:88:65"},"nativeSrc":"50427:88:65","nodeType":"YulExpressionStatement","src":"50427:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50531:1:65","nodeType":"YulLiteral","src":"50531:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"50534:4:65","nodeType":"YulLiteral","src":"50534:4:65","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"50524:6:65","nodeType":"YulIdentifier","src":"50524:6:65"},"nativeSrc":"50524:15:65","nodeType":"YulFunctionCall","src":"50524:15:65"},"nativeSrc":"50524:15:65","nodeType":"YulExpressionStatement","src":"50524:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50555:1:65","nodeType":"YulLiteral","src":"50555:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"50558:4:65","nodeType":"YulLiteral","src":"50558:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"50548:6:65","nodeType":"YulIdentifier","src":"50548:6:65"},"nativeSrc":"50548:15:65","nodeType":"YulFunctionCall","src":"50548:15:65"},"nativeSrc":"50548:15:65","nodeType":"YulExpressionStatement","src":"50548:15:65"}]},"name":"panic_error_0x12","nativeSrc":"50389:180:65","nodeType":"YulFunctionDefinition","src":"50389:180:65"},{"body":{"nativeSrc":"50617:143:65","nodeType":"YulBlock","src":"50617:143:65","statements":[{"nativeSrc":"50627:25:65","nodeType":"YulAssignment","src":"50627:25:65","value":{"arguments":[{"name":"x","nativeSrc":"50650:1:65","nodeType":"YulIdentifier","src":"50650:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"50632:17:65","nodeType":"YulIdentifier","src":"50632:17:65"},"nativeSrc":"50632:20:65","nodeType":"YulFunctionCall","src":"50632:20:65"},"variableNames":[{"name":"x","nativeSrc":"50627:1:65","nodeType":"YulIdentifier","src":"50627:1:65"}]},{"nativeSrc":"50661:25:65","nodeType":"YulAssignment","src":"50661:25:65","value":{"arguments":[{"name":"y","nativeSrc":"50684:1:65","nodeType":"YulIdentifier","src":"50684:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"50666:17:65","nodeType":"YulIdentifier","src":"50666:17:65"},"nativeSrc":"50666:20:65","nodeType":"YulFunctionCall","src":"50666:20:65"},"variableNames":[{"name":"y","nativeSrc":"50661:1:65","nodeType":"YulIdentifier","src":"50661:1:65"}]},{"body":{"nativeSrc":"50708:22:65","nodeType":"YulBlock","src":"50708:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"50710:16:65","nodeType":"YulIdentifier","src":"50710:16:65"},"nativeSrc":"50710:18:65","nodeType":"YulFunctionCall","src":"50710:18:65"},"nativeSrc":"50710:18:65","nodeType":"YulExpressionStatement","src":"50710:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"50705:1:65","nodeType":"YulIdentifier","src":"50705:1:65"}],"functionName":{"name":"iszero","nativeSrc":"50698:6:65","nodeType":"YulIdentifier","src":"50698:6:65"},"nativeSrc":"50698:9:65","nodeType":"YulFunctionCall","src":"50698:9:65"},"nativeSrc":"50695:35:65","nodeType":"YulIf","src":"50695:35:65"},{"nativeSrc":"50740:14:65","nodeType":"YulAssignment","src":"50740:14:65","value":{"arguments":[{"name":"x","nativeSrc":"50749:1:65","nodeType":"YulIdentifier","src":"50749:1:65"},{"name":"y","nativeSrc":"50752:1:65","nodeType":"YulIdentifier","src":"50752:1:65"}],"functionName":{"name":"div","nativeSrc":"50745:3:65","nodeType":"YulIdentifier","src":"50745:3:65"},"nativeSrc":"50745:9:65","nodeType":"YulFunctionCall","src":"50745:9:65"},"variableNames":[{"name":"r","nativeSrc":"50740:1:65","nodeType":"YulIdentifier","src":"50740:1:65"}]}]},"name":"checked_div_t_uint256","nativeSrc":"50575:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"50606:1:65","nodeType":"YulTypedName","src":"50606:1:65","type":""},{"name":"y","nativeSrc":"50609:1:65","nodeType":"YulTypedName","src":"50609:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"50615:1:65","nodeType":"YulTypedName","src":"50615:1:65","type":""}],"src":"50575:185:65"},{"body":{"nativeSrc":"50814:231:65","nodeType":"YulBlock","src":"50814:231:65","statements":[{"nativeSrc":"50824:25:65","nodeType":"YulAssignment","src":"50824:25:65","value":{"arguments":[{"name":"x","nativeSrc":"50847:1:65","nodeType":"YulIdentifier","src":"50847:1:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"50829:17:65","nodeType":"YulIdentifier","src":"50829:17:65"},"nativeSrc":"50829:20:65","nodeType":"YulFunctionCall","src":"50829:20:65"},"variableNames":[{"name":"x","nativeSrc":"50824:1:65","nodeType":"YulIdentifier","src":"50824:1:65"}]},{"nativeSrc":"50858:25:65","nodeType":"YulAssignment","src":"50858:25:65","value":{"arguments":[{"name":"y","nativeSrc":"50881:1:65","nodeType":"YulIdentifier","src":"50881:1:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"50863:17:65","nodeType":"YulIdentifier","src":"50863:17:65"},"nativeSrc":"50863:20:65","nodeType":"YulFunctionCall","src":"50863:20:65"},"variableNames":[{"name":"y","nativeSrc":"50858:1:65","nodeType":"YulIdentifier","src":"50858:1:65"}]},{"nativeSrc":"50892:28:65","nodeType":"YulVariableDeclaration","src":"50892:28:65","value":{"arguments":[{"name":"x","nativeSrc":"50915:1:65","nodeType":"YulIdentifier","src":"50915:1:65"},{"name":"y","nativeSrc":"50918:1:65","nodeType":"YulIdentifier","src":"50918:1:65"}],"functionName":{"name":"mul","nativeSrc":"50911:3:65","nodeType":"YulIdentifier","src":"50911:3:65"},"nativeSrc":"50911:9:65","nodeType":"YulFunctionCall","src":"50911:9:65"},"variables":[{"name":"product_raw","nativeSrc":"50896:11:65","nodeType":"YulTypedName","src":"50896:11:65","type":""}]},{"nativeSrc":"50929:41:65","nodeType":"YulAssignment","src":"50929:41:65","value":{"arguments":[{"name":"product_raw","nativeSrc":"50958:11:65","nodeType":"YulIdentifier","src":"50958:11:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"50940:17:65","nodeType":"YulIdentifier","src":"50940:17:65"},"nativeSrc":"50940:30:65","nodeType":"YulFunctionCall","src":"50940:30:65"},"variableNames":[{"name":"product","nativeSrc":"50929:7:65","nodeType":"YulIdentifier","src":"50929:7:65"}]},{"body":{"nativeSrc":"51016:22:65","nodeType":"YulBlock","src":"51016:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"51018:16:65","nodeType":"YulIdentifier","src":"51018:16:65"},"nativeSrc":"51018:18:65","nodeType":"YulFunctionCall","src":"51018:18:65"},"nativeSrc":"51018:18:65","nodeType":"YulExpressionStatement","src":"51018:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"product","nativeSrc":"50993:7:65","nodeType":"YulIdentifier","src":"50993:7:65"},{"name":"product_raw","nativeSrc":"51002:11:65","nodeType":"YulIdentifier","src":"51002:11:65"}],"functionName":{"name":"eq","nativeSrc":"50990:2:65","nodeType":"YulIdentifier","src":"50990:2:65"},"nativeSrc":"50990:24:65","nodeType":"YulFunctionCall","src":"50990:24:65"}],"functionName":{"name":"iszero","nativeSrc":"50983:6:65","nodeType":"YulIdentifier","src":"50983:6:65"},"nativeSrc":"50983:32:65","nodeType":"YulFunctionCall","src":"50983:32:65"},"nativeSrc":"50980:58:65","nodeType":"YulIf","src":"50980:58:65"}]},"name":"checked_mul_t_uint128","nativeSrc":"50766:279:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"50797:1:65","nodeType":"YulTypedName","src":"50797:1:65","type":""},{"name":"y","nativeSrc":"50800:1:65","nodeType":"YulTypedName","src":"50800:1:65","type":""}],"returnVariables":[{"name":"product","nativeSrc":"50806:7:65","nodeType":"YulTypedName","src":"50806:7:65","type":""}],"src":"50766:279:65"},{"body":{"nativeSrc":"51093:143:65","nodeType":"YulBlock","src":"51093:143:65","statements":[{"nativeSrc":"51103:25:65","nodeType":"YulAssignment","src":"51103:25:65","value":{"arguments":[{"name":"x","nativeSrc":"51126:1:65","nodeType":"YulIdentifier","src":"51126:1:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"51108:17:65","nodeType":"YulIdentifier","src":"51108:17:65"},"nativeSrc":"51108:20:65","nodeType":"YulFunctionCall","src":"51108:20:65"},"variableNames":[{"name":"x","nativeSrc":"51103:1:65","nodeType":"YulIdentifier","src":"51103:1:65"}]},{"nativeSrc":"51137:25:65","nodeType":"YulAssignment","src":"51137:25:65","value":{"arguments":[{"name":"y","nativeSrc":"51160:1:65","nodeType":"YulIdentifier","src":"51160:1:65"}],"functionName":{"name":"cleanup_t_uint128","nativeSrc":"51142:17:65","nodeType":"YulIdentifier","src":"51142:17:65"},"nativeSrc":"51142:20:65","nodeType":"YulFunctionCall","src":"51142:20:65"},"variableNames":[{"name":"y","nativeSrc":"51137:1:65","nodeType":"YulIdentifier","src":"51137:1:65"}]},{"body":{"nativeSrc":"51184:22:65","nodeType":"YulBlock","src":"51184:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"51186:16:65","nodeType":"YulIdentifier","src":"51186:16:65"},"nativeSrc":"51186:18:65","nodeType":"YulFunctionCall","src":"51186:18:65"},"nativeSrc":"51186:18:65","nodeType":"YulExpressionStatement","src":"51186:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"51181:1:65","nodeType":"YulIdentifier","src":"51181:1:65"}],"functionName":{"name":"iszero","nativeSrc":"51174:6:65","nodeType":"YulIdentifier","src":"51174:6:65"},"nativeSrc":"51174:9:65","nodeType":"YulFunctionCall","src":"51174:9:65"},"nativeSrc":"51171:35:65","nodeType":"YulIf","src":"51171:35:65"},{"nativeSrc":"51216:14:65","nodeType":"YulAssignment","src":"51216:14:65","value":{"arguments":[{"name":"x","nativeSrc":"51225:1:65","nodeType":"YulIdentifier","src":"51225:1:65"},{"name":"y","nativeSrc":"51228:1:65","nodeType":"YulIdentifier","src":"51228:1:65"}],"functionName":{"name":"div","nativeSrc":"51221:3:65","nodeType":"YulIdentifier","src":"51221:3:65"},"nativeSrc":"51221:9:65","nodeType":"YulFunctionCall","src":"51221:9:65"},"variableNames":[{"name":"r","nativeSrc":"51216:1:65","nodeType":"YulIdentifier","src":"51216:1:65"}]}]},"name":"checked_div_t_uint128","nativeSrc":"51051:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"51082:1:65","nodeType":"YulTypedName","src":"51082:1:65","type":""},{"name":"y","nativeSrc":"51085:1:65","nodeType":"YulTypedName","src":"51085:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"51091:1:65","nodeType":"YulTypedName","src":"51091:1:65","type":""}],"src":"51051:185:65"},{"body":{"nativeSrc":"51466:515:65","nodeType":"YulBlock","src":"51466:515:65","statements":[{"nativeSrc":"51476:27:65","nodeType":"YulAssignment","src":"51476:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"51488:9:65","nodeType":"YulIdentifier","src":"51488:9:65"},{"kind":"number","nativeSrc":"51499:3:65","nodeType":"YulLiteral","src":"51499:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"51484:3:65","nodeType":"YulIdentifier","src":"51484:3:65"},"nativeSrc":"51484:19:65","nodeType":"YulFunctionCall","src":"51484:19:65"},"variableNames":[{"name":"tail","nativeSrc":"51476:4:65","nodeType":"YulIdentifier","src":"51476:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"51555:6:65","nodeType":"YulIdentifier","src":"51555:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"51568:9:65","nodeType":"YulIdentifier","src":"51568:9:65"},{"kind":"number","nativeSrc":"51579:1:65","nodeType":"YulLiteral","src":"51579:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"51564:3:65","nodeType":"YulIdentifier","src":"51564:3:65"},"nativeSrc":"51564:17:65","nodeType":"YulFunctionCall","src":"51564:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"51513:41:65","nodeType":"YulIdentifier","src":"51513:41:65"},"nativeSrc":"51513:69:65","nodeType":"YulFunctionCall","src":"51513:69:65"},"nativeSrc":"51513:69:65","nodeType":"YulExpressionStatement","src":"51513:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51603:9:65","nodeType":"YulIdentifier","src":"51603:9:65"},{"kind":"number","nativeSrc":"51614:2:65","nodeType":"YulLiteral","src":"51614:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"51599:3:65","nodeType":"YulIdentifier","src":"51599:3:65"},"nativeSrc":"51599:18:65","nodeType":"YulFunctionCall","src":"51599:18:65"},{"arguments":[{"name":"tail","nativeSrc":"51623:4:65","nodeType":"YulIdentifier","src":"51623:4:65"},{"name":"headStart","nativeSrc":"51629:9:65","nodeType":"YulIdentifier","src":"51629:9:65"}],"functionName":{"name":"sub","nativeSrc":"51619:3:65","nodeType":"YulIdentifier","src":"51619:3:65"},"nativeSrc":"51619:20:65","nodeType":"YulFunctionCall","src":"51619:20:65"}],"functionName":{"name":"mstore","nativeSrc":"51592:6:65","nodeType":"YulIdentifier","src":"51592:6:65"},"nativeSrc":"51592:48:65","nodeType":"YulFunctionCall","src":"51592:48:65"},"nativeSrc":"51592:48:65","nodeType":"YulExpressionStatement","src":"51592:48:65"},{"nativeSrc":"51649:94:65","nodeType":"YulAssignment","src":"51649:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"51721:6:65","nodeType":"YulIdentifier","src":"51721:6:65"},{"name":"value2","nativeSrc":"51729:6:65","nodeType":"YulIdentifier","src":"51729:6:65"},{"name":"tail","nativeSrc":"51738:4:65","nodeType":"YulIdentifier","src":"51738:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"51657:63:65","nodeType":"YulIdentifier","src":"51657:63:65"},"nativeSrc":"51657:86:65","nodeType":"YulFunctionCall","src":"51657:86:65"},"variableNames":[{"name":"tail","nativeSrc":"51649:4:65","nodeType":"YulIdentifier","src":"51649:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"51795:6:65","nodeType":"YulIdentifier","src":"51795:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"51808:9:65","nodeType":"YulIdentifier","src":"51808:9:65"},{"kind":"number","nativeSrc":"51819:2:65","nodeType":"YulLiteral","src":"51819:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"51804:3:65","nodeType":"YulIdentifier","src":"51804:3:65"},"nativeSrc":"51804:18:65","nodeType":"YulFunctionCall","src":"51804:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"51753:41:65","nodeType":"YulIdentifier","src":"51753:41:65"},"nativeSrc":"51753:70:65","nodeType":"YulFunctionCall","src":"51753:70:65"},"nativeSrc":"51753:70:65","nodeType":"YulExpressionStatement","src":"51753:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51844:9:65","nodeType":"YulIdentifier","src":"51844:9:65"},{"kind":"number","nativeSrc":"51855:2:65","nodeType":"YulLiteral","src":"51855:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"51840:3:65","nodeType":"YulIdentifier","src":"51840:3:65"},"nativeSrc":"51840:18:65","nodeType":"YulFunctionCall","src":"51840:18:65"},{"arguments":[{"name":"tail","nativeSrc":"51864:4:65","nodeType":"YulIdentifier","src":"51864:4:65"},{"name":"headStart","nativeSrc":"51870:9:65","nodeType":"YulIdentifier","src":"51870:9:65"}],"functionName":{"name":"sub","nativeSrc":"51860:3:65","nodeType":"YulIdentifier","src":"51860:3:65"},"nativeSrc":"51860:20:65","nodeType":"YulFunctionCall","src":"51860:20:65"}],"functionName":{"name":"mstore","nativeSrc":"51833:6:65","nodeType":"YulIdentifier","src":"51833:6:65"},"nativeSrc":"51833:48:65","nodeType":"YulFunctionCall","src":"51833:48:65"},"nativeSrc":"51833:48:65","nodeType":"YulExpressionStatement","src":"51833:48:65"},{"nativeSrc":"51890:84:65","nodeType":"YulAssignment","src":"51890:84:65","value":{"arguments":[{"name":"value4","nativeSrc":"51960:6:65","nodeType":"YulIdentifier","src":"51960:6:65"},{"name":"tail","nativeSrc":"51969:4:65","nodeType":"YulIdentifier","src":"51969:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"51898:61:65","nodeType":"YulIdentifier","src":"51898:61:65"},"nativeSrc":"51898:76:65","nodeType":"YulFunctionCall","src":"51898:76:65"},"variableNames":[{"name":"tail","nativeSrc":"51890:4:65","nodeType":"YulIdentifier","src":"51890:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"51242:739:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"51406:9:65","nodeType":"YulTypedName","src":"51406:9:65","type":""},{"name":"value4","nativeSrc":"51418:6:65","nodeType":"YulTypedName","src":"51418:6:65","type":""},{"name":"value3","nativeSrc":"51426:6:65","nodeType":"YulTypedName","src":"51426:6:65","type":""},{"name":"value2","nativeSrc":"51434:6:65","nodeType":"YulTypedName","src":"51434:6:65","type":""},{"name":"value1","nativeSrc":"51442:6:65","nodeType":"YulTypedName","src":"51442:6:65","type":""},{"name":"value0","nativeSrc":"51450:6:65","nodeType":"YulTypedName","src":"51450:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"51461:4:65","nodeType":"YulTypedName","src":"51461:4:65","type":""}],"src":"51242:739:65"},{"body":{"nativeSrc":"52015:152:65","nodeType":"YulBlock","src":"52015:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52032:1:65","nodeType":"YulLiteral","src":"52032:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"52035:77:65","nodeType":"YulLiteral","src":"52035:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"52025:6:65","nodeType":"YulIdentifier","src":"52025:6:65"},"nativeSrc":"52025:88:65","nodeType":"YulFunctionCall","src":"52025:88:65"},"nativeSrc":"52025:88:65","nodeType":"YulExpressionStatement","src":"52025:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52129:1:65","nodeType":"YulLiteral","src":"52129:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"52132:4:65","nodeType":"YulLiteral","src":"52132:4:65","type":"","value":"0x31"}],"functionName":{"name":"mstore","nativeSrc":"52122:6:65","nodeType":"YulIdentifier","src":"52122:6:65"},"nativeSrc":"52122:15:65","nodeType":"YulFunctionCall","src":"52122:15:65"},"nativeSrc":"52122:15:65","nodeType":"YulExpressionStatement","src":"52122:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52153:1:65","nodeType":"YulLiteral","src":"52153:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"52156:4:65","nodeType":"YulLiteral","src":"52156:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"52146:6:65","nodeType":"YulIdentifier","src":"52146:6:65"},"nativeSrc":"52146:15:65","nodeType":"YulFunctionCall","src":"52146:15:65"},"nativeSrc":"52146:15:65","nodeType":"YulExpressionStatement","src":"52146:15:65"}]},"name":"panic_error_0x31","nativeSrc":"51987:180:65","nodeType":"YulFunctionDefinition","src":"51987:180:65"},{"body":{"nativeSrc":"52279:65:65","nodeType":"YulBlock","src":"52279:65:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"52301:6:65","nodeType":"YulIdentifier","src":"52301:6:65"},{"kind":"number","nativeSrc":"52309:1:65","nodeType":"YulLiteral","src":"52309:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52297:3:65","nodeType":"YulIdentifier","src":"52297:3:65"},"nativeSrc":"52297:14:65","nodeType":"YulFunctionCall","src":"52297:14:65"},{"hexValue":"496e76616c69642061646170746572506172616d73","kind":"string","nativeSrc":"52313:23:65","nodeType":"YulLiteral","src":"52313:23:65","type":"","value":"Invalid adapterParams"}],"functionName":{"name":"mstore","nativeSrc":"52290:6:65","nodeType":"YulIdentifier","src":"52290:6:65"},"nativeSrc":"52290:47:65","nodeType":"YulFunctionCall","src":"52290:47:65"},"nativeSrc":"52290:47:65","nodeType":"YulExpressionStatement","src":"52290:47:65"}]},"name":"store_literal_in_memory_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","nativeSrc":"52173:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"52271:6:65","nodeType":"YulTypedName","src":"52271:6:65","type":""}],"src":"52173:171:65"},{"body":{"nativeSrc":"52496:220:65","nodeType":"YulBlock","src":"52496:220:65","statements":[{"nativeSrc":"52506:74:65","nodeType":"YulAssignment","src":"52506:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"52572:3:65","nodeType":"YulIdentifier","src":"52572:3:65"},{"kind":"number","nativeSrc":"52577:2:65","nodeType":"YulLiteral","src":"52577:2:65","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"52513:58:65","nodeType":"YulIdentifier","src":"52513:58:65"},"nativeSrc":"52513:67:65","nodeType":"YulFunctionCall","src":"52513:67:65"},"variableNames":[{"name":"pos","nativeSrc":"52506:3:65","nodeType":"YulIdentifier","src":"52506:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"52678:3:65","nodeType":"YulIdentifier","src":"52678:3:65"}],"functionName":{"name":"store_literal_in_memory_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811","nativeSrc":"52589:88:65","nodeType":"YulIdentifier","src":"52589:88:65"},"nativeSrc":"52589:93:65","nodeType":"YulFunctionCall","src":"52589:93:65"},"nativeSrc":"52589:93:65","nodeType":"YulExpressionStatement","src":"52589:93:65"},{"nativeSrc":"52691:19:65","nodeType":"YulAssignment","src":"52691:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"52702:3:65","nodeType":"YulIdentifier","src":"52702:3:65"},{"kind":"number","nativeSrc":"52707:2:65","nodeType":"YulLiteral","src":"52707:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52698:3:65","nodeType":"YulIdentifier","src":"52698:3:65"},"nativeSrc":"52698:12:65","nodeType":"YulFunctionCall","src":"52698:12:65"},"variableNames":[{"name":"end","nativeSrc":"52691:3:65","nodeType":"YulIdentifier","src":"52691:3:65"}]}]},"name":"abi_encode_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811_to_t_string_memory_ptr_fromStack","nativeSrc":"52350:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"52484:3:65","nodeType":"YulTypedName","src":"52484:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"52492:3:65","nodeType":"YulTypedName","src":"52492:3:65","type":""}],"src":"52350:366:65"},{"body":{"nativeSrc":"52893:248:65","nodeType":"YulBlock","src":"52893:248:65","statements":[{"nativeSrc":"52903:26:65","nodeType":"YulAssignment","src":"52903:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"52915:9:65","nodeType":"YulIdentifier","src":"52915:9:65"},{"kind":"number","nativeSrc":"52926:2:65","nodeType":"YulLiteral","src":"52926:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52911:3:65","nodeType":"YulIdentifier","src":"52911:3:65"},"nativeSrc":"52911:18:65","nodeType":"YulFunctionCall","src":"52911:18:65"},"variableNames":[{"name":"tail","nativeSrc":"52903:4:65","nodeType":"YulIdentifier","src":"52903:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52950:9:65","nodeType":"YulIdentifier","src":"52950:9:65"},{"kind":"number","nativeSrc":"52961:1:65","nodeType":"YulLiteral","src":"52961:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52946:3:65","nodeType":"YulIdentifier","src":"52946:3:65"},"nativeSrc":"52946:17:65","nodeType":"YulFunctionCall","src":"52946:17:65"},{"arguments":[{"name":"tail","nativeSrc":"52969:4:65","nodeType":"YulIdentifier","src":"52969:4:65"},{"name":"headStart","nativeSrc":"52975:9:65","nodeType":"YulIdentifier","src":"52975:9:65"}],"functionName":{"name":"sub","nativeSrc":"52965:3:65","nodeType":"YulIdentifier","src":"52965:3:65"},"nativeSrc":"52965:20:65","nodeType":"YulFunctionCall","src":"52965:20:65"}],"functionName":{"name":"mstore","nativeSrc":"52939:6:65","nodeType":"YulIdentifier","src":"52939:6:65"},"nativeSrc":"52939:47:65","nodeType":"YulFunctionCall","src":"52939:47:65"},"nativeSrc":"52939:47:65","nodeType":"YulExpressionStatement","src":"52939:47:65"},{"nativeSrc":"52995:139:65","nodeType":"YulAssignment","src":"52995:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"53129:4:65","nodeType":"YulIdentifier","src":"53129:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811_to_t_string_memory_ptr_fromStack","nativeSrc":"53003:124:65","nodeType":"YulIdentifier","src":"53003:124:65"},"nativeSrc":"53003:131:65","nodeType":"YulFunctionCall","src":"53003:131:65"},"variableNames":[{"name":"tail","nativeSrc":"52995:4:65","nodeType":"YulIdentifier","src":"52995:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"52722:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"52873:9:65","nodeType":"YulTypedName","src":"52873:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"52888:4:65","nodeType":"YulTypedName","src":"52888:4:65","type":""}],"src":"52722:419:65"},{"body":{"nativeSrc":"53253:62:65","nodeType":"YulBlock","src":"53253:62:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"53275:6:65","nodeType":"YulIdentifier","src":"53275:6:65"},{"kind":"number","nativeSrc":"53283:1:65","nodeType":"YulLiteral","src":"53283:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"53271:3:65","nodeType":"YulIdentifier","src":"53271:3:65"},"nativeSrc":"53271:14:65","nodeType":"YulFunctionCall","src":"53271:14:65"},{"hexValue":"556e737570706f7274656420747854797065","kind":"string","nativeSrc":"53287:20:65","nodeType":"YulLiteral","src":"53287:20:65","type":"","value":"Unsupported txType"}],"functionName":{"name":"mstore","nativeSrc":"53264:6:65","nodeType":"YulIdentifier","src":"53264:6:65"},"nativeSrc":"53264:44:65","nodeType":"YulFunctionCall","src":"53264:44:65"},"nativeSrc":"53264:44:65","nodeType":"YulExpressionStatement","src":"53264:44:65"}]},"name":"store_literal_in_memory_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","nativeSrc":"53147:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"53245:6:65","nodeType":"YulTypedName","src":"53245:6:65","type":""}],"src":"53147:168:65"},{"body":{"nativeSrc":"53467:220:65","nodeType":"YulBlock","src":"53467:220:65","statements":[{"nativeSrc":"53477:74:65","nodeType":"YulAssignment","src":"53477:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"53543:3:65","nodeType":"YulIdentifier","src":"53543:3:65"},{"kind":"number","nativeSrc":"53548:2:65","nodeType":"YulLiteral","src":"53548:2:65","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"53484:58:65","nodeType":"YulIdentifier","src":"53484:58:65"},"nativeSrc":"53484:67:65","nodeType":"YulFunctionCall","src":"53484:67:65"},"variableNames":[{"name":"pos","nativeSrc":"53477:3:65","nodeType":"YulIdentifier","src":"53477:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"53649:3:65","nodeType":"YulIdentifier","src":"53649:3:65"}],"functionName":{"name":"store_literal_in_memory_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83","nativeSrc":"53560:88:65","nodeType":"YulIdentifier","src":"53560:88:65"},"nativeSrc":"53560:93:65","nodeType":"YulFunctionCall","src":"53560:93:65"},"nativeSrc":"53560:93:65","nodeType":"YulExpressionStatement","src":"53560:93:65"},{"nativeSrc":"53662:19:65","nodeType":"YulAssignment","src":"53662:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"53673:3:65","nodeType":"YulIdentifier","src":"53673:3:65"},{"kind":"number","nativeSrc":"53678:2:65","nodeType":"YulLiteral","src":"53678:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"53669:3:65","nodeType":"YulIdentifier","src":"53669:3:65"},"nativeSrc":"53669:12:65","nodeType":"YulFunctionCall","src":"53669:12:65"},"variableNames":[{"name":"end","nativeSrc":"53662:3:65","nodeType":"YulIdentifier","src":"53662:3:65"}]}]},"name":"abi_encode_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83_to_t_string_memory_ptr_fromStack","nativeSrc":"53321:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"53455:3:65","nodeType":"YulTypedName","src":"53455:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"53463:3:65","nodeType":"YulTypedName","src":"53463:3:65","type":""}],"src":"53321:366:65"},{"body":{"nativeSrc":"53864:248:65","nodeType":"YulBlock","src":"53864:248:65","statements":[{"nativeSrc":"53874:26:65","nodeType":"YulAssignment","src":"53874:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"53886:9:65","nodeType":"YulIdentifier","src":"53886:9:65"},{"kind":"number","nativeSrc":"53897:2:65","nodeType":"YulLiteral","src":"53897:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"53882:3:65","nodeType":"YulIdentifier","src":"53882:3:65"},"nativeSrc":"53882:18:65","nodeType":"YulFunctionCall","src":"53882:18:65"},"variableNames":[{"name":"tail","nativeSrc":"53874:4:65","nodeType":"YulIdentifier","src":"53874:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53921:9:65","nodeType":"YulIdentifier","src":"53921:9:65"},{"kind":"number","nativeSrc":"53932:1:65","nodeType":"YulLiteral","src":"53932:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"53917:3:65","nodeType":"YulIdentifier","src":"53917:3:65"},"nativeSrc":"53917:17:65","nodeType":"YulFunctionCall","src":"53917:17:65"},{"arguments":[{"name":"tail","nativeSrc":"53940:4:65","nodeType":"YulIdentifier","src":"53940:4:65"},{"name":"headStart","nativeSrc":"53946:9:65","nodeType":"YulIdentifier","src":"53946:9:65"}],"functionName":{"name":"sub","nativeSrc":"53936:3:65","nodeType":"YulIdentifier","src":"53936:3:65"},"nativeSrc":"53936:20:65","nodeType":"YulFunctionCall","src":"53936:20:65"}],"functionName":{"name":"mstore","nativeSrc":"53910:6:65","nodeType":"YulIdentifier","src":"53910:6:65"},"nativeSrc":"53910:47:65","nodeType":"YulFunctionCall","src":"53910:47:65"},"nativeSrc":"53910:47:65","nodeType":"YulExpressionStatement","src":"53910:47:65"},{"nativeSrc":"53966:139:65","nodeType":"YulAssignment","src":"53966:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"54100:4:65","nodeType":"YulIdentifier","src":"54100:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83_to_t_string_memory_ptr_fromStack","nativeSrc":"53974:124:65","nodeType":"YulIdentifier","src":"53974:124:65"},"nativeSrc":"53974:131:65","nodeType":"YulFunctionCall","src":"53974:131:65"},"variableNames":[{"name":"tail","nativeSrc":"53966:4:65","nodeType":"YulIdentifier","src":"53966:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"53693:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"53844:9:65","nodeType":"YulTypedName","src":"53844:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"53859:4:65","nodeType":"YulTypedName","src":"53859:4:65","type":""}],"src":"53693:419:65"},{"body":{"nativeSrc":"54224:55:65","nodeType":"YulBlock","src":"54224:55:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"54246:6:65","nodeType":"YulIdentifier","src":"54246:6:65"},{"kind":"number","nativeSrc":"54254:1:65","nodeType":"YulLiteral","src":"54254:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"54242:3:65","nodeType":"YulIdentifier","src":"54242:3:65"},"nativeSrc":"54242:14:65","nodeType":"YulFunctionCall","src":"54242:14:65"},{"hexValue":"47617320746f6f206c6f77","kind":"string","nativeSrc":"54258:13:65","nodeType":"YulLiteral","src":"54258:13:65","type":"","value":"Gas too low"}],"functionName":{"name":"mstore","nativeSrc":"54235:6:65","nodeType":"YulIdentifier","src":"54235:6:65"},"nativeSrc":"54235:37:65","nodeType":"YulFunctionCall","src":"54235:37:65"},"nativeSrc":"54235:37:65","nodeType":"YulExpressionStatement","src":"54235:37:65"}]},"name":"store_literal_in_memory_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","nativeSrc":"54118:161:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"54216:6:65","nodeType":"YulTypedName","src":"54216:6:65","type":""}],"src":"54118:161:65"},{"body":{"nativeSrc":"54431:220:65","nodeType":"YulBlock","src":"54431:220:65","statements":[{"nativeSrc":"54441:74:65","nodeType":"YulAssignment","src":"54441:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"54507:3:65","nodeType":"YulIdentifier","src":"54507:3:65"},{"kind":"number","nativeSrc":"54512:2:65","nodeType":"YulLiteral","src":"54512:2:65","type":"","value":"11"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"54448:58:65","nodeType":"YulIdentifier","src":"54448:58:65"},"nativeSrc":"54448:67:65","nodeType":"YulFunctionCall","src":"54448:67:65"},"variableNames":[{"name":"pos","nativeSrc":"54441:3:65","nodeType":"YulIdentifier","src":"54441:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"54613:3:65","nodeType":"YulIdentifier","src":"54613:3:65"}],"functionName":{"name":"store_literal_in_memory_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b","nativeSrc":"54524:88:65","nodeType":"YulIdentifier","src":"54524:88:65"},"nativeSrc":"54524:93:65","nodeType":"YulFunctionCall","src":"54524:93:65"},"nativeSrc":"54524:93:65","nodeType":"YulExpressionStatement","src":"54524:93:65"},{"nativeSrc":"54626:19:65","nodeType":"YulAssignment","src":"54626:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"54637:3:65","nodeType":"YulIdentifier","src":"54637:3:65"},{"kind":"number","nativeSrc":"54642:2:65","nodeType":"YulLiteral","src":"54642:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54633:3:65","nodeType":"YulIdentifier","src":"54633:3:65"},"nativeSrc":"54633:12:65","nodeType":"YulFunctionCall","src":"54633:12:65"},"variableNames":[{"name":"end","nativeSrc":"54626:3:65","nodeType":"YulIdentifier","src":"54626:3:65"}]}]},"name":"abi_encode_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b_to_t_string_memory_ptr_fromStack","nativeSrc":"54285:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"54419:3:65","nodeType":"YulTypedName","src":"54419:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"54427:3:65","nodeType":"YulTypedName","src":"54427:3:65","type":""}],"src":"54285:366:65"},{"body":{"nativeSrc":"54828:248:65","nodeType":"YulBlock","src":"54828:248:65","statements":[{"nativeSrc":"54838:26:65","nodeType":"YulAssignment","src":"54838:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"54850:9:65","nodeType":"YulIdentifier","src":"54850:9:65"},{"kind":"number","nativeSrc":"54861:2:65","nodeType":"YulLiteral","src":"54861:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54846:3:65","nodeType":"YulIdentifier","src":"54846:3:65"},"nativeSrc":"54846:18:65","nodeType":"YulFunctionCall","src":"54846:18:65"},"variableNames":[{"name":"tail","nativeSrc":"54838:4:65","nodeType":"YulIdentifier","src":"54838:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"54885:9:65","nodeType":"YulIdentifier","src":"54885:9:65"},{"kind":"number","nativeSrc":"54896:1:65","nodeType":"YulLiteral","src":"54896:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"54881:3:65","nodeType":"YulIdentifier","src":"54881:3:65"},"nativeSrc":"54881:17:65","nodeType":"YulFunctionCall","src":"54881:17:65"},{"arguments":[{"name":"tail","nativeSrc":"54904:4:65","nodeType":"YulIdentifier","src":"54904:4:65"},{"name":"headStart","nativeSrc":"54910:9:65","nodeType":"YulIdentifier","src":"54910:9:65"}],"functionName":{"name":"sub","nativeSrc":"54900:3:65","nodeType":"YulIdentifier","src":"54900:3:65"},"nativeSrc":"54900:20:65","nodeType":"YulFunctionCall","src":"54900:20:65"}],"functionName":{"name":"mstore","nativeSrc":"54874:6:65","nodeType":"YulIdentifier","src":"54874:6:65"},"nativeSrc":"54874:47:65","nodeType":"YulFunctionCall","src":"54874:47:65"},"nativeSrc":"54874:47:65","nodeType":"YulExpressionStatement","src":"54874:47:65"},{"nativeSrc":"54930:139:65","nodeType":"YulAssignment","src":"54930:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"55064:4:65","nodeType":"YulIdentifier","src":"55064:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b_to_t_string_memory_ptr_fromStack","nativeSrc":"54938:124:65","nodeType":"YulIdentifier","src":"54938:124:65"},"nativeSrc":"54938:131:65","nodeType":"YulFunctionCall","src":"54938:131:65"},"variableNames":[{"name":"tail","nativeSrc":"54930:4:65","nodeType":"YulIdentifier","src":"54930:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"54657:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"54808:9:65","nodeType":"YulTypedName","src":"54808:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"54823:4:65","nodeType":"YulTypedName","src":"54823:4:65","type":""}],"src":"54657:419:65"}]},"contents":"{\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function cleanup_t_uint64(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffff)\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint64(value))\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_uint64_t_bytes_memory_ptr__to_t_address_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint128(value) {\n        if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint128(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint128(value)\n    }\n\n    function validator_revert_t_uint64(value) {\n        if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint64(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint64(value)\n    }\n\n    function abi_decode_tuple_t_uint128t_uint128t_uint128t_uint64t_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_addresst_bytes_memory_ptrt_boolt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_uint64_t_address_t_bytes32__to_t_uint64_t_address_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function abi_encode_tuple_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__to_t_uint128_t_uint128_t_uint128_t_uint64_t_uint64__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_addresst_uint64t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n        if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value4 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_bytes_calldata_ptrt_address_payablet_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n        if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2, value3 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value4 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value6 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: no stored payload\")\n\n    }\n\n    function abi_encode_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_51a3ef37d923cf8e75eb89061483426b10018e2e4b4ca788f8efcc1c7ad071db_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: invalid caller\")\n\n    }\n\n    function abi_encode_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3967011d6285a9dce57c3ff82ee9dd83446fd39eaaeb6fa26af022508e44801b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n    }\n\n    function store_literal_in_memory_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: invalid payload\")\n\n    }\n\n    function abi_encode_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5d0b005579c4d5f607baec096f4a22c77289f237586c7362a7902ea2a3c322fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value4, value5,  tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_address__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_address__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 96))\n\n    }\n\n    function store_literal_in_memory_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: no receive reentr\")\n\n        mstore(add(memPtr, 32), \"ancy\")\n\n    }\n\n    function abi_encode_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_82caa7769a2a1defb5e8d4082900c39c0f04eedfd5e921c1e3bf1d16730a12ab_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function increment_t_uint64(value) -> ret {\n        value := cleanup_t_uint64(value)\n        if eq(value, 0xffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n    function store_literal_in_memory_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: wrong nonce\")\n\n    }\n\n    function abi_encode_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cfe15a20060cae4027edaeadac99a28b9a581999e01bac9619e7f52b82ee25ac_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_dataslot_t_bytes_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_bytes_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n        let newLen := array_length_t_bytes_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function array_length_t_bytes_storage(value) -> length {\n\n        length := sload(value)\n\n        length := extract_byte_array_length(length)\n\n    }\n\n    function copy_byte_array_to_storage_from_t_bytes_storage_to_t_bytes_storage(slot, src) {\n        if eq(slot, src) { leave }\n\n        let newLen := array_length_t_bytes_storage(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n            src := array_dataslot_t_bytes_storage(src)\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, sload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 1)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := sload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := sload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_address_t_uint64_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_address_to_t_address_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value4,  add(headStart, 96))\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value5, value6,  tail)\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value7,  tail)\n\n    }\n\n    function store_literal_in_memory_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: no send reentranc\")\n\n        mstore(add(memPtr, 32), \"y\")\n\n    }\n\n    function abi_encode_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n        store_literal_in_memory_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_73b1d6d5ba54cd5e4e2ebace0c8623f647e51a2b5e72af7e7df83d716224bbcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: incorrect remote \")\n\n        mstore(add(memPtr, 32), \"address size\")\n\n    }\n\n    function abi_encode_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n        store_literal_in_memory_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a84f16779931db7ec618d2bd334bd656888d24e7e320bdf2dd7a0a0862d1916b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: destination Layer\")\n\n        mstore(add(memPtr, 32), \"Zero Endpoint not found\")\n\n    }\n\n    function abi_encode_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 55)\n        store_literal_in_memory_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_03f2c372695dfb7017d0d1b5b039a7a7c563c382ff38f9563e77eedca785e4df_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: not enough native\")\n\n        mstore(add(memPtr, 32), \" for fees\")\n\n    }\n\n    function abi_encode_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1d7a441e6351efbe3589b780f6d9098a5373ce9246e759367f3fb559adf16b4a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n    }\n\n    function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n        store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n        end := add(pos, 0)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: failed to refund\")\n\n    }\n\n    function abi_encode_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_dcfb2fb846bf29eed16ab1966cc303d2b0cbdcaede7d9e78ee4c30c1a8119790_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 20)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_address_t_uint64_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value5,  tail)\n\n    }\n\n    function store_literal_in_memory_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206(memPtr) {\n\n        mstore(add(memPtr, 0), \"LayerZeroMock: dstNativeAmt too \")\n\n        mstore(add(memPtr, 32), \"large \")\n\n    }\n\n    function abi_encode_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9ed68b89a8d51980886c19b98768f5848012f002a5537f0951f8528791f91206_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_mul_t_uint128(x, y) -> product {\n        x := cleanup_t_uint128(x)\n        y := cleanup_t_uint128(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint128(product_raw)\n\n        if iszero(eq(product, product_raw)) { panic_error_0x11() }\n\n    }\n\n    function checked_div_t_uint128(x, y) -> r {\n        x := cleanup_t_uint128(x)\n        y := cleanup_t_uint128(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4,  tail)\n\n    }\n\n    function panic_error_0x31() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811(memPtr) {\n\n        mstore(add(memPtr, 0), \"Invalid adapterParams\")\n\n    }\n\n    function abi_encode_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0f005c8f9eb8529feefbf08a495f7eb29117b455a305de4654f9babf9705a811_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83(memPtr) {\n\n        mstore(add(memPtr, 0), \"Unsupported txType\")\n\n    }\n\n    function abi_encode_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n        store_literal_in_memory_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4077c8a598c34a32244e743d20d5e8902c44c8500a46b23d668292bbbe5d2c83_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Gas too low\")\n\n    }\n\n    function abi_encode_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n        store_literal_in_memory_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9b212afc0809d994d44a873b9f3c4e7606021e0d8d455342b5758a2ae53b8e2b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061021a5760003560e01c80639924d33b11610123578063ca066b35116100ab578063e97a448a1161006f578063e97a448a14610796578063f5ecbdbc146107b2578063f9cd3ceb146107d2578063fbba623b146107e8578063fdc07c701461080857600080fd5b8063ca066b3514610716578063cbed8b9c14610737578063d23104f114610758578063da1a7c9a14610271578063db14f3051461077b57600080fd5b8063b6d9ef60116100f2578063b6d9ef6014610644578063c08f15a114610664578063c2fa4813146106ad578063c5803100146106cd578063c81b383a146106e057600080fd5b80639924d33b146105915780639c729da114610432578063aaff5f16146105e3578063b20864991461060357600080fd5b80633408e470116101a657806371ba2fd61161017557806371ba2fd61461043257806376a386dc1461045f5780637a145748146104da5780637f6df8e614610507578063907c5e7e1461053457600080fd5b80633408e470146103b95780633e0dd83e146103d257806340a7bb10146103f257806342d65a8d1461041257600080fd5b806310ddb137116101ed57806310ddb1371461025157806312a9ee6b146102cc578063240de277146102fb578063272bd384146103215780632c365e251461034357600080fd5b806307d3277f1461021f57806307e0db1714610251578063096568f6146102715780630eaf6ea61461029f575b600080fd5b34801561022b57600080fd5b5060045460055461023a919082565b604051610248929190611e23565b60405180910390f35b34801561025d57600080fd5b5061026f61026c366004611e5a565b50565b005b34801561027d57600080fd5b5061029261028c366004611ea0565b50600190565b6040516102489190611ecb565b3480156102ab57600080fd5b506102bf6102ba366004611f2a565b610828565b6040516102489190611f8d565b3480156102d857600080fd5b506102ec6102e73660046120a5565b61086e565b6040516102489392919061217f565b34801561030757600080fd5b5061026f6103163660046121b5565b600491909155600555565b34801561032d57600080fd5b5061033661096b565b60405161024891906121f2565b34801561034f57600080fd5b5061026f61035e366004612237565b6001600160801b03948516600160801b94861685021760025560038054939095166001600160c01b0319909316929092176001600160401b03918216909302929092176001600160c01b0316600160c01b9190921602179055565b3480156103c557600080fd5b5060015461ffff16610292565b3480156103de57600080fd5b506001546102bf9062010000900460ff1681565b3480156103fe57600080fd5b5061023a61040d3660046122c2565b6109f9565b34801561041e57600080fd5b5061026f61042d366004611f2a565b610af8565b34801561043e57600080fd5b5061045261044d366004611ea0565b503090565b6040516102489190612361565b34801561046b57600080fd5b506104cb61047a36600461236f565b600a6020908152600092835260409092208151808301840180519281529084019290930191909120915280546001909101546001600160401b03821691600160401b90046001600160a01b03169083565b604051610248939291906123bc565b3480156104e657600080fd5b506104fa6104f53660046123e4565b610be3565b6040516102489190612417565b34801561051357600080fd5b50610527610522366004611f2a565b610c1b565b6040516102489190612425565b34801561054057600080fd5b50600254600354610580916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b604051610248959493929190612442565b34801561059d57600080fd5b506104fa6105ac36600461236f565b600860209081526000928352604090922081518083018401805192815290840192909301919091209152546001600160401b031681565b3480156105ef57600080fd5b5061026f6105fe36600461248e565b610c57565b34801561060f57600080fd5b506104fa61061e3660046123e4565b60096020908152600092835260408084209091529082529020546001600160401b031681565b34801561065057600080fd5b5061026f61065f36600461251c565b600655565b34801561067057600080fd5b5061026f61067f36600461253d565b6001600160a01b03918216600090815260208190526040902080546001600160a01b03191691909216179055565b3480156106b957600080fd5b5061026f6106c836600461255f565b610e0d565b61026f6106db366004612627565b6114d0565b3480156106ec57600080fd5b506104526106fb366004611ea0565b6000602081905290815260409020546001600160a01b031681565b34801561072257600080fd5b506102bf600c54610100900460ff1660021490565b34801561074357600080fd5b5061026f610752366004612705565b50505050565b34801561076457600080fd5b5061026f6001805462ff0000191662010000179055565b34801561078757600080fd5b506001546102929061ffff1681565b3480156107a257600080fd5b506102bf600c5460ff1660021490565b3480156107be57600080fd5b506103366107cd366004612783565b61191e565b3480156107de57600080fd5b5061052760065481565b3480156107f457600080fd5b5061026f6108033660046127db565b611936565b34801561081457600080fd5b506104fa610823366004611f2a565b611946565b61ffff83166000908152600a6020526040808220905182919061084e9086908690612828565b9081526040519081900360200190206001015415159150505b9392505050565b600b60209081526000848152604090208351808501830180519281529083019285019290922091528054829081106108a557600080fd5b6000918252602090912060029091020180546001820180546001600160a01b0383169650600160a01b9092046001600160401b031694509192506108e89061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546109149061284b565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905083565b600780546109789061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546109a49061284b565b80156109f15780601f106109c6576101008083540402835291602001916109f1565b820191906000526020600020905b8154815290600101906020018083116109d457829003601f168201915b505050505081565b600080600080845111610a965760078054610a139061284b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3f9061284b565b8015610a8c5780601f10610a6157610100808354040283529160200191610a8c565b820191906000526020600020905b815481529060010190602001808311610a6f57829003601f168201915b5050505050610a98565b835b90506000610aab8960018a8a518661198b565b90506000610abc8783600654611ae5565b905086610acc5780945084610ad1565b809350835b50600654610adf838761288d565b610ae9919061288d565b94505050509550959350505050565b61ffff83166000908152600a60205260408082209051610b1b9085908590612828565b9081526040519081900360200190206001810154909150610b575760405162461bcd60e51b8152600401610b4e906128d5565b60405180910390fd5b8054600160401b90046001600160a01b03163314610b875760405162461bcd60e51b8152600401610b4e90612919565b80546001600160e01b0319168155600060018201556040517f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f9890610bd09086908690869061294c565b60405180910390a1610752848484611b22565b61ffff821660009081526009602090815260408083206001600160a01b03851684529091529020546001600160401b03165b92915050565b61ffff83166000908152600b60205260408082209051610c3e9085908590612828565b9081526040519081900360200190205490509392505050565b61ffff85166000908152600a60205260408082209051610c7a9087908790612828565b9081526040519081900360200190206001810154909150610cad5760405162461bcd60e51b8152600401610b4e906128d5565b80546001600160401b031682148015610ce0575080600101548383604051610cd6929190612828565b6040518091039020145b610cfc5760405162461bcd60e51b8152600401610b4e906129a1565b80546001600160e01b03198116825560006001830181905561ffff88168152600860205260408082209051600160401b9093046001600160a01b031692610d469089908990612828565b90815260405190819003602001812054621d356760e01b82526001600160401b031691506001600160a01b03831690621d356790610d92908b908b908b9087908c908c906004016129b1565b600060405180830381600087803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051610dfb959493929190612a00565b60405180910390a15050505050505050565b600c54610100900460ff16600114610e375760405162461bcd60e51b8152600401610b4e90612a81565b600c805461ff00191661020017905561ffff88166000908152600a60205260408082209051610e69908a908a90612828565b90815260200160405180910390209050600860008a61ffff1661ffff1681526020019081526020016000208888604051610ea4929190612828565b9081526040519081900360200190208054600090610eca906001600160401b0316612a91565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b0316856001600160401b031614610f1d5760405162461bcd60e51b8152600401610b4e90612aef565b6001810154156111e35761ffff89166000908152600b60205260408082209051610f4a908b908b90612828565b9081526020016040518091039020905060006040518060600160405280896001600160a01b03168152602001886001600160401b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525082549091501561117457815460018181018455600084815260209081902084516002909402018054918501516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b0390941693909317178255604083015183929182019061102b9082612b9f565b50505060005b825461103f90600190612c66565b8110156110f95782818154811061105857611058612c79565b906000526020600020906002020183826001611074919061288d565b8154811061108457611084612c79565b60009182526020909120825460029092020180546001600160a01b039092166001600160a01b031983168117825583546001600160e01b031990931617600160a01b928390046001600160401b03169092029190911781556001808201906110ee90840182612c9a565b505050600101611031565b50808260008154811061110e5761110e612c79565b600091825260209182902083516002909202018054928401516001600160401b0316600160a01b026001600160e01b03199093166001600160a01b03909216919091179190911781556040820151600182019061116b9082612b9f565b509050506111dc565b815460018181018455600084815260209081902084516002909402018054918501516001600160401b0316600160a01b026001600160e01b03199092166001600160a01b039094169390931717825560408301518392918201906111d89082612b9f565b5050505b50506114b6565b60015462010000900460ff1615611311576040518060600160405280848490506001600160401b03168152602001876001600160a01b031681526020018484604051611230929190612828565b604080519182900390912090915261ffff8b166000908152600a602052819020905161125f908b908b90612828565b90815260408051918290036020908101832084518154868401516001600160a01b0316600160401b026001600160e01b03199091166001600160401b03909216919091171781559382015160019094019390935591810182526000815290517f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db916112f8918c918c918c918c918c918b918b9190612d63565b60405180910390a16001805462ff0000191690556114b6565b604051621d356760e01b81526001600160a01b03871690621d3567908690611347908d908d908d908c908b908b906004016129b1565b600060405180830381600088803b15801561136157600080fd5b5087f193505050508015611373575060015b6114b6573d8080156113a1576040519150601f19603f3d011682016040523d82523d6000602084013e6113a6565b606091505b506040518060600160405280858590506001600160401b03168152602001886001600160a01b0316815260200185856040516113e3929190612828565b604080519182900390912090915261ffff8c166000908152600a6020528190209051611412908c908c90612828565b90815260408051918290036020908101832084518154928601516001600160a01b0316600160401b026001600160e01b03199093166001600160401b03909116179190911781559201516001909201919091557f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db906114a0908c908c908c908c908c908b908b908a90612d63565b60405180910390a1506001805462ff0000191690555b5050600c805461ff00191661010017905550505050505050565b600c5460ff166001146114f55760405162461bcd60e51b8152600401610b4e90612e13565b600c805460ff1916600217905585516028146115235760405162461bcd60e51b8152600401610b4e90612e6c565b60148601516001600160a01b0380821660009081526020819052604090205416806115605760405162461bcd60e51b8152600401610b4e90612ed6565b6000808451116115fa57600780546115779061284b565b80601f01602080910402602001604051908101604052809291908181526020018280546115a39061284b565b80156115f05780601f106115c5576101008083540402835291602001916115f0565b820191906000526020600020905b8154815290600101906020018083116115d357829003601f168201915b50505050506115fc565b835b9050600061164d8b338b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506001600160a01b038a161515866109f9565b509050803410156116705760405162461bcd60e51b8152600401610b4e90612f2c565b61ffff8b1660009081526009602090815260408083203384529091528120805482906116a4906001600160401b0316612a91565b91906101000a8154816001600160401b0302191690836001600160401b0316021790559050600082346116d79190612c66565b9050801561175d576000896001600160a01b0316826040516116f890612f3c565b60006040518083038185875af1925050503d8060008114611735576040519150601f19603f3d011682016040523d82523d6000602084013e61173a565b606091505b505090508061175b5760405162461bcd60e51b8152600401610b4e90612f7b565b505b600080600061176b87611d19565b91955093509150508115611816576000816001600160a01b03168360405161179290612f3c565b60006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b50509050806118145760405183906001600160a01b038416907f2c7a964ca3de5ec1d42d9822f9bbd0eb142a59cc9f855e9d93813b773192c7a390600090a35b505b6000338a60405160200161182b929190612fb3565b604051602081830303815290604052905060008f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050896001600160a01b031663c2fa4813600160009054906101000a900461ffff16848e8b8a876040518763ffffffff1660e01b81526004016118cb96959493929190612fd9565b600060405180830381600087803b1580156118e557600080fd5b505af11580156118f9573d6000803e3d6000fd5b5050600c805460ff191660011790555050505050505050505050505050505050505050565b6040805160208101909152600081525b949350505050565b60076119428282612b9f565b5050565b61ffff831660009081526008602052604080822090516119699085908590612828565b908152604051908190036020019020546001600160401b031690509392505050565b60008060008061199a85611d19565b5092509250925060008361ffff166002036119e7576003546001600160801b03168211156119da5760405162461bcd60e51b8152600401610b4e90613077565b6119e4828261288d565b90505b600354600090611a08908590600160801b90046001600160401b031661288d565b600254611a259190600160801b90046001600160801b0316613087565b9050611a31818361288d565b6002549092506000906402540be40090611a54906001600160801b031685613087565b611a5e91906130bc565b6002546003549192506000916402540be400916001600160801b0380821692611aa192600160c01b9091046001600160401b031691600160801b909104166130d4565b611aab91906130d4565b611ab591906130fa565b6001600160801b03169050611aca818b613087565b611ad4908361288d565b9d9c50505050505050505050505050565b60008315611af65750600454610867565b60055461271090611b07848661288d565b611b119190613087565b611b1b91906130bc565b9050610867565b61ffff83166000908152600b60205260408082209051611b459085908590612828565b908152602001604051809103902090505b8054156107525780546000908290611b7090600190612c66565b81548110611b8057611b80612c79565b600091825260209182902060408051606081018252600290930290910180546001600160a01b03811684526001600160401b03600160a01b909104169383019390935260018301805492939291840191611bd99061284b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c059061284b565b8015611c525780601f10611c2757610100808354040283529160200191611c52565b820191906000526020600020905b815481529060010190602001808311611c3557829003601f168201915b505050505081525050905080600001516001600160a01b0316621d3567868686856020015186604001516040518663ffffffff1660e01b8152600401611c9c959493929190613117565b600060405180830381600087803b158015611cb657600080fd5b505af1158015611cca573d6000803e3d6000fd5b5050505081805480611cde57611cde613164565b60008281526020812060026000199093019283020180546001600160e01b031916815590611d0f6001830182611dcd565b5050905550611b56565b600080600080845160221480611d30575060428551115b611d4c5760405162461bcd60e51b8152600401610b4e906131a6565b60028501519350602285015192508361ffff1660011480611d7157508361ffff166002145b611d8d5760405162461bcd60e51b8152600401610b4e906131df565b60008311611dad5760405162461bcd60e51b8152600401610b4e90613211565b8361ffff16600203611dc6575050604283015160568401515b9193509193565b508054611dd99061284b565b6000825580601f10611de9575050565b601f01602090049060005260206000209081019061026c91905b80821115611e175760008155600101611e03565b5090565b805b82525050565b60408101611e318285611e1b565b6108676020830184611e1b565b61ffff81165b811461026c57600080fd5b8035610c1581611e3e565b600060208284031215611e6f57611e6f600080fd5b600061192e8484611e4f565b60006001600160a01b038216610c15565b611e4481611e7b565b8035610c1581611e8c565b600060208284031215611eb557611eb5600080fd5b600061192e8484611e95565b61ffff8116611e1d565b60208101610c158284611ec1565b60008083601f840112611eee57611eee600080fd5b5081356001600160401b03811115611f0857611f08600080fd5b602083019150836001820283011115611f2357611f23600080fd5b9250929050565b600080600060408486031215611f4257611f42600080fd5b6000611f4e8686611e4f565b93505060208401356001600160401b03811115611f6d57611f6d600080fd5b611f7986828701611ed9565b92509250509250925092565b801515611e1d565b60208101610c158284611f85565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715611fd657611fd6611f9b565b6040525050565b6000611fe860405190565b9050611ff48282611fb1565b919050565b60006001600160401b0382111561201257612012611f9b565b601f19601f83011660200192915050565b82818337506000910152565b600061204261203d84611ff9565b611fdd565b90508281526020810184848401111561205d5761205d600080fd5b612068848285612023565b509392505050565b600082601f83011261208457612084600080fd5b813561192e84826020860161202f565b80611e44565b8035610c1581612094565b6000806000606084860312156120bd576120bd600080fd5b60006120c98686611e4f565b93505060208401356001600160401b038111156120e8576120e8600080fd5b6120f486828701612070565b92505060406121058682870161209a565b9150509250925092565b611e1d81611e7b565b6001600160401b038116611e1d565b60005b8381101561214257818101518382015260200161212a565b50506000910152565b6000612155825190565b80845260208401935061216c818560208601612127565b601f19601f8201165b9093019392505050565b6060810161218d828661210f565b61219a6020830185612118565b81810360408301526121ac818461214b565b95945050505050565b600080604083850312156121cb576121cb600080fd5b60006121d7858561209a565b92505060206121e88582860161209a565b9150509250929050565b60208082528101610867818461214b565b6001600160801b038116611e44565b8035610c1581612203565b6001600160401b038116611e44565b8035610c158161221d565b600080600080600060a0868803121561225257612252600080fd5b600061225e8888612212565b955050602061226f88828901612212565b945050604061228088828901612212565b93505060606122918882890161222c565b92505060806122a28882890161222c565b9150509295509295909350565b801515611e44565b8035610c15816122af565b600080600080600060a086880312156122dd576122dd600080fd5b60006122e98888611e4f565b95505060206122fa88828901611e95565b94505060408601356001600160401b0381111561231957612319600080fd5b61232588828901612070565b9350506060612336888289016122b7565b92505060808601356001600160401b0381111561235557612355600080fd5b6122a288828901612070565b60208101610c15828461210f565b6000806040838503121561238557612385600080fd5b60006123918585611e4f565b92505060208301356001600160401b038111156123b0576123b0600080fd5b6121e885828601612070565b606081016123ca8286612118565b6123d7602083018561210f565b61192e6040830184611e1b565b600080604083850312156123fa576123fa600080fd5b60006124068585611e4f565b92505060206121e885828601611e95565b60208101610c158284612118565b60208101610c158284611e1b565b6001600160801b038116611e1d565b60a081016124508288612433565b61245d6020830187612433565b61246a6040830186612433565b6124776060830185612118565b6124846080830184612118565b9695505050505050565b6000806000806000606086880312156124a9576124a9600080fd5b60006124b58888611e4f565b95505060208601356001600160401b038111156124d4576124d4600080fd5b6124e088828901611ed9565b945094505060408601356001600160401b0381111561250157612501600080fd5b61250d88828901611ed9565b92509250509295509295909350565b60006020828403121561253157612531600080fd5b600061192e848461209a565b6000806040838503121561255357612553600080fd5b60006124068585611e95565b60008060008060008060008060c0898b03121561257e5761257e600080fd5b600061258a8b8b611e4f565b98505060208901356001600160401b038111156125a9576125a9600080fd5b6125b58b828c01611ed9565b975097505060406125c88b828c01611e95565b95505060606125d98b828c0161222c565b94505060806125ea8b828c0161209a565b93505060a08901356001600160401b0381111561260957612609600080fd5b6126158b828c01611ed9565b92509250509295985092959890939650565b600080600080600080600060c0888a03121561264557612645600080fd5b60006126518a8a611e4f565b97505060208801356001600160401b0381111561267057612670600080fd5b61267c8a828b01612070565b96505060408801356001600160401b0381111561269b5761269b600080fd5b6126a78a828b01611ed9565b955095505060606126ba8a828b01611e95565b93505060806126cb8a828b01611e95565b92505060a08801356001600160401b038111156126ea576126ea600080fd5b6126f68a828b01612070565b91505092959891949750929550565b6000806000806080858703121561271e5761271e600080fd5b600061272a8787611e4f565b945050602061273b87828801611e4f565b935050604061274c8782880161209a565b92505060608501356001600160401b0381111561276b5761276b600080fd5b61277787828801612070565b91505092959194509250565b6000806000806080858703121561279c5761279c600080fd5b60006127a88787611e4f565b94505060206127b987828801611e4f565b93505060406127ca87828801611e95565b92505060606127778782880161209a565b6000602082840312156127f0576127f0600080fd5b81356001600160401b0381111561280957612809600080fd5b61192e84828501612070565b6000612822838584612023565b50500190565b600061192e828486612815565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061285f57607f821691505b60208210810361287157612871612835565b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1557610c15612877565b60208082527f4c617965725a65726f4d6f636b3a206e6f2073746f726564207061796c6f6164910190815260005b5060200190565b60208082528101610c15816128a0565b601d81526000602082017f4c617965725a65726f4d6f636b3a20696e76616c69642063616c6c6572000000815291506128ce565b60208082528101610c15816128e5565b818352600060208401935061293f838584612023565b601f19601f840116612175565b6040810161295a8286611ec1565b81810360208301526121ac818486612929565b601e81526000602082017f4c617965725a65726f4d6f636b3a20696e76616c6964207061796c6f61640000815291506128ce565b60208082528101610c158161296d565b608081016129bf8289611ec1565b81810360208301526129d2818789612929565b90506129e16040830186612118565b81810360608301526129f4818486612929565b98975050505050505050565b60808101612a0e8288611ec1565b8181036020830152612a21818688612929565b9050612a306040830185612118565b612484606083018461210f565b602481526000602082017f4c617965725a65726f4d6f636b3a206e6f2072656365697665207265656e7472815263616e637960e01b602082015291505b5060400190565b60208082528101610c1581612a3d565b6001600160401b0316600067fffffffffffffffe198201612ab457612ab4612877565b5060010190565b601a81526000602082017f4c617965725a65726f4d6f636b3a2077726f6e67206e6f6e6365000000000000815291506128ce565b60208082528101610c1581612abb565b6000610c15612b0b8381565b90565b612b1783612aff565b815460001960089490940293841b1916921b91909117905550565b6000612b3f818484612b0e565b505050565b8181101561194257612b57600082612b32565b600101612b44565b601f821115612b3f576000818152602090206020601f85010481016020851015612b865750805b612b986020601f860104830182612b44565b5050505050565b81516001600160401b03811115612bb857612bb8611f9b565b612bc2825461284b565b612bcd828285612b5f565b6020601f831160018114612c025760008415612be95750858201515b600019600886021c19811660028602175b865550612c5e565b600085815260208120601f198616915b82811015612c325788850151825560209485019460019092019101612c12565b86831015612c5157888501516000196008601f8a16021c1981165b8355505b6001600288020188555050505b505050505050565b81810381811115610c1557610c15612877565b634e487b7160e01b600052603260045260246000fd5b8054610c158161284b565b818103612ca5575050565b612cae82612c8f565b6001600160401b03811115612cc557612cc5611f9b565b612ccf825461284b565b612cda828285612b5f565b6000601f831160018114612d0a5760008415612be9575081860154600019600886021c1981166002860217612bfa565b600095865260208087208688529087209096601f19861691905b82811015612d445788850154825560019485019490910190602001612d24565b86831015612c5157888501546000196008601f8a16021c198116612c4d565b60c08101612d71828b611ec1565b8181036020830152612d8481898b612929565b9050612d93604083018861210f565b612da06060830187612118565b8181036080830152612db3818587612929565b905081810360a0830152612dc7818461214b565b9a9950505050505050505050565b602181526000602082017f4c617965725a65726f4d6f636b3a206e6f2073656e64207265656e7472616e638152607960f81b60208201529150612a7a565b60208082528101610c1581612dd5565b602c81526000602082017f4c617965725a65726f4d6f636b3a20696e636f72726563742072656d6f74652081526b616464726573732073697a6560a01b60208201529150612a7a565b60208082528101610c1581612e23565b603781526000602082017f4c617965725a65726f4d6f636b3a2064657374696e6174696f6e204c6179657281527f5a65726f20456e64706f696e74206e6f7420666f756e6400000000000000000060208201529150612a7a565b60208082528101610c1581612e7c565b602981526000602082017f4c617965725a65726f4d6f636b3a206e6f7420656e6f756768206e617469766581526820666f72206665657360b81b60208201529150612a7a565b60208082528101610c1581612ee6565b6000610c1582612b0b565b601f81526000602082017f4c617965725a65726f4d6f636b3a206661696c656420746f20726566756e6400815291506128ce565b60208082528101610c1581612f47565b6000610c158260601b90565b6000610c1582612f8b565b611e1d612fae82611e7b565b612f97565b6000612fbf8285612fa2565b601482019150612fcf8284612fa2565b5060140192915050565b60c08101612fe78289611ec1565b8181036020830152612ff9818861214b565b9050613008604083018761210f565b6130156060830186612118565b6130226080830185611e1b565b81810360a08301526129f4818461214b565b602681526000602082017f4c617965725a65726f4d6f636b3a206473744e6174697665416d7420746f6f2081526503630b933b2960d51b60208201529150612a7a565b60208082528101610c1581613034565b81810280821583820485141761309f5761309f612877565b5092915050565b634e487b7160e01b600052601260045260246000fd5b6000825b9250826130cf576130cf6130a6565b500490565b6001600160801b0391821691908116908282029081169081811461309f5761309f612877565b60006001600160801b03821691506001600160801b0383166130c0565b608081016131258288611ec1565b8181036020830152613138818688612929565b90506131476040830185612118565b8181036060830152613159818461214b565b979650505050505050565b634e487b7160e01b600052603160045260246000fd5b6015815260006020820174496e76616c69642061646170746572506172616d7360581b815291506128ce565b60208082528101610c158161317a565b6012815260006020820171556e737570706f727465642074785479706560701b815291506128ce565b60208082528101610c15816131b6565b600b81526000602082016a47617320746f6f206c6f7760a81b815291506128ce565b60208082528101610c15816131ef56fea2646970667358221220fca9b00680b4a1836f02c8657e12b713df7e33656c6c5bb08c5e30c86f054b8364736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x21A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9924D33B GT PUSH2 0x123 JUMPI DUP1 PUSH4 0xCA066B35 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xE97A448A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xE97A448A EQ PUSH2 0x796 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0x7B2 JUMPI DUP1 PUSH4 0xF9CD3CEB EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xFBBA623B EQ PUSH2 0x7E8 JUMPI DUP1 PUSH4 0xFDC07C70 EQ PUSH2 0x808 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA066B35 EQ PUSH2 0x716 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0x737 JUMPI DUP1 PUSH4 0xD23104F1 EQ PUSH2 0x758 JUMPI DUP1 PUSH4 0xDA1A7C9A EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xDB14F305 EQ PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB6D9EF60 GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0xB6D9EF60 EQ PUSH2 0x644 JUMPI DUP1 PUSH4 0xC08F15A1 EQ PUSH2 0x664 JUMPI DUP1 PUSH4 0xC2FA4813 EQ PUSH2 0x6AD JUMPI DUP1 PUSH4 0xC5803100 EQ PUSH2 0x6CD JUMPI DUP1 PUSH4 0xC81B383A EQ PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9924D33B EQ PUSH2 0x591 JUMPI DUP1 PUSH4 0x9C729DA1 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0xAAFF5F16 EQ PUSH2 0x5E3 JUMPI DUP1 PUSH4 0xB2086499 EQ PUSH2 0x603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 GT PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x71BA2FD6 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0x71BA2FD6 EQ PUSH2 0x432 JUMPI DUP1 PUSH4 0x76A386DC EQ PUSH2 0x45F JUMPI DUP1 PUSH4 0x7A145748 EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x7F6DF8E6 EQ PUSH2 0x507 JUMPI DUP1 PUSH4 0x907C5E7E EQ PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3408E470 EQ PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x3E0DD83E EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0x40A7BB10 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x1ED JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x12A9EE6B EQ PUSH2 0x2CC JUMPI DUP1 PUSH4 0x240DE277 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x272BD384 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x2C365E25 EQ PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D3277F EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x96568F6 EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0xEAF6EA6 EQ PUSH2 0x29F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x5 SLOAD PUSH2 0x23A SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP3 SWAP2 SWAP1 PUSH2 0x1E23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x1E5A JUMP JUMPDEST POP JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28C CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0x828 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EC PUSH2 0x2E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A5 JUMP JUMPDEST PUSH2 0x86E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x217F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x316 CALLDATASIZE PUSH1 0x4 PUSH2 0x21B5 JUMP JUMPDEST PUSH1 0x4 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0x96B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x35E CALLDATASIZE PUSH1 0x4 PUSH2 0x2237 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x80 SHL SWAP5 DUP7 AND DUP6 MUL OR PUSH1 0x2 SSTORE PUSH1 0x3 DUP1 SLOAD SWAP4 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 DUP3 AND SWAP1 SWAP4 MUL SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB AND PUSH1 0x1 PUSH1 0xC0 SHL SWAP2 SWAP1 SWAP3 AND MUL OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0xFFFF AND PUSH2 0x292 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x2BF SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23A PUSH2 0x40D CALLDATASIZE PUSH1 0x4 PUSH2 0x22C2 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x42D CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0xAF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH2 0x44D CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST POP ADDRESS SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2361 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4CB PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x236F JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND SWAP2 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x4F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x23E4 JUMP JUMPDEST PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2417 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH2 0x522 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x2425 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x540 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH2 0x580 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH1 0x1 PUSH1 0x80 SHL SWAP3 DUP4 SWAP1 DIV DUP3 AND SWAP3 SWAP2 DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2442 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x5AC CALLDATASIZE PUSH1 0x4 PUSH2 0x236F JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP3 SWAP1 SWAP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x5FE CALLDATASIZE PUSH1 0x4 PUSH2 0x248E JUMP JUMPDEST PUSH2 0xC57 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x61E CALLDATASIZE PUSH1 0x4 PUSH2 0x23E4 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x65F CALLDATASIZE PUSH1 0x4 PUSH2 0x251C JUMP JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x67F CALLDATASIZE PUSH1 0x4 PUSH2 0x253D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x6C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x255F JUMP JUMPDEST PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x26F PUSH2 0x6DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2627 JUMP JUMPDEST PUSH2 0x14D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x452 PUSH2 0x6FB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x752 CALLDATASIZE PUSH1 0x4 PUSH2 0x2705 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND PUSH3 0x10000 OR SWAP1 SSTORE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x787 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x292 SWAP1 PUSH2 0xFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BF PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x2 EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x336 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2783 JUMP JUMPDEST PUSH2 0x191E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x27DB JUMP JUMPDEST PUSH2 0x1936 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FA PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F2A JUMP JUMPDEST PUSH2 0x1946 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD DUP3 SWAP2 SWAP1 PUSH2 0x84E SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD DUP4 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP4 ADD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP2 MSTORE DUP1 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP7 POP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP5 POP SWAP2 SWAP3 POP PUSH2 0x8E8 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x914 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x961 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x936 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x961 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x944 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH2 0x978 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x9A4 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9F1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9C6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9F1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9D4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0xA96 JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0xA13 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xA3F SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA8C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA61 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA8C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA6F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0xA98 JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAAB DUP10 PUSH1 0x1 DUP11 DUP11 MLOAD DUP7 PUSH2 0x198B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xABC DUP8 DUP4 PUSH1 0x6 SLOAD PUSH2 0x1AE5 JUMP JUMPDEST SWAP1 POP DUP7 PUSH2 0xACC JUMPI DUP1 SWAP5 POP DUP5 PUSH2 0xAD1 JUMP JUMPDEST DUP1 SWAP4 POP DUP4 JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0xADF DUP4 DUP8 PUSH2 0x288D JUMP JUMPDEST PUSH2 0xAE9 SWAP2 SWAP1 PUSH2 0x288D JUMP JUMPDEST SWAP5 POP POP POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xB1B SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xB57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x28D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2919 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x23D2684F396E92A6E2FF2D16F98E6FEA00D50CB27A64B531BC0748F730211F98 SWAP1 PUSH2 0xBD0 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH2 0x294C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x752 DUP5 DUP5 DUP5 PUSH2 0x1B22 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xC3E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xC7A SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD SLOAD SWAP1 SWAP2 POP PUSH2 0xCAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x28D5 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP3 EQ DUP1 ISZERO PUSH2 0xCE0 JUMPI POP DUP1 PUSH1 0x1 ADD SLOAD DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD6 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xCFC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x29A1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP3 SSTORE PUSH1 0x0 PUSH1 0x1 DUP4 ADD DUP2 SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 SWAP4 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 PUSH2 0xD46 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD DUP2 KECCAK256 SLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH3 0x1D3567 SWAP1 PUSH2 0xD92 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDC0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x612434F39581C8E7D99746C9C20C6EB0CE8C0EB99F007C5719D620841370957D DUP9 DUP9 DUP9 DUP5 DUP7 PUSH1 0x40 MLOAD PUSH2 0xDFB SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A00 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0xE37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2A81 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x200 OR SWAP1 SSTORE PUSH2 0xFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xE69 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP11 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0xEA4 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xECA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2A91 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2AEF JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD ISZERO PUSH2 0x11E3 JUMPI PUSH2 0xFFFF DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0xF4A SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP2 MSTORE POP DUP3 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x1174 JUMPI DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x102B SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP POP PUSH1 0x0 JUMPDEST DUP3 SLOAD PUSH2 0x103F SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x10F9 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1058 JUMPI PUSH2 0x1058 PUSH2 0x2C79 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD DUP4 DUP3 PUSH1 0x1 PUSH2 0x1074 SWAP2 SWAP1 PUSH2 0x288D JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1084 JUMPI PUSH2 0x1084 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 DUP3 SLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP3 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND OR PUSH1 0x1 PUSH1 0xA0 SHL SWAP3 DUP4 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD SWAP1 PUSH2 0x10EE SWAP1 DUP5 ADD DUP3 PUSH2 0x2C9A JUMP JUMPDEST POP POP POP PUSH1 0x1 ADD PUSH2 0x1031 JUMP JUMPDEST POP DUP1 DUP3 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x110E JUMPI PUSH2 0x110E PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x2 SWAP1 SWAP3 MUL ADD DUP1 SLOAD SWAP3 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0x116B SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP SWAP1 POP POP PUSH2 0x11DC JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP5 MLOAD PUSH1 0x2 SWAP1 SWAP5 MUL ADD DUP1 SLOAD SWAP2 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR OR DUP3 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP4 SWAP3 SWAP2 DUP3 ADD SWAP1 PUSH2 0x11D8 SWAP1 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP POP JUMPDEST POP POP PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1311 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1230 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x125F SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD DUP7 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR DUP2 SSTORE SWAP4 DUP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 SWAP1 SWAP4 SSTORE SWAP2 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP2 PUSH2 0x12F8 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP13 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE PUSH2 0x14B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x1D3567 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH3 0x1D3567 SWAP1 DUP7 SWAP1 PUSH2 0x1347 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x29B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL SWAP4 POP POP POP POP DUP1 ISZERO PUSH2 0x1373 JUMPI POP PUSH1 0x1 JUMPDEST PUSH2 0x14B6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x13A6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP6 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x13E3 SWAP3 SWAP2 SWAP1 PUSH2 0x2828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 SWAP1 SWAP2 MSTORE PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE DUP2 SWAP1 KECCAK256 SWAP1 MLOAD PUSH2 0x1412 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 DUP5 MLOAD DUP2 SLOAD SWAP3 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND OR SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP3 ADD MLOAD PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xF9E4D95B62F08222D612B5AB92039CD8FBBBEA550A95E8DF9F927436BBDF5DB SWAP1 PUSH2 0x14A0 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP11 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 DUP1 SLOAD PUSH3 0xFF0000 NOT AND SWAP1 SSTORE JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ PUSH2 0x14F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2E13 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR SWAP1 SSTORE DUP6 MLOAD PUSH1 0x28 EQ PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2E6C JUMP JUMPDEST PUSH1 0x14 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x1560 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2ED6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 MLOAD GT PUSH2 0x15FA JUMPI PUSH1 0x7 DUP1 SLOAD PUSH2 0x1577 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x15A3 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x15F0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15C5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x15F0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x15D3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x15FC JUMP JUMPDEST DUP4 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x164D DUP12 CALLER DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND ISZERO ISZERO DUP7 PUSH2 0x9F9 JUMP JUMPDEST POP SWAP1 POP DUP1 CALLVALUE LT ISZERO PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2F2C JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP1 PUSH2 0x16A4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2A91 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND MUL OR SWAP1 SSTORE SWAP1 POP PUSH1 0x0 DUP3 CALLVALUE PUSH2 0x16D7 SWAP2 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x175D JUMPI PUSH1 0x0 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x16F8 SWAP1 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1735 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x173A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x175B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x2F7B JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x176B DUP8 PUSH2 0x1D19 JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP POP DUP2 ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1792 SWAP1 PUSH2 0x2F3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x17CF JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x17D4 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1814 JUMPI PUSH1 0x40 MLOAD DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x2C7A964CA3DE5EC1D42D9822F9BBD0EB142A59CC9F855E9D93813B773192C7A3 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP JUMPDEST PUSH1 0x0 CALLER DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x182B SWAP3 SWAP2 SWAP1 PUSH2 0x2FB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP16 DUP16 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC2FA4813 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP5 DUP15 DUP12 DUP11 DUP8 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18CB SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FD9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x1942 DUP3 DUP3 PUSH2 0x2B9F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1969 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x199A DUP6 PUSH2 0x1D19 JUMP JUMPDEST POP SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x19E7 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP3 GT ISZERO PUSH2 0x19DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x3077 JUMP JUMPDEST PUSH2 0x19E4 DUP3 DUP3 PUSH2 0x288D JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1A08 SWAP1 DUP6 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x288D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x1A25 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x3087 JUMP JUMPDEST SWAP1 POP PUSH2 0x1A31 DUP2 DUP4 PUSH2 0x288D JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 SWAP3 POP PUSH1 0x0 SWAP1 PUSH5 0x2540BE400 SWAP1 PUSH2 0x1A54 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND DUP6 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1A5E SWAP2 SWAP1 PUSH2 0x30BC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH5 0x2540BE400 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP1 DUP3 AND SWAP3 PUSH2 0x1AA1 SWAP3 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP2 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP2 DIV AND PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x1AAB SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x1AB5 SWAP2 SWAP1 PUSH2 0x30FA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP1 POP PUSH2 0x1ACA DUP2 DUP12 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1AD4 SWAP1 DUP4 PUSH2 0x288D JUMP JUMPDEST SWAP14 SWAP13 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x1AF6 JUMPI POP PUSH1 0x4 SLOAD PUSH2 0x867 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x2710 SWAP1 PUSH2 0x1B07 DUP5 DUP7 PUSH2 0x288D JUMP JUMPDEST PUSH2 0x1B11 SWAP2 SWAP1 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x1B1B SWAP2 SWAP1 PUSH2 0x30BC JUMP JUMPDEST SWAP1 POP PUSH2 0x867 JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1B45 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x2828 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x752 JUMPI DUP1 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH2 0x1B70 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C66 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1B80 JUMPI PUSH2 0x1B80 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x2 SWAP1 SWAP4 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND SWAP4 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH2 0x1BD9 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C05 SWAP1 PUSH2 0x284B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1C52 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1C27 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1C52 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1C35 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x1D3567 DUP7 DUP7 DUP7 DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3117 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 DUP1 SLOAD DUP1 PUSH2 0x1CDE JUMPI PUSH2 0x1CDE PUSH2 0x3164 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x2 PUSH1 0x0 NOT SWAP1 SWAP4 ADD SWAP3 DUP4 MUL ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 SSTORE SWAP1 PUSH2 0x1D0F PUSH1 0x1 DUP4 ADD DUP3 PUSH2 0x1DCD JUMP JUMPDEST POP POP SWAP1 SSTORE POP PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 MLOAD PUSH1 0x22 EQ DUP1 PUSH2 0x1D30 JUMPI POP PUSH1 0x42 DUP6 MLOAD GT JUMPDEST PUSH2 0x1D4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x31A6 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD MLOAD SWAP4 POP PUSH1 0x22 DUP6 ADD MLOAD SWAP3 POP DUP4 PUSH2 0xFFFF AND PUSH1 0x1 EQ DUP1 PUSH2 0x1D71 JUMPI POP DUP4 PUSH2 0xFFFF AND PUSH1 0x2 EQ JUMPDEST PUSH2 0x1D8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x31DF JUMP JUMPDEST PUSH1 0x0 DUP4 GT PUSH2 0x1DAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4E SWAP1 PUSH2 0x3211 JUMP JUMPDEST DUP4 PUSH2 0xFFFF AND PUSH1 0x2 SUB PUSH2 0x1DC6 JUMPI POP POP PUSH1 0x42 DUP4 ADD MLOAD PUSH1 0x56 DUP5 ADD MLOAD JUMPDEST SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x1DD9 SWAP1 PUSH2 0x284B JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1DE9 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1E17 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1E03 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1E31 DUP3 DUP6 PUSH2 0x1E1B JUMP JUMPDEST PUSH2 0x867 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x1E3E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x1E4F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC15 JUMP JUMPDEST PUSH2 0x1E44 DUP2 PUSH2 0x1E7B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EB5 JUMPI PUSH2 0x1EB5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x1E95 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1EC1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1EEE JUMPI PUSH2 0x1EEE PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F08 JUMPI PUSH2 0x1F08 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1F23 JUMPI PUSH2 0x1F23 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1F42 JUMPI PUSH2 0x1F42 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F4E DUP7 DUP7 PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F6D JUMPI PUSH2 0x1F6D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F79 DUP7 DUP3 DUP8 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1F85 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x1FD6 JUMPI PUSH2 0x1FD6 PUSH2 0x1F9B JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FE8 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x1FF4 DUP3 DUP3 PUSH2 0x1FB1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2012 JUMPI PUSH2 0x2012 PUSH2 0x1F9B JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2042 PUSH2 0x203D DUP5 PUSH2 0x1FF9 JUMP JUMPDEST PUSH2 0x1FDD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x205D JUMPI PUSH2 0x205D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2068 DUP5 DUP3 DUP6 PUSH2 0x2023 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2084 JUMPI PUSH2 0x2084 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x192E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x202F JUMP JUMPDEST DUP1 PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x2094 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x20BD JUMPI PUSH2 0x20BD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x20C9 DUP7 DUP7 PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x20E8 JUMPI PUSH2 0x20E8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x20F4 DUP7 DUP3 DUP8 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2105 DUP7 DUP3 DUP8 ADD PUSH2 0x209A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1E1D DUP2 PUSH2 0x1E7B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2142 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x212A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2155 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x216C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x218D DUP3 DUP7 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x219A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x21AC DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21CB JUMPI PUSH2 0x21CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21D7 DUP6 DUP6 PUSH2 0x209A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x209A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x867 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x2203 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x221D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2252 JUMPI PUSH2 0x2252 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x225E DUP9 DUP9 PUSH2 0x2212 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x226F DUP9 DUP3 DUP10 ADD PUSH2 0x2212 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2280 DUP9 DUP3 DUP10 ADD PUSH2 0x2212 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2291 DUP9 DUP3 DUP10 ADD PUSH2 0x222C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x22A2 DUP9 DUP3 DUP10 ADD PUSH2 0x222C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x1E44 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC15 DUP2 PUSH2 0x22AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x22DD JUMPI PUSH2 0x22DD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22E9 DUP9 DUP9 PUSH2 0x1E4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x22FA DUP9 DUP3 DUP10 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2319 JUMPI PUSH2 0x2319 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2325 DUP9 DUP3 DUP10 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2336 DUP9 DUP3 DUP10 ADD PUSH2 0x22B7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2355 JUMPI PUSH2 0x2355 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A2 DUP9 DUP3 DUP10 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x210F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2385 JUMPI PUSH2 0x2385 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2391 DUP6 DUP6 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x23B0 JUMPI PUSH2 0x23B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x23CA DUP3 DUP7 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x23D7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x192E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23FA JUMPI PUSH2 0x23FA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2406 DUP6 DUP6 PUSH2 0x1E4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E8 DUP6 DUP3 DUP7 ADD PUSH2 0x1E95 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x2118 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC15 DUP3 DUP5 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x2450 DUP3 DUP9 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x245D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x246A PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x2433 JUMP JUMPDEST PUSH2 0x2477 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x2484 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2118 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x24A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B5 DUP9 DUP9 PUSH2 0x1E4F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x24D4 JUMPI PUSH2 0x24D4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E0 DUP9 DUP3 DUP10 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2501 JUMPI PUSH2 0x2501 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x250D DUP9 DUP3 DUP10 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2531 JUMPI PUSH2 0x2531 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP5 DUP5 PUSH2 0x209A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2553 JUMPI PUSH2 0x2553 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2406 DUP6 DUP6 PUSH2 0x1E95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x257E JUMPI PUSH2 0x257E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x258A DUP12 DUP12 PUSH2 0x1E4F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x25A9 JUMPI PUSH2 0x25A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B5 DUP12 DUP3 DUP13 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP8 POP SWAP8 POP POP PUSH1 0x40 PUSH2 0x25C8 DUP12 DUP3 DUP13 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x25D9 DUP12 DUP3 DUP13 ADD PUSH2 0x222C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x25EA DUP12 DUP3 DUP13 ADD PUSH2 0x209A JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2609 JUMPI PUSH2 0x2609 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2615 DUP12 DUP3 DUP13 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2645 JUMPI PUSH2 0x2645 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2651 DUP11 DUP11 PUSH2 0x1E4F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2670 JUMPI PUSH2 0x2670 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x267C DUP11 DUP3 DUP12 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26A7 DUP11 DUP3 DUP12 ADD PUSH2 0x1ED9 JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x60 PUSH2 0x26BA DUP11 DUP3 DUP12 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x26CB DUP11 DUP3 DUP12 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26EA JUMPI PUSH2 0x26EA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26F6 DUP11 DUP3 DUP12 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x271E JUMPI PUSH2 0x271E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x272A DUP8 DUP8 PUSH2 0x1E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x273B DUP8 DUP3 DUP9 ADD PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x274C DUP8 DUP3 DUP9 ADD PUSH2 0x209A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x276B JUMPI PUSH2 0x276B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2777 DUP8 DUP3 DUP9 ADD PUSH2 0x2070 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x279C JUMPI PUSH2 0x279C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x27A8 DUP8 DUP8 PUSH2 0x1E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27B9 DUP8 DUP3 DUP9 ADD PUSH2 0x1E4F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x27CA DUP8 DUP3 DUP9 ADD PUSH2 0x1E95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2777 DUP8 DUP3 DUP9 ADD PUSH2 0x209A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27F0 JUMPI PUSH2 0x27F0 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2809 JUMPI PUSH2 0x2809 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x192E DUP5 DUP3 DUP6 ADD PUSH2 0x2070 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2822 DUP4 DUP6 DUP5 PUSH2 0x2023 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x192E DUP3 DUP5 DUP7 PUSH2 0x2815 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x285F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2871 JUMPI PUSH2 0x2871 PUSH2 0x2835 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0x2877 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073746F726564207061796C6F6164 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x28A0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C69642063616C6C6572000000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x28E5 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x293F DUP4 DUP6 DUP5 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x2175 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x295A DUP3 DUP7 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x21AC DUP2 DUP5 DUP7 PUSH2 0x2929 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E76616C6964207061796C6F61640000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x296D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x29BF DUP3 DUP10 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x29D2 DUP2 DUP8 DUP10 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x29E1 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x29F4 DUP2 DUP5 DUP7 PUSH2 0x2929 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2A0E DUP3 DUP9 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2A21 DUP2 DUP7 DUP9 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x2A30 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x2484 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x210F JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2072656365697665207265656E7472 DUP2 MSTORE PUSH4 0x616E6379 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFE NOT DUP3 ADD PUSH2 0x2AB4 JUMPI PUSH2 0x2AB4 PUSH2 0x2877 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A2077726F6E67206E6F6E6365000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 PUSH2 0x2B0B DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2B17 DUP4 PUSH2 0x2AFF JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B3F DUP2 DUP5 DUP5 PUSH2 0x2B0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1942 JUMPI PUSH2 0x2B57 PUSH1 0x0 DUP3 PUSH2 0x2B32 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2B44 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2B3F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2B86 JUMPI POP DUP1 JUMPDEST PUSH2 0x2B98 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2B44 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BB8 JUMPI PUSH2 0x2BB8 PUSH2 0x1F9B JUMP JUMPDEST PUSH2 0x2BC2 DUP3 SLOAD PUSH2 0x284B JUMP JUMPDEST PUSH2 0x2BCD DUP3 DUP3 DUP6 PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2C02 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2BE9 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR JUMPDEST DUP7 SSTORE POP PUSH2 0x2C5E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2C32 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2C12 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2C51 JUMPI DUP9 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP11 AND MUL SHR NOT DUP2 AND JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xC15 JUMPI PUSH2 0xC15 PUSH2 0x2877 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 SLOAD PUSH2 0xC15 DUP2 PUSH2 0x284B JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x2CA5 JUMPI POP POP JUMP JUMPDEST PUSH2 0x2CAE DUP3 PUSH2 0x2C8F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CC5 JUMPI PUSH2 0x2CC5 PUSH2 0x1F9B JUMP JUMPDEST PUSH2 0x2CCF DUP3 SLOAD PUSH2 0x284B JUMP JUMPDEST PUSH2 0x2CDA DUP3 DUP3 DUP6 PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2BE9 JUMPI POP DUP2 DUP7 ADD SLOAD PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR PUSH2 0x2BFA JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x20 DUP1 DUP8 KECCAK256 DUP7 DUP9 MSTORE SWAP1 DUP8 KECCAK256 SWAP1 SWAP7 PUSH1 0x1F NOT DUP7 AND SWAP2 SWAP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2D44 JUMPI DUP9 DUP6 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2D24 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2C51 JUMPI DUP9 DUP6 ADD SLOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP11 AND MUL SHR NOT DUP2 AND PUSH2 0x2C4D JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2D71 DUP3 DUP12 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2D84 DUP2 DUP10 DUP12 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D93 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x2DA0 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2DB3 DUP2 DUP6 DUP8 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x2DC7 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F2073656E64207265656E7472616E63 DUP2 MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2DD5 JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A20696E636F72726563742072656D6F746520 DUP2 MSTORE PUSH12 0x616464726573732073697A65 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2E23 JUMP JUMPDEST PUSH1 0x37 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A2064657374696E6174696F6E204C61796572 DUP2 MSTORE PUSH32 0x5A65726F20456E64706F696E74206E6F7420666F756E64000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206E6F7420656E6F756768206E6174697665 DUP2 MSTORE PUSH9 0x20666F722066656573 PUSH1 0xB8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2EE6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH2 0x2B0B JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206661696C656420746F20726566756E6400 DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC15 DUP3 PUSH2 0x2F8B JUMP JUMPDEST PUSH2 0x1E1D PUSH2 0x2FAE DUP3 PUSH2 0x1E7B JUMP JUMPDEST PUSH2 0x2F97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBF DUP3 DUP6 PUSH2 0x2FA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x2FCF DUP3 DUP5 PUSH2 0x2FA2 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x2FE7 DUP3 DUP10 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2FF9 DUP2 DUP9 PUSH2 0x214B JUMP JUMPDEST SWAP1 POP PUSH2 0x3008 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x210F JUMP JUMPDEST PUSH2 0x3015 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2118 JUMP JUMPDEST PUSH2 0x3022 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x1E1B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x29F4 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C617965725A65726F4D6F636B3A206473744E6174697665416D7420746F6F20 DUP2 MSTORE PUSH6 0x3630B933B29 PUSH1 0xD5 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x2A7A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x3034 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x2877 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 JUMPDEST SWAP3 POP DUP3 PUSH2 0x30CF JUMPI PUSH2 0x30CF PUSH2 0x30A6 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 MUL SWAP1 DUP2 AND SWAP1 DUP2 DUP2 EQ PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x2877 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND PUSH2 0x30C0 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3125 DUP3 DUP9 PUSH2 0x1EC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3138 DUP2 DUP7 DUP9 PUSH2 0x2929 JUMP JUMPDEST SWAP1 POP PUSH2 0x3147 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2118 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3159 DUP2 DUP5 PUSH2 0x214B JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x496E76616C69642061646170746572506172616D73 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x317A JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH18 0x556E737570706F7274656420747854797065 PUSH1 0x70 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x31B6 JUMP JUMPDEST PUSH1 0xB DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH11 0x47617320746F6F206C6F77 PUSH1 0xA8 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC15 DUP2 PUSH2 0x31EF JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC 0xA9 0xB0 MOD DUP1 0xB4 LOG1 DUP4 PUSH16 0x2C8657E12B713DF7E33656C6C5BB08C MCOPY ADDRESS 0xC8 PUSH16 0x54B8364736F6C634300081900330000 ","sourceMap":"812:15736:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1139:42;;;;;;;;;;-1:-1:-1;1139:42:8;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11848:78;;;;;;;;;;-1:-1:-1;11848:78:8;;;;;:::i;:::-;;;;;11394:133;;;;;;;;;;-1:-1:-1;11394:133:8;;;;;:::i;:::-;-1:-1:-1;11519:1:8;;11394:133;;;;;;;;:::i;10434:228::-;;;;;;;;;;-1:-1:-1;10434:228:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1841:73::-;;;;;;;;;;-1:-1:-1;1841:73:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13817:162::-;;;;;;;;;;-1:-1:-1;13817:162:8;;;;;:::i;:::-;13890:17;:34;;;;13934:26;:38;13817:162;1214:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13333:478::-;;;;;;;;;;-1:-1:-1;13333:478:8;;;;;:::i;:::-;-1:-1:-1;;;;;13537:47:8;;;-1:-1:-1;;;13594:53:8;;;;;;13537:16;13594:53;13657:32;:51;;;;;;-1:-1:-1;;;;;;13718:35:8;;;;;;;-1:-1:-1;;;;;13718:35:8;;;;;;;;;;-1:-1:-1;;;;;13763:41:8;-1:-1:-1;;;13763:41:8;;;;;;;;13333:478;9502:97;;;;;;;;;;-1:-1:-1;9581:11:8;;;;9502:97;;1042:26;;;;;;;;;;-1:-1:-1;1042:26:8;;;;;;;;;;;8748:748;;;;;;;;;;-1:-1:-1;8748:748:8;;;;;:::i;:::-;;:::i;12019:720::-;;;;;;;;;;-1:-1:-1;12019:720:8;;;;;:::i;:::-;;:::i;10792:121::-;;;;;;;;;;-1:-1:-1;10792:121:8;;;;;:::i;:::-;-1:-1:-1;10901:4:8;;10792:121;;;;;;;;:::i;1723:71::-;;;;;;;;;;-1:-1:-1;1723:71:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1723:71:8;;;-1:-1:-1;;;1723:71:8;;-1:-1:-1;;;;;1723:71:8;;;;;;;;;;;;;:::i;8578:164::-;;;;;;;;;;-1:-1:-1;8578:164:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12867:173::-;;;;;;;;;;-1:-1:-1;12867:173:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1093:40::-;;;;;;;;;;-1:-1:-1;1093:40:8;;;;;;-1:-1:-1;;;;;1093:40:8;;;;-1:-1:-1;;;1093:40:8;;;;;;;;;;;-1:-1:-1;;;;;1093:40:8;;;;;;-1:-1:-1;;;1093:40:8;;;;;;;;;;;;;;;;:::i;1340:63::-;;;;;;;;;;-1:-1:-1;1340:63:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1340:63:8;;;9605:823;;;;;;;;;;-1:-1:-1;9605:823:8;;;;;:::i;:::-;;:::i;1484:66::-;;;;;;;;;;-1:-1:-1;1484:66:8;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1484:66:8;;;13985:87;;;;;;;;;;-1:-1:-1;13985:87:8;;;;;:::i;:::-;14043:9;:22;13985:87;13189:138;;;;;;;;;;-1:-1:-1;13189:138:8;;;;;:::i;:::-;-1:-1:-1;;;;;13277:26:8;;;:16;:26;;;;;;;;;;:43;;-1:-1:-1;;;;;;13277:43:8;;;;;;;;13189:138;6080:2329;;;;;;;;;;-1:-1:-1;6080:2329:8;;;;;:::i;:::-;;:::i;4008:2066::-;;;;;;:::i;:::-;;:::i;953:51::-;;;;;;;;;;-1:-1:-1;953:51:8;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;953:51:8;;;11046:126;;;;;;;;;;;;11131:22;;;;;:34;:22;945:1;11131:34;;11046:126;11675:167;;;;;;;;;;-1:-1:-1;11675:167:8;;;;;:::i;:::-;12107:632;12019:720;;;;13112:71;;;;;;;;;;;;13172:4;13155:21;;-1:-1:-1;;13155:21:8;;;;;13112:71;1011:25;;;;;;;;;;-1:-1:-1;1011:25:8;;;;;;;;10919:121;;;;;;;;;;;;11002:19;;:31;:19;945:1;11002:31;;10919:121;11178:210;;;;;;;;;;-1:-1:-1;11178:210:8;;;;;:::i;:::-;;:::i;1187:21::-;;;;;;;;;;;;;;;;14078:125;;;;;;;;;;-1:-1:-1;14078:125:8;;;;;:::i;:::-;;:::i;8415:157::-;;;;;;;;;;-1:-1:-1;8415:157:8;;;;;:::i;:::-;;:::i;10434:228::-;10577:26;;;10534:4;10577:26;;;:13;:26;;;;;;:33;;10534:4;;10577:26;:33;;10604:5;;;;10577:33;:::i;:::-;;;;;;;;;;;;;;10627:14;;;:28;;;-1:-1:-1;;10434:228:8;;;;;;:::o;1841:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1841:73:8;;;-1:-1:-1;;;;1841:73:8;;;-1:-1:-1;;;;;1841:73:8;;-1:-1:-1;1841:73:8;;-1:-1:-1;1841:73:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1214:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8748:748::-;8960:14;8976:11;8999:26;9052:1;9028:14;:21;:25;:65;;9073:20;9028:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9056:14;9028:65;8999:94;;9127:15;9145:80;9160:11;9173:1;9176:16;9194:8;:15;9211:13;9145:14;:80::i;:::-;9127:98;;9261:16;9280:50;9297:9;9308:10;9320:9;;9280:16;:50::i;:::-;9261:69;;9340:9;:58;;9387:11;9375:23;;;9340:58;;;9361:11;9352:20;;;9340:58;-1:-1:-1;9480:9:8;;9455:22;9467:10;9455:9;:22;:::i;:::-;:34;;;;:::i;:::-;9443:46;;8989:507;;;8748:748;;;;;;;;:::o;12019:720::-;12144:26;;;12117:24;12144:26;;;:13;:26;;;;;;:33;;;;12171:5;;;;12144:33;:::i;:::-;;;;;;;;;;;;;;12273:14;;;;12144:33;;-1:-1:-1;12265:73:8;;;;-1:-1:-1;;;12265:73:8;;;;;;;:::i;:::-;;;;;;;;;12356:13;;-1:-1:-1;;;12356:13:8;;-1:-1:-1;;;;;12356:13:8;12373:10;12356:27;12348:69;;;;-1:-1:-1;;;12348:69:8;;;;;;;:::i;:::-;12463:20;;-1:-1:-1;;;;;;12493:26:8;;;12482:1;12463:20;12529:14;;:27;12572:40;;;;;;12593:11;;12606:5;;;;12572:40;:::i;:::-;;;;;;;;12700:32;12713:11;12726:5;;12700:12;:32::i;8578:164::-;8699:23;;;8674:6;8699:23;;;:13;:23;;;;;;;;-1:-1:-1;;;;;8699:36:8;;;;;;;;;;-1:-1:-1;;;;;8699:36:8;8578:164;;;;;:::o;12867:173::-;12987:26;;;12964:4;12987:26;;;:13;:26;;;;;;:39;;;;13014:11;;;;12987:39;:::i;:::-;;;;;;;;;;;;;;:46;;-1:-1:-1;12867:173:8;;;;;:::o;9605:823::-;9779:26;;;9752:24;9779:26;;;:13;:26;;;;;;:33;;;;9806:5;;;;9779:33;:::i;:::-;;;;;;;;;;;;;;9830:14;;;;9779:33;;-1:-1:-1;9822:73:8;;;;-1:-1:-1;;;9822:73:8;;;;;;;:::i;:::-;9932:16;;-1:-1:-1;;;;;9932:16:8;9913:35;;:76;;;;;9975:2;:14;;;9962:8;;9952:19;;;;;;;:::i;:::-;;;;;;;;:37;9913:76;9905:119;;;;-1:-1:-1;;;9905:119:8;;;;;;;:::i;:::-;10056:13;;-1:-1:-1;;;;;;10144:26:8;;;;-1:-1:-1;;10180:14:8;;:27;;;10233:25;;;;;10056:13;10233:25;;;;;;:32;;-1:-1:-1;;;10056:13:8;;;-1:-1:-1;;;;;10056:13:8;;10233:32;;10259:5;;;;10233:32;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;10276:77:8;;-1:-1:-1;;;;;10233:32:8;;-1:-1:-1;;;;;;10276:40:8;;;;;:77;;10317:11;;10330:5;;;;10233:32;;10344:8;;;;10276:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:53;10383:11;10396:5;;10403;10410:10;10368:53;;;;;;;;;;:::i;:::-;;;;;;;;9742:686;;;9605:823;;;;;:::o;6080:2329::-;2818:22;;;;;:38;:22;903:1;2818:38;2810:87;;;;-1:-1:-1;;;2810:87:8;;;;;;;:::i;:::-;2907:22;:33;;-1:-1:-1;;2907:33:8;;;;;6352:26:::1;::::0;::::1;-1:-1:-1::0;6352:26:8;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6379:5;;;;6352:33:::1;:::i;:::-;;;;;;;;;;;;;6325:60;;6480:12;:25;6493:11;6480:25;;;;;;;;;;;;;;;6506:5;;6480:32;;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;6478:34;;6480:32:::1;::::0;6478:34:::1;::::0;-1:-1:-1;;;;;6478:34:8::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;6478:34:8::1;;;;;-1:-1:-1::0;;;;;6478:34:8::1;;;;;-1:-1:-1::0;;;;;6468:44:8::1;:6;-1:-1:-1::0;;;;;6468:44:8::1;;6460:83;;;;-1:-1:-1::0;;;6460:83:8::1;;;;;;;:::i;:::-;6681:14;::::0;::::1;::::0;:28;6677:1726:::1;;6756:26;::::0;::::1;6725:28;6756:26:::0;;;:13:::1;:26;::::0;;;;;:33;;::::1;::::0;6783:5;;;;6756:33:::1;:::i;:::-;;;;;;;;;;;;;6725:64;;6803:27;6833:44;;;;;;;;6847:11;-1:-1:-1::0;;;;;6833:44:8::1;;;;;6860:6;-1:-1:-1::0;;;;;6833:44:8::1;;;;;6868:8;;6833:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;6833:44:8;;-1:-1:-1;7083:11:8;;6803:74;;-1:-1:-1;7083:15:8;7079:436:::1;;7154:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7154:17:8;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7154:17:8::1;-1:-1:-1::0;;;7154:17:8::1;-1:-1:-1::0;;;;;;7154:17:8;;;-1:-1:-1;;;;;7154:17:8;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;7164:6;;7154:17;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;7249:6;7244:105;7265:11:::0;;:15:::1;::::0;7279:1:::1;::::0;7265:15:::1;:::i;:::-;7261:1;:19;7244:105;;;7323:4;7328:1;7323:7;;;;;;;;:::i;:::-;;;;;;;;;;;7309:4;7314:1;7318;7314:5;;;;:::i;:::-;7309:11;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21;;:11:::1;::::0;;::::1;;:21:::0;;-1:-1:-1;;;;;7309:21:8;;::::1;-1:-1:-1::0;;;;;;7309:21:8;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;7309:21:8;;;;-1:-1:-1;;;7309:21:8;;;::::1;-1:-1:-1::0;;;;;7309:21:8::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;7309:21:8;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;7282:3:8::1;;7244:105;;;;7438:6;7428:4;7433:1;7428:7;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;:16;;:7:::1;::::0;;::::1;;:16:::0;;;;::::1;::::0;-1:-1:-1;;;;;7428:16:8::1;-1:-1:-1::0;;;7428:16:8::1;-1:-1:-1::0;;;;;;7428:16:8;;;-1:-1:-1;;;;;7428:16:8;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;7079:436;;;7483:17:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7483:17:8;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;-1:-1:-1;;;;;7483:17:8::1;-1:-1:-1::0;;;7483:17:8::1;-1:-1:-1::0;;;;;;7483:17:8;;;-1:-1:-1;;;;;7483:17:8;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;7493:6;;7483:17;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;7079:436;6711:814;;6677:1726;;;7535:14;::::0;;;::::1;;;7531:872;;;7601:72;;;;;;;;7622:8;;:15;;-1:-1:-1::0;;;;;7601:72:8::1;;;;;7640:11;-1:-1:-1::0;;;;;7601:72:8::1;;;;;7663:8;;7653:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;7601:72;;;7565:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;7592:5;;;;7565:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;7565:108:8::1;-1:-1:-1::0;;;7565:108:8::1;-1:-1:-1::0;;;;;;7565:108:8;;;-1:-1:-1;;;;;7565:108:8;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;7757:9;;::::1;::::0;;7565:108:::1;7757:9:::0;;7692:75;;::::1;::::0;::::1;::::0;7706:11;;7719:5;;;;7726:11;;7739:6;;7747:8;;;;7565:33;7692:75:::1;:::i;:::-;;;;;;;;7855:14;:22:::0;;-1:-1:-1;;7855:22:8::1;::::0;;7531:872:::1;;;7912:95;::::0;-1:-1:-1;;;7912:95:8;;-1:-1:-1;;;;;7912:41:8;::::1;::::0;::::1;::::0;7959:9;;7912:95:::1;::::0;7970:11;;7983:5;;;;7990:6;;7998:8;;;;7912:95:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;7908:485;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:72;;;;;;;;8114:8;;:15;;-1:-1:-1::0;;;;;8093:72:8::1;;;;;8132:11;-1:-1:-1::0;;;;;8093:72:8::1;;;;;8155:8;;8145:19;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;8093:72;;;8057:26:::1;::::0;::::1;;::::0;;;:13:::1;:26;::::0;;;;:33;;::::1;::::0;8084:5;;;;8057:33:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;:108;;;;;;::::1;::::0;-1:-1:-1;;;;;8057:108:8::1;-1:-1:-1::0;;;8057:108:8::1;-1:-1:-1::0;;;;;;8057:108:8;;;-1:-1:-1;;;;;8057:108:8;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;8188:72:::1;::::0;::::1;::::0;8202:11;;8215:5;;;;8222:11;;8235:6;;8243:8;;;;8253:6;;8188:72:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;8356:14:8::1;:22:::0;;-1:-1:-1;;8356:22:8::1;::::0;;7908:485:::1;-1:-1:-1::0;;2961:22:8;:37;;-1:-1:-1;;2961:37:8;;;;;-1:-1:-1;;;;;;;6080:2329:8:o;4008:2066::-;2588:19;;:35;:19;903:1;2588:35;2580:81;;;;-1:-1:-1;;;2580:81:8;;;;;;;:::i;:::-;2671:19;:30;;-1:-1:-1;;2671:30:8;945:1;2671:30;;;4288:12;;4304:2:::1;4288:18;4280:75;;;;-1:-1:-1::0;;;4280:75:8::1;;;;;;;:::i;:::-;4469:2;4458:14:::0;::::1;4452:21:::0;-1:-1:-1;;;;;4514:25:8;;::::1;4393:15;4514:25:::0;;;::::1;::::0;;;;;;;::::1;::::0;4549:92:::1;;;;-1:-1:-1::0;;;4549:92:8::1;;;;;;;:::i;:::-;4684:26;4737:1:::0;4713:14:::1;:21;:25;:65;;4758:20;4713:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4741:14;4713:65;4684:94;;4789:14;4809:95;4822:8;4832:10;4844:8;;4809:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;4854:34:8;::::1;::::0;::::1;4890:13:::0;4809:12:::1;:95::i;:::-;4788:116;;;4935:9;4922;:22;;4914:76;;;;-1:-1:-1::0;;;4914:76:8::1;;;;;;;:::i;:::-;5018:23;::::0;::::1;5001:12;5018:23:::0;;;:13:::1;:23;::::0;;;;;;;5042:10:::1;5018:35:::0;;;;;;;5016:37;;5001:12;;5016:37:::1;::::0;-1:-1:-1;;;;;5016:37:8::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;5016:37:8::1;;;;;-1:-1:-1::0;;;;;5016:37:8::1;;;;;5001:52;;5104:11;5130:9;5118;:21;;;;:::i;:::-;5104:35:::0;-1:-1:-1;5153:10:8;;5149:163:::1;;5180:12;5198:14;-1:-1:-1::0;;;;;5198:19:8::1;5225:6;5198:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5179:57;;;5258:7;5250:51;;;;-1:-1:-1::0;;;5250:51:8::1;;;;;;;:::i;:::-;5165:147;5149:163;5469:13;5484:17:::0;5503:29:::1;5536:40;5562:13;5536:25;:40::i;:::-;5466:110:::0;;-1:-1:-1;5466:110:8;-1:-1:-1;5466:110:8;-1:-1:-1;;5590:16:8;;5586:222:::1;;5623:12;5641:13;-1:-1:-1::0;;;;;5641:18:8::1;5667:12;5641:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:62;;;5703:7;5698:100;;5735:48;::::0;5770:12;;-1:-1:-1;;;;;5735:48:8;::::1;::::0;::::1;::::0;;;::::1;5698:100;5608:200;5586:222;5818:25;5863:10;5875:7;5846:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5818:65;;5923:20;5946:8;;5923:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:10;-1:-1:-1::0;;;;;5964:41:8::1;;6006:11;;;;;;;;;;;6019:12;6033:7;6042:5;6049:8;6059:7;5964:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2722:19:8;:34;;-1:-1:-1;;2722:34:8;903:1;2722:34;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;4008:2066:8:o;11178:210::-;11372:9;;;;;;;;;-1:-1:-1;11372:9:8;;11178:210;;;;;;;:::o;14078:125::-;14159:20;:37;14182:14;14159:20;:37;:::i;:::-;;14078:125;:::o;8415:157::-;8536:22;;;8511:6;8536:22;;;:12;:22;;;;;;:29;;;;8559:5;;;;8536:29;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;8536:29:8;;-1:-1:-1;8415:157:8;;;;;:::o;15224:1322::-;15456:4;15473:13;15488;15503:17;15526:41;15552:14;15526:25;:41::i;:::-;15472:95;;;;;;;15577:21;15659:6;:11;;15669:1;15659:11;15655:187;;15694:32;;-1:-1:-1;;;;;15694:32:8;:48;-1:-1:-1;15694:48:8;15686:99;;;;-1:-1:-1;;;15686:99:8;;;;;;;:::i;:::-;15799:32;15819:12;15799:32;;:::i;:::-;;;15655:187;15978:24;;15919:19;;15978:35;;16005:8;;-1:-1:-1;;;15978:24:8;;-1:-1:-1;;;;;15978:24:8;:35;:::i;:::-;15941:16;:33;:73;;;-1:-1:-1;;;15941:33:8;;-1:-1:-1;;;;;15941:33:8;:73;:::i;:::-;15919:95;-1:-1:-1;16024:34:8;15919:95;16024:34;;:::i;:::-;16223:16;:30;16024:34;;-1:-1:-1;16186:14:8;;16257:6;;16204:49;;-1:-1:-1;;;;;16223:30:8;16024:34;16204:49;:::i;:::-;16203:60;;;;:::i;:::-;16442:16;:30;16412:27;;16186:77;;-1:-1:-1;16355:17:8;;16476:6;;-1:-1:-1;;;;;16442:30:8;;;;16376:63;;-1:-1:-1;;;16412:27:8;;;-1:-1:-1;;;;;16412:27:8;;-1:-1:-1;;;16376:33:8;;;;:63;:::i;:::-;:96;;;;:::i;:::-;16375:107;;;;:::i;:::-;-1:-1:-1;;;;;16355:127:8;;-1:-1:-1;16512:27:8;16355:127;16512:12;:27;:::i;:::-;16500:39;;:9;:39;:::i;:::-;16493:46;15224:1322;-1:-1:-1;;;;;;;;;;;;;15224:1322:8:o;14892:326::-;15022:4;15042:9;15038:174;;;-1:-1:-1;15074:17:8;:24;15067:31;;15038:174;15166:26;;15196:5;;15138:24;15152:10;15138:11;:24;:::i;:::-;15137:55;;;;:::i;:::-;15136:65;;;;:::i;:::-;15129:72;;;;14388:498;14502:26;;;14471:28;14502:26;;;:13;:26;;;;;;:33;;;;14529:5;;;;14502:33;:::i;:::-;;;;;;;;;;;;;14471:64;;14641:239;14648:11;;:15;14641:239;;14715:11;;14679:28;;14710:4;;14715:15;;14729:1;;14715:15;:::i;:::-;14710:21;;;;;;;;:::i;:::-;;;;;;;;;;14679:52;;;;;;;;14710:21;;;;;;;14679:52;;-1:-1:-1;;;;;14679:52:8;;;;-1:-1:-1;;;;;;;;14679:52:8;;;;;;;;;;;;;;;;;;14710:21;14679:52;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14764:7;:18;;;-1:-1:-1;;;;;14745:48:8;;14794:11;14807:5;;14814:7;:13;;;14829:7;:15;;;14745:100;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14859:4;:10;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;14859:10:8;;;;;;;;;-1:-1:-1;;;;;;14859:10:8;;;;;;;;;;:::i;:::-;;;;;14665:215;14641:239;;2036:801:7;2154:13;2181:10;2205:18;2237:30;2300:14;:21;2325:2;2300:27;:57;;;;2355:2;2331:14;:21;:26;2300:57;2292:91;;;;-1:-1:-1;;;2292:91:7;;;;;;;:::i;:::-;2452:1;2436:14;2432:22;2426:29;2416:39;;2503:2;2487:14;2483:23;2477:30;2468:39;;2534:6;:11;;2544:1;2534:11;:26;;;;2549:6;:11;;2559:1;2549:11;2534:26;2526:57;;;;-1:-1:-1;;;2526:57:7;;;;;;;:::i;:::-;2609:1;2601:5;:9;2593:33;;;;-1:-1:-1;;;2593:33:7;;;;;;;:::i;:::-;2641:6;:11;;2651:1;2641:11;2637:194;;-1:-1:-1;;2738:2:7;2718:23;;2712:30;2803:2;2783:23;;2777:30;2637:194;2036:801;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;90:118:65:-;195:5;177:24;172:3;165:37;90:118;;:::o;214:332::-;373:2;358:18;;386:71;362:9;430:6;386:71;:::i;:::-;467:72;535:2;524:9;520:18;511:6;467:72;:::i;974:120::-;955:6;944:18;;1046:23;1039:5;1036:34;1026:62;;1084:1;1081;1074:12;1100:137;1170:20;;1199:32;1170:20;1199:32;:::i;1243:327::-;1301:6;1350:2;1338:9;1329:7;1325:23;1321:32;1318:119;;;1356:79;812:15736:8;;;1356:79:65;1476:1;1501:52;1545:7;1525:9;1501:52;:::i;1708:96::-;1745:7;-1:-1:-1;;;;;1642:54:65;;1774:24;1576:126;1810:122;1883:24;1901:5;1883:24;:::i;1938:139::-;2009:20;;2038:33;2009:20;2038:33;:::i;2083:329::-;2142:6;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;812:15736:8;;;2197:79:65;2317:1;2342:53;2387:7;2367:9;2342:53;:::i;2418:115::-;955:6;944:18;;2503:23;879:89;2539:218;2668:2;2653:18;;2681:69;2657:9;2723:6;2681:69;:::i;3145:552::-;3202:8;3212:6;3262:3;3255:4;3247:6;3243:17;3239:27;3229:122;;3270:79;812:15736:8;;;3270:79:65;-1:-1:-1;3370:20:65;;-1:-1:-1;;;;;3402:30:65;;3399:117;;;3435:79;812:15736:8;;;3435:79:65;3549:4;3541:6;3537:17;3525:29;;3603:3;3595:4;3587:6;3583:17;3573:8;3569:32;3566:41;3563:128;;;3610:79;812:15736:8;;;3610:79:65;3145:552;;;;;:::o;3703:670::-;3781:6;3789;3797;3846:2;3834:9;3825:7;3821:23;3817:32;3814:119;;;3852:79;812:15736:8;;;3852:79:65;3972:1;3997:52;4041:7;4021:9;3997:52;:::i;:::-;3987:62;;3943:116;4126:2;4115:9;4111:18;4098:32;-1:-1:-1;;;;;4149:6:65;4146:30;4143:117;;;4179:79;812:15736:8;;;4179:79:65;4292:64;4348:7;4339:6;4328:9;4324:22;4292:64;:::i;:::-;4274:82;;;;4069:297;3703:670;;;;;:::o;4475:109::-;4449:13;;4442:21;4556;4379:90;4590:210;4715:2;4700:18;;4728:65;4704:9;4766:6;4728:65;:::i;5037:180::-;-1:-1:-1;;;5082:1:65;5075:88;5182:4;5179:1;5172:15;5206:4;5203:1;5196:15;5223:281;-1:-1:-1;;5021:2:65;5001:14;;4997:28;5298:6;5294:40;5436:6;5424:10;5421:22;-1:-1:-1;;;;;5388:10:65;5385:34;5382:62;5379:88;;;5447:18;;:::i;:::-;5483:2;5476:22;-1:-1:-1;;5223:281:65:o;5510:129::-;5544:6;5571:20;618:2;612:9;;552:75;5571:20;5561:30;;5600:33;5628:4;5620:6;5600:33;:::i;:::-;5510:129;;;:::o;5645:307::-;5706:4;-1:-1:-1;;;;;5788:6:65;5785:30;5782:56;;;5818:18;;:::i;:::-;-1:-1:-1;;5021:2:65;5001:14;;4997:28;5940:4;5930:15;;5645:307;-1:-1:-1;;5645:307:65:o;5958:148::-;6056:6;6051:3;6046;6033:30;-1:-1:-1;6097:1:65;6079:16;;6072:27;5958:148::o;6112:423::-;6189:5;6214:65;6230:48;6271:6;6230:48;:::i;:::-;6214:65;:::i;:::-;6205:74;;6302:6;6295:5;6288:21;6340:4;6333:5;6329:16;6378:3;6369:6;6364:3;6360:16;6357:25;6354:112;;;6385:79;812:15736:8;;;6385:79:65;6475:54;6522:6;6517:3;6512;6475:54;:::i;:::-;6195:340;6112:423;;;;;:::o;6554:338::-;6609:5;6658:3;6651:4;6643:6;6639:17;6635:27;6625:122;;6666:79;812:15736:8;;;6666:79:65;6783:6;6770:20;6808:78;6882:3;6874:6;6867:4;6859:6;6855:17;6808:78;:::i;6898:122::-;6989:5;6971:24;7:77;7026:139;7097:20;;7126:33;7097:20;7126:33;:::i;7171:795::-;7256:6;7264;7272;7321:2;7309:9;7300:7;7296:23;7292:32;7289:119;;;7327:79;812:15736:8;;;7327:79:65;7447:1;7472:52;7516:7;7496:9;7472:52;:::i;:::-;7462:62;;7418:116;7601:2;7590:9;7586:18;7573:32;-1:-1:-1;;;;;7624:6:65;7621:30;7618:117;;;7654:79;812:15736:8;;;7654:79:65;7759:62;7813:7;7804:6;7793:9;7789:22;7759:62;:::i;:::-;7749:72;;7544:287;7870:2;7896:53;7941:7;7932:6;7921:9;7917:22;7896:53;:::i;:::-;7886:63;;7841:118;7171:795;;;;;:::o;7972:118::-;8059:24;8077:5;8059:24;:::i;8203:115::-;-1:-1:-1;;;;;8161:30:65;;8288:23;8096:101;8602:248;8684:1;8694:113;8708:6;8705:1;8702:13;8694:113;;;8784:11;;;8778:18;8765:11;;;8758:39;8730:2;8723:10;8694:113;;;-1:-1:-1;;8841:1:65;8823:16;;8816:27;8602:248::o;8856:373::-;8942:3;8970:38;9002:5;8403:12;;8324:98;8970:38;8533:19;;;8585:4;8576:14;;9017:77;;9103:65;9161:6;9156:3;9149:4;9142:5;9138:16;9103:65;:::i;:::-;-1:-1:-1;;5021:2:65;5001:14;;4997:28;9193:29;9184:39;;;;8856:373;-1:-1:-1;;;8856:373:65:o;9235:525::-;9438:2;9423:18;;9451:71;9427:9;9495:6;9451:71;:::i;:::-;9532:70;9598:2;9587:9;9583:18;9574:6;9532:70;:::i;:::-;9649:9;9643:4;9639:20;9634:2;9623:9;9619:18;9612:48;9677:76;9748:4;9739:6;9677:76;:::i;:::-;9669:84;9235:525;-1:-1:-1;;;;;9235:525:65:o;9766:474::-;9834:6;9842;9891:2;9879:9;9870:7;9866:23;9862:32;9859:119;;;9897:79;812:15736:8;;;9897:79:65;10017:1;10042:53;10087:7;10067:9;10042:53;:::i;:::-;10032:63;;9988:117;10144:2;10170:53;10215:7;10206:6;10195:9;10191:22;10170:53;:::i;:::-;10160:63;;10115:118;9766:474;;;;;:::o;10246:309::-;10395:2;10408:47;;;10380:18;;10472:76;10380:18;10534:6;10472:76;:::i;10685:122::-;-1:-1:-1;;;;;10627:46:65;;10758:24;10561:118;10813:139;10884:20;;10913:33;10884:20;10913:33;:::i;10958:120::-;-1:-1:-1;;;;;8161:30:65;;11030:23;8096:101;11084:137;11154:20;;11183:32;11154:20;11183:32;:::i;11227:907::-;11320:6;11328;11336;11344;11352;11401:3;11389:9;11380:7;11376:23;11372:33;11369:120;;;11408:79;812:15736:8;;;11408:79:65;11528:1;11553:53;11598:7;11578:9;11553:53;:::i;:::-;11543:63;;11499:117;11655:2;11681:53;11726:7;11717:6;11706:9;11702:22;11681:53;:::i;:::-;11671:63;;11626:118;11783:2;11809:53;11854:7;11845:6;11834:9;11830:22;11809:53;:::i;:::-;11799:63;;11754:118;11911:2;11937:52;11981:7;11972:6;11961:9;11957:22;11937:52;:::i;:::-;11927:62;;11882:117;12038:3;12065:52;12109:7;12100:6;12089:9;12085:22;12065:52;:::i;:::-;12055:62;;12009:118;11227:907;;;;;;;;:::o;12140:116::-;4449:13;;4442:21;12210;4379:90;12262:133;12330:20;;12359:30;12330:20;12359:30;:::i;12401:1259::-;12510:6;12518;12526;12534;12542;12591:3;12579:9;12570:7;12566:23;12562:33;12559:120;;;12598:79;812:15736:8;;;12598:79:65;12718:1;12743:52;12787:7;12767:9;12743:52;:::i;:::-;12733:62;;12689:116;12844:2;12870:53;12915:7;12906:6;12895:9;12891:22;12870:53;:::i;:::-;12860:63;;12815:118;13000:2;12989:9;12985:18;12972:32;-1:-1:-1;;;;;13023:6:65;13020:30;13017:117;;;13053:79;812:15736:8;;;13053:79:65;13158:62;13212:7;13203:6;13192:9;13188:22;13158:62;:::i;:::-;13148:72;;12943:287;13269:2;13295:50;13337:7;13328:6;13317:9;13313:22;13295:50;:::i;:::-;13285:60;;13240:115;13422:3;13411:9;13407:19;13394:33;-1:-1:-1;;;;;13446:6:65;13443:30;13440:117;;;13476:79;812:15736:8;;;13476:79:65;13581:62;13635:7;13626:6;13615:9;13611:22;13581:62;:::i;13666:222::-;13797:2;13782:18;;13810:71;13786:9;13854:6;13810:71;:::i;13894:650::-;13970:6;13978;14027:2;14015:9;14006:7;14002:23;13998:32;13995:119;;;14033:79;812:15736:8;;;14033:79:65;14153:1;14178:52;14222:7;14202:9;14178:52;:::i;:::-;14168:62;;14124:116;14307:2;14296:9;14292:18;14279:32;-1:-1:-1;;;;;14330:6:65;14327:30;14324:117;;;14360:79;812:15736:8;;;14360:79:65;14465:62;14519:7;14510:6;14499:9;14495:22;14465:62;:::i;14757:438::-;14942:2;14927:18;;14955:69;14931:9;14997:6;14955:69;:::i;:::-;15034:72;15102:2;15091:9;15087:18;15078:6;15034:72;:::i;:::-;15116;15184:2;15173:9;15169:18;15160:6;15116:72;:::i;15201:472::-;15268:6;15276;15325:2;15313:9;15304:7;15300:23;15296:32;15293:119;;;15331:79;812:15736:8;;;15331:79:65;15451:1;15476:52;15520:7;15500:9;15476:52;:::i;:::-;15466:62;;15422:116;15577:2;15603:53;15648:7;15639:6;15628:9;15624:22;15603:53;:::i;15679:218::-;15808:2;15793:18;;15821:69;15797:9;15863:6;15821:69;:::i;15903:222::-;16034:2;16019:18;;16047:71;16023:9;16091:6;16047:71;:::i;16131:118::-;-1:-1:-1;;;;;10627:46:65;;16218:24;10561:118;16255:656;16494:3;16479:19;;16508:71;16483:9;16552:6;16508:71;:::i;:::-;16589:72;16657:2;16646:9;16642:18;16633:6;16589:72;:::i;:::-;16671;16739:2;16728:9;16724:18;16715:6;16671:72;:::i;:::-;16753:70;16819:2;16808:9;16804:18;16795:6;16753:70;:::i;:::-;16833:71;16899:3;16888:9;16884:19;16875:6;16833:71;:::i;:::-;16255:656;;;;;;;;:::o;16917:1013::-;17015:6;17023;17031;17039;17047;17096:2;17084:9;17075:7;17071:23;17067:32;17064:119;;;17102:79;812:15736:8;;;17102:79:65;17222:1;17247:52;17291:7;17271:9;17247:52;:::i;:::-;17237:62;;17193:116;17376:2;17365:9;17361:18;17348:32;-1:-1:-1;;;;;17399:6:65;17396:30;17393:117;;;17429:79;812:15736:8;;;17429:79:65;17542:64;17598:7;17589:6;17578:9;17574:22;17542:64;:::i;:::-;17524:82;;;;17319:297;17683:2;17672:9;17668:18;17655:32;-1:-1:-1;;;;;17706:6:65;17703:30;17700:117;;;17736:79;812:15736:8;;;17736:79:65;17849:64;17905:7;17896:6;17885:9;17881:22;17849:64;:::i;:::-;17831:82;;;;17626:297;16917:1013;;;;;;;;:::o;17936:329::-;17995:6;18044:2;18032:9;18023:7;18019:23;18015:32;18012:119;;;18050:79;812:15736:8;;;18050:79:65;18170:1;18195:53;18240:7;18220:9;18195:53;:::i;18271:474::-;18339:6;18347;18396:2;18384:9;18375:7;18371:23;18367:32;18364:119;;;18402:79;812:15736:8;;;18402:79:65;18522:1;18547:53;18592:7;18572:9;18547:53;:::i;18751:1449::-;18875:6;18883;18891;18899;18907;18915;18923;18931;18980:3;18968:9;18959:7;18955:23;18951:33;18948:120;;;18987:79;812:15736:8;;;18987:79:65;19107:1;19132:52;19176:7;19156:9;19132:52;:::i;:::-;19122:62;;19078:116;19261:2;19250:9;19246:18;19233:32;-1:-1:-1;;;;;19284:6:65;19281:30;19278:117;;;19314:79;812:15736:8;;;19314:79:65;19427:64;19483:7;19474:6;19463:9;19459:22;19427:64;:::i;:::-;19409:82;;;;19204:297;19540:2;19566:53;19611:7;19602:6;19591:9;19587:22;19566:53;:::i;:::-;19556:63;;19511:118;19668:2;19694:52;19738:7;19729:6;19718:9;19714:22;19694:52;:::i;:::-;19684:62;;19639:117;19795:3;19822:53;19867:7;19858:6;19847:9;19843:22;19822:53;:::i;:::-;19812:63;;19766:119;19952:3;19941:9;19937:19;19924:33;-1:-1:-1;;;;;19976:6:65;19973:30;19970:117;;;20006:79;812:15736:8;;;20006:79:65;20119:64;20175:7;20166:6;20155:9;20151:22;20119:64;:::i;:::-;20101:82;;;;19895:298;18751:1449;;;;;;;;;;;:::o;20621:1625::-;20761:6;20769;20777;20785;20793;20801;20809;20858:3;20846:9;20837:7;20833:23;20829:33;20826:120;;;20865:79;812:15736:8;;;20865:79:65;20985:1;21010:52;21054:7;21034:9;21010:52;:::i;:::-;21000:62;;20956:116;21139:2;21128:9;21124:18;21111:32;-1:-1:-1;;;;;21162:6:65;21159:30;21156:117;;;21192:79;812:15736:8;;;21192:79:65;21297:62;21351:7;21342:6;21331:9;21327:22;21297:62;:::i;:::-;21287:72;;21082:287;21436:2;21425:9;21421:18;21408:32;-1:-1:-1;;;;;21459:6:65;21456:30;21453:117;;;21489:79;812:15736:8;;;21489:79:65;21602:64;21658:7;21649:6;21638:9;21634:22;21602:64;:::i;:::-;21584:82;;;;21379:297;21715:2;21741:61;21794:7;21785:6;21774:9;21770:22;21741:61;:::i;:::-;21731:71;;21686:126;21851:3;21878:53;21923:7;21914:6;21903:9;21899:22;21878:53;:::i;:::-;21868:63;;21822:119;22008:3;21997:9;21993:19;21980:33;-1:-1:-1;;;;;22032:6:65;22029:30;22026:117;;;22062:79;812:15736:8;;;22062:79:65;22167:62;22221:7;22212:6;22201:9;22197:22;22167:62;:::i;:::-;22157:72;;21951:288;20621:1625;;;;;;;;;;:::o;22252:939::-;22345:6;22353;22361;22369;22418:3;22406:9;22397:7;22393:23;22389:33;22386:120;;;22425:79;812:15736:8;;;22425:79:65;22545:1;22570:52;22614:7;22594:9;22570:52;:::i;:::-;22560:62;;22516:116;22671:2;22697:52;22741:7;22732:6;22721:9;22717:22;22697:52;:::i;:::-;22687:62;;22642:117;22798:2;22824:53;22869:7;22860:6;22849:9;22845:22;22824:53;:::i;:::-;22814:63;;22769:118;22954:2;22943:9;22939:18;22926:32;-1:-1:-1;;;;;22977:6:65;22974:30;22971:117;;;23007:79;812:15736:8;;;23007:79:65;23112:62;23166:7;23157:6;23146:9;23142:22;23112:62;:::i;:::-;23102:72;;22897:287;22252:939;;;;;;;:::o;23197:761::-;23281:6;23289;23297;23305;23354:3;23342:9;23333:7;23329:23;23325:33;23322:120;;;23361:79;812:15736:8;;;23361:79:65;23481:1;23506:52;23550:7;23530:9;23506:52;:::i;:::-;23496:62;;23452:116;23607:2;23633:52;23677:7;23668:6;23657:9;23653:22;23633:52;:::i;:::-;23623:62;;23578:117;23734:2;23760:53;23805:7;23796:6;23785:9;23781:22;23760:53;:::i;:::-;23750:63;;23705:118;23862:2;23888:53;23933:7;23924:6;23913:9;23909:22;23888:53;:::i;23964:507::-;24032:6;24081:2;24069:9;24060:7;24056:23;24052:32;24049:119;;;24087:79;812:15736:8;;;24087:79:65;24207:31;;-1:-1:-1;;;;;24254:30:65;;24251:117;;;24287:79;812:15736:8;;;24287:79:65;24392:62;24446:7;24437:6;24426:9;24422:22;24392:62;:::i;24652:327::-;24766:3;24885:56;24934:6;24929:3;24922:5;24885:56;:::i;:::-;-1:-1:-1;;24957:16:65;;24652:327::o;24985:291::-;25125:3;25147:103;25246:3;25237:6;25229;25147:103;:::i;25282:180::-;-1:-1:-1;;;25327:1:65;25320:88;25427:4;25424:1;25417:15;25451:4;25448:1;25441:15;25468:320;25549:1;25539:12;;25596:1;25586:12;;;25607:81;;25673:4;25665:6;25661:17;25651:27;;25607:81;25735:2;25727:6;25724:14;25704:18;25701:38;25698:84;;25754:18;;:::i;:::-;25519:269;25468:320;;;:::o;25794:180::-;-1:-1:-1;;;25839:1:65;25832:88;25939:4;25936:1;25929:15;25963:4;25960:1;25953:15;25980:191;26109:9;;;26131:10;;;26128:36;;;26144:18;;:::i;26540:366::-;26767:2;8533:19;;;26492:34;8576:14;;26469:58;;;26682:3;26779:93;-1:-1:-1;26897:2:65;26888:12;;26540:366::o;26912:419::-;27116:2;27129:47;;;27101:18;;27193:131;27101:18;27193:131;:::i;27522:366::-;27749:2;8533:19;;27664:3;8585:4;8576:14;;27477:31;27454:55;;27678:74;-1:-1:-1;27761:93:65;27337:179;27894:419;28098:2;28111:47;;;28083:18;;28175:131;28083:18;28175:131;:::i;28341:314::-;8533:19;;;28437:3;8585:4;8576:14;;28451:77;;28538:56;28587:6;28582:3;28575:5;28538:56;:::i;:::-;-1:-1:-1;;5021:2:65;5001:14;;4997:28;28619:29;4929:102;28661:435;28846:2;28831:18;;28859:69;28835:9;28901:6;28859:69;:::i;:::-;28975:9;28969:4;28965:20;28960:2;28949:9;28945:18;28938:48;29003:86;29084:4;29075:6;29067;29003:86;:::i;29288:366::-;29515:2;8533:19;;29430:3;8585:4;8576:14;;29242:32;29219:56;;29444:74;-1:-1:-1;29527:93:65;29102:180;29660:419;29864:2;29877:47;;;29849:18;;29941:131;29849:18;29941:131;:::i;30085:759::-;30352:3;30337:19;;30366:69;30341:9;30408:6;30366:69;:::i;:::-;30482:9;30476:4;30472:20;30467:2;30456:9;30452:18;30445:48;30510:86;30591:4;30582:6;30574;30510:86;:::i;:::-;30502:94;;30606:70;30672:2;30661:9;30657:18;30648:6;30606:70;:::i;:::-;30723:9;30717:4;30713:20;30708:2;30697:9;30693:18;30686:48;30751:86;30832:4;30823:6;30815;30751:86;:::i;:::-;30743:94;30085:759;-1:-1:-1;;;;;;;;30085:759:65:o;30850:652::-;31089:3;31074:19;;31103:69;31078:9;31145:6;31103:69;:::i;:::-;31219:9;31213:4;31209:20;31204:2;31193:9;31189:18;31182:48;31247:86;31328:4;31319:6;31311;31247:86;:::i;:::-;31239:94;;31343:70;31409:2;31398:9;31394:18;31385:6;31343:70;:::i;:::-;31423:72;31491:2;31480:9;31476:18;31467:6;31423:72;:::i;31737:366::-;31964:2;8533:19;;31879:3;8585:4;8576:14;;31648:34;31625:58;;-1:-1:-1;;;31712:2:65;31700:15;;31693:31;31893:74;-1:-1:-1;31976:93:65;-1:-1:-1;32094:2:65;32085:12;;31737:366::o;32109:419::-;32313:2;32326:47;;;32298:18;;32390:131;32298:18;32390:131;:::i;32534:183::-;-1:-1:-1;;;;;8161:30:65;32572:3;-1:-1:-1;;32630:29:65;;32627:55;;32662:18;;:::i;:::-;-1:-1:-1;32709:1:65;32698:13;;32534:183::o;32905:366::-;33132:2;8533:19;;33047:3;8585:4;8576:14;;32863:28;32840:52;;33061:74;-1:-1:-1;33144:93:65;32723:176;33277:419;33481:2;33494:47;;;33466:18;;33558:131;33466:18;33558:131;:::i;34525:142::-;34575:9;34608:53;34626:34;34653:5;34626:34;7:77;34635:24;73:5;7:77;34754:269;34864:39;34895:7;34864:39;:::i;:::-;34953:11;;-1:-1:-1;;34179:1:65;34163:18;;;;34031:16;;;34388:9;34377:21;34031:16;;34417:30;;;;34912:105;;-1:-1:-1;34754:269:65:o;35108:189::-;35074:3;35226:65;35284:6;35276;35270:4;35226:65;:::i;:::-;35161:136;35108:189;;:::o;35303:186::-;35380:3;35373:5;35370:14;35363:120;;;35434:39;35471:1;35464:5;35434:39;:::i;:::-;35407:1;35396:13;35363:120;;35495:541;35595:2;35590:3;35587:11;35584:445;;;33750:4;33786:14;;;33830:4;33817:18;;33932:2;33927;33916:14;;33912:23;35702:8;35698:44;35895:2;35883:10;35880:18;35877:49;;;-1:-1:-1;35916:8:65;35877:49;35939:80;33932:2;33927;33916:14;;33912:23;35985:8;35981:37;35968:11;35939:80;:::i;:::-;35599:430;;35495:541;;;:::o;36639:1390::-;8403:12;;-1:-1:-1;;;;;36847:6:65;36844:30;36841:56;;;36877:18;;:::i;:::-;36921:38;36953:4;36947:11;36921:38;:::i;:::-;37006:66;37065:6;37057;37051:4;37006:66;:::i;:::-;37123:4;37155:2;37144:14;;37172:1;37167:617;;;;37828:1;37845:6;37842:77;;;-1:-1:-1;37885:19:65;;;37879:26;37842:77;-1:-1:-1;;36275:1:65;36271:13;;36136:16;36238:56;36313:15;;36620:1;36616:11;;36607:21;37945:67;37939:4;37932:81;37801:222;37137:886;;37167:617;33750:4;33786:14;;;33830:4;33817:18;;-1:-1:-1;;37203:22:65;;;37325:208;37339:7;37336:1;37333:14;37325:208;;;37409:19;;;37403:26;37388:42;;37516:2;37501:18;;;;37469:1;37457:14;;;;37355:12;37325:208;;;37561:6;37552:7;37549:19;37546:179;;;37610:19;;;37604:26;-1:-1:-1;;36275:1:65;37704:4;37692:17;;36271:13;36136:16;36238:56;36313:15;;37662:48;37654:6;37647:64;37569:156;37546:179;37771:1;37767;37759:6;37755:14;37751:22;37745:4;37738:36;37174:610;;;37137:886;;36729:1300;;;36639:1390;;:::o;38035:194::-;38166:9;;;38188:11;;;38185:37;;;38202:18;;:::i;38235:180::-;-1:-1:-1;;;38280:1:65;38273:88;38380:4;38377:1;38370:15;38404:4;38401:1;38394:15;38421:148;38497:12;;38529:33;38497:12;38529:33;:::i;38575:1445::-;38684:3;38678:4;38675:13;38672:26;;38691:5;;38575:1445::o;38672:26::-;38722:33;38751:3;38722:33;:::i;:::-;-1:-1:-1;;;;;38812:6:65;38809:30;38806:56;;;38842:18;;:::i;:::-;38886:38;38918:4;38912:11;38886:38;:::i;:::-;38971:66;39030:6;39022;39016:4;38971:66;:::i;:::-;39064:1;39093:2;39085:6;39082:14;39110:1;39105:670;;;;39819:1;39836:6;39833:77;;;-1:-1:-1;39876:19:65;;;39870:26;-1:-1:-1;;36275:1:65;36271:13;;36136:16;36238:56;36313:15;;36620:1;36616:11;;36607:21;39936:67;36339:295;39105:670;33750:4;33786:14;;;33830:4;33817:18;;;33786:14;;;33817:18;;;;;-1:-1:-1;;39141:22:65;;;33817:18;39317:207;39331:7;39328:1;39325:14;39317:207;;;39401:19;;;39395:26;39380:42;;39461:1;39493:17;;;;39449:14;;;;39354:4;39347:12;39317:207;;;39552:6;39543:7;39540:19;39537:179;;;39601:19;;;39595:26;-1:-1:-1;;36275:1:65;39695:4;39683:17;;36271:13;36136:16;36238:56;36313:15;;39653:48;36165:169;40026:1068;40367:3;40352:19;;40381:69;40356:9;40423:6;40381:69;:::i;:::-;40497:9;40491:4;40487:20;40482:2;40471:9;40467:18;40460:48;40525:86;40606:4;40597:6;40589;40525:86;:::i;:::-;40517:94;;40621:72;40689:2;40678:9;40674:18;40665:6;40621:72;:::i;:::-;40703:70;40769:2;40758:9;40754:18;40745:6;40703:70;:::i;:::-;40821:9;40815:4;40811:20;40805:3;40794:9;40790:19;40783:49;40849:86;40930:4;40921:6;40913;40849:86;:::i;:::-;40841:94;;40983:9;40977:4;40973:20;40967:3;40956:9;40952:19;40945:49;41011:76;41082:4;41073:6;41011:76;:::i;:::-;41003:84;40026:1068;-1:-1:-1;;;;;;;;;;40026:1068:65:o;41326:366::-;41553:2;8533:19;;41468:3;8585:4;8576:14;;41240:34;41217:58;;-1:-1:-1;;;41304:2:65;41292:15;;41285:28;41482:74;-1:-1:-1;41565:93:65;41100:220;41698:419;41902:2;41915:47;;;41887:18;;41979:131;41887:18;41979:131;:::i;42360:366::-;42587:2;8533:19;;42502:3;8585:4;8576:14;;42263:34;42240:58;;-1:-1:-1;;;42327:2:65;42315:15;;42308:39;42516:74;-1:-1:-1;42599:93:65;42123:231;42732:419;42936:2;42949:47;;;42921:18;;43013:131;42921:18;43013:131;:::i;43405:366::-;43632:2;8533:19;;43547:3;8585:4;8576:14;;43297:34;43274:58;;43366:25;43361:2;43349:15;;43342:50;43561:74;-1:-1:-1;43644:93:65;43157:242;43777:419;43981:2;43994:47;;;43966:18;;44058:131;43966:18;44058:131;:::i;44436:366::-;44663:2;8533:19;;44578:3;8585:4;8576:14;;44342:34;44319:58;;-1:-1:-1;;;44406:2:65;44394:15;;44387:36;44592:74;-1:-1:-1;44675:93:65;44202:228;44808:419;45012:2;45025:47;;;44997:18;;45089:131;44997:18;45089:131;:::i;45757:379::-;45941:3;45963:147;46106:3;45963:147;:::i;46329:366::-;46556:2;8533:19;;46471:3;8585:4;8576:14;;46282:33;46259:57;;46485:74;-1:-1:-1;46568:93:65;46142:181;46701:419;46905:2;46918:47;;;46890:18;;46982:131;46890:18;46982:131;:::i;47226:94::-;47265:7;47294:20;47308:5;47203:2;47199:14;;47126:94;47326:100;47365:7;47394:26;47414:5;47394:26;:::i;47432:157::-;47537:45;47557:24;47575:5;47557:24;:::i;:::-;47537:45;:::i;47595:397::-;47735:3;47750:75;47821:3;47812:6;47750:75;:::i;:::-;47850:2;47845:3;47841:12;47834:19;;47863:75;47934:3;47925:6;47863:75;:::i;:::-;-1:-1:-1;47963:2:65;47954:12;;47595:397;-1:-1:-1;;47595:397:65:o;47998:941::-;48301:3;48286:19;;48315:69;48290:9;48357:6;48315:69;:::i;:::-;48431:9;48425:4;48421:20;48416:2;48405:9;48401:18;48394:48;48459:76;48530:4;48521:6;48459:76;:::i;:::-;48451:84;;48545:72;48613:2;48602:9;48598:18;48589:6;48545:72;:::i;:::-;48627:70;48693:2;48682:9;48678:18;48669:6;48627:70;:::i;:::-;48707:73;48775:3;48764:9;48760:19;48751:6;48707:73;:::i;:::-;48828:9;48822:4;48818:20;48812:3;48801:9;48797:19;48790:49;48856:76;48927:4;48918:6;48856:76;:::i;49176:366::-;49403:2;8533:19;;49318:3;8585:4;8576:14;;49085:34;49062:58;;-1:-1:-1;;;49149:2:65;49137:15;;49130:33;49332:74;-1:-1:-1;49415:93:65;48945:225;49548:419;49752:2;49765:47;;;49737:18;;49829:131;49737:18;49829:131;:::i;49973:410::-;50118:9;;;;50280;;50313:15;;;50307:22;;50260:83;50237:139;;50356:18;;:::i;:::-;50021:362;49973:410;;;;:::o;50389:180::-;-1:-1:-1;;;50434:1:65;50427:88;50534:4;50531:1;50524:15;50558:4;50555:1;50548:15;50575:185;50615:1;50684;50666:20;50661:25;;50705:1;50695:35;;50710:18;;:::i;:::-;-1:-1:-1;50745:9:65;;50575:185::o;50766:279::-;-1:-1:-1;;;;;10627:46:65;;;;;;;;50911:9;;;10627:46;;;;50990:24;;;50980:58;;51018:18;;:::i;51051:185::-;51091:1;-1:-1:-1;;;;;10627:46:65;;51103:25;-1:-1:-1;;;;;;10627:46:65;;51142:20;10561:118;51242:739;51499:3;51484:19;;51513:69;51488:9;51555:6;51513:69;:::i;:::-;51629:9;51623:4;51619:20;51614:2;51603:9;51599:18;51592:48;51657:86;51738:4;51729:6;51721;51657:86;:::i;:::-;51649:94;;51753:70;51819:2;51808:9;51804:18;51795:6;51753:70;:::i;:::-;51870:9;51864:4;51860:20;51855:2;51844:9;51840:18;51833:48;51898:76;51969:4;51960:6;51898:76;:::i;:::-;51890:84;51242:739;-1:-1:-1;;;;;;;51242:739:65:o;51987:180::-;-1:-1:-1;;;52032:1:65;52025:88;52132:4;52129:1;52122:15;52156:4;52153:1;52146:15;52350:366;52577:2;8533:19;;52492:3;8585:4;8576:14;;-1:-1:-1;;;52290:47:65;;52506:74;-1:-1:-1;52589:93:65;52173:171;52722:419;52926:2;52939:47;;;52911:18;;53003:131;52911:18;53003:131;:::i;53321:366::-;53548:2;8533:19;;53463:3;8585:4;8576:14;;-1:-1:-1;;;53264:44:65;;53477:74;-1:-1:-1;53560:93:65;53147:168;53693:419;53897:2;53910:47;;;53882:18;;53974:131;53882:18;53974:131;:::i;54285:366::-;54512:2;8533:19;;54427:3;8585:4;8576:14;;-1:-1:-1;;;54235:37:65;;54441:74;-1:-1:-1;54524:93:65;54118:161;54657:419;54861:2;54874:47;;;54846:18;;54938:131;54846:18;54938:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2577400","executionCost":"infinite","totalCost":"infinite"},"external":{"blockNextMsg()":"24445","defaultAdapterParams()":"infinite","estimateFees(uint16,address,bytes,bool,bytes)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getChainId()":"2427","getConfig(uint16,uint16,address,uint256)":"infinite","getInboundNonce(uint16,bytes)":"infinite","getLengthOfQueue(uint16,bytes)":"infinite","getOutboundNonce(uint16,address)":"infinite","getReceiveLibraryAddress(address)":"infinite","getReceiveVersion(address)":"infinite","getSendLibraryAddress(address)":"infinite","getSendVersion(address)":"infinite","hasStoredPayload(uint16,bytes)":"infinite","inboundNonce(uint16,bytes)":"infinite","isReceivingPayload()":"2446","isSendingPayload()":"2434","lzEndpointLookup(address)":"infinite","mockChainId()":"2520","msgsToDeliver(uint16,bytes,uint256)":"infinite","nextMsgBlocked()":"2466","oracleFee()":"2449","outboundNonce(uint16,address)":"infinite","protocolFeeConfig()":"infinite","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"infinite","relayerFeeConfig()":"infinite","retryPayload(uint16,bytes,bytes)":"infinite","send(uint16,bytes,bytes,address,address,bytes)":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setDefaultAdapterParams(bytes)":"infinite","setDestLzEndpoint(address,address)":"infinite","setOracleFee(uint256)":"22471","setProtocolFee(uint256,uint256)":"infinite","setReceiveVersion(uint16)":"infinite","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"infinite","setSendVersion(uint16)":"infinite","storedPayload(uint16,bytes)":"infinite"},"internal":{"_clearMsgQue(uint16,bytes calldata)":"infinite","_getProtocolFees(bool,uint256,uint256)":"2410","_getRelayerFee(uint16,uint16,address,uint256,bytes memory)":"infinite"}},"methodIdentifiers":{"blockNextMsg()":"d23104f1","defaultAdapterParams()":"272bd384","estimateFees(uint16,address,bytes,bool,bytes)":"40a7bb10","forceResumeReceive(uint16,bytes)":"42d65a8d","getChainId()":"3408e470","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getInboundNonce(uint16,bytes)":"fdc07c70","getLengthOfQueue(uint16,bytes)":"7f6df8e6","getOutboundNonce(uint16,address)":"7a145748","getReceiveLibraryAddress(address)":"71ba2fd6","getReceiveVersion(address)":"da1a7c9a","getSendLibraryAddress(address)":"9c729da1","getSendVersion(address)":"096568f6","hasStoredPayload(uint16,bytes)":"0eaf6ea6","inboundNonce(uint16,bytes)":"9924d33b","isReceivingPayload()":"ca066b35","isSendingPayload()":"e97a448a","lzEndpointLookup(address)":"c81b383a","mockChainId()":"db14f305","msgsToDeliver(uint16,bytes,uint256)":"12a9ee6b","nextMsgBlocked()":"3e0dd83e","oracleFee()":"f9cd3ceb","outboundNonce(uint16,address)":"b2086499","protocolFeeConfig()":"07d3277f","receivePayload(uint16,bytes,address,uint64,uint256,bytes)":"c2fa4813","relayerFeeConfig()":"907c5e7e","retryPayload(uint16,bytes,bytes)":"aaff5f16","send(uint16,bytes,bytes,address,address,bytes)":"c5803100","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setDefaultAdapterParams(bytes)":"fbba623b","setDestLzEndpoint(address,address)":"c08f15a1","setOracleFee(uint256)":"b6d9ef60","setProtocolFee(uint256,uint256)":"240de277","setReceiveVersion(uint16)":"10ddb137","setRelayerPrice(uint128,uint128,uint128,uint64,uint64)":"2c365e25","setSendVersion(uint16)":"07e0db17","storedPayload(uint16,bytes)":"76a386dc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"}],\"name\":\"PayloadCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"PayloadStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"UaForceResumeReceive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"ValueTransferFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"blockNextMsg\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdapterParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_userApplication\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_payInZRO\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"getInboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"getLengthOfQueue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainID\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_srcAddress\",\"type\":\"address\"}],\"name\":\"getOutboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getReceiveVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendLibraryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getSendVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"hasStoredPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"inboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReceivingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSendingPayload\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lzEndpointLookup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mockChainId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"msgsToDeliver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextMsgBlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"outboundNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeBP\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_dstAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"receivePayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"relayerFeeConfig\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasPerByte\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryPayload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"setDefaultAdapterParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpointAddr\",\"type\":\"address\"}],\"name\":\"setDestLzEndpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_oracleFee\",\"type\":\"uint256\"}],\"name\":\"setOracleFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_zroFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nativeBP\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_dstPriceRatio\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstGasPriceInWei\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"_dstNativeAmtCap\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"_baseGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_gasPerByte\",\"type\":\"uint64\"}],\"name\":\"setRelayerPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"storedPayload\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"payloadLength\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"dstAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"payloadHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":\"LZEndpointMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libs/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n    uint8 internal constant _NOT_ENTERED = 1;\\n    uint8 internal constant _ENTERED = 2;\\n\\n    mapping(address => address) public lzEndpointLookup;\\n\\n    uint16 public mockChainId;\\n    bool public nextMsgBlocked;\\n\\n    // fee config\\n    RelayerFeeConfig public relayerFeeConfig;\\n    ProtocolFeeConfig public protocolFeeConfig;\\n    uint public oracleFee;\\n    bytes public defaultAdapterParams;\\n\\n    // path = remote addrss + local address\\n    // inboundNonce = [srcChainId][path].\\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n    //todo: this is a hack\\n    // outboundNonce = [dstChainId][srcAddress]\\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n    //    // outboundNonce = [dstChainId][path].\\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n    // storedPayload = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n    // msgToDeliver = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n    // reentrancy guard\\n    uint8 internal _send_entered_state = 1;\\n    uint8 internal _receive_entered_state = 1;\\n\\n    struct ProtocolFeeConfig {\\n        uint zroFee;\\n        uint nativeBP;\\n    }\\n\\n    struct RelayerFeeConfig {\\n        uint128 dstPriceRatio; // 10^10\\n        uint128 dstGasPriceInWei;\\n        uint128 dstNativeAmtCap;\\n        uint64 baseGas;\\n        uint64 gasPerByte;\\n    }\\n\\n    struct StoredPayload {\\n        uint64 payloadLength;\\n        address dstAddress;\\n        bytes32 payloadHash;\\n    }\\n\\n    struct QueuedPayload {\\n        address dstAddress;\\n        uint64 nonce;\\n        bytes payload;\\n    }\\n\\n    modifier sendNonReentrant() {\\n        require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n        _send_entered_state = _ENTERED;\\n        _;\\n        _send_entered_state = _NOT_ENTERED;\\n    }\\n\\n    modifier receiveNonReentrant() {\\n        require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n        _receive_entered_state = _ENTERED;\\n        _;\\n        _receive_entered_state = _NOT_ENTERED;\\n    }\\n\\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n    constructor(uint16 _chainId) {\\n        mockChainId = _chainId;\\n\\n        // init config\\n        relayerFeeConfig = RelayerFeeConfig({\\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n            dstGasPriceInWei: 1e10,\\n            dstNativeAmtCap: 1e19,\\n            baseGas: 100,\\n            gasPerByte: 1\\n        });\\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n        oracleFee = 1e16;\\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n    }\\n\\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n    function send(\\n        uint16 _chainId,\\n        bytes memory _path,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) external payable override sendNonReentrant {\\n        require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n        address dstAddr;\\n        assembly {\\n            dstAddr := mload(add(_path, 20))\\n        }\\n\\n        address lzEndpoint = lzEndpointLookup[dstAddr];\\n        require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n        // not handle zro token\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n        require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n        // refund if they send too much\\n        uint amount = msg.value - nativeFee;\\n        if (amount > 0) {\\n            (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n            require(success, \\\"LayerZeroMock: failed to refund\\\");\\n        }\\n\\n        // Mock the process of receiving msg on dst chain\\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n        if (dstNativeAmt > 0) {\\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n            if (!success) {\\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n            }\\n        }\\n\\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n        bytes memory payload = _payload;\\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n    }\\n\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external override receiveNonReentrant {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n        // assert and increment the nonce. no message shuffling\\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n        if (sp.payloadHash != bytes32(0)) {\\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\\n            if (msgs.length > 0) {\\n                // extend the array\\n                msgs.push(newMsg);\\n\\n                // shift all the indexes up for pop()\\n                for (uint i = 0; i < msgs.length - 1; i++) {\\n                    msgs[i + 1] = msgs[i];\\n                }\\n\\n                // put the newMsg at the bottom of the stack\\n                msgs[0] = newMsg;\\n            } else {\\n                msgs.push(newMsg);\\n            }\\n        } else if (nextMsgBlocked) {\\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n            // ensure the next msgs that go through are no longer blocked\\n            nextMsgBlocked = false;\\n        } else {\\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n                // ensure the next msgs that go through are no longer blocked\\n                nextMsgBlocked = false;\\n            }\\n        }\\n    }\\n\\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n        return inboundNonce[_chainID][_path];\\n    }\\n\\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n        return outboundNonce[_chainID][_srcAddress];\\n    }\\n\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes memory _payload,\\n        bool _payInZRO,\\n        bytes memory _adapterParams\\n    ) public view override returns (uint nativeFee, uint zroFee) {\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n        // Relayer Fee\\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n        // LayerZero Fee\\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n        // return the sum of fees\\n        nativeFee = nativeFee + relayerFee + oracleFee;\\n    }\\n\\n    function getChainId() external view override returns (uint16) {\\n        return mockChainId;\\n    }\\n\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        bytes calldata _payload\\n    ) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n        address dstAddress = sp.dstAddress;\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n    }\\n\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        return sp.payloadHash != bytes32(0);\\n    }\\n\\n    function getSendLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function getReceiveLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function isSendingPayload() external view override returns (bool) {\\n        return _send_entered_state == _ENTERED;\\n    }\\n\\n    function isReceivingPayload() external view override returns (bool) {\\n        return _receive_entered_state == _ENTERED;\\n    }\\n\\n    function getConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        address, /*_ua*/\\n        uint /*_configType*/\\n    ) external pure override returns (bytes memory) {\\n        return \\\"\\\";\\n    }\\n\\n    function getSendVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function getReceiveVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function setConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        uint, /*_configType*/\\n        bytes memory /*_config*/\\n    ) external override {}\\n\\n    function setSendVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function setReceiveVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        // revert if no messages are cached. safeguard malicious UA behaviour\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        emit UaForceResumeReceive(_srcChainId, _path);\\n\\n        // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n        _clearMsgQue(_srcChainId, _path);\\n    }\\n\\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\\n    }\\n\\n    // used to simulate messages received get stored as a payload\\n    function blockNextMsg() external {\\n        nextMsgBlocked = true;\\n    }\\n\\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\\n    }\\n\\n    function setRelayerPrice(\\n        uint128 _dstPriceRatio,\\n        uint128 _dstGasPriceInWei,\\n        uint128 _dstNativeAmtCap,\\n        uint64 _baseGas,\\n        uint64 _gasPerByte\\n    ) external {\\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n        relayerFeeConfig.baseGas = _baseGas;\\n        relayerFeeConfig.gasPerByte = _gasPerByte;\\n    }\\n\\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n        protocolFeeConfig.zroFee = _zroFee;\\n        protocolFeeConfig.nativeBP = _nativeBP;\\n    }\\n\\n    function setOracleFee(uint _oracleFee) external {\\n        oracleFee = _oracleFee;\\n    }\\n\\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n        defaultAdapterParams = _adapterParams;\\n    }\\n\\n    // --------------------- Internal Functions ---------------------\\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n        while (msgs.length > 0) {\\n            QueuedPayload memory payload = msgs[msgs.length - 1];\\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n            msgs.pop();\\n        }\\n    }\\n\\n    function _getProtocolFees(\\n        bool _payInZro,\\n        uint _relayerFee,\\n        uint _oracleFee\\n    ) internal view returns (uint) {\\n        if (_payInZro) {\\n            return protocolFeeConfig.zroFee;\\n        } else {\\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n        }\\n    }\\n\\n    function _getRelayerFee(\\n        uint16, /* _dstChainId */\\n        uint16, /* _outboundProofType */\\n        address, /* _userApplication */\\n        uint _payloadSize,\\n        bytes memory _adapterParams\\n    ) internal view returns (uint) {\\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n        if (txType == 2) {\\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n            totalRemoteToken += dstNativeAmt;\\n        }\\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n        totalRemoteToken += remoteGasTotal;\\n\\n        // tokenConversionRate = dstPrice / localPrice\\n        // basePrice = totalRemoteToken * tokenConversionRate\\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        return basePrice + _payloadSize * pricePerByte;\\n    }\\n}\\n\",\"keccak256\":\"0x06bc56b213f08faece383b9df0eb7eeafebb36f490ca117d927c93f3d82e554b\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1645,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"lzEndpointLookup","offset":0,"slot":"0","type":"t_mapping(t_address,t_address)"},{"astId":1647,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"mockChainId","offset":0,"slot":"1","type":"t_uint16"},{"astId":1649,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nextMsgBlocked","offset":2,"slot":"1","type":"t_bool"},{"astId":1652,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"relayerFeeConfig","offset":0,"slot":"2","type":"t_struct(RelayerFeeConfig)1708_storage"},{"astId":1655,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"protocolFeeConfig","offset":0,"slot":"4","type":"t_struct(ProtocolFeeConfig)1697_storage"},{"astId":1657,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"oracleFee","offset":0,"slot":"6","type":"t_uint256"},{"astId":1659,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"defaultAdapterParams","offset":0,"slot":"7","type":"t_bytes_storage"},{"astId":1665,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"inboundNonce","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))"},{"astId":1671,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"outboundNonce","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_mapping(t_address,t_uint64))"},{"astId":1678,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"storedPayload","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1715_storage))"},{"astId":1686,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"msgsToDeliver","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1722_storage)dyn_storage))"},{"astId":1689,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_send_entered_state","offset":0,"slot":"12","type":"t_uint8"},{"astId":1692,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"_receive_entered_state","offset":1,"slot":"12","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(QueuedPayload)1722_storage)dyn_storage":{"base":"t_struct(QueuedPayload)1722_storage","encoding":"dynamic_array","label":"struct LZEndpointMock.QueuedPayload[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_uint64)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1722_storage)dyn_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.QueuedPayload[])","numberOfBytes":"32","value":"t_array(t_struct(QueuedPayload)1722_storage)dyn_storage"},"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1715_storage)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => struct LZEndpointMock.StoredPayload)","numberOfBytes":"32","value":"t_struct(StoredPayload)1715_storage"},"t_mapping(t_bytes_memory_ptr,t_uint64)":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => uint64)","numberOfBytes":"32","value":"t_uint64"},"t_mapping(t_uint16,t_mapping(t_address,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(address => uint64))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint64)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1722_storage)dyn_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.QueuedPayload[]))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_array(t_struct(QueuedPayload)1722_storage)dyn_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1715_storage))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => struct LZEndpointMock.StoredPayload))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_struct(StoredPayload)1715_storage)"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_uint64))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => uint64))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_uint64)"},"t_struct(ProtocolFeeConfig)1697_storage":{"encoding":"inplace","label":"struct LZEndpointMock.ProtocolFeeConfig","members":[{"astId":1694,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"zroFee","offset":0,"slot":"0","type":"t_uint256"},{"astId":1696,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nativeBP","offset":0,"slot":"1","type":"t_uint256"}],"numberOfBytes":"64"},"t_struct(QueuedPayload)1722_storage":{"encoding":"inplace","label":"struct LZEndpointMock.QueuedPayload","members":[{"astId":1717,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":0,"slot":"0","type":"t_address"},{"astId":1719,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"nonce","offset":20,"slot":"0","type":"t_uint64"},{"astId":1721,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payload","offset":0,"slot":"1","type":"t_bytes_storage"}],"numberOfBytes":"64"},"t_struct(RelayerFeeConfig)1708_storage":{"encoding":"inplace","label":"struct LZEndpointMock.RelayerFeeConfig","members":[{"astId":1699,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstPriceRatio","offset":0,"slot":"0","type":"t_uint128"},{"astId":1701,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstGasPriceInWei","offset":16,"slot":"0","type":"t_uint128"},{"astId":1703,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstNativeAmtCap","offset":0,"slot":"1","type":"t_uint128"},{"astId":1705,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"baseGas","offset":16,"slot":"1","type":"t_uint64"},{"astId":1707,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"gasPerByte","offset":24,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_struct(StoredPayload)1715_storage":{"encoding":"inplace","label":"struct LZEndpointMock.StoredPayload","members":[{"astId":1710,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadLength","offset":0,"slot":"0","type":"t_uint64"},{"astId":1712,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"dstAddress","offset":8,"slot":"0","type":"t_address"},{"astId":1714,"contract":"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol:LZEndpointMock","label":"payloadHash","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol":{"BaseOFTV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"events":{"ReceiveFromChain(uint16,address,uint256)":{"details":"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce."},"SendToChain(uint16,address,bytes32,uint256)":{"details":"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce"}},"kind":"dev","methods":{"circulatingSupply()":{"details":"returns the circulating amount of tokens on current chain"},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":{"details":"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"token()":{"details":"returns the address of the ERC20 token"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","NO_EXTRA_GAS()":"44770515","PT_SEND()":"4c42899a","PT_SEND_AND_CALL()":"e6a20ae6","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"eaffd49a","circulatingSupply()":"9358928b","creditedPackets(uint16,bytes,uint64)":"9bdb9812","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"76203b48","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"695ef6bf","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","sharedDecimals()":"857749b0","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CallOFTReceivedSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"NonContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ReceiveFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SendToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NO_EXTRA_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasForCall\",\"type\":\"uint256\"}],\"name\":\"callOnOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"creditedPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ReceiveFromChain(uint16,address,uint256)\":{\"details\":\"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce.\"},\"SendToChain(uint16,address,bytes32,uint256)\":{\"details\":\"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce\"}},\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"details\":\"returns the circulating amount of tokens on current chain\"},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))\":{\"details\":\"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services\"},\"token()\":{\"details\":\"returns the address of the ERC20 token\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\":\"BaseOFTV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OFTCoreV2.sol\\\";\\nimport \\\"./interfaces/IOFTV2.sol\\\";\\nimport \\\"@openzeppelin/contracts/utils/introspection/ERC165.sol\\\";\\n\\nabstract contract BaseOFTV2 is OFTCoreV2, ERC165, IOFTV2 {\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) OFTCoreV2(_sharedDecimals, _lzEndpoint) {}\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function sendFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _send(_from, _dstChainId, _toAddress, _amount, _callParams.refundAddress, _callParams.zroPaymentAddress, _callParams.adapterParams);\\n    }\\n\\n    function sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _sendAndCall(\\n            _from,\\n            _dstChainId,\\n            _toAddress,\\n            _amount,\\n            _payload,\\n            _dstGasForCall,\\n            _callParams.refundAddress,\\n            _callParams.zroPaymentAddress,\\n            _callParams.adapterParams\\n        );\\n    }\\n\\n    /************************************************************************\\n     * public view functions\\n     ************************************************************************/\\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n        return interfaceId == type(IOFTV2).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    function estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendFee(_dstChainId, _toAddress, _amount, _useZro, _adapterParams);\\n    }\\n\\n    function estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendAndCallFee(_dstChainId, _toAddress, _amount, _payload, _dstGasForCall, _useZro, _adapterParams);\\n    }\\n\\n    function circulatingSupply() public view virtual override returns (uint);\\n\\n    function token() public view virtual override returns (address);\\n}\\n\",\"keccak256\":\"0x59d2d32dd14a4f58232b126a7d69608a85f82137bd56d8ce0fc28ff646cba943\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../../lzApp/NonblockingLzApp.sol\\\";\\nimport \\\"../../../libraries/ExcessivelySafeCall.sol\\\";\\nimport \\\"./interfaces/ICommonOFT.sol\\\";\\nimport \\\"./interfaces/IOFTReceiverV2.sol\\\";\\n\\nabstract contract OFTCoreV2 is NonblockingLzApp {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    uint public constant NO_EXTRA_GAS = 0;\\n\\n    // packet type\\n    uint8 public constant PT_SEND = 0;\\n    uint8 public constant PT_SEND_AND_CALL = 1;\\n\\n    uint8 public immutable sharedDecimals;\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\\n     * `_nonce` is the outbound nonce\\n     */\\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\\n     * `_nonce` is the inbound nonce.\\n     */\\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\\n\\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\\n\\n    event NonContractAddress(address _address);\\n\\n    // _sharedDecimals should be the minimum decimals on all chains\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\\n        sharedDecimals = _sharedDecimals;\\n    }\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function callOnOFTReceived(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes32 _from,\\n        address _to,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint _gasForCall\\n    ) public virtual {\\n        require(_msgSender() == address(this), \\\"OFTCore: caller must be OFTCore\\\");\\n\\n        // send\\n        _amount = _transferFrom(address(this), _to, _amount);\\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\\n\\n        // call\\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\\n    }\\n\\n    /************************************************************************\\n     * internal functions\\n     ************************************************************************/\\n    function _estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendFrom()\\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendAndCall()\\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        uint8 packetType = _payload.toUint8(0);\\n\\n        if (packetType == PT_SEND) {\\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else if (packetType == PT_SEND_AND_CALL) {\\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else {\\n            revert(\\\"OFTCore: unknown packet type\\\");\\n        }\\n    }\\n\\n    function _send(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAck(\\n        uint16 _srcChainId,\\n        bytes memory,\\n        uint64,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\\n        if (to == address(0)) {\\n            to = address(0xdead);\\n        }\\n\\n        uint amount = _sd2ld(amountSD);\\n        amount = _creditTo(_srcChainId, to, amount);\\n\\n        emit ReceiveFromChain(_srcChainId, to, amount);\\n    }\\n\\n    function _sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        // encode the msg.sender into the payload instead of _from\\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAndCallAck(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\\n\\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\\n        uint amount = _sd2ld(amountSD);\\n\\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\\n        if (!credited) {\\n            amount = _creditTo(_srcChainId, address(this), amount);\\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\\n        }\\n\\n        if (!_isContract(to)) {\\n            emit NonContractAddress(to);\\n            return;\\n        }\\n\\n        // workaround for stack too deep\\n        uint16 srcChainId = _srcChainId;\\n        bytes memory srcAddress = _srcAddress;\\n        uint64 nonce = _nonce;\\n        bytes memory payload = _payload;\\n        bytes32 from_ = from;\\n        address to_ = to;\\n        uint amount_ = amount;\\n        bytes memory payloadForCall_ = payloadForCall;\\n\\n        // no gas limit for the call if retry\\n        uint gas = credited ? gasleft() : gasForCall;\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\\n        );\\n\\n        if (success) {\\n            bytes32 hash = keccak256(payload);\\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\\n        } else {\\n            // store the failed message into the nonblockingLzApp\\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\\n        }\\n    }\\n\\n    function _isContract(address _account) internal view returns (bool) {\\n        return _account.code.length > 0;\\n    }\\n\\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\\n        uint amountSD = _amount / _ld2sdRate();\\n        require(amountSD <= type(uint64).max, \\\"OFTCore: amountSD overflow\\\");\\n        return uint64(amountSD);\\n    }\\n\\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\\n        return _amountSD * _ld2sdRate();\\n    }\\n\\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\\n        dust = _amount % _ld2sdRate();\\n        amountAfter = _amount - dust;\\n    }\\n\\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\\n    }\\n\\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n    }\\n\\n    function _encodeSendAndCallPayload(\\n        address _from,\\n        bytes32 _toAddress,\\n        uint64 _amountSD,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall\\n    ) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\\n    }\\n\\n    function _decodeSendAndCallPayload(bytes memory _payload)\\n        internal\\n        view\\n        virtual\\n        returns (\\n            bytes32 from,\\n            address to,\\n            uint64 amountSD,\\n            bytes memory payload,\\n            uint64 dstGasForCall\\n        )\\n    {\\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n        from = _payload.toBytes32(41);\\n        dstGasForCall = _payload.toUint64(73);\\n        payload = _payload.slice(81, _payload.length - 81);\\n    }\\n\\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n\\n    function _debitFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _creditTo(\\n        uint16 _srcChainId,\\n        address _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _transferFrom(\\n        address _from,\\n        address _to,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _ld2sdRate() internal view virtual returns (uint);\\n}\\n\",\"keccak256\":\"0x96cf7a10c5af4243822d25e77985a4a46d12264f839593ded5378cd6519a8df0\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ICommonOFT.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface IOFTV2 is ICommonOFT {\\n\\n    /**\\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\\n     * `_from` the owner of token\\n     * `_dstChainId` the destination chain identifier\\n     * `_toAddress` can be any size depending on the `dstChainId`.\\n     * `_amount` the quantity of tokens in wei\\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\\n     */\\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\\n\\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\\n}\\n\",\"keccak256\":\"0xb1d31f341715347d49db4e2c0de27c49bbd70b5b3d9b0adb1050b2b3a305ab87\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":455,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3161,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol:BaseOFTV2","label":"creditedPackets","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bool)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol":{"OFTCoreV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"devdoc":{"events":{"ReceiveFromChain(uint16,address,uint256)":{"details":"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce."},"SendToChain(uint16,address,bytes32,uint256)":{"details":"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce"}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","NO_EXTRA_GAS()":"44770515","PT_SEND()":"4c42899a","PT_SEND_AND_CALL()":"e6a20ae6","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"eaffd49a","creditedPackets(uint16,bytes,uint64)":"9bdb9812","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","owner()":"8da5cb5b","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","sharedDecimals()":"857749b0","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CallOFTReceivedSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"NonContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ReceiveFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SendToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NO_EXTRA_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasForCall\",\"type\":\"uint256\"}],\"name\":\"callOnOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"creditedPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ReceiveFromChain(uint16,address,uint256)\":{\"details\":\"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce.\"},\"SendToChain(uint16,address,bytes32,uint256)\":{\"details\":\"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":\"OFTCoreV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../../lzApp/NonblockingLzApp.sol\\\";\\nimport \\\"../../../libraries/ExcessivelySafeCall.sol\\\";\\nimport \\\"./interfaces/ICommonOFT.sol\\\";\\nimport \\\"./interfaces/IOFTReceiverV2.sol\\\";\\n\\nabstract contract OFTCoreV2 is NonblockingLzApp {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    uint public constant NO_EXTRA_GAS = 0;\\n\\n    // packet type\\n    uint8 public constant PT_SEND = 0;\\n    uint8 public constant PT_SEND_AND_CALL = 1;\\n\\n    uint8 public immutable sharedDecimals;\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\\n     * `_nonce` is the outbound nonce\\n     */\\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\\n     * `_nonce` is the inbound nonce.\\n     */\\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\\n\\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\\n\\n    event NonContractAddress(address _address);\\n\\n    // _sharedDecimals should be the minimum decimals on all chains\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\\n        sharedDecimals = _sharedDecimals;\\n    }\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function callOnOFTReceived(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes32 _from,\\n        address _to,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint _gasForCall\\n    ) public virtual {\\n        require(_msgSender() == address(this), \\\"OFTCore: caller must be OFTCore\\\");\\n\\n        // send\\n        _amount = _transferFrom(address(this), _to, _amount);\\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\\n\\n        // call\\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\\n    }\\n\\n    /************************************************************************\\n     * internal functions\\n     ************************************************************************/\\n    function _estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendFrom()\\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendAndCall()\\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        uint8 packetType = _payload.toUint8(0);\\n\\n        if (packetType == PT_SEND) {\\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else if (packetType == PT_SEND_AND_CALL) {\\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else {\\n            revert(\\\"OFTCore: unknown packet type\\\");\\n        }\\n    }\\n\\n    function _send(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAck(\\n        uint16 _srcChainId,\\n        bytes memory,\\n        uint64,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\\n        if (to == address(0)) {\\n            to = address(0xdead);\\n        }\\n\\n        uint amount = _sd2ld(amountSD);\\n        amount = _creditTo(_srcChainId, to, amount);\\n\\n        emit ReceiveFromChain(_srcChainId, to, amount);\\n    }\\n\\n    function _sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        // encode the msg.sender into the payload instead of _from\\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAndCallAck(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\\n\\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\\n        uint amount = _sd2ld(amountSD);\\n\\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\\n        if (!credited) {\\n            amount = _creditTo(_srcChainId, address(this), amount);\\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\\n        }\\n\\n        if (!_isContract(to)) {\\n            emit NonContractAddress(to);\\n            return;\\n        }\\n\\n        // workaround for stack too deep\\n        uint16 srcChainId = _srcChainId;\\n        bytes memory srcAddress = _srcAddress;\\n        uint64 nonce = _nonce;\\n        bytes memory payload = _payload;\\n        bytes32 from_ = from;\\n        address to_ = to;\\n        uint amount_ = amount;\\n        bytes memory payloadForCall_ = payloadForCall;\\n\\n        // no gas limit for the call if retry\\n        uint gas = credited ? gasleft() : gasForCall;\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\\n        );\\n\\n        if (success) {\\n            bytes32 hash = keccak256(payload);\\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\\n        } else {\\n            // store the failed message into the nonblockingLzApp\\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\\n        }\\n    }\\n\\n    function _isContract(address _account) internal view returns (bool) {\\n        return _account.code.length > 0;\\n    }\\n\\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\\n        uint amountSD = _amount / _ld2sdRate();\\n        require(amountSD <= type(uint64).max, \\\"OFTCore: amountSD overflow\\\");\\n        return uint64(amountSD);\\n    }\\n\\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\\n        return _amountSD * _ld2sdRate();\\n    }\\n\\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\\n        dust = _amount % _ld2sdRate();\\n        amountAfter = _amount - dust;\\n    }\\n\\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\\n    }\\n\\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n    }\\n\\n    function _encodeSendAndCallPayload(\\n        address _from,\\n        bytes32 _toAddress,\\n        uint64 _amountSD,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall\\n    ) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\\n    }\\n\\n    function _decodeSendAndCallPayload(bytes memory _payload)\\n        internal\\n        view\\n        virtual\\n        returns (\\n            bytes32 from,\\n            address to,\\n            uint64 amountSD,\\n            bytes memory payload,\\n            uint64 dstGasForCall\\n        )\\n    {\\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n        from = _payload.toBytes32(41);\\n        dstGasForCall = _payload.toUint64(73);\\n        payload = _payload.slice(81, _payload.length - 81);\\n    }\\n\\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n\\n    function _debitFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _creditTo(\\n        uint16 _srcChainId,\\n        address _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _transferFrom(\\n        address _from,\\n        address _to,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _ld2sdRate() internal view virtual returns (uint);\\n}\\n\",\"keccak256\":\"0x96cf7a10c5af4243822d25e77985a4a46d12264f839593ded5378cd6519a8df0\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":455,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3161,"contract":"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol:OFTCoreV2","label":"creditedPackets","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bool)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol":{"ICommonOFT":{"abi":[{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the IOFT core standard","kind":"dev","methods":{"circulatingSupply()":{"details":"returns the circulating amount of tokens on current chain"},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"token()":{"details":"returns the address of the ERC20 token"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"circulatingSupply()":"9358928b","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the IOFT core standard\",\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"details\":\"returns the circulating amount of tokens on current chain\"},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"token()\":{\"details\":\"returns the address of the ERC20 token\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":\"ICommonOFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol":{"IOFTReceiverV2":{"abi":[{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"onOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"onOFTReceived(uint16,bytes,uint64,bytes32,uint256,bytes)":{"details":"Called by the OFT contract when tokens are received from source chain.","params":{"_amount":"The amount of tokens to transfer.","_from":"The address of the account who calls the sendAndCall() on the source chain.","_nonce":"The nonce of the transaction on the source chain.","_payload":"Additional data with no specified format.","_srcAddress":"The address of the OFT token contract on the source chain.","_srcChainId":"The chain id of the source chain."}}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"onOFTReceived(uint16,bytes,uint64,bytes32,uint256,bytes)":"7fcf35da"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"onOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onOFTReceived(uint16,bytes,uint64,bytes32,uint256,bytes)\":{\"details\":\"Called by the OFT contract when tokens are received from source chain.\",\"params\":{\"_amount\":\"The amount of tokens to transfer.\",\"_from\":\"The address of the account who calls the sendAndCall() on the source chain.\",\"_nonce\":\"The nonce of the transaction on the source chain.\",\"_payload\":\"Additional data with no specified format.\",\"_srcAddress\":\"The address of the OFT token contract on the source chain.\",\"_srcChainId\":\"The chain id of the source chain.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":\"IOFTReceiverV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol":{"IOFTV2":{"abi":[{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the IOFT core standard","kind":"dev","methods":{"circulatingSupply()":{"details":"returns the circulating amount of tokens on current chain"},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":{"details":"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"token()":{"details":"returns the address of the ERC20 token"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"circulatingSupply()":"9358928b","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"76203b48","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"695ef6bf","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the IOFT core standard\",\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"details\":\"returns the circulating amount of tokens on current chain\"},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))\":{\"details\":\"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"token()\":{\"details\":\"returns the address of the ERC20 token\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":\"IOFTV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ICommonOFT.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface IOFTV2 is ICommonOFT {\\n\\n    /**\\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\\n     * `_from` the owner of token\\n     * `_dstChainId` the destination chain identifier\\n     * `_toAddress` can be any size depending on the `dstChainId`.\\n     * `_amount` the quantity of tokens in wei\\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\\n     */\\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\\n\\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\\n}\\n\",\"keccak256\":\"0xb1d31f341715347d49db4e2c0de27c49bbd70b5b3d9b0adb1050b2b3a305ab87\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x84efb8889801b0ac817324aff6acc691d07bbee816b671817132911d287a8c63\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":4985,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":4324,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":4444,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":4233,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":4312,"contract":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol:Ownable2StepUpgradeable","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":4985,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":4324,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":4444,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"constructor constructor() {     _disableInitializers(); } ``` ====","details":"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\"MyToken\", \"MTK\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\"MyToken\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"_initialized":{"custom:oz-retyped-from":"bool","details":"Indicates that the contract has been initialized."},"_initializing":{"details":"Indicates that the contract is in the process of being initialized."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db4defc2e8629387a6ca908a19fa79eb3d0d25667927dad2633bc5f7c5b4eb2764736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0x4D 0xEF 0xC2 0xE8 PUSH3 0x9387A6 0xCA SWAP1 DUP11 NOT STATICCALL PUSH26 0xEB3D0D25667927DAD2633BC5F7C5B4EB2764736F6C6343000819 STOP CALLER ","sourceMap":"194:9180:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9180:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db4defc2e8629387a6ca908a19fa79eb3d0d25667927dad2633bc5f7c5b4eb2764736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0x4D 0xEF 0xC2 0xE8 PUSH3 0x9387A6 0xCA SWAP1 DUP11 NOT STATICCALL PUSH26 0xEB3D0D25667927DAD2633BC5F7C5B4EB2764736F6C6343000819 STOP CALLER ","sourceMap":"194:9180:17:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":4985,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n *     require(hasRole(MY_ROLE, msg.sender));\\n *     ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n    struct RoleData {\\n        mapping(address => bool) members;\\n        bytes32 adminRole;\\n    }\\n\\n    mapping(bytes32 => RoleData) private _roles;\\n\\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n    /**\\n     * @dev Modifier that checks that an account has a specific role. Reverts\\n     * with a standardized message including the required role.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     *\\n     * _Available since v4.1._\\n     */\\n    modifier onlyRole(bytes32 role) {\\n        _checkRole(role);\\n        _;\\n    }\\n\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n        return _roles[role].members[account];\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\\n     *\\n     * Format of the revert message is described in {_checkRole}.\\n     *\\n     * _Available since v4.6._\\n     */\\n    function _checkRole(bytes32 role) internal view virtual {\\n        _checkRole(role, _msgSender());\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `account` is missing `role`.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     */\\n    function _checkRole(bytes32 role, address account) internal view virtual {\\n        if (!hasRole(role, account)) {\\n            revert(\\n                string(\\n                    abi.encodePacked(\\n                        \\\"AccessControl: account \\\",\\n                        Strings.toHexString(account),\\n                        \\\" is missing role \\\",\\n                        Strings.toHexString(uint256(role), 32)\\n                    )\\n                )\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n        return _roles[role].adminRole;\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function renounceRole(bytes32 role, address account) public virtual override {\\n        require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event. Note that unlike {grantRole}, this function doesn't perform any\\n     * checks on the calling account.\\n     *\\n     * May emit a {RoleGranted} event.\\n     *\\n     * [WARNING]\\n     * ====\\n     * This function should only be called from the constructor when setting\\n     * up the initial roles for the system.\\n     *\\n     * Using this function in any other way is effectively circumventing the admin\\n     * system imposed by {AccessControl}.\\n     * ====\\n     *\\n     * NOTE: This function is deprecated in favor of {_grantRole}.\\n     */\\n    function _setupRole(bytes32 role, address account) internal virtual {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Sets `adminRole` as ``role``'s admin role.\\n     *\\n     * Emits a {RoleAdminChanged} event.\\n     */\\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n        bytes32 previousAdminRole = getRoleAdmin(role);\\n        _roles[role].adminRole = adminRole;\\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function _grantRole(bytes32 role, address account) internal virtual {\\n        if (!hasRole(role, account)) {\\n            _roles[role].members[account] = true;\\n            emit RoleGranted(role, account, _msgSender());\\n        }\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function _revokeRole(bytes32 role, address account) internal virtual {\\n        if (hasRole(role, account)) {\\n            _roles[role].members[account] = false;\\n            emit RoleRevoked(role, account, _msgSender());\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5011,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)5006_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)5006_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)5006_storage"},"t_struct(RoleData)5006_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":5003,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":5005,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"External interface of AccessControl declared to support ERC165 detection.","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the contract in unpaused state."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5506,"contract":"@openzeppelin/contracts/security/Pausable.sol:Pausable","label":"_paused","offset":0,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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"}],"devdoc":{"details":"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_5641":{"entryPoint":null,"id":5641,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":252,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":361,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":146,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":174,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":645,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":614,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":539,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":709,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":216,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":495,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":102,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":473,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":80,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":596,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":560,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:8576:65","nodeType":"YulBlock","src":"0:8576:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"423:28:65","nodeType":"YulBlock","src":"423:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:65","nodeType":"YulLiteral","src":"440:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:65","nodeType":"YulLiteral","src":"443:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:65","nodeType":"YulIdentifier","src":"433:6:65"},"nativeSrc":"433:12:65","nodeType":"YulFunctionCall","src":"433:12:65"},"nativeSrc":"433:12:65","nodeType":"YulExpressionStatement","src":"433:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:65","nodeType":"YulFunctionDefinition","src":"334:117:65"},{"body":{"nativeSrc":"546:28:65","nodeType":"YulBlock","src":"546:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:65","nodeType":"YulLiteral","src":"563:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:65","nodeType":"YulLiteral","src":"566:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:65","nodeType":"YulIdentifier","src":"556:6:65"},"nativeSrc":"556:12:65","nodeType":"YulFunctionCall","src":"556:12:65"},"nativeSrc":"556:12:65","nodeType":"YulExpressionStatement","src":"556:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:65","nodeType":"YulFunctionDefinition","src":"457:117:65"},{"body":{"nativeSrc":"628:54:65","nodeType":"YulBlock","src":"628:54:65","statements":[{"nativeSrc":"638:38:65","nodeType":"YulAssignment","src":"638:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:65","nodeType":"YulIdentifier","src":"656:5:65"},{"kind":"number","nativeSrc":"663:2:65","nodeType":"YulLiteral","src":"663:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:65","nodeType":"YulIdentifier","src":"652:3:65"},"nativeSrc":"652:14:65","nodeType":"YulFunctionCall","src":"652:14:65"},{"arguments":[{"kind":"number","nativeSrc":"672:2:65","nodeType":"YulLiteral","src":"672:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:65","nodeType":"YulIdentifier","src":"668:3:65"},"nativeSrc":"668:7:65","nodeType":"YulFunctionCall","src":"668:7:65"}],"functionName":{"name":"and","nativeSrc":"648:3:65","nodeType":"YulIdentifier","src":"648:3:65"},"nativeSrc":"648:28:65","nodeType":"YulFunctionCall","src":"648:28:65"},"variableNames":[{"name":"result","nativeSrc":"638:6:65","nodeType":"YulIdentifier","src":"638:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:65","nodeType":"YulTypedName","src":"611:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:65","nodeType":"YulTypedName","src":"621:6:65","type":""}],"src":"580:102:65"},{"body":{"nativeSrc":"716:152:65","nodeType":"YulBlock","src":"716:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:65","nodeType":"YulLiteral","src":"733:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:65","nodeType":"YulLiteral","src":"736:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:65","nodeType":"YulIdentifier","src":"726:6:65"},"nativeSrc":"726:88:65","nodeType":"YulFunctionCall","src":"726:88:65"},"nativeSrc":"726:88:65","nodeType":"YulExpressionStatement","src":"726:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:65","nodeType":"YulLiteral","src":"830:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:65","nodeType":"YulLiteral","src":"833:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:65","nodeType":"YulIdentifier","src":"823:6:65"},"nativeSrc":"823:15:65","nodeType":"YulFunctionCall","src":"823:15:65"},"nativeSrc":"823:15:65","nodeType":"YulExpressionStatement","src":"823:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:65","nodeType":"YulLiteral","src":"854:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:65","nodeType":"YulLiteral","src":"857:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:65","nodeType":"YulIdentifier","src":"847:6:65"},"nativeSrc":"847:15:65","nodeType":"YulFunctionCall","src":"847:15:65"},"nativeSrc":"847:15:65","nodeType":"YulExpressionStatement","src":"847:15:65"}]},"name":"panic_error_0x41","nativeSrc":"688:180:65","nodeType":"YulFunctionDefinition","src":"688:180:65"},{"body":{"nativeSrc":"917:238:65","nodeType":"YulBlock","src":"917:238:65","statements":[{"nativeSrc":"927:58:65","nodeType":"YulVariableDeclaration","src":"927:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:65","nodeType":"YulIdentifier","src":"949:6:65"},{"arguments":[{"name":"size","nativeSrc":"979:4:65","nodeType":"YulIdentifier","src":"979:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:65","nodeType":"YulIdentifier","src":"957:21:65"},"nativeSrc":"957:27:65","nodeType":"YulFunctionCall","src":"957:27:65"}],"functionName":{"name":"add","nativeSrc":"945:3:65","nodeType":"YulIdentifier","src":"945:3:65"},"nativeSrc":"945:40:65","nodeType":"YulFunctionCall","src":"945:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:65","nodeType":"YulTypedName","src":"931:10:65","type":""}]},{"body":{"nativeSrc":"1096:22:65","nodeType":"YulBlock","src":"1096:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:65","nodeType":"YulIdentifier","src":"1098:16:65"},"nativeSrc":"1098:18:65","nodeType":"YulFunctionCall","src":"1098:18:65"},"nativeSrc":"1098:18:65","nodeType":"YulExpressionStatement","src":"1098:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:65","nodeType":"YulIdentifier","src":"1039:10:65"},{"kind":"number","nativeSrc":"1051:18:65","nodeType":"YulLiteral","src":"1051:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:65","nodeType":"YulIdentifier","src":"1036:2:65"},"nativeSrc":"1036:34:65","nodeType":"YulFunctionCall","src":"1036:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:65","nodeType":"YulIdentifier","src":"1075:10:65"},{"name":"memPtr","nativeSrc":"1087:6:65","nodeType":"YulIdentifier","src":"1087:6:65"}],"functionName":{"name":"lt","nativeSrc":"1072:2:65","nodeType":"YulIdentifier","src":"1072:2:65"},"nativeSrc":"1072:22:65","nodeType":"YulFunctionCall","src":"1072:22:65"}],"functionName":{"name":"or","nativeSrc":"1033:2:65","nodeType":"YulIdentifier","src":"1033:2:65"},"nativeSrc":"1033:62:65","nodeType":"YulFunctionCall","src":"1033:62:65"},"nativeSrc":"1030:88:65","nodeType":"YulIf","src":"1030:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:65","nodeType":"YulLiteral","src":"1134:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:65","nodeType":"YulIdentifier","src":"1138:10:65"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:65","nodeType":"YulIdentifier","src":"1127:6:65"},"nativeSrc":"1127:22:65","nodeType":"YulFunctionCall","src":"1127:22:65"},"nativeSrc":"1127:22:65","nodeType":"YulExpressionStatement","src":"1127:22:65"}]},"name":"finalize_allocation","nativeSrc":"874:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:65","nodeType":"YulTypedName","src":"903:6:65","type":""},{"name":"size","nativeSrc":"911:4:65","nodeType":"YulTypedName","src":"911:4:65","type":""}],"src":"874:281:65"},{"body":{"nativeSrc":"1202:88:65","nodeType":"YulBlock","src":"1202:88:65","statements":[{"nativeSrc":"1212:30:65","nodeType":"YulAssignment","src":"1212:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:65","nodeType":"YulIdentifier","src":"1222:18:65"},"nativeSrc":"1222:20:65","nodeType":"YulFunctionCall","src":"1222:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:65","nodeType":"YulIdentifier","src":"1212:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:65","nodeType":"YulIdentifier","src":"1271:6:65"},{"name":"size","nativeSrc":"1279:4:65","nodeType":"YulIdentifier","src":"1279:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:65","nodeType":"YulIdentifier","src":"1251:19:65"},"nativeSrc":"1251:33:65","nodeType":"YulFunctionCall","src":"1251:33:65"},"nativeSrc":"1251:33:65","nodeType":"YulExpressionStatement","src":"1251:33:65"}]},"name":"allocate_memory","nativeSrc":"1161:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:65","nodeType":"YulTypedName","src":"1186:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:65","nodeType":"YulTypedName","src":"1195:6:65","type":""}],"src":"1161:129:65"},{"body":{"nativeSrc":"1363:241:65","nodeType":"YulBlock","src":"1363:241:65","statements":[{"body":{"nativeSrc":"1468:22:65","nodeType":"YulBlock","src":"1468:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:65","nodeType":"YulIdentifier","src":"1470:16:65"},"nativeSrc":"1470:18:65","nodeType":"YulFunctionCall","src":"1470:18:65"},"nativeSrc":"1470:18:65","nodeType":"YulExpressionStatement","src":"1470:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:65","nodeType":"YulIdentifier","src":"1440:6:65"},{"kind":"number","nativeSrc":"1448:18:65","nodeType":"YulLiteral","src":"1448:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:65","nodeType":"YulIdentifier","src":"1437:2:65"},"nativeSrc":"1437:30:65","nodeType":"YulFunctionCall","src":"1437:30:65"},"nativeSrc":"1434:56:65","nodeType":"YulIf","src":"1434:56:65"},{"nativeSrc":"1500:37:65","nodeType":"YulAssignment","src":"1500:37:65","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:65","nodeType":"YulIdentifier","src":"1530:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:65","nodeType":"YulIdentifier","src":"1508:21:65"},"nativeSrc":"1508:29:65","nodeType":"YulFunctionCall","src":"1508:29:65"},"variableNames":[{"name":"size","nativeSrc":"1500:4:65","nodeType":"YulIdentifier","src":"1500:4:65"}]},{"nativeSrc":"1574:23:65","nodeType":"YulAssignment","src":"1574:23:65","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:65","nodeType":"YulIdentifier","src":"1586:4:65"},{"kind":"number","nativeSrc":"1592:4:65","nodeType":"YulLiteral","src":"1592:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:65","nodeType":"YulIdentifier","src":"1582:3:65"},"nativeSrc":"1582:15:65","nodeType":"YulFunctionCall","src":"1582:15:65"},"variableNames":[{"name":"size","nativeSrc":"1574:4:65","nodeType":"YulIdentifier","src":"1574:4:65"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:65","nodeType":"YulTypedName","src":"1347:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:65","nodeType":"YulTypedName","src":"1358:4:65","type":""}],"src":"1296:308:65"},{"body":{"nativeSrc":"1672:186:65","nodeType":"YulBlock","src":"1672:186:65","statements":[{"nativeSrc":"1683:10:65","nodeType":"YulVariableDeclaration","src":"1683:10:65","value":{"kind":"number","nativeSrc":"1692:1:65","nodeType":"YulLiteral","src":"1692:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1687:1:65","nodeType":"YulTypedName","src":"1687:1:65","type":""}]},{"body":{"nativeSrc":"1752:63:65","nodeType":"YulBlock","src":"1752:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1777:3:65","nodeType":"YulIdentifier","src":"1777:3:65"},{"name":"i","nativeSrc":"1782:1:65","nodeType":"YulIdentifier","src":"1782:1:65"}],"functionName":{"name":"add","nativeSrc":"1773:3:65","nodeType":"YulIdentifier","src":"1773:3:65"},"nativeSrc":"1773:11:65","nodeType":"YulFunctionCall","src":"1773:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1796:3:65","nodeType":"YulIdentifier","src":"1796:3:65"},{"name":"i","nativeSrc":"1801:1:65","nodeType":"YulIdentifier","src":"1801:1:65"}],"functionName":{"name":"add","nativeSrc":"1792:3:65","nodeType":"YulIdentifier","src":"1792:3:65"},"nativeSrc":"1792:11:65","nodeType":"YulFunctionCall","src":"1792:11:65"}],"functionName":{"name":"mload","nativeSrc":"1786:5:65","nodeType":"YulIdentifier","src":"1786:5:65"},"nativeSrc":"1786:18:65","nodeType":"YulFunctionCall","src":"1786:18:65"}],"functionName":{"name":"mstore","nativeSrc":"1766:6:65","nodeType":"YulIdentifier","src":"1766:6:65"},"nativeSrc":"1766:39:65","nodeType":"YulFunctionCall","src":"1766:39:65"},"nativeSrc":"1766:39:65","nodeType":"YulExpressionStatement","src":"1766:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1713:1:65","nodeType":"YulIdentifier","src":"1713:1:65"},{"name":"length","nativeSrc":"1716:6:65","nodeType":"YulIdentifier","src":"1716:6:65"}],"functionName":{"name":"lt","nativeSrc":"1710:2:65","nodeType":"YulIdentifier","src":"1710:2:65"},"nativeSrc":"1710:13:65","nodeType":"YulFunctionCall","src":"1710:13:65"},"nativeSrc":"1702:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"1724:19:65","nodeType":"YulBlock","src":"1724:19:65","statements":[{"nativeSrc":"1726:15:65","nodeType":"YulAssignment","src":"1726:15:65","value":{"arguments":[{"name":"i","nativeSrc":"1735:1:65","nodeType":"YulIdentifier","src":"1735:1:65"},{"kind":"number","nativeSrc":"1738:2:65","nodeType":"YulLiteral","src":"1738:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1731:3:65","nodeType":"YulIdentifier","src":"1731:3:65"},"nativeSrc":"1731:10:65","nodeType":"YulFunctionCall","src":"1731:10:65"},"variableNames":[{"name":"i","nativeSrc":"1726:1:65","nodeType":"YulIdentifier","src":"1726:1:65"}]}]},"pre":{"nativeSrc":"1706:3:65","nodeType":"YulBlock","src":"1706:3:65","statements":[]},"src":"1702:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1835:3:65","nodeType":"YulIdentifier","src":"1835:3:65"},{"name":"length","nativeSrc":"1840:6:65","nodeType":"YulIdentifier","src":"1840:6:65"}],"functionName":{"name":"add","nativeSrc":"1831:3:65","nodeType":"YulIdentifier","src":"1831:3:65"},"nativeSrc":"1831:16:65","nodeType":"YulFunctionCall","src":"1831:16:65"},{"kind":"number","nativeSrc":"1849:1:65","nodeType":"YulLiteral","src":"1849:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1824:6:65","nodeType":"YulIdentifier","src":"1824:6:65"},"nativeSrc":"1824:27:65","nodeType":"YulFunctionCall","src":"1824:27:65"},"nativeSrc":"1824:27:65","nodeType":"YulExpressionStatement","src":"1824:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:65","nodeType":"YulTypedName","src":"1654:3:65","type":""},{"name":"dst","nativeSrc":"1659:3:65","nodeType":"YulTypedName","src":"1659:3:65","type":""},{"name":"length","nativeSrc":"1664:6:65","nodeType":"YulTypedName","src":"1664:6:65","type":""}],"src":"1610:248:65"},{"body":{"nativeSrc":"1959:339:65","nodeType":"YulBlock","src":"1959:339:65","statements":[{"nativeSrc":"1969:75:65","nodeType":"YulAssignment","src":"1969:75:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2036:6:65","nodeType":"YulIdentifier","src":"2036:6:65"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1994:41:65","nodeType":"YulIdentifier","src":"1994:41:65"},"nativeSrc":"1994:49:65","nodeType":"YulFunctionCall","src":"1994:49:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"1978:15:65","nodeType":"YulIdentifier","src":"1978:15:65"},"nativeSrc":"1978:66:65","nodeType":"YulFunctionCall","src":"1978:66:65"},"variableNames":[{"name":"array","nativeSrc":"1969:5:65","nodeType":"YulIdentifier","src":"1969:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2060:5:65","nodeType":"YulIdentifier","src":"2060:5:65"},{"name":"length","nativeSrc":"2067:6:65","nodeType":"YulIdentifier","src":"2067:6:65"}],"functionName":{"name":"mstore","nativeSrc":"2053:6:65","nodeType":"YulIdentifier","src":"2053:6:65"},"nativeSrc":"2053:21:65","nodeType":"YulFunctionCall","src":"2053:21:65"},"nativeSrc":"2053:21:65","nodeType":"YulExpressionStatement","src":"2053:21:65"},{"nativeSrc":"2083:27:65","nodeType":"YulVariableDeclaration","src":"2083:27:65","value":{"arguments":[{"name":"array","nativeSrc":"2098:5:65","nodeType":"YulIdentifier","src":"2098:5:65"},{"kind":"number","nativeSrc":"2105:4:65","nodeType":"YulLiteral","src":"2105:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2094:3:65","nodeType":"YulIdentifier","src":"2094:3:65"},"nativeSrc":"2094:16:65","nodeType":"YulFunctionCall","src":"2094:16:65"},"variables":[{"name":"dst","nativeSrc":"2087:3:65","nodeType":"YulTypedName","src":"2087:3:65","type":""}]},{"body":{"nativeSrc":"2148:83:65","nodeType":"YulBlock","src":"2148:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2150:77:65","nodeType":"YulIdentifier","src":"2150:77:65"},"nativeSrc":"2150:79:65","nodeType":"YulFunctionCall","src":"2150:79:65"},"nativeSrc":"2150:79:65","nodeType":"YulExpressionStatement","src":"2150:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2129:3:65","nodeType":"YulIdentifier","src":"2129:3:65"},{"name":"length","nativeSrc":"2134:6:65","nodeType":"YulIdentifier","src":"2134:6:65"}],"functionName":{"name":"add","nativeSrc":"2125:3:65","nodeType":"YulIdentifier","src":"2125:3:65"},"nativeSrc":"2125:16:65","nodeType":"YulFunctionCall","src":"2125:16:65"},{"name":"end","nativeSrc":"2143:3:65","nodeType":"YulIdentifier","src":"2143:3:65"}],"functionName":{"name":"gt","nativeSrc":"2122:2:65","nodeType":"YulIdentifier","src":"2122:2:65"},"nativeSrc":"2122:25:65","nodeType":"YulFunctionCall","src":"2122:25:65"},"nativeSrc":"2119:112:65","nodeType":"YulIf","src":"2119:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2275:3:65","nodeType":"YulIdentifier","src":"2275:3:65"},{"name":"dst","nativeSrc":"2280:3:65","nodeType":"YulIdentifier","src":"2280:3:65"},{"name":"length","nativeSrc":"2285:6:65","nodeType":"YulIdentifier","src":"2285:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2240:34:65","nodeType":"YulIdentifier","src":"2240:34:65"},"nativeSrc":"2240:52:65","nodeType":"YulFunctionCall","src":"2240:52:65"},"nativeSrc":"2240:52:65","nodeType":"YulExpressionStatement","src":"2240:52:65"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1864:434:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1932:3:65","nodeType":"YulTypedName","src":"1932:3:65","type":""},{"name":"length","nativeSrc":"1937:6:65","nodeType":"YulTypedName","src":"1937:6:65","type":""},{"name":"end","nativeSrc":"1945:3:65","nodeType":"YulTypedName","src":"1945:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1953:5:65","nodeType":"YulTypedName","src":"1953:5:65","type":""}],"src":"1864:434:65"},{"body":{"nativeSrc":"2391:282:65","nodeType":"YulBlock","src":"2391:282:65","statements":[{"body":{"nativeSrc":"2440:83:65","nodeType":"YulBlock","src":"2440:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2442:77:65","nodeType":"YulIdentifier","src":"2442:77:65"},"nativeSrc":"2442:79:65","nodeType":"YulFunctionCall","src":"2442:79:65"},"nativeSrc":"2442:79:65","nodeType":"YulExpressionStatement","src":"2442:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2419:6:65","nodeType":"YulIdentifier","src":"2419:6:65"},{"kind":"number","nativeSrc":"2427:4:65","nodeType":"YulLiteral","src":"2427:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2415:3:65","nodeType":"YulIdentifier","src":"2415:3:65"},"nativeSrc":"2415:17:65","nodeType":"YulFunctionCall","src":"2415:17:65"},{"name":"end","nativeSrc":"2434:3:65","nodeType":"YulIdentifier","src":"2434:3:65"}],"functionName":{"name":"slt","nativeSrc":"2411:3:65","nodeType":"YulIdentifier","src":"2411:3:65"},"nativeSrc":"2411:27:65","nodeType":"YulFunctionCall","src":"2411:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2404:6:65","nodeType":"YulIdentifier","src":"2404:6:65"},"nativeSrc":"2404:35:65","nodeType":"YulFunctionCall","src":"2404:35:65"},"nativeSrc":"2401:122:65","nodeType":"YulIf","src":"2401:122:65"},{"nativeSrc":"2532:27:65","nodeType":"YulVariableDeclaration","src":"2532:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"2552:6:65","nodeType":"YulIdentifier","src":"2552:6:65"}],"functionName":{"name":"mload","nativeSrc":"2546:5:65","nodeType":"YulIdentifier","src":"2546:5:65"},"nativeSrc":"2546:13:65","nodeType":"YulFunctionCall","src":"2546:13:65"},"variables":[{"name":"length","nativeSrc":"2536:6:65","nodeType":"YulTypedName","src":"2536:6:65","type":""}]},{"nativeSrc":"2568:99:65","nodeType":"YulAssignment","src":"2568:99:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2640:6:65","nodeType":"YulIdentifier","src":"2640:6:65"},{"kind":"number","nativeSrc":"2648:4:65","nodeType":"YulLiteral","src":"2648:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2636:3:65","nodeType":"YulIdentifier","src":"2636:3:65"},"nativeSrc":"2636:17:65","nodeType":"YulFunctionCall","src":"2636:17:65"},{"name":"length","nativeSrc":"2655:6:65","nodeType":"YulIdentifier","src":"2655:6:65"},{"name":"end","nativeSrc":"2663:3:65","nodeType":"YulIdentifier","src":"2663:3:65"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2577:58:65","nodeType":"YulIdentifier","src":"2577:58:65"},"nativeSrc":"2577:90:65","nodeType":"YulFunctionCall","src":"2577:90:65"},"variableNames":[{"name":"array","nativeSrc":"2568:5:65","nodeType":"YulIdentifier","src":"2568:5:65"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2318:355:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2369:6:65","nodeType":"YulTypedName","src":"2369:6:65","type":""},{"name":"end","nativeSrc":"2377:3:65","nodeType":"YulTypedName","src":"2377:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2385:5:65","nodeType":"YulTypedName","src":"2385:5:65","type":""}],"src":"2318:355:65"},{"body":{"nativeSrc":"2793:739:65","nodeType":"YulBlock","src":"2793:739:65","statements":[{"body":{"nativeSrc":"2839:83:65","nodeType":"YulBlock","src":"2839:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2841:77:65","nodeType":"YulIdentifier","src":"2841:77:65"},"nativeSrc":"2841:79:65","nodeType":"YulFunctionCall","src":"2841:79:65"},"nativeSrc":"2841:79:65","nodeType":"YulExpressionStatement","src":"2841:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2814:7:65","nodeType":"YulIdentifier","src":"2814:7:65"},{"name":"headStart","nativeSrc":"2823:9:65","nodeType":"YulIdentifier","src":"2823:9:65"}],"functionName":{"name":"sub","nativeSrc":"2810:3:65","nodeType":"YulIdentifier","src":"2810:3:65"},"nativeSrc":"2810:23:65","nodeType":"YulFunctionCall","src":"2810:23:65"},{"kind":"number","nativeSrc":"2835:2:65","nodeType":"YulLiteral","src":"2835:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2806:3:65","nodeType":"YulIdentifier","src":"2806:3:65"},"nativeSrc":"2806:32:65","nodeType":"YulFunctionCall","src":"2806:32:65"},"nativeSrc":"2803:119:65","nodeType":"YulIf","src":"2803:119:65"},{"nativeSrc":"2932:291:65","nodeType":"YulBlock","src":"2932:291:65","statements":[{"nativeSrc":"2947:38:65","nodeType":"YulVariableDeclaration","src":"2947:38:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2971:9:65","nodeType":"YulIdentifier","src":"2971:9:65"},{"kind":"number","nativeSrc":"2982:1:65","nodeType":"YulLiteral","src":"2982:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2967:3:65","nodeType":"YulIdentifier","src":"2967:3:65"},"nativeSrc":"2967:17:65","nodeType":"YulFunctionCall","src":"2967:17:65"}],"functionName":{"name":"mload","nativeSrc":"2961:5:65","nodeType":"YulIdentifier","src":"2961:5:65"},"nativeSrc":"2961:24:65","nodeType":"YulFunctionCall","src":"2961:24:65"},"variables":[{"name":"offset","nativeSrc":"2951:6:65","nodeType":"YulTypedName","src":"2951:6:65","type":""}]},{"body":{"nativeSrc":"3032:83:65","nodeType":"YulBlock","src":"3032:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3034:77:65","nodeType":"YulIdentifier","src":"3034:77:65"},"nativeSrc":"3034:79:65","nodeType":"YulFunctionCall","src":"3034:79:65"},"nativeSrc":"3034:79:65","nodeType":"YulExpressionStatement","src":"3034:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3004:6:65","nodeType":"YulIdentifier","src":"3004:6:65"},{"kind":"number","nativeSrc":"3012:18:65","nodeType":"YulLiteral","src":"3012:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3001:2:65","nodeType":"YulIdentifier","src":"3001:2:65"},"nativeSrc":"3001:30:65","nodeType":"YulFunctionCall","src":"3001:30:65"},"nativeSrc":"2998:117:65","nodeType":"YulIf","src":"2998:117:65"},{"nativeSrc":"3129:84:65","nodeType":"YulAssignment","src":"3129:84:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3185:9:65","nodeType":"YulIdentifier","src":"3185:9:65"},{"name":"offset","nativeSrc":"3196:6:65","nodeType":"YulIdentifier","src":"3196:6:65"}],"functionName":{"name":"add","nativeSrc":"3181:3:65","nodeType":"YulIdentifier","src":"3181:3:65"},"nativeSrc":"3181:22:65","nodeType":"YulFunctionCall","src":"3181:22:65"},{"name":"dataEnd","nativeSrc":"3205:7:65","nodeType":"YulIdentifier","src":"3205:7:65"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3139:41:65","nodeType":"YulIdentifier","src":"3139:41:65"},"nativeSrc":"3139:74:65","nodeType":"YulFunctionCall","src":"3139:74:65"},"variableNames":[{"name":"value0","nativeSrc":"3129:6:65","nodeType":"YulIdentifier","src":"3129:6:65"}]}]},{"nativeSrc":"3233:292:65","nodeType":"YulBlock","src":"3233:292:65","statements":[{"nativeSrc":"3248:39:65","nodeType":"YulVariableDeclaration","src":"3248:39:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3272:9:65","nodeType":"YulIdentifier","src":"3272:9:65"},{"kind":"number","nativeSrc":"3283:2:65","nodeType":"YulLiteral","src":"3283:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3268:3:65","nodeType":"YulIdentifier","src":"3268:3:65"},"nativeSrc":"3268:18:65","nodeType":"YulFunctionCall","src":"3268:18:65"}],"functionName":{"name":"mload","nativeSrc":"3262:5:65","nodeType":"YulIdentifier","src":"3262:5:65"},"nativeSrc":"3262:25:65","nodeType":"YulFunctionCall","src":"3262:25:65"},"variables":[{"name":"offset","nativeSrc":"3252:6:65","nodeType":"YulTypedName","src":"3252:6:65","type":""}]},{"body":{"nativeSrc":"3334:83:65","nodeType":"YulBlock","src":"3334:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3336:77:65","nodeType":"YulIdentifier","src":"3336:77:65"},"nativeSrc":"3336:79:65","nodeType":"YulFunctionCall","src":"3336:79:65"},"nativeSrc":"3336:79:65","nodeType":"YulExpressionStatement","src":"3336:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3306:6:65","nodeType":"YulIdentifier","src":"3306:6:65"},{"kind":"number","nativeSrc":"3314:18:65","nodeType":"YulLiteral","src":"3314:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3303:2:65","nodeType":"YulIdentifier","src":"3303:2:65"},"nativeSrc":"3303:30:65","nodeType":"YulFunctionCall","src":"3303:30:65"},"nativeSrc":"3300:117:65","nodeType":"YulIf","src":"3300:117:65"},{"nativeSrc":"3431:84:65","nodeType":"YulAssignment","src":"3431:84:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3487:9:65","nodeType":"YulIdentifier","src":"3487:9:65"},{"name":"offset","nativeSrc":"3498:6:65","nodeType":"YulIdentifier","src":"3498:6:65"}],"functionName":{"name":"add","nativeSrc":"3483:3:65","nodeType":"YulIdentifier","src":"3483:3:65"},"nativeSrc":"3483:22:65","nodeType":"YulFunctionCall","src":"3483:22:65"},{"name":"dataEnd","nativeSrc":"3507:7:65","nodeType":"YulIdentifier","src":"3507:7:65"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3441:41:65","nodeType":"YulIdentifier","src":"3441:41:65"},"nativeSrc":"3441:74:65","nodeType":"YulFunctionCall","src":"3441:74:65"},"variableNames":[{"name":"value1","nativeSrc":"3431:6:65","nodeType":"YulIdentifier","src":"3431:6:65"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"2679:853:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2755:9:65","nodeType":"YulTypedName","src":"2755:9:65","type":""},{"name":"dataEnd","nativeSrc":"2766:7:65","nodeType":"YulTypedName","src":"2766:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2778:6:65","nodeType":"YulTypedName","src":"2778:6:65","type":""},{"name":"value1","nativeSrc":"2786:6:65","nodeType":"YulTypedName","src":"2786:6:65","type":""}],"src":"2679:853:65"},{"body":{"nativeSrc":"3597:40:65","nodeType":"YulBlock","src":"3597:40:65","statements":[{"nativeSrc":"3608:22:65","nodeType":"YulAssignment","src":"3608:22:65","value":{"arguments":[{"name":"value","nativeSrc":"3624:5:65","nodeType":"YulIdentifier","src":"3624:5:65"}],"functionName":{"name":"mload","nativeSrc":"3618:5:65","nodeType":"YulIdentifier","src":"3618:5:65"},"nativeSrc":"3618:12:65","nodeType":"YulFunctionCall","src":"3618:12:65"},"variableNames":[{"name":"length","nativeSrc":"3608:6:65","nodeType":"YulIdentifier","src":"3608:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3538:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3580:5:65","nodeType":"YulTypedName","src":"3580:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3590:6:65","nodeType":"YulTypedName","src":"3590:6:65","type":""}],"src":"3538:99:65"},{"body":{"nativeSrc":"3671:152:65","nodeType":"YulBlock","src":"3671:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3688:1:65","nodeType":"YulLiteral","src":"3688:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3691:77:65","nodeType":"YulLiteral","src":"3691:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3681:6:65","nodeType":"YulIdentifier","src":"3681:6:65"},"nativeSrc":"3681:88:65","nodeType":"YulFunctionCall","src":"3681:88:65"},"nativeSrc":"3681:88:65","nodeType":"YulExpressionStatement","src":"3681:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3785:1:65","nodeType":"YulLiteral","src":"3785:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"3788:4:65","nodeType":"YulLiteral","src":"3788:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"3778:6:65","nodeType":"YulIdentifier","src":"3778:6:65"},"nativeSrc":"3778:15:65","nodeType":"YulFunctionCall","src":"3778:15:65"},"nativeSrc":"3778:15:65","nodeType":"YulExpressionStatement","src":"3778:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3809:1:65","nodeType":"YulLiteral","src":"3809:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3812:4:65","nodeType":"YulLiteral","src":"3812:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3802:6:65","nodeType":"YulIdentifier","src":"3802:6:65"},"nativeSrc":"3802:15:65","nodeType":"YulFunctionCall","src":"3802:15:65"},"nativeSrc":"3802:15:65","nodeType":"YulExpressionStatement","src":"3802:15:65"}]},"name":"panic_error_0x22","nativeSrc":"3643:180:65","nodeType":"YulFunctionDefinition","src":"3643:180:65"},{"body":{"nativeSrc":"3880:269:65","nodeType":"YulBlock","src":"3880:269:65","statements":[{"nativeSrc":"3890:22:65","nodeType":"YulAssignment","src":"3890:22:65","value":{"arguments":[{"name":"data","nativeSrc":"3904:4:65","nodeType":"YulIdentifier","src":"3904:4:65"},{"kind":"number","nativeSrc":"3910:1:65","nodeType":"YulLiteral","src":"3910:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"3900:3:65","nodeType":"YulIdentifier","src":"3900:3:65"},"nativeSrc":"3900:12:65","nodeType":"YulFunctionCall","src":"3900:12:65"},"variableNames":[{"name":"length","nativeSrc":"3890:6:65","nodeType":"YulIdentifier","src":"3890:6:65"}]},{"nativeSrc":"3921:38:65","nodeType":"YulVariableDeclaration","src":"3921:38:65","value":{"arguments":[{"name":"data","nativeSrc":"3951:4:65","nodeType":"YulIdentifier","src":"3951:4:65"},{"kind":"number","nativeSrc":"3957:1:65","nodeType":"YulLiteral","src":"3957:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"3947:3:65","nodeType":"YulIdentifier","src":"3947:3:65"},"nativeSrc":"3947:12:65","nodeType":"YulFunctionCall","src":"3947:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"3925:18:65","nodeType":"YulTypedName","src":"3925:18:65","type":""}]},{"body":{"nativeSrc":"3998:51:65","nodeType":"YulBlock","src":"3998:51:65","statements":[{"nativeSrc":"4012:27:65","nodeType":"YulAssignment","src":"4012:27:65","value":{"arguments":[{"name":"length","nativeSrc":"4026:6:65","nodeType":"YulIdentifier","src":"4026:6:65"},{"kind":"number","nativeSrc":"4034:4:65","nodeType":"YulLiteral","src":"4034:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4022:3:65","nodeType":"YulIdentifier","src":"4022:3:65"},"nativeSrc":"4022:17:65","nodeType":"YulFunctionCall","src":"4022:17:65"},"variableNames":[{"name":"length","nativeSrc":"4012:6:65","nodeType":"YulIdentifier","src":"4012:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"3978:18:65","nodeType":"YulIdentifier","src":"3978:18:65"}],"functionName":{"name":"iszero","nativeSrc":"3971:6:65","nodeType":"YulIdentifier","src":"3971:6:65"},"nativeSrc":"3971:26:65","nodeType":"YulFunctionCall","src":"3971:26:65"},"nativeSrc":"3968:81:65","nodeType":"YulIf","src":"3968:81:65"},{"body":{"nativeSrc":"4101:42:65","nodeType":"YulBlock","src":"4101:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4115:16:65","nodeType":"YulIdentifier","src":"4115:16:65"},"nativeSrc":"4115:18:65","nodeType":"YulFunctionCall","src":"4115:18:65"},"nativeSrc":"4115:18:65","nodeType":"YulExpressionStatement","src":"4115:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4065:18:65","nodeType":"YulIdentifier","src":"4065:18:65"},{"arguments":[{"name":"length","nativeSrc":"4088:6:65","nodeType":"YulIdentifier","src":"4088:6:65"},{"kind":"number","nativeSrc":"4096:2:65","nodeType":"YulLiteral","src":"4096:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4085:2:65","nodeType":"YulIdentifier","src":"4085:2:65"},"nativeSrc":"4085:14:65","nodeType":"YulFunctionCall","src":"4085:14:65"}],"functionName":{"name":"eq","nativeSrc":"4062:2:65","nodeType":"YulIdentifier","src":"4062:2:65"},"nativeSrc":"4062:38:65","nodeType":"YulFunctionCall","src":"4062:38:65"},"nativeSrc":"4059:84:65","nodeType":"YulIf","src":"4059:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"3829:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3864:4:65","nodeType":"YulTypedName","src":"3864:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3873:6:65","nodeType":"YulTypedName","src":"3873:6:65","type":""}],"src":"3829:320:65"},{"body":{"nativeSrc":"4209:87:65","nodeType":"YulBlock","src":"4209:87:65","statements":[{"nativeSrc":"4219:11:65","nodeType":"YulAssignment","src":"4219:11:65","value":{"name":"ptr","nativeSrc":"4227:3:65","nodeType":"YulIdentifier","src":"4227:3:65"},"variableNames":[{"name":"data","nativeSrc":"4219:4:65","nodeType":"YulIdentifier","src":"4219:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4247:1:65","nodeType":"YulLiteral","src":"4247:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"4250:3:65","nodeType":"YulIdentifier","src":"4250:3:65"}],"functionName":{"name":"mstore","nativeSrc":"4240:6:65","nodeType":"YulIdentifier","src":"4240:6:65"},"nativeSrc":"4240:14:65","nodeType":"YulFunctionCall","src":"4240:14:65"},"nativeSrc":"4240:14:65","nodeType":"YulExpressionStatement","src":"4240:14:65"},{"nativeSrc":"4263:26:65","nodeType":"YulAssignment","src":"4263:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"4281:1:65","nodeType":"YulLiteral","src":"4281:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4284:4:65","nodeType":"YulLiteral","src":"4284:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4271:9:65","nodeType":"YulIdentifier","src":"4271:9:65"},"nativeSrc":"4271:18:65","nodeType":"YulFunctionCall","src":"4271:18:65"},"variableNames":[{"name":"data","nativeSrc":"4263:4:65","nodeType":"YulIdentifier","src":"4263:4:65"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4155:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4196:3:65","nodeType":"YulTypedName","src":"4196:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4204:4:65","nodeType":"YulTypedName","src":"4204:4:65","type":""}],"src":"4155:141:65"},{"body":{"nativeSrc":"4346:49:65","nodeType":"YulBlock","src":"4346:49:65","statements":[{"nativeSrc":"4356:33:65","nodeType":"YulAssignment","src":"4356:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4374:5:65","nodeType":"YulIdentifier","src":"4374:5:65"},{"kind":"number","nativeSrc":"4381:2:65","nodeType":"YulLiteral","src":"4381:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4370:3:65","nodeType":"YulIdentifier","src":"4370:3:65"},"nativeSrc":"4370:14:65","nodeType":"YulFunctionCall","src":"4370:14:65"},{"kind":"number","nativeSrc":"4386:2:65","nodeType":"YulLiteral","src":"4386:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4366:3:65","nodeType":"YulIdentifier","src":"4366:3:65"},"nativeSrc":"4366:23:65","nodeType":"YulFunctionCall","src":"4366:23:65"},"variableNames":[{"name":"result","nativeSrc":"4356:6:65","nodeType":"YulIdentifier","src":"4356:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4302:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4329:5:65","nodeType":"YulTypedName","src":"4329:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4339:6:65","nodeType":"YulTypedName","src":"4339:6:65","type":""}],"src":"4302:93:65"},{"body":{"nativeSrc":"4454:54:65","nodeType":"YulBlock","src":"4454:54:65","statements":[{"nativeSrc":"4464:37:65","nodeType":"YulAssignment","src":"4464:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"4489:4:65","nodeType":"YulIdentifier","src":"4489:4:65"},{"name":"value","nativeSrc":"4495:5:65","nodeType":"YulIdentifier","src":"4495:5:65"}],"functionName":{"name":"shl","nativeSrc":"4485:3:65","nodeType":"YulIdentifier","src":"4485:3:65"},"nativeSrc":"4485:16:65","nodeType":"YulFunctionCall","src":"4485:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"4464:8:65","nodeType":"YulIdentifier","src":"4464:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"4401:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4429:4:65","nodeType":"YulTypedName","src":"4429:4:65","type":""},{"name":"value","nativeSrc":"4435:5:65","nodeType":"YulTypedName","src":"4435:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4445:8:65","nodeType":"YulTypedName","src":"4445:8:65","type":""}],"src":"4401:107:65"},{"body":{"nativeSrc":"4590:317:65","nodeType":"YulBlock","src":"4590:317:65","statements":[{"nativeSrc":"4600:35:65","nodeType":"YulVariableDeclaration","src":"4600:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"4621:10:65","nodeType":"YulIdentifier","src":"4621:10:65"},{"kind":"number","nativeSrc":"4633:1:65","nodeType":"YulLiteral","src":"4633:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"4617:3:65","nodeType":"YulIdentifier","src":"4617:3:65"},"nativeSrc":"4617:18:65","nodeType":"YulFunctionCall","src":"4617:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"4604:9:65","nodeType":"YulTypedName","src":"4604:9:65","type":""}]},{"nativeSrc":"4644:109:65","nodeType":"YulVariableDeclaration","src":"4644:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"4675:9:65","nodeType":"YulIdentifier","src":"4675:9:65"},{"kind":"number","nativeSrc":"4686:66:65","nodeType":"YulLiteral","src":"4686:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"4656:18:65","nodeType":"YulIdentifier","src":"4656:18:65"},"nativeSrc":"4656:97:65","nodeType":"YulFunctionCall","src":"4656:97:65"},"variables":[{"name":"mask","nativeSrc":"4648:4:65","nodeType":"YulTypedName","src":"4648:4:65","type":""}]},{"nativeSrc":"4762:51:65","nodeType":"YulAssignment","src":"4762:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"4793:9:65","nodeType":"YulIdentifier","src":"4793:9:65"},{"name":"toInsert","nativeSrc":"4804:8:65","nodeType":"YulIdentifier","src":"4804:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"4774:18:65","nodeType":"YulIdentifier","src":"4774:18:65"},"nativeSrc":"4774:39:65","nodeType":"YulFunctionCall","src":"4774:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"4762:8:65","nodeType":"YulIdentifier","src":"4762:8:65"}]},{"nativeSrc":"4822:30:65","nodeType":"YulAssignment","src":"4822:30:65","value":{"arguments":[{"name":"value","nativeSrc":"4835:5:65","nodeType":"YulIdentifier","src":"4835:5:65"},{"arguments":[{"name":"mask","nativeSrc":"4846:4:65","nodeType":"YulIdentifier","src":"4846:4:65"}],"functionName":{"name":"not","nativeSrc":"4842:3:65","nodeType":"YulIdentifier","src":"4842:3:65"},"nativeSrc":"4842:9:65","nodeType":"YulFunctionCall","src":"4842:9:65"}],"functionName":{"name":"and","nativeSrc":"4831:3:65","nodeType":"YulIdentifier","src":"4831:3:65"},"nativeSrc":"4831:21:65","nodeType":"YulFunctionCall","src":"4831:21:65"},"variableNames":[{"name":"value","nativeSrc":"4822:5:65","nodeType":"YulIdentifier","src":"4822:5:65"}]},{"nativeSrc":"4861:40:65","nodeType":"YulAssignment","src":"4861:40:65","value":{"arguments":[{"name":"value","nativeSrc":"4874:5:65","nodeType":"YulIdentifier","src":"4874:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"4885:8:65","nodeType":"YulIdentifier","src":"4885:8:65"},{"name":"mask","nativeSrc":"4895:4:65","nodeType":"YulIdentifier","src":"4895:4:65"}],"functionName":{"name":"and","nativeSrc":"4881:3:65","nodeType":"YulIdentifier","src":"4881:3:65"},"nativeSrc":"4881:19:65","nodeType":"YulFunctionCall","src":"4881:19:65"}],"functionName":{"name":"or","nativeSrc":"4871:2:65","nodeType":"YulIdentifier","src":"4871:2:65"},"nativeSrc":"4871:30:65","nodeType":"YulFunctionCall","src":"4871:30:65"},"variableNames":[{"name":"result","nativeSrc":"4861:6:65","nodeType":"YulIdentifier","src":"4861:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"4514:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4551:5:65","nodeType":"YulTypedName","src":"4551:5:65","type":""},{"name":"shiftBytes","nativeSrc":"4558:10:65","nodeType":"YulTypedName","src":"4558:10:65","type":""},{"name":"toInsert","nativeSrc":"4570:8:65","nodeType":"YulTypedName","src":"4570:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4583:6:65","nodeType":"YulTypedName","src":"4583:6:65","type":""}],"src":"4514:393:65"},{"body":{"nativeSrc":"4958:32:65","nodeType":"YulBlock","src":"4958:32:65","statements":[{"nativeSrc":"4968:16:65","nodeType":"YulAssignment","src":"4968:16:65","value":{"name":"value","nativeSrc":"4979:5:65","nodeType":"YulIdentifier","src":"4979:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4968:7:65","nodeType":"YulIdentifier","src":"4968:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4913:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4940:5:65","nodeType":"YulTypedName","src":"4940:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4950:7:65","nodeType":"YulTypedName","src":"4950:7:65","type":""}],"src":"4913:77:65"},{"body":{"nativeSrc":"5028:28:65","nodeType":"YulBlock","src":"5028:28:65","statements":[{"nativeSrc":"5038:12:65","nodeType":"YulAssignment","src":"5038:12:65","value":{"name":"value","nativeSrc":"5045:5:65","nodeType":"YulIdentifier","src":"5045:5:65"},"variableNames":[{"name":"ret","nativeSrc":"5038:3:65","nodeType":"YulIdentifier","src":"5038:3:65"}]}]},"name":"identity","nativeSrc":"4996:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5014:5:65","nodeType":"YulTypedName","src":"5014:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5024:3:65","nodeType":"YulTypedName","src":"5024:3:65","type":""}],"src":"4996:60:65"},{"body":{"nativeSrc":"5122:82:65","nodeType":"YulBlock","src":"5122:82:65","statements":[{"nativeSrc":"5132:66:65","nodeType":"YulAssignment","src":"5132:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5190:5:65","nodeType":"YulIdentifier","src":"5190:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5172:17:65","nodeType":"YulIdentifier","src":"5172:17:65"},"nativeSrc":"5172:24:65","nodeType":"YulFunctionCall","src":"5172:24:65"}],"functionName":{"name":"identity","nativeSrc":"5163:8:65","nodeType":"YulIdentifier","src":"5163:8:65"},"nativeSrc":"5163:34:65","nodeType":"YulFunctionCall","src":"5163:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5145:17:65","nodeType":"YulIdentifier","src":"5145:17:65"},"nativeSrc":"5145:53:65","nodeType":"YulFunctionCall","src":"5145:53:65"},"variableNames":[{"name":"converted","nativeSrc":"5132:9:65","nodeType":"YulIdentifier","src":"5132:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5062:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5102:5:65","nodeType":"YulTypedName","src":"5102:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5112:9:65","nodeType":"YulTypedName","src":"5112:9:65","type":""}],"src":"5062:142:65"},{"body":{"nativeSrc":"5257:28:65","nodeType":"YulBlock","src":"5257:28:65","statements":[{"nativeSrc":"5267:12:65","nodeType":"YulAssignment","src":"5267:12:65","value":{"name":"value","nativeSrc":"5274:5:65","nodeType":"YulIdentifier","src":"5274:5:65"},"variableNames":[{"name":"ret","nativeSrc":"5267:3:65","nodeType":"YulIdentifier","src":"5267:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5210:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5243:5:65","nodeType":"YulTypedName","src":"5243:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5253:3:65","nodeType":"YulTypedName","src":"5253:3:65","type":""}],"src":"5210:75:65"},{"body":{"nativeSrc":"5367:193:65","nodeType":"YulBlock","src":"5367:193:65","statements":[{"nativeSrc":"5377:63:65","nodeType":"YulVariableDeclaration","src":"5377:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"5432:7:65","nodeType":"YulIdentifier","src":"5432:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5401:30:65","nodeType":"YulIdentifier","src":"5401:30:65"},"nativeSrc":"5401:39:65","nodeType":"YulFunctionCall","src":"5401:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"5381:16:65","nodeType":"YulTypedName","src":"5381:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5456:4:65","nodeType":"YulIdentifier","src":"5456:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5496:4:65","nodeType":"YulIdentifier","src":"5496:4:65"}],"functionName":{"name":"sload","nativeSrc":"5490:5:65","nodeType":"YulIdentifier","src":"5490:5:65"},"nativeSrc":"5490:11:65","nodeType":"YulFunctionCall","src":"5490:11:65"},{"name":"offset","nativeSrc":"5503:6:65","nodeType":"YulIdentifier","src":"5503:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"5535:16:65","nodeType":"YulIdentifier","src":"5535:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"5511:23:65","nodeType":"YulIdentifier","src":"5511:23:65"},"nativeSrc":"5511:41:65","nodeType":"YulFunctionCall","src":"5511:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5462:27:65","nodeType":"YulIdentifier","src":"5462:27:65"},"nativeSrc":"5462:91:65","nodeType":"YulFunctionCall","src":"5462:91:65"}],"functionName":{"name":"sstore","nativeSrc":"5449:6:65","nodeType":"YulIdentifier","src":"5449:6:65"},"nativeSrc":"5449:105:65","nodeType":"YulFunctionCall","src":"5449:105:65"},"nativeSrc":"5449:105:65","nodeType":"YulExpressionStatement","src":"5449:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5291:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5344:4:65","nodeType":"YulTypedName","src":"5344:4:65","type":""},{"name":"offset","nativeSrc":"5350:6:65","nodeType":"YulTypedName","src":"5350:6:65","type":""},{"name":"value_0","nativeSrc":"5358:7:65","nodeType":"YulTypedName","src":"5358:7:65","type":""}],"src":"5291:269:65"},{"body":{"nativeSrc":"5615:24:65","nodeType":"YulBlock","src":"5615:24:65","statements":[{"nativeSrc":"5625:8:65","nodeType":"YulAssignment","src":"5625:8:65","value":{"kind":"number","nativeSrc":"5632:1:65","nodeType":"YulLiteral","src":"5632:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"5625:3:65","nodeType":"YulIdentifier","src":"5625:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"5566:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"5611:3:65","nodeType":"YulTypedName","src":"5611:3:65","type":""}],"src":"5566:73:65"},{"body":{"nativeSrc":"5698:136:65","nodeType":"YulBlock","src":"5698:136:65","statements":[{"nativeSrc":"5708:46:65","nodeType":"YulVariableDeclaration","src":"5708:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"5722:30:65","nodeType":"YulIdentifier","src":"5722:30:65"},"nativeSrc":"5722:32:65","nodeType":"YulFunctionCall","src":"5722:32:65"},"variables":[{"name":"zero_0","nativeSrc":"5712:6:65","nodeType":"YulTypedName","src":"5712:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5807:4:65","nodeType":"YulIdentifier","src":"5807:4:65"},{"name":"offset","nativeSrc":"5813:6:65","nodeType":"YulIdentifier","src":"5813:6:65"},{"name":"zero_0","nativeSrc":"5821:6:65","nodeType":"YulIdentifier","src":"5821:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5763:43:65","nodeType":"YulIdentifier","src":"5763:43:65"},"nativeSrc":"5763:65:65","nodeType":"YulFunctionCall","src":"5763:65:65"},"nativeSrc":"5763:65:65","nodeType":"YulExpressionStatement","src":"5763:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"5645:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5684:4:65","nodeType":"YulTypedName","src":"5684:4:65","type":""},{"name":"offset","nativeSrc":"5690:6:65","nodeType":"YulTypedName","src":"5690:6:65","type":""}],"src":"5645:189:65"},{"body":{"nativeSrc":"5890:136:65","nodeType":"YulBlock","src":"5890:136:65","statements":[{"body":{"nativeSrc":"5957:63:65","nodeType":"YulBlock","src":"5957:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6001:5:65","nodeType":"YulIdentifier","src":"6001:5:65"},{"kind":"number","nativeSrc":"6008:1:65","nodeType":"YulLiteral","src":"6008:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"5971:29:65","nodeType":"YulIdentifier","src":"5971:29:65"},"nativeSrc":"5971:39:65","nodeType":"YulFunctionCall","src":"5971:39:65"},"nativeSrc":"5971:39:65","nodeType":"YulExpressionStatement","src":"5971:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"5910:5:65","nodeType":"YulIdentifier","src":"5910:5:65"},{"name":"end","nativeSrc":"5917:3:65","nodeType":"YulIdentifier","src":"5917:3:65"}],"functionName":{"name":"lt","nativeSrc":"5907:2:65","nodeType":"YulIdentifier","src":"5907:2:65"},"nativeSrc":"5907:14:65","nodeType":"YulFunctionCall","src":"5907:14:65"},"nativeSrc":"5900:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"5922:26:65","nodeType":"YulBlock","src":"5922:26:65","statements":[{"nativeSrc":"5924:22:65","nodeType":"YulAssignment","src":"5924:22:65","value":{"arguments":[{"name":"start","nativeSrc":"5937:5:65","nodeType":"YulIdentifier","src":"5937:5:65"},{"kind":"number","nativeSrc":"5944:1:65","nodeType":"YulLiteral","src":"5944:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5933:3:65","nodeType":"YulIdentifier","src":"5933:3:65"},"nativeSrc":"5933:13:65","nodeType":"YulFunctionCall","src":"5933:13:65"},"variableNames":[{"name":"start","nativeSrc":"5924:5:65","nodeType":"YulIdentifier","src":"5924:5:65"}]}]},"pre":{"nativeSrc":"5904:2:65","nodeType":"YulBlock","src":"5904:2:65","statements":[]},"src":"5900:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"5840:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"5878:5:65","nodeType":"YulTypedName","src":"5878:5:65","type":""},{"name":"end","nativeSrc":"5885:3:65","nodeType":"YulTypedName","src":"5885:3:65","type":""}],"src":"5840:186:65"},{"body":{"nativeSrc":"6111:464:65","nodeType":"YulBlock","src":"6111:464:65","statements":[{"body":{"nativeSrc":"6137:431:65","nodeType":"YulBlock","src":"6137:431:65","statements":[{"nativeSrc":"6151:54:65","nodeType":"YulVariableDeclaration","src":"6151:54:65","value":{"arguments":[{"name":"array","nativeSrc":"6199:5:65","nodeType":"YulIdentifier","src":"6199:5:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6167:31:65","nodeType":"YulIdentifier","src":"6167:31:65"},"nativeSrc":"6167:38:65","nodeType":"YulFunctionCall","src":"6167:38:65"},"variables":[{"name":"dataArea","nativeSrc":"6155:8:65","nodeType":"YulTypedName","src":"6155:8:65","type":""}]},{"nativeSrc":"6218:63:65","nodeType":"YulVariableDeclaration","src":"6218:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"6241:8:65","nodeType":"YulIdentifier","src":"6241:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"6269:10:65","nodeType":"YulIdentifier","src":"6269:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6251:17:65","nodeType":"YulIdentifier","src":"6251:17:65"},"nativeSrc":"6251:29:65","nodeType":"YulFunctionCall","src":"6251:29:65"}],"functionName":{"name":"add","nativeSrc":"6237:3:65","nodeType":"YulIdentifier","src":"6237:3:65"},"nativeSrc":"6237:44:65","nodeType":"YulFunctionCall","src":"6237:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"6222:11:65","nodeType":"YulTypedName","src":"6222:11:65","type":""}]},{"body":{"nativeSrc":"6438:27:65","nodeType":"YulBlock","src":"6438:27:65","statements":[{"nativeSrc":"6440:23:65","nodeType":"YulAssignment","src":"6440:23:65","value":{"name":"dataArea","nativeSrc":"6455:8:65","nodeType":"YulIdentifier","src":"6455:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"6440:11:65","nodeType":"YulIdentifier","src":"6440:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6422:10:65","nodeType":"YulIdentifier","src":"6422:10:65"},{"kind":"number","nativeSrc":"6434:2:65","nodeType":"YulLiteral","src":"6434:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6419:2:65","nodeType":"YulIdentifier","src":"6419:2:65"},"nativeSrc":"6419:18:65","nodeType":"YulFunctionCall","src":"6419:18:65"},"nativeSrc":"6416:49:65","nodeType":"YulIf","src":"6416:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"6507:11:65","nodeType":"YulIdentifier","src":"6507:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"6524:8:65","nodeType":"YulIdentifier","src":"6524:8:65"},{"arguments":[{"name":"len","nativeSrc":"6552:3:65","nodeType":"YulIdentifier","src":"6552:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6534:17:65","nodeType":"YulIdentifier","src":"6534:17:65"},"nativeSrc":"6534:22:65","nodeType":"YulFunctionCall","src":"6534:22:65"}],"functionName":{"name":"add","nativeSrc":"6520:3:65","nodeType":"YulIdentifier","src":"6520:3:65"},"nativeSrc":"6520:37:65","nodeType":"YulFunctionCall","src":"6520:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6478:28:65","nodeType":"YulIdentifier","src":"6478:28:65"},"nativeSrc":"6478:80:65","nodeType":"YulFunctionCall","src":"6478:80:65"},"nativeSrc":"6478:80:65","nodeType":"YulExpressionStatement","src":"6478:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6128:3:65","nodeType":"YulIdentifier","src":"6128:3:65"},{"kind":"number","nativeSrc":"6133:2:65","nodeType":"YulLiteral","src":"6133:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6125:2:65","nodeType":"YulIdentifier","src":"6125:2:65"},"nativeSrc":"6125:11:65","nodeType":"YulFunctionCall","src":"6125:11:65"},"nativeSrc":"6122:446:65","nodeType":"YulIf","src":"6122:446:65"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6032:543:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6087:5:65","nodeType":"YulTypedName","src":"6087:5:65","type":""},{"name":"len","nativeSrc":"6094:3:65","nodeType":"YulTypedName","src":"6094:3:65","type":""},{"name":"startIndex","nativeSrc":"6099:10:65","nodeType":"YulTypedName","src":"6099:10:65","type":""}],"src":"6032:543:65"},{"body":{"nativeSrc":"6644:54:65","nodeType":"YulBlock","src":"6644:54:65","statements":[{"nativeSrc":"6654:37:65","nodeType":"YulAssignment","src":"6654:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"6679:4:65","nodeType":"YulIdentifier","src":"6679:4:65"},{"name":"value","nativeSrc":"6685:5:65","nodeType":"YulIdentifier","src":"6685:5:65"}],"functionName":{"name":"shr","nativeSrc":"6675:3:65","nodeType":"YulIdentifier","src":"6675:3:65"},"nativeSrc":"6675:16:65","nodeType":"YulFunctionCall","src":"6675:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"6654:8:65","nodeType":"YulIdentifier","src":"6654:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"6581:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"6619:4:65","nodeType":"YulTypedName","src":"6619:4:65","type":""},{"name":"value","nativeSrc":"6625:5:65","nodeType":"YulTypedName","src":"6625:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6635:8:65","nodeType":"YulTypedName","src":"6635:8:65","type":""}],"src":"6581:117:65"},{"body":{"nativeSrc":"6755:118:65","nodeType":"YulBlock","src":"6755:118:65","statements":[{"nativeSrc":"6765:68:65","nodeType":"YulVariableDeclaration","src":"6765:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6814:1:65","nodeType":"YulLiteral","src":"6814:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"6817:5:65","nodeType":"YulIdentifier","src":"6817:5:65"}],"functionName":{"name":"mul","nativeSrc":"6810:3:65","nodeType":"YulIdentifier","src":"6810:3:65"},"nativeSrc":"6810:13:65","nodeType":"YulFunctionCall","src":"6810:13:65"},{"arguments":[{"kind":"number","nativeSrc":"6829:1:65","nodeType":"YulLiteral","src":"6829:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6825:3:65","nodeType":"YulIdentifier","src":"6825:3:65"},"nativeSrc":"6825:6:65","nodeType":"YulFunctionCall","src":"6825:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"6781:28:65","nodeType":"YulIdentifier","src":"6781:28:65"},"nativeSrc":"6781:51:65","nodeType":"YulFunctionCall","src":"6781:51:65"}],"functionName":{"name":"not","nativeSrc":"6777:3:65","nodeType":"YulIdentifier","src":"6777:3:65"},"nativeSrc":"6777:56:65","nodeType":"YulFunctionCall","src":"6777:56:65"},"variables":[{"name":"mask","nativeSrc":"6769:4:65","nodeType":"YulTypedName","src":"6769:4:65","type":""}]},{"nativeSrc":"6842:25:65","nodeType":"YulAssignment","src":"6842:25:65","value":{"arguments":[{"name":"data","nativeSrc":"6856:4:65","nodeType":"YulIdentifier","src":"6856:4:65"},{"name":"mask","nativeSrc":"6862:4:65","nodeType":"YulIdentifier","src":"6862:4:65"}],"functionName":{"name":"and","nativeSrc":"6852:3:65","nodeType":"YulIdentifier","src":"6852:3:65"},"nativeSrc":"6852:15:65","nodeType":"YulFunctionCall","src":"6852:15:65"},"variableNames":[{"name":"result","nativeSrc":"6842:6:65","nodeType":"YulIdentifier","src":"6842:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"6704:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6732:4:65","nodeType":"YulTypedName","src":"6732:4:65","type":""},{"name":"bytes","nativeSrc":"6738:5:65","nodeType":"YulTypedName","src":"6738:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"6748:6:65","nodeType":"YulTypedName","src":"6748:6:65","type":""}],"src":"6704:169:65"},{"body":{"nativeSrc":"6959:214:65","nodeType":"YulBlock","src":"6959:214:65","statements":[{"nativeSrc":"7092:37:65","nodeType":"YulAssignment","src":"7092:37:65","value":{"arguments":[{"name":"data","nativeSrc":"7119:4:65","nodeType":"YulIdentifier","src":"7119:4:65"},{"name":"len","nativeSrc":"7125:3:65","nodeType":"YulIdentifier","src":"7125:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7100:18:65","nodeType":"YulIdentifier","src":"7100:18:65"},"nativeSrc":"7100:29:65","nodeType":"YulFunctionCall","src":"7100:29:65"},"variableNames":[{"name":"data","nativeSrc":"7092:4:65","nodeType":"YulIdentifier","src":"7092:4:65"}]},{"nativeSrc":"7138:29:65","nodeType":"YulAssignment","src":"7138:29:65","value":{"arguments":[{"name":"data","nativeSrc":"7149:4:65","nodeType":"YulIdentifier","src":"7149:4:65"},{"arguments":[{"kind":"number","nativeSrc":"7159:1:65","nodeType":"YulLiteral","src":"7159:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"7162:3:65","nodeType":"YulIdentifier","src":"7162:3:65"}],"functionName":{"name":"mul","nativeSrc":"7155:3:65","nodeType":"YulIdentifier","src":"7155:3:65"},"nativeSrc":"7155:11:65","nodeType":"YulFunctionCall","src":"7155:11:65"}],"functionName":{"name":"or","nativeSrc":"7146:2:65","nodeType":"YulIdentifier","src":"7146:2:65"},"nativeSrc":"7146:21:65","nodeType":"YulFunctionCall","src":"7146:21:65"},"variableNames":[{"name":"used","nativeSrc":"7138:4:65","nodeType":"YulIdentifier","src":"7138:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6878:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6940:4:65","nodeType":"YulTypedName","src":"6940:4:65","type":""},{"name":"len","nativeSrc":"6946:3:65","nodeType":"YulTypedName","src":"6946:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"6954:4:65","nodeType":"YulTypedName","src":"6954:4:65","type":""}],"src":"6878:295:65"},{"body":{"nativeSrc":"7270:1303:65","nodeType":"YulBlock","src":"7270:1303:65","statements":[{"nativeSrc":"7281:51:65","nodeType":"YulVariableDeclaration","src":"7281:51:65","value":{"arguments":[{"name":"src","nativeSrc":"7328:3:65","nodeType":"YulIdentifier","src":"7328:3:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7295:32:65","nodeType":"YulIdentifier","src":"7295:32:65"},"nativeSrc":"7295:37:65","nodeType":"YulFunctionCall","src":"7295:37:65"},"variables":[{"name":"newLen","nativeSrc":"7285:6:65","nodeType":"YulTypedName","src":"7285:6:65","type":""}]},{"body":{"nativeSrc":"7417:22:65","nodeType":"YulBlock","src":"7417:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7419:16:65","nodeType":"YulIdentifier","src":"7419:16:65"},"nativeSrc":"7419:18:65","nodeType":"YulFunctionCall","src":"7419:18:65"},"nativeSrc":"7419:18:65","nodeType":"YulExpressionStatement","src":"7419:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7389:6:65","nodeType":"YulIdentifier","src":"7389:6:65"},{"kind":"number","nativeSrc":"7397:18:65","nodeType":"YulLiteral","src":"7397:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7386:2:65","nodeType":"YulIdentifier","src":"7386:2:65"},"nativeSrc":"7386:30:65","nodeType":"YulFunctionCall","src":"7386:30:65"},"nativeSrc":"7383:56:65","nodeType":"YulIf","src":"7383:56:65"},{"nativeSrc":"7449:52:65","nodeType":"YulVariableDeclaration","src":"7449:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"7495:4:65","nodeType":"YulIdentifier","src":"7495:4:65"}],"functionName":{"name":"sload","nativeSrc":"7489:5:65","nodeType":"YulIdentifier","src":"7489:5:65"},"nativeSrc":"7489:11:65","nodeType":"YulFunctionCall","src":"7489:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7463:25:65","nodeType":"YulIdentifier","src":"7463:25:65"},"nativeSrc":"7463:38:65","nodeType":"YulFunctionCall","src":"7463:38:65"},"variables":[{"name":"oldLen","nativeSrc":"7453:6:65","nodeType":"YulTypedName","src":"7453:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"7594:4:65","nodeType":"YulIdentifier","src":"7594:4:65"},{"name":"oldLen","nativeSrc":"7600:6:65","nodeType":"YulIdentifier","src":"7600:6:65"},{"name":"newLen","nativeSrc":"7608:6:65","nodeType":"YulIdentifier","src":"7608:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"7548:45:65","nodeType":"YulIdentifier","src":"7548:45:65"},"nativeSrc":"7548:67:65","nodeType":"YulFunctionCall","src":"7548:67:65"},"nativeSrc":"7548:67:65","nodeType":"YulExpressionStatement","src":"7548:67:65"},{"nativeSrc":"7625:18:65","nodeType":"YulVariableDeclaration","src":"7625:18:65","value":{"kind":"number","nativeSrc":"7642:1:65","nodeType":"YulLiteral","src":"7642:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"7629:9:65","nodeType":"YulTypedName","src":"7629:9:65","type":""}]},{"nativeSrc":"7653:17:65","nodeType":"YulAssignment","src":"7653:17:65","value":{"kind":"number","nativeSrc":"7666:4:65","nodeType":"YulLiteral","src":"7666:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"7653:9:65","nodeType":"YulIdentifier","src":"7653:9:65"}]},{"cases":[{"body":{"nativeSrc":"7717:611:65","nodeType":"YulBlock","src":"7717:611:65","statements":[{"nativeSrc":"7731:37:65","nodeType":"YulVariableDeclaration","src":"7731:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"7750:6:65","nodeType":"YulIdentifier","src":"7750:6:65"},{"arguments":[{"kind":"number","nativeSrc":"7762:4:65","nodeType":"YulLiteral","src":"7762:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"7758:3:65","nodeType":"YulIdentifier","src":"7758:3:65"},"nativeSrc":"7758:9:65","nodeType":"YulFunctionCall","src":"7758:9:65"}],"functionName":{"name":"and","nativeSrc":"7746:3:65","nodeType":"YulIdentifier","src":"7746:3:65"},"nativeSrc":"7746:22:65","nodeType":"YulFunctionCall","src":"7746:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"7735:7:65","nodeType":"YulTypedName","src":"7735:7:65","type":""}]},{"nativeSrc":"7782:51:65","nodeType":"YulVariableDeclaration","src":"7782:51:65","value":{"arguments":[{"name":"slot","nativeSrc":"7828:4:65","nodeType":"YulIdentifier","src":"7828:4:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"7796:31:65","nodeType":"YulIdentifier","src":"7796:31:65"},"nativeSrc":"7796:37:65","nodeType":"YulFunctionCall","src":"7796:37:65"},"variables":[{"name":"dstPtr","nativeSrc":"7786:6:65","nodeType":"YulTypedName","src":"7786:6:65","type":""}]},{"nativeSrc":"7846:10:65","nodeType":"YulVariableDeclaration","src":"7846:10:65","value":{"kind":"number","nativeSrc":"7855:1:65","nodeType":"YulLiteral","src":"7855:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7850:1:65","nodeType":"YulTypedName","src":"7850:1:65","type":""}]},{"body":{"nativeSrc":"7914:163:65","nodeType":"YulBlock","src":"7914:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"7939:6:65","nodeType":"YulIdentifier","src":"7939:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7957:3:65","nodeType":"YulIdentifier","src":"7957:3:65"},{"name":"srcOffset","nativeSrc":"7962:9:65","nodeType":"YulIdentifier","src":"7962:9:65"}],"functionName":{"name":"add","nativeSrc":"7953:3:65","nodeType":"YulIdentifier","src":"7953:3:65"},"nativeSrc":"7953:19:65","nodeType":"YulFunctionCall","src":"7953:19:65"}],"functionName":{"name":"mload","nativeSrc":"7947:5:65","nodeType":"YulIdentifier","src":"7947:5:65"},"nativeSrc":"7947:26:65","nodeType":"YulFunctionCall","src":"7947:26:65"}],"functionName":{"name":"sstore","nativeSrc":"7932:6:65","nodeType":"YulIdentifier","src":"7932:6:65"},"nativeSrc":"7932:42:65","nodeType":"YulFunctionCall","src":"7932:42:65"},"nativeSrc":"7932:42:65","nodeType":"YulExpressionStatement","src":"7932:42:65"},{"nativeSrc":"7991:24:65","nodeType":"YulAssignment","src":"7991:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8005:6:65","nodeType":"YulIdentifier","src":"8005:6:65"},{"kind":"number","nativeSrc":"8013:1:65","nodeType":"YulLiteral","src":"8013:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8001:3:65","nodeType":"YulIdentifier","src":"8001:3:65"},"nativeSrc":"8001:14:65","nodeType":"YulFunctionCall","src":"8001:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"7991:6:65","nodeType":"YulIdentifier","src":"7991:6:65"}]},{"nativeSrc":"8032:31:65","nodeType":"YulAssignment","src":"8032:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8049:9:65","nodeType":"YulIdentifier","src":"8049:9:65"},{"kind":"number","nativeSrc":"8060:2:65","nodeType":"YulLiteral","src":"8060:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8045:3:65","nodeType":"YulIdentifier","src":"8045:3:65"},"nativeSrc":"8045:18:65","nodeType":"YulFunctionCall","src":"8045:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"8032:9:65","nodeType":"YulIdentifier","src":"8032:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7880:1:65","nodeType":"YulIdentifier","src":"7880:1:65"},{"name":"loopEnd","nativeSrc":"7883:7:65","nodeType":"YulIdentifier","src":"7883:7:65"}],"functionName":{"name":"lt","nativeSrc":"7877:2:65","nodeType":"YulIdentifier","src":"7877:2:65"},"nativeSrc":"7877:14:65","nodeType":"YulFunctionCall","src":"7877:14:65"},"nativeSrc":"7869:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"7892:21:65","nodeType":"YulBlock","src":"7892:21:65","statements":[{"nativeSrc":"7894:17:65","nodeType":"YulAssignment","src":"7894:17:65","value":{"arguments":[{"name":"i","nativeSrc":"7903:1:65","nodeType":"YulIdentifier","src":"7903:1:65"},{"kind":"number","nativeSrc":"7906:4:65","nodeType":"YulLiteral","src":"7906:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7899:3:65","nodeType":"YulIdentifier","src":"7899:3:65"},"nativeSrc":"7899:12:65","nodeType":"YulFunctionCall","src":"7899:12:65"},"variableNames":[{"name":"i","nativeSrc":"7894:1:65","nodeType":"YulIdentifier","src":"7894:1:65"}]}]},"pre":{"nativeSrc":"7873:3:65","nodeType":"YulBlock","src":"7873:3:65","statements":[]},"src":"7869:208:65"},{"body":{"nativeSrc":"8113:156:65","nodeType":"YulBlock","src":"8113:156:65","statements":[{"nativeSrc":"8131:43:65","nodeType":"YulVariableDeclaration","src":"8131:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8158:3:65","nodeType":"YulIdentifier","src":"8158:3:65"},{"name":"srcOffset","nativeSrc":"8163:9:65","nodeType":"YulIdentifier","src":"8163:9:65"}],"functionName":{"name":"add","nativeSrc":"8154:3:65","nodeType":"YulIdentifier","src":"8154:3:65"},"nativeSrc":"8154:19:65","nodeType":"YulFunctionCall","src":"8154:19:65"}],"functionName":{"name":"mload","nativeSrc":"8148:5:65","nodeType":"YulIdentifier","src":"8148:5:65"},"nativeSrc":"8148:26:65","nodeType":"YulFunctionCall","src":"8148:26:65"},"variables":[{"name":"lastValue","nativeSrc":"8135:9:65","nodeType":"YulTypedName","src":"8135:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8198:6:65","nodeType":"YulIdentifier","src":"8198:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"8225:9:65","nodeType":"YulIdentifier","src":"8225:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"8240:6:65","nodeType":"YulIdentifier","src":"8240:6:65"},{"kind":"number","nativeSrc":"8248:4:65","nodeType":"YulLiteral","src":"8248:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8236:3:65","nodeType":"YulIdentifier","src":"8236:3:65"},"nativeSrc":"8236:17:65","nodeType":"YulFunctionCall","src":"8236:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8206:18:65","nodeType":"YulIdentifier","src":"8206:18:65"},"nativeSrc":"8206:48:65","nodeType":"YulFunctionCall","src":"8206:48:65"}],"functionName":{"name":"sstore","nativeSrc":"8191:6:65","nodeType":"YulIdentifier","src":"8191:6:65"},"nativeSrc":"8191:64:65","nodeType":"YulFunctionCall","src":"8191:64:65"},"nativeSrc":"8191:64:65","nodeType":"YulExpressionStatement","src":"8191:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8096:7:65","nodeType":"YulIdentifier","src":"8096:7:65"},{"name":"newLen","nativeSrc":"8105:6:65","nodeType":"YulIdentifier","src":"8105:6:65"}],"functionName":{"name":"lt","nativeSrc":"8093:2:65","nodeType":"YulIdentifier","src":"8093:2:65"},"nativeSrc":"8093:19:65","nodeType":"YulFunctionCall","src":"8093:19:65"},"nativeSrc":"8090:179:65","nodeType":"YulIf","src":"8090:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8289:4:65","nodeType":"YulIdentifier","src":"8289:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8303:6:65","nodeType":"YulIdentifier","src":"8303:6:65"},{"kind":"number","nativeSrc":"8311:1:65","nodeType":"YulLiteral","src":"8311:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8299:3:65","nodeType":"YulIdentifier","src":"8299:3:65"},"nativeSrc":"8299:14:65","nodeType":"YulFunctionCall","src":"8299:14:65"},{"kind":"number","nativeSrc":"8315:1:65","nodeType":"YulLiteral","src":"8315:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8295:3:65","nodeType":"YulIdentifier","src":"8295:3:65"},"nativeSrc":"8295:22:65","nodeType":"YulFunctionCall","src":"8295:22:65"}],"functionName":{"name":"sstore","nativeSrc":"8282:6:65","nodeType":"YulIdentifier","src":"8282:6:65"},"nativeSrc":"8282:36:65","nodeType":"YulFunctionCall","src":"8282:36:65"},"nativeSrc":"8282:36:65","nodeType":"YulExpressionStatement","src":"8282:36:65"}]},"nativeSrc":"7710:618:65","nodeType":"YulCase","src":"7710:618:65","value":{"kind":"number","nativeSrc":"7715:1:65","nodeType":"YulLiteral","src":"7715:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"8345:222:65","nodeType":"YulBlock","src":"8345:222:65","statements":[{"nativeSrc":"8359:14:65","nodeType":"YulVariableDeclaration","src":"8359:14:65","value":{"kind":"number","nativeSrc":"8372:1:65","nodeType":"YulLiteral","src":"8372:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8363:5:65","nodeType":"YulTypedName","src":"8363:5:65","type":""}]},{"body":{"nativeSrc":"8396:67:65","nodeType":"YulBlock","src":"8396:67:65","statements":[{"nativeSrc":"8414:35:65","nodeType":"YulAssignment","src":"8414:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8433:3:65","nodeType":"YulIdentifier","src":"8433:3:65"},{"name":"srcOffset","nativeSrc":"8438:9:65","nodeType":"YulIdentifier","src":"8438:9:65"}],"functionName":{"name":"add","nativeSrc":"8429:3:65","nodeType":"YulIdentifier","src":"8429:3:65"},"nativeSrc":"8429:19:65","nodeType":"YulFunctionCall","src":"8429:19:65"}],"functionName":{"name":"mload","nativeSrc":"8423:5:65","nodeType":"YulIdentifier","src":"8423:5:65"},"nativeSrc":"8423:26:65","nodeType":"YulFunctionCall","src":"8423:26:65"},"variableNames":[{"name":"value","nativeSrc":"8414:5:65","nodeType":"YulIdentifier","src":"8414:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"8389:6:65","nodeType":"YulIdentifier","src":"8389:6:65"},"nativeSrc":"8386:77:65","nodeType":"YulIf","src":"8386:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8483:4:65","nodeType":"YulIdentifier","src":"8483:4:65"},{"arguments":[{"name":"value","nativeSrc":"8542:5:65","nodeType":"YulIdentifier","src":"8542:5:65"},{"name":"newLen","nativeSrc":"8549:6:65","nodeType":"YulIdentifier","src":"8549:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"8489:52:65","nodeType":"YulIdentifier","src":"8489:52:65"},"nativeSrc":"8489:67:65","nodeType":"YulFunctionCall","src":"8489:67:65"}],"functionName":{"name":"sstore","nativeSrc":"8476:6:65","nodeType":"YulIdentifier","src":"8476:6:65"},"nativeSrc":"8476:81:65","nodeType":"YulFunctionCall","src":"8476:81:65"},"nativeSrc":"8476:81:65","nodeType":"YulExpressionStatement","src":"8476:81:65"}]},"nativeSrc":"8337:230:65","nodeType":"YulCase","src":"8337:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"7690:6:65","nodeType":"YulIdentifier","src":"7690:6:65"},{"kind":"number","nativeSrc":"7698:2:65","nodeType":"YulLiteral","src":"7698:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"7687:2:65","nodeType":"YulIdentifier","src":"7687:2:65"},"nativeSrc":"7687:14:65","nodeType":"YulFunctionCall","src":"7687:14:65"},"nativeSrc":"7680:887:65","nodeType":"YulSwitch","src":"7680:887:65"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7178:1395:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7259:4:65","nodeType":"YulTypedName","src":"7259:4:65","type":""},{"name":"src","nativeSrc":"7265:3:65","nodeType":"YulTypedName","src":"7265:3:65","type":""}],"src":"7178:1395:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610d45380380610d4583398101604081905261002f91610169565b600361003b83826102c5565b50600461004882826102c5565b505050610388565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171561008b5761008b610050565b6040525050565b600061009d60405190565b90506100a98282610066565b919050565b60006001600160401b038211156100c7576100c7610050565b601f19601f83011660200192915050565b60005b838110156100f35781810151838201526020016100db565b50506000910152565b600061010f61010a846100ae565b610092565b90508281526020810184848401111561012a5761012a600080fd5b6101358482856100d8565b509392505050565b600082601f83011261015157610151600080fd5b81516101618482602086016100fc565b949350505050565b6000806040838503121561017f5761017f600080fd5b82516001600160401b0381111561019857610198600080fd5b6101a48582860161013d565b92505060208301516001600160401b038111156101c3576101c3600080fd5b6101cf8582860161013d565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061020357607f821691505b602082108103610215576102156101d9565b50919050565b600061022a6102278381565b90565b92915050565b6102398361021b565b815460001960089490940293841b1916921b91909117905550565b6000610261818484610230565b505050565b8181101561028157610279600082610254565b600101610266565b5050565b601f821115610261576000818152602090206020601f850104810160208510156102ac5750805b6102be6020601f860104830182610266565b5050505050565b81516001600160401b038111156102de576102de610050565b6102e882546101ef565b6102f3828285610285565b6020601f831160018114610327576000841561030f5750858201515b600019600886021c1981166002860217865550610380565b600085815260208120601f198616915b828110156103575788850151825560209485019460019092019101610337565b868310156103735784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b6109ae806103976000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461011f57806370a082311461013257806395d89b411461015b578063a457c2d714610163578063a9059cbb14610176578063dd62ed3e1461018957600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ec57806323b872dd146100fd578063313ce56714610110575b600080fd5b6100b661019c565b6040516100c39190610560565b60405180910390f35b6100df6100da3660046105bc565b61022e565b6040516100c39190610603565b6002545b6040516100c39190610617565b6100df61010b366004610625565b610248565b60126040516100c3919061067e565b6100df61012d3660046105bc565b61026c565b6100f061014036600461068c565b6001600160a01b031660009081526020819052604090205490565b6100b661028e565b6100df6101713660046105bc565b61029d565b6100df6101843660046105bc565b6102e3565b6100f06101973660046106b5565b6102f1565b6060600380546101ab906106fe565b80601f01602080910402602001604051908101604052809291908181526020018280546101d7906106fe565b80156102245780601f106101f957610100808354040283529160200191610224565b820191906000526020600020905b81548152906001019060200180831161020757829003601f168201915b5050505050905090565b60003361023c81858561031c565b60019150505b92915050565b6000336102568582856103d0565b61026185858561041a565b506001949350505050565b60003361023c81858561027f83836102f1565b6102899190610740565b61031c565b6060600480546101ab906106fe565b600033816102ab82866102f1565b9050838110156102d65760405162461bcd60e51b81526004016102cd90610798565b60405180910390fd5b610261828686840361031c565b60003361023c81858561041a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103425760405162461bcd60e51b81526004016102cd906107e9565b6001600160a01b0382166103685760405162461bcd60e51b81526004016102cd90610838565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103c3908590610617565b60405180910390a3505050565b60006103dc84846102f1565b9050600019811461041457818110156104075760405162461bcd60e51b81526004016102cd90610848565b610414848484840361031c565b50505050565b6001600160a01b0383166104405760405162461bcd60e51b81526004016102cd906108c5565b6001600160a01b0382166104665760405162461bcd60e51b81526004016102cd90610915565b6001600160a01b0383166000908152602081905260409020548181101561049f5760405162461bcd60e51b81526004016102cd90610968565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104fd908690610617565b60405180910390a3610414565b60005b8381101561052557818101518382015260200161050d565b50506000910152565b6000610538825190565b80845260208401935061054f81856020860161050a565b601f01601f19169290920192915050565b60208082528101610571818461052e565b9392505050565b60006001600160a01b038216610242565b61059281610578565b811461059d57600080fd5b50565b803561024281610589565b80610592565b8035610242816105ab565b600080604083850312156105d2576105d2600080fd5b60006105de85856105a0565b92505060206105ef858286016105b1565b9150509250929050565b8015155b82525050565b6020810161024282846105f9565b806105fd565b602081016102428284610611565b60008060006060848603121561063d5761063d600080fd5b600061064986866105a0565b935050602061065a868287016105a0565b925050604061066b868287016105b1565b9150509250925092565b60ff81166105fd565b602081016102428284610675565b6000602082840312156106a1576106a1600080fd5b60006106ad84846105a0565b949350505050565b600080604083850312156106cb576106cb600080fd5b60006106d785856105a0565b92505060206105ef858286016105a0565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061071257607f821691505b602082108103610724576107246106e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102425761024261072a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161024281610753565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610791565b60208082528101610242816107a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610791565b60208082528101610242816107f9565b6020808252810161024281601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610791565b6020808252810161024281610883565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610791565b60208082528101610242816108d5565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610791565b602080825281016102428161092556fea26469706673582212205b3bdcab6564155831f52fbab21529be40e02e9eb49a8b7fb8710bcb7b6d337e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xD45 CODESIZE SUB DUP1 PUSH2 0xD45 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x169 JUMP JUMPDEST PUSH1 0x3 PUSH2 0x3B DUP4 DUP3 PUSH2 0x2C5 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x48 DUP3 DUP3 PUSH2 0x2C5 JUMP JUMPDEST POP POP POP PUSH2 0x388 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x8B JUMPI PUSH2 0x8B PUSH2 0x50 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9D PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xA9 DUP3 DUP3 PUSH2 0x66 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0xC7 JUMPI PUSH2 0xC7 PUSH2 0x50 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xDB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10F PUSH2 0x10A DUP5 PUSH2 0xAE JUMP JUMPDEST PUSH2 0x92 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x12A JUMPI PUSH2 0x12A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x135 DUP5 DUP3 DUP6 PUSH2 0xD8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x151 JUMPI PUSH2 0x151 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x161 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xFC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F JUMPI PUSH2 0x17F PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x198 JUMPI PUSH2 0x198 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A4 DUP6 DUP3 DUP7 ADD PUSH2 0x13D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C3 JUMPI PUSH2 0x1C3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CF DUP6 DUP3 DUP7 ADD PUSH2 0x13D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x203 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x215 JUMPI PUSH2 0x215 PUSH2 0x1D9 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22A PUSH2 0x227 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x239 DUP4 PUSH2 0x21B JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x261 DUP2 DUP5 DUP5 PUSH2 0x230 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x281 JUMPI PUSH2 0x279 PUSH1 0x0 DUP3 PUSH2 0x254 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2AC JUMPI POP DUP1 JUMPDEST PUSH2 0x2BE PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x266 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DE JUMPI PUSH2 0x2DE PUSH2 0x50 JUMP JUMPDEST PUSH2 0x2E8 DUP3 SLOAD PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x2F3 DUP3 DUP3 DUP6 PUSH2 0x285 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x327 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x30F JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x357 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x337 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x373 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9AE DUP1 PUSH2 0x397 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x189 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x110 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x625 JUMP JUMPDEST PUSH2 0x248 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x67E JUMP JUMPDEST PUSH2 0xDF PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST PUSH2 0xF0 PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0x68C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x28E JUMP JUMPDEST PUSH2 0xDF PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x29D JUMP JUMPDEST PUSH2 0xDF PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0xF0 PUSH2 0x197 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D7 SWAP1 PUSH2 0x6FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x224 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x224 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x207 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x256 DUP6 DUP3 DUP6 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x261 DUP6 DUP6 DUP6 PUSH2 0x41A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x27F DUP4 DUP4 PUSH2 0x2F1 JUMP JUMPDEST PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x740 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AB DUP3 DUP7 PUSH2 0x2F1 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x798 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x261 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x31C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x41A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x342 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3C3 SWAP1 DUP6 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC DUP5 DUP5 PUSH2 0x2F1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x414 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH2 0x414 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x31C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x8C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x915 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x49F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4FD SWAP1 DUP7 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x525 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x50D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x54F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x571 DUP2 DUP5 PUSH2 0x52E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x242 JUMP JUMPDEST PUSH2 0x592 DUP2 PUSH2 0x578 JUMP JUMPDEST DUP2 EQ PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x242 DUP2 PUSH2 0x589 JUMP JUMPDEST DUP1 PUSH2 0x592 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x242 DUP2 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5D2 JUMPI PUSH2 0x5D2 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5DE DUP6 DUP6 PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5EF DUP6 DUP3 DUP7 ADD PUSH2 0x5B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x5F9 JUMP JUMPDEST DUP1 PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x63D JUMPI PUSH2 0x63D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x649 DUP7 DUP7 PUSH2 0x5A0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x65A DUP7 DUP3 DUP8 ADD PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x675 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A1 JUMPI PUSH2 0x6A1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6AD DUP5 DUP5 PUSH2 0x5A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6CB JUMPI PUSH2 0x6CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6D7 DUP6 DUP6 PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5EF DUP6 DUP3 DUP7 ADD PUSH2 0x5A0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x712 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x724 JUMPI PUSH2 0x724 PUSH2 0x6E8 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x242 JUMPI PUSH2 0x242 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x883 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x8D5 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x925 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST EXTCODESIZE 0xDC 0xAB PUSH6 0x64155831F52F 0xBA 0xB2 ISZERO 0x29 0xBE BLOCKHASH 0xE0 0x2E SWAP15 0xB4 SWAP11 DUP12 PUSH32 0xB8710BCB7B6D337E64736F6C6343000819003300000000000000000000000000 ","sourceMap":"1532:11312:23:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:23;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;688:180:65;-1:-1:-1;;;733:1:65;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:65;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:65;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:65:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:65;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:65;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:65:o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1792:11;;;1786:18;1773:11;;;1766:39;1738:2;1731:10;1702:113;;;-1:-1:-1;;1849:1:65;1831:16;;1824:27;1610:248::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;197:1;194;187:12;2150:79;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;197:1;194;187:12;2442:79;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;2318:355;-1:-1:-1;;;;2318:355:65:o;2679:853::-;2778:6;2786;2835:2;2823:9;2814:7;2810:23;2806:32;2803:119;;;2841:79;197:1;194;187:12;2841:79;2961:24;;-1:-1:-1;;;;;3001:30:65;;2998:117;;;3034:79;197:1;194;187:12;3034:79;3139:74;3205:7;3196:6;3185:9;3181:22;3139:74;:::i;:::-;3129:84;;2932:291;3283:2;3272:9;3268:18;3262:25;-1:-1:-1;;;;;3306:6:65;3303:30;3300:117;;;3336:79;197:1;194;187:12;3336:79;3441:74;3507:7;3498:6;3487:9;3483:22;3441:74;:::i;:::-;3431:84;;3233:292;2679:853;;;;;:::o;3643:180::-;-1:-1:-1;;;3688:1:65;3681:88;3788:4;3785:1;3778:15;3812:4;3809:1;3802:15;3829:320;3910:1;3900:12;;3957:1;3947:12;;;3968:81;;4034:4;4026:6;4022:17;4012:27;;3968:81;4096:2;4088:6;4085:14;4065:18;4062:38;4059:84;;4115:18;;:::i;:::-;3880:269;3829:320;;;:::o;5062:142::-;5112:9;5145:53;5163:34;5190:5;5163:34;4913:77;5172:24;4979:5;4913:77;5145:53;5132:66;5062:142;-1:-1:-1;;5062:142:65:o;5291:269::-;5401:39;5432:7;5401:39;:::i;:::-;5490:11;;-1:-1:-1;;4633:1:65;4617:18;;;;4485:16;;;4842:9;4831:21;4485:16;;4871:30;;;;5449:105;;-1:-1:-1;5291:269:65:o;5645:189::-;5611:3;5763:65;5821:6;5813;5807:4;5763:65;:::i;:::-;5698:136;5645:189;;:::o;5840:186::-;5917:3;5910:5;5907:14;5900:120;;;5971:39;6008:1;6001:5;5971:39;:::i;:::-;5944:1;5933:13;5900:120;;;5840:186;;:::o;6032:543::-;6133:2;6128:3;6125:11;6122:446;;;4204:4;4240:14;;;4284:4;4271:18;;4386:2;4381;4370:14;;4366:23;6241:8;6237:44;6434:2;6422:10;6419:18;6416:49;;;-1:-1:-1;6455:8:65;6416:49;6478:80;4386:2;4381;4370:14;;4366:23;6524:8;6520:37;6507:11;6478:80;:::i;:::-;6137:431;;6032:543;;;:::o;7178:1395::-;3618:12;;-1:-1:-1;;;;;7389:6:65;7386:30;7383:56;;;7419:18;;:::i;:::-;7463:38;7495:4;7489:11;7463:38;:::i;:::-;7548:67;7608:6;7600;7594:4;7548:67;:::i;:::-;7666:4;7698:2;7687:14;;7715:1;7710:618;;;;8372:1;8389:6;8386:77;;;-1:-1:-1;8429:19:65;;;8423:26;8386:77;-1:-1:-1;;6814:1:65;6810:13;;6675:16;6777:56;6852:15;;7159:1;7155:11;;7146:21;8483:4;8476:81;8345:222;7680:887;;7710:618;4204:4;4240:14;;;4284:4;4271:18;;-1:-1:-1;;7746:22:65;;;7869:208;7883:7;7880:1;7877:14;7869:208;;;7953:19;;;7947:26;7932:42;;8060:2;8045:18;;;;8013:1;8001:14;;;;7899:12;7869:208;;;8105:6;8096:7;8093:19;8090:179;;;8154:19;;;8148:26;-1:-1:-1;;8248:4:65;8236:17;;6814:1;6810:13;6675:16;6777:56;6852:15;8191:64;;8090:179;8315:1;8311;8303:6;8299:14;8295:22;8289:4;8282:36;7717:611;;;7680:887;;7270:1303;;;7178:1395;;:::o;:::-;1532:11312:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_6182":{"entryPoint":null,"id":6182,"parameterSlots":3,"returnSlots":0},"@_approve_6117":{"entryPoint":796,"id":6117,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_6171":{"entryPoint":null,"id":6171,"parameterSlots":3,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_6160":{"entryPoint":976,"id":6160,"parameterSlots":3,"returnSlots":0},"@_transfer_5943":{"entryPoint":1050,"id":5943,"parameterSlots":3,"returnSlots":0},"@allowance_5738":{"entryPoint":753,"id":5738,"parameterSlots":2,"returnSlots":1},"@approve_5763":{"entryPoint":558,"id":5763,"parameterSlots":2,"returnSlots":1},"@balanceOf_5695":{"entryPoint":null,"id":5695,"parameterSlots":1,"returnSlots":1},"@decimals_5671":{"entryPoint":null,"id":5671,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5866":{"entryPoint":669,"id":5866,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_5825":{"entryPoint":620,"id":5825,"parameterSlots":2,"returnSlots":1},"@name_5651":{"entryPoint":412,"id":5651,"parameterSlots":0,"returnSlots":1},"@symbol_5661":{"entryPoint":654,"id":5661,"parameterSlots":0,"returnSlots":1},"@totalSupply_5681":{"entryPoint":null,"id":5681,"parameterSlots":0,"returnSlots":1},"@transferFrom_5796":{"entryPoint":584,"id":5796,"parameterSlots":3,"returnSlots":1},"@transfer_5720":{"entryPoint":739,"id":5720,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1457,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1676,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1717,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1573,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1468,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1529,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1326,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2261,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2041,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2341,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2179,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":1960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":1875,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1553,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1653,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1539,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1376,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2325,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2104,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2120,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2408,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2245,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2025,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1944,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1559,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1662,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1856,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1400,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1290,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1790,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1834,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":1768,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1417,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1451,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:13701:65","nodeType":"YulBlock","src":"0:13701:65","statements":[{"body":{"nativeSrc":"66:40:65","nodeType":"YulBlock","src":"66:40:65","statements":[{"nativeSrc":"77:22:65","nodeType":"YulAssignment","src":"77:22:65","value":{"arguments":[{"name":"value","nativeSrc":"93:5:65","nodeType":"YulIdentifier","src":"93:5:65"}],"functionName":{"name":"mload","nativeSrc":"87:5:65","nodeType":"YulIdentifier","src":"87:5:65"},"nativeSrc":"87:12:65","nodeType":"YulFunctionCall","src":"87:12:65"},"variableNames":[{"name":"length","nativeSrc":"77:6:65","nodeType":"YulIdentifier","src":"77:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:65","nodeType":"YulTypedName","src":"49:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:65","nodeType":"YulTypedName","src":"59:6:65","type":""}],"src":"7:99:65"},{"body":{"nativeSrc":"208:73:65","nodeType":"YulBlock","src":"208:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:65","nodeType":"YulIdentifier","src":"225:3:65"},{"name":"length","nativeSrc":"230:6:65","nodeType":"YulIdentifier","src":"230:6:65"}],"functionName":{"name":"mstore","nativeSrc":"218:6:65","nodeType":"YulIdentifier","src":"218:6:65"},"nativeSrc":"218:19:65","nodeType":"YulFunctionCall","src":"218:19:65"},"nativeSrc":"218:19:65","nodeType":"YulExpressionStatement","src":"218:19:65"},{"nativeSrc":"246:29:65","nodeType":"YulAssignment","src":"246:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:65","nodeType":"YulIdentifier","src":"265:3:65"},{"kind":"number","nativeSrc":"270:4:65","nodeType":"YulLiteral","src":"270:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:65","nodeType":"YulIdentifier","src":"261:3:65"},"nativeSrc":"261:14:65","nodeType":"YulFunctionCall","src":"261:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:65","nodeType":"YulIdentifier","src":"246:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:65","nodeType":"YulTypedName","src":"180:3:65","type":""},{"name":"length","nativeSrc":"185:6:65","nodeType":"YulTypedName","src":"185:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:65","nodeType":"YulTypedName","src":"196:11:65","type":""}],"src":"112:169:65"},{"body":{"nativeSrc":"349:186:65","nodeType":"YulBlock","src":"349:186:65","statements":[{"nativeSrc":"360:10:65","nodeType":"YulVariableDeclaration","src":"360:10:65","value":{"kind":"number","nativeSrc":"369:1:65","nodeType":"YulLiteral","src":"369:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"364:1:65","nodeType":"YulTypedName","src":"364:1:65","type":""}]},{"body":{"nativeSrc":"429:63:65","nodeType":"YulBlock","src":"429:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"454:3:65","nodeType":"YulIdentifier","src":"454:3:65"},{"name":"i","nativeSrc":"459:1:65","nodeType":"YulIdentifier","src":"459:1:65"}],"functionName":{"name":"add","nativeSrc":"450:3:65","nodeType":"YulIdentifier","src":"450:3:65"},"nativeSrc":"450:11:65","nodeType":"YulFunctionCall","src":"450:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"473:3:65","nodeType":"YulIdentifier","src":"473:3:65"},{"name":"i","nativeSrc":"478:1:65","nodeType":"YulIdentifier","src":"478:1:65"}],"functionName":{"name":"add","nativeSrc":"469:3:65","nodeType":"YulIdentifier","src":"469:3:65"},"nativeSrc":"469:11:65","nodeType":"YulFunctionCall","src":"469:11:65"}],"functionName":{"name":"mload","nativeSrc":"463:5:65","nodeType":"YulIdentifier","src":"463:5:65"},"nativeSrc":"463:18:65","nodeType":"YulFunctionCall","src":"463:18:65"}],"functionName":{"name":"mstore","nativeSrc":"443:6:65","nodeType":"YulIdentifier","src":"443:6:65"},"nativeSrc":"443:39:65","nodeType":"YulFunctionCall","src":"443:39:65"},"nativeSrc":"443:39:65","nodeType":"YulExpressionStatement","src":"443:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"390:1:65","nodeType":"YulIdentifier","src":"390:1:65"},{"name":"length","nativeSrc":"393:6:65","nodeType":"YulIdentifier","src":"393:6:65"}],"functionName":{"name":"lt","nativeSrc":"387:2:65","nodeType":"YulIdentifier","src":"387:2:65"},"nativeSrc":"387:13:65","nodeType":"YulFunctionCall","src":"387:13:65"},"nativeSrc":"379:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"401:19:65","nodeType":"YulBlock","src":"401:19:65","statements":[{"nativeSrc":"403:15:65","nodeType":"YulAssignment","src":"403:15:65","value":{"arguments":[{"name":"i","nativeSrc":"412:1:65","nodeType":"YulIdentifier","src":"412:1:65"},{"kind":"number","nativeSrc":"415:2:65","nodeType":"YulLiteral","src":"415:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"408:3:65","nodeType":"YulIdentifier","src":"408:3:65"},"nativeSrc":"408:10:65","nodeType":"YulFunctionCall","src":"408:10:65"},"variableNames":[{"name":"i","nativeSrc":"403:1:65","nodeType":"YulIdentifier","src":"403:1:65"}]}]},"pre":{"nativeSrc":"383:3:65","nodeType":"YulBlock","src":"383:3:65","statements":[]},"src":"379:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"512:3:65","nodeType":"YulIdentifier","src":"512:3:65"},{"name":"length","nativeSrc":"517:6:65","nodeType":"YulIdentifier","src":"517:6:65"}],"functionName":{"name":"add","nativeSrc":"508:3:65","nodeType":"YulIdentifier","src":"508:3:65"},"nativeSrc":"508:16:65","nodeType":"YulFunctionCall","src":"508:16:65"},{"kind":"number","nativeSrc":"526:1:65","nodeType":"YulLiteral","src":"526:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"501:6:65","nodeType":"YulIdentifier","src":"501:6:65"},"nativeSrc":"501:27:65","nodeType":"YulFunctionCall","src":"501:27:65"},"nativeSrc":"501:27:65","nodeType":"YulExpressionStatement","src":"501:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:65","nodeType":"YulTypedName","src":"331:3:65","type":""},{"name":"dst","nativeSrc":"336:3:65","nodeType":"YulTypedName","src":"336:3:65","type":""},{"name":"length","nativeSrc":"341:6:65","nodeType":"YulTypedName","src":"341:6:65","type":""}],"src":"287:248:65"},{"body":{"nativeSrc":"589:54:65","nodeType":"YulBlock","src":"589:54:65","statements":[{"nativeSrc":"599:38:65","nodeType":"YulAssignment","src":"599:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"617:5:65","nodeType":"YulIdentifier","src":"617:5:65"},{"kind":"number","nativeSrc":"624:2:65","nodeType":"YulLiteral","src":"624:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"613:3:65","nodeType":"YulIdentifier","src":"613:3:65"},"nativeSrc":"613:14:65","nodeType":"YulFunctionCall","src":"613:14:65"},{"arguments":[{"kind":"number","nativeSrc":"633:2:65","nodeType":"YulLiteral","src":"633:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"629:3:65","nodeType":"YulIdentifier","src":"629:3:65"},"nativeSrc":"629:7:65","nodeType":"YulFunctionCall","src":"629:7:65"}],"functionName":{"name":"and","nativeSrc":"609:3:65","nodeType":"YulIdentifier","src":"609:3:65"},"nativeSrc":"609:28:65","nodeType":"YulFunctionCall","src":"609:28:65"},"variableNames":[{"name":"result","nativeSrc":"599:6:65","nodeType":"YulIdentifier","src":"599:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"541:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"572:5:65","nodeType":"YulTypedName","src":"572:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"582:6:65","nodeType":"YulTypedName","src":"582:6:65","type":""}],"src":"541:102:65"},{"body":{"nativeSrc":"741:285:65","nodeType":"YulBlock","src":"741:285:65","statements":[{"nativeSrc":"751:53:65","nodeType":"YulVariableDeclaration","src":"751:53:65","value":{"arguments":[{"name":"value","nativeSrc":"798:5:65","nodeType":"YulIdentifier","src":"798:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"765:32:65","nodeType":"YulIdentifier","src":"765:32:65"},"nativeSrc":"765:39:65","nodeType":"YulFunctionCall","src":"765:39:65"},"variables":[{"name":"length","nativeSrc":"755:6:65","nodeType":"YulTypedName","src":"755:6:65","type":""}]},{"nativeSrc":"813:78:65","nodeType":"YulAssignment","src":"813:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"879:3:65","nodeType":"YulIdentifier","src":"879:3:65"},{"name":"length","nativeSrc":"884:6:65","nodeType":"YulIdentifier","src":"884:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"820:58:65","nodeType":"YulIdentifier","src":"820:58:65"},"nativeSrc":"820:71:65","nodeType":"YulFunctionCall","src":"820:71:65"},"variableNames":[{"name":"pos","nativeSrc":"813:3:65","nodeType":"YulIdentifier","src":"813:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"939:5:65","nodeType":"YulIdentifier","src":"939:5:65"},{"kind":"number","nativeSrc":"946:4:65","nodeType":"YulLiteral","src":"946:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:16:65","nodeType":"YulFunctionCall","src":"935:16:65"},{"name":"pos","nativeSrc":"953:3:65","nodeType":"YulIdentifier","src":"953:3:65"},{"name":"length","nativeSrc":"958:6:65","nodeType":"YulIdentifier","src":"958:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"900:34:65","nodeType":"YulIdentifier","src":"900:34:65"},"nativeSrc":"900:65:65","nodeType":"YulFunctionCall","src":"900:65:65"},"nativeSrc":"900:65:65","nodeType":"YulExpressionStatement","src":"900:65:65"},{"nativeSrc":"974:46:65","nodeType":"YulAssignment","src":"974:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"985:3:65","nodeType":"YulIdentifier","src":"985:3:65"},{"arguments":[{"name":"length","nativeSrc":"1012:6:65","nodeType":"YulIdentifier","src":"1012:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"990:21:65","nodeType":"YulIdentifier","src":"990:21:65"},"nativeSrc":"990:29:65","nodeType":"YulFunctionCall","src":"990:29:65"}],"functionName":{"name":"add","nativeSrc":"981:3:65","nodeType":"YulIdentifier","src":"981:3:65"},"nativeSrc":"981:39:65","nodeType":"YulFunctionCall","src":"981:39:65"},"variableNames":[{"name":"end","nativeSrc":"974:3:65","nodeType":"YulIdentifier","src":"974:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"649:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"722:5:65","nodeType":"YulTypedName","src":"722:5:65","type":""},{"name":"pos","nativeSrc":"729:3:65","nodeType":"YulTypedName","src":"729:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"737:3:65","nodeType":"YulTypedName","src":"737:3:65","type":""}],"src":"649:377:65"},{"body":{"nativeSrc":"1150:195:65","nodeType":"YulBlock","src":"1150:195:65","statements":[{"nativeSrc":"1160:26:65","nodeType":"YulAssignment","src":"1160:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1172:9:65","nodeType":"YulIdentifier","src":"1172:9:65"},{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1168:3:65","nodeType":"YulIdentifier","src":"1168:3:65"},"nativeSrc":"1168:18:65","nodeType":"YulFunctionCall","src":"1168:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1160:4:65","nodeType":"YulIdentifier","src":"1160:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1207:9:65","nodeType":"YulIdentifier","src":"1207:9:65"},{"kind":"number","nativeSrc":"1218:1:65","nodeType":"YulLiteral","src":"1218:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1203:3:65","nodeType":"YulIdentifier","src":"1203:3:65"},"nativeSrc":"1203:17:65","nodeType":"YulFunctionCall","src":"1203:17:65"},{"arguments":[{"name":"tail","nativeSrc":"1226:4:65","nodeType":"YulIdentifier","src":"1226:4:65"},{"name":"headStart","nativeSrc":"1232:9:65","nodeType":"YulIdentifier","src":"1232:9:65"}],"functionName":{"name":"sub","nativeSrc":"1222:3:65","nodeType":"YulIdentifier","src":"1222:3:65"},"nativeSrc":"1222:20:65","nodeType":"YulFunctionCall","src":"1222:20:65"}],"functionName":{"name":"mstore","nativeSrc":"1196:6:65","nodeType":"YulIdentifier","src":"1196:6:65"},"nativeSrc":"1196:47:65","nodeType":"YulFunctionCall","src":"1196:47:65"},"nativeSrc":"1196:47:65","nodeType":"YulExpressionStatement","src":"1196:47:65"},{"nativeSrc":"1252:86:65","nodeType":"YulAssignment","src":"1252:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"1324:6:65","nodeType":"YulIdentifier","src":"1324:6:65"},{"name":"tail","nativeSrc":"1333:4:65","nodeType":"YulIdentifier","src":"1333:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1260:63:65","nodeType":"YulIdentifier","src":"1260:63:65"},"nativeSrc":"1260:78:65","nodeType":"YulFunctionCall","src":"1260:78:65"},"variableNames":[{"name":"tail","nativeSrc":"1252:4:65","nodeType":"YulIdentifier","src":"1252:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1032:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1122:9:65","nodeType":"YulTypedName","src":"1122:9:65","type":""},{"name":"value0","nativeSrc":"1134:6:65","nodeType":"YulTypedName","src":"1134:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1145:4:65","nodeType":"YulTypedName","src":"1145:4:65","type":""}],"src":"1032:313:65"},{"body":{"nativeSrc":"1391:35:65","nodeType":"YulBlock","src":"1391:35:65","statements":[{"nativeSrc":"1401:19:65","nodeType":"YulAssignment","src":"1401:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"1417:2:65","nodeType":"YulLiteral","src":"1417:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1411:5:65","nodeType":"YulIdentifier","src":"1411:5:65"},"nativeSrc":"1411:9:65","nodeType":"YulFunctionCall","src":"1411:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1401:6:65","nodeType":"YulIdentifier","src":"1401:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"1351:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1384:6:65","nodeType":"YulTypedName","src":"1384:6:65","type":""}],"src":"1351:75:65"},{"body":{"nativeSrc":"1521:28:65","nodeType":"YulBlock","src":"1521:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1538:1:65","nodeType":"YulLiteral","src":"1538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1541:1:65","nodeType":"YulLiteral","src":"1541:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1531:6:65","nodeType":"YulIdentifier","src":"1531:6:65"},"nativeSrc":"1531:12:65","nodeType":"YulFunctionCall","src":"1531:12:65"},"nativeSrc":"1531:12:65","nodeType":"YulExpressionStatement","src":"1531:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1432:117:65","nodeType":"YulFunctionDefinition","src":"1432:117:65"},{"body":{"nativeSrc":"1644:28:65","nodeType":"YulBlock","src":"1644:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1661:1:65","nodeType":"YulLiteral","src":"1661:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1664:1:65","nodeType":"YulLiteral","src":"1664:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1654:6:65","nodeType":"YulIdentifier","src":"1654:6:65"},"nativeSrc":"1654:12:65","nodeType":"YulFunctionCall","src":"1654:12:65"},"nativeSrc":"1654:12:65","nodeType":"YulExpressionStatement","src":"1654:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1555:117:65","nodeType":"YulFunctionDefinition","src":"1555:117:65"},{"body":{"nativeSrc":"1723:81:65","nodeType":"YulBlock","src":"1723:81:65","statements":[{"nativeSrc":"1733:65:65","nodeType":"YulAssignment","src":"1733:65:65","value":{"arguments":[{"name":"value","nativeSrc":"1748:5:65","nodeType":"YulIdentifier","src":"1748:5:65"},{"kind":"number","nativeSrc":"1755:42:65","nodeType":"YulLiteral","src":"1755:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1744:3:65","nodeType":"YulIdentifier","src":"1744:3:65"},"nativeSrc":"1744:54:65","nodeType":"YulFunctionCall","src":"1744:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1733:7:65","nodeType":"YulIdentifier","src":"1733:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1678:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1705:5:65","nodeType":"YulTypedName","src":"1705:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1715:7:65","nodeType":"YulTypedName","src":"1715:7:65","type":""}],"src":"1678:126:65"},{"body":{"nativeSrc":"1855:51:65","nodeType":"YulBlock","src":"1855:51:65","statements":[{"nativeSrc":"1865:35:65","nodeType":"YulAssignment","src":"1865:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1894:5:65","nodeType":"YulIdentifier","src":"1894:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1876:17:65","nodeType":"YulIdentifier","src":"1876:17:65"},"nativeSrc":"1876:24:65","nodeType":"YulFunctionCall","src":"1876:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1865:7:65","nodeType":"YulIdentifier","src":"1865:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1810:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1837:5:65","nodeType":"YulTypedName","src":"1837:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1847:7:65","nodeType":"YulTypedName","src":"1847:7:65","type":""}],"src":"1810:96:65"},{"body":{"nativeSrc":"1955:79:65","nodeType":"YulBlock","src":"1955:79:65","statements":[{"body":{"nativeSrc":"2012:16:65","nodeType":"YulBlock","src":"2012:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2021:1:65","nodeType":"YulLiteral","src":"2021:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2024:1:65","nodeType":"YulLiteral","src":"2024:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2014:6:65","nodeType":"YulIdentifier","src":"2014:6:65"},"nativeSrc":"2014:12:65","nodeType":"YulFunctionCall","src":"2014:12:65"},"nativeSrc":"2014:12:65","nodeType":"YulExpressionStatement","src":"2014:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1978:5:65","nodeType":"YulIdentifier","src":"1978:5:65"},{"arguments":[{"name":"value","nativeSrc":"2003:5:65","nodeType":"YulIdentifier","src":"2003:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1985:17:65","nodeType":"YulIdentifier","src":"1985:17:65"},"nativeSrc":"1985:24:65","nodeType":"YulFunctionCall","src":"1985:24:65"}],"functionName":{"name":"eq","nativeSrc":"1975:2:65","nodeType":"YulIdentifier","src":"1975:2:65"},"nativeSrc":"1975:35:65","nodeType":"YulFunctionCall","src":"1975:35:65"}],"functionName":{"name":"iszero","nativeSrc":"1968:6:65","nodeType":"YulIdentifier","src":"1968:6:65"},"nativeSrc":"1968:43:65","nodeType":"YulFunctionCall","src":"1968:43:65"},"nativeSrc":"1965:63:65","nodeType":"YulIf","src":"1965:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"1912:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1948:5:65","nodeType":"YulTypedName","src":"1948:5:65","type":""}],"src":"1912:122:65"},{"body":{"nativeSrc":"2092:87:65","nodeType":"YulBlock","src":"2092:87:65","statements":[{"nativeSrc":"2102:29:65","nodeType":"YulAssignment","src":"2102:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2124:6:65","nodeType":"YulIdentifier","src":"2124:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2111:12:65","nodeType":"YulIdentifier","src":"2111:12:65"},"nativeSrc":"2111:20:65","nodeType":"YulFunctionCall","src":"2111:20:65"},"variableNames":[{"name":"value","nativeSrc":"2102:5:65","nodeType":"YulIdentifier","src":"2102:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2167:5:65","nodeType":"YulIdentifier","src":"2167:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2140:26:65","nodeType":"YulIdentifier","src":"2140:26:65"},"nativeSrc":"2140:33:65","nodeType":"YulFunctionCall","src":"2140:33:65"},"nativeSrc":"2140:33:65","nodeType":"YulExpressionStatement","src":"2140:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"2040:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2070:6:65","nodeType":"YulTypedName","src":"2070:6:65","type":""},{"name":"end","nativeSrc":"2078:3:65","nodeType":"YulTypedName","src":"2078:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2086:5:65","nodeType":"YulTypedName","src":"2086:5:65","type":""}],"src":"2040:139:65"},{"body":{"nativeSrc":"2230:32:65","nodeType":"YulBlock","src":"2230:32:65","statements":[{"nativeSrc":"2240:16:65","nodeType":"YulAssignment","src":"2240:16:65","value":{"name":"value","nativeSrc":"2251:5:65","nodeType":"YulIdentifier","src":"2251:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2240:7:65","nodeType":"YulIdentifier","src":"2240:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2185:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2212:5:65","nodeType":"YulTypedName","src":"2212:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2222:7:65","nodeType":"YulTypedName","src":"2222:7:65","type":""}],"src":"2185:77:65"},{"body":{"nativeSrc":"2311:79:65","nodeType":"YulBlock","src":"2311:79:65","statements":[{"body":{"nativeSrc":"2368:16:65","nodeType":"YulBlock","src":"2368:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2377:1:65","nodeType":"YulLiteral","src":"2377:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2380:1:65","nodeType":"YulLiteral","src":"2380:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2370:6:65","nodeType":"YulIdentifier","src":"2370:6:65"},"nativeSrc":"2370:12:65","nodeType":"YulFunctionCall","src":"2370:12:65"},"nativeSrc":"2370:12:65","nodeType":"YulExpressionStatement","src":"2370:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2334:5:65","nodeType":"YulIdentifier","src":"2334:5:65"},{"arguments":[{"name":"value","nativeSrc":"2359:5:65","nodeType":"YulIdentifier","src":"2359:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2341:17:65","nodeType":"YulIdentifier","src":"2341:17:65"},"nativeSrc":"2341:24:65","nodeType":"YulFunctionCall","src":"2341:24:65"}],"functionName":{"name":"eq","nativeSrc":"2331:2:65","nodeType":"YulIdentifier","src":"2331:2:65"},"nativeSrc":"2331:35:65","nodeType":"YulFunctionCall","src":"2331:35:65"}],"functionName":{"name":"iszero","nativeSrc":"2324:6:65","nodeType":"YulIdentifier","src":"2324:6:65"},"nativeSrc":"2324:43:65","nodeType":"YulFunctionCall","src":"2324:43:65"},"nativeSrc":"2321:63:65","nodeType":"YulIf","src":"2321:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"2268:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2304:5:65","nodeType":"YulTypedName","src":"2304:5:65","type":""}],"src":"2268:122:65"},{"body":{"nativeSrc":"2448:87:65","nodeType":"YulBlock","src":"2448:87:65","statements":[{"nativeSrc":"2458:29:65","nodeType":"YulAssignment","src":"2458:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2480:6:65","nodeType":"YulIdentifier","src":"2480:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2467:12:65","nodeType":"YulIdentifier","src":"2467:12:65"},"nativeSrc":"2467:20:65","nodeType":"YulFunctionCall","src":"2467:20:65"},"variableNames":[{"name":"value","nativeSrc":"2458:5:65","nodeType":"YulIdentifier","src":"2458:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2523:5:65","nodeType":"YulIdentifier","src":"2523:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2496:26:65","nodeType":"YulIdentifier","src":"2496:26:65"},"nativeSrc":"2496:33:65","nodeType":"YulFunctionCall","src":"2496:33:65"},"nativeSrc":"2496:33:65","nodeType":"YulExpressionStatement","src":"2496:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"2396:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2426:6:65","nodeType":"YulTypedName","src":"2426:6:65","type":""},{"name":"end","nativeSrc":"2434:3:65","nodeType":"YulTypedName","src":"2434:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2442:5:65","nodeType":"YulTypedName","src":"2442:5:65","type":""}],"src":"2396:139:65"},{"body":{"nativeSrc":"2624:391:65","nodeType":"YulBlock","src":"2624:391:65","statements":[{"body":{"nativeSrc":"2670:83:65","nodeType":"YulBlock","src":"2670:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2672:77:65","nodeType":"YulIdentifier","src":"2672:77:65"},"nativeSrc":"2672:79:65","nodeType":"YulFunctionCall","src":"2672:79:65"},"nativeSrc":"2672:79:65","nodeType":"YulExpressionStatement","src":"2672:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2645:7:65","nodeType":"YulIdentifier","src":"2645:7:65"},{"name":"headStart","nativeSrc":"2654:9:65","nodeType":"YulIdentifier","src":"2654:9:65"}],"functionName":{"name":"sub","nativeSrc":"2641:3:65","nodeType":"YulIdentifier","src":"2641:3:65"},"nativeSrc":"2641:23:65","nodeType":"YulFunctionCall","src":"2641:23:65"},{"kind":"number","nativeSrc":"2666:2:65","nodeType":"YulLiteral","src":"2666:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},"nativeSrc":"2637:32:65","nodeType":"YulFunctionCall","src":"2637:32:65"},"nativeSrc":"2634:119:65","nodeType":"YulIf","src":"2634:119:65"},{"nativeSrc":"2763:117:65","nodeType":"YulBlock","src":"2763:117:65","statements":[{"nativeSrc":"2778:15:65","nodeType":"YulVariableDeclaration","src":"2778:15:65","value":{"kind":"number","nativeSrc":"2792:1:65","nodeType":"YulLiteral","src":"2792:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2782:6:65","nodeType":"YulTypedName","src":"2782:6:65","type":""}]},{"nativeSrc":"2807:63:65","nodeType":"YulAssignment","src":"2807:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2842:9:65","nodeType":"YulIdentifier","src":"2842:9:65"},{"name":"offset","nativeSrc":"2853:6:65","nodeType":"YulIdentifier","src":"2853:6:65"}],"functionName":{"name":"add","nativeSrc":"2838:3:65","nodeType":"YulIdentifier","src":"2838:3:65"},"nativeSrc":"2838:22:65","nodeType":"YulFunctionCall","src":"2838:22:65"},{"name":"dataEnd","nativeSrc":"2862:7:65","nodeType":"YulIdentifier","src":"2862:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2817:20:65","nodeType":"YulIdentifier","src":"2817:20:65"},"nativeSrc":"2817:53:65","nodeType":"YulFunctionCall","src":"2817:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2807:6:65","nodeType":"YulIdentifier","src":"2807:6:65"}]}]},{"nativeSrc":"2890:118:65","nodeType":"YulBlock","src":"2890:118:65","statements":[{"nativeSrc":"2905:16:65","nodeType":"YulVariableDeclaration","src":"2905:16:65","value":{"kind":"number","nativeSrc":"2919:2:65","nodeType":"YulLiteral","src":"2919:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2909:6:65","nodeType":"YulTypedName","src":"2909:6:65","type":""}]},{"nativeSrc":"2935:63:65","nodeType":"YulAssignment","src":"2935:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2970:9:65","nodeType":"YulIdentifier","src":"2970:9:65"},{"name":"offset","nativeSrc":"2981:6:65","nodeType":"YulIdentifier","src":"2981:6:65"}],"functionName":{"name":"add","nativeSrc":"2966:3:65","nodeType":"YulIdentifier","src":"2966:3:65"},"nativeSrc":"2966:22:65","nodeType":"YulFunctionCall","src":"2966:22:65"},{"name":"dataEnd","nativeSrc":"2990:7:65","nodeType":"YulIdentifier","src":"2990:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2945:20:65","nodeType":"YulIdentifier","src":"2945:20:65"},"nativeSrc":"2945:53:65","nodeType":"YulFunctionCall","src":"2945:53:65"},"variableNames":[{"name":"value1","nativeSrc":"2935:6:65","nodeType":"YulIdentifier","src":"2935:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2541:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2586:9:65","nodeType":"YulTypedName","src":"2586:9:65","type":""},{"name":"dataEnd","nativeSrc":"2597:7:65","nodeType":"YulTypedName","src":"2597:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2609:6:65","nodeType":"YulTypedName","src":"2609:6:65","type":""},{"name":"value1","nativeSrc":"2617:6:65","nodeType":"YulTypedName","src":"2617:6:65","type":""}],"src":"2541:474:65"},{"body":{"nativeSrc":"3063:48:65","nodeType":"YulBlock","src":"3063:48:65","statements":[{"nativeSrc":"3073:32:65","nodeType":"YulAssignment","src":"3073:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3098:5:65","nodeType":"YulIdentifier","src":"3098:5:65"}],"functionName":{"name":"iszero","nativeSrc":"3091:6:65","nodeType":"YulIdentifier","src":"3091:6:65"},"nativeSrc":"3091:13:65","nodeType":"YulFunctionCall","src":"3091:13:65"}],"functionName":{"name":"iszero","nativeSrc":"3084:6:65","nodeType":"YulIdentifier","src":"3084:6:65"},"nativeSrc":"3084:21:65","nodeType":"YulFunctionCall","src":"3084:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3073:7:65","nodeType":"YulIdentifier","src":"3073:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"3021:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3045:5:65","nodeType":"YulTypedName","src":"3045:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3055:7:65","nodeType":"YulTypedName","src":"3055:7:65","type":""}],"src":"3021:90:65"},{"body":{"nativeSrc":"3176:50:65","nodeType":"YulBlock","src":"3176:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3193:3:65","nodeType":"YulIdentifier","src":"3193:3:65"},{"arguments":[{"name":"value","nativeSrc":"3213:5:65","nodeType":"YulIdentifier","src":"3213:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3198:14:65","nodeType":"YulIdentifier","src":"3198:14:65"},"nativeSrc":"3198:21:65","nodeType":"YulFunctionCall","src":"3198:21:65"}],"functionName":{"name":"mstore","nativeSrc":"3186:6:65","nodeType":"YulIdentifier","src":"3186:6:65"},"nativeSrc":"3186:34:65","nodeType":"YulFunctionCall","src":"3186:34:65"},"nativeSrc":"3186:34:65","nodeType":"YulExpressionStatement","src":"3186:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3117:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3164:5:65","nodeType":"YulTypedName","src":"3164:5:65","type":""},{"name":"pos","nativeSrc":"3171:3:65","nodeType":"YulTypedName","src":"3171:3:65","type":""}],"src":"3117:109:65"},{"body":{"nativeSrc":"3324:118:65","nodeType":"YulBlock","src":"3324:118:65","statements":[{"nativeSrc":"3334:26:65","nodeType":"YulAssignment","src":"3334:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3346:9:65","nodeType":"YulIdentifier","src":"3346:9:65"},{"kind":"number","nativeSrc":"3357:2:65","nodeType":"YulLiteral","src":"3357:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3342:3:65","nodeType":"YulIdentifier","src":"3342:3:65"},"nativeSrc":"3342:18:65","nodeType":"YulFunctionCall","src":"3342:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3334:4:65","nodeType":"YulIdentifier","src":"3334:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3408:6:65","nodeType":"YulIdentifier","src":"3408:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3421:9:65","nodeType":"YulIdentifier","src":"3421:9:65"},{"kind":"number","nativeSrc":"3432:1:65","nodeType":"YulLiteral","src":"3432:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3417:3:65","nodeType":"YulIdentifier","src":"3417:3:65"},"nativeSrc":"3417:17:65","nodeType":"YulFunctionCall","src":"3417:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3370:37:65","nodeType":"YulIdentifier","src":"3370:37:65"},"nativeSrc":"3370:65:65","nodeType":"YulFunctionCall","src":"3370:65:65"},"nativeSrc":"3370:65:65","nodeType":"YulExpressionStatement","src":"3370:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3232:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3296:9:65","nodeType":"YulTypedName","src":"3296:9:65","type":""},{"name":"value0","nativeSrc":"3308:6:65","nodeType":"YulTypedName","src":"3308:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3319:4:65","nodeType":"YulTypedName","src":"3319:4:65","type":""}],"src":"3232:210:65"},{"body":{"nativeSrc":"3513:53:65","nodeType":"YulBlock","src":"3513:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3530:3:65","nodeType":"YulIdentifier","src":"3530:3:65"},{"arguments":[{"name":"value","nativeSrc":"3553:5:65","nodeType":"YulIdentifier","src":"3553:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3535:17:65","nodeType":"YulIdentifier","src":"3535:17:65"},"nativeSrc":"3535:24:65","nodeType":"YulFunctionCall","src":"3535:24:65"}],"functionName":{"name":"mstore","nativeSrc":"3523:6:65","nodeType":"YulIdentifier","src":"3523:6:65"},"nativeSrc":"3523:37:65","nodeType":"YulFunctionCall","src":"3523:37:65"},"nativeSrc":"3523:37:65","nodeType":"YulExpressionStatement","src":"3523:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3448:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3501:5:65","nodeType":"YulTypedName","src":"3501:5:65","type":""},{"name":"pos","nativeSrc":"3508:3:65","nodeType":"YulTypedName","src":"3508:3:65","type":""}],"src":"3448:118:65"},{"body":{"nativeSrc":"3670:124:65","nodeType":"YulBlock","src":"3670:124:65","statements":[{"nativeSrc":"3680:26:65","nodeType":"YulAssignment","src":"3680:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3692:9:65","nodeType":"YulIdentifier","src":"3692:9:65"},{"kind":"number","nativeSrc":"3703:2:65","nodeType":"YulLiteral","src":"3703:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3688:3:65","nodeType":"YulIdentifier","src":"3688:3:65"},"nativeSrc":"3688:18:65","nodeType":"YulFunctionCall","src":"3688:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3680:4:65","nodeType":"YulIdentifier","src":"3680:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3760:6:65","nodeType":"YulIdentifier","src":"3760:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3773:9:65","nodeType":"YulIdentifier","src":"3773:9:65"},{"kind":"number","nativeSrc":"3784:1:65","nodeType":"YulLiteral","src":"3784:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3769:3:65","nodeType":"YulIdentifier","src":"3769:3:65"},"nativeSrc":"3769:17:65","nodeType":"YulFunctionCall","src":"3769:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3716:43:65","nodeType":"YulIdentifier","src":"3716:43:65"},"nativeSrc":"3716:71:65","nodeType":"YulFunctionCall","src":"3716:71:65"},"nativeSrc":"3716:71:65","nodeType":"YulExpressionStatement","src":"3716:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3572:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3642:9:65","nodeType":"YulTypedName","src":"3642:9:65","type":""},{"name":"value0","nativeSrc":"3654:6:65","nodeType":"YulTypedName","src":"3654:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3665:4:65","nodeType":"YulTypedName","src":"3665:4:65","type":""}],"src":"3572:222:65"},{"body":{"nativeSrc":"3900:519:65","nodeType":"YulBlock","src":"3900:519:65","statements":[{"body":{"nativeSrc":"3946:83:65","nodeType":"YulBlock","src":"3946:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3948:77:65","nodeType":"YulIdentifier","src":"3948:77:65"},"nativeSrc":"3948:79:65","nodeType":"YulFunctionCall","src":"3948:79:65"},"nativeSrc":"3948:79:65","nodeType":"YulExpressionStatement","src":"3948:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3921:7:65","nodeType":"YulIdentifier","src":"3921:7:65"},{"name":"headStart","nativeSrc":"3930:9:65","nodeType":"YulIdentifier","src":"3930:9:65"}],"functionName":{"name":"sub","nativeSrc":"3917:3:65","nodeType":"YulIdentifier","src":"3917:3:65"},"nativeSrc":"3917:23:65","nodeType":"YulFunctionCall","src":"3917:23:65"},{"kind":"number","nativeSrc":"3942:2:65","nodeType":"YulLiteral","src":"3942:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3913:3:65","nodeType":"YulIdentifier","src":"3913:3:65"},"nativeSrc":"3913:32:65","nodeType":"YulFunctionCall","src":"3913:32:65"},"nativeSrc":"3910:119:65","nodeType":"YulIf","src":"3910:119:65"},{"nativeSrc":"4039:117:65","nodeType":"YulBlock","src":"4039:117:65","statements":[{"nativeSrc":"4054:15:65","nodeType":"YulVariableDeclaration","src":"4054:15:65","value":{"kind":"number","nativeSrc":"4068:1:65","nodeType":"YulLiteral","src":"4068:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4058:6:65","nodeType":"YulTypedName","src":"4058:6:65","type":""}]},{"nativeSrc":"4083:63:65","nodeType":"YulAssignment","src":"4083:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4118:9:65","nodeType":"YulIdentifier","src":"4118:9:65"},{"name":"offset","nativeSrc":"4129:6:65","nodeType":"YulIdentifier","src":"4129:6:65"}],"functionName":{"name":"add","nativeSrc":"4114:3:65","nodeType":"YulIdentifier","src":"4114:3:65"},"nativeSrc":"4114:22:65","nodeType":"YulFunctionCall","src":"4114:22:65"},{"name":"dataEnd","nativeSrc":"4138:7:65","nodeType":"YulIdentifier","src":"4138:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4093:20:65","nodeType":"YulIdentifier","src":"4093:20:65"},"nativeSrc":"4093:53:65","nodeType":"YulFunctionCall","src":"4093:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4083:6:65","nodeType":"YulIdentifier","src":"4083:6:65"}]}]},{"nativeSrc":"4166:118:65","nodeType":"YulBlock","src":"4166:118:65","statements":[{"nativeSrc":"4181:16:65","nodeType":"YulVariableDeclaration","src":"4181:16:65","value":{"kind":"number","nativeSrc":"4195:2:65","nodeType":"YulLiteral","src":"4195:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4185:6:65","nodeType":"YulTypedName","src":"4185:6:65","type":""}]},{"nativeSrc":"4211:63:65","nodeType":"YulAssignment","src":"4211:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4246:9:65","nodeType":"YulIdentifier","src":"4246:9:65"},{"name":"offset","nativeSrc":"4257:6:65","nodeType":"YulIdentifier","src":"4257:6:65"}],"functionName":{"name":"add","nativeSrc":"4242:3:65","nodeType":"YulIdentifier","src":"4242:3:65"},"nativeSrc":"4242:22:65","nodeType":"YulFunctionCall","src":"4242:22:65"},{"name":"dataEnd","nativeSrc":"4266:7:65","nodeType":"YulIdentifier","src":"4266:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4221:20:65","nodeType":"YulIdentifier","src":"4221:20:65"},"nativeSrc":"4221:53:65","nodeType":"YulFunctionCall","src":"4221:53:65"},"variableNames":[{"name":"value1","nativeSrc":"4211:6:65","nodeType":"YulIdentifier","src":"4211:6:65"}]}]},{"nativeSrc":"4294:118:65","nodeType":"YulBlock","src":"4294:118:65","statements":[{"nativeSrc":"4309:16:65","nodeType":"YulVariableDeclaration","src":"4309:16:65","value":{"kind":"number","nativeSrc":"4323:2:65","nodeType":"YulLiteral","src":"4323:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4313:6:65","nodeType":"YulTypedName","src":"4313:6:65","type":""}]},{"nativeSrc":"4339:63:65","nodeType":"YulAssignment","src":"4339:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4374:9:65","nodeType":"YulIdentifier","src":"4374:9:65"},{"name":"offset","nativeSrc":"4385:6:65","nodeType":"YulIdentifier","src":"4385:6:65"}],"functionName":{"name":"add","nativeSrc":"4370:3:65","nodeType":"YulIdentifier","src":"4370:3:65"},"nativeSrc":"4370:22:65","nodeType":"YulFunctionCall","src":"4370:22:65"},{"name":"dataEnd","nativeSrc":"4394:7:65","nodeType":"YulIdentifier","src":"4394:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4349:20:65","nodeType":"YulIdentifier","src":"4349:20:65"},"nativeSrc":"4349:53:65","nodeType":"YulFunctionCall","src":"4349:53:65"},"variableNames":[{"name":"value2","nativeSrc":"4339:6:65","nodeType":"YulIdentifier","src":"4339:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3800:619:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3854:9:65","nodeType":"YulTypedName","src":"3854:9:65","type":""},{"name":"dataEnd","nativeSrc":"3865:7:65","nodeType":"YulTypedName","src":"3865:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3877:6:65","nodeType":"YulTypedName","src":"3877:6:65","type":""},{"name":"value1","nativeSrc":"3885:6:65","nodeType":"YulTypedName","src":"3885:6:65","type":""},{"name":"value2","nativeSrc":"3893:6:65","nodeType":"YulTypedName","src":"3893:6:65","type":""}],"src":"3800:619:65"},{"body":{"nativeSrc":"4468:43:65","nodeType":"YulBlock","src":"4468:43:65","statements":[{"nativeSrc":"4478:27:65","nodeType":"YulAssignment","src":"4478:27:65","value":{"arguments":[{"name":"value","nativeSrc":"4493:5:65","nodeType":"YulIdentifier","src":"4493:5:65"},{"kind":"number","nativeSrc":"4500:4:65","nodeType":"YulLiteral","src":"4500:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4489:3:65","nodeType":"YulIdentifier","src":"4489:3:65"},"nativeSrc":"4489:16:65","nodeType":"YulFunctionCall","src":"4489:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4478:7:65","nodeType":"YulIdentifier","src":"4478:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4425:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4450:5:65","nodeType":"YulTypedName","src":"4450:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4460:7:65","nodeType":"YulTypedName","src":"4460:7:65","type":""}],"src":"4425:86:65"},{"body":{"nativeSrc":"4578:51:65","nodeType":"YulBlock","src":"4578:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4595:3:65","nodeType":"YulIdentifier","src":"4595:3:65"},{"arguments":[{"name":"value","nativeSrc":"4616:5:65","nodeType":"YulIdentifier","src":"4616:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4600:15:65","nodeType":"YulIdentifier","src":"4600:15:65"},"nativeSrc":"4600:22:65","nodeType":"YulFunctionCall","src":"4600:22:65"}],"functionName":{"name":"mstore","nativeSrc":"4588:6:65","nodeType":"YulIdentifier","src":"4588:6:65"},"nativeSrc":"4588:35:65","nodeType":"YulFunctionCall","src":"4588:35:65"},"nativeSrc":"4588:35:65","nodeType":"YulExpressionStatement","src":"4588:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4517:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4566:5:65","nodeType":"YulTypedName","src":"4566:5:65","type":""},{"name":"pos","nativeSrc":"4573:3:65","nodeType":"YulTypedName","src":"4573:3:65","type":""}],"src":"4517:112:65"},{"body":{"nativeSrc":"4729:120:65","nodeType":"YulBlock","src":"4729:120:65","statements":[{"nativeSrc":"4739:26:65","nodeType":"YulAssignment","src":"4739:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4751:9:65","nodeType":"YulIdentifier","src":"4751:9:65"},{"kind":"number","nativeSrc":"4762:2:65","nodeType":"YulLiteral","src":"4762:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4747:3:65","nodeType":"YulIdentifier","src":"4747:3:65"},"nativeSrc":"4747:18:65","nodeType":"YulFunctionCall","src":"4747:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4739:4:65","nodeType":"YulIdentifier","src":"4739:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4815:6:65","nodeType":"YulIdentifier","src":"4815:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4828:9:65","nodeType":"YulIdentifier","src":"4828:9:65"},{"kind":"number","nativeSrc":"4839:1:65","nodeType":"YulLiteral","src":"4839:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4824:3:65","nodeType":"YulIdentifier","src":"4824:3:65"},"nativeSrc":"4824:17:65","nodeType":"YulFunctionCall","src":"4824:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4775:39:65","nodeType":"YulIdentifier","src":"4775:39:65"},"nativeSrc":"4775:67:65","nodeType":"YulFunctionCall","src":"4775:67:65"},"nativeSrc":"4775:67:65","nodeType":"YulExpressionStatement","src":"4775:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4635:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4701:9:65","nodeType":"YulTypedName","src":"4701:9:65","type":""},{"name":"value0","nativeSrc":"4713:6:65","nodeType":"YulTypedName","src":"4713:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4724:4:65","nodeType":"YulTypedName","src":"4724:4:65","type":""}],"src":"4635:214:65"},{"body":{"nativeSrc":"4921:263:65","nodeType":"YulBlock","src":"4921:263:65","statements":[{"body":{"nativeSrc":"4967:83:65","nodeType":"YulBlock","src":"4967:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4969:77:65","nodeType":"YulIdentifier","src":"4969:77:65"},"nativeSrc":"4969:79:65","nodeType":"YulFunctionCall","src":"4969:79:65"},"nativeSrc":"4969:79:65","nodeType":"YulExpressionStatement","src":"4969:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4942:7:65","nodeType":"YulIdentifier","src":"4942:7:65"},{"name":"headStart","nativeSrc":"4951:9:65","nodeType":"YulIdentifier","src":"4951:9:65"}],"functionName":{"name":"sub","nativeSrc":"4938:3:65","nodeType":"YulIdentifier","src":"4938:3:65"},"nativeSrc":"4938:23:65","nodeType":"YulFunctionCall","src":"4938:23:65"},{"kind":"number","nativeSrc":"4963:2:65","nodeType":"YulLiteral","src":"4963:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4934:3:65","nodeType":"YulIdentifier","src":"4934:3:65"},"nativeSrc":"4934:32:65","nodeType":"YulFunctionCall","src":"4934:32:65"},"nativeSrc":"4931:119:65","nodeType":"YulIf","src":"4931:119:65"},{"nativeSrc":"5060:117:65","nodeType":"YulBlock","src":"5060:117:65","statements":[{"nativeSrc":"5075:15:65","nodeType":"YulVariableDeclaration","src":"5075:15:65","value":{"kind":"number","nativeSrc":"5089:1:65","nodeType":"YulLiteral","src":"5089:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5079:6:65","nodeType":"YulTypedName","src":"5079:6:65","type":""}]},{"nativeSrc":"5104:63:65","nodeType":"YulAssignment","src":"5104:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5139:9:65","nodeType":"YulIdentifier","src":"5139:9:65"},{"name":"offset","nativeSrc":"5150:6:65","nodeType":"YulIdentifier","src":"5150:6:65"}],"functionName":{"name":"add","nativeSrc":"5135:3:65","nodeType":"YulIdentifier","src":"5135:3:65"},"nativeSrc":"5135:22:65","nodeType":"YulFunctionCall","src":"5135:22:65"},{"name":"dataEnd","nativeSrc":"5159:7:65","nodeType":"YulIdentifier","src":"5159:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5114:20:65","nodeType":"YulIdentifier","src":"5114:20:65"},"nativeSrc":"5114:53:65","nodeType":"YulFunctionCall","src":"5114:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5104:6:65","nodeType":"YulIdentifier","src":"5104:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4855:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4891:9:65","nodeType":"YulTypedName","src":"4891:9:65","type":""},{"name":"dataEnd","nativeSrc":"4902:7:65","nodeType":"YulTypedName","src":"4902:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4914:6:65","nodeType":"YulTypedName","src":"4914:6:65","type":""}],"src":"4855:329:65"},{"body":{"nativeSrc":"5273:391:65","nodeType":"YulBlock","src":"5273:391:65","statements":[{"body":{"nativeSrc":"5319:83:65","nodeType":"YulBlock","src":"5319:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5321:77:65","nodeType":"YulIdentifier","src":"5321:77:65"},"nativeSrc":"5321:79:65","nodeType":"YulFunctionCall","src":"5321:79:65"},"nativeSrc":"5321:79:65","nodeType":"YulExpressionStatement","src":"5321:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5294:7:65","nodeType":"YulIdentifier","src":"5294:7:65"},{"name":"headStart","nativeSrc":"5303:9:65","nodeType":"YulIdentifier","src":"5303:9:65"}],"functionName":{"name":"sub","nativeSrc":"5290:3:65","nodeType":"YulIdentifier","src":"5290:3:65"},"nativeSrc":"5290:23:65","nodeType":"YulFunctionCall","src":"5290:23:65"},{"kind":"number","nativeSrc":"5315:2:65","nodeType":"YulLiteral","src":"5315:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5286:3:65","nodeType":"YulIdentifier","src":"5286:3:65"},"nativeSrc":"5286:32:65","nodeType":"YulFunctionCall","src":"5286:32:65"},"nativeSrc":"5283:119:65","nodeType":"YulIf","src":"5283:119:65"},{"nativeSrc":"5412:117:65","nodeType":"YulBlock","src":"5412:117:65","statements":[{"nativeSrc":"5427:15:65","nodeType":"YulVariableDeclaration","src":"5427:15:65","value":{"kind":"number","nativeSrc":"5441:1:65","nodeType":"YulLiteral","src":"5441:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5431:6:65","nodeType":"YulTypedName","src":"5431:6:65","type":""}]},{"nativeSrc":"5456:63:65","nodeType":"YulAssignment","src":"5456:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5491:9:65","nodeType":"YulIdentifier","src":"5491:9:65"},{"name":"offset","nativeSrc":"5502:6:65","nodeType":"YulIdentifier","src":"5502:6:65"}],"functionName":{"name":"add","nativeSrc":"5487:3:65","nodeType":"YulIdentifier","src":"5487:3:65"},"nativeSrc":"5487:22:65","nodeType":"YulFunctionCall","src":"5487:22:65"},{"name":"dataEnd","nativeSrc":"5511:7:65","nodeType":"YulIdentifier","src":"5511:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5466:20:65","nodeType":"YulIdentifier","src":"5466:20:65"},"nativeSrc":"5466:53:65","nodeType":"YulFunctionCall","src":"5466:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5456:6:65","nodeType":"YulIdentifier","src":"5456:6:65"}]}]},{"nativeSrc":"5539:118:65","nodeType":"YulBlock","src":"5539:118:65","statements":[{"nativeSrc":"5554:16:65","nodeType":"YulVariableDeclaration","src":"5554:16:65","value":{"kind":"number","nativeSrc":"5568:2:65","nodeType":"YulLiteral","src":"5568:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5558:6:65","nodeType":"YulTypedName","src":"5558:6:65","type":""}]},{"nativeSrc":"5584:63:65","nodeType":"YulAssignment","src":"5584:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5619:9:65","nodeType":"YulIdentifier","src":"5619:9:65"},{"name":"offset","nativeSrc":"5630:6:65","nodeType":"YulIdentifier","src":"5630:6:65"}],"functionName":{"name":"add","nativeSrc":"5615:3:65","nodeType":"YulIdentifier","src":"5615:3:65"},"nativeSrc":"5615:22:65","nodeType":"YulFunctionCall","src":"5615:22:65"},{"name":"dataEnd","nativeSrc":"5639:7:65","nodeType":"YulIdentifier","src":"5639:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5594:20:65","nodeType":"YulIdentifier","src":"5594:20:65"},"nativeSrc":"5594:53:65","nodeType":"YulFunctionCall","src":"5594:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5584:6:65","nodeType":"YulIdentifier","src":"5584:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5190:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5235:9:65","nodeType":"YulTypedName","src":"5235:9:65","type":""},{"name":"dataEnd","nativeSrc":"5246:7:65","nodeType":"YulTypedName","src":"5246:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5258:6:65","nodeType":"YulTypedName","src":"5258:6:65","type":""},{"name":"value1","nativeSrc":"5266:6:65","nodeType":"YulTypedName","src":"5266:6:65","type":""}],"src":"5190:474:65"},{"body":{"nativeSrc":"5698:152:65","nodeType":"YulBlock","src":"5698:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5715:1:65","nodeType":"YulLiteral","src":"5715:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5718:77:65","nodeType":"YulLiteral","src":"5718:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5708:6:65","nodeType":"YulIdentifier","src":"5708:6:65"},"nativeSrc":"5708:88:65","nodeType":"YulFunctionCall","src":"5708:88:65"},"nativeSrc":"5708:88:65","nodeType":"YulExpressionStatement","src":"5708:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5812:1:65","nodeType":"YulLiteral","src":"5812:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"5815:4:65","nodeType":"YulLiteral","src":"5815:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5805:6:65","nodeType":"YulIdentifier","src":"5805:6:65"},"nativeSrc":"5805:15:65","nodeType":"YulFunctionCall","src":"5805:15:65"},"nativeSrc":"5805:15:65","nodeType":"YulExpressionStatement","src":"5805:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5836:1:65","nodeType":"YulLiteral","src":"5836:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5839:4:65","nodeType":"YulLiteral","src":"5839:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5829:6:65","nodeType":"YulIdentifier","src":"5829:6:65"},"nativeSrc":"5829:15:65","nodeType":"YulFunctionCall","src":"5829:15:65"},"nativeSrc":"5829:15:65","nodeType":"YulExpressionStatement","src":"5829:15:65"}]},"name":"panic_error_0x22","nativeSrc":"5670:180:65","nodeType":"YulFunctionDefinition","src":"5670:180:65"},{"body":{"nativeSrc":"5907:269:65","nodeType":"YulBlock","src":"5907:269:65","statements":[{"nativeSrc":"5917:22:65","nodeType":"YulAssignment","src":"5917:22:65","value":{"arguments":[{"name":"data","nativeSrc":"5931:4:65","nodeType":"YulIdentifier","src":"5931:4:65"},{"kind":"number","nativeSrc":"5937:1:65","nodeType":"YulLiteral","src":"5937:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"5927:3:65","nodeType":"YulIdentifier","src":"5927:3:65"},"nativeSrc":"5927:12:65","nodeType":"YulFunctionCall","src":"5927:12:65"},"variableNames":[{"name":"length","nativeSrc":"5917:6:65","nodeType":"YulIdentifier","src":"5917:6:65"}]},{"nativeSrc":"5948:38:65","nodeType":"YulVariableDeclaration","src":"5948:38:65","value":{"arguments":[{"name":"data","nativeSrc":"5978:4:65","nodeType":"YulIdentifier","src":"5978:4:65"},{"kind":"number","nativeSrc":"5984:1:65","nodeType":"YulLiteral","src":"5984:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5974:3:65","nodeType":"YulIdentifier","src":"5974:3:65"},"nativeSrc":"5974:12:65","nodeType":"YulFunctionCall","src":"5974:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5952:18:65","nodeType":"YulTypedName","src":"5952:18:65","type":""}]},{"body":{"nativeSrc":"6025:51:65","nodeType":"YulBlock","src":"6025:51:65","statements":[{"nativeSrc":"6039:27:65","nodeType":"YulAssignment","src":"6039:27:65","value":{"arguments":[{"name":"length","nativeSrc":"6053:6:65","nodeType":"YulIdentifier","src":"6053:6:65"},{"kind":"number","nativeSrc":"6061:4:65","nodeType":"YulLiteral","src":"6061:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6049:3:65","nodeType":"YulIdentifier","src":"6049:3:65"},"nativeSrc":"6049:17:65","nodeType":"YulFunctionCall","src":"6049:17:65"},"variableNames":[{"name":"length","nativeSrc":"6039:6:65","nodeType":"YulIdentifier","src":"6039:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6005:18:65","nodeType":"YulIdentifier","src":"6005:18:65"}],"functionName":{"name":"iszero","nativeSrc":"5998:6:65","nodeType":"YulIdentifier","src":"5998:6:65"},"nativeSrc":"5998:26:65","nodeType":"YulFunctionCall","src":"5998:26:65"},"nativeSrc":"5995:81:65","nodeType":"YulIf","src":"5995:81:65"},{"body":{"nativeSrc":"6128:42:65","nodeType":"YulBlock","src":"6128:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6142:16:65","nodeType":"YulIdentifier","src":"6142:16:65"},"nativeSrc":"6142:18:65","nodeType":"YulFunctionCall","src":"6142:18:65"},"nativeSrc":"6142:18:65","nodeType":"YulExpressionStatement","src":"6142:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6092:18:65","nodeType":"YulIdentifier","src":"6092:18:65"},{"arguments":[{"name":"length","nativeSrc":"6115:6:65","nodeType":"YulIdentifier","src":"6115:6:65"},{"kind":"number","nativeSrc":"6123:2:65","nodeType":"YulLiteral","src":"6123:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6112:2:65","nodeType":"YulIdentifier","src":"6112:2:65"},"nativeSrc":"6112:14:65","nodeType":"YulFunctionCall","src":"6112:14:65"}],"functionName":{"name":"eq","nativeSrc":"6089:2:65","nodeType":"YulIdentifier","src":"6089:2:65"},"nativeSrc":"6089:38:65","nodeType":"YulFunctionCall","src":"6089:38:65"},"nativeSrc":"6086:84:65","nodeType":"YulIf","src":"6086:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"5856:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5891:4:65","nodeType":"YulTypedName","src":"5891:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5900:6:65","nodeType":"YulTypedName","src":"5900:6:65","type":""}],"src":"5856:320:65"},{"body":{"nativeSrc":"6210:152:65","nodeType":"YulBlock","src":"6210:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6227:1:65","nodeType":"YulLiteral","src":"6227:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6230:77:65","nodeType":"YulLiteral","src":"6230:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6220:6:65","nodeType":"YulIdentifier","src":"6220:6:65"},"nativeSrc":"6220:88:65","nodeType":"YulFunctionCall","src":"6220:88:65"},"nativeSrc":"6220:88:65","nodeType":"YulExpressionStatement","src":"6220:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6324:1:65","nodeType":"YulLiteral","src":"6324:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"6327:4:65","nodeType":"YulLiteral","src":"6327:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6317:6:65","nodeType":"YulIdentifier","src":"6317:6:65"},"nativeSrc":"6317:15:65","nodeType":"YulFunctionCall","src":"6317:15:65"},"nativeSrc":"6317:15:65","nodeType":"YulExpressionStatement","src":"6317:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6348:1:65","nodeType":"YulLiteral","src":"6348:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6351:4:65","nodeType":"YulLiteral","src":"6351:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6341:6:65","nodeType":"YulIdentifier","src":"6341:6:65"},"nativeSrc":"6341:15:65","nodeType":"YulFunctionCall","src":"6341:15:65"},"nativeSrc":"6341:15:65","nodeType":"YulExpressionStatement","src":"6341:15:65"}]},"name":"panic_error_0x11","nativeSrc":"6182:180:65","nodeType":"YulFunctionDefinition","src":"6182:180:65"},{"body":{"nativeSrc":"6412:147:65","nodeType":"YulBlock","src":"6412:147:65","statements":[{"nativeSrc":"6422:25:65","nodeType":"YulAssignment","src":"6422:25:65","value":{"arguments":[{"name":"x","nativeSrc":"6445:1:65","nodeType":"YulIdentifier","src":"6445:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6427:17:65","nodeType":"YulIdentifier","src":"6427:17:65"},"nativeSrc":"6427:20:65","nodeType":"YulFunctionCall","src":"6427:20:65"},"variableNames":[{"name":"x","nativeSrc":"6422:1:65","nodeType":"YulIdentifier","src":"6422:1:65"}]},{"nativeSrc":"6456:25:65","nodeType":"YulAssignment","src":"6456:25:65","value":{"arguments":[{"name":"y","nativeSrc":"6479:1:65","nodeType":"YulIdentifier","src":"6479:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6461:17:65","nodeType":"YulIdentifier","src":"6461:17:65"},"nativeSrc":"6461:20:65","nodeType":"YulFunctionCall","src":"6461:20:65"},"variableNames":[{"name":"y","nativeSrc":"6456:1:65","nodeType":"YulIdentifier","src":"6456:1:65"}]},{"nativeSrc":"6490:16:65","nodeType":"YulAssignment","src":"6490:16:65","value":{"arguments":[{"name":"x","nativeSrc":"6501:1:65","nodeType":"YulIdentifier","src":"6501:1:65"},{"name":"y","nativeSrc":"6504:1:65","nodeType":"YulIdentifier","src":"6504:1:65"}],"functionName":{"name":"add","nativeSrc":"6497:3:65","nodeType":"YulIdentifier","src":"6497:3:65"},"nativeSrc":"6497:9:65","nodeType":"YulFunctionCall","src":"6497:9:65"},"variableNames":[{"name":"sum","nativeSrc":"6490:3:65","nodeType":"YulIdentifier","src":"6490:3:65"}]},{"body":{"nativeSrc":"6530:22:65","nodeType":"YulBlock","src":"6530:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6532:16:65","nodeType":"YulIdentifier","src":"6532:16:65"},"nativeSrc":"6532:18:65","nodeType":"YulFunctionCall","src":"6532:18:65"},"nativeSrc":"6532:18:65","nodeType":"YulExpressionStatement","src":"6532:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6522:1:65","nodeType":"YulIdentifier","src":"6522:1:65"},{"name":"sum","nativeSrc":"6525:3:65","nodeType":"YulIdentifier","src":"6525:3:65"}],"functionName":{"name":"gt","nativeSrc":"6519:2:65","nodeType":"YulIdentifier","src":"6519:2:65"},"nativeSrc":"6519:10:65","nodeType":"YulFunctionCall","src":"6519:10:65"},"nativeSrc":"6516:36:65","nodeType":"YulIf","src":"6516:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"6368:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6399:1:65","nodeType":"YulTypedName","src":"6399:1:65","type":""},{"name":"y","nativeSrc":"6402:1:65","nodeType":"YulTypedName","src":"6402:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6408:3:65","nodeType":"YulTypedName","src":"6408:3:65","type":""}],"src":"6368:191:65"},{"body":{"nativeSrc":"6671:118:65","nodeType":"YulBlock","src":"6671:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6693:6:65","nodeType":"YulIdentifier","src":"6693:6:65"},{"kind":"number","nativeSrc":"6701:1:65","nodeType":"YulLiteral","src":"6701:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6689:3:65","nodeType":"YulIdentifier","src":"6689:3:65"},"nativeSrc":"6689:14:65","nodeType":"YulFunctionCall","src":"6689:14:65"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"6705:34:65","nodeType":"YulLiteral","src":"6705:34:65","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"6682:6:65","nodeType":"YulIdentifier","src":"6682:6:65"},"nativeSrc":"6682:58:65","nodeType":"YulFunctionCall","src":"6682:58:65"},"nativeSrc":"6682:58:65","nodeType":"YulExpressionStatement","src":"6682:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6761:6:65","nodeType":"YulIdentifier","src":"6761:6:65"},{"kind":"number","nativeSrc":"6769:2:65","nodeType":"YulLiteral","src":"6769:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6757:3:65","nodeType":"YulIdentifier","src":"6757:3:65"},"nativeSrc":"6757:15:65","nodeType":"YulFunctionCall","src":"6757:15:65"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"6774:7:65","nodeType":"YulLiteral","src":"6774:7:65","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"6750:6:65","nodeType":"YulIdentifier","src":"6750:6:65"},"nativeSrc":"6750:32:65","nodeType":"YulFunctionCall","src":"6750:32:65"},"nativeSrc":"6750:32:65","nodeType":"YulExpressionStatement","src":"6750:32:65"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6565:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6663:6:65","nodeType":"YulTypedName","src":"6663:6:65","type":""}],"src":"6565:224:65"},{"body":{"nativeSrc":"6941:220:65","nodeType":"YulBlock","src":"6941:220:65","statements":[{"nativeSrc":"6951:74:65","nodeType":"YulAssignment","src":"6951:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"7017:3:65","nodeType":"YulIdentifier","src":"7017:3:65"},{"kind":"number","nativeSrc":"7022:2:65","nodeType":"YulLiteral","src":"7022:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6958:58:65","nodeType":"YulIdentifier","src":"6958:58:65"},"nativeSrc":"6958:67:65","nodeType":"YulFunctionCall","src":"6958:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6951:3:65","nodeType":"YulIdentifier","src":"6951:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7123:3:65","nodeType":"YulIdentifier","src":"7123:3:65"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7034:88:65","nodeType":"YulIdentifier","src":"7034:88:65"},"nativeSrc":"7034:93:65","nodeType":"YulFunctionCall","src":"7034:93:65"},"nativeSrc":"7034:93:65","nodeType":"YulExpressionStatement","src":"7034:93:65"},{"nativeSrc":"7136:19:65","nodeType":"YulAssignment","src":"7136:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"7147:3:65","nodeType":"YulIdentifier","src":"7147:3:65"},{"kind":"number","nativeSrc":"7152:2:65","nodeType":"YulLiteral","src":"7152:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7143:3:65","nodeType":"YulIdentifier","src":"7143:3:65"},"nativeSrc":"7143:12:65","nodeType":"YulFunctionCall","src":"7143:12:65"},"variableNames":[{"name":"end","nativeSrc":"7136:3:65","nodeType":"YulIdentifier","src":"7136:3:65"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"6795:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6929:3:65","nodeType":"YulTypedName","src":"6929:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6937:3:65","nodeType":"YulTypedName","src":"6937:3:65","type":""}],"src":"6795:366:65"},{"body":{"nativeSrc":"7338:248:65","nodeType":"YulBlock","src":"7338:248:65","statements":[{"nativeSrc":"7348:26:65","nodeType":"YulAssignment","src":"7348:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7360:9:65","nodeType":"YulIdentifier","src":"7360:9:65"},{"kind":"number","nativeSrc":"7371:2:65","nodeType":"YulLiteral","src":"7371:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7356:3:65","nodeType":"YulIdentifier","src":"7356:3:65"},"nativeSrc":"7356:18:65","nodeType":"YulFunctionCall","src":"7356:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7348:4:65","nodeType":"YulIdentifier","src":"7348:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7395:9:65","nodeType":"YulIdentifier","src":"7395:9:65"},{"kind":"number","nativeSrc":"7406:1:65","nodeType":"YulLiteral","src":"7406:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7391:3:65","nodeType":"YulIdentifier","src":"7391:3:65"},"nativeSrc":"7391:17:65","nodeType":"YulFunctionCall","src":"7391:17:65"},{"arguments":[{"name":"tail","nativeSrc":"7414:4:65","nodeType":"YulIdentifier","src":"7414:4:65"},{"name":"headStart","nativeSrc":"7420:9:65","nodeType":"YulIdentifier","src":"7420:9:65"}],"functionName":{"name":"sub","nativeSrc":"7410:3:65","nodeType":"YulIdentifier","src":"7410:3:65"},"nativeSrc":"7410:20:65","nodeType":"YulFunctionCall","src":"7410:20:65"}],"functionName":{"name":"mstore","nativeSrc":"7384:6:65","nodeType":"YulIdentifier","src":"7384:6:65"},"nativeSrc":"7384:47:65","nodeType":"YulFunctionCall","src":"7384:47:65"},"nativeSrc":"7384:47:65","nodeType":"YulExpressionStatement","src":"7384:47:65"},{"nativeSrc":"7440:139:65","nodeType":"YulAssignment","src":"7440:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"7574:4:65","nodeType":"YulIdentifier","src":"7574:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7448:124:65","nodeType":"YulIdentifier","src":"7448:124:65"},"nativeSrc":"7448:131:65","nodeType":"YulFunctionCall","src":"7448:131:65"},"variableNames":[{"name":"tail","nativeSrc":"7440:4:65","nodeType":"YulIdentifier","src":"7440:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7167:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7318:9:65","nodeType":"YulTypedName","src":"7318:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7333:4:65","nodeType":"YulTypedName","src":"7333:4:65","type":""}],"src":"7167:419:65"},{"body":{"nativeSrc":"7698:117:65","nodeType":"YulBlock","src":"7698:117:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7720:6:65","nodeType":"YulIdentifier","src":"7720:6:65"},{"kind":"number","nativeSrc":"7728:1:65","nodeType":"YulLiteral","src":"7728:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7716:3:65","nodeType":"YulIdentifier","src":"7716:3:65"},"nativeSrc":"7716:14:65","nodeType":"YulFunctionCall","src":"7716:14:65"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"7732:34:65","nodeType":"YulLiteral","src":"7732:34:65","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"7709:6:65","nodeType":"YulIdentifier","src":"7709:6:65"},"nativeSrc":"7709:58:65","nodeType":"YulFunctionCall","src":"7709:58:65"},"nativeSrc":"7709:58:65","nodeType":"YulExpressionStatement","src":"7709:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7788:6:65","nodeType":"YulIdentifier","src":"7788:6:65"},{"kind":"number","nativeSrc":"7796:2:65","nodeType":"YulLiteral","src":"7796:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7784:3:65","nodeType":"YulIdentifier","src":"7784:3:65"},"nativeSrc":"7784:15:65","nodeType":"YulFunctionCall","src":"7784:15:65"},{"hexValue":"72657373","kind":"string","nativeSrc":"7801:6:65","nodeType":"YulLiteral","src":"7801:6:65","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"7777:6:65","nodeType":"YulIdentifier","src":"7777:6:65"},"nativeSrc":"7777:31:65","nodeType":"YulFunctionCall","src":"7777:31:65"},"nativeSrc":"7777:31:65","nodeType":"YulExpressionStatement","src":"7777:31:65"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7592:223:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7690:6:65","nodeType":"YulTypedName","src":"7690:6:65","type":""}],"src":"7592:223:65"},{"body":{"nativeSrc":"7967:220:65","nodeType":"YulBlock","src":"7967:220:65","statements":[{"nativeSrc":"7977:74:65","nodeType":"YulAssignment","src":"7977:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"8043:3:65","nodeType":"YulIdentifier","src":"8043:3:65"},{"kind":"number","nativeSrc":"8048:2:65","nodeType":"YulLiteral","src":"8048:2:65","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7984:58:65","nodeType":"YulIdentifier","src":"7984:58:65"},"nativeSrc":"7984:67:65","nodeType":"YulFunctionCall","src":"7984:67:65"},"variableNames":[{"name":"pos","nativeSrc":"7977:3:65","nodeType":"YulIdentifier","src":"7977:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8149:3:65","nodeType":"YulIdentifier","src":"8149:3:65"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"8060:88:65","nodeType":"YulIdentifier","src":"8060:88:65"},"nativeSrc":"8060:93:65","nodeType":"YulFunctionCall","src":"8060:93:65"},"nativeSrc":"8060:93:65","nodeType":"YulExpressionStatement","src":"8060:93:65"},{"nativeSrc":"8162:19:65","nodeType":"YulAssignment","src":"8162:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"8173:3:65","nodeType":"YulIdentifier","src":"8173:3:65"},{"kind":"number","nativeSrc":"8178:2:65","nodeType":"YulLiteral","src":"8178:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8169:3:65","nodeType":"YulIdentifier","src":"8169:3:65"},"nativeSrc":"8169:12:65","nodeType":"YulFunctionCall","src":"8169:12:65"},"variableNames":[{"name":"end","nativeSrc":"8162:3:65","nodeType":"YulIdentifier","src":"8162:3:65"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"7821:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7955:3:65","nodeType":"YulTypedName","src":"7955:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7963:3:65","nodeType":"YulTypedName","src":"7963:3:65","type":""}],"src":"7821:366:65"},{"body":{"nativeSrc":"8364:248:65","nodeType":"YulBlock","src":"8364:248:65","statements":[{"nativeSrc":"8374:26:65","nodeType":"YulAssignment","src":"8374:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8386:9:65","nodeType":"YulIdentifier","src":"8386:9:65"},{"kind":"number","nativeSrc":"8397:2:65","nodeType":"YulLiteral","src":"8397:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8382:3:65","nodeType":"YulIdentifier","src":"8382:3:65"},"nativeSrc":"8382:18:65","nodeType":"YulFunctionCall","src":"8382:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8374:4:65","nodeType":"YulIdentifier","src":"8374:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8421:9:65","nodeType":"YulIdentifier","src":"8421:9:65"},{"kind":"number","nativeSrc":"8432:1:65","nodeType":"YulLiteral","src":"8432:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8417:3:65","nodeType":"YulIdentifier","src":"8417:3:65"},"nativeSrc":"8417:17:65","nodeType":"YulFunctionCall","src":"8417:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8440:4:65","nodeType":"YulIdentifier","src":"8440:4:65"},{"name":"headStart","nativeSrc":"8446:9:65","nodeType":"YulIdentifier","src":"8446:9:65"}],"functionName":{"name":"sub","nativeSrc":"8436:3:65","nodeType":"YulIdentifier","src":"8436:3:65"},"nativeSrc":"8436:20:65","nodeType":"YulFunctionCall","src":"8436:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8410:6:65","nodeType":"YulIdentifier","src":"8410:6:65"},"nativeSrc":"8410:47:65","nodeType":"YulFunctionCall","src":"8410:47:65"},"nativeSrc":"8410:47:65","nodeType":"YulExpressionStatement","src":"8410:47:65"},{"nativeSrc":"8466:139:65","nodeType":"YulAssignment","src":"8466:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"8600:4:65","nodeType":"YulIdentifier","src":"8600:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8474:124:65","nodeType":"YulIdentifier","src":"8474:124:65"},"nativeSrc":"8474:131:65","nodeType":"YulFunctionCall","src":"8474:131:65"},"variableNames":[{"name":"tail","nativeSrc":"8466:4:65","nodeType":"YulIdentifier","src":"8466:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8193:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8344:9:65","nodeType":"YulTypedName","src":"8344:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8359:4:65","nodeType":"YulTypedName","src":"8359:4:65","type":""}],"src":"8193:419:65"},{"body":{"nativeSrc":"8724:115:65","nodeType":"YulBlock","src":"8724:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8746:6:65","nodeType":"YulIdentifier","src":"8746:6:65"},{"kind":"number","nativeSrc":"8754:1:65","nodeType":"YulLiteral","src":"8754:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8742:3:65","nodeType":"YulIdentifier","src":"8742:3:65"},"nativeSrc":"8742:14:65","nodeType":"YulFunctionCall","src":"8742:14:65"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"8758:34:65","nodeType":"YulLiteral","src":"8758:34:65","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"8735:6:65","nodeType":"YulIdentifier","src":"8735:6:65"},"nativeSrc":"8735:58:65","nodeType":"YulFunctionCall","src":"8735:58:65"},"nativeSrc":"8735:58:65","nodeType":"YulExpressionStatement","src":"8735:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8814:6:65","nodeType":"YulIdentifier","src":"8814:6:65"},{"kind":"number","nativeSrc":"8822:2:65","nodeType":"YulLiteral","src":"8822:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8810:3:65","nodeType":"YulIdentifier","src":"8810:3:65"},"nativeSrc":"8810:15:65","nodeType":"YulFunctionCall","src":"8810:15:65"},{"hexValue":"7373","kind":"string","nativeSrc":"8827:4:65","nodeType":"YulLiteral","src":"8827:4:65","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"8803:6:65","nodeType":"YulIdentifier","src":"8803:6:65"},"nativeSrc":"8803:29:65","nodeType":"YulFunctionCall","src":"8803:29:65"},"nativeSrc":"8803:29:65","nodeType":"YulExpressionStatement","src":"8803:29:65"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8618:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8716:6:65","nodeType":"YulTypedName","src":"8716:6:65","type":""}],"src":"8618:221:65"},{"body":{"nativeSrc":"8991:220:65","nodeType":"YulBlock","src":"8991:220:65","statements":[{"nativeSrc":"9001:74:65","nodeType":"YulAssignment","src":"9001:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"9067:3:65","nodeType":"YulIdentifier","src":"9067:3:65"},{"kind":"number","nativeSrc":"9072:2:65","nodeType":"YulLiteral","src":"9072:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9008:58:65","nodeType":"YulIdentifier","src":"9008:58:65"},"nativeSrc":"9008:67:65","nodeType":"YulFunctionCall","src":"9008:67:65"},"variableNames":[{"name":"pos","nativeSrc":"9001:3:65","nodeType":"YulIdentifier","src":"9001:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9173:3:65","nodeType":"YulIdentifier","src":"9173:3:65"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"9084:88:65","nodeType":"YulIdentifier","src":"9084:88:65"},"nativeSrc":"9084:93:65","nodeType":"YulFunctionCall","src":"9084:93:65"},"nativeSrc":"9084:93:65","nodeType":"YulExpressionStatement","src":"9084:93:65"},{"nativeSrc":"9186:19:65","nodeType":"YulAssignment","src":"9186:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"9197:3:65","nodeType":"YulIdentifier","src":"9197:3:65"},{"kind":"number","nativeSrc":"9202:2:65","nodeType":"YulLiteral","src":"9202:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9193:3:65","nodeType":"YulIdentifier","src":"9193:3:65"},"nativeSrc":"9193:12:65","nodeType":"YulFunctionCall","src":"9193:12:65"},"variableNames":[{"name":"end","nativeSrc":"9186:3:65","nodeType":"YulIdentifier","src":"9186:3:65"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"8845:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8979:3:65","nodeType":"YulTypedName","src":"8979:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8987:3:65","nodeType":"YulTypedName","src":"8987:3:65","type":""}],"src":"8845:366:65"},{"body":{"nativeSrc":"9388:248:65","nodeType":"YulBlock","src":"9388:248:65","statements":[{"nativeSrc":"9398:26:65","nodeType":"YulAssignment","src":"9398:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9410:9:65","nodeType":"YulIdentifier","src":"9410:9:65"},{"kind":"number","nativeSrc":"9421:2:65","nodeType":"YulLiteral","src":"9421:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9406:3:65","nodeType":"YulIdentifier","src":"9406:3:65"},"nativeSrc":"9406:18:65","nodeType":"YulFunctionCall","src":"9406:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9398:4:65","nodeType":"YulIdentifier","src":"9398:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9445:9:65","nodeType":"YulIdentifier","src":"9445:9:65"},{"kind":"number","nativeSrc":"9456:1:65","nodeType":"YulLiteral","src":"9456:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9441:3:65","nodeType":"YulIdentifier","src":"9441:3:65"},"nativeSrc":"9441:17:65","nodeType":"YulFunctionCall","src":"9441:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9464:4:65","nodeType":"YulIdentifier","src":"9464:4:65"},{"name":"headStart","nativeSrc":"9470:9:65","nodeType":"YulIdentifier","src":"9470:9:65"}],"functionName":{"name":"sub","nativeSrc":"9460:3:65","nodeType":"YulIdentifier","src":"9460:3:65"},"nativeSrc":"9460:20:65","nodeType":"YulFunctionCall","src":"9460:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9434:6:65","nodeType":"YulIdentifier","src":"9434:6:65"},"nativeSrc":"9434:47:65","nodeType":"YulFunctionCall","src":"9434:47:65"},"nativeSrc":"9434:47:65","nodeType":"YulExpressionStatement","src":"9434:47:65"},{"nativeSrc":"9490:139:65","nodeType":"YulAssignment","src":"9490:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9624:4:65","nodeType":"YulIdentifier","src":"9624:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9498:124:65","nodeType":"YulIdentifier","src":"9498:124:65"},"nativeSrc":"9498:131:65","nodeType":"YulFunctionCall","src":"9498:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9490:4:65","nodeType":"YulIdentifier","src":"9490:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9217:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9368:9:65","nodeType":"YulTypedName","src":"9368:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9383:4:65","nodeType":"YulTypedName","src":"9383:4:65","type":""}],"src":"9217:419:65"},{"body":{"nativeSrc":"9748:73:65","nodeType":"YulBlock","src":"9748:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9770:6:65","nodeType":"YulIdentifier","src":"9770:6:65"},{"kind":"number","nativeSrc":"9778:1:65","nodeType":"YulLiteral","src":"9778:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9766:3:65","nodeType":"YulIdentifier","src":"9766:3:65"},"nativeSrc":"9766:14:65","nodeType":"YulFunctionCall","src":"9766:14:65"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"9782:31:65","nodeType":"YulLiteral","src":"9782:31:65","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"9759:6:65","nodeType":"YulIdentifier","src":"9759:6:65"},"nativeSrc":"9759:55:65","nodeType":"YulFunctionCall","src":"9759:55:65"},"nativeSrc":"9759:55:65","nodeType":"YulExpressionStatement","src":"9759:55:65"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9642:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9740:6:65","nodeType":"YulTypedName","src":"9740:6:65","type":""}],"src":"9642:179:65"},{"body":{"nativeSrc":"9973:220:65","nodeType":"YulBlock","src":"9973:220:65","statements":[{"nativeSrc":"9983:74:65","nodeType":"YulAssignment","src":"9983:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"10049:3:65","nodeType":"YulIdentifier","src":"10049:3:65"},{"kind":"number","nativeSrc":"10054:2:65","nodeType":"YulLiteral","src":"10054:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9990:58:65","nodeType":"YulIdentifier","src":"9990:58:65"},"nativeSrc":"9990:67:65","nodeType":"YulFunctionCall","src":"9990:67:65"},"variableNames":[{"name":"pos","nativeSrc":"9983:3:65","nodeType":"YulIdentifier","src":"9983:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10155:3:65","nodeType":"YulIdentifier","src":"10155:3:65"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"10066:88:65","nodeType":"YulIdentifier","src":"10066:88:65"},"nativeSrc":"10066:93:65","nodeType":"YulFunctionCall","src":"10066:93:65"},"nativeSrc":"10066:93:65","nodeType":"YulExpressionStatement","src":"10066:93:65"},{"nativeSrc":"10168:19:65","nodeType":"YulAssignment","src":"10168:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"10179:3:65","nodeType":"YulIdentifier","src":"10179:3:65"},{"kind":"number","nativeSrc":"10184:2:65","nodeType":"YulLiteral","src":"10184:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10175:3:65","nodeType":"YulIdentifier","src":"10175:3:65"},"nativeSrc":"10175:12:65","nodeType":"YulFunctionCall","src":"10175:12:65"},"variableNames":[{"name":"end","nativeSrc":"10168:3:65","nodeType":"YulIdentifier","src":"10168:3:65"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"9827:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9961:3:65","nodeType":"YulTypedName","src":"9961:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9969:3:65","nodeType":"YulTypedName","src":"9969:3:65","type":""}],"src":"9827:366:65"},{"body":{"nativeSrc":"10370:248:65","nodeType":"YulBlock","src":"10370:248:65","statements":[{"nativeSrc":"10380:26:65","nodeType":"YulAssignment","src":"10380:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10392:9:65","nodeType":"YulIdentifier","src":"10392:9:65"},{"kind":"number","nativeSrc":"10403:2:65","nodeType":"YulLiteral","src":"10403:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10388:3:65","nodeType":"YulIdentifier","src":"10388:3:65"},"nativeSrc":"10388:18:65","nodeType":"YulFunctionCall","src":"10388:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10380:4:65","nodeType":"YulIdentifier","src":"10380:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10427:9:65","nodeType":"YulIdentifier","src":"10427:9:65"},{"kind":"number","nativeSrc":"10438:1:65","nodeType":"YulLiteral","src":"10438:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10423:3:65","nodeType":"YulIdentifier","src":"10423:3:65"},"nativeSrc":"10423:17:65","nodeType":"YulFunctionCall","src":"10423:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10446:4:65","nodeType":"YulIdentifier","src":"10446:4:65"},{"name":"headStart","nativeSrc":"10452:9:65","nodeType":"YulIdentifier","src":"10452:9:65"}],"functionName":{"name":"sub","nativeSrc":"10442:3:65","nodeType":"YulIdentifier","src":"10442:3:65"},"nativeSrc":"10442:20:65","nodeType":"YulFunctionCall","src":"10442:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10416:6:65","nodeType":"YulIdentifier","src":"10416:6:65"},"nativeSrc":"10416:47:65","nodeType":"YulFunctionCall","src":"10416:47:65"},"nativeSrc":"10416:47:65","nodeType":"YulExpressionStatement","src":"10416:47:65"},{"nativeSrc":"10472:139:65","nodeType":"YulAssignment","src":"10472:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"10606:4:65","nodeType":"YulIdentifier","src":"10606:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10480:124:65","nodeType":"YulIdentifier","src":"10480:124:65"},"nativeSrc":"10480:131:65","nodeType":"YulFunctionCall","src":"10480:131:65"},"variableNames":[{"name":"tail","nativeSrc":"10472:4:65","nodeType":"YulIdentifier","src":"10472:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10199:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10350:9:65","nodeType":"YulTypedName","src":"10350:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10365:4:65","nodeType":"YulTypedName","src":"10365:4:65","type":""}],"src":"10199:419:65"},{"body":{"nativeSrc":"10730:118:65","nodeType":"YulBlock","src":"10730:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10752:6:65","nodeType":"YulIdentifier","src":"10752:6:65"},{"kind":"number","nativeSrc":"10760:1:65","nodeType":"YulLiteral","src":"10760:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10748:3:65","nodeType":"YulIdentifier","src":"10748:3:65"},"nativeSrc":"10748:14:65","nodeType":"YulFunctionCall","src":"10748:14:65"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"10764:34:65","nodeType":"YulLiteral","src":"10764:34:65","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"10741:6:65","nodeType":"YulIdentifier","src":"10741:6:65"},"nativeSrc":"10741:58:65","nodeType":"YulFunctionCall","src":"10741:58:65"},"nativeSrc":"10741:58:65","nodeType":"YulExpressionStatement","src":"10741:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10820:6:65","nodeType":"YulIdentifier","src":"10820:6:65"},{"kind":"number","nativeSrc":"10828:2:65","nodeType":"YulLiteral","src":"10828:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10816:3:65","nodeType":"YulIdentifier","src":"10816:3:65"},"nativeSrc":"10816:15:65","nodeType":"YulFunctionCall","src":"10816:15:65"},{"hexValue":"6472657373","kind":"string","nativeSrc":"10833:7:65","nodeType":"YulLiteral","src":"10833:7:65","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"10809:6:65","nodeType":"YulIdentifier","src":"10809:6:65"},"nativeSrc":"10809:32:65","nodeType":"YulFunctionCall","src":"10809:32:65"},"nativeSrc":"10809:32:65","nodeType":"YulExpressionStatement","src":"10809:32:65"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10624:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10722:6:65","nodeType":"YulTypedName","src":"10722:6:65","type":""}],"src":"10624:224:65"},{"body":{"nativeSrc":"11000:220:65","nodeType":"YulBlock","src":"11000:220:65","statements":[{"nativeSrc":"11010:74:65","nodeType":"YulAssignment","src":"11010:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"11076:3:65","nodeType":"YulIdentifier","src":"11076:3:65"},{"kind":"number","nativeSrc":"11081:2:65","nodeType":"YulLiteral","src":"11081:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11017:58:65","nodeType":"YulIdentifier","src":"11017:58:65"},"nativeSrc":"11017:67:65","nodeType":"YulFunctionCall","src":"11017:67:65"},"variableNames":[{"name":"pos","nativeSrc":"11010:3:65","nodeType":"YulIdentifier","src":"11010:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11182:3:65","nodeType":"YulIdentifier","src":"11182:3:65"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"11093:88:65","nodeType":"YulIdentifier","src":"11093:88:65"},"nativeSrc":"11093:93:65","nodeType":"YulFunctionCall","src":"11093:93:65"},"nativeSrc":"11093:93:65","nodeType":"YulExpressionStatement","src":"11093:93:65"},{"nativeSrc":"11195:19:65","nodeType":"YulAssignment","src":"11195:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"11206:3:65","nodeType":"YulIdentifier","src":"11206:3:65"},{"kind":"number","nativeSrc":"11211:2:65","nodeType":"YulLiteral","src":"11211:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11202:3:65","nodeType":"YulIdentifier","src":"11202:3:65"},"nativeSrc":"11202:12:65","nodeType":"YulFunctionCall","src":"11202:12:65"},"variableNames":[{"name":"end","nativeSrc":"11195:3:65","nodeType":"YulIdentifier","src":"11195:3:65"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"10854:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10988:3:65","nodeType":"YulTypedName","src":"10988:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10996:3:65","nodeType":"YulTypedName","src":"10996:3:65","type":""}],"src":"10854:366:65"},{"body":{"nativeSrc":"11397:248:65","nodeType":"YulBlock","src":"11397:248:65","statements":[{"nativeSrc":"11407:26:65","nodeType":"YulAssignment","src":"11407:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11419:9:65","nodeType":"YulIdentifier","src":"11419:9:65"},{"kind":"number","nativeSrc":"11430:2:65","nodeType":"YulLiteral","src":"11430:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11415:3:65","nodeType":"YulIdentifier","src":"11415:3:65"},"nativeSrc":"11415:18:65","nodeType":"YulFunctionCall","src":"11415:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11407:4:65","nodeType":"YulIdentifier","src":"11407:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11454:9:65","nodeType":"YulIdentifier","src":"11454:9:65"},{"kind":"number","nativeSrc":"11465:1:65","nodeType":"YulLiteral","src":"11465:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11450:3:65","nodeType":"YulIdentifier","src":"11450:3:65"},"nativeSrc":"11450:17:65","nodeType":"YulFunctionCall","src":"11450:17:65"},{"arguments":[{"name":"tail","nativeSrc":"11473:4:65","nodeType":"YulIdentifier","src":"11473:4:65"},{"name":"headStart","nativeSrc":"11479:9:65","nodeType":"YulIdentifier","src":"11479:9:65"}],"functionName":{"name":"sub","nativeSrc":"11469:3:65","nodeType":"YulIdentifier","src":"11469:3:65"},"nativeSrc":"11469:20:65","nodeType":"YulFunctionCall","src":"11469:20:65"}],"functionName":{"name":"mstore","nativeSrc":"11443:6:65","nodeType":"YulIdentifier","src":"11443:6:65"},"nativeSrc":"11443:47:65","nodeType":"YulFunctionCall","src":"11443:47:65"},"nativeSrc":"11443:47:65","nodeType":"YulExpressionStatement","src":"11443:47:65"},{"nativeSrc":"11499:139:65","nodeType":"YulAssignment","src":"11499:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"11633:4:65","nodeType":"YulIdentifier","src":"11633:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11507:124:65","nodeType":"YulIdentifier","src":"11507:124:65"},"nativeSrc":"11507:131:65","nodeType":"YulFunctionCall","src":"11507:131:65"},"variableNames":[{"name":"tail","nativeSrc":"11499:4:65","nodeType":"YulIdentifier","src":"11499:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11226:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11377:9:65","nodeType":"YulTypedName","src":"11377:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11392:4:65","nodeType":"YulTypedName","src":"11392:4:65","type":""}],"src":"11226:419:65"},{"body":{"nativeSrc":"11757:116:65","nodeType":"YulBlock","src":"11757:116:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11779:6:65","nodeType":"YulIdentifier","src":"11779:6:65"},{"kind":"number","nativeSrc":"11787:1:65","nodeType":"YulLiteral","src":"11787:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11775:3:65","nodeType":"YulIdentifier","src":"11775:3:65"},"nativeSrc":"11775:14:65","nodeType":"YulFunctionCall","src":"11775:14:65"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"11791:34:65","nodeType":"YulLiteral","src":"11791:34:65","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"11768:6:65","nodeType":"YulIdentifier","src":"11768:6:65"},"nativeSrc":"11768:58:65","nodeType":"YulFunctionCall","src":"11768:58:65"},"nativeSrc":"11768:58:65","nodeType":"YulExpressionStatement","src":"11768:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11847:6:65","nodeType":"YulIdentifier","src":"11847:6:65"},{"kind":"number","nativeSrc":"11855:2:65","nodeType":"YulLiteral","src":"11855:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11843:3:65","nodeType":"YulIdentifier","src":"11843:3:65"},"nativeSrc":"11843:15:65","nodeType":"YulFunctionCall","src":"11843:15:65"},{"hexValue":"657373","kind":"string","nativeSrc":"11860:5:65","nodeType":"YulLiteral","src":"11860:5:65","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"11836:6:65","nodeType":"YulIdentifier","src":"11836:6:65"},"nativeSrc":"11836:30:65","nodeType":"YulFunctionCall","src":"11836:30:65"},"nativeSrc":"11836:30:65","nodeType":"YulExpressionStatement","src":"11836:30:65"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"11651:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11749:6:65","nodeType":"YulTypedName","src":"11749:6:65","type":""}],"src":"11651:222:65"},{"body":{"nativeSrc":"12025:220:65","nodeType":"YulBlock","src":"12025:220:65","statements":[{"nativeSrc":"12035:74:65","nodeType":"YulAssignment","src":"12035:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"12101:3:65","nodeType":"YulIdentifier","src":"12101:3:65"},{"kind":"number","nativeSrc":"12106:2:65","nodeType":"YulLiteral","src":"12106:2:65","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12042:58:65","nodeType":"YulIdentifier","src":"12042:58:65"},"nativeSrc":"12042:67:65","nodeType":"YulFunctionCall","src":"12042:67:65"},"variableNames":[{"name":"pos","nativeSrc":"12035:3:65","nodeType":"YulIdentifier","src":"12035:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12207:3:65","nodeType":"YulIdentifier","src":"12207:3:65"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12118:88:65","nodeType":"YulIdentifier","src":"12118:88:65"},"nativeSrc":"12118:93:65","nodeType":"YulFunctionCall","src":"12118:93:65"},"nativeSrc":"12118:93:65","nodeType":"YulExpressionStatement","src":"12118:93:65"},{"nativeSrc":"12220:19:65","nodeType":"YulAssignment","src":"12220:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"12231:3:65","nodeType":"YulIdentifier","src":"12231:3:65"},{"kind":"number","nativeSrc":"12236:2:65","nodeType":"YulLiteral","src":"12236:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12227:3:65","nodeType":"YulIdentifier","src":"12227:3:65"},"nativeSrc":"12227:12:65","nodeType":"YulFunctionCall","src":"12227:12:65"},"variableNames":[{"name":"end","nativeSrc":"12220:3:65","nodeType":"YulIdentifier","src":"12220:3:65"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"11879:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12013:3:65","nodeType":"YulTypedName","src":"12013:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12021:3:65","nodeType":"YulTypedName","src":"12021:3:65","type":""}],"src":"11879:366:65"},{"body":{"nativeSrc":"12422:248:65","nodeType":"YulBlock","src":"12422:248:65","statements":[{"nativeSrc":"12432:26:65","nodeType":"YulAssignment","src":"12432:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"12444:9:65","nodeType":"YulIdentifier","src":"12444:9:65"},{"kind":"number","nativeSrc":"12455:2:65","nodeType":"YulLiteral","src":"12455:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12440:3:65","nodeType":"YulIdentifier","src":"12440:3:65"},"nativeSrc":"12440:18:65","nodeType":"YulFunctionCall","src":"12440:18:65"},"variableNames":[{"name":"tail","nativeSrc":"12432:4:65","nodeType":"YulIdentifier","src":"12432:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12479:9:65","nodeType":"YulIdentifier","src":"12479:9:65"},{"kind":"number","nativeSrc":"12490:1:65","nodeType":"YulLiteral","src":"12490:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12475:3:65","nodeType":"YulIdentifier","src":"12475:3:65"},"nativeSrc":"12475:17:65","nodeType":"YulFunctionCall","src":"12475:17:65"},{"arguments":[{"name":"tail","nativeSrc":"12498:4:65","nodeType":"YulIdentifier","src":"12498:4:65"},{"name":"headStart","nativeSrc":"12504:9:65","nodeType":"YulIdentifier","src":"12504:9:65"}],"functionName":{"name":"sub","nativeSrc":"12494:3:65","nodeType":"YulIdentifier","src":"12494:3:65"},"nativeSrc":"12494:20:65","nodeType":"YulFunctionCall","src":"12494:20:65"}],"functionName":{"name":"mstore","nativeSrc":"12468:6:65","nodeType":"YulIdentifier","src":"12468:6:65"},"nativeSrc":"12468:47:65","nodeType":"YulFunctionCall","src":"12468:47:65"},"nativeSrc":"12468:47:65","nodeType":"YulExpressionStatement","src":"12468:47:65"},{"nativeSrc":"12524:139:65","nodeType":"YulAssignment","src":"12524:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"12658:4:65","nodeType":"YulIdentifier","src":"12658:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12532:124:65","nodeType":"YulIdentifier","src":"12532:124:65"},"nativeSrc":"12532:131:65","nodeType":"YulFunctionCall","src":"12532:131:65"},"variableNames":[{"name":"tail","nativeSrc":"12524:4:65","nodeType":"YulIdentifier","src":"12524:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12251:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12402:9:65","nodeType":"YulTypedName","src":"12402:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12417:4:65","nodeType":"YulTypedName","src":"12417:4:65","type":""}],"src":"12251:419:65"},{"body":{"nativeSrc":"12782:119:65","nodeType":"YulBlock","src":"12782:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12804:6:65","nodeType":"YulIdentifier","src":"12804:6:65"},{"kind":"number","nativeSrc":"12812:1:65","nodeType":"YulLiteral","src":"12812:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12800:3:65","nodeType":"YulIdentifier","src":"12800:3:65"},"nativeSrc":"12800:14:65","nodeType":"YulFunctionCall","src":"12800:14:65"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"12816:34:65","nodeType":"YulLiteral","src":"12816:34:65","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"12793:6:65","nodeType":"YulIdentifier","src":"12793:6:65"},"nativeSrc":"12793:58:65","nodeType":"YulFunctionCall","src":"12793:58:65"},"nativeSrc":"12793:58:65","nodeType":"YulExpressionStatement","src":"12793:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12872:6:65","nodeType":"YulIdentifier","src":"12872:6:65"},{"kind":"number","nativeSrc":"12880:2:65","nodeType":"YulLiteral","src":"12880:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12868:3:65","nodeType":"YulIdentifier","src":"12868:3:65"},"nativeSrc":"12868:15:65","nodeType":"YulFunctionCall","src":"12868:15:65"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"12885:8:65","nodeType":"YulLiteral","src":"12885:8:65","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"12861:6:65","nodeType":"YulIdentifier","src":"12861:6:65"},"nativeSrc":"12861:33:65","nodeType":"YulFunctionCall","src":"12861:33:65"},"nativeSrc":"12861:33:65","nodeType":"YulExpressionStatement","src":"12861:33:65"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"12676:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12774:6:65","nodeType":"YulTypedName","src":"12774:6:65","type":""}],"src":"12676:225:65"},{"body":{"nativeSrc":"13053:220:65","nodeType":"YulBlock","src":"13053:220:65","statements":[{"nativeSrc":"13063:74:65","nodeType":"YulAssignment","src":"13063:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"13129:3:65","nodeType":"YulIdentifier","src":"13129:3:65"},{"kind":"number","nativeSrc":"13134:2:65","nodeType":"YulLiteral","src":"13134:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13070:58:65","nodeType":"YulIdentifier","src":"13070:58:65"},"nativeSrc":"13070:67:65","nodeType":"YulFunctionCall","src":"13070:67:65"},"variableNames":[{"name":"pos","nativeSrc":"13063:3:65","nodeType":"YulIdentifier","src":"13063:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13235:3:65","nodeType":"YulIdentifier","src":"13235:3:65"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13146:88:65","nodeType":"YulIdentifier","src":"13146:88:65"},"nativeSrc":"13146:93:65","nodeType":"YulFunctionCall","src":"13146:93:65"},"nativeSrc":"13146:93:65","nodeType":"YulExpressionStatement","src":"13146:93:65"},{"nativeSrc":"13248:19:65","nodeType":"YulAssignment","src":"13248:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"13259:3:65","nodeType":"YulIdentifier","src":"13259:3:65"},{"kind":"number","nativeSrc":"13264:2:65","nodeType":"YulLiteral","src":"13264:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13255:3:65","nodeType":"YulIdentifier","src":"13255:3:65"},"nativeSrc":"13255:12:65","nodeType":"YulFunctionCall","src":"13255:12:65"},"variableNames":[{"name":"end","nativeSrc":"13248:3:65","nodeType":"YulIdentifier","src":"13248:3:65"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"12907:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13041:3:65","nodeType":"YulTypedName","src":"13041:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13049:3:65","nodeType":"YulTypedName","src":"13049:3:65","type":""}],"src":"12907:366:65"},{"body":{"nativeSrc":"13450:248:65","nodeType":"YulBlock","src":"13450:248:65","statements":[{"nativeSrc":"13460:26:65","nodeType":"YulAssignment","src":"13460:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"13472:9:65","nodeType":"YulIdentifier","src":"13472:9:65"},{"kind":"number","nativeSrc":"13483:2:65","nodeType":"YulLiteral","src":"13483:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13468:3:65","nodeType":"YulIdentifier","src":"13468:3:65"},"nativeSrc":"13468:18:65","nodeType":"YulFunctionCall","src":"13468:18:65"},"variableNames":[{"name":"tail","nativeSrc":"13460:4:65","nodeType":"YulIdentifier","src":"13460:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13507:9:65","nodeType":"YulIdentifier","src":"13507:9:65"},{"kind":"number","nativeSrc":"13518:1:65","nodeType":"YulLiteral","src":"13518:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13503:3:65","nodeType":"YulIdentifier","src":"13503:3:65"},"nativeSrc":"13503:17:65","nodeType":"YulFunctionCall","src":"13503:17:65"},{"arguments":[{"name":"tail","nativeSrc":"13526:4:65","nodeType":"YulIdentifier","src":"13526:4:65"},{"name":"headStart","nativeSrc":"13532:9:65","nodeType":"YulIdentifier","src":"13532:9:65"}],"functionName":{"name":"sub","nativeSrc":"13522:3:65","nodeType":"YulIdentifier","src":"13522:3:65"},"nativeSrc":"13522:20:65","nodeType":"YulFunctionCall","src":"13522:20:65"}],"functionName":{"name":"mstore","nativeSrc":"13496:6:65","nodeType":"YulIdentifier","src":"13496:6:65"},"nativeSrc":"13496:47:65","nodeType":"YulFunctionCall","src":"13496:47:65"},"nativeSrc":"13496:47:65","nodeType":"YulExpressionStatement","src":"13496:47:65"},{"nativeSrc":"13552:139:65","nodeType":"YulAssignment","src":"13552:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"13686:4:65","nodeType":"YulIdentifier","src":"13686:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13560:124:65","nodeType":"YulIdentifier","src":"13560:124:65"},"nativeSrc":"13560:131:65","nodeType":"YulFunctionCall","src":"13560:131:65"},"variableNames":[{"name":"tail","nativeSrc":"13552:4:65","nodeType":"YulIdentifier","src":"13552:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13279:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13430:9:65","nodeType":"YulTypedName","src":"13430:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13445:4:65","nodeType":"YulTypedName","src":"13445:4:65","type":""}],"src":"13279:419:65"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461011f57806370a082311461013257806395d89b411461015b578063a457c2d714610163578063a9059cbb14610176578063dd62ed3e1461018957600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ec57806323b872dd146100fd578063313ce56714610110575b600080fd5b6100b661019c565b6040516100c39190610560565b60405180910390f35b6100df6100da3660046105bc565b61022e565b6040516100c39190610603565b6002545b6040516100c39190610617565b6100df61010b366004610625565b610248565b60126040516100c3919061067e565b6100df61012d3660046105bc565b61026c565b6100f061014036600461068c565b6001600160a01b031660009081526020819052604090205490565b6100b661028e565b6100df6101713660046105bc565b61029d565b6100df6101843660046105bc565b6102e3565b6100f06101973660046106b5565b6102f1565b6060600380546101ab906106fe565b80601f01602080910402602001604051908101604052809291908181526020018280546101d7906106fe565b80156102245780601f106101f957610100808354040283529160200191610224565b820191906000526020600020905b81548152906001019060200180831161020757829003601f168201915b5050505050905090565b60003361023c81858561031c565b60019150505b92915050565b6000336102568582856103d0565b61026185858561041a565b506001949350505050565b60003361023c81858561027f83836102f1565b6102899190610740565b61031c565b6060600480546101ab906106fe565b600033816102ab82866102f1565b9050838110156102d65760405162461bcd60e51b81526004016102cd90610798565b60405180910390fd5b610261828686840361031c565b60003361023c81858561041a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103425760405162461bcd60e51b81526004016102cd906107e9565b6001600160a01b0382166103685760405162461bcd60e51b81526004016102cd90610838565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103c3908590610617565b60405180910390a3505050565b60006103dc84846102f1565b9050600019811461041457818110156104075760405162461bcd60e51b81526004016102cd90610848565b610414848484840361031c565b50505050565b6001600160a01b0383166104405760405162461bcd60e51b81526004016102cd906108c5565b6001600160a01b0382166104665760405162461bcd60e51b81526004016102cd90610915565b6001600160a01b0383166000908152602081905260409020548181101561049f5760405162461bcd60e51b81526004016102cd90610968565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104fd908690610617565b60405180910390a3610414565b60005b8381101561052557818101518382015260200161050d565b50506000910152565b6000610538825190565b80845260208401935061054f81856020860161050a565b601f01601f19169290920192915050565b60208082528101610571818461052e565b9392505050565b60006001600160a01b038216610242565b61059281610578565b811461059d57600080fd5b50565b803561024281610589565b80610592565b8035610242816105ab565b600080604083850312156105d2576105d2600080fd5b60006105de85856105a0565b92505060206105ef858286016105b1565b9150509250929050565b8015155b82525050565b6020810161024282846105f9565b806105fd565b602081016102428284610611565b60008060006060848603121561063d5761063d600080fd5b600061064986866105a0565b935050602061065a868287016105a0565b925050604061066b868287016105b1565b9150509250925092565b60ff81166105fd565b602081016102428284610675565b6000602082840312156106a1576106a1600080fd5b60006106ad84846105a0565b949350505050565b600080604083850312156106cb576106cb600080fd5b60006106d785856105a0565b92505060206105ef858286016105a0565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061071257607f821691505b602082108103610724576107246106e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102425761024261072a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161024281610753565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610791565b60208082528101610242816107a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610791565b60208082528101610242816107f9565b6020808252810161024281601d81527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000602082015260400190565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610791565b6020808252810161024281610883565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610791565b60208082528101610242816108d5565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610791565b602080825281016102428161092556fea26469706673582212205b3bdcab6564155831f52fbab21529be40e02e9eb49a8b7fb8710bcb7b6d337e64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x189 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x110 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x19C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x625 JUMP JUMPDEST PUSH2 0x248 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x67E JUMP JUMPDEST PUSH2 0xDF PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST PUSH2 0xF0 PUSH2 0x140 CALLDATASIZE PUSH1 0x4 PUSH2 0x68C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x28E JUMP JUMPDEST PUSH2 0xDF PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x29D JUMP JUMPDEST PUSH2 0xDF PUSH2 0x184 CALLDATASIZE PUSH1 0x4 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH2 0xF0 PUSH2 0x197 CALLDATASIZE PUSH1 0x4 PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2F1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D7 SWAP1 PUSH2 0x6FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x224 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x224 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x207 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x256 DUP6 DUP3 DUP6 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x261 DUP6 DUP6 DUP6 PUSH2 0x41A JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x27F DUP4 DUP4 PUSH2 0x2F1 JUMP JUMPDEST PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x740 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AB SWAP1 PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AB DUP3 DUP7 PUSH2 0x2F1 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x798 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x261 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x31C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x23C DUP2 DUP6 DUP6 PUSH2 0x41A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x342 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x368 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x3C3 SWAP1 DUP6 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC DUP5 DUP5 PUSH2 0x2F1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x414 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x848 JUMP JUMPDEST PUSH2 0x414 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x31C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x8C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x466 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x915 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x49F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CD SWAP1 PUSH2 0x968 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x4FD SWAP1 DUP7 SWAP1 PUSH2 0x617 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x525 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x50D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x54F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x50A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x571 DUP2 DUP5 PUSH2 0x52E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x242 JUMP JUMPDEST PUSH2 0x592 DUP2 PUSH2 0x578 JUMP JUMPDEST DUP2 EQ PUSH2 0x59D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x242 DUP2 PUSH2 0x589 JUMP JUMPDEST DUP1 PUSH2 0x592 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x242 DUP2 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5D2 JUMPI PUSH2 0x5D2 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5DE DUP6 DUP6 PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5EF DUP6 DUP3 DUP7 ADD PUSH2 0x5B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x5F9 JUMP JUMPDEST DUP1 PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x611 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x63D JUMPI PUSH2 0x63D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x649 DUP7 DUP7 PUSH2 0x5A0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x65A DUP7 DUP3 DUP8 ADD PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x66B DUP7 DUP3 DUP8 ADD PUSH2 0x5B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x5FD JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x242 DUP3 DUP5 PUSH2 0x675 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A1 JUMPI PUSH2 0x6A1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6AD DUP5 DUP5 PUSH2 0x5A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6CB JUMPI PUSH2 0x6CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6D7 DUP6 DUP6 PUSH2 0x5A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5EF DUP6 DUP3 DUP7 ADD PUSH2 0x5A0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x712 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x724 JUMPI PUSH2 0x724 PUSH2 0x6E8 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x242 JUMPI PUSH2 0x242 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x753 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x7F9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH1 0x1D DUP2 MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x883 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x8D5 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x791 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x242 DUP2 PUSH2 0x925 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST EXTCODESIZE 0xDC 0xAB PUSH6 0x64155831F52F 0xBA 0xB2 ISZERO 0x29 0xBE BLOCKHASH 0xE0 0x2E SWAP15 0xB4 SWAP11 DUP12 PUSH32 0xB8710BCB7B6D337E64736F6C6343000819003300000000000000000000000000 ","sourceMap":"1532:11312:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;3104:91::-;3186:2;3104:91;;;;;;:::i;5854:234::-;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:23;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:29;4581:32:23;719:10:29;4597:7:23;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:29;5356:38:23;5372:4;719:10:29;5387:6:23;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:23;;5203:256;-1:-1:-1;;;;5203:256:23:o;5854:234::-;5942:4;719:10:29;5996:64:23;719:10:29;6012:7:23;6049:10;6021:25;719:10:29;6012:7:23;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;719:10:29;6668:4:23;6749:25;719:10:29;6766:7:23;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:23;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:29;3873:28:23;719:10:29;3890:2:23;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:23;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:23;;10550:68;;;;-1:-1:-1;;;10550:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:23;;10628:68;;;;-1:-1:-1;;;10628:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:23;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:23;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:23;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:23;;7544:68;;;;-1:-1:-1;;;7544:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:23;;7622:64;;;;-1:-1:-1;;;7622:64:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:23;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:23;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;287:248:65;369:1;379:113;393:6;390:1;387:13;379:113;;;469:11;;;463:18;450:11;;;443:39;415:2;408:10;379:113;;;-1:-1:-1;;526:1:65;508:16;;501:27;287:248::o;649:377::-;737:3;765:39;798:5;87:12;;7:99;765:39;218:19;;;270:4;261:14;;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;633:2;613:14;-1:-1:-1;;609:28:65;981:39;;;;;;-1:-1:-1;;649:377:65:o;1032:313::-;1183:2;1196:47;;;1168:18;;1260:78;1168:18;1324:6;1260:78;:::i;:::-;1252:86;1032:313;-1:-1:-1;;;1032:313:65:o;1810:96::-;1847:7;-1:-1:-1;;;;;1744:54:65;;1876:24;1678:126;1912:122;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2111:20;;2140:33;2111:20;2140:33;:::i;2268:122::-;2359:5;2341:24;2185:77;2396:139;2467:20;;2496:33;2467:20;2496:33;:::i;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;1532:11312:23;;;2672:79:65;2792:1;2817:53;2862:7;2842:9;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3117:109::-;3091:13;;3084:21;3198;3193:3;3186:34;3117:109;;:::o;3232:210::-;3357:2;3342:18;;3370:65;3346:9;3408:6;3370:65;:::i;3448:118::-;3553:5;3535:24;2185:77;3572:222;3703:2;3688:18;;3716:71;3692:9;3760:6;3716:71;:::i;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;1532:11312:23;;;3948:79:65;4068:1;4093:53;4138:7;4118:9;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4517:112::-;4500:4;4489:16;;4600:22;4425:86;4635:214;4762:2;4747:18;;4775:67;4751:9;4815:6;4775:67;:::i;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;1532:11312:23;;;4969:79:65;5089:1;5114:53;5159:7;5139:9;5114:53;:::i;:::-;5104:63;4855:329;-1:-1:-1;;;;4855:329:65:o;5190:474::-;5258:6;5266;5315:2;5303:9;5294:7;5290:23;5286:32;5283:119;;;5321:79;1532:11312:23;;;5321:79:65;5441:1;5466:53;5511:7;5491:9;5466:53;:::i;:::-;5456:63;;5412:117;5568:2;5594:53;5639:7;5630:6;5619:9;5615:22;5594:53;:::i;5670:180::-;-1:-1:-1;;;5715:1:65;5708:88;5815:4;5812:1;5805:15;5839:4;5836:1;5829:15;5856:320;5937:1;5927:12;;5984:1;5974:12;;;5995:81;;6061:4;6053:6;6049:17;6039:27;;5995:81;6123:2;6115:6;6112:14;6092:18;6089:38;6086:84;;6142:18;;:::i;:::-;5907:269;5856:320;;;:::o;6182:180::-;-1:-1:-1;;;6227:1:65;6220:88;6327:4;6324:1;6317:15;6351:4;6348:1;6341:15;6368:191;6497:9;;;6519:10;;;6516:36;;;6532:18;;:::i;6795:366::-;7022:2;218:19;;6937:3;270:4;261:14;;6705:34;6682:58;;-1:-1:-1;;;6769:2:65;6757:15;;6750:32;6951:74;-1:-1:-1;7034:93:65;-1:-1:-1;7152:2:65;7143:12;;6795:366::o;7167:419::-;7371:2;7384:47;;;7356:18;;7448:131;7356:18;7448:131;:::i;7821:366::-;8048:2;218:19;;7963:3;270:4;261:14;;7732:34;7709:58;;-1:-1:-1;;;7796:2:65;7784:15;;7777:31;7977:74;-1:-1:-1;8060:93:65;7592:223;8193:419;8397:2;8410:47;;;8382:18;;8474:131;8382:18;8474:131;:::i;8845:366::-;9072:2;218:19;;8987:3;270:4;261:14;;8758:34;8735:58;;-1:-1:-1;;;8822:2:65;8810:15;;8803:29;9001:74;-1:-1:-1;9084:93:65;8618:221;9217:419;9421:2;9434:47;;;9406:18;;9498:131;9406:18;9498:131;:::i;10199:419::-;10403:2;10416:47;;;10388:18;;10480:131;10388:18;10054:2;218:19;;9782:31;270:4;261:14;;9759:55;10175:12;;;9827:366;10854;11081:2;218:19;;10996:3;270:4;261:14;;10764:34;10741:58;;-1:-1:-1;;;10828:2:65;10816:15;;10809:32;11010:74;-1:-1:-1;11093:93:65;10624:224;11226:419;11430:2;11443:47;;;11415:18;;11507:131;11415:18;11507:131;:::i;11879:366::-;12106:2;218:19;;12021:3;270:4;261:14;;11791:34;11768:58;;-1:-1:-1;;;11855:2:65;11843:15;;11836:30;12035:74;-1:-1:-1;12118:93:65;11651:222;12251:419;12455:2;12468:47;;;12440:18;;12532:131;12440:18;12532:131;:::i;12907:366::-;13134:2;218:19;;13049:3;270:4;261:14;;12816:34;12793:58;;-1:-1:-1;;;12880:2:65;12868:15;;12861:33;13063:74;-1:-1:-1;13146:93:65;12676:225;13279:419;13483:2;13496:47;;;13468:18;;13560:131;13468:18;13560:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"495600","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"352","decreaseAllowance(address,uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2403","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite"},"internal":{"_afterTokenTransfer(address,address,uint256)":"infinite","_approve(address,address,uint256)":"infinite","_beforeTokenTransfer(address,address,uint256)":"infinite","_burn(address,uint256)":"infinite","_mint(address,uint256)":"infinite","_spendAllowance(address,address,uint256)":"infinite","_transfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5612,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":5618,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":5620,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":5622,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":5624,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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"}],"devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP.","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"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."},"approve(address,uint256)":{"details":"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."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"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."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"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.\"},\"approve(address,uint256)\":{\"details\":\"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.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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"}],"devdoc":{"details":"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"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."},"approve(address,uint256)":{"details":"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."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"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."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"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.\"},\"approve(address,uint256)\":{\"details\":\"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.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}],"devdoc":{"details":"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.","kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"devdoc":{"details":"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.","kind":"dev","methods":{},"title":"SafeERC20","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122028d6a22703b0f9265377d53f543b15945edab5ca17734fe7088db8cbdaa3045664736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 0xD6 LOG2 0x27 SUB 0xB0 0xF9 0x26 MSTORE8 PUSH24 0xD53F543B15945EDAB5CA17734FE7088DB8CBDAA304566473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:6234:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122028d6a22703b0f9265377d53f543b15945edab5ca17734fe7088db8cbdaa3045664736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 0xD6 LOG2 0x27 SUB 0xB0 0xF9 0x26 MSTORE8 PUSH24 0xD53F543B15945EDAB5CA17734FE7088DB8CBDAA304566473 PUSH16 0x6C634300081900330000000000000000 ","sourceMap":"701:6234:27:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_callOptionalReturn(contract IERC20,bytes memory)":"infinite","_callOptionalReturnBool(contract IERC20,bytes memory)":"infinite","forceApprove(contract IERC20,address,uint256)":"infinite","safeApprove(contract IERC20,address,uint256)":"infinite","safeDecreaseAllowance(contract IERC20,address,uint256)":"infinite","safeIncreaseAllowance(contract IERC20,address,uint256)":"infinite","safePermit(contract IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32)":"infinite","safeTransfer(contract IERC20,address,uint256)":"infinite","safeTransferFrom(contract IERC20,address,address,uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122034a22e9598db629b061660c9803cc109d0ecfd91a71f27a67e49b9afbdb6d48f64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLVALUE LOG2 0x2E SWAP6 SWAP9 0xDB PUSH3 0x9B0616 PUSH1 0xC9 DUP1 EXTCODECOPY 0xC1 MULMOD 0xD0 0xEC REVERT SWAP2 0xA7 0x1F 0x27 0xA6 PUSH31 0x49B9AFBDB6D48F64736F6C6343000819003300000000000000000000000000 ","sourceMap":"194:9169:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9169:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122034a22e9598db629b061660c9803cc109d0ecfd91a71f27a67e49b9afbdb6d48f64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLVALUE LOG2 0x2E SWAP6 SWAP9 0xDB PUSH3 0x9B0616 PUSH1 0xC9 DUP1 EXTCODECOPY 0xC1 MULMOD 0xD0 0xEC REVERT SWAP2 0xA7 0x1F 0x27 0xA6 PUSH31 0x49B9AFBDB6D48F64736F6C6343000819003300000000000000000000000000 ","sourceMap":"194:9169:28:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_revert(bytes memory,string memory)":"infinite","functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite","verifyCallResultFromTarget(address,bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"devdoc":{"details":"String operations.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202911047389941f6e5cee34064a4a360145a431742dac060fb93746d4abea9a6964736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 GT DIV PUSH20 0x89941F6E5CEE34064A4A360145A431742DAC060F 0xB9 CALLDATACOPY CHAINID 0xD4 0xAB 0xEA SWAP11 PUSH10 0x64736F6C634300081900 CALLER ","sourceMap":"220:2559:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:30;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202911047389941f6e5cee34064a4a360145a431742dac060fb93746d4abea9a6964736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 GT DIV PUSH20 0x89941F6E5CEE34064A4A360145A431742DAC060F 0xB9 CALLDATACOPY CHAINID 0xD4 0xAB 0xEA SWAP11 PUSH10 0x64736F6C634300081900 CALLER ","sourceMap":"220:2559:30:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"equal(string memory,string memory)":"infinite","toHexString(address)":"infinite","toHexString(uint256)":"infinite","toHexString(uint256,uint256)":"infinite","toString(int256)":"infinite","toString(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.","kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"devdoc":{"details":"Standard math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6cb2feca51af197ae3079b05ed4c321c4e93c74e91262f149d794f4e1da8eb64736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH13 0xB2FECA51AF197AE3079B05ED4C ORIGIN SHR 0x4E SWAP4 0xC7 0x4E SWAP2 0x26 0x2F EQ SWAP14 PUSH26 0x4F4E1DA8EB64736F6C6343000819003300000000000000000000 ","sourceMap":"202:12582:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:33;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e6cb2feca51af197ae3079b05ed4c321c4e93c74e91262f149d794f4e1da8eb64736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E PUSH13 0xB2FECA51AF197AE3079B05ED4C ORIGIN SHR 0x4E SWAP4 0xC7 0x4E SWAP2 0x26 0x2F EQ SWAP14 PUSH26 0x4F4E1DA8EB64736F6C6343000819003300000000000000000000 ","sourceMap":"202:12582:33:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"average(uint256,uint256)":"infinite","ceilDiv(uint256,uint256)":"infinite","log10(uint256)":"infinite","log10(uint256,enum Math.Rounding)":"infinite","log2(uint256)":"infinite","log2(uint256,enum Math.Rounding)":"infinite","log256(uint256)":"infinite","log256(uint256,enum Math.Rounding)":"infinite","max(uint256,uint256)":"infinite","min(uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256,enum Math.Rounding)":"infinite","sqrt(uint256)":"infinite","sqrt(uint256,enum Math.Rounding)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"devdoc":{"details":"Standard signed math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9c1e44597eab0c9f540ab62c8b8557ab42d7d967186d31a9f2049a56844b79964736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xC1 0xE4 GASLIMIT SWAP8 0xEA 0xB0 0xC9 CREATE2 BLOCKHASH 0xAB PUSH3 0xC8B855 PUSH27 0xB42D7D967186D31A9F2049A56844B79964736F6C63430008190033 ","sourceMap":"215:1047:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:34;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9c1e44597eab0c9f540ab62c8b8557ab42d7d967186d31a9f2049a56844b79964736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xC1 0xE4 GASLIMIT SWAP8 0xEA 0xB0 0xC9 CREATE2 BLOCKHASH 0xAB PUSH3 0xC8B855 PUSH27 0xB42D7D967186D31A9F2049A56844B79964736F6C63430008190033 ","sourceMap":"215:1047:34:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"abs(int256)":"infinite","average(int256,int256)":"infinite","max(int256,int256)":"infinite","min(int256,int256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol":{"AccessControlManager":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"functionSig","type":"string"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"functionSig","type":"string"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToPermit","type":"address"}],"name":"giveCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"hasPermission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"isAllowedToCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToRevoke","type":"address"}],"name":"revokeCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","details":"This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.","events":{"PermissionGranted(address,address,string)":{"details":"If contract address is 0x000..0 this means that the account is a default admin of this function and can call any contract function with this signature"},"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"giveCallPermission(address,string,address)":{"custom:event":"Emits a {RoleGranted} and {PermissionGranted} events.","details":"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLEif contractAddress is zero address, the account can access the specified function      on **any** contract managed by this ACL","params":{"accountToPermit":"account that will be given access to the contract function","contractAddress":"address of contract for which call permissions will be granted","functionSig":"signature e.g. \"functionName(uint256,bool)\""}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasPermission(address,address,string)":{"details":"This function is used as a view function to check permissions rather than contract hook for access restriction check.","params":{"account":"for which call permissions will be checked against","contractAddress":"address of the restricted contract","functionSig":"signature of the restricted function e.g. \"functionName(uint256,bool)\""},"returns":{"_0":"false if the user account cannot call the particular contract function"}},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"isAllowedToCall(address,string)":{"details":"Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender","params":{"account":"for which call permissions will be checked","functionSig":"restricted function signature e.g. \"functionName(uint256,bool)\""},"returns":{"_0":"false if the user account cannot call the particular contract function"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeCallPermission(address,string,address)":{"custom:event":"Emits {RoleRevoked} and {PermissionRevoked} events.","details":"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE \t\tMay emit a {RoleRevoked} event.","params":{"contractAddress":"address of contract for which call permissions will be revoked","functionSig":"signature e.g. \"functionName(uint256,bool)\""}},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"title":"AccessControlManager","version":1},"evm":{"bytecode":{"functionDebugData":{"@_8323":{"entryPoint":null,"id":8323,"parameterSlots":0,"returnSlots":0},"@_grantRole_5270":{"entryPoint":41,"id":5270,"parameterSlots":2,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_setupRole_5210":{"entryPoint":29,"id":5210,"parameterSlots":2,"returnSlots":0},"@hasRole_5066":{"entryPoint":null,"id":5066,"parameterSlots":2,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506019600033601d565b60c5565b602582826029565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166025576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905560813390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610cae806100d46000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063545f7a3211610071578063545f7a3214610142578063584f6b601461015557806382bfd0f01461016857806391d148541461017b578063a217fddf1461018e578063d547741f1461019657600080fd5b806301ffc9a7146100ae57806318c5e8ab146100d7578063248a9ca3146100ea5780632f2ff15d1461011a57806336568abe1461012f575b600080fd5b6100c16100bc366004610741565b6101a9565b6040516100ce9190610774565b60405180910390f35b6100c16100e53660046107f9565b6101e0565b61010d6100f8366004610866565b60009081526020819052604090206001015490565b6040516100ce919061088d565b61012d61012836600461089b565b61026c565b005b61012d61013d36600461089b565b610296565b61012d6101503660046108d8565b6102d5565b61012d6101633660046108d8565b610352565b6100c1610176366004610948565b6103c0565b6100c161018936600461089b565b610404565b61010d600081565b61012d6101a436600461089b565b61042d565b60006001600160e01b03198216637965db0b60e01b14806101da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000803384846040516020016101f8939291906109fd565b60405160208183030381529060405280519060200120905061021a8186610404565b15610229576001915050610265565b6000848460405160200161023f939291906109fd565b6040516020818303038152906040528051906020012090506102618186610404565b9150505b9392505050565b60008281526020819052604090206001015461028781610452565b610291838361045f565b505050565b6001600160a01b03811633146102c75760405162461bcd60e51b81526004016102be90610a23565b60405180910390fd5b6102d182826104e3565b5050565b60008484846040516020016102ec939291906109fd565b60405160208183030381529060405280519060200120905061030e818361042d565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516103439493929190610aa8565b60405180910390a15050505050565b6000848484604051602001610369939291906109fd565b60405160208183030381529060405280519060200120905061038b818361026c565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516103439493929190610aa8565b6000808484846040516020016103d8939291906109fd565b6040516020818303038152906040528051906020012090506103fa8187610404565b9695505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526020819052604090206001015461044881610452565b61029183836104e3565b61045c8133610548565b50565b6104698282610404565b6102d1576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561049f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6104ed8282610404565b156102d1576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6105528282610404565b6102d15761055f816105a1565b61056a8360206105b3565b60405160200161057b929190610b1c565b60408051601f198184030181529082905262461bcd60e51b82526102be91600401610ba2565b60606101da6001600160a01b03831660145b606060006105c2836002610bc9565b6105cd906002610be8565b67ffffffffffffffff8111156105e5576105e5610bfb565b6040519080825280601f01601f19166020018201604052801561060f576020820181803683370190505b509050600360fc1b8160008151811061062a5761062a610c11565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061065957610659610c11565b60200101906001600160f81b031916908160001a905350600061067d846002610bc9565b610688906001610be8565b90505b6001811115610700576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106bc576106bc610c11565b1a60f81b8282815181106106d2576106d2610c11565b60200101906001600160f81b031916908160001a90535060049490941c936106f981610c27565b905061068b565b5083156102655760405162461bcd60e51b81526004016102be90610c3e565b6001600160e01b031981165b811461045c57600080fd5b80356101da8161071f565b60006020828403121561075657610756600080fd5b60006107628484610736565b949350505050565b8015155b82525050565b602081016101da828461076a565b60006001600160a01b0382166101da565b61072b81610782565b80356101da81610793565b60008083601f8401126107bc576107bc600080fd5b50813567ffffffffffffffff8111156107d7576107d7600080fd5b6020830191508360018202830111156107f2576107f2600080fd5b9250929050565b60008060006040848603121561081157610811600080fd5b600061081d868661079c565b935050602084013567ffffffffffffffff81111561083d5761083d600080fd5b610849868287016107a7565b92509250509250925092565b8061072b565b80356101da81610855565b60006020828403121561087b5761087b600080fd5b6000610762848461085b565b8061076e565b602081016101da8284610887565b600080604083850312156108b1576108b1600080fd5b60006108bd858561085b565b92505060206108ce8582860161079c565b9150509250929050565b600080600080606085870312156108f1576108f1600080fd5b60006108fd878761079c565b945050602085013567ffffffffffffffff81111561091d5761091d600080fd5b610929878288016107a7565b9350935050604061093c8782880161079c565b91505092959194509250565b6000806000806060858703121561096157610961600080fd5b600061096d878761079c565b945050602061097e8782880161079c565b935050604085013567ffffffffffffffff81111561099e5761099e600080fd5b6109aa878288016107a7565b95989497509550505050565b60006101da8260601b90565b60006101da826109b6565b61076e6109d982610782565b6109c2565b82818337506000910152565b60006109f78385846109de565b50500190565b6000610a0982866109cd565b601482019150610a1a8284866109ea565b95945050505050565b602080825281016101da81602f81527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560208201526e103937b632b9903337b91039b2b63360891b604082015260600190565b61076e81610782565b8183526000602084019350610a958385846109de565b601f19601f8401165b9093019392505050565b60608101610ab68287610a76565b610ac36020830186610a76565b81810360408301526103fa818486610a7f565b60005b83811015610af1578181015183820152602001610ad9565b50506000910152565b6000610b04825190565b610b12818560208601610ad6565b9290920192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526017016000610b4e8285610afa565b7001034b99036b4b9b9b4b733903937b6329607d1b815260110191506107628284610afa565b6000610b7e825190565b808452602084019350610b95818560208601610ad6565b601f19601f820116610a9e565b602080825281016102658184610b74565b634e487b7160e01b600052601160045260246000fd5b818102808215838204851417610be157610be1610bb3565b5092915050565b808201808211156101da576101da610bb3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c3657610c36610bb3565b506000190190565b60208082528181019081527f537472696e67733a20686578206c656e67746820696e73756666696369656e746040830152606082016101da56fea2646970667358221220ffa4ba0d362018555b8102c41db8f20059a5a67e7aa746efde005f86e05bdb6b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x19 PUSH1 0x0 CALLER PUSH1 0x1D JUMP JUMPDEST PUSH1 0xC5 JUMP JUMPDEST PUSH1 0x25 DUP3 DUP3 PUSH1 0x29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x25 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x81 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0xCAE DUP1 PUSH2 0xD4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x12F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x774 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC1 PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F9 JUMP JUMPDEST PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x10D PUSH2 0xF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x866 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x12D PUSH2 0x128 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12D PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D8 JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x163 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D8 JUMP JUMPDEST PUSH2 0x352 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x176 CALLDATASIZE PUSH1 0x4 PUSH2 0x948 JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x189 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x404 JUMP JUMPDEST PUSH2 0x10D PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1DA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x21A DUP2 DUP7 PUSH2 0x404 JUMP JUMPDEST ISZERO PUSH2 0x229 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x265 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x23F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x261 DUP2 DUP7 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x287 DUP2 PUSH2 0x452 JUMP JUMPDEST PUSH2 0x291 DUP4 DUP4 PUSH2 0x45F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x2C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BE SWAP1 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D1 DUP3 DUP3 PUSH2 0x4E3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2EC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x30E DUP2 DUP4 PUSH2 0x42D JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x343 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x369 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x38B DUP2 DUP4 PUSH2 0x26C JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x343 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x3FA DUP2 DUP8 PUSH2 0x404 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x448 DUP2 PUSH2 0x452 JUMP JUMPDEST PUSH2 0x291 DUP4 DUP4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x45C DUP2 CALLER PUSH2 0x548 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x469 DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x49F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x4ED DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x552 DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x2D1 JUMPI PUSH2 0x55F DUP2 PUSH2 0x5A1 JUMP JUMPDEST PUSH2 0x56A DUP4 PUSH1 0x20 PUSH2 0x5B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x57B SWAP3 SWAP2 SWAP1 PUSH2 0xB1C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x2BE SWAP2 PUSH1 0x4 ADD PUSH2 0xBA2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x5C2 DUP4 PUSH1 0x2 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x5CD SWAP1 PUSH1 0x2 PUSH2 0xBE8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E5 JUMPI PUSH2 0x5E5 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x60F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x62A JUMPI PUSH2 0x62A PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x659 JUMPI PUSH2 0x659 PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x67D DUP5 PUSH1 0x2 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x688 SWAP1 PUSH1 0x1 PUSH2 0xBE8 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x700 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x6BC JUMPI PUSH2 0x6BC PUSH2 0xC11 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH2 0x6D2 PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x6F9 DUP2 PUSH2 0xC27 JUMP JUMPDEST SWAP1 POP PUSH2 0x68B JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BE SWAP1 PUSH2 0xC3E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x71F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x756 JUMPI PUSH2 0x756 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x762 DUP5 DUP5 PUSH2 0x736 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1DA DUP3 DUP5 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1DA JUMP JUMPDEST PUSH2 0x72B DUP2 PUSH2 0x782 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x7BC JUMPI PUSH2 0x7BC PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7D7 JUMPI PUSH2 0x7D7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F2 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x811 JUMPI PUSH2 0x811 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x81D DUP7 DUP7 PUSH2 0x79C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x83D JUMPI PUSH2 0x83D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x849 DUP7 DUP3 DUP8 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x72B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x87B JUMPI PUSH2 0x87B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x762 DUP5 DUP5 PUSH2 0x85B JUMP JUMPDEST DUP1 PUSH2 0x76E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1DA DUP3 DUP5 PUSH2 0x887 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI PUSH2 0x8B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8BD DUP6 DUP6 PUSH2 0x85B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8CE DUP6 DUP3 DUP7 ADD PUSH2 0x79C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x8F1 JUMPI PUSH2 0x8F1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8FD DUP8 DUP8 PUSH2 0x79C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x91D JUMPI PUSH2 0x91D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x929 DUP8 DUP3 DUP9 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x93C DUP8 DUP3 DUP9 ADD PUSH2 0x79C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x961 JUMPI PUSH2 0x961 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x96D DUP8 DUP8 PUSH2 0x79C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x97E DUP8 DUP3 DUP9 ADD PUSH2 0x79C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x99E JUMPI PUSH2 0x99E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9AA DUP8 DUP3 DUP9 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA DUP3 PUSH2 0x9B6 JUMP JUMPDEST PUSH2 0x76E PUSH2 0x9D9 DUP3 PUSH2 0x782 JUMP JUMPDEST PUSH2 0x9C2 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F7 DUP4 DUP6 DUP5 PUSH2 0x9DE JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA09 DUP3 DUP7 PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0xA1A DUP3 DUP5 DUP7 PUSH2 0x9EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1DA DUP2 PUSH1 0x2F DUP2 MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH2 0x76E DUP2 PUSH2 0x782 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xA95 DUP4 DUP6 DUP5 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xAB6 DUP3 DUP8 PUSH2 0xA76 JUMP JUMPDEST PUSH2 0xAC3 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xA76 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3FA DUP2 DUP5 DUP7 PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAF1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAD9 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB04 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB12 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD6 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD PUSH1 0x0 PUSH2 0xB4E DUP3 DUP6 PUSH2 0xAFA JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL DUP2 MSTORE PUSH1 0x11 ADD SWAP2 POP PUSH2 0x762 DUP3 DUP5 PUSH2 0xAFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB7E DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xB95 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD6 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x265 DUP2 DUP5 PUSH2 0xB74 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBE1 JUMPI PUSH2 0xBE1 PUSH2 0xBB3 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1DA JUMPI PUSH2 0x1DA PUSH2 0xBB3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC36 JUMPI PUSH2 0xC36 PUSH2 0xBB3 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x1DA JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT LOG4 0xBA 0xD CALLDATASIZE KECCAK256 XOR SSTORE JUMPDEST DUP2 MUL 0xC4 SAR 0xB8 CALLCODE STOP MSIZE 0xA5 0xA6 PUSH31 0x7AA746EFDE005F86E05BDB6B64736F6C634300081900330000000000000000 ","sourceMap":"2815:4310:35:-:0;;;3437:193;;;;;;;;;-1:-1:-1;3581:42:35;2198:4:19;3612:10:35;3581;:42::i;:::-;2815:4310;;6937:110:19;7015:25;7026:4;7032:7;7015:10;:25::i;:::-;6937:110;;:::o;7587:233::-;3107:4;3130:12;;;;;;;;;;;-1:-1:-1;;;;;3130:29:19;;;;;;;;;;;;7665:149;;7708:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7708:29:19;;;;;;;;;:36;;-1:-1:-1;;7708:36:19;7740:4;7708:36;;;7790:12;719:10:29;;640:96;7790:12:19;-1:-1:-1;;;;;7763:40:19;7781:7;-1:-1:-1;;;;;7763:40:19;7775:4;7763:40;;;;;;;;;;7587:233;;:::o;2815:4310:35:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_5014":{"entryPoint":null,"id":5014,"parameterSlots":0,"returnSlots":0},"@_checkRole_5079":{"entryPoint":1106,"id":5079,"parameterSlots":1,"returnSlots":0},"@_checkRole_5118":{"entryPoint":1352,"id":5118,"parameterSlots":2,"returnSlots":0},"@_grantRole_5270":{"entryPoint":1119,"id":5270,"parameterSlots":2,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_revokeRole_5301":{"entryPoint":1251,"id":5301,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_5133":{"entryPoint":null,"id":5133,"parameterSlots":1,"returnSlots":1},"@giveCallPermission_8355":{"entryPoint":850,"id":8355,"parameterSlots":4,"returnSlots":0},"@grantRole_5153":{"entryPoint":620,"id":5153,"parameterSlots":2,"returnSlots":0},"@hasPermission_8464":{"entryPoint":960,"id":8464,"parameterSlots":4,"returnSlots":1},"@hasRole_5066":{"entryPoint":1028,"id":5066,"parameterSlots":2,"returnSlots":1},"@isAllowedToCall_8436":{"entryPoint":480,"id":8436,"parameterSlots":3,"returnSlots":1},"@renounceRole_5196":{"entryPoint":662,"id":5196,"parameterSlots":2,"returnSlots":0},"@revokeCallPermission_8387":{"entryPoint":725,"id":8387,"parameterSlots":4,"returnSlots":0},"@revokeRole_5173":{"entryPoint":1069,"id":5173,"parameterSlots":2,"returnSlots":0},"@supportsInterface_5047":{"entryPoint":425,"id":5047,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7302":{"entryPoint":null,"id":7302,"parameterSlots":1,"returnSlots":1},"@toHexString_7233":{"entryPoint":1459,"id":7233,"parameterSlots":2,"returnSlots":1},"@toHexString_7253":{"entryPoint":1441,"id":7253,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1948,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":2139,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":1846,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":1959,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr":{"entryPoint":2376,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_string_calldata_ptr":{"entryPoint":2041,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_string_calldata_ptrt_address":{"entryPoint":2264,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32":{"entryPoint":2150,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":2203,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":1857,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2678,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":2509,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1898,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":2183,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2687,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2538,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2932,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2557,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2844,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2728,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":2189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2978,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3134,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2595,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3048,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3017,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1922,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":2526,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":2774,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":3111,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":2498,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":2486,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2995,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3089,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3067,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1939,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":2133,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":1823,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:16760:65","nodeType":"YulBlock","src":"0:16760:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"378:105:65","nodeType":"YulBlock","src":"378:105:65","statements":[{"nativeSrc":"388:89:65","nodeType":"YulAssignment","src":"388:89:65","value":{"arguments":[{"name":"value","nativeSrc":"403:5:65","nodeType":"YulIdentifier","src":"403:5:65"},{"kind":"number","nativeSrc":"410:66:65","nodeType":"YulLiteral","src":"410:66:65","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:65","nodeType":"YulIdentifier","src":"399:3:65"},"nativeSrc":"399:78:65","nodeType":"YulFunctionCall","src":"399:78:65"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:65","nodeType":"YulIdentifier","src":"388:7:65"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:65","nodeType":"YulTypedName","src":"360:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:65","nodeType":"YulTypedName","src":"370:7:65","type":""}],"src":"334:149:65"},{"body":{"nativeSrc":"531:78:65","nodeType":"YulBlock","src":"531:78:65","statements":[{"body":{"nativeSrc":"587:16:65","nodeType":"YulBlock","src":"587:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:65","nodeType":"YulLiteral","src":"596:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:65","nodeType":"YulLiteral","src":"599:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:65","nodeType":"YulIdentifier","src":"589:6:65"},"nativeSrc":"589:12:65","nodeType":"YulFunctionCall","src":"589:12:65"},"nativeSrc":"589:12:65","nodeType":"YulExpressionStatement","src":"589:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:65","nodeType":"YulIdentifier","src":"554:5:65"},{"arguments":[{"name":"value","nativeSrc":"578:5:65","nodeType":"YulIdentifier","src":"578:5:65"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:65","nodeType":"YulIdentifier","src":"561:16:65"},"nativeSrc":"561:23:65","nodeType":"YulFunctionCall","src":"561:23:65"}],"functionName":{"name":"eq","nativeSrc":"551:2:65","nodeType":"YulIdentifier","src":"551:2:65"},"nativeSrc":"551:34:65","nodeType":"YulFunctionCall","src":"551:34:65"}],"functionName":{"name":"iszero","nativeSrc":"544:6:65","nodeType":"YulIdentifier","src":"544:6:65"},"nativeSrc":"544:42:65","nodeType":"YulFunctionCall","src":"544:42:65"},"nativeSrc":"541:62:65","nodeType":"YulIf","src":"541:62:65"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:65","nodeType":"YulTypedName","src":"524:5:65","type":""}],"src":"489:120:65"},{"body":{"nativeSrc":"666:86:65","nodeType":"YulBlock","src":"666:86:65","statements":[{"nativeSrc":"676:29:65","nodeType":"YulAssignment","src":"676:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:65","nodeType":"YulIdentifier","src":"698:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:65","nodeType":"YulIdentifier","src":"685:12:65"},"nativeSrc":"685:20:65","nodeType":"YulFunctionCall","src":"685:20:65"},"variableNames":[{"name":"value","nativeSrc":"676:5:65","nodeType":"YulIdentifier","src":"676:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:65","nodeType":"YulIdentifier","src":"740:5:65"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:65","nodeType":"YulIdentifier","src":"714:25:65"},"nativeSrc":"714:32:65","nodeType":"YulFunctionCall","src":"714:32:65"},"nativeSrc":"714:32:65","nodeType":"YulExpressionStatement","src":"714:32:65"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:65","nodeType":"YulTypedName","src":"644:6:65","type":""},{"name":"end","nativeSrc":"652:3:65","nodeType":"YulTypedName","src":"652:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:65","nodeType":"YulTypedName","src":"660:5:65","type":""}],"src":"615:137:65"},{"body":{"nativeSrc":"823:262:65","nodeType":"YulBlock","src":"823:262:65","statements":[{"body":{"nativeSrc":"869:83:65","nodeType":"YulBlock","src":"869:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:65","nodeType":"YulIdentifier","src":"871:77:65"},"nativeSrc":"871:79:65","nodeType":"YulFunctionCall","src":"871:79:65"},"nativeSrc":"871:79:65","nodeType":"YulExpressionStatement","src":"871:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:65","nodeType":"YulIdentifier","src":"844:7:65"},{"name":"headStart","nativeSrc":"853:9:65","nodeType":"YulIdentifier","src":"853:9:65"}],"functionName":{"name":"sub","nativeSrc":"840:3:65","nodeType":"YulIdentifier","src":"840:3:65"},"nativeSrc":"840:23:65","nodeType":"YulFunctionCall","src":"840:23:65"},{"kind":"number","nativeSrc":"865:2:65","nodeType":"YulLiteral","src":"865:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:65","nodeType":"YulIdentifier","src":"836:3:65"},"nativeSrc":"836:32:65","nodeType":"YulFunctionCall","src":"836:32:65"},"nativeSrc":"833:119:65","nodeType":"YulIf","src":"833:119:65"},{"nativeSrc":"962:116:65","nodeType":"YulBlock","src":"962:116:65","statements":[{"nativeSrc":"977:15:65","nodeType":"YulVariableDeclaration","src":"977:15:65","value":{"kind":"number","nativeSrc":"991:1:65","nodeType":"YulLiteral","src":"991:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:65","nodeType":"YulTypedName","src":"981:6:65","type":""}]},{"nativeSrc":"1006:62:65","nodeType":"YulAssignment","src":"1006:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:65","nodeType":"YulIdentifier","src":"1040:9:65"},{"name":"offset","nativeSrc":"1051:6:65","nodeType":"YulIdentifier","src":"1051:6:65"}],"functionName":{"name":"add","nativeSrc":"1036:3:65","nodeType":"YulIdentifier","src":"1036:3:65"},"nativeSrc":"1036:22:65","nodeType":"YulFunctionCall","src":"1036:22:65"},{"name":"dataEnd","nativeSrc":"1060:7:65","nodeType":"YulIdentifier","src":"1060:7:65"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:65","nodeType":"YulIdentifier","src":"1016:19:65"},"nativeSrc":"1016:52:65","nodeType":"YulFunctionCall","src":"1016:52:65"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:65","nodeType":"YulIdentifier","src":"1006:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:65","nodeType":"YulTypedName","src":"793:9:65","type":""},{"name":"dataEnd","nativeSrc":"804:7:65","nodeType":"YulTypedName","src":"804:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:65","nodeType":"YulTypedName","src":"816:6:65","type":""}],"src":"758:327:65"},{"body":{"nativeSrc":"1133:48:65","nodeType":"YulBlock","src":"1133:48:65","statements":[{"nativeSrc":"1143:32:65","nodeType":"YulAssignment","src":"1143:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:65","nodeType":"YulIdentifier","src":"1168:5:65"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:65","nodeType":"YulIdentifier","src":"1161:6:65"},"nativeSrc":"1161:13:65","nodeType":"YulFunctionCall","src":"1161:13:65"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:65","nodeType":"YulIdentifier","src":"1154:6:65"},"nativeSrc":"1154:21:65","nodeType":"YulFunctionCall","src":"1154:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:65","nodeType":"YulIdentifier","src":"1143:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:65","nodeType":"YulTypedName","src":"1115:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:65","nodeType":"YulTypedName","src":"1125:7:65","type":""}],"src":"1091:90:65"},{"body":{"nativeSrc":"1246:50:65","nodeType":"YulBlock","src":"1246:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:65","nodeType":"YulIdentifier","src":"1263:3:65"},{"arguments":[{"name":"value","nativeSrc":"1283:5:65","nodeType":"YulIdentifier","src":"1283:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:65","nodeType":"YulIdentifier","src":"1268:14:65"},"nativeSrc":"1268:21:65","nodeType":"YulFunctionCall","src":"1268:21:65"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:65","nodeType":"YulIdentifier","src":"1256:6:65"},"nativeSrc":"1256:34:65","nodeType":"YulFunctionCall","src":"1256:34:65"},"nativeSrc":"1256:34:65","nodeType":"YulExpressionStatement","src":"1256:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:65","nodeType":"YulTypedName","src":"1234:5:65","type":""},{"name":"pos","nativeSrc":"1241:3:65","nodeType":"YulTypedName","src":"1241:3:65","type":""}],"src":"1187:109:65"},{"body":{"nativeSrc":"1394:118:65","nodeType":"YulBlock","src":"1394:118:65","statements":[{"nativeSrc":"1404:26:65","nodeType":"YulAssignment","src":"1404:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:65","nodeType":"YulIdentifier","src":"1416:9:65"},{"kind":"number","nativeSrc":"1427:2:65","nodeType":"YulLiteral","src":"1427:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:65","nodeType":"YulIdentifier","src":"1412:3:65"},"nativeSrc":"1412:18:65","nodeType":"YulFunctionCall","src":"1412:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:65","nodeType":"YulIdentifier","src":"1404:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:65","nodeType":"YulIdentifier","src":"1478:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:65","nodeType":"YulIdentifier","src":"1491:9:65"},{"kind":"number","nativeSrc":"1502:1:65","nodeType":"YulLiteral","src":"1502:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:65","nodeType":"YulIdentifier","src":"1487:3:65"},"nativeSrc":"1487:17:65","nodeType":"YulFunctionCall","src":"1487:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:65","nodeType":"YulIdentifier","src":"1440:37:65"},"nativeSrc":"1440:65:65","nodeType":"YulFunctionCall","src":"1440:65:65"},"nativeSrc":"1440:65:65","nodeType":"YulExpressionStatement","src":"1440:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:65","nodeType":"YulTypedName","src":"1366:9:65","type":""},{"name":"value0","nativeSrc":"1378:6:65","nodeType":"YulTypedName","src":"1378:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:65","nodeType":"YulTypedName","src":"1389:4:65","type":""}],"src":"1302:210:65"},{"body":{"nativeSrc":"1563:81:65","nodeType":"YulBlock","src":"1563:81:65","statements":[{"nativeSrc":"1573:65:65","nodeType":"YulAssignment","src":"1573:65:65","value":{"arguments":[{"name":"value","nativeSrc":"1588:5:65","nodeType":"YulIdentifier","src":"1588:5:65"},{"kind":"number","nativeSrc":"1595:42:65","nodeType":"YulLiteral","src":"1595:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1584:3:65","nodeType":"YulIdentifier","src":"1584:3:65"},"nativeSrc":"1584:54:65","nodeType":"YulFunctionCall","src":"1584:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:65","nodeType":"YulIdentifier","src":"1573:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1518:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:65","nodeType":"YulTypedName","src":"1545:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:65","nodeType":"YulTypedName","src":"1555:7:65","type":""}],"src":"1518:126:65"},{"body":{"nativeSrc":"1695:51:65","nodeType":"YulBlock","src":"1695:51:65","statements":[{"nativeSrc":"1705:35:65","nodeType":"YulAssignment","src":"1705:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1734:5:65","nodeType":"YulIdentifier","src":"1734:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1716:17:65","nodeType":"YulIdentifier","src":"1716:17:65"},"nativeSrc":"1716:24:65","nodeType":"YulFunctionCall","src":"1716:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1705:7:65","nodeType":"YulIdentifier","src":"1705:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1650:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1677:5:65","nodeType":"YulTypedName","src":"1677:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1687:7:65","nodeType":"YulTypedName","src":"1687:7:65","type":""}],"src":"1650:96:65"},{"body":{"nativeSrc":"1795:79:65","nodeType":"YulBlock","src":"1795:79:65","statements":[{"body":{"nativeSrc":"1852:16:65","nodeType":"YulBlock","src":"1852:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1861:1:65","nodeType":"YulLiteral","src":"1861:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1864:1:65","nodeType":"YulLiteral","src":"1864:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1854:6:65","nodeType":"YulIdentifier","src":"1854:6:65"},"nativeSrc":"1854:12:65","nodeType":"YulFunctionCall","src":"1854:12:65"},"nativeSrc":"1854:12:65","nodeType":"YulExpressionStatement","src":"1854:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1818:5:65","nodeType":"YulIdentifier","src":"1818:5:65"},{"arguments":[{"name":"value","nativeSrc":"1843:5:65","nodeType":"YulIdentifier","src":"1843:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1825:17:65","nodeType":"YulIdentifier","src":"1825:17:65"},"nativeSrc":"1825:24:65","nodeType":"YulFunctionCall","src":"1825:24:65"}],"functionName":{"name":"eq","nativeSrc":"1815:2:65","nodeType":"YulIdentifier","src":"1815:2:65"},"nativeSrc":"1815:35:65","nodeType":"YulFunctionCall","src":"1815:35:65"}],"functionName":{"name":"iszero","nativeSrc":"1808:6:65","nodeType":"YulIdentifier","src":"1808:6:65"},"nativeSrc":"1808:43:65","nodeType":"YulFunctionCall","src":"1808:43:65"},"nativeSrc":"1805:63:65","nodeType":"YulIf","src":"1805:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"1752:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1788:5:65","nodeType":"YulTypedName","src":"1788:5:65","type":""}],"src":"1752:122:65"},{"body":{"nativeSrc":"1932:87:65","nodeType":"YulBlock","src":"1932:87:65","statements":[{"nativeSrc":"1942:29:65","nodeType":"YulAssignment","src":"1942:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1964:6:65","nodeType":"YulIdentifier","src":"1964:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1951:12:65","nodeType":"YulIdentifier","src":"1951:12:65"},"nativeSrc":"1951:20:65","nodeType":"YulFunctionCall","src":"1951:20:65"},"variableNames":[{"name":"value","nativeSrc":"1942:5:65","nodeType":"YulIdentifier","src":"1942:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2007:5:65","nodeType":"YulIdentifier","src":"2007:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1980:26:65","nodeType":"YulIdentifier","src":"1980:26:65"},"nativeSrc":"1980:33:65","nodeType":"YulFunctionCall","src":"1980:33:65"},"nativeSrc":"1980:33:65","nodeType":"YulExpressionStatement","src":"1980:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"1880:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1910:6:65","nodeType":"YulTypedName","src":"1910:6:65","type":""},{"name":"end","nativeSrc":"1918:3:65","nodeType":"YulTypedName","src":"1918:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1926:5:65","nodeType":"YulTypedName","src":"1926:5:65","type":""}],"src":"1880:139:65"},{"body":{"nativeSrc":"2114:28:65","nodeType":"YulBlock","src":"2114:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2131:1:65","nodeType":"YulLiteral","src":"2131:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2134:1:65","nodeType":"YulLiteral","src":"2134:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2124:6:65","nodeType":"YulIdentifier","src":"2124:6:65"},"nativeSrc":"2124:12:65","nodeType":"YulFunctionCall","src":"2124:12:65"},"nativeSrc":"2124:12:65","nodeType":"YulExpressionStatement","src":"2124:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:117:65","nodeType":"YulFunctionDefinition","src":"2025:117:65"},{"body":{"nativeSrc":"2237:28:65","nodeType":"YulBlock","src":"2237:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2254:1:65","nodeType":"YulLiteral","src":"2254:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2257:1:65","nodeType":"YulLiteral","src":"2257:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2247:6:65","nodeType":"YulIdentifier","src":"2247:6:65"},"nativeSrc":"2247:12:65","nodeType":"YulFunctionCall","src":"2247:12:65"},"nativeSrc":"2247:12:65","nodeType":"YulExpressionStatement","src":"2247:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2148:117:65","nodeType":"YulFunctionDefinition","src":"2148:117:65"},{"body":{"nativeSrc":"2360:28:65","nodeType":"YulBlock","src":"2360:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2377:1:65","nodeType":"YulLiteral","src":"2377:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2380:1:65","nodeType":"YulLiteral","src":"2380:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2370:6:65","nodeType":"YulIdentifier","src":"2370:6:65"},"nativeSrc":"2370:12:65","nodeType":"YulFunctionCall","src":"2370:12:65"},"nativeSrc":"2370:12:65","nodeType":"YulExpressionStatement","src":"2370:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2271:117:65","nodeType":"YulFunctionDefinition","src":"2271:117:65"},{"body":{"nativeSrc":"2483:478:65","nodeType":"YulBlock","src":"2483:478:65","statements":[{"body":{"nativeSrc":"2532:83:65","nodeType":"YulBlock","src":"2532:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2534:77:65","nodeType":"YulIdentifier","src":"2534:77:65"},"nativeSrc":"2534:79:65","nodeType":"YulFunctionCall","src":"2534:79:65"},"nativeSrc":"2534:79:65","nodeType":"YulExpressionStatement","src":"2534:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2511:6:65","nodeType":"YulIdentifier","src":"2511:6:65"},{"kind":"number","nativeSrc":"2519:4:65","nodeType":"YulLiteral","src":"2519:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2507:3:65","nodeType":"YulIdentifier","src":"2507:3:65"},"nativeSrc":"2507:17:65","nodeType":"YulFunctionCall","src":"2507:17:65"},{"name":"end","nativeSrc":"2526:3:65","nodeType":"YulIdentifier","src":"2526:3:65"}],"functionName":{"name":"slt","nativeSrc":"2503:3:65","nodeType":"YulIdentifier","src":"2503:3:65"},"nativeSrc":"2503:27:65","nodeType":"YulFunctionCall","src":"2503:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2496:6:65","nodeType":"YulIdentifier","src":"2496:6:65"},"nativeSrc":"2496:35:65","nodeType":"YulFunctionCall","src":"2496:35:65"},"nativeSrc":"2493:122:65","nodeType":"YulIf","src":"2493:122:65"},{"nativeSrc":"2624:30:65","nodeType":"YulAssignment","src":"2624:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"2647:6:65","nodeType":"YulIdentifier","src":"2647:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2634:12:65","nodeType":"YulIdentifier","src":"2634:12:65"},"nativeSrc":"2634:20:65","nodeType":"YulFunctionCall","src":"2634:20:65"},"variableNames":[{"name":"length","nativeSrc":"2624:6:65","nodeType":"YulIdentifier","src":"2624:6:65"}]},{"body":{"nativeSrc":"2697:83:65","nodeType":"YulBlock","src":"2697:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2699:77:65","nodeType":"YulIdentifier","src":"2699:77:65"},"nativeSrc":"2699:79:65","nodeType":"YulFunctionCall","src":"2699:79:65"},"nativeSrc":"2699:79:65","nodeType":"YulExpressionStatement","src":"2699:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2669:6:65","nodeType":"YulIdentifier","src":"2669:6:65"},{"kind":"number","nativeSrc":"2677:18:65","nodeType":"YulLiteral","src":"2677:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2666:2:65","nodeType":"YulIdentifier","src":"2666:2:65"},"nativeSrc":"2666:30:65","nodeType":"YulFunctionCall","src":"2666:30:65"},"nativeSrc":"2663:117:65","nodeType":"YulIf","src":"2663:117:65"},{"nativeSrc":"2789:29:65","nodeType":"YulAssignment","src":"2789:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2805:6:65","nodeType":"YulIdentifier","src":"2805:6:65"},{"kind":"number","nativeSrc":"2813:4:65","nodeType":"YulLiteral","src":"2813:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2801:3:65","nodeType":"YulIdentifier","src":"2801:3:65"},"nativeSrc":"2801:17:65","nodeType":"YulFunctionCall","src":"2801:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"2789:8:65","nodeType":"YulIdentifier","src":"2789:8:65"}]},{"body":{"nativeSrc":"2872:83:65","nodeType":"YulBlock","src":"2872:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2874:77:65","nodeType":"YulIdentifier","src":"2874:77:65"},"nativeSrc":"2874:79:65","nodeType":"YulFunctionCall","src":"2874:79:65"},"nativeSrc":"2874:79:65","nodeType":"YulExpressionStatement","src":"2874:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2837:8:65","nodeType":"YulIdentifier","src":"2837:8:65"},{"arguments":[{"name":"length","nativeSrc":"2851:6:65","nodeType":"YulIdentifier","src":"2851:6:65"},{"kind":"number","nativeSrc":"2859:4:65","nodeType":"YulLiteral","src":"2859:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2847:3:65","nodeType":"YulIdentifier","src":"2847:3:65"},"nativeSrc":"2847:17:65","nodeType":"YulFunctionCall","src":"2847:17:65"}],"functionName":{"name":"add","nativeSrc":"2833:3:65","nodeType":"YulIdentifier","src":"2833:3:65"},"nativeSrc":"2833:32:65","nodeType":"YulFunctionCall","src":"2833:32:65"},{"name":"end","nativeSrc":"2867:3:65","nodeType":"YulIdentifier","src":"2867:3:65"}],"functionName":{"name":"gt","nativeSrc":"2830:2:65","nodeType":"YulIdentifier","src":"2830:2:65"},"nativeSrc":"2830:41:65","nodeType":"YulFunctionCall","src":"2830:41:65"},"nativeSrc":"2827:128:65","nodeType":"YulIf","src":"2827:128:65"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"2408:553:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2450:6:65","nodeType":"YulTypedName","src":"2450:6:65","type":""},{"name":"end","nativeSrc":"2458:3:65","nodeType":"YulTypedName","src":"2458:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2466:8:65","nodeType":"YulTypedName","src":"2466:8:65","type":""},{"name":"length","nativeSrc":"2476:6:65","nodeType":"YulTypedName","src":"2476:6:65","type":""}],"src":"2408:553:65"},{"body":{"nativeSrc":"3070:571:65","nodeType":"YulBlock","src":"3070:571:65","statements":[{"body":{"nativeSrc":"3116:83:65","nodeType":"YulBlock","src":"3116:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3118:77:65","nodeType":"YulIdentifier","src":"3118:77:65"},"nativeSrc":"3118:79:65","nodeType":"YulFunctionCall","src":"3118:79:65"},"nativeSrc":"3118:79:65","nodeType":"YulExpressionStatement","src":"3118:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3091:7:65","nodeType":"YulIdentifier","src":"3091:7:65"},{"name":"headStart","nativeSrc":"3100:9:65","nodeType":"YulIdentifier","src":"3100:9:65"}],"functionName":{"name":"sub","nativeSrc":"3087:3:65","nodeType":"YulIdentifier","src":"3087:3:65"},"nativeSrc":"3087:23:65","nodeType":"YulFunctionCall","src":"3087:23:65"},{"kind":"number","nativeSrc":"3112:2:65","nodeType":"YulLiteral","src":"3112:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3083:3:65","nodeType":"YulIdentifier","src":"3083:3:65"},"nativeSrc":"3083:32:65","nodeType":"YulFunctionCall","src":"3083:32:65"},"nativeSrc":"3080:119:65","nodeType":"YulIf","src":"3080:119:65"},{"nativeSrc":"3209:117:65","nodeType":"YulBlock","src":"3209:117:65","statements":[{"nativeSrc":"3224:15:65","nodeType":"YulVariableDeclaration","src":"3224:15:65","value":{"kind":"number","nativeSrc":"3238:1:65","nodeType":"YulLiteral","src":"3238:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3228:6:65","nodeType":"YulTypedName","src":"3228:6:65","type":""}]},{"nativeSrc":"3253:63:65","nodeType":"YulAssignment","src":"3253:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3288:9:65","nodeType":"YulIdentifier","src":"3288:9:65"},{"name":"offset","nativeSrc":"3299:6:65","nodeType":"YulIdentifier","src":"3299:6:65"}],"functionName":{"name":"add","nativeSrc":"3284:3:65","nodeType":"YulIdentifier","src":"3284:3:65"},"nativeSrc":"3284:22:65","nodeType":"YulFunctionCall","src":"3284:22:65"},{"name":"dataEnd","nativeSrc":"3308:7:65","nodeType":"YulIdentifier","src":"3308:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3263:20:65","nodeType":"YulIdentifier","src":"3263:20:65"},"nativeSrc":"3263:53:65","nodeType":"YulFunctionCall","src":"3263:53:65"},"variableNames":[{"name":"value0","nativeSrc":"3253:6:65","nodeType":"YulIdentifier","src":"3253:6:65"}]}]},{"nativeSrc":"3336:298:65","nodeType":"YulBlock","src":"3336:298:65","statements":[{"nativeSrc":"3351:46:65","nodeType":"YulVariableDeclaration","src":"3351:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3382:9:65","nodeType":"YulIdentifier","src":"3382:9:65"},{"kind":"number","nativeSrc":"3393:2:65","nodeType":"YulLiteral","src":"3393:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3378:3:65","nodeType":"YulIdentifier","src":"3378:3:65"},"nativeSrc":"3378:18:65","nodeType":"YulFunctionCall","src":"3378:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"3365:12:65","nodeType":"YulIdentifier","src":"3365:12:65"},"nativeSrc":"3365:32:65","nodeType":"YulFunctionCall","src":"3365:32:65"},"variables":[{"name":"offset","nativeSrc":"3355:6:65","nodeType":"YulTypedName","src":"3355:6:65","type":""}]},{"body":{"nativeSrc":"3444:83:65","nodeType":"YulBlock","src":"3444:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3446:77:65","nodeType":"YulIdentifier","src":"3446:77:65"},"nativeSrc":"3446:79:65","nodeType":"YulFunctionCall","src":"3446:79:65"},"nativeSrc":"3446:79:65","nodeType":"YulExpressionStatement","src":"3446:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3416:6:65","nodeType":"YulIdentifier","src":"3416:6:65"},{"kind":"number","nativeSrc":"3424:18:65","nodeType":"YulLiteral","src":"3424:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3413:2:65","nodeType":"YulIdentifier","src":"3413:2:65"},"nativeSrc":"3413:30:65","nodeType":"YulFunctionCall","src":"3413:30:65"},"nativeSrc":"3410:117:65","nodeType":"YulIf","src":"3410:117:65"},{"nativeSrc":"3541:83:65","nodeType":"YulAssignment","src":"3541:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3596:9:65","nodeType":"YulIdentifier","src":"3596:9:65"},{"name":"offset","nativeSrc":"3607:6:65","nodeType":"YulIdentifier","src":"3607:6:65"}],"functionName":{"name":"add","nativeSrc":"3592:3:65","nodeType":"YulIdentifier","src":"3592:3:65"},"nativeSrc":"3592:22:65","nodeType":"YulFunctionCall","src":"3592:22:65"},{"name":"dataEnd","nativeSrc":"3616:7:65","nodeType":"YulIdentifier","src":"3616:7:65"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"3559:32:65","nodeType":"YulIdentifier","src":"3559:32:65"},"nativeSrc":"3559:65:65","nodeType":"YulFunctionCall","src":"3559:65:65"},"variableNames":[{"name":"value1","nativeSrc":"3541:6:65","nodeType":"YulIdentifier","src":"3541:6:65"},{"name":"value2","nativeSrc":"3549:6:65","nodeType":"YulIdentifier","src":"3549:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptr","nativeSrc":"2967:674:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3024:9:65","nodeType":"YulTypedName","src":"3024:9:65","type":""},{"name":"dataEnd","nativeSrc":"3035:7:65","nodeType":"YulTypedName","src":"3035:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3047:6:65","nodeType":"YulTypedName","src":"3047:6:65","type":""},{"name":"value1","nativeSrc":"3055:6:65","nodeType":"YulTypedName","src":"3055:6:65","type":""},{"name":"value2","nativeSrc":"3063:6:65","nodeType":"YulTypedName","src":"3063:6:65","type":""}],"src":"2967:674:65"},{"body":{"nativeSrc":"3692:32:65","nodeType":"YulBlock","src":"3692:32:65","statements":[{"nativeSrc":"3702:16:65","nodeType":"YulAssignment","src":"3702:16:65","value":{"name":"value","nativeSrc":"3713:5:65","nodeType":"YulIdentifier","src":"3713:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3702:7:65","nodeType":"YulIdentifier","src":"3702:7:65"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"3647:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3674:5:65","nodeType":"YulTypedName","src":"3674:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3684:7:65","nodeType":"YulTypedName","src":"3684:7:65","type":""}],"src":"3647:77:65"},{"body":{"nativeSrc":"3773:79:65","nodeType":"YulBlock","src":"3773:79:65","statements":[{"body":{"nativeSrc":"3830:16:65","nodeType":"YulBlock","src":"3830:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3839:1:65","nodeType":"YulLiteral","src":"3839:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3842:1:65","nodeType":"YulLiteral","src":"3842:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3832:6:65","nodeType":"YulIdentifier","src":"3832:6:65"},"nativeSrc":"3832:12:65","nodeType":"YulFunctionCall","src":"3832:12:65"},"nativeSrc":"3832:12:65","nodeType":"YulExpressionStatement","src":"3832:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3796:5:65","nodeType":"YulIdentifier","src":"3796:5:65"},{"arguments":[{"name":"value","nativeSrc":"3821:5:65","nodeType":"YulIdentifier","src":"3821:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"3803:17:65","nodeType":"YulIdentifier","src":"3803:17:65"},"nativeSrc":"3803:24:65","nodeType":"YulFunctionCall","src":"3803:24:65"}],"functionName":{"name":"eq","nativeSrc":"3793:2:65","nodeType":"YulIdentifier","src":"3793:2:65"},"nativeSrc":"3793:35:65","nodeType":"YulFunctionCall","src":"3793:35:65"}],"functionName":{"name":"iszero","nativeSrc":"3786:6:65","nodeType":"YulIdentifier","src":"3786:6:65"},"nativeSrc":"3786:43:65","nodeType":"YulFunctionCall","src":"3786:43:65"},"nativeSrc":"3783:63:65","nodeType":"YulIf","src":"3783:63:65"}]},"name":"validator_revert_t_bytes32","nativeSrc":"3730:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3766:5:65","nodeType":"YulTypedName","src":"3766:5:65","type":""}],"src":"3730:122:65"},{"body":{"nativeSrc":"3910:87:65","nodeType":"YulBlock","src":"3910:87:65","statements":[{"nativeSrc":"3920:29:65","nodeType":"YulAssignment","src":"3920:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3942:6:65","nodeType":"YulIdentifier","src":"3942:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3929:12:65","nodeType":"YulIdentifier","src":"3929:12:65"},"nativeSrc":"3929:20:65","nodeType":"YulFunctionCall","src":"3929:20:65"},"variableNames":[{"name":"value","nativeSrc":"3920:5:65","nodeType":"YulIdentifier","src":"3920:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3985:5:65","nodeType":"YulIdentifier","src":"3985:5:65"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"3958:26:65","nodeType":"YulIdentifier","src":"3958:26:65"},"nativeSrc":"3958:33:65","nodeType":"YulFunctionCall","src":"3958:33:65"},"nativeSrc":"3958:33:65","nodeType":"YulExpressionStatement","src":"3958:33:65"}]},"name":"abi_decode_t_bytes32","nativeSrc":"3858:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3888:6:65","nodeType":"YulTypedName","src":"3888:6:65","type":""},{"name":"end","nativeSrc":"3896:3:65","nodeType":"YulTypedName","src":"3896:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3904:5:65","nodeType":"YulTypedName","src":"3904:5:65","type":""}],"src":"3858:139:65"},{"body":{"nativeSrc":"4069:263:65","nodeType":"YulBlock","src":"4069:263:65","statements":[{"body":{"nativeSrc":"4115:83:65","nodeType":"YulBlock","src":"4115:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4117:77:65","nodeType":"YulIdentifier","src":"4117:77:65"},"nativeSrc":"4117:79:65","nodeType":"YulFunctionCall","src":"4117:79:65"},"nativeSrc":"4117:79:65","nodeType":"YulExpressionStatement","src":"4117:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4090:7:65","nodeType":"YulIdentifier","src":"4090:7:65"},{"name":"headStart","nativeSrc":"4099:9:65","nodeType":"YulIdentifier","src":"4099:9:65"}],"functionName":{"name":"sub","nativeSrc":"4086:3:65","nodeType":"YulIdentifier","src":"4086:3:65"},"nativeSrc":"4086:23:65","nodeType":"YulFunctionCall","src":"4086:23:65"},{"kind":"number","nativeSrc":"4111:2:65","nodeType":"YulLiteral","src":"4111:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4082:3:65","nodeType":"YulIdentifier","src":"4082:3:65"},"nativeSrc":"4082:32:65","nodeType":"YulFunctionCall","src":"4082:32:65"},"nativeSrc":"4079:119:65","nodeType":"YulIf","src":"4079:119:65"},{"nativeSrc":"4208:117:65","nodeType":"YulBlock","src":"4208:117:65","statements":[{"nativeSrc":"4223:15:65","nodeType":"YulVariableDeclaration","src":"4223:15:65","value":{"kind":"number","nativeSrc":"4237:1:65","nodeType":"YulLiteral","src":"4237:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4227:6:65","nodeType":"YulTypedName","src":"4227:6:65","type":""}]},{"nativeSrc":"4252:63:65","nodeType":"YulAssignment","src":"4252:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4287:9:65","nodeType":"YulIdentifier","src":"4287:9:65"},{"name":"offset","nativeSrc":"4298:6:65","nodeType":"YulIdentifier","src":"4298:6:65"}],"functionName":{"name":"add","nativeSrc":"4283:3:65","nodeType":"YulIdentifier","src":"4283:3:65"},"nativeSrc":"4283:22:65","nodeType":"YulFunctionCall","src":"4283:22:65"},{"name":"dataEnd","nativeSrc":"4307:7:65","nodeType":"YulIdentifier","src":"4307:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4262:20:65","nodeType":"YulIdentifier","src":"4262:20:65"},"nativeSrc":"4262:53:65","nodeType":"YulFunctionCall","src":"4262:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4252:6:65","nodeType":"YulIdentifier","src":"4252:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"4003:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4039:9:65","nodeType":"YulTypedName","src":"4039:9:65","type":""},{"name":"dataEnd","nativeSrc":"4050:7:65","nodeType":"YulTypedName","src":"4050:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4062:6:65","nodeType":"YulTypedName","src":"4062:6:65","type":""}],"src":"4003:329:65"},{"body":{"nativeSrc":"4403:53:65","nodeType":"YulBlock","src":"4403:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4420:3:65","nodeType":"YulIdentifier","src":"4420:3:65"},{"arguments":[{"name":"value","nativeSrc":"4443:5:65","nodeType":"YulIdentifier","src":"4443:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"4425:17:65","nodeType":"YulIdentifier","src":"4425:17:65"},"nativeSrc":"4425:24:65","nodeType":"YulFunctionCall","src":"4425:24:65"}],"functionName":{"name":"mstore","nativeSrc":"4413:6:65","nodeType":"YulIdentifier","src":"4413:6:65"},"nativeSrc":"4413:37:65","nodeType":"YulFunctionCall","src":"4413:37:65"},"nativeSrc":"4413:37:65","nodeType":"YulExpressionStatement","src":"4413:37:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4338:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4391:5:65","nodeType":"YulTypedName","src":"4391:5:65","type":""},{"name":"pos","nativeSrc":"4398:3:65","nodeType":"YulTypedName","src":"4398:3:65","type":""}],"src":"4338:118:65"},{"body":{"nativeSrc":"4560:124:65","nodeType":"YulBlock","src":"4560:124:65","statements":[{"nativeSrc":"4570:26:65","nodeType":"YulAssignment","src":"4570:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4582:9:65","nodeType":"YulIdentifier","src":"4582:9:65"},{"kind":"number","nativeSrc":"4593:2:65","nodeType":"YulLiteral","src":"4593:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4578:3:65","nodeType":"YulIdentifier","src":"4578:3:65"},"nativeSrc":"4578:18:65","nodeType":"YulFunctionCall","src":"4578:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4570:4:65","nodeType":"YulIdentifier","src":"4570:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4650:6:65","nodeType":"YulIdentifier","src":"4650:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4663:9:65","nodeType":"YulIdentifier","src":"4663:9:65"},{"kind":"number","nativeSrc":"4674:1:65","nodeType":"YulLiteral","src":"4674:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4659:3:65","nodeType":"YulIdentifier","src":"4659:3:65"},"nativeSrc":"4659:17:65","nodeType":"YulFunctionCall","src":"4659:17:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4606:43:65","nodeType":"YulIdentifier","src":"4606:43:65"},"nativeSrc":"4606:71:65","nodeType":"YulFunctionCall","src":"4606:71:65"},"nativeSrc":"4606:71:65","nodeType":"YulExpressionStatement","src":"4606:71:65"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4462:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4532:9:65","nodeType":"YulTypedName","src":"4532:9:65","type":""},{"name":"value0","nativeSrc":"4544:6:65","nodeType":"YulTypedName","src":"4544:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4555:4:65","nodeType":"YulTypedName","src":"4555:4:65","type":""}],"src":"4462:222:65"},{"body":{"nativeSrc":"4773:391:65","nodeType":"YulBlock","src":"4773:391:65","statements":[{"body":{"nativeSrc":"4819:83:65","nodeType":"YulBlock","src":"4819:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4821:77:65","nodeType":"YulIdentifier","src":"4821:77:65"},"nativeSrc":"4821:79:65","nodeType":"YulFunctionCall","src":"4821:79:65"},"nativeSrc":"4821:79:65","nodeType":"YulExpressionStatement","src":"4821:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4794:7:65","nodeType":"YulIdentifier","src":"4794:7:65"},{"name":"headStart","nativeSrc":"4803:9:65","nodeType":"YulIdentifier","src":"4803:9:65"}],"functionName":{"name":"sub","nativeSrc":"4790:3:65","nodeType":"YulIdentifier","src":"4790:3:65"},"nativeSrc":"4790:23:65","nodeType":"YulFunctionCall","src":"4790:23:65"},{"kind":"number","nativeSrc":"4815:2:65","nodeType":"YulLiteral","src":"4815:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4786:3:65","nodeType":"YulIdentifier","src":"4786:3:65"},"nativeSrc":"4786:32:65","nodeType":"YulFunctionCall","src":"4786:32:65"},"nativeSrc":"4783:119:65","nodeType":"YulIf","src":"4783:119:65"},{"nativeSrc":"4912:117:65","nodeType":"YulBlock","src":"4912:117:65","statements":[{"nativeSrc":"4927:15:65","nodeType":"YulVariableDeclaration","src":"4927:15:65","value":{"kind":"number","nativeSrc":"4941:1:65","nodeType":"YulLiteral","src":"4941:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4931:6:65","nodeType":"YulTypedName","src":"4931:6:65","type":""}]},{"nativeSrc":"4956:63:65","nodeType":"YulAssignment","src":"4956:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4991:9:65","nodeType":"YulIdentifier","src":"4991:9:65"},{"name":"offset","nativeSrc":"5002:6:65","nodeType":"YulIdentifier","src":"5002:6:65"}],"functionName":{"name":"add","nativeSrc":"4987:3:65","nodeType":"YulIdentifier","src":"4987:3:65"},"nativeSrc":"4987:22:65","nodeType":"YulFunctionCall","src":"4987:22:65"},{"name":"dataEnd","nativeSrc":"5011:7:65","nodeType":"YulIdentifier","src":"5011:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4966:20:65","nodeType":"YulIdentifier","src":"4966:20:65"},"nativeSrc":"4966:53:65","nodeType":"YulFunctionCall","src":"4966:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4956:6:65","nodeType":"YulIdentifier","src":"4956:6:65"}]}]},{"nativeSrc":"5039:118:65","nodeType":"YulBlock","src":"5039:118:65","statements":[{"nativeSrc":"5054:16:65","nodeType":"YulVariableDeclaration","src":"5054:16:65","value":{"kind":"number","nativeSrc":"5068:2:65","nodeType":"YulLiteral","src":"5068:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5058:6:65","nodeType":"YulTypedName","src":"5058:6:65","type":""}]},{"nativeSrc":"5084:63:65","nodeType":"YulAssignment","src":"5084:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5119:9:65","nodeType":"YulIdentifier","src":"5119:9:65"},{"name":"offset","nativeSrc":"5130:6:65","nodeType":"YulIdentifier","src":"5130:6:65"}],"functionName":{"name":"add","nativeSrc":"5115:3:65","nodeType":"YulIdentifier","src":"5115:3:65"},"nativeSrc":"5115:22:65","nodeType":"YulFunctionCall","src":"5115:22:65"},{"name":"dataEnd","nativeSrc":"5139:7:65","nodeType":"YulIdentifier","src":"5139:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5094:20:65","nodeType":"YulIdentifier","src":"5094:20:65"},"nativeSrc":"5094:53:65","nodeType":"YulFunctionCall","src":"5094:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5084:6:65","nodeType":"YulIdentifier","src":"5084:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"4690:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4735:9:65","nodeType":"YulTypedName","src":"4735:9:65","type":""},{"name":"dataEnd","nativeSrc":"4746:7:65","nodeType":"YulTypedName","src":"4746:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4758:6:65","nodeType":"YulTypedName","src":"4758:6:65","type":""},{"name":"value1","nativeSrc":"4766:6:65","nodeType":"YulTypedName","src":"4766:6:65","type":""}],"src":"4690:474:65"},{"body":{"nativeSrc":"5290:699:65","nodeType":"YulBlock","src":"5290:699:65","statements":[{"body":{"nativeSrc":"5336:83:65","nodeType":"YulBlock","src":"5336:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5338:77:65","nodeType":"YulIdentifier","src":"5338:77:65"},"nativeSrc":"5338:79:65","nodeType":"YulFunctionCall","src":"5338:79:65"},"nativeSrc":"5338:79:65","nodeType":"YulExpressionStatement","src":"5338:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5311:7:65","nodeType":"YulIdentifier","src":"5311:7:65"},{"name":"headStart","nativeSrc":"5320:9:65","nodeType":"YulIdentifier","src":"5320:9:65"}],"functionName":{"name":"sub","nativeSrc":"5307:3:65","nodeType":"YulIdentifier","src":"5307:3:65"},"nativeSrc":"5307:23:65","nodeType":"YulFunctionCall","src":"5307:23:65"},{"kind":"number","nativeSrc":"5332:2:65","nodeType":"YulLiteral","src":"5332:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5303:3:65","nodeType":"YulIdentifier","src":"5303:3:65"},"nativeSrc":"5303:32:65","nodeType":"YulFunctionCall","src":"5303:32:65"},"nativeSrc":"5300:119:65","nodeType":"YulIf","src":"5300:119:65"},{"nativeSrc":"5429:117:65","nodeType":"YulBlock","src":"5429:117:65","statements":[{"nativeSrc":"5444:15:65","nodeType":"YulVariableDeclaration","src":"5444:15:65","value":{"kind":"number","nativeSrc":"5458:1:65","nodeType":"YulLiteral","src":"5458:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5448:6:65","nodeType":"YulTypedName","src":"5448:6:65","type":""}]},{"nativeSrc":"5473:63:65","nodeType":"YulAssignment","src":"5473:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5508:9:65","nodeType":"YulIdentifier","src":"5508:9:65"},{"name":"offset","nativeSrc":"5519:6:65","nodeType":"YulIdentifier","src":"5519:6:65"}],"functionName":{"name":"add","nativeSrc":"5504:3:65","nodeType":"YulIdentifier","src":"5504:3:65"},"nativeSrc":"5504:22:65","nodeType":"YulFunctionCall","src":"5504:22:65"},{"name":"dataEnd","nativeSrc":"5528:7:65","nodeType":"YulIdentifier","src":"5528:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5483:20:65","nodeType":"YulIdentifier","src":"5483:20:65"},"nativeSrc":"5483:53:65","nodeType":"YulFunctionCall","src":"5483:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5473:6:65","nodeType":"YulIdentifier","src":"5473:6:65"}]}]},{"nativeSrc":"5556:298:65","nodeType":"YulBlock","src":"5556:298:65","statements":[{"nativeSrc":"5571:46:65","nodeType":"YulVariableDeclaration","src":"5571:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5602:9:65","nodeType":"YulIdentifier","src":"5602:9:65"},{"kind":"number","nativeSrc":"5613:2:65","nodeType":"YulLiteral","src":"5613:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5598:3:65","nodeType":"YulIdentifier","src":"5598:3:65"},"nativeSrc":"5598:18:65","nodeType":"YulFunctionCall","src":"5598:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"5585:12:65","nodeType":"YulIdentifier","src":"5585:12:65"},"nativeSrc":"5585:32:65","nodeType":"YulFunctionCall","src":"5585:32:65"},"variables":[{"name":"offset","nativeSrc":"5575:6:65","nodeType":"YulTypedName","src":"5575:6:65","type":""}]},{"body":{"nativeSrc":"5664:83:65","nodeType":"YulBlock","src":"5664:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5666:77:65","nodeType":"YulIdentifier","src":"5666:77:65"},"nativeSrc":"5666:79:65","nodeType":"YulFunctionCall","src":"5666:79:65"},"nativeSrc":"5666:79:65","nodeType":"YulExpressionStatement","src":"5666:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5636:6:65","nodeType":"YulIdentifier","src":"5636:6:65"},{"kind":"number","nativeSrc":"5644:18:65","nodeType":"YulLiteral","src":"5644:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5633:2:65","nodeType":"YulIdentifier","src":"5633:2:65"},"nativeSrc":"5633:30:65","nodeType":"YulFunctionCall","src":"5633:30:65"},"nativeSrc":"5630:117:65","nodeType":"YulIf","src":"5630:117:65"},{"nativeSrc":"5761:83:65","nodeType":"YulAssignment","src":"5761:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5816:9:65","nodeType":"YulIdentifier","src":"5816:9:65"},{"name":"offset","nativeSrc":"5827:6:65","nodeType":"YulIdentifier","src":"5827:6:65"}],"functionName":{"name":"add","nativeSrc":"5812:3:65","nodeType":"YulIdentifier","src":"5812:3:65"},"nativeSrc":"5812:22:65","nodeType":"YulFunctionCall","src":"5812:22:65"},{"name":"dataEnd","nativeSrc":"5836:7:65","nodeType":"YulIdentifier","src":"5836:7:65"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"5779:32:65","nodeType":"YulIdentifier","src":"5779:32:65"},"nativeSrc":"5779:65:65","nodeType":"YulFunctionCall","src":"5779:65:65"},"variableNames":[{"name":"value1","nativeSrc":"5761:6:65","nodeType":"YulIdentifier","src":"5761:6:65"},{"name":"value2","nativeSrc":"5769:6:65","nodeType":"YulIdentifier","src":"5769:6:65"}]}]},{"nativeSrc":"5864:118:65","nodeType":"YulBlock","src":"5864:118:65","statements":[{"nativeSrc":"5879:16:65","nodeType":"YulVariableDeclaration","src":"5879:16:65","value":{"kind":"number","nativeSrc":"5893:2:65","nodeType":"YulLiteral","src":"5893:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5883:6:65","nodeType":"YulTypedName","src":"5883:6:65","type":""}]},{"nativeSrc":"5909:63:65","nodeType":"YulAssignment","src":"5909:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5944:9:65","nodeType":"YulIdentifier","src":"5944:9:65"},{"name":"offset","nativeSrc":"5955:6:65","nodeType":"YulIdentifier","src":"5955:6:65"}],"functionName":{"name":"add","nativeSrc":"5940:3:65","nodeType":"YulIdentifier","src":"5940:3:65"},"nativeSrc":"5940:22:65","nodeType":"YulFunctionCall","src":"5940:22:65"},{"name":"dataEnd","nativeSrc":"5964:7:65","nodeType":"YulIdentifier","src":"5964:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5919:20:65","nodeType":"YulIdentifier","src":"5919:20:65"},"nativeSrc":"5919:53:65","nodeType":"YulFunctionCall","src":"5919:53:65"},"variableNames":[{"name":"value3","nativeSrc":"5909:6:65","nodeType":"YulIdentifier","src":"5909:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptrt_address","nativeSrc":"5170:819:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5236:9:65","nodeType":"YulTypedName","src":"5236:9:65","type":""},{"name":"dataEnd","nativeSrc":"5247:7:65","nodeType":"YulTypedName","src":"5247:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5259:6:65","nodeType":"YulTypedName","src":"5259:6:65","type":""},{"name":"value1","nativeSrc":"5267:6:65","nodeType":"YulTypedName","src":"5267:6:65","type":""},{"name":"value2","nativeSrc":"5275:6:65","nodeType":"YulTypedName","src":"5275:6:65","type":""},{"name":"value3","nativeSrc":"5283:6:65","nodeType":"YulTypedName","src":"5283:6:65","type":""}],"src":"5170:819:65"},{"body":{"nativeSrc":"6115:699:65","nodeType":"YulBlock","src":"6115:699:65","statements":[{"body":{"nativeSrc":"6161:83:65","nodeType":"YulBlock","src":"6161:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6163:77:65","nodeType":"YulIdentifier","src":"6163:77:65"},"nativeSrc":"6163:79:65","nodeType":"YulFunctionCall","src":"6163:79:65"},"nativeSrc":"6163:79:65","nodeType":"YulExpressionStatement","src":"6163:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6136:7:65","nodeType":"YulIdentifier","src":"6136:7:65"},{"name":"headStart","nativeSrc":"6145:9:65","nodeType":"YulIdentifier","src":"6145:9:65"}],"functionName":{"name":"sub","nativeSrc":"6132:3:65","nodeType":"YulIdentifier","src":"6132:3:65"},"nativeSrc":"6132:23:65","nodeType":"YulFunctionCall","src":"6132:23:65"},{"kind":"number","nativeSrc":"6157:2:65","nodeType":"YulLiteral","src":"6157:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"6128:3:65","nodeType":"YulIdentifier","src":"6128:3:65"},"nativeSrc":"6128:32:65","nodeType":"YulFunctionCall","src":"6128:32:65"},"nativeSrc":"6125:119:65","nodeType":"YulIf","src":"6125:119:65"},{"nativeSrc":"6254:117:65","nodeType":"YulBlock","src":"6254:117:65","statements":[{"nativeSrc":"6269:15:65","nodeType":"YulVariableDeclaration","src":"6269:15:65","value":{"kind":"number","nativeSrc":"6283:1:65","nodeType":"YulLiteral","src":"6283:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6273:6:65","nodeType":"YulTypedName","src":"6273:6:65","type":""}]},{"nativeSrc":"6298:63:65","nodeType":"YulAssignment","src":"6298:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6333:9:65","nodeType":"YulIdentifier","src":"6333:9:65"},{"name":"offset","nativeSrc":"6344:6:65","nodeType":"YulIdentifier","src":"6344:6:65"}],"functionName":{"name":"add","nativeSrc":"6329:3:65","nodeType":"YulIdentifier","src":"6329:3:65"},"nativeSrc":"6329:22:65","nodeType":"YulFunctionCall","src":"6329:22:65"},{"name":"dataEnd","nativeSrc":"6353:7:65","nodeType":"YulIdentifier","src":"6353:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6308:20:65","nodeType":"YulIdentifier","src":"6308:20:65"},"nativeSrc":"6308:53:65","nodeType":"YulFunctionCall","src":"6308:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6298:6:65","nodeType":"YulIdentifier","src":"6298:6:65"}]}]},{"nativeSrc":"6381:118:65","nodeType":"YulBlock","src":"6381:118:65","statements":[{"nativeSrc":"6396:16:65","nodeType":"YulVariableDeclaration","src":"6396:16:65","value":{"kind":"number","nativeSrc":"6410:2:65","nodeType":"YulLiteral","src":"6410:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6400:6:65","nodeType":"YulTypedName","src":"6400:6:65","type":""}]},{"nativeSrc":"6426:63:65","nodeType":"YulAssignment","src":"6426:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6461:9:65","nodeType":"YulIdentifier","src":"6461:9:65"},{"name":"offset","nativeSrc":"6472:6:65","nodeType":"YulIdentifier","src":"6472:6:65"}],"functionName":{"name":"add","nativeSrc":"6457:3:65","nodeType":"YulIdentifier","src":"6457:3:65"},"nativeSrc":"6457:22:65","nodeType":"YulFunctionCall","src":"6457:22:65"},{"name":"dataEnd","nativeSrc":"6481:7:65","nodeType":"YulIdentifier","src":"6481:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6436:20:65","nodeType":"YulIdentifier","src":"6436:20:65"},"nativeSrc":"6436:53:65","nodeType":"YulFunctionCall","src":"6436:53:65"},"variableNames":[{"name":"value1","nativeSrc":"6426:6:65","nodeType":"YulIdentifier","src":"6426:6:65"}]}]},{"nativeSrc":"6509:298:65","nodeType":"YulBlock","src":"6509:298:65","statements":[{"nativeSrc":"6524:46:65","nodeType":"YulVariableDeclaration","src":"6524:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6555:9:65","nodeType":"YulIdentifier","src":"6555:9:65"},{"kind":"number","nativeSrc":"6566:2:65","nodeType":"YulLiteral","src":"6566:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6551:3:65","nodeType":"YulIdentifier","src":"6551:3:65"},"nativeSrc":"6551:18:65","nodeType":"YulFunctionCall","src":"6551:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"6538:12:65","nodeType":"YulIdentifier","src":"6538:12:65"},"nativeSrc":"6538:32:65","nodeType":"YulFunctionCall","src":"6538:32:65"},"variables":[{"name":"offset","nativeSrc":"6528:6:65","nodeType":"YulTypedName","src":"6528:6:65","type":""}]},{"body":{"nativeSrc":"6617:83:65","nodeType":"YulBlock","src":"6617:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6619:77:65","nodeType":"YulIdentifier","src":"6619:77:65"},"nativeSrc":"6619:79:65","nodeType":"YulFunctionCall","src":"6619:79:65"},"nativeSrc":"6619:79:65","nodeType":"YulExpressionStatement","src":"6619:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6589:6:65","nodeType":"YulIdentifier","src":"6589:6:65"},{"kind":"number","nativeSrc":"6597:18:65","nodeType":"YulLiteral","src":"6597:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6586:2:65","nodeType":"YulIdentifier","src":"6586:2:65"},"nativeSrc":"6586:30:65","nodeType":"YulFunctionCall","src":"6586:30:65"},"nativeSrc":"6583:117:65","nodeType":"YulIf","src":"6583:117:65"},{"nativeSrc":"6714:83:65","nodeType":"YulAssignment","src":"6714:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6769:9:65","nodeType":"YulIdentifier","src":"6769:9:65"},{"name":"offset","nativeSrc":"6780:6:65","nodeType":"YulIdentifier","src":"6780:6:65"}],"functionName":{"name":"add","nativeSrc":"6765:3:65","nodeType":"YulIdentifier","src":"6765:3:65"},"nativeSrc":"6765:22:65","nodeType":"YulFunctionCall","src":"6765:22:65"},{"name":"dataEnd","nativeSrc":"6789:7:65","nodeType":"YulIdentifier","src":"6789:7:65"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"6732:32:65","nodeType":"YulIdentifier","src":"6732:32:65"},"nativeSrc":"6732:65:65","nodeType":"YulFunctionCall","src":"6732:65:65"},"variableNames":[{"name":"value2","nativeSrc":"6714:6:65","nodeType":"YulIdentifier","src":"6714:6:65"},{"name":"value3","nativeSrc":"6722:6:65","nodeType":"YulIdentifier","src":"6722:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_string_calldata_ptr","nativeSrc":"5995:819:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6061:9:65","nodeType":"YulTypedName","src":"6061:9:65","type":""},{"name":"dataEnd","nativeSrc":"6072:7:65","nodeType":"YulTypedName","src":"6072:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6084:6:65","nodeType":"YulTypedName","src":"6084:6:65","type":""},{"name":"value1","nativeSrc":"6092:6:65","nodeType":"YulTypedName","src":"6092:6:65","type":""},{"name":"value2","nativeSrc":"6100:6:65","nodeType":"YulTypedName","src":"6100:6:65","type":""},{"name":"value3","nativeSrc":"6108:6:65","nodeType":"YulTypedName","src":"6108:6:65","type":""}],"src":"5995:819:65"},{"body":{"nativeSrc":"6862:52:65","nodeType":"YulBlock","src":"6862:52:65","statements":[{"nativeSrc":"6872:35:65","nodeType":"YulAssignment","src":"6872:35:65","value":{"arguments":[{"kind":"number","nativeSrc":"6897:2:65","nodeType":"YulLiteral","src":"6897:2:65","type":"","value":"96"},{"name":"value","nativeSrc":"6901:5:65","nodeType":"YulIdentifier","src":"6901:5:65"}],"functionName":{"name":"shl","nativeSrc":"6893:3:65","nodeType":"YulIdentifier","src":"6893:3:65"},"nativeSrc":"6893:14:65","nodeType":"YulFunctionCall","src":"6893:14:65"},"variableNames":[{"name":"newValue","nativeSrc":"6872:8:65","nodeType":"YulIdentifier","src":"6872:8:65"}]}]},"name":"shift_left_96","nativeSrc":"6820:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6843:5:65","nodeType":"YulTypedName","src":"6843:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6853:8:65","nodeType":"YulTypedName","src":"6853:8:65","type":""}],"src":"6820:94:65"},{"body":{"nativeSrc":"6967:47:65","nodeType":"YulBlock","src":"6967:47:65","statements":[{"nativeSrc":"6977:31:65","nodeType":"YulAssignment","src":"6977:31:65","value":{"arguments":[{"name":"value","nativeSrc":"7002:5:65","nodeType":"YulIdentifier","src":"7002:5:65"}],"functionName":{"name":"shift_left_96","nativeSrc":"6988:13:65","nodeType":"YulIdentifier","src":"6988:13:65"},"nativeSrc":"6988:20:65","nodeType":"YulFunctionCall","src":"6988:20:65"},"variableNames":[{"name":"aligned","nativeSrc":"6977:7:65","nodeType":"YulIdentifier","src":"6977:7:65"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"6920:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6949:5:65","nodeType":"YulTypedName","src":"6949:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"6959:7:65","nodeType":"YulTypedName","src":"6959:7:65","type":""}],"src":"6920:94:65"},{"body":{"nativeSrc":"7067:53:65","nodeType":"YulBlock","src":"7067:53:65","statements":[{"nativeSrc":"7077:37:65","nodeType":"YulAssignment","src":"7077:37:65","value":{"arguments":[{"name":"value","nativeSrc":"7108:5:65","nodeType":"YulIdentifier","src":"7108:5:65"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"7088:19:65","nodeType":"YulIdentifier","src":"7088:19:65"},"nativeSrc":"7088:26:65","nodeType":"YulFunctionCall","src":"7088:26:65"},"variableNames":[{"name":"aligned","nativeSrc":"7077:7:65","nodeType":"YulIdentifier","src":"7077:7:65"}]}]},"name":"leftAlign_t_address","nativeSrc":"7020:100:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7049:5:65","nodeType":"YulTypedName","src":"7049:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"7059:7:65","nodeType":"YulTypedName","src":"7059:7:65","type":""}],"src":"7020:100:65"},{"body":{"nativeSrc":"7209:74:65","nodeType":"YulBlock","src":"7209:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7226:3:65","nodeType":"YulIdentifier","src":"7226:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7269:5:65","nodeType":"YulIdentifier","src":"7269:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7251:17:65","nodeType":"YulIdentifier","src":"7251:17:65"},"nativeSrc":"7251:24:65","nodeType":"YulFunctionCall","src":"7251:24:65"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"7231:19:65","nodeType":"YulIdentifier","src":"7231:19:65"},"nativeSrc":"7231:45:65","nodeType":"YulFunctionCall","src":"7231:45:65"}],"functionName":{"name":"mstore","nativeSrc":"7219:6:65","nodeType":"YulIdentifier","src":"7219:6:65"},"nativeSrc":"7219:58:65","nodeType":"YulFunctionCall","src":"7219:58:65"},"nativeSrc":"7219:58:65","nodeType":"YulExpressionStatement","src":"7219:58:65"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"7126:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7197:5:65","nodeType":"YulTypedName","src":"7197:5:65","type":""},{"name":"pos","nativeSrc":"7204:3:65","nodeType":"YulTypedName","src":"7204:3:65","type":""}],"src":"7126:157:65"},{"body":{"nativeSrc":"7403:34:65","nodeType":"YulBlock","src":"7403:34:65","statements":[{"nativeSrc":"7413:18:65","nodeType":"YulAssignment","src":"7413:18:65","value":{"name":"pos","nativeSrc":"7428:3:65","nodeType":"YulIdentifier","src":"7428:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"7413:11:65","nodeType":"YulIdentifier","src":"7413:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7289:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7375:3:65","nodeType":"YulTypedName","src":"7375:3:65","type":""},{"name":"length","nativeSrc":"7380:6:65","nodeType":"YulTypedName","src":"7380:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7391:11:65","nodeType":"YulTypedName","src":"7391:11:65","type":""}],"src":"7289:148:65"},{"body":{"nativeSrc":"7507:84:65","nodeType":"YulBlock","src":"7507:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"7531:3:65","nodeType":"YulIdentifier","src":"7531:3:65"},{"name":"src","nativeSrc":"7536:3:65","nodeType":"YulIdentifier","src":"7536:3:65"},{"name":"length","nativeSrc":"7541:6:65","nodeType":"YulIdentifier","src":"7541:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"7518:12:65","nodeType":"YulIdentifier","src":"7518:12:65"},"nativeSrc":"7518:30:65","nodeType":"YulFunctionCall","src":"7518:30:65"},"nativeSrc":"7518:30:65","nodeType":"YulExpressionStatement","src":"7518:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7568:3:65","nodeType":"YulIdentifier","src":"7568:3:65"},{"name":"length","nativeSrc":"7573:6:65","nodeType":"YulIdentifier","src":"7573:6:65"}],"functionName":{"name":"add","nativeSrc":"7564:3:65","nodeType":"YulIdentifier","src":"7564:3:65"},"nativeSrc":"7564:16:65","nodeType":"YulFunctionCall","src":"7564:16:65"},{"kind":"number","nativeSrc":"7582:1:65","nodeType":"YulLiteral","src":"7582:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7557:6:65","nodeType":"YulIdentifier","src":"7557:6:65"},"nativeSrc":"7557:27:65","nodeType":"YulFunctionCall","src":"7557:27:65"},"nativeSrc":"7557:27:65","nodeType":"YulExpressionStatement","src":"7557:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"7443:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"7489:3:65","nodeType":"YulTypedName","src":"7489:3:65","type":""},{"name":"dst","nativeSrc":"7494:3:65","nodeType":"YulTypedName","src":"7494:3:65","type":""},{"name":"length","nativeSrc":"7499:6:65","nodeType":"YulTypedName","src":"7499:6:65","type":""}],"src":"7443:148:65"},{"body":{"nativeSrc":"7741:210:65","nodeType":"YulBlock","src":"7741:210:65","statements":[{"nativeSrc":"7751:96:65","nodeType":"YulAssignment","src":"7751:96:65","value":{"arguments":[{"name":"pos","nativeSrc":"7835:3:65","nodeType":"YulIdentifier","src":"7835:3:65"},{"name":"length","nativeSrc":"7840:6:65","nodeType":"YulIdentifier","src":"7840:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7758:76:65","nodeType":"YulIdentifier","src":"7758:76:65"},"nativeSrc":"7758:89:65","nodeType":"YulFunctionCall","src":"7758:89:65"},"variableNames":[{"name":"pos","nativeSrc":"7751:3:65","nodeType":"YulIdentifier","src":"7751:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"7894:5:65","nodeType":"YulIdentifier","src":"7894:5:65"},{"name":"pos","nativeSrc":"7901:3:65","nodeType":"YulIdentifier","src":"7901:3:65"},{"name":"length","nativeSrc":"7906:6:65","nodeType":"YulIdentifier","src":"7906:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"7857:36:65","nodeType":"YulIdentifier","src":"7857:36:65"},"nativeSrc":"7857:56:65","nodeType":"YulFunctionCall","src":"7857:56:65"},"nativeSrc":"7857:56:65","nodeType":"YulExpressionStatement","src":"7857:56:65"},{"nativeSrc":"7922:23:65","nodeType":"YulAssignment","src":"7922:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"7933:3:65","nodeType":"YulIdentifier","src":"7933:3:65"},{"name":"length","nativeSrc":"7938:6:65","nodeType":"YulIdentifier","src":"7938:6:65"}],"functionName":{"name":"add","nativeSrc":"7929:3:65","nodeType":"YulIdentifier","src":"7929:3:65"},"nativeSrc":"7929:16:65","nodeType":"YulFunctionCall","src":"7929:16:65"},"variableNames":[{"name":"end","nativeSrc":"7922:3:65","nodeType":"YulIdentifier","src":"7922:3:65"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7621:330:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"7714:5:65","nodeType":"YulTypedName","src":"7714:5:65","type":""},{"name":"length","nativeSrc":"7721:6:65","nodeType":"YulTypedName","src":"7721:6:65","type":""},{"name":"pos","nativeSrc":"7729:3:65","nodeType":"YulTypedName","src":"7729:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7737:3:65","nodeType":"YulTypedName","src":"7737:3:65","type":""}],"src":"7621:330:65"},{"body":{"nativeSrc":"8131:262:65","nodeType":"YulBlock","src":"8131:262:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"8204:6:65","nodeType":"YulIdentifier","src":"8204:6:65"},{"name":"pos","nativeSrc":"8213:3:65","nodeType":"YulIdentifier","src":"8213:3:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"8142:61:65","nodeType":"YulIdentifier","src":"8142:61:65"},"nativeSrc":"8142:75:65","nodeType":"YulFunctionCall","src":"8142:75:65"},"nativeSrc":"8142:75:65","nodeType":"YulExpressionStatement","src":"8142:75:65"},{"nativeSrc":"8226:19:65","nodeType":"YulAssignment","src":"8226:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"8237:3:65","nodeType":"YulIdentifier","src":"8237:3:65"},{"kind":"number","nativeSrc":"8242:2:65","nodeType":"YulLiteral","src":"8242:2:65","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"8233:3:65","nodeType":"YulIdentifier","src":"8233:3:65"},"nativeSrc":"8233:12:65","nodeType":"YulFunctionCall","src":"8233:12:65"},"variableNames":[{"name":"pos","nativeSrc":"8226:3:65","nodeType":"YulIdentifier","src":"8226:3:65"}]},{"nativeSrc":"8255:112:65","nodeType":"YulAssignment","src":"8255:112:65","value":{"arguments":[{"name":"value1","nativeSrc":"8346:6:65","nodeType":"YulIdentifier","src":"8346:6:65"},{"name":"value2","nativeSrc":"8354:6:65","nodeType":"YulIdentifier","src":"8354:6:65"},{"name":"pos","nativeSrc":"8363:3:65","nodeType":"YulIdentifier","src":"8363:3:65"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8262:83:65","nodeType":"YulIdentifier","src":"8262:83:65"},"nativeSrc":"8262:105:65","nodeType":"YulFunctionCall","src":"8262:105:65"},"variableNames":[{"name":"pos","nativeSrc":"8255:3:65","nodeType":"YulIdentifier","src":"8255:3:65"}]},{"nativeSrc":"8377:10:65","nodeType":"YulAssignment","src":"8377:10:65","value":{"name":"pos","nativeSrc":"8384:3:65","nodeType":"YulIdentifier","src":"8384:3:65"},"variableNames":[{"name":"end","nativeSrc":"8377:3:65","nodeType":"YulIdentifier","src":"8377:3:65"}]}]},"name":"abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7957:436:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8094:3:65","nodeType":"YulTypedName","src":"8094:3:65","type":""},{"name":"value2","nativeSrc":"8100:6:65","nodeType":"YulTypedName","src":"8100:6:65","type":""},{"name":"value1","nativeSrc":"8108:6:65","nodeType":"YulTypedName","src":"8108:6:65","type":""},{"name":"value0","nativeSrc":"8116:6:65","nodeType":"YulTypedName","src":"8116:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8127:3:65","nodeType":"YulTypedName","src":"8127:3:65","type":""}],"src":"7957:436:65"},{"body":{"nativeSrc":"8495:73:65","nodeType":"YulBlock","src":"8495:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8512:3:65","nodeType":"YulIdentifier","src":"8512:3:65"},{"name":"length","nativeSrc":"8517:6:65","nodeType":"YulIdentifier","src":"8517:6:65"}],"functionName":{"name":"mstore","nativeSrc":"8505:6:65","nodeType":"YulIdentifier","src":"8505:6:65"},"nativeSrc":"8505:19:65","nodeType":"YulFunctionCall","src":"8505:19:65"},"nativeSrc":"8505:19:65","nodeType":"YulExpressionStatement","src":"8505:19:65"},{"nativeSrc":"8533:29:65","nodeType":"YulAssignment","src":"8533:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"8552:3:65","nodeType":"YulIdentifier","src":"8552:3:65"},{"kind":"number","nativeSrc":"8557:4:65","nodeType":"YulLiteral","src":"8557:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8548:3:65","nodeType":"YulIdentifier","src":"8548:3:65"},"nativeSrc":"8548:14:65","nodeType":"YulFunctionCall","src":"8548:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"8533:11:65","nodeType":"YulIdentifier","src":"8533:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8399:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8467:3:65","nodeType":"YulTypedName","src":"8467:3:65","type":""},{"name":"length","nativeSrc":"8472:6:65","nodeType":"YulTypedName","src":"8472:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8483:11:65","nodeType":"YulTypedName","src":"8483:11:65","type":""}],"src":"8399:169:65"},{"body":{"nativeSrc":"8680:128:65","nodeType":"YulBlock","src":"8680:128:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8702:6:65","nodeType":"YulIdentifier","src":"8702:6:65"},{"kind":"number","nativeSrc":"8710:1:65","nodeType":"YulLiteral","src":"8710:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8698:3:65","nodeType":"YulIdentifier","src":"8698:3:65"},"nativeSrc":"8698:14:65","nodeType":"YulFunctionCall","src":"8698:14:65"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nativeSrc":"8714:34:65","nodeType":"YulLiteral","src":"8714:34:65","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nativeSrc":"8691:6:65","nodeType":"YulIdentifier","src":"8691:6:65"},"nativeSrc":"8691:58:65","nodeType":"YulFunctionCall","src":"8691:58:65"},"nativeSrc":"8691:58:65","nodeType":"YulExpressionStatement","src":"8691:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8770:6:65","nodeType":"YulIdentifier","src":"8770:6:65"},{"kind":"number","nativeSrc":"8778:2:65","nodeType":"YulLiteral","src":"8778:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8766:3:65","nodeType":"YulIdentifier","src":"8766:3:65"},"nativeSrc":"8766:15:65","nodeType":"YulFunctionCall","src":"8766:15:65"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nativeSrc":"8783:17:65","nodeType":"YulLiteral","src":"8783:17:65","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nativeSrc":"8759:6:65","nodeType":"YulIdentifier","src":"8759:6:65"},"nativeSrc":"8759:42:65","nodeType":"YulFunctionCall","src":"8759:42:65"},"nativeSrc":"8759:42:65","nodeType":"YulExpressionStatement","src":"8759:42:65"}]},"name":"store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","nativeSrc":"8574:234:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8672:6:65","nodeType":"YulTypedName","src":"8672:6:65","type":""}],"src":"8574:234:65"},{"body":{"nativeSrc":"8960:220:65","nodeType":"YulBlock","src":"8960:220:65","statements":[{"nativeSrc":"8970:74:65","nodeType":"YulAssignment","src":"8970:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"9036:3:65","nodeType":"YulIdentifier","src":"9036:3:65"},{"kind":"number","nativeSrc":"9041:2:65","nodeType":"YulLiteral","src":"9041:2:65","type":"","value":"47"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8977:58:65","nodeType":"YulIdentifier","src":"8977:58:65"},"nativeSrc":"8977:67:65","nodeType":"YulFunctionCall","src":"8977:67:65"},"variableNames":[{"name":"pos","nativeSrc":"8970:3:65","nodeType":"YulIdentifier","src":"8970:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9142:3:65","nodeType":"YulIdentifier","src":"9142:3:65"}],"functionName":{"name":"store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","nativeSrc":"9053:88:65","nodeType":"YulIdentifier","src":"9053:88:65"},"nativeSrc":"9053:93:65","nodeType":"YulFunctionCall","src":"9053:93:65"},"nativeSrc":"9053:93:65","nodeType":"YulExpressionStatement","src":"9053:93:65"},{"nativeSrc":"9155:19:65","nodeType":"YulAssignment","src":"9155:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"9166:3:65","nodeType":"YulIdentifier","src":"9166:3:65"},{"kind":"number","nativeSrc":"9171:2:65","nodeType":"YulLiteral","src":"9171:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9162:3:65","nodeType":"YulIdentifier","src":"9162:3:65"},"nativeSrc":"9162:12:65","nodeType":"YulFunctionCall","src":"9162:12:65"},"variableNames":[{"name":"end","nativeSrc":"9155:3:65","nodeType":"YulIdentifier","src":"9155:3:65"}]}]},"name":"abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack","nativeSrc":"8814:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8948:3:65","nodeType":"YulTypedName","src":"8948:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8956:3:65","nodeType":"YulTypedName","src":"8956:3:65","type":""}],"src":"8814:366:65"},{"body":{"nativeSrc":"9357:248:65","nodeType":"YulBlock","src":"9357:248:65","statements":[{"nativeSrc":"9367:26:65","nodeType":"YulAssignment","src":"9367:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9379:9:65","nodeType":"YulIdentifier","src":"9379:9:65"},{"kind":"number","nativeSrc":"9390:2:65","nodeType":"YulLiteral","src":"9390:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9375:3:65","nodeType":"YulIdentifier","src":"9375:3:65"},"nativeSrc":"9375:18:65","nodeType":"YulFunctionCall","src":"9375:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9367:4:65","nodeType":"YulIdentifier","src":"9367:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9414:9:65","nodeType":"YulIdentifier","src":"9414:9:65"},{"kind":"number","nativeSrc":"9425:1:65","nodeType":"YulLiteral","src":"9425:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9410:3:65","nodeType":"YulIdentifier","src":"9410:3:65"},"nativeSrc":"9410:17:65","nodeType":"YulFunctionCall","src":"9410:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9433:4:65","nodeType":"YulIdentifier","src":"9433:4:65"},{"name":"headStart","nativeSrc":"9439:9:65","nodeType":"YulIdentifier","src":"9439:9:65"}],"functionName":{"name":"sub","nativeSrc":"9429:3:65","nodeType":"YulIdentifier","src":"9429:3:65"},"nativeSrc":"9429:20:65","nodeType":"YulFunctionCall","src":"9429:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9403:6:65","nodeType":"YulIdentifier","src":"9403:6:65"},"nativeSrc":"9403:47:65","nodeType":"YulFunctionCall","src":"9403:47:65"},"nativeSrc":"9403:47:65","nodeType":"YulExpressionStatement","src":"9403:47:65"},{"nativeSrc":"9459:139:65","nodeType":"YulAssignment","src":"9459:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9593:4:65","nodeType":"YulIdentifier","src":"9593:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack","nativeSrc":"9467:124:65","nodeType":"YulIdentifier","src":"9467:124:65"},"nativeSrc":"9467:131:65","nodeType":"YulFunctionCall","src":"9467:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9459:4:65","nodeType":"YulIdentifier","src":"9459:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9186:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9337:9:65","nodeType":"YulTypedName","src":"9337:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9352:4:65","nodeType":"YulTypedName","src":"9352:4:65","type":""}],"src":"9186:419:65"},{"body":{"nativeSrc":"9676:53:65","nodeType":"YulBlock","src":"9676:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9693:3:65","nodeType":"YulIdentifier","src":"9693:3:65"},{"arguments":[{"name":"value","nativeSrc":"9716:5:65","nodeType":"YulIdentifier","src":"9716:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"9698:17:65","nodeType":"YulIdentifier","src":"9698:17:65"},"nativeSrc":"9698:24:65","nodeType":"YulFunctionCall","src":"9698:24:65"}],"functionName":{"name":"mstore","nativeSrc":"9686:6:65","nodeType":"YulIdentifier","src":"9686:6:65"},"nativeSrc":"9686:37:65","nodeType":"YulFunctionCall","src":"9686:37:65"},"nativeSrc":"9686:37:65","nodeType":"YulExpressionStatement","src":"9686:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9611:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9664:5:65","nodeType":"YulTypedName","src":"9664:5:65","type":""},{"name":"pos","nativeSrc":"9671:3:65","nodeType":"YulTypedName","src":"9671:3:65","type":""}],"src":"9611:118:65"},{"body":{"nativeSrc":"9783:54:65","nodeType":"YulBlock","src":"9783:54:65","statements":[{"nativeSrc":"9793:38:65","nodeType":"YulAssignment","src":"9793:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9811:5:65","nodeType":"YulIdentifier","src":"9811:5:65"},{"kind":"number","nativeSrc":"9818:2:65","nodeType":"YulLiteral","src":"9818:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9807:3:65","nodeType":"YulIdentifier","src":"9807:3:65"},"nativeSrc":"9807:14:65","nodeType":"YulFunctionCall","src":"9807:14:65"},{"arguments":[{"kind":"number","nativeSrc":"9827:2:65","nodeType":"YulLiteral","src":"9827:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9823:3:65","nodeType":"YulIdentifier","src":"9823:3:65"},"nativeSrc":"9823:7:65","nodeType":"YulFunctionCall","src":"9823:7:65"}],"functionName":{"name":"and","nativeSrc":"9803:3:65","nodeType":"YulIdentifier","src":"9803:3:65"},"nativeSrc":"9803:28:65","nodeType":"YulFunctionCall","src":"9803:28:65"},"variableNames":[{"name":"result","nativeSrc":"9793:6:65","nodeType":"YulIdentifier","src":"9793:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9735:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9766:5:65","nodeType":"YulTypedName","src":"9766:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9776:6:65","nodeType":"YulTypedName","src":"9776:6:65","type":""}],"src":"9735:102:65"},{"body":{"nativeSrc":"9969:215:65","nodeType":"YulBlock","src":"9969:215:65","statements":[{"nativeSrc":"9979:78:65","nodeType":"YulAssignment","src":"9979:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"10045:3:65","nodeType":"YulIdentifier","src":"10045:3:65"},{"name":"length","nativeSrc":"10050:6:65","nodeType":"YulIdentifier","src":"10050:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9986:58:65","nodeType":"YulIdentifier","src":"9986:58:65"},"nativeSrc":"9986:71:65","nodeType":"YulFunctionCall","src":"9986:71:65"},"variableNames":[{"name":"pos","nativeSrc":"9979:3:65","nodeType":"YulIdentifier","src":"9979:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"10104:5:65","nodeType":"YulIdentifier","src":"10104:5:65"},{"name":"pos","nativeSrc":"10111:3:65","nodeType":"YulIdentifier","src":"10111:3:65"},{"name":"length","nativeSrc":"10116:6:65","nodeType":"YulIdentifier","src":"10116:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"10067:36:65","nodeType":"YulIdentifier","src":"10067:36:65"},"nativeSrc":"10067:56:65","nodeType":"YulFunctionCall","src":"10067:56:65"},"nativeSrc":"10067:56:65","nodeType":"YulExpressionStatement","src":"10067:56:65"},{"nativeSrc":"10132:46:65","nodeType":"YulAssignment","src":"10132:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"10143:3:65","nodeType":"YulIdentifier","src":"10143:3:65"},{"arguments":[{"name":"length","nativeSrc":"10170:6:65","nodeType":"YulIdentifier","src":"10170:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10148:21:65","nodeType":"YulIdentifier","src":"10148:21:65"},"nativeSrc":"10148:29:65","nodeType":"YulFunctionCall","src":"10148:29:65"}],"functionName":{"name":"add","nativeSrc":"10139:3:65","nodeType":"YulIdentifier","src":"10139:3:65"},"nativeSrc":"10139:39:65","nodeType":"YulFunctionCall","src":"10139:39:65"},"variableNames":[{"name":"end","nativeSrc":"10132:3:65","nodeType":"YulIdentifier","src":"10132:3:65"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9867:317:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"9942:5:65","nodeType":"YulTypedName","src":"9942:5:65","type":""},{"name":"length","nativeSrc":"9949:6:65","nodeType":"YulTypedName","src":"9949:6:65","type":""},{"name":"pos","nativeSrc":"9957:3:65","nodeType":"YulTypedName","src":"9957:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9965:3:65","nodeType":"YulTypedName","src":"9965:3:65","type":""}],"src":"9867:317:65"},{"body":{"nativeSrc":"10374:369:65","nodeType":"YulBlock","src":"10374:369:65","statements":[{"nativeSrc":"10384:26:65","nodeType":"YulAssignment","src":"10384:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10396:9:65","nodeType":"YulIdentifier","src":"10396:9:65"},{"kind":"number","nativeSrc":"10407:2:65","nodeType":"YulLiteral","src":"10407:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10392:3:65","nodeType":"YulIdentifier","src":"10392:3:65"},"nativeSrc":"10392:18:65","nodeType":"YulFunctionCall","src":"10392:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10384:4:65","nodeType":"YulIdentifier","src":"10384:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10464:6:65","nodeType":"YulIdentifier","src":"10464:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"10477:9:65","nodeType":"YulIdentifier","src":"10477:9:65"},{"kind":"number","nativeSrc":"10488:1:65","nodeType":"YulLiteral","src":"10488:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10473:3:65","nodeType":"YulIdentifier","src":"10473:3:65"},"nativeSrc":"10473:17:65","nodeType":"YulFunctionCall","src":"10473:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10420:43:65","nodeType":"YulIdentifier","src":"10420:43:65"},"nativeSrc":"10420:71:65","nodeType":"YulFunctionCall","src":"10420:71:65"},"nativeSrc":"10420:71:65","nodeType":"YulExpressionStatement","src":"10420:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"10545:6:65","nodeType":"YulIdentifier","src":"10545:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"10558:9:65","nodeType":"YulIdentifier","src":"10558:9:65"},{"kind":"number","nativeSrc":"10569:2:65","nodeType":"YulLiteral","src":"10569:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10554:3:65","nodeType":"YulIdentifier","src":"10554:3:65"},"nativeSrc":"10554:18:65","nodeType":"YulFunctionCall","src":"10554:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10501:43:65","nodeType":"YulIdentifier","src":"10501:43:65"},"nativeSrc":"10501:72:65","nodeType":"YulFunctionCall","src":"10501:72:65"},"nativeSrc":"10501:72:65","nodeType":"YulExpressionStatement","src":"10501:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10594:9:65","nodeType":"YulIdentifier","src":"10594:9:65"},{"kind":"number","nativeSrc":"10605:2:65","nodeType":"YulLiteral","src":"10605:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10590:3:65","nodeType":"YulIdentifier","src":"10590:3:65"},"nativeSrc":"10590:18:65","nodeType":"YulFunctionCall","src":"10590:18:65"},{"arguments":[{"name":"tail","nativeSrc":"10614:4:65","nodeType":"YulIdentifier","src":"10614:4:65"},{"name":"headStart","nativeSrc":"10620:9:65","nodeType":"YulIdentifier","src":"10620:9:65"}],"functionName":{"name":"sub","nativeSrc":"10610:3:65","nodeType":"YulIdentifier","src":"10610:3:65"},"nativeSrc":"10610:20:65","nodeType":"YulFunctionCall","src":"10610:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10583:6:65","nodeType":"YulIdentifier","src":"10583:6:65"},"nativeSrc":"10583:48:65","nodeType":"YulFunctionCall","src":"10583:48:65"},"nativeSrc":"10583:48:65","nodeType":"YulExpressionStatement","src":"10583:48:65"},{"nativeSrc":"10640:96:65","nodeType":"YulAssignment","src":"10640:96:65","value":{"arguments":[{"name":"value2","nativeSrc":"10714:6:65","nodeType":"YulIdentifier","src":"10714:6:65"},{"name":"value3","nativeSrc":"10722:6:65","nodeType":"YulIdentifier","src":"10722:6:65"},{"name":"tail","nativeSrc":"10731:4:65","nodeType":"YulIdentifier","src":"10731:4:65"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10648:65:65","nodeType":"YulIdentifier","src":"10648:65:65"},"nativeSrc":"10648:88:65","nodeType":"YulFunctionCall","src":"10648:88:65"},"variableNames":[{"name":"tail","nativeSrc":"10640:4:65","nodeType":"YulIdentifier","src":"10640:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10190:553:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10322:9:65","nodeType":"YulTypedName","src":"10322:9:65","type":""},{"name":"value3","nativeSrc":"10334:6:65","nodeType":"YulTypedName","src":"10334:6:65","type":""},{"name":"value2","nativeSrc":"10342:6:65","nodeType":"YulTypedName","src":"10342:6:65","type":""},{"name":"value1","nativeSrc":"10350:6:65","nodeType":"YulTypedName","src":"10350:6:65","type":""},{"name":"value0","nativeSrc":"10358:6:65","nodeType":"YulTypedName","src":"10358:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10369:4:65","nodeType":"YulTypedName","src":"10369:4:65","type":""}],"src":"10190:553:65"},{"body":{"nativeSrc":"10855:67:65","nodeType":"YulBlock","src":"10855:67:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10877:6:65","nodeType":"YulIdentifier","src":"10877:6:65"},{"kind":"number","nativeSrc":"10885:1:65","nodeType":"YulLiteral","src":"10885:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10873:3:65","nodeType":"YulIdentifier","src":"10873:3:65"},"nativeSrc":"10873:14:65","nodeType":"YulFunctionCall","src":"10873:14:65"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nativeSrc":"10889:25:65","nodeType":"YulLiteral","src":"10889:25:65","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nativeSrc":"10866:6:65","nodeType":"YulIdentifier","src":"10866:6:65"},"nativeSrc":"10866:49:65","nodeType":"YulFunctionCall","src":"10866:49:65"},"nativeSrc":"10866:49:65","nodeType":"YulExpressionStatement","src":"10866:49:65"}]},"name":"store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","nativeSrc":"10749:173:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10847:6:65","nodeType":"YulTypedName","src":"10847:6:65","type":""}],"src":"10749:173:65"},{"body":{"nativeSrc":"11092:238:65","nodeType":"YulBlock","src":"11092:238:65","statements":[{"nativeSrc":"11102:92:65","nodeType":"YulAssignment","src":"11102:92:65","value":{"arguments":[{"name":"pos","nativeSrc":"11186:3:65","nodeType":"YulIdentifier","src":"11186:3:65"},{"kind":"number","nativeSrc":"11191:2:65","nodeType":"YulLiteral","src":"11191:2:65","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11109:76:65","nodeType":"YulIdentifier","src":"11109:76:65"},"nativeSrc":"11109:85:65","nodeType":"YulFunctionCall","src":"11109:85:65"},"variableNames":[{"name":"pos","nativeSrc":"11102:3:65","nodeType":"YulIdentifier","src":"11102:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11292:3:65","nodeType":"YulIdentifier","src":"11292:3:65"}],"functionName":{"name":"store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","nativeSrc":"11203:88:65","nodeType":"YulIdentifier","src":"11203:88:65"},"nativeSrc":"11203:93:65","nodeType":"YulFunctionCall","src":"11203:93:65"},"nativeSrc":"11203:93:65","nodeType":"YulExpressionStatement","src":"11203:93:65"},{"nativeSrc":"11305:19:65","nodeType":"YulAssignment","src":"11305:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"11316:3:65","nodeType":"YulIdentifier","src":"11316:3:65"},{"kind":"number","nativeSrc":"11321:2:65","nodeType":"YulLiteral","src":"11321:2:65","type":"","value":"23"}],"functionName":{"name":"add","nativeSrc":"11312:3:65","nodeType":"YulIdentifier","src":"11312:3:65"},"nativeSrc":"11312:12:65","nodeType":"YulFunctionCall","src":"11312:12:65"},"variableNames":[{"name":"end","nativeSrc":"11305:3:65","nodeType":"YulIdentifier","src":"11305:3:65"}]}]},"name":"abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10928:402:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11080:3:65","nodeType":"YulTypedName","src":"11080:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11088:3:65","nodeType":"YulTypedName","src":"11088:3:65","type":""}],"src":"10928:402:65"},{"body":{"nativeSrc":"11395:40:65","nodeType":"YulBlock","src":"11395:40:65","statements":[{"nativeSrc":"11406:22:65","nodeType":"YulAssignment","src":"11406:22:65","value":{"arguments":[{"name":"value","nativeSrc":"11422:5:65","nodeType":"YulIdentifier","src":"11422:5:65"}],"functionName":{"name":"mload","nativeSrc":"11416:5:65","nodeType":"YulIdentifier","src":"11416:5:65"},"nativeSrc":"11416:12:65","nodeType":"YulFunctionCall","src":"11416:12:65"},"variableNames":[{"name":"length","nativeSrc":"11406:6:65","nodeType":"YulIdentifier","src":"11406:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"11336:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11378:5:65","nodeType":"YulTypedName","src":"11378:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11388:6:65","nodeType":"YulTypedName","src":"11388:6:65","type":""}],"src":"11336:99:65"},{"body":{"nativeSrc":"11503:186:65","nodeType":"YulBlock","src":"11503:186:65","statements":[{"nativeSrc":"11514:10:65","nodeType":"YulVariableDeclaration","src":"11514:10:65","value":{"kind":"number","nativeSrc":"11523:1:65","nodeType":"YulLiteral","src":"11523:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11518:1:65","nodeType":"YulTypedName","src":"11518:1:65","type":""}]},{"body":{"nativeSrc":"11583:63:65","nodeType":"YulBlock","src":"11583:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11608:3:65","nodeType":"YulIdentifier","src":"11608:3:65"},{"name":"i","nativeSrc":"11613:1:65","nodeType":"YulIdentifier","src":"11613:1:65"}],"functionName":{"name":"add","nativeSrc":"11604:3:65","nodeType":"YulIdentifier","src":"11604:3:65"},"nativeSrc":"11604:11:65","nodeType":"YulFunctionCall","src":"11604:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11627:3:65","nodeType":"YulIdentifier","src":"11627:3:65"},{"name":"i","nativeSrc":"11632:1:65","nodeType":"YulIdentifier","src":"11632:1:65"}],"functionName":{"name":"add","nativeSrc":"11623:3:65","nodeType":"YulIdentifier","src":"11623:3:65"},"nativeSrc":"11623:11:65","nodeType":"YulFunctionCall","src":"11623:11:65"}],"functionName":{"name":"mload","nativeSrc":"11617:5:65","nodeType":"YulIdentifier","src":"11617:5:65"},"nativeSrc":"11617:18:65","nodeType":"YulFunctionCall","src":"11617:18:65"}],"functionName":{"name":"mstore","nativeSrc":"11597:6:65","nodeType":"YulIdentifier","src":"11597:6:65"},"nativeSrc":"11597:39:65","nodeType":"YulFunctionCall","src":"11597:39:65"},"nativeSrc":"11597:39:65","nodeType":"YulExpressionStatement","src":"11597:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11544:1:65","nodeType":"YulIdentifier","src":"11544:1:65"},{"name":"length","nativeSrc":"11547:6:65","nodeType":"YulIdentifier","src":"11547:6:65"}],"functionName":{"name":"lt","nativeSrc":"11541:2:65","nodeType":"YulIdentifier","src":"11541:2:65"},"nativeSrc":"11541:13:65","nodeType":"YulFunctionCall","src":"11541:13:65"},"nativeSrc":"11533:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"11555:19:65","nodeType":"YulBlock","src":"11555:19:65","statements":[{"nativeSrc":"11557:15:65","nodeType":"YulAssignment","src":"11557:15:65","value":{"arguments":[{"name":"i","nativeSrc":"11566:1:65","nodeType":"YulIdentifier","src":"11566:1:65"},{"kind":"number","nativeSrc":"11569:2:65","nodeType":"YulLiteral","src":"11569:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11562:3:65","nodeType":"YulIdentifier","src":"11562:3:65"},"nativeSrc":"11562:10:65","nodeType":"YulFunctionCall","src":"11562:10:65"},"variableNames":[{"name":"i","nativeSrc":"11557:1:65","nodeType":"YulIdentifier","src":"11557:1:65"}]}]},"pre":{"nativeSrc":"11537:3:65","nodeType":"YulBlock","src":"11537:3:65","statements":[]},"src":"11533:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11666:3:65","nodeType":"YulIdentifier","src":"11666:3:65"},{"name":"length","nativeSrc":"11671:6:65","nodeType":"YulIdentifier","src":"11671:6:65"}],"functionName":{"name":"add","nativeSrc":"11662:3:65","nodeType":"YulIdentifier","src":"11662:3:65"},"nativeSrc":"11662:16:65","nodeType":"YulFunctionCall","src":"11662:16:65"},{"kind":"number","nativeSrc":"11680:1:65","nodeType":"YulLiteral","src":"11680:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11655:6:65","nodeType":"YulIdentifier","src":"11655:6:65"},"nativeSrc":"11655:27:65","nodeType":"YulFunctionCall","src":"11655:27:65"},"nativeSrc":"11655:27:65","nodeType":"YulExpressionStatement","src":"11655:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11441:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11485:3:65","nodeType":"YulTypedName","src":"11485:3:65","type":""},{"name":"dst","nativeSrc":"11490:3:65","nodeType":"YulTypedName","src":"11490:3:65","type":""},{"name":"length","nativeSrc":"11495:6:65","nodeType":"YulTypedName","src":"11495:6:65","type":""}],"src":"11441:248:65"},{"body":{"nativeSrc":"11805:280:65","nodeType":"YulBlock","src":"11805:280:65","statements":[{"nativeSrc":"11815:53:65","nodeType":"YulVariableDeclaration","src":"11815:53:65","value":{"arguments":[{"name":"value","nativeSrc":"11862:5:65","nodeType":"YulIdentifier","src":"11862:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11829:32:65","nodeType":"YulIdentifier","src":"11829:32:65"},"nativeSrc":"11829:39:65","nodeType":"YulFunctionCall","src":"11829:39:65"},"variables":[{"name":"length","nativeSrc":"11819:6:65","nodeType":"YulTypedName","src":"11819:6:65","type":""}]},{"nativeSrc":"11877:96:65","nodeType":"YulAssignment","src":"11877:96:65","value":{"arguments":[{"name":"pos","nativeSrc":"11961:3:65","nodeType":"YulIdentifier","src":"11961:3:65"},{"name":"length","nativeSrc":"11966:6:65","nodeType":"YulIdentifier","src":"11966:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11884:76:65","nodeType":"YulIdentifier","src":"11884:76:65"},"nativeSrc":"11884:89:65","nodeType":"YulFunctionCall","src":"11884:89:65"},"variableNames":[{"name":"pos","nativeSrc":"11877:3:65","nodeType":"YulIdentifier","src":"11877:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12021:5:65","nodeType":"YulIdentifier","src":"12021:5:65"},{"kind":"number","nativeSrc":"12028:4:65","nodeType":"YulLiteral","src":"12028:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12017:3:65","nodeType":"YulIdentifier","src":"12017:3:65"},"nativeSrc":"12017:16:65","nodeType":"YulFunctionCall","src":"12017:16:65"},{"name":"pos","nativeSrc":"12035:3:65","nodeType":"YulIdentifier","src":"12035:3:65"},{"name":"length","nativeSrc":"12040:6:65","nodeType":"YulIdentifier","src":"12040:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11982:34:65","nodeType":"YulIdentifier","src":"11982:34:65"},"nativeSrc":"11982:65:65","nodeType":"YulFunctionCall","src":"11982:65:65"},"nativeSrc":"11982:65:65","nodeType":"YulExpressionStatement","src":"11982:65:65"},{"nativeSrc":"12056:23:65","nodeType":"YulAssignment","src":"12056:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"12067:3:65","nodeType":"YulIdentifier","src":"12067:3:65"},{"name":"length","nativeSrc":"12072:6:65","nodeType":"YulIdentifier","src":"12072:6:65"}],"functionName":{"name":"add","nativeSrc":"12063:3:65","nodeType":"YulIdentifier","src":"12063:3:65"},"nativeSrc":"12063:16:65","nodeType":"YulFunctionCall","src":"12063:16:65"},"variableNames":[{"name":"end","nativeSrc":"12056:3:65","nodeType":"YulIdentifier","src":"12056:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11695:390:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11786:5:65","nodeType":"YulTypedName","src":"11786:5:65","type":""},{"name":"pos","nativeSrc":"11793:3:65","nodeType":"YulTypedName","src":"11793:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11801:3:65","nodeType":"YulTypedName","src":"11801:3:65","type":""}],"src":"11695:390:65"},{"body":{"nativeSrc":"12197:61:65","nodeType":"YulBlock","src":"12197:61:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12219:6:65","nodeType":"YulIdentifier","src":"12219:6:65"},{"kind":"number","nativeSrc":"12227:1:65","nodeType":"YulLiteral","src":"12227:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12215:3:65","nodeType":"YulIdentifier","src":"12215:3:65"},"nativeSrc":"12215:14:65","nodeType":"YulFunctionCall","src":"12215:14:65"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nativeSrc":"12231:19:65","nodeType":"YulLiteral","src":"12231:19:65","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nativeSrc":"12208:6:65","nodeType":"YulIdentifier","src":"12208:6:65"},"nativeSrc":"12208:43:65","nodeType":"YulFunctionCall","src":"12208:43:65"},"nativeSrc":"12208:43:65","nodeType":"YulExpressionStatement","src":"12208:43:65"}]},"name":"store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","nativeSrc":"12091:167:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12189:6:65","nodeType":"YulTypedName","src":"12189:6:65","type":""}],"src":"12091:167:65"},{"body":{"nativeSrc":"12428:238:65","nodeType":"YulBlock","src":"12428:238:65","statements":[{"nativeSrc":"12438:92:65","nodeType":"YulAssignment","src":"12438:92:65","value":{"arguments":[{"name":"pos","nativeSrc":"12522:3:65","nodeType":"YulIdentifier","src":"12522:3:65"},{"kind":"number","nativeSrc":"12527:2:65","nodeType":"YulLiteral","src":"12527:2:65","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12445:76:65","nodeType":"YulIdentifier","src":"12445:76:65"},"nativeSrc":"12445:85:65","nodeType":"YulFunctionCall","src":"12445:85:65"},"variableNames":[{"name":"pos","nativeSrc":"12438:3:65","nodeType":"YulIdentifier","src":"12438:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12628:3:65","nodeType":"YulIdentifier","src":"12628:3:65"}],"functionName":{"name":"store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","nativeSrc":"12539:88:65","nodeType":"YulIdentifier","src":"12539:88:65"},"nativeSrc":"12539:93:65","nodeType":"YulFunctionCall","src":"12539:93:65"},"nativeSrc":"12539:93:65","nodeType":"YulExpressionStatement","src":"12539:93:65"},{"nativeSrc":"12641:19:65","nodeType":"YulAssignment","src":"12641:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"12652:3:65","nodeType":"YulIdentifier","src":"12652:3:65"},{"kind":"number","nativeSrc":"12657:2:65","nodeType":"YulLiteral","src":"12657:2:65","type":"","value":"17"}],"functionName":{"name":"add","nativeSrc":"12648:3:65","nodeType":"YulIdentifier","src":"12648:3:65"},"nativeSrc":"12648:12:65","nodeType":"YulFunctionCall","src":"12648:12:65"},"variableNames":[{"name":"end","nativeSrc":"12641:3:65","nodeType":"YulIdentifier","src":"12641:3:65"}]}]},"name":"abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12264:402:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12416:3:65","nodeType":"YulTypedName","src":"12416:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12424:3:65","nodeType":"YulTypedName","src":"12424:3:65","type":""}],"src":"12264:402:65"},{"body":{"nativeSrc":"13058:581:65","nodeType":"YulBlock","src":"13058:581:65","statements":[{"nativeSrc":"13069:155:65","nodeType":"YulAssignment","src":"13069:155:65","value":{"arguments":[{"name":"pos","nativeSrc":"13220:3:65","nodeType":"YulIdentifier","src":"13220:3:65"}],"functionName":{"name":"abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"13076:142:65","nodeType":"YulIdentifier","src":"13076:142:65"},"nativeSrc":"13076:148:65","nodeType":"YulFunctionCall","src":"13076:148:65"},"variableNames":[{"name":"pos","nativeSrc":"13069:3:65","nodeType":"YulIdentifier","src":"13069:3:65"}]},{"nativeSrc":"13234:102:65","nodeType":"YulAssignment","src":"13234:102:65","value":{"arguments":[{"name":"value0","nativeSrc":"13323:6:65","nodeType":"YulIdentifier","src":"13323:6:65"},{"name":"pos","nativeSrc":"13332:3:65","nodeType":"YulIdentifier","src":"13332:3:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"13241:81:65","nodeType":"YulIdentifier","src":"13241:81:65"},"nativeSrc":"13241:95:65","nodeType":"YulFunctionCall","src":"13241:95:65"},"variableNames":[{"name":"pos","nativeSrc":"13234:3:65","nodeType":"YulIdentifier","src":"13234:3:65"}]},{"nativeSrc":"13346:155:65","nodeType":"YulAssignment","src":"13346:155:65","value":{"arguments":[{"name":"pos","nativeSrc":"13497:3:65","nodeType":"YulIdentifier","src":"13497:3:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"13353:142:65","nodeType":"YulIdentifier","src":"13353:142:65"},"nativeSrc":"13353:148:65","nodeType":"YulFunctionCall","src":"13353:148:65"},"variableNames":[{"name":"pos","nativeSrc":"13346:3:65","nodeType":"YulIdentifier","src":"13346:3:65"}]},{"nativeSrc":"13511:102:65","nodeType":"YulAssignment","src":"13511:102:65","value":{"arguments":[{"name":"value1","nativeSrc":"13600:6:65","nodeType":"YulIdentifier","src":"13600:6:65"},{"name":"pos","nativeSrc":"13609:3:65","nodeType":"YulIdentifier","src":"13609:3:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"13518:81:65","nodeType":"YulIdentifier","src":"13518:81:65"},"nativeSrc":"13518:95:65","nodeType":"YulFunctionCall","src":"13518:95:65"},"variableNames":[{"name":"pos","nativeSrc":"13511:3:65","nodeType":"YulIdentifier","src":"13511:3:65"}]},{"nativeSrc":"13623:10:65","nodeType":"YulAssignment","src":"13623:10:65","value":{"name":"pos","nativeSrc":"13630:3:65","nodeType":"YulIdentifier","src":"13630:3:65"},"variableNames":[{"name":"end","nativeSrc":"13623:3:65","nodeType":"YulIdentifier","src":"13623:3:65"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12672:967:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13029:3:65","nodeType":"YulTypedName","src":"13029:3:65","type":""},{"name":"value1","nativeSrc":"13035:6:65","nodeType":"YulTypedName","src":"13035:6:65","type":""},{"name":"value0","nativeSrc":"13043:6:65","nodeType":"YulTypedName","src":"13043:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13054:3:65","nodeType":"YulTypedName","src":"13054:3:65","type":""}],"src":"12672:967:65"},{"body":{"nativeSrc":"13737:285:65","nodeType":"YulBlock","src":"13737:285:65","statements":[{"nativeSrc":"13747:53:65","nodeType":"YulVariableDeclaration","src":"13747:53:65","value":{"arguments":[{"name":"value","nativeSrc":"13794:5:65","nodeType":"YulIdentifier","src":"13794:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"13761:32:65","nodeType":"YulIdentifier","src":"13761:32:65"},"nativeSrc":"13761:39:65","nodeType":"YulFunctionCall","src":"13761:39:65"},"variables":[{"name":"length","nativeSrc":"13751:6:65","nodeType":"YulTypedName","src":"13751:6:65","type":""}]},{"nativeSrc":"13809:78:65","nodeType":"YulAssignment","src":"13809:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"13875:3:65","nodeType":"YulIdentifier","src":"13875:3:65"},{"name":"length","nativeSrc":"13880:6:65","nodeType":"YulIdentifier","src":"13880:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13816:58:65","nodeType":"YulIdentifier","src":"13816:58:65"},"nativeSrc":"13816:71:65","nodeType":"YulFunctionCall","src":"13816:71:65"},"variableNames":[{"name":"pos","nativeSrc":"13809:3:65","nodeType":"YulIdentifier","src":"13809:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13935:5:65","nodeType":"YulIdentifier","src":"13935:5:65"},{"kind":"number","nativeSrc":"13942:4:65","nodeType":"YulLiteral","src":"13942:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13931:3:65","nodeType":"YulIdentifier","src":"13931:3:65"},"nativeSrc":"13931:16:65","nodeType":"YulFunctionCall","src":"13931:16:65"},{"name":"pos","nativeSrc":"13949:3:65","nodeType":"YulIdentifier","src":"13949:3:65"},{"name":"length","nativeSrc":"13954:6:65","nodeType":"YulIdentifier","src":"13954:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13896:34:65","nodeType":"YulIdentifier","src":"13896:34:65"},"nativeSrc":"13896:65:65","nodeType":"YulFunctionCall","src":"13896:65:65"},"nativeSrc":"13896:65:65","nodeType":"YulExpressionStatement","src":"13896:65:65"},{"nativeSrc":"13970:46:65","nodeType":"YulAssignment","src":"13970:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"13981:3:65","nodeType":"YulIdentifier","src":"13981:3:65"},{"arguments":[{"name":"length","nativeSrc":"14008:6:65","nodeType":"YulIdentifier","src":"14008:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13986:21:65","nodeType":"YulIdentifier","src":"13986:21:65"},"nativeSrc":"13986:29:65","nodeType":"YulFunctionCall","src":"13986:29:65"}],"functionName":{"name":"add","nativeSrc":"13977:3:65","nodeType":"YulIdentifier","src":"13977:3:65"},"nativeSrc":"13977:39:65","nodeType":"YulFunctionCall","src":"13977:39:65"},"variableNames":[{"name":"end","nativeSrc":"13970:3:65","nodeType":"YulIdentifier","src":"13970:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13645:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13718:5:65","nodeType":"YulTypedName","src":"13718:5:65","type":""},{"name":"pos","nativeSrc":"13725:3:65","nodeType":"YulTypedName","src":"13725:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13733:3:65","nodeType":"YulTypedName","src":"13733:3:65","type":""}],"src":"13645:377:65"},{"body":{"nativeSrc":"14146:195:65","nodeType":"YulBlock","src":"14146:195:65","statements":[{"nativeSrc":"14156:26:65","nodeType":"YulAssignment","src":"14156:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14168:9:65","nodeType":"YulIdentifier","src":"14168:9:65"},{"kind":"number","nativeSrc":"14179:2:65","nodeType":"YulLiteral","src":"14179:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14164:3:65","nodeType":"YulIdentifier","src":"14164:3:65"},"nativeSrc":"14164:18:65","nodeType":"YulFunctionCall","src":"14164:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14156:4:65","nodeType":"YulIdentifier","src":"14156:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14203:9:65","nodeType":"YulIdentifier","src":"14203:9:65"},{"kind":"number","nativeSrc":"14214:1:65","nodeType":"YulLiteral","src":"14214:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14199:3:65","nodeType":"YulIdentifier","src":"14199:3:65"},"nativeSrc":"14199:17:65","nodeType":"YulFunctionCall","src":"14199:17:65"},{"arguments":[{"name":"tail","nativeSrc":"14222:4:65","nodeType":"YulIdentifier","src":"14222:4:65"},{"name":"headStart","nativeSrc":"14228:9:65","nodeType":"YulIdentifier","src":"14228:9:65"}],"functionName":{"name":"sub","nativeSrc":"14218:3:65","nodeType":"YulIdentifier","src":"14218:3:65"},"nativeSrc":"14218:20:65","nodeType":"YulFunctionCall","src":"14218:20:65"}],"functionName":{"name":"mstore","nativeSrc":"14192:6:65","nodeType":"YulIdentifier","src":"14192:6:65"},"nativeSrc":"14192:47:65","nodeType":"YulFunctionCall","src":"14192:47:65"},"nativeSrc":"14192:47:65","nodeType":"YulExpressionStatement","src":"14192:47:65"},{"nativeSrc":"14248:86:65","nodeType":"YulAssignment","src":"14248:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"14320:6:65","nodeType":"YulIdentifier","src":"14320:6:65"},{"name":"tail","nativeSrc":"14329:4:65","nodeType":"YulIdentifier","src":"14329:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"14256:63:65","nodeType":"YulIdentifier","src":"14256:63:65"},"nativeSrc":"14256:78:65","nodeType":"YulFunctionCall","src":"14256:78:65"},"variableNames":[{"name":"tail","nativeSrc":"14248:4:65","nodeType":"YulIdentifier","src":"14248:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14028:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14118:9:65","nodeType":"YulTypedName","src":"14118:9:65","type":""},{"name":"value0","nativeSrc":"14130:6:65","nodeType":"YulTypedName","src":"14130:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14141:4:65","nodeType":"YulTypedName","src":"14141:4:65","type":""}],"src":"14028:313:65"},{"body":{"nativeSrc":"14392:32:65","nodeType":"YulBlock","src":"14392:32:65","statements":[{"nativeSrc":"14402:16:65","nodeType":"YulAssignment","src":"14402:16:65","value":{"name":"value","nativeSrc":"14413:5:65","nodeType":"YulIdentifier","src":"14413:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"14402:7:65","nodeType":"YulIdentifier","src":"14402:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"14347:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14374:5:65","nodeType":"YulTypedName","src":"14374:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14384:7:65","nodeType":"YulTypedName","src":"14384:7:65","type":""}],"src":"14347:77:65"},{"body":{"nativeSrc":"14458:152:65","nodeType":"YulBlock","src":"14458:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14475:1:65","nodeType":"YulLiteral","src":"14475:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"14478:77:65","nodeType":"YulLiteral","src":"14478:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"14468:6:65","nodeType":"YulIdentifier","src":"14468:6:65"},"nativeSrc":"14468:88:65","nodeType":"YulFunctionCall","src":"14468:88:65"},"nativeSrc":"14468:88:65","nodeType":"YulExpressionStatement","src":"14468:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14572:1:65","nodeType":"YulLiteral","src":"14572:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"14575:4:65","nodeType":"YulLiteral","src":"14575:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"14565:6:65","nodeType":"YulIdentifier","src":"14565:6:65"},"nativeSrc":"14565:15:65","nodeType":"YulFunctionCall","src":"14565:15:65"},"nativeSrc":"14565:15:65","nodeType":"YulExpressionStatement","src":"14565:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14596:1:65","nodeType":"YulLiteral","src":"14596:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"14599:4:65","nodeType":"YulLiteral","src":"14599:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"14589:6:65","nodeType":"YulIdentifier","src":"14589:6:65"},"nativeSrc":"14589:15:65","nodeType":"YulFunctionCall","src":"14589:15:65"},"nativeSrc":"14589:15:65","nodeType":"YulExpressionStatement","src":"14589:15:65"}]},"name":"panic_error_0x11","nativeSrc":"14430:180:65","nodeType":"YulFunctionDefinition","src":"14430:180:65"},{"body":{"nativeSrc":"14664:362:65","nodeType":"YulBlock","src":"14664:362:65","statements":[{"nativeSrc":"14674:25:65","nodeType":"YulAssignment","src":"14674:25:65","value":{"arguments":[{"name":"x","nativeSrc":"14697:1:65","nodeType":"YulIdentifier","src":"14697:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"14679:17:65","nodeType":"YulIdentifier","src":"14679:17:65"},"nativeSrc":"14679:20:65","nodeType":"YulFunctionCall","src":"14679:20:65"},"variableNames":[{"name":"x","nativeSrc":"14674:1:65","nodeType":"YulIdentifier","src":"14674:1:65"}]},{"nativeSrc":"14708:25:65","nodeType":"YulAssignment","src":"14708:25:65","value":{"arguments":[{"name":"y","nativeSrc":"14731:1:65","nodeType":"YulIdentifier","src":"14731:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"14713:17:65","nodeType":"YulIdentifier","src":"14713:17:65"},"nativeSrc":"14713:20:65","nodeType":"YulFunctionCall","src":"14713:20:65"},"variableNames":[{"name":"y","nativeSrc":"14708:1:65","nodeType":"YulIdentifier","src":"14708:1:65"}]},{"nativeSrc":"14742:28:65","nodeType":"YulVariableDeclaration","src":"14742:28:65","value":{"arguments":[{"name":"x","nativeSrc":"14765:1:65","nodeType":"YulIdentifier","src":"14765:1:65"},{"name":"y","nativeSrc":"14768:1:65","nodeType":"YulIdentifier","src":"14768:1:65"}],"functionName":{"name":"mul","nativeSrc":"14761:3:65","nodeType":"YulIdentifier","src":"14761:3:65"},"nativeSrc":"14761:9:65","nodeType":"YulFunctionCall","src":"14761:9:65"},"variables":[{"name":"product_raw","nativeSrc":"14746:11:65","nodeType":"YulTypedName","src":"14746:11:65","type":""}]},{"nativeSrc":"14779:41:65","nodeType":"YulAssignment","src":"14779:41:65","value":{"arguments":[{"name":"product_raw","nativeSrc":"14808:11:65","nodeType":"YulIdentifier","src":"14808:11:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"14790:17:65","nodeType":"YulIdentifier","src":"14790:17:65"},"nativeSrc":"14790:30:65","nodeType":"YulFunctionCall","src":"14790:30:65"},"variableNames":[{"name":"product","nativeSrc":"14779:7:65","nodeType":"YulIdentifier","src":"14779:7:65"}]},{"body":{"nativeSrc":"14997:22:65","nodeType":"YulBlock","src":"14997:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"14999:16:65","nodeType":"YulIdentifier","src":"14999:16:65"},"nativeSrc":"14999:18:65","nodeType":"YulFunctionCall","src":"14999:18:65"},"nativeSrc":"14999:18:65","nodeType":"YulExpressionStatement","src":"14999:18:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"14930:1:65","nodeType":"YulIdentifier","src":"14930:1:65"}],"functionName":{"name":"iszero","nativeSrc":"14923:6:65","nodeType":"YulIdentifier","src":"14923:6:65"},"nativeSrc":"14923:9:65","nodeType":"YulFunctionCall","src":"14923:9:65"},{"arguments":[{"name":"y","nativeSrc":"14953:1:65","nodeType":"YulIdentifier","src":"14953:1:65"},{"arguments":[{"name":"product","nativeSrc":"14960:7:65","nodeType":"YulIdentifier","src":"14960:7:65"},{"name":"x","nativeSrc":"14969:1:65","nodeType":"YulIdentifier","src":"14969:1:65"}],"functionName":{"name":"div","nativeSrc":"14956:3:65","nodeType":"YulIdentifier","src":"14956:3:65"},"nativeSrc":"14956:15:65","nodeType":"YulFunctionCall","src":"14956:15:65"}],"functionName":{"name":"eq","nativeSrc":"14950:2:65","nodeType":"YulIdentifier","src":"14950:2:65"},"nativeSrc":"14950:22:65","nodeType":"YulFunctionCall","src":"14950:22:65"}],"functionName":{"name":"or","nativeSrc":"14903:2:65","nodeType":"YulIdentifier","src":"14903:2:65"},"nativeSrc":"14903:83:65","nodeType":"YulFunctionCall","src":"14903:83:65"}],"functionName":{"name":"iszero","nativeSrc":"14883:6:65","nodeType":"YulIdentifier","src":"14883:6:65"},"nativeSrc":"14883:113:65","nodeType":"YulFunctionCall","src":"14883:113:65"},"nativeSrc":"14880:139:65","nodeType":"YulIf","src":"14880:139:65"}]},"name":"checked_mul_t_uint256","nativeSrc":"14616:410:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"14647:1:65","nodeType":"YulTypedName","src":"14647:1:65","type":""},{"name":"y","nativeSrc":"14650:1:65","nodeType":"YulTypedName","src":"14650:1:65","type":""}],"returnVariables":[{"name":"product","nativeSrc":"14656:7:65","nodeType":"YulTypedName","src":"14656:7:65","type":""}],"src":"14616:410:65"},{"body":{"nativeSrc":"15076:147:65","nodeType":"YulBlock","src":"15076:147:65","statements":[{"nativeSrc":"15086:25:65","nodeType":"YulAssignment","src":"15086:25:65","value":{"arguments":[{"name":"x","nativeSrc":"15109:1:65","nodeType":"YulIdentifier","src":"15109:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"15091:17:65","nodeType":"YulIdentifier","src":"15091:17:65"},"nativeSrc":"15091:20:65","nodeType":"YulFunctionCall","src":"15091:20:65"},"variableNames":[{"name":"x","nativeSrc":"15086:1:65","nodeType":"YulIdentifier","src":"15086:1:65"}]},{"nativeSrc":"15120:25:65","nodeType":"YulAssignment","src":"15120:25:65","value":{"arguments":[{"name":"y","nativeSrc":"15143:1:65","nodeType":"YulIdentifier","src":"15143:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"15125:17:65","nodeType":"YulIdentifier","src":"15125:17:65"},"nativeSrc":"15125:20:65","nodeType":"YulFunctionCall","src":"15125:20:65"},"variableNames":[{"name":"y","nativeSrc":"15120:1:65","nodeType":"YulIdentifier","src":"15120:1:65"}]},{"nativeSrc":"15154:16:65","nodeType":"YulAssignment","src":"15154:16:65","value":{"arguments":[{"name":"x","nativeSrc":"15165:1:65","nodeType":"YulIdentifier","src":"15165:1:65"},{"name":"y","nativeSrc":"15168:1:65","nodeType":"YulIdentifier","src":"15168:1:65"}],"functionName":{"name":"add","nativeSrc":"15161:3:65","nodeType":"YulIdentifier","src":"15161:3:65"},"nativeSrc":"15161:9:65","nodeType":"YulFunctionCall","src":"15161:9:65"},"variableNames":[{"name":"sum","nativeSrc":"15154:3:65","nodeType":"YulIdentifier","src":"15154:3:65"}]},{"body":{"nativeSrc":"15194:22:65","nodeType":"YulBlock","src":"15194:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15196:16:65","nodeType":"YulIdentifier","src":"15196:16:65"},"nativeSrc":"15196:18:65","nodeType":"YulFunctionCall","src":"15196:18:65"},"nativeSrc":"15196:18:65","nodeType":"YulExpressionStatement","src":"15196:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"15186:1:65","nodeType":"YulIdentifier","src":"15186:1:65"},{"name":"sum","nativeSrc":"15189:3:65","nodeType":"YulIdentifier","src":"15189:3:65"}],"functionName":{"name":"gt","nativeSrc":"15183:2:65","nodeType":"YulIdentifier","src":"15183:2:65"},"nativeSrc":"15183:10:65","nodeType":"YulFunctionCall","src":"15183:10:65"},"nativeSrc":"15180:36:65","nodeType":"YulIf","src":"15180:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"15032:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"15063:1:65","nodeType":"YulTypedName","src":"15063:1:65","type":""},{"name":"y","nativeSrc":"15066:1:65","nodeType":"YulTypedName","src":"15066:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"15072:3:65","nodeType":"YulTypedName","src":"15072:3:65","type":""}],"src":"15032:191:65"},{"body":{"nativeSrc":"15257:152:65","nodeType":"YulBlock","src":"15257:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15274:1:65","nodeType":"YulLiteral","src":"15274:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15277:77:65","nodeType":"YulLiteral","src":"15277:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15267:6:65","nodeType":"YulIdentifier","src":"15267:6:65"},"nativeSrc":"15267:88:65","nodeType":"YulFunctionCall","src":"15267:88:65"},"nativeSrc":"15267:88:65","nodeType":"YulExpressionStatement","src":"15267:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15371:1:65","nodeType":"YulLiteral","src":"15371:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"15374:4:65","nodeType":"YulLiteral","src":"15374:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"15364:6:65","nodeType":"YulIdentifier","src":"15364:6:65"},"nativeSrc":"15364:15:65","nodeType":"YulFunctionCall","src":"15364:15:65"},"nativeSrc":"15364:15:65","nodeType":"YulExpressionStatement","src":"15364:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15395:1:65","nodeType":"YulLiteral","src":"15395:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15398:4:65","nodeType":"YulLiteral","src":"15398:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15388:6:65","nodeType":"YulIdentifier","src":"15388:6:65"},"nativeSrc":"15388:15:65","nodeType":"YulFunctionCall","src":"15388:15:65"},"nativeSrc":"15388:15:65","nodeType":"YulExpressionStatement","src":"15388:15:65"}]},"name":"panic_error_0x41","nativeSrc":"15229:180:65","nodeType":"YulFunctionDefinition","src":"15229:180:65"},{"body":{"nativeSrc":"15443:152:65","nodeType":"YulBlock","src":"15443:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15460:1:65","nodeType":"YulLiteral","src":"15460:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15463:77:65","nodeType":"YulLiteral","src":"15463:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15453:6:65","nodeType":"YulIdentifier","src":"15453:6:65"},"nativeSrc":"15453:88:65","nodeType":"YulFunctionCall","src":"15453:88:65"},"nativeSrc":"15453:88:65","nodeType":"YulExpressionStatement","src":"15453:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15557:1:65","nodeType":"YulLiteral","src":"15557:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"15560:4:65","nodeType":"YulLiteral","src":"15560:4:65","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"15550:6:65","nodeType":"YulIdentifier","src":"15550:6:65"},"nativeSrc":"15550:15:65","nodeType":"YulFunctionCall","src":"15550:15:65"},"nativeSrc":"15550:15:65","nodeType":"YulExpressionStatement","src":"15550:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15581:1:65","nodeType":"YulLiteral","src":"15581:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15584:4:65","nodeType":"YulLiteral","src":"15584:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15574:6:65","nodeType":"YulIdentifier","src":"15574:6:65"},"nativeSrc":"15574:15:65","nodeType":"YulFunctionCall","src":"15574:15:65"},"nativeSrc":"15574:15:65","nodeType":"YulExpressionStatement","src":"15574:15:65"}]},"name":"panic_error_0x32","nativeSrc":"15415:180:65","nodeType":"YulFunctionDefinition","src":"15415:180:65"},{"body":{"nativeSrc":"15644:128:65","nodeType":"YulBlock","src":"15644:128:65","statements":[{"nativeSrc":"15654:33:65","nodeType":"YulAssignment","src":"15654:33:65","value":{"arguments":[{"name":"value","nativeSrc":"15681:5:65","nodeType":"YulIdentifier","src":"15681:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"15663:17:65","nodeType":"YulIdentifier","src":"15663:17:65"},"nativeSrc":"15663:24:65","nodeType":"YulFunctionCall","src":"15663:24:65"},"variableNames":[{"name":"value","nativeSrc":"15654:5:65","nodeType":"YulIdentifier","src":"15654:5:65"}]},{"body":{"nativeSrc":"15715:22:65","nodeType":"YulBlock","src":"15715:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"15717:16:65","nodeType":"YulIdentifier","src":"15717:16:65"},"nativeSrc":"15717:18:65","nodeType":"YulFunctionCall","src":"15717:18:65"},"nativeSrc":"15717:18:65","nodeType":"YulExpressionStatement","src":"15717:18:65"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"15702:5:65","nodeType":"YulIdentifier","src":"15702:5:65"},{"kind":"number","nativeSrc":"15709:4:65","nodeType":"YulLiteral","src":"15709:4:65","type":"","value":"0x00"}],"functionName":{"name":"eq","nativeSrc":"15699:2:65","nodeType":"YulIdentifier","src":"15699:2:65"},"nativeSrc":"15699:15:65","nodeType":"YulFunctionCall","src":"15699:15:65"},"nativeSrc":"15696:41:65","nodeType":"YulIf","src":"15696:41:65"},{"nativeSrc":"15746:20:65","nodeType":"YulAssignment","src":"15746:20:65","value":{"arguments":[{"name":"value","nativeSrc":"15757:5:65","nodeType":"YulIdentifier","src":"15757:5:65"},{"kind":"number","nativeSrc":"15764:1:65","nodeType":"YulLiteral","src":"15764:1:65","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15753:3:65","nodeType":"YulIdentifier","src":"15753:3:65"},"nativeSrc":"15753:13:65","nodeType":"YulFunctionCall","src":"15753:13:65"},"variableNames":[{"name":"ret","nativeSrc":"15746:3:65","nodeType":"YulIdentifier","src":"15746:3:65"}]}]},"name":"decrement_t_uint256","nativeSrc":"15601:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15630:5:65","nodeType":"YulTypedName","src":"15630:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"15640:3:65","nodeType":"YulTypedName","src":"15640:3:65","type":""}],"src":"15601:171:65"},{"body":{"nativeSrc":"15884:76:65","nodeType":"YulBlock","src":"15884:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15906:6:65","nodeType":"YulIdentifier","src":"15906:6:65"},{"kind":"number","nativeSrc":"15914:1:65","nodeType":"YulLiteral","src":"15914:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15902:3:65","nodeType":"YulIdentifier","src":"15902:3:65"},"nativeSrc":"15902:14:65","nodeType":"YulFunctionCall","src":"15902:14:65"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nativeSrc":"15918:34:65","nodeType":"YulLiteral","src":"15918:34:65","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nativeSrc":"15895:6:65","nodeType":"YulIdentifier","src":"15895:6:65"},"nativeSrc":"15895:58:65","nodeType":"YulFunctionCall","src":"15895:58:65"},"nativeSrc":"15895:58:65","nodeType":"YulExpressionStatement","src":"15895:58:65"}]},"name":"store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","nativeSrc":"15778:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15876:6:65","nodeType":"YulTypedName","src":"15876:6:65","type":""}],"src":"15778:182:65"},{"body":{"nativeSrc":"16112:220:65","nodeType":"YulBlock","src":"16112:220:65","statements":[{"nativeSrc":"16122:74:65","nodeType":"YulAssignment","src":"16122:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"16188:3:65","nodeType":"YulIdentifier","src":"16188:3:65"},{"kind":"number","nativeSrc":"16193:2:65","nodeType":"YulLiteral","src":"16193:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16129:58:65","nodeType":"YulIdentifier","src":"16129:58:65"},"nativeSrc":"16129:67:65","nodeType":"YulFunctionCall","src":"16129:67:65"},"variableNames":[{"name":"pos","nativeSrc":"16122:3:65","nodeType":"YulIdentifier","src":"16122:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16294:3:65","nodeType":"YulIdentifier","src":"16294:3:65"}],"functionName":{"name":"store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","nativeSrc":"16205:88:65","nodeType":"YulIdentifier","src":"16205:88:65"},"nativeSrc":"16205:93:65","nodeType":"YulFunctionCall","src":"16205:93:65"},"nativeSrc":"16205:93:65","nodeType":"YulExpressionStatement","src":"16205:93:65"},{"nativeSrc":"16307:19:65","nodeType":"YulAssignment","src":"16307:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"16318:3:65","nodeType":"YulIdentifier","src":"16318:3:65"},{"kind":"number","nativeSrc":"16323:2:65","nodeType":"YulLiteral","src":"16323:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16314:3:65","nodeType":"YulIdentifier","src":"16314:3:65"},"nativeSrc":"16314:12:65","nodeType":"YulFunctionCall","src":"16314:12:65"},"variableNames":[{"name":"end","nativeSrc":"16307:3:65","nodeType":"YulIdentifier","src":"16307:3:65"}]}]},"name":"abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack","nativeSrc":"15966:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16100:3:65","nodeType":"YulTypedName","src":"16100:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16108:3:65","nodeType":"YulTypedName","src":"16108:3:65","type":""}],"src":"15966:366:65"},{"body":{"nativeSrc":"16509:248:65","nodeType":"YulBlock","src":"16509:248:65","statements":[{"nativeSrc":"16519:26:65","nodeType":"YulAssignment","src":"16519:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16531:9:65","nodeType":"YulIdentifier","src":"16531:9:65"},{"kind":"number","nativeSrc":"16542:2:65","nodeType":"YulLiteral","src":"16542:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16527:3:65","nodeType":"YulIdentifier","src":"16527:3:65"},"nativeSrc":"16527:18:65","nodeType":"YulFunctionCall","src":"16527:18:65"},"variableNames":[{"name":"tail","nativeSrc":"16519:4:65","nodeType":"YulIdentifier","src":"16519:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16566:9:65","nodeType":"YulIdentifier","src":"16566:9:65"},{"kind":"number","nativeSrc":"16577:1:65","nodeType":"YulLiteral","src":"16577:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16562:3:65","nodeType":"YulIdentifier","src":"16562:3:65"},"nativeSrc":"16562:17:65","nodeType":"YulFunctionCall","src":"16562:17:65"},{"arguments":[{"name":"tail","nativeSrc":"16585:4:65","nodeType":"YulIdentifier","src":"16585:4:65"},{"name":"headStart","nativeSrc":"16591:9:65","nodeType":"YulIdentifier","src":"16591:9:65"}],"functionName":{"name":"sub","nativeSrc":"16581:3:65","nodeType":"YulIdentifier","src":"16581:3:65"},"nativeSrc":"16581:20:65","nodeType":"YulFunctionCall","src":"16581:20:65"}],"functionName":{"name":"mstore","nativeSrc":"16555:6:65","nodeType":"YulIdentifier","src":"16555:6:65"},"nativeSrc":"16555:47:65","nodeType":"YulFunctionCall","src":"16555:47:65"},"nativeSrc":"16555:47:65","nodeType":"YulExpressionStatement","src":"16555:47:65"},{"nativeSrc":"16611:139:65","nodeType":"YulAssignment","src":"16611:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"16745:4:65","nodeType":"YulIdentifier","src":"16745:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack","nativeSrc":"16619:124:65","nodeType":"YulIdentifier","src":"16619:124:65"},"nativeSrc":"16619:131:65","nodeType":"YulFunctionCall","src":"16619:131:65"},"variableNames":[{"name":"tail","nativeSrc":"16611:4:65","nodeType":"YulIdentifier","src":"16611:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16338:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16489:9:65","nodeType":"YulTypedName","src":"16489:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16504:4:65","nodeType":"YulTypedName","src":"16504:4:65","type":""}],"src":"16338:419:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_bytes4(value) -> cleaned {\n        cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n    }\n\n    function validator_revert_t_bytes4(value) {\n        if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes4(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes4(value)\n    }\n\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // string\n    function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2, value3 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    // string -> string\n    function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 20)\n\n        pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, value2,  pos)\n\n        end := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(memPtr) {\n\n        mstore(add(memPtr, 0), \"AccessControl: can only renounce\")\n\n        mstore(add(memPtr, 32), \" roles for self\")\n\n    }\n\n    function abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n        store_literal_in_memory_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    // string -> string\n    function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value2, value3,  tail)\n\n    }\n\n    function store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(memPtr) {\n\n        mstore(add(memPtr, 0), \"AccessControl: account \")\n\n    }\n\n    function abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 23)\n        store_literal_in_memory_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874(pos)\n        end := add(pos, 23)\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(memPtr) {\n\n        mstore(add(memPtr, 0), \" is missing role \")\n\n    }\n\n    function abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n        store_literal_in_memory_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69(pos)\n        end := add(pos, 17)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        pos := abi_encode_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function decrement_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0x00) { panic_error_0x11() }\n        ret := sub(value, 1)\n    }\n\n    function store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(memPtr) {\n\n        mstore(add(memPtr, 0), \"Strings: hex length insufficient\")\n\n    }\n\n    function abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c8063545f7a3211610071578063545f7a3214610142578063584f6b601461015557806382bfd0f01461016857806391d148541461017b578063a217fddf1461018e578063d547741f1461019657600080fd5b806301ffc9a7146100ae57806318c5e8ab146100d7578063248a9ca3146100ea5780632f2ff15d1461011a57806336568abe1461012f575b600080fd5b6100c16100bc366004610741565b6101a9565b6040516100ce9190610774565b60405180910390f35b6100c16100e53660046107f9565b6101e0565b61010d6100f8366004610866565b60009081526020819052604090206001015490565b6040516100ce919061088d565b61012d61012836600461089b565b61026c565b005b61012d61013d36600461089b565b610296565b61012d6101503660046108d8565b6102d5565b61012d6101633660046108d8565b610352565b6100c1610176366004610948565b6103c0565b6100c161018936600461089b565b610404565b61010d600081565b61012d6101a436600461089b565b61042d565b60006001600160e01b03198216637965db0b60e01b14806101da57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000803384846040516020016101f8939291906109fd565b60405160208183030381529060405280519060200120905061021a8186610404565b15610229576001915050610265565b6000848460405160200161023f939291906109fd565b6040516020818303038152906040528051906020012090506102618186610404565b9150505b9392505050565b60008281526020819052604090206001015461028781610452565b610291838361045f565b505050565b6001600160a01b03811633146102c75760405162461bcd60e51b81526004016102be90610a23565b60405180910390fd5b6102d182826104e3565b5050565b60008484846040516020016102ec939291906109fd565b60405160208183030381529060405280519060200120905061030e818361042d565b7f55426a61e90ac7d7d1fc886b67b420ade8c8b535e68d655394bc271e3a12b8e2828686866040516103439493929190610aa8565b60405180910390a15050505050565b6000848484604051602001610369939291906109fd565b60405160208183030381529060405280519060200120905061038b818361026c565b7f69c5ce2d658fea352a2464f87ffbe1f09746c918a91da0994044c3767d641b3f828686866040516103439493929190610aa8565b6000808484846040516020016103d8939291906109fd565b6040516020818303038152906040528051906020012090506103fa8187610404565b9695505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526020819052604090206001015461044881610452565b61029183836104e3565b61045c8133610548565b50565b6104698282610404565b6102d1576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561049f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6104ed8282610404565b156102d1576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6105528282610404565b6102d15761055f816105a1565b61056a8360206105b3565b60405160200161057b929190610b1c565b60408051601f198184030181529082905262461bcd60e51b82526102be91600401610ba2565b60606101da6001600160a01b03831660145b606060006105c2836002610bc9565b6105cd906002610be8565b67ffffffffffffffff8111156105e5576105e5610bfb565b6040519080825280601f01601f19166020018201604052801561060f576020820181803683370190505b509050600360fc1b8160008151811061062a5761062a610c11565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061065957610659610c11565b60200101906001600160f81b031916908160001a905350600061067d846002610bc9565b610688906001610be8565b90505b6001811115610700576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106106bc576106bc610c11565b1a60f81b8282815181106106d2576106d2610c11565b60200101906001600160f81b031916908160001a90535060049490941c936106f981610c27565b905061068b565b5083156102655760405162461bcd60e51b81526004016102be90610c3e565b6001600160e01b031981165b811461045c57600080fd5b80356101da8161071f565b60006020828403121561075657610756600080fd5b60006107628484610736565b949350505050565b8015155b82525050565b602081016101da828461076a565b60006001600160a01b0382166101da565b61072b81610782565b80356101da81610793565b60008083601f8401126107bc576107bc600080fd5b50813567ffffffffffffffff8111156107d7576107d7600080fd5b6020830191508360018202830111156107f2576107f2600080fd5b9250929050565b60008060006040848603121561081157610811600080fd5b600061081d868661079c565b935050602084013567ffffffffffffffff81111561083d5761083d600080fd5b610849868287016107a7565b92509250509250925092565b8061072b565b80356101da81610855565b60006020828403121561087b5761087b600080fd5b6000610762848461085b565b8061076e565b602081016101da8284610887565b600080604083850312156108b1576108b1600080fd5b60006108bd858561085b565b92505060206108ce8582860161079c565b9150509250929050565b600080600080606085870312156108f1576108f1600080fd5b60006108fd878761079c565b945050602085013567ffffffffffffffff81111561091d5761091d600080fd5b610929878288016107a7565b9350935050604061093c8782880161079c565b91505092959194509250565b6000806000806060858703121561096157610961600080fd5b600061096d878761079c565b945050602061097e8782880161079c565b935050604085013567ffffffffffffffff81111561099e5761099e600080fd5b6109aa878288016107a7565b95989497509550505050565b60006101da8260601b90565b60006101da826109b6565b61076e6109d982610782565b6109c2565b82818337506000910152565b60006109f78385846109de565b50500190565b6000610a0982866109cd565b601482019150610a1a8284866109ea565b95945050505050565b602080825281016101da81602f81527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560208201526e103937b632b9903337b91039b2b63360891b604082015260600190565b61076e81610782565b8183526000602084019350610a958385846109de565b601f19601f8401165b9093019392505050565b60608101610ab68287610a76565b610ac36020830186610a76565b81810360408301526103fa818486610a7f565b60005b83811015610af1578181015183820152602001610ad9565b50506000910152565b6000610b04825190565b610b12818560208601610ad6565b9290920192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526017016000610b4e8285610afa565b7001034b99036b4b9b9b4b733903937b6329607d1b815260110191506107628284610afa565b6000610b7e825190565b808452602084019350610b95818560208601610ad6565b601f19601f820116610a9e565b602080825281016102658184610b74565b634e487b7160e01b600052601160045260246000fd5b818102808215838204851417610be157610be1610bb3565b5092915050565b808201808211156101da576101da610bb3565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c3657610c36610bb3565b506000190190565b60208082528181019081527f537472696e67733a20686578206c656e67746820696e73756666696369656e746040830152606082016101da56fea2646970667358221220ffa4ba0d362018555b8102c41db8f20059a5a67e7aa746efde005f86e05bdb6b64736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x545F7A32 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x545F7A32 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x584F6B60 EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x82BFD0F0 EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x17B JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x18C5E8AB EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x12F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x1A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x774 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC1 PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x7F9 JUMP JUMPDEST PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x10D PUSH2 0xF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x866 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x12D PUSH2 0x128 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x26C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12D PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x296 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D8 JUMP JUMPDEST PUSH2 0x2D5 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x163 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D8 JUMP JUMPDEST PUSH2 0x352 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x176 CALLDATASIZE PUSH1 0x4 PUSH2 0x948 JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x189 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x404 JUMP JUMPDEST PUSH2 0x10D PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x12D PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x89B JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1DA JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1F8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x21A DUP2 DUP7 PUSH2 0x404 JUMP JUMPDEST ISZERO PUSH2 0x229 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x265 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x23F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x261 DUP2 DUP7 PUSH2 0x404 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x287 DUP2 PUSH2 0x452 JUMP JUMPDEST PUSH2 0x291 DUP4 DUP4 PUSH2 0x45F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x2C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BE SWAP1 PUSH2 0xA23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2D1 DUP3 DUP3 PUSH2 0x4E3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2EC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x30E DUP2 DUP4 PUSH2 0x42D JUMP JUMPDEST PUSH32 0x55426A61E90AC7D7D1FC886B67B420ADE8C8B535E68D655394BC271E3A12B8E2 DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x343 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x369 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x38B DUP2 DUP4 PUSH2 0x26C JUMP JUMPDEST PUSH32 0x69C5CE2D658FEA352A2464F87FFBE1F09746C918A91DA0994044C3767D641B3F DUP3 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x343 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xAA8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x9FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x3FA DUP2 DUP8 PUSH2 0x404 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x448 DUP2 PUSH2 0x452 JUMP JUMPDEST PUSH2 0x291 DUP4 DUP4 PUSH2 0x4E3 JUMP JUMPDEST PUSH2 0x45C DUP2 CALLER PUSH2 0x548 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x469 DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x49F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x4ED DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x552 DUP3 DUP3 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x2D1 JUMPI PUSH2 0x55F DUP2 PUSH2 0x5A1 JUMP JUMPDEST PUSH2 0x56A DUP4 PUSH1 0x20 PUSH2 0x5B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x57B SWAP3 SWAP2 SWAP1 PUSH2 0xB1C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x2BE SWAP2 PUSH1 0x4 ADD PUSH2 0xBA2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1DA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x5C2 DUP4 PUSH1 0x2 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x5CD SWAP1 PUSH1 0x2 PUSH2 0xBE8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E5 JUMPI PUSH2 0x5E5 PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x60F JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x62A JUMPI PUSH2 0x62A PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x659 JUMPI PUSH2 0x659 PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x67D DUP5 PUSH1 0x2 PUSH2 0xBC9 JUMP JUMPDEST PUSH2 0x688 SWAP1 PUSH1 0x1 PUSH2 0xBE8 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x700 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x6BC JUMPI PUSH2 0x6BC PUSH2 0xC11 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6D2 JUMPI PUSH2 0x6D2 PUSH2 0xC11 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x6F9 DUP2 PUSH2 0xC27 JUMP JUMPDEST SWAP1 POP PUSH2 0x68B JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x265 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BE SWAP1 PUSH2 0xC3E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x45C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x71F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x756 JUMPI PUSH2 0x756 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x762 DUP5 DUP5 PUSH2 0x736 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1DA DUP3 DUP5 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1DA JUMP JUMPDEST PUSH2 0x72B DUP2 PUSH2 0x782 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x793 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x7BC JUMPI PUSH2 0x7BC PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7D7 JUMPI PUSH2 0x7D7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F2 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x811 JUMPI PUSH2 0x811 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x81D DUP7 DUP7 PUSH2 0x79C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x83D JUMPI PUSH2 0x83D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x849 DUP7 DUP3 DUP8 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x72B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1DA DUP2 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x87B JUMPI PUSH2 0x87B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x762 DUP5 DUP5 PUSH2 0x85B JUMP JUMPDEST DUP1 PUSH2 0x76E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1DA DUP3 DUP5 PUSH2 0x887 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI PUSH2 0x8B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8BD DUP6 DUP6 PUSH2 0x85B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8CE DUP6 DUP3 DUP7 ADD PUSH2 0x79C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x8F1 JUMPI PUSH2 0x8F1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8FD DUP8 DUP8 PUSH2 0x79C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x91D JUMPI PUSH2 0x91D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x929 DUP8 DUP3 DUP9 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x93C DUP8 DUP3 DUP9 ADD PUSH2 0x79C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x961 JUMPI PUSH2 0x961 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x96D DUP8 DUP8 PUSH2 0x79C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x97E DUP8 DUP3 DUP9 ADD PUSH2 0x79C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x99E JUMPI PUSH2 0x99E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9AA DUP8 DUP3 DUP9 ADD PUSH2 0x7A7 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DA DUP3 PUSH2 0x9B6 JUMP JUMPDEST PUSH2 0x76E PUSH2 0x9D9 DUP3 PUSH2 0x782 JUMP JUMPDEST PUSH2 0x9C2 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F7 DUP4 DUP6 DUP5 PUSH2 0x9DE JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA09 DUP3 DUP7 PUSH2 0x9CD JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0xA1A DUP3 DUP5 DUP7 PUSH2 0x9EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1DA DUP2 PUSH1 0x2F DUP2 MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH2 0x76E DUP2 PUSH2 0x782 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xA95 DUP4 DUP6 DUP5 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0xAB6 DUP3 DUP8 PUSH2 0xA76 JUMP JUMPDEST PUSH2 0xAC3 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xA76 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3FA DUP2 DUP5 DUP7 PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAF1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xAD9 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB04 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB12 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD6 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD PUSH1 0x0 PUSH2 0xB4E DUP3 DUP6 PUSH2 0xAFA JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL DUP2 MSTORE PUSH1 0x11 ADD SWAP2 POP PUSH2 0x762 DUP3 DUP5 PUSH2 0xAFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB7E DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xB95 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAD6 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x265 DUP2 DUP5 PUSH2 0xB74 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0xBE1 JUMPI PUSH2 0xBE1 PUSH2 0xBB3 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1DA JUMPI PUSH2 0x1DA PUSH2 0xBB3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xC36 JUMPI PUSH2 0xC36 PUSH2 0xBB3 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x1DA JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT LOG4 0xBA 0xD CALLDATASIZE KECCAK256 XOR SSTORE JUMPDEST DUP2 MUL 0xC4 SAR 0xB8 CALLCODE STOP MSIZE 0xA5 0xA6 PUSH31 0x7AA746EFDE005F86E05BDB6B64736F6C634300081900330000000000000000 ","sourceMap":"2815:4310:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:19;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5898:389:35;;;;;;:::i;:::-;;:::i;4504:129:19:-;;;;;;:::i;:::-;4578:7;4604:12;;;;;;;;;;:22;;;;4504:129;;;;;;;;:::i;4929:145::-;;;;;;:::i;:::-;;:::i;:::-;;6038:214;;;;;;:::i;:::-;;:::i;5061:357:35:-;;;;;;:::i;:::-;;:::i;4278:324::-;;;;;;:::i;:::-;;:::i;6844:279::-;;;;;;:::i;:::-;;:::i;3021:145:19:-;;;;;;:::i;:::-;;:::i;2153:49::-;;2198:4;2153:49;;5354:147;;;;;;:::i;:::-;;:::i;2732:202::-;2817:4;-1:-1:-1;;;;;;2840:47:19;;-1:-1:-1;;;2840:47:19;;:87;;-1:-1:-1;;;;;;;;;;937:40:31;;;2891:36:19;2833:94;2732:202;-1:-1:-1;;2732:202:19:o;5898:389:35:-;5990:4;6006:12;6048:10;6060:11;;6031:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6021:52;;;;;;6006:67;;6088:22;6096:4;6102:7;6088;:22::i;:::-;6084:197;;;6133:4;6126:11;;;;;6084:197;6210:1;6214:11;;6185:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6175:52;;;;;;6168:59;;6248:22;6256:4;6262:7;6248;:22::i;:::-;6241:29;;;5898:389;;;;;;:::o;4929:145:19:-;4578:7;4604:12;;;;;;;;;;:22;;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;6038:214::-;-1:-1:-1;;;;;6133:23:19;;719:10:29;6133:23:19;6125:83;;;;-1:-1:-1;;;6125:83:19;;;;;;;:::i;:::-;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;5061:357:35:-;5217:12;5259:15;5276:11;;5242:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5232:57;;;;;;5217:72;;5299:33;5310:4;5316:15;5299:10;:33::i;:::-;5347:64;5365:15;5382;5399:11;;5347:64;;;;;;;;;:::i;:::-;;;;;;;;5207:211;5061:357;;;;:::o;4278:324::-;4402:12;4444:15;4461:11;;4427:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4417:57;;;;;;4402:72;;4484:32;4494:4;4500:15;4484:9;:32::i;:::-;4531:64;4549:15;4566;4583:11;;4531:64;;;;;;;;;:::i;6844:279::-;6989:4;7005:12;7047:15;7064:11;;7030:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7020:57;;;;;;7005:72;;7094:22;7102:4;7108:7;7094;:22::i;:::-;7087:29;6844:279;-1:-1:-1;;;;;;6844:279:35:o;3021:145:19:-;3107:4;3130:12;;;;;;;;;;;-1:-1:-1;;;;;3130:29:19;;;;;;;;;;;;;;;3021:145::o;5354:147::-;4578:7;4604:12;;;;;;;;;;:22;;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;3460:103::-:0;3526:30;3537:4;719:10:29;3526::19;:30::i;:::-;3460:103;:::o;7587:233::-;7670:22;7678:4;7684:7;7670;:22::i;:::-;7665:149;;7708:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7708:29:19;;;;;;;;;:36;;-1:-1:-1;;7708:36:19;7740:4;7708:36;;;7790:12;719:10:29;;640:96;7790:12:19;-1:-1:-1;;;;;7763:40:19;7781:7;-1:-1:-1;;;;;7763:40:19;7775:4;7763:40;;;;;;;;;;7587:233;;:::o;7991:234::-;8074:22;8082:4;8088:7;8074;:22::i;:::-;8070:149;;;8144:5;8112:12;;;;;;;;;;;-1:-1:-1;;;;;8112:29:19;;;;;;;;;;:37;;-1:-1:-1;;8112:37:19;;;8168:40;719:10:29;;8112:12:19;;8168:40;;8144:5;8168:40;7991:234;;:::o;3844:479::-;3932:22;3940:4;3946:7;3932;:22::i;:::-;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:19;;;;;;;;;;-1:-1:-1;;;3970:336:19;;;;;;;:::i;2407:149:30:-;2465:13;2497:52;-1:-1:-1;;;;;2509:22:30;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:30;;1918:47;;-1:-1:-1;;;1975:6:30;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1975:15:30;;;;;;;;;-1:-1:-1;;;2000:6:30;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2000:15:30;;;;;;;;-1:-1:-1;2030:9:30;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;-1:-1:-1;;;2105:5:30;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2084:33:30;;;;;;;;-1:-1:-1;2141:1:30;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:30;;2162:55;;;;-1:-1:-1;;;2162:55:30;;;;;;;:::i;489:120:65:-;-1:-1:-1;;;;;;399:78:65;;561:23;554:5;551:34;541:62;;599:1;596;589:12;615:137;685:20;;714:32;685:20;714:32;:::i;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;2815:4310:35;;;871:79:65;991:1;1016:52;1060:7;1040:9;1016:52;:::i;:::-;1006:62;758:327;-1:-1:-1;;;;758:327:65:o;1187:109::-;1161:13;;1154:21;1268;1263:3;1256:34;1187:109;;:::o;1302:210::-;1427:2;1412:18;;1440:65;1416:9;1478:6;1440:65;:::i;1650:96::-;1687:7;-1:-1:-1;;;;;1584:54:65;;1716:24;1518:126;1752:122;1825:24;1843:5;1825:24;:::i;1880:139::-;1951:20;;1980:33;1951:20;1980:33;:::i;2408:553::-;2466:8;2476:6;2526:3;2519:4;2511:6;2507:17;2503:27;2493:122;;2534:79;2815:4310:35;;;2534:79:65;-1:-1:-1;2634:20:65;;2677:18;2666:30;;2663:117;;;2699:79;2815:4310:35;;;2699:79:65;2813:4;2805:6;2801:17;2789:29;;2867:3;2859:4;2851:6;2847:17;2837:8;2833:32;2830:41;2827:128;;;2874:79;2815:4310:35;;;2874:79:65;2408:553;;;;;:::o;2967:674::-;3047:6;3055;3063;3112:2;3100:9;3091:7;3087:23;3083:32;3080:119;;;3118:79;2815:4310:35;;;3118:79:65;3238:1;3263:53;3308:7;3288:9;3263:53;:::i;:::-;3253:63;;3209:117;3393:2;3382:9;3378:18;3365:32;3424:18;3416:6;3413:30;3410:117;;;3446:79;2815:4310:35;;;3446:79:65;3559:65;3616:7;3607:6;3596:9;3592:22;3559:65;:::i;:::-;3541:83;;;;3336:298;2967:674;;;;;:::o;3730:122::-;3821:5;3803:24;3647:77;3858:139;3929:20;;3958:33;3929:20;3958:33;:::i;4003:329::-;4062:6;4111:2;4099:9;4090:7;4086:23;4082:32;4079:119;;;4117:79;2815:4310:35;;;4117:79:65;4237:1;4262:53;4307:7;4287:9;4262:53;:::i;4338:118::-;4443:5;4425:24;3647:77;4462:222;4593:2;4578:18;;4606:71;4582:9;4650:6;4606:71;:::i;4690:474::-;4758:6;4766;4815:2;4803:9;4794:7;4790:23;4786:32;4783:119;;;4821:79;2815:4310:35;;;4821:79:65;4941:1;4966:53;5011:7;4991:9;4966:53;:::i;:::-;4956:63;;4912:117;5068:2;5094:53;5139:7;5130:6;5119:9;5115:22;5094:53;:::i;:::-;5084:63;;5039:118;4690:474;;;;;:::o;5170:819::-;5259:6;5267;5275;5283;5332:2;5320:9;5311:7;5307:23;5303:32;5300:119;;;5338:79;2815:4310:35;;;5338:79:65;5458:1;5483:53;5528:7;5508:9;5483:53;:::i;:::-;5473:63;;5429:117;5613:2;5602:9;5598:18;5585:32;5644:18;5636:6;5633:30;5630:117;;;5666:79;2815:4310:35;;;5666:79:65;5779:65;5836:7;5827:6;5816:9;5812:22;5779:65;:::i;:::-;5761:83;;;;5556:298;5893:2;5919:53;5964:7;5955:6;5944:9;5940:22;5919:53;:::i;:::-;5909:63;;5864:118;5170:819;;;;;;;:::o;5995:::-;6084:6;6092;6100;6108;6157:2;6145:9;6136:7;6132:23;6128:32;6125:119;;;6163:79;2815:4310:35;;;6163:79:65;6283:1;6308:53;6353:7;6333:9;6308:53;:::i;:::-;6298:63;;6254:117;6410:2;6436:53;6481:7;6472:6;6461:9;6457:22;6436:53;:::i;:::-;6426:63;;6381:118;6566:2;6555:9;6551:18;6538:32;6597:18;6589:6;6586:30;6583:117;;;6619:79;2815:4310:35;;;6619:79:65;6732:65;6789:7;6780:6;6769:9;6765:22;6732:65;:::i;:::-;5995:819;;;;-1:-1:-1;6714:83:65;-1:-1:-1;;;;5995:819:65:o;6920:94::-;6959:7;6988:20;7002:5;6897:2;6893:14;;6820:94;7020:100;7059:7;7088:26;7108:5;7088:26;:::i;7126:157::-;7231:45;7251:24;7269:5;7251:24;:::i;:::-;7231:45;:::i;7443:148::-;7541:6;7536:3;7531;7518:30;-1:-1:-1;7582:1:65;7564:16;;7557:27;7443:148::o;7621:330::-;7737:3;7857:56;7906:6;7901:3;7894:5;7857:56;:::i;:::-;-1:-1:-1;;7929:16:65;;7621:330::o;7957:436::-;8127:3;8142:75;8213:3;8204:6;8142:75;:::i;:::-;8242:2;8237:3;8233:12;8226:19;;8262:105;8363:3;8354:6;8346;8262:105;:::i;:::-;8255:112;7957:436;-1:-1:-1;;;;;7957:436:65:o;9186:419::-;9390:2;9403:47;;;9375:18;;9467:131;9375:18;9041:2;8505:19;;8714:34;8557:4;8548:14;;8691:58;-1:-1:-1;;;8766:15:65;;;8759:42;9162:12;;;8814:366;9611:118;9698:24;9716:5;9698:24;:::i;9867:317::-;8505:19;;;9965:3;8557:4;8548:14;;9979:78;;10067:56;10116:6;10111:3;10104:5;10067:56;:::i;:::-;-1:-1:-1;;9827:2:65;9807:14;;9803:28;10148:29;10139:39;;;;9867:317;-1:-1:-1;;;9867:317:65:o;10190:553::-;10407:2;10392:18;;10420:71;10396:9;10464:6;10420:71;:::i;:::-;10501:72;10569:2;10558:9;10554:18;10545:6;10501:72;:::i;:::-;10620:9;10614:4;10610:20;10605:2;10594:9;10590:18;10583:48;10648:88;10731:4;10722:6;10714;10648:88;:::i;11441:248::-;11523:1;11533:113;11547:6;11544:1;11541:13;11533:113;;;11623:11;;;11617:18;11604:11;;;11597:39;11569:2;11562:10;11533:113;;;-1:-1:-1;;11680:1:65;11662:16;;11655:27;11441:248::o;11695:390::-;11801:3;11829:39;11862:5;11416:12;;11336:99;11829:39;11982:65;12040:6;12035:3;12028:4;12021:5;12017:16;11982:65;:::i;:::-;12063:16;;;;;11695:390;-1:-1:-1;;11695:390:65:o;12672:967::-;10889:25;10866:49;;11321:2;11312:12;13054:3;13241:95;11312:12;13323:6;13241:95;:::i;:::-;-1:-1:-1;;;12208:43:65;;12657:2;12648:12;;-1:-1:-1;13518:95:65;12648:12;13600:6;13518:95;:::i;13645:377::-;13733:3;13761:39;13794:5;11416:12;;11336:99;13761:39;8505:19;;;8557:4;8548:14;;13809:78;;13896:65;13954:6;13949:3;13942:4;13935:5;13931:16;13896:65;:::i;:::-;-1:-1:-1;;9827:2:65;9807:14;;9803:28;13986:29;9735:102;14028:313;14179:2;14192:47;;;14164:18;;14256:78;14164:18;14320:6;14256:78;:::i;14430:180::-;-1:-1:-1;;;14475:1:65;14468:88;14575:4;14572:1;14565:15;14599:4;14596:1;14589:15;14616:410;14761:9;;;;14923;;14956:15;;;14950:22;;14903:83;14880:139;;14999:18;;:::i;:::-;14664:362;14616:410;;;;:::o;15032:191::-;15161:9;;;15183:10;;;15180:36;;;15196:18;;:::i;15229:180::-;-1:-1:-1;;;15274:1:65;15267:88;15374:4;15371:1;15364:15;15398:4;15395:1;15388:15;15415:180;-1:-1:-1;;;15460:1:65;15453:88;15560:4;15557:1;15550:15;15584:4;15581:1;15574:15;15601:171;15640:3;15654:33;15696:41;;15717:18;;:::i;:::-;-1:-1:-1;;;15753:13:65;;15601:171::o;16338:419::-;16542:2;16555:47;;;16527:18;;;8505:19;;;15918:34;8548:14;;;15895:58;16314:12;;;16619:131;15966:366"},"gasEstimates":{"creation":{"codeDepositCost":"649200","executionCost":"29375","totalCost":"678575"},"external":{"DEFAULT_ADMIN_ROLE()":"360","getRoleAdmin(bytes32)":"infinite","giveCallPermission(address,string,address)":"infinite","grantRole(bytes32,address)":"infinite","hasPermission(address,address,string)":"infinite","hasRole(bytes32,address)":"infinite","isAllowedToCall(address,string)":"infinite","renounceRole(bytes32,address)":"infinite","revokeCallPermission(address,string,address)":"infinite","revokeRole(bytes32,address)":"infinite","supportsInterface(bytes4)":"infinite"}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","giveCallPermission(address,string,address)":"584f6b60","grantRole(bytes32,address)":"2f2ff15d","hasPermission(address,address,string)":"82bfd0f0","hasRole(bytes32,address)":"91d14854","isAllowedToCall(address,string)":"18c5e8ab","renounceRole(bytes32,address)":"36568abe","revokeCallPermission(address,string,address)":"545f7a32","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"PermissionGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"PermissionRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToPermit\",\"type\":\"address\"}],\"name\":\"giveCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"isAllowedToCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToRevoke\",\"type\":\"address\"}],\"name\":\"revokeCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"details\":\"This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\",\"events\":{\"PermissionGranted(address,address,string)\":{\"details\":\"If contract address is 0x000..0 this means that the account is a default admin of this function and can call any contract function with this signature\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"giveCallPermission(address,string,address)\":{\"custom:event\":\"Emits a {RoleGranted} and {PermissionGranted} events.\",\"details\":\"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLEif contractAddress is zero address, the account can access the specified function      on **any** contract managed by this ACL\",\"params\":{\"accountToPermit\":\"account that will be given access to the contract function\",\"contractAddress\":\"address of contract for which call permissions will be granted\",\"functionSig\":\"signature e.g. \\\"functionName(uint256,bool)\\\"\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasPermission(address,address,string)\":{\"details\":\"This function is used as a view function to check permissions rather than contract hook for access restriction check.\",\"params\":{\"account\":\"for which call permissions will be checked against\",\"contractAddress\":\"address of the restricted contract\",\"functionSig\":\"signature of the restricted function e.g. \\\"functionName(uint256,bool)\\\"\"},\"returns\":{\"_0\":\"false if the user account cannot call the particular contract function\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isAllowedToCall(address,string)\":{\"details\":\"Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\",\"params\":{\"account\":\"for which call permissions will be checked\",\"functionSig\":\"restricted function signature e.g. \\\"functionName(uint256,bool)\\\"\"},\"returns\":{\"_0\":\"false if the user account cannot call the particular contract function\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeCallPermission(address,string,address)\":{\"custom:event\":\"Emits {RoleRevoked} and {PermissionRevoked} events.\",\"details\":\"this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE \\t\\tMay emit a {RoleRevoked} event.\",\"params\":{\"contractAddress\":\"address of contract for which call permissions will be revoked\",\"functionSig\":\"signature e.g. \\\"functionName(uint256,bool)\\\"\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"AccessControlManager\",\"version\":1},\"userdoc\":{\"events\":{\"PermissionGranted(address,address,string)\":{\"notice\":\"Emitted when an account is given a permission to a certain contract function\"},\"PermissionRevoked(address,address,string)\":{\"notice\":\"Emitted when an account is revoked a permission to a certain contract function\"}},\"kind\":\"user\",\"methods\":{\"giveCallPermission(address,string,address)\":{\"notice\":\"Gives a function call permission to one single account\"},\"hasPermission(address,address,string)\":{\"notice\":\"Verifies if the given account can call a contract's guarded function\"},\"isAllowedToCall(address,string)\":{\"notice\":\"Verifies if the given account can call a contract's guarded function\"},\"revokeCallPermission(address,string,address)\":{\"notice\":\"Revokes an account's permission to a particular function call\"}},\"notice\":\"Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one account or list of accounts (EOA or Contract Accounts). The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol) inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol) contract as a base for role management logic. There are two role types: admin and granular permissions.  ## Granular Roles  Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which is guarded by ACM, calling `giveRolePermission` for account B do the following:  1. Compute `keccak256(contractFooAddress,functionSignatureBar)` 1. Add the computed role to the roles of account B 1. Account B now can call `ContractFoo.bar()`  ## Admin Roles  Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for contracts created by factories.  For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.  In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by ACM, not only contract A.  ## Protocol Integration  All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function. `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM: ``` contract Comptroller is [...] AccessControlledV8 { [...] function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external { _checkAccessAllowed(\\\"setCollateralFactor(address,uint256,uint256)\\\"); [...] } } ```\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol\":\"AccessControlManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n *     require(hasRole(MY_ROLE, msg.sender));\\n *     ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n    struct RoleData {\\n        mapping(address => bool) members;\\n        bytes32 adminRole;\\n    }\\n\\n    mapping(bytes32 => RoleData) private _roles;\\n\\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n    /**\\n     * @dev Modifier that checks that an account has a specific role. Reverts\\n     * with a standardized message including the required role.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     *\\n     * _Available since v4.1._\\n     */\\n    modifier onlyRole(bytes32 role) {\\n        _checkRole(role);\\n        _;\\n    }\\n\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n        return _roles[role].members[account];\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\\n     *\\n     * Format of the revert message is described in {_checkRole}.\\n     *\\n     * _Available since v4.6._\\n     */\\n    function _checkRole(bytes32 role) internal view virtual {\\n        _checkRole(role, _msgSender());\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `account` is missing `role`.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     */\\n    function _checkRole(bytes32 role, address account) internal view virtual {\\n        if (!hasRole(role, account)) {\\n            revert(\\n                string(\\n                    abi.encodePacked(\\n                        \\\"AccessControl: account \\\",\\n                        Strings.toHexString(account),\\n                        \\\" is missing role \\\",\\n                        Strings.toHexString(uint256(role), 32)\\n                    )\\n                )\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n        return _roles[role].adminRole;\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function renounceRole(bytes32 role, address account) public virtual override {\\n        require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event. Note that unlike {grantRole}, this function doesn't perform any\\n     * checks on the calling account.\\n     *\\n     * May emit a {RoleGranted} event.\\n     *\\n     * [WARNING]\\n     * ====\\n     * This function should only be called from the constructor when setting\\n     * up the initial roles for the system.\\n     *\\n     * Using this function in any other way is effectively circumventing the admin\\n     * system imposed by {AccessControl}.\\n     * ====\\n     *\\n     * NOTE: This function is deprecated in favor of {_grantRole}.\\n     */\\n    function _setupRole(bytes32 role, address account) internal virtual {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Sets `adminRole` as ``role``'s admin role.\\n     *\\n     * Emits a {RoleAdminChanged} event.\\n     */\\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n        bytes32 previousAdminRole = getRoleAdmin(role);\\n        _roles[role].adminRole = adminRole;\\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function _grantRole(bytes32 role, address account) internal virtual {\\n        if (!hasRole(role, account)) {\\n            _roles[role].members[account] = true;\\n            emit RoleGranted(role, account, _msgSender());\\n        }\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function _revokeRole(bytes32 role, address account) internal virtual {\\n        if (hasRole(role, account)) {\\n            _roles[role].members[account] = false;\\n            emit RoleRevoked(role, account, _msgSender());\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport \\\"@openzeppelin/contracts/access/AccessControl.sol\\\";\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlManager\\n * @author Venus\\n * @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\\n * @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\\n * account or list of accounts (EOA or Contract Accounts).\\n *\\n * The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\\n * inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\\n * contract as a base for role management logic. There are two role types: admin and granular permissions.\\n * \\n * ## Granular Roles\\n * \\n * Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\\n * is guarded by ACM, calling `giveRolePermission` for account B do the following:\\n * \\n * 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\\n * 1. Add the computed role to the roles of account B\\n * 1. Account B now can call `ContractFoo.bar()`\\n * \\n * ## Admin Roles\\n * \\n * Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\\n * contracts created by factories.\\n * \\n * For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\\n * \\n * In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\\n * ACM, not only contract A.\\n * \\n * ## Protocol Integration\\n * \\n * All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\\n * `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\\n * `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\\n\\n```\\n    contract Comptroller is [...] AccessControlledV8 {\\n        [...]\\n        function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\\n            _checkAccessAllowed(\\\"setCollateralFactor(address,uint256,uint256)\\\");\\n            [...]\\n        }\\n    }\\n```\\n */\\ncontract AccessControlManager is AccessControl, IAccessControlManagerV8 {\\n    /// @notice Emitted when an account is given a permission to a certain contract function\\n    /// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\\n    /// can call any contract function with this signature\\n    event PermissionGranted(address account, address contractAddress, string functionSig);\\n\\n    /// @notice Emitted when an account is revoked a permission to a certain contract function\\n    event PermissionRevoked(address account, address contractAddress, string functionSig);\\n\\n    constructor() {\\n        // Grant the contract deployer the default admin role: it will be able\\n        // to grant and revoke any roles\\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\\n    }\\n\\n    /**\\n     * @notice Gives a function call permission to one single account\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * @param contractAddress address of contract for which call permissions will be granted\\n     * @dev if contractAddress is zero address, the account can access the specified function\\n     *      on **any** contract managed by this ACL\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @param accountToPermit account that will be given access to the contract function\\n     * @custom:event Emits a {RoleGranted} and {PermissionGranted} events.\\n     */\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        grantRole(role, accountToPermit);\\n        emit PermissionGranted(accountToPermit, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Revokes an account's permission to a particular function call\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * \\t\\tMay emit a {RoleRevoked} event.\\n     * @param contractAddress address of contract for which call permissions will be revoked\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.\\n     */\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        revokeRole(role, accountToRevoke);\\n        emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\\n     * @param account for which call permissions will be checked\\n     * @param functionSig restricted function signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     *\\n     */\\n    function isAllowedToCall(address account, string calldata functionSig) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));\\n\\n        if (hasRole(role, account)) {\\n            return true;\\n        } else {\\n            role = keccak256(abi.encodePacked(address(0), functionSig));\\n            return hasRole(role, account);\\n        }\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\\n     * @param account for which call permissions will be checked against\\n     * @param contractAddress address of the restricted contract\\n     * @param functionSig signature of the restricted function e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     */\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        return hasRole(role, account);\\n    }\\n}\\n\",\"keccak256\":\"0x9cf1fe49aecbf49434d4a04c3bd25c1a103356c999d335774216da17a3a152a8\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5011,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)5006_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)5006_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)5006_storage"},"t_struct(RoleData)5006_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":5003,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":5005,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol:AccessControlManager","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}},"userdoc":{"events":{"PermissionGranted(address,address,string)":{"notice":"Emitted when an account is given a permission to a certain contract function"},"PermissionRevoked(address,address,string)":{"notice":"Emitted when an account is revoked a permission to a certain contract function"}},"kind":"user","methods":{"giveCallPermission(address,string,address)":{"notice":"Gives a function call permission to one single account"},"hasPermission(address,address,string)":{"notice":"Verifies if the given account can call a contract's guarded function"},"isAllowedToCall(address,string)":{"notice":"Verifies if the given account can call a contract's guarded function"},"revokeCallPermission(address,string,address)":{"notice":"Revokes an account's permission to a particular function call"}},"notice":"Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one account or list of accounts (EOA or Contract Accounts). The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol) inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol) contract as a base for role management logic. There are two role types: admin and granular permissions.  ## Granular Roles  Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which is guarded by ACM, calling `giveRolePermission` for account B do the following:  1. Compute `keccak256(contractFooAddress,functionSignatureBar)` 1. Add the computed role to the roles of account B 1. Account B now can call `ContractFoo.bar()`  ## Admin Roles  Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for contracts created by factories.  For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.  In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by ACM, not only contract A.  ## Protocol Integration  All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function. `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM: ``` contract Comptroller is [...] AccessControlledV8 { [...] function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external { _checkAccessAllowed(\"setCollateralFactor(address,uint256,uint256)\"); [...] } } ```","version":1}}},"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol":{"AccessControlledV8":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"title":"AccessControlledV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"title\":\"AccessControlledV8\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}]},\"events\":{\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"}},\"notice\":\"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":\"AccessControlledV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x84efb8889801b0ac817324aff6acc691d07bbee816b671817132911d287a8c63\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":4985,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":4324,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":4444,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":4233,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":4312,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":8479,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)8664"},{"astId":8484,"contract":"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol:AccessControlledV8","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(IAccessControlManagerV8)8664":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}]},"events":{"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"}},"notice":"This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13) to integrate access controlled mechanism. It provides initialise methods and verifying access methods.","version":1}}},"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol":{"IAccessControlManagerV8":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToPermit","type":"address"}],"name":"giveCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"hasPermission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"functionSig","type":"string"}],"name":"isAllowedToCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"string","name":"functionSig","type":"string"},{"internalType":"address","name":"accountToRevoke","type":"address"}],"name":"revokeCallPermission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"}},"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role."}},"title":"IAccessControlManagerV8","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","giveCallPermission(address,string,address)":"584f6b60","grantRole(bytes32,address)":"2f2ff15d","hasPermission(address,address,string)":"82bfd0f0","hasRole(bytes32,address)":"91d14854","isAllowedToCall(address,string)":"18c5e8ab","renounceRole(bytes32,address)":"36568abe","revokeCallPermission(address,string,address)":"545f7a32","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToPermit\",\"type\":\"address\"}],\"name\":\"giveCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"hasPermission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"}],\"name\":\"isAllowedToCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"functionSig\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"accountToRevoke\",\"type\":\"address\"}],\"name\":\"revokeCallPermission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"title\":\"IAccessControlManagerV8\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface implemented by the `AccessControlManagerV8` contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":\"IAccessControlManagerV8\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Interface implemented by the `AccessControlManagerV8` contract.","version":1}}},"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol":{"BoundValidatorInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"reporterPrice","type":"uint256"},{"internalType":"uint256","name":"anchorPrice","type":"uint256"}],"name":"validatePriceWithAnchorPrice","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"validatePriceWithAnchorPrice(address,uint256,uint256)":"97c7033e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reporterPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"anchorPrice\",\"type\":\"uint256\"}],\"name\":\"validatePriceWithAnchorPrice\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":\"BoundValidatorInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"OracleInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrice(address)":"41976e09"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}},"ResilientOracleInterface":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"getUnderlyingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"updateAssetPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vToken","type":"address"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPrice(address)":"41976e09","getUnderlyingPrice(address)":"fc57d4df","updateAssetPrice(address)":"b62cad69","updatePrice(address)":"96e85ced"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"updateAssetPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vToken\",\"type\":\"address\"}],\"name\":\"updatePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":\"ResilientOracleInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol":{"ExponentialNoError":{"abi":[],"devdoc":{"author":"Compound","kind":"dev","methods":{},"title":"Exponential module for storing fixed-precision decimals","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122029ba961b464ca3310ee5821fc5f0acc706597d2e15a1762a442773aad253af6664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0xBA SWAP7 SHL CHAINID 0x4C LOG3 BALANCE 0xE 0xE5 DUP3 0x1F 0xC5 CREATE 0xAC 0xC7 MOD MSIZE PUSH30 0x2E15A1762A442773AAD253AF6664736F6C63430008190033000000000000 ","sourceMap":"482:5105:39:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600080fdfea264697066735822122029ba961b464ca3310ee5821fc5f0acc706597d2e15a1762a442773aad253af6664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0xBA SWAP7 SHL CHAINID 0x4C LOG3 BALANCE 0xE 0xE5 DUP3 0x1F 0xC5 CREATE 0xAC 0xC7 MOD MSIZE PUSH30 0x2E15A1762A442773AAD253AF6664736F6C63430008190033000000000000 ","sourceMap":"482:5105:39:-:0;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"12600","executionCost":"66","totalCost":"12666"},"internal":{"add_(struct ExponentialNoError.Double memory,struct ExponentialNoError.Double memory)":"infinite","add_(struct ExponentialNoError.Exp memory,struct ExponentialNoError.Exp memory)":"infinite","add_(uint256,uint256)":"infinite","div_(struct ExponentialNoError.Double memory,struct ExponentialNoError.Double memory)":"infinite","div_(struct ExponentialNoError.Double memory,uint256)":"infinite","div_(struct ExponentialNoError.Exp memory,struct ExponentialNoError.Exp memory)":"infinite","div_(struct ExponentialNoError.Exp memory,uint256)":"infinite","div_(uint256,struct ExponentialNoError.Double memory)":"infinite","div_(uint256,struct ExponentialNoError.Exp memory)":"infinite","div_(uint256,uint256)":"infinite","fraction(uint256,uint256)":"infinite","lessThanExp(struct ExponentialNoError.Exp memory,struct ExponentialNoError.Exp memory)":"infinite","mul_(struct ExponentialNoError.Double memory,struct ExponentialNoError.Double memory)":"infinite","mul_(struct ExponentialNoError.Double memory,uint256)":"infinite","mul_(struct ExponentialNoError.Exp memory,struct ExponentialNoError.Exp memory)":"infinite","mul_(struct ExponentialNoError.Exp memory,uint256)":"infinite","mul_(uint256,struct ExponentialNoError.Double memory)":"infinite","mul_(uint256,struct ExponentialNoError.Exp memory)":"infinite","mul_(uint256,uint256)":"infinite","mul_ScalarTruncate(struct ExponentialNoError.Exp memory,uint256)":"infinite","mul_ScalarTruncateAddUInt(struct ExponentialNoError.Exp memory,uint256,uint256)":"infinite","safe224(uint256,string memory)":"infinite","safe32(uint256,string memory)":"infinite","sub_(struct ExponentialNoError.Double memory,struct ExponentialNoError.Double memory)":"infinite","sub_(struct ExponentialNoError.Exp memory,struct ExponentialNoError.Exp memory)":"infinite","sub_(uint256,uint256)":"infinite","truncate(struct ExponentialNoError.Exp memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Compound\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Exponential module for storing fixed-precision decimals\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Exp is a struct which stores decimals with a fixed precision of 18 decimal places.         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:         `Exp({mantissa: 5100000000000000000})`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\":\"ExponentialNoError\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from \\\"./constants.sol\\\";\\n\\n/**\\n * @title Exponential module for storing fixed-precision decimals\\n * @author Compound\\n * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\\n *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\\n *         `Exp({mantissa: 5100000000000000000})`.\\n */\\ncontract ExponentialNoError {\\n    struct Exp {\\n        uint256 mantissa;\\n    }\\n\\n    struct Double {\\n        uint256 mantissa;\\n    }\\n\\n    uint256 internal constant EXP_SCALE = EXP_SCALE_;\\n    uint256 internal constant DOUBLE_SCALE = 1e36;\\n    uint256 internal constant HALF_EXP_SCALE = EXP_SCALE / 2;\\n    uint256 internal constant MANTISSA_ONE = MANTISSA_ONE_;\\n\\n    /**\\n     * @dev Truncates the given exp to a whole number value.\\n     *      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15\\n     */\\n    function truncate(Exp memory exp) internal pure returns (uint256) {\\n        // Note: We are not using careful math here as we're performing a division that cannot fail\\n        return exp.mantissa / EXP_SCALE;\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncate(Exp memory a, uint256 scalar) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return truncate(product);\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncateAddUInt(Exp memory a, uint256 scalar, uint256 addend) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return add_(truncate(product), addend);\\n    }\\n\\n    /**\\n     * @dev Checks if first Exp is less than second Exp.\\n     */\\n    function lessThanExp(Exp memory left, Exp memory right) internal pure returns (bool) {\\n        return left.mantissa < right.mantissa;\\n    }\\n\\n    function safe224(uint256 n, string memory errorMessage) internal pure returns (uint224) {\\n        require(n <= type(uint224).max, errorMessage);\\n        return uint224(n);\\n    }\\n\\n    function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {\\n        require(n <= type(uint32).max, errorMessage);\\n        return uint32(n);\\n    }\\n\\n    function add_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a + b;\\n    }\\n\\n    function sub_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a - b;\\n    }\\n\\n    function mul_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b.mantissa) / EXP_SCALE });\\n    }\\n\\n    function mul_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / EXP_SCALE;\\n    }\\n\\n    function mul_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b.mantissa) / DOUBLE_SCALE });\\n    }\\n\\n    function mul_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / DOUBLE_SCALE;\\n    }\\n\\n    function mul_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a * b;\\n    }\\n\\n    function div_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(mul_(a.mantissa, EXP_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, EXP_SCALE), b.mantissa);\\n    }\\n\\n    function div_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a.mantissa, DOUBLE_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, DOUBLE_SCALE), b.mantissa);\\n    }\\n\\n    function div_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a / b;\\n    }\\n\\n    function fraction(uint256 a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a, DOUBLE_SCALE), b) });\\n    }\\n}\\n\",\"keccak256\":\"0x1b5378848f1472660fd33c260fa9b00bf59e7c2066c27cc592230d7c86a6a9f9\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Exp is a struct which stores decimals with a fixed precision of 18 decimal places.         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:         `Exp({mantissa: 5100000000000000000})`.","version":1}}},"contracts/Bridge/BaseXVSProxyOFT.sol":{"BaseXVSProxyOFT":{"abi":[{"inputs":[{"internalType":"uint256","name":"sweepAmount","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"innerToken","type":"address"}],"name":"InnerTokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOracle","type":"address"},{"indexed":true,"internalType":"address","name":"newOracle","type":"address"}],"name":"OracleChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyReceiveLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleReceiveTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"isWhitelist","type":"bool"}],"name":"SetWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"sweepAmount","type":"uint256"}],"name":"SweepToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"TrustedRemoteRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UpdateSendAndCallEnabled","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleReceiveTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"isEligibleToSend","outputs":[{"internalType":"bool","name":"eligibleToSend","type":"bool"},{"internalType":"uint256","name":"maxSingleTransactionLimit","type":"uint256"},{"internalType":"uint256","name":"maxDailyLimit","type":"uint256"},{"internalType":"uint256","name":"amountInUsd","type":"uint256"},{"internalType":"uint256","name":"transferredInWindow","type":"uint256"},{"internalType":"uint256","name":"last24HourWindowStart","type":"uint256"},{"internalType":"bool","name":"isWhiteListedUser","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"}],"name":"removeTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"bytes32","name":"toAddress_","type":"bytes32"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"uint64","name":"dstGasForCall_","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"callparams_","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sendAndCallEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleReceiveTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracleAddress_","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bool","name":"val_","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"sweepToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled_","type":"bool"}],"name":"updateSendAndCallEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"ReceiveFromChain(uint16,address,uint256)":{"details":"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce."},"SendToChain(uint16,address,bytes32,uint256)":{"details":"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce"},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"circulatingSupply()":{"details":"returns the circulating amount of tokens on current chain"},"constructor":{"custom:error":"ZeroAddressNotAllowed is thrown when token contract address is zero.ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.ZeroAddressNotAllowed is thrown when oracle contract address is zero.","custom:event":"Emits InnerTokenAdded with token address.Emits OracleChanged with zero address and oracle address.","params":{"lzEndpoint_":"Address of the layer zero endpoint contract.","oracle_":"Address of the price oracle.","sharedDecimals_":"Number of shared decimals.","tokenAddress_":"Address of the inner token."}},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"isEligibleToSend(address,uint16,uint256)":{"details":"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.","params":{"amount_":"The quantity of tokens to be transferred.","dstChainId_":"Indicates destination chain.","from_":"The sender's address initiating the transfer."},"returns":{"amountInUsd":"The equivalent amount in USD based on the oracle price.","eligibleToSend":"A boolean indicating whether the sender is eligible to transfer the tokens.","isWhiteListedUser":"A boolean indicating whether the sender is whitelisted.","last24HourWindowStart":"The timestamp when the current 24-hour window started.","maxDailyLimit":"The maximum daily limit for transactions.","maxSingleTransactionLimit":"The maximum limit for a single transaction.","transferredInWindow":"The total amount transferred in the current 24-hour window."}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"removeTrustedRemote(uint16)":{"custom:access":"Only owner.","custom:event":"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.","params":{"remoteChainId_":"The chain's id corresponds to setting the trusted remote to empty."}},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"details":"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.","params":{"amount_":"Amount of tokens that will be transferred.","callparams_":"Additional parameters, including refund address, ZRO payment address,                   and adapter params.","dstChainId_":"Destination chain id on which tokens will be send.","dstGasForCall_":"The amount of gas allocated for the call on the destination chain.","from_":"Address from which tokens will be debited.","payload_":"Additional data payload for the call on the destination chain.","toAddress_":"Address on which tokens will be credited on destination chain."}},"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":{"details":"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setMaxDailyReceiveLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum daily limit in USD(scaled with 18 decimals)."}},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum limit in USD(scaled with 18 decimals)."}},"setMaxSingleTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setOracle(address)":{"custom:access":"Only owner.","custom:event":"Emits OracleChanged with old and new oracle address.","details":"Reverts if the new address is zero.","params":{"oracleAddress_":"The new address of the ResilientOracle contract."}},"setWhitelist(address,bool)":{"custom:access":"Only owner.","custom:event":"Emits setWhitelist.","params":{"user_":"Address to be add in whitelist.","val_":"Boolean to be set (true for user_ address is whitelisted)."}},"sweepToken(address,address,uint256)":{"custom:access":"Only Owner","custom:error":"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract","custom:event":"Emits SweepToken event","params":{"amount_":"The amount of tokens needs to transfer","to_":"The address of the recipient","token_":"The address of the ERC-20 token to sweep"}},"token()":{"returns":{"_0":"Address of the inner token of this bridge."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Only owner."},"updateSendAndCallEnabled(bool)":{"params":{"enabled_":"Boolean indicating whether the sendAndCall function should be enabled or disabled."}}},"title":"BaseXVSProxyOFT","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","NO_EXTRA_GAS()":"44770515","PT_SEND()":"4c42899a","PT_SEND_AND_CALL()":"e6a20ae6","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"eaffd49a","chainIdToLast24HourReceiveWindowStart(uint16)":"fdff235b","chainIdToLast24HourReceived(uint16)":"d708a468","chainIdToLast24HourTransferred(uint16)":"4cec6256","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","chainIdToMaxDailyReceiveLimit(uint16)":"3c4ec39b","chainIdToMaxSingleReceiveTransactionLimit(uint16)":"90436567","chainIdToMaxSingleTransactionLimit(uint16)":"cc7015ae","circulatingSupply()":"9358928b","creditedPackets(uint16,bytes,uint64)":"9bdb9812","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isEligibleToSend(address,uint16,uint256)":"182b4b89","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","oracle()":"7dc0d1d0","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","removeTrustedRemote(uint16)":"2dbbec08","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"76203b48","sendAndCallEnabled()":"c1e9132e","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"695ef6bf","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyLimit(uint16,uint256)":"2488eec8","setMaxDailyReceiveLimit(uint16,uint256)":"69c1e7b8","setMaxSingleReceiveTransactionLimit(uint16,uint256)":"cc01e9b6","setMaxSingleTransactionLimit(uint16,uint256)":"53489d6c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setOracle(address)":"7adbf973","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","setWhitelist(address,bool)":"53d6fd59","sharedDecimals()":"857749b0","supportsInterface(bytes4)":"01ffc9a7","sweepToken(address,address,uint256)":"64aff9ec","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a","updateSendAndCallEnabled(bool)":"4ed2c662","whitelist(address)":"9b19251a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CallOFTReceivedSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"innerToken\",\"type\":\"address\"}],\"name\":\"InnerTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"NonContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"OracleChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ReceiveFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SendToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyReceiveLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleReceiveTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isWhitelist\",\"type\":\"bool\"}],\"name\":\"SetWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"}],\"name\":\"SweepToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"TrustedRemoteRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"UpdateSendAndCallEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NO_EXTRA_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasForCall\",\"type\":\"uint256\"}],\"name\":\"callOnOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourTransferred\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleReceiveTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"creditedPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"isEligibleToSend\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"eligibleToSend\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSingleTransactionLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDailyLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInUsd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transferredInWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"last24HourWindowStart\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isWhiteListedUser\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"}],\"name\":\"removeTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"toAddress_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"dstGasForCall_\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"callparams_\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendAndCallEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleReceiveTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracleAddress_\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"val_\",\"type\":\"bool\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled_\",\"type\":\"bool\"}],\"name\":\"updateSendAndCallEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ReceiveFromChain(uint16,address,uint256)\":{\"details\":\"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce.\"},\"SendToChain(uint16,address,bytes32,uint256)\":{\"details\":\"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"details\":\"returns the circulating amount of tokens on current chain\"},\"constructor\":{\"custom:error\":\"ZeroAddressNotAllowed is thrown when token contract address is zero.ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.ZeroAddressNotAllowed is thrown when oracle contract address is zero.\",\"custom:event\":\"Emits InnerTokenAdded with token address.Emits OracleChanged with zero address and oracle address.\",\"params\":{\"lzEndpoint_\":\"Address of the layer zero endpoint contract.\",\"oracle_\":\"Address of the price oracle.\",\"sharedDecimals_\":\"Number of shared decimals.\",\"tokenAddress_\":\"Address of the inner token.\"}},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"isEligibleToSend(address,uint16,uint256)\":{\"details\":\"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\",\"params\":{\"amount_\":\"The quantity of tokens to be transferred.\",\"dstChainId_\":\"Indicates destination chain.\",\"from_\":\"The sender's address initiating the transfer.\"},\"returns\":{\"amountInUsd\":\"The equivalent amount in USD based on the oracle price.\",\"eligibleToSend\":\"A boolean indicating whether the sender is eligible to transfer the tokens.\",\"isWhiteListedUser\":\"A boolean indicating whether the sender is whitelisted.\",\"last24HourWindowStart\":\"The timestamp when the current 24-hour window started.\",\"maxDailyLimit\":\"The maximum daily limit for transactions.\",\"maxSingleTransactionLimit\":\"The maximum limit for a single transaction.\",\"transferredInWindow\":\"The total amount transferred in the current 24-hour window.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty.\"}},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"details\":\"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\",\"params\":{\"amount_\":\"Amount of tokens that will be transferred.\",\"callparams_\":\"Additional parameters, including refund address, ZRO payment address,                   and adapter params.\",\"dstChainId_\":\"Destination chain id on which tokens will be send.\",\"dstGasForCall_\":\"The amount of gas allocated for the call on the destination chain.\",\"from_\":\"Address from which tokens will be debited.\",\"payload_\":\"Additional data payload for the call on the destination chain.\",\"toAddress_\":\"Address on which tokens will be credited on destination chain.\"}},\"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))\":{\"details\":\"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services\"},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum daily limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setOracle(address)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits OracleChanged with old and new oracle address.\",\"details\":\"Reverts if the new address is zero.\",\"params\":{\"oracleAddress_\":\"The new address of the ResilientOracle contract.\"}},\"setWhitelist(address,bool)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setWhitelist.\",\"params\":{\"user_\":\"Address to be add in whitelist.\",\"val_\":\"Boolean to be set (true for user_ address is whitelisted).\"}},\"sweepToken(address,address,uint256)\":{\"custom:access\":\"Only Owner\",\"custom:error\":\"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\",\"custom:event\":\"Emits SweepToken event\",\"params\":{\"amount_\":\"The amount of tokens needs to transfer\",\"to_\":\"The address of the recipient\",\"token_\":\"The address of the ERC-20 token to sweep\"}},\"token()\":{\"returns\":{\"_0\":\"Address of the inner token of this bridge.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only owner.\"},\"updateSendAndCallEnabled(bool)\":{\"params\":{\"enabled_\":\"Boolean indicating whether the sendAndCall function should be enabled or disabled.\"}}},\"title\":\"BaseXVSProxyOFT\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Error thrown when this contract balance is less than sweep amount\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"InnerTokenAdded(address)\":{\"notice\":\"Event emitted when inner token set successfully.\"},\"OracleChanged(address,address)\":{\"notice\":\"Event emitted when oracle is modified.\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of transactions from local chain is modified.\"},\"SetMaxDailyReceiveLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\"},\"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single receive transaction from remote chain is modified.\"},\"SetMaxSingleTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single transaction from local chain is modified.\"},\"SetWhitelist(address,bool)\":{\"notice\":\"Emitted when address is added to whitelist.\"},\"SweepToken(address,address,uint256)\":{\"notice\":\"Emitted on sweep token success\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty.\"},\"UpdateSendAndCallEnabled(bool)\":{\"notice\":\"Event emitted when SendAndCallEnabled updated successfully.\"}},\"kind\":\"user\",\"methods\":{\"chainIdToLast24HourReceiveWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from remote chain.\"},\"chainIdToLast24HourReceived(uint16)\":{\"notice\":\"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\"},\"chainIdToLast24HourTransferred(uint16)\":{\"notice\":\"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from local chain.\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\"},\"chainIdToMaxDailyReceiveLimit(uint16)\":{\"notice\":\"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleReceiveTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\"},\"isEligibleToSend(address,uint16,uint256)\":{\"notice\":\"Checks the eligibility of a sender to initiate a cross-chain token transfer.\"},\"oracle()\":{\"notice\":\"The address of ResilientOracle contract wrapped in its interface.\"},\"pause()\":{\"notice\":\"Triggers stopped state of the bridge.\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage.\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening.\"},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"notice\":\"Initiates a cross-chain token transfer and triggers a call on the destination chain.\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) transactions amount.\"},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving transactions.\"},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum limit for a single receive transaction.\"},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of single transaction amount.\"},\"setOracle(address)\":{\"notice\":\"Set the address of the ResilientOracle contract.\"},\"setWhitelist(address,bool)\":{\"notice\":\"Sets the whitelist address to skip checks on transaction limit.\"},\"sweepToken(address,address,uint256)\":{\"notice\":\"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\"},\"token()\":{\"notice\":\"Return's the address of the inner token of this bridge.\"},\"unpause()\":{\"notice\":\"Triggers resume state of the bridge.\"},\"updateSendAndCallEnabled(bool)\":{\"notice\":\"It enables or disables sendAndCall functionality for the bridge.\"},\"whitelist(address)\":{\"notice\":\"Address on which cap check and bound limit is not applicable.\"}},\"notice\":\"The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token. It manages transaction limits of a single and daily transactions. This contract inherits key functionalities from other contracts, including pausing capabilities and error handling. It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses. The contract allows the owner to configure limits, set whitelists, and control pausing. Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/BaseXVSProxyOFT.sol\":\"BaseXVSProxyOFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OFTCoreV2.sol\\\";\\nimport \\\"./interfaces/IOFTV2.sol\\\";\\nimport \\\"@openzeppelin/contracts/utils/introspection/ERC165.sol\\\";\\n\\nabstract contract BaseOFTV2 is OFTCoreV2, ERC165, IOFTV2 {\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) OFTCoreV2(_sharedDecimals, _lzEndpoint) {}\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function sendFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _send(_from, _dstChainId, _toAddress, _amount, _callParams.refundAddress, _callParams.zroPaymentAddress, _callParams.adapterParams);\\n    }\\n\\n    function sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _sendAndCall(\\n            _from,\\n            _dstChainId,\\n            _toAddress,\\n            _amount,\\n            _payload,\\n            _dstGasForCall,\\n            _callParams.refundAddress,\\n            _callParams.zroPaymentAddress,\\n            _callParams.adapterParams\\n        );\\n    }\\n\\n    /************************************************************************\\n     * public view functions\\n     ************************************************************************/\\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n        return interfaceId == type(IOFTV2).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    function estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendFee(_dstChainId, _toAddress, _amount, _useZro, _adapterParams);\\n    }\\n\\n    function estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendAndCallFee(_dstChainId, _toAddress, _amount, _payload, _dstGasForCall, _useZro, _adapterParams);\\n    }\\n\\n    function circulatingSupply() public view virtual override returns (uint);\\n\\n    function token() public view virtual override returns (address);\\n}\\n\",\"keccak256\":\"0x59d2d32dd14a4f58232b126a7d69608a85f82137bd56d8ce0fc28ff646cba943\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../../lzApp/NonblockingLzApp.sol\\\";\\nimport \\\"../../../libraries/ExcessivelySafeCall.sol\\\";\\nimport \\\"./interfaces/ICommonOFT.sol\\\";\\nimport \\\"./interfaces/IOFTReceiverV2.sol\\\";\\n\\nabstract contract OFTCoreV2 is NonblockingLzApp {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    uint public constant NO_EXTRA_GAS = 0;\\n\\n    // packet type\\n    uint8 public constant PT_SEND = 0;\\n    uint8 public constant PT_SEND_AND_CALL = 1;\\n\\n    uint8 public immutable sharedDecimals;\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\\n     * `_nonce` is the outbound nonce\\n     */\\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\\n     * `_nonce` is the inbound nonce.\\n     */\\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\\n\\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\\n\\n    event NonContractAddress(address _address);\\n\\n    // _sharedDecimals should be the minimum decimals on all chains\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\\n        sharedDecimals = _sharedDecimals;\\n    }\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function callOnOFTReceived(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes32 _from,\\n        address _to,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint _gasForCall\\n    ) public virtual {\\n        require(_msgSender() == address(this), \\\"OFTCore: caller must be OFTCore\\\");\\n\\n        // send\\n        _amount = _transferFrom(address(this), _to, _amount);\\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\\n\\n        // call\\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\\n    }\\n\\n    /************************************************************************\\n     * internal functions\\n     ************************************************************************/\\n    function _estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendFrom()\\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendAndCall()\\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        uint8 packetType = _payload.toUint8(0);\\n\\n        if (packetType == PT_SEND) {\\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else if (packetType == PT_SEND_AND_CALL) {\\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else {\\n            revert(\\\"OFTCore: unknown packet type\\\");\\n        }\\n    }\\n\\n    function _send(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAck(\\n        uint16 _srcChainId,\\n        bytes memory,\\n        uint64,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\\n        if (to == address(0)) {\\n            to = address(0xdead);\\n        }\\n\\n        uint amount = _sd2ld(amountSD);\\n        amount = _creditTo(_srcChainId, to, amount);\\n\\n        emit ReceiveFromChain(_srcChainId, to, amount);\\n    }\\n\\n    function _sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        // encode the msg.sender into the payload instead of _from\\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAndCallAck(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\\n\\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\\n        uint amount = _sd2ld(amountSD);\\n\\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\\n        if (!credited) {\\n            amount = _creditTo(_srcChainId, address(this), amount);\\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\\n        }\\n\\n        if (!_isContract(to)) {\\n            emit NonContractAddress(to);\\n            return;\\n        }\\n\\n        // workaround for stack too deep\\n        uint16 srcChainId = _srcChainId;\\n        bytes memory srcAddress = _srcAddress;\\n        uint64 nonce = _nonce;\\n        bytes memory payload = _payload;\\n        bytes32 from_ = from;\\n        address to_ = to;\\n        uint amount_ = amount;\\n        bytes memory payloadForCall_ = payloadForCall;\\n\\n        // no gas limit for the call if retry\\n        uint gas = credited ? gasleft() : gasForCall;\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\\n        );\\n\\n        if (success) {\\n            bytes32 hash = keccak256(payload);\\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\\n        } else {\\n            // store the failed message into the nonblockingLzApp\\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\\n        }\\n    }\\n\\n    function _isContract(address _account) internal view returns (bool) {\\n        return _account.code.length > 0;\\n    }\\n\\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\\n        uint amountSD = _amount / _ld2sdRate();\\n        require(amountSD <= type(uint64).max, \\\"OFTCore: amountSD overflow\\\");\\n        return uint64(amountSD);\\n    }\\n\\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\\n        return _amountSD * _ld2sdRate();\\n    }\\n\\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\\n        dust = _amount % _ld2sdRate();\\n        amountAfter = _amount - dust;\\n    }\\n\\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\\n    }\\n\\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n    }\\n\\n    function _encodeSendAndCallPayload(\\n        address _from,\\n        bytes32 _toAddress,\\n        uint64 _amountSD,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall\\n    ) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\\n    }\\n\\n    function _decodeSendAndCallPayload(bytes memory _payload)\\n        internal\\n        view\\n        virtual\\n        returns (\\n            bytes32 from,\\n            address to,\\n            uint64 amountSD,\\n            bytes memory payload,\\n            uint64 dstGasForCall\\n        )\\n    {\\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n        from = _payload.toBytes32(41);\\n        dstGasForCall = _payload.toUint64(73);\\n        payload = _payload.slice(81, _payload.length - 81);\\n    }\\n\\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n\\n    function _debitFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _creditTo(\\n        uint16 _srcChainId,\\n        address _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _transferFrom(\\n        address _from,\\n        address _to,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _ld2sdRate() internal view virtual returns (uint);\\n}\\n\",\"keccak256\":\"0x96cf7a10c5af4243822d25e77985a4a46d12264f839593ded5378cd6519a8df0\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ICommonOFT.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface IOFTV2 is ICommonOFT {\\n\\n    /**\\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\\n     * `_from` the owner of token\\n     * `_dstChainId` the destination chain identifier\\n     * `_toAddress` can be any size depending on the `dstChainId`.\\n     * `_amount` the quantity of tokens in wei\\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\\n     */\\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\\n\\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\\n}\\n\",\"keccak256\":\"0xb1d31f341715347d49db4e2c0de27c49bbd70b5b3d9b0adb1050b2b3a305ab87\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from \\\"./constants.sol\\\";\\n\\n/**\\n * @title Exponential module for storing fixed-precision decimals\\n * @author Compound\\n * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\\n *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\\n *         `Exp({mantissa: 5100000000000000000})`.\\n */\\ncontract ExponentialNoError {\\n    struct Exp {\\n        uint256 mantissa;\\n    }\\n\\n    struct Double {\\n        uint256 mantissa;\\n    }\\n\\n    uint256 internal constant EXP_SCALE = EXP_SCALE_;\\n    uint256 internal constant DOUBLE_SCALE = 1e36;\\n    uint256 internal constant HALF_EXP_SCALE = EXP_SCALE / 2;\\n    uint256 internal constant MANTISSA_ONE = MANTISSA_ONE_;\\n\\n    /**\\n     * @dev Truncates the given exp to a whole number value.\\n     *      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15\\n     */\\n    function truncate(Exp memory exp) internal pure returns (uint256) {\\n        // Note: We are not using careful math here as we're performing a division that cannot fail\\n        return exp.mantissa / EXP_SCALE;\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncate(Exp memory a, uint256 scalar) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return truncate(product);\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncateAddUInt(Exp memory a, uint256 scalar, uint256 addend) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return add_(truncate(product), addend);\\n    }\\n\\n    /**\\n     * @dev Checks if first Exp is less than second Exp.\\n     */\\n    function lessThanExp(Exp memory left, Exp memory right) internal pure returns (bool) {\\n        return left.mantissa < right.mantissa;\\n    }\\n\\n    function safe224(uint256 n, string memory errorMessage) internal pure returns (uint224) {\\n        require(n <= type(uint224).max, errorMessage);\\n        return uint224(n);\\n    }\\n\\n    function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {\\n        require(n <= type(uint32).max, errorMessage);\\n        return uint32(n);\\n    }\\n\\n    function add_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a + b;\\n    }\\n\\n    function sub_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a - b;\\n    }\\n\\n    function mul_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b.mantissa) / EXP_SCALE });\\n    }\\n\\n    function mul_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / EXP_SCALE;\\n    }\\n\\n    function mul_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b.mantissa) / DOUBLE_SCALE });\\n    }\\n\\n    function mul_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / DOUBLE_SCALE;\\n    }\\n\\n    function mul_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a * b;\\n    }\\n\\n    function div_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(mul_(a.mantissa, EXP_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, EXP_SCALE), b.mantissa);\\n    }\\n\\n    function div_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a.mantissa, DOUBLE_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, DOUBLE_SCALE), b.mantissa);\\n    }\\n\\n    function div_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a / b;\\n    }\\n\\n    function fraction(uint256 a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a, DOUBLE_SCALE), b) });\\n    }\\n}\\n\",\"keccak256\":\"0x1b5378848f1472660fd33c260fa9b00bf59e7c2066c27cc592230d7c86a6a9f9\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/BaseXVSProxyOFT.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { ResilientOracleInterface } from \\\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { BaseOFTV2 } from \\\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { ExponentialNoError } from \\\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\\\";\\n\\n/**\\n * @title BaseXVSProxyOFT\\n * @author Venus\\n * @notice The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token.\\n * It manages transaction limits of a single and daily transactions.\\n * This contract inherits key functionalities from other contracts, including pausing capabilities and error handling.\\n * It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses.\\n * The contract allows the owner to configure limits, set whitelists, and control pausing.\\n * Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.\\n */\\n\\nabstract contract BaseXVSProxyOFT is Pausable, ExponentialNoError, BaseOFTV2 {\\n    using SafeERC20 for IERC20;\\n    IERC20 internal immutable innerToken;\\n    uint256 internal immutable ld2sdRate;\\n    bool public sendAndCallEnabled;\\n\\n    /**\\n     * @notice The address of ResilientOracle contract wrapped in its interface.\\n     */\\n    ResilientOracleInterface public oracle;\\n    /**\\n     * @notice Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n    /**\\n     * @notice Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourTransferred;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleReceiveTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyReceiveLimit;\\n    /**\\n     * @notice Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceived;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceiveWindowStart;\\n    /**\\n     * @notice Address on which cap check and bound limit is not applicable.\\n     */\\n    mapping(address => bool) public whitelist;\\n\\n    /**\\n     * @notice Emitted when address is added to whitelist.\\n     */\\n    event SetWhitelist(address indexed addr, bool isWhitelist);\\n    /**\\n     * @notice  Emitted when the maximum limit for a single transaction from local chain is modified.\\n     */\\n    event SetMaxSingleTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit of transactions from local chain is modified.\\n     */\\n    event SetMaxDailyLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum limit for a single receive transaction from remote chain is modified.\\n     */\\n    event SetMaxSingleReceiveTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\\n     */\\n    event SetMaxDailyReceiveLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Event emitted when oracle is modified.\\n     */\\n    event OracleChanged(address indexed oldOracle, address indexed newOracle);\\n    /**\\n     * @notice Event emitted when trusted remote sets to empty.\\n     */\\n    event TrustedRemoteRemoved(uint16 chainId);\\n    /**\\n     * @notice Event emitted when inner token set successfully.\\n     */\\n    event InnerTokenAdded(address indexed innerToken);\\n    /**\\n     *@notice Emitted on sweep token success\\n     */\\n    event SweepToken(address indexed token, address indexed to, uint256 sweepAmount);\\n    /**\\n     * @notice Event emitted when SendAndCallEnabled updated successfully.\\n     */\\n    event UpdateSendAndCallEnabled(bool indexed enabled);\\n    /**\\n     *@notice Error thrown when this contract balance is less than sweep amount\\n     */\\n    error InsufficientBalance(uint256 sweepAmount, uint256 balance);\\n\\n    /**\\n     * @param tokenAddress_ Address of the inner token.\\n     * @param sharedDecimals_ Number of shared decimals.\\n     * @param lzEndpoint_ Address of the layer zero endpoint contract.\\n     * @param oracle_ Address of the price oracle.\\n     * @custom:error ZeroAddressNotAllowed is thrown when token contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when oracle contract address is zero.\\n     * @custom:event Emits InnerTokenAdded with token address.\\n     * @custom:event Emits OracleChanged with zero address and oracle address.\\n     */\\n    constructor(\\n        address tokenAddress_,\\n        uint8 sharedDecimals_,\\n        address lzEndpoint_,\\n        address oracle_\\n    ) BaseOFTV2(sharedDecimals_, lzEndpoint_) {\\n        ensureNonzeroAddress(tokenAddress_);\\n        ensureNonzeroAddress(lzEndpoint_);\\n        ensureNonzeroAddress(oracle_);\\n\\n        innerToken = IERC20(tokenAddress_);\\n\\n        (bool success, bytes memory data) = tokenAddress_.staticcall(abi.encodeWithSignature(\\\"decimals()\\\"));\\n        require(success, \\\"ProxyOFT: failed to get token decimals\\\");\\n        uint8 decimals = abi.decode(data, (uint8));\\n\\n        require(sharedDecimals_ <= decimals, \\\"ProxyOFT: sharedDecimals must be <= decimals\\\");\\n        ld2sdRate = 10 ** (decimals - sharedDecimals_);\\n\\n        emit InnerTokenAdded(tokenAddress_);\\n        emit OracleChanged(address(0), oracle_);\\n\\n        oracle = ResilientOracleInterface(oracle_);\\n    }\\n\\n    /**\\n     * @notice Set the address of the ResilientOracle contract.\\n     * @dev Reverts if the new address is zero.\\n     * @param oracleAddress_ The new address of the ResilientOracle contract.\\n     * @custom:access Only owner.\\n     * @custom:event Emits OracleChanged with old and new oracle address.\\n     */\\n    function setOracle(address oracleAddress_) external onlyOwner {\\n        ensureNonzeroAddress(oracleAddress_);\\n        emit OracleChanged(address(oracle), oracleAddress_);\\n        oracle = ResilientOracleInterface(oracleAddress_);\\n    }\\n\\n    /**\\n     * @notice Sets the limit of single transaction amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyLimit[chainId_], \\\"Single transaction limit > Daily limit\\\");\\n        emit SetMaxSingleTransactionLimit(chainId_, chainIdToMaxSingleTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) transactions amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ >= chainIdToMaxSingleTransactionLimit[chainId_], \\\"Daily limit < single transaction limit\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum limit for a single receive transaction.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleReceiveTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyReceiveLimit[chainId_], \\\"single receive transaction limit > Daily limit\\\");\\n        emit SetMaxSingleReceiveTransactionLimit(chainId_, chainIdToMaxSingleReceiveTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleReceiveTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving transactions.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum daily limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyReceiveLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(\\n            limit_ >= chainIdToMaxSingleReceiveTransactionLimit[chainId_],\\n            \\\"Daily limit < single receive transaction limit\\\"\\n        );\\n        emit SetMaxDailyReceiveLimit(chainId_, chainIdToMaxDailyReceiveLimit[chainId_], limit_);\\n        chainIdToMaxDailyReceiveLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the whitelist address to skip checks on transaction limit.\\n     * @param user_ Address to be add in whitelist.\\n     * @param val_ Boolean to be set (true for user_ address is whitelisted).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setWhitelist.\\n     */\\n    function setWhitelist(address user_, bool val_) external onlyOwner {\\n        emit SetWhitelist(user_, val_);\\n        whitelist[user_] = val_;\\n    }\\n\\n    /**\\n     * @notice Triggers stopped state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers resume state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\\n     * @param token_ The address of the ERC-20 token to sweep\\n     * @param to_ The address of the recipient\\n     * @param amount_ The amount of tokens needs to transfer\\n     * @custom:event Emits SweepToken event\\n     * @custom:error Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\\n     * @custom:access Only Owner\\n     */\\n    function sweepToken(IERC20 token_, address to_, uint256 amount_) external onlyOwner {\\n        uint256 balance = token_.balanceOf(address(this));\\n        if (amount_ > balance) {\\n            revert InsufficientBalance(amount_, balance);\\n        }\\n\\n        emit SweepToken(address(token_), to_, amount_);\\n\\n        token_.safeTransfer(to_, amount_);\\n    }\\n\\n    /**\\n     * @notice Remove trusted remote from storage.\\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty.\\n     * @custom:access Only owner.\\n     * @custom:event Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\\n     */\\n    function removeTrustedRemote(uint16 remoteChainId_) external onlyOwner {\\n        delete trustedRemoteLookup[remoteChainId_];\\n        emit TrustedRemoteRemoved(remoteChainId_);\\n    }\\n\\n    /**\\n     * @notice It enables or disables sendAndCall functionality for the bridge.\\n     * @param enabled_ Boolean indicating whether the sendAndCall function should be enabled or disabled.\\n     */\\n    function updateSendAndCallEnabled(bool enabled_) external onlyOwner {\\n        sendAndCallEnabled = enabled_;\\n        emit UpdateSendAndCallEnabled(enabled_);\\n    }\\n\\n    /**\\n     * @notice Checks the eligibility of a sender to initiate a cross-chain token transfer.\\n     * @dev This external view function assesses whether the specified sender is eligible to transfer the given amount\\n     *      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\\n     * @param from_ The sender's address initiating the transfer.\\n     * @param dstChainId_ Indicates destination chain.\\n     * @param amount_ The quantity of tokens to be transferred.\\n     * @return eligibleToSend A boolean indicating whether the sender is eligible to transfer the tokens.\\n     * @return maxSingleTransactionLimit The maximum limit for a single transaction.\\n     * @return maxDailyLimit The maximum daily limit for transactions.\\n     * @return amountInUsd The equivalent amount in USD based on the oracle price.\\n     * @return transferredInWindow The total amount transferred in the current 24-hour window.\\n     * @return last24HourWindowStart The timestamp when the current 24-hour window started.\\n     * @return isWhiteListedUser A boolean indicating whether the sender is whitelisted.\\n     */\\n    function isEligibleToSend(\\n        address from_,\\n        uint16 dstChainId_,\\n        uint256 amount_\\n    )\\n        external\\n        view\\n        returns (\\n            bool eligibleToSend,\\n            uint256 maxSingleTransactionLimit,\\n            uint256 maxDailyLimit,\\n            uint256 amountInUsd,\\n            uint256 transferredInWindow,\\n            uint256 last24HourWindowStart,\\n            bool isWhiteListedUser\\n        )\\n    {\\n        // Check if the sender's address is whitelisted\\n        isWhiteListedUser = whitelist[from_];\\n\\n        // Calculate the amount in USD using the oracle price\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        last24HourWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        if (currentBlockTimestamp - last24HourWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            last24HourWindowStart = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n        eligibleToSend = (isWhiteListedUser ||\\n            ((amountInUsd <= maxSingleTransactionLimit) && (transferredInWindow <= maxDailyLimit)));\\n    }\\n\\n    /**\\n     * @notice Initiates a cross-chain token transfer and triggers a call on the destination chain.\\n     * @dev This internal override function enables the contract to send tokens and invoke calls on the specified\\n     *      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\\n     * @param from_ Address from which tokens will be debited.\\n     * @param dstChainId_ Destination chain id on which tokens will be send.\\n     * @param toAddress_ Address on which tokens will be credited on destination chain.\\n     * @param amount_ Amount of tokens that will be transferred.\\n     * @param payload_ Additional data payload for the call on the destination chain.\\n     * @param dstGasForCall_ The amount of gas allocated for the call on the destination chain.\\n     * @param callparams_ Additional parameters, including refund address, ZRO payment address,\\n     *                   and adapter params.\\n     */\\n    function sendAndCall(\\n        address from_,\\n        uint16 dstChainId_,\\n        bytes32 toAddress_,\\n        uint256 amount_,\\n        bytes calldata payload_,\\n        uint64 dstGasForCall_,\\n        LzCallParams calldata callparams_\\n    ) public payable override {\\n        require(sendAndCallEnabled, \\\"sendAndCall is disabled\\\");\\n\\n        super.sendAndCall(from_, dstChainId_, toAddress_, amount_, payload_, dstGasForCall_, callparams_);\\n    }\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable override {\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // it will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length &&\\n                trustedRemote.length > 0 &&\\n                keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n        super.retryMessage(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Return's the address of the inner token of this bridge.\\n     * @return Address of the inner token of this bridge.\\n     */\\n    function token() public view override returns (address) {\\n        return address(innerToken);\\n    }\\n\\n    /**\\n     * @notice Checks if the sender is eligible to send tokens\\n     * @param from_ Sender's address sending tokens\\n     * @param dstChainId_ Chain id on which tokens should be sent\\n     * @param amount_ Amount of tokens to be sent\\n     */\\n    function _isEligibleToSend(address from_, uint16 dstChainId_, uint256 amount_) internal {\\n        // Check if the sender's address is whitelisted\\n        bool isWhiteListedUser = whitelist[from_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the amount in USD using the oracle price\\n        uint256 amountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        uint256 maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n\\n        // Revert if the amount exceeds the single transaction limit\\n        require(amountInUsd <= maxSingleTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(transferredInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourTransferred[dstChainId_] = transferredInWindow;\\n    }\\n\\n    /**\\n     * @notice Checks if receiver is able to receive tokens\\n     * @param toAddress_ Receiver address\\n     * @param srcChainId_ Source chain id from which token is send\\n     * @param receivedAmount_ Amount of tokens received\\n     */\\n    function _isEligibleToReceive(address toAddress_, uint16 srcChainId_, uint256 receivedAmount_) internal {\\n        // Check if the recipient's address is whitelisted\\n        bool isWhiteListedUser = whitelist[toAddress_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the received amount in USD using the oracle price\\n        uint256 receivedAmountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(address(token())) });\\n        receivedAmountInUsd = mul_ScalarTruncate(oraclePrice, receivedAmount_);\\n\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 lastDayReceiveWindowStart = chainIdToLast24HourReceiveWindowStart[srcChainId_];\\n        uint256 receivedInWindow = chainIdToLast24HourReceived[srcChainId_];\\n        uint256 maxSingleReceiveTransactionLimit = chainIdToMaxSingleReceiveTransactionLimit[srcChainId_];\\n        uint256 maxDailyReceiveLimit = chainIdToMaxDailyReceiveLimit[srcChainId_];\\n\\n        // Check if the received amount exceeds the single transaction limit\\n        require(receivedAmountInUsd <= maxSingleReceiveTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayReceiveWindowStart > 1 days) {\\n            receivedInWindow = receivedAmountInUsd;\\n            chainIdToLast24HourReceiveWindowStart[srcChainId_] = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += receivedAmountInUsd;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        chainIdToLast24HourReceived[srcChainId_] = receivedInWindow;\\n    }\\n\\n    /**\\n     * @notice Transfer tokens from sender to receiver account.\\n     * @param from_ Address from which token has to be transferred(Sender).\\n     * @param to_ Address on which token will be tranferred(Receiver).\\n     * @param amount_ Amount of token to be transferred.\\n     * @return Actual balance difference.\\n     */\\n    function _transferFrom(\\n        address from_,\\n        address to_,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        uint256 before = innerToken.balanceOf(to_);\\n        if (from_ == address(this)) {\\n            innerToken.safeTransfer(to_, amount_);\\n        } else {\\n            innerToken.safeTransferFrom(from_, to_, amount_);\\n        }\\n        return innerToken.balanceOf(to_) - before;\\n    }\\n\\n    /**\\n     * @notice Returns Conversion rate factor from large decimals to shared decimals.\\n     * @return Conversion rate factor.\\n     */\\n    function _ld2sdRate() internal view override returns (uint256) {\\n        return ld2sdRate;\\n    }\\n}\\n\",\"keccak256\":\"0x7e60e0dad246890a0f4b796aeb3fa730cd7cfde1f5616f4b10611b2f469d1e10\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5506,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"_paused","offset":0,"slot":"0","type":"t_bool"},{"astId":5383,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"_owner","offset":1,"slot":"0","type":"t_address"},{"astId":455,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3161,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"creditedPackets","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))"},{"astId":9381,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"sendAndCallEnabled","offset":0,"slot":"7","type":"t_bool"},{"astId":9385,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"oracle","offset":1,"slot":"7","type":"t_contract(ResilientOracleInterface)8694"},{"astId":9390,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToMaxSingleTransactionLimit","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9395,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToMaxDailyLimit","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9400,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToLast24HourTransferred","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9405,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9410,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToMaxSingleReceiveTransactionLimit","offset":0,"slot":"12","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9415,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToMaxDailyReceiveLimit","offset":0,"slot":"13","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9420,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToLast24HourReceived","offset":0,"slot":"14","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9425,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"chainIdToLast24HourReceiveWindowStart","offset":0,"slot":"15","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9430,"contract":"contracts/Bridge/BaseXVSProxyOFT.sol:BaseXVSProxyOFT","label":"whitelist","offset":0,"slot":"16","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(ResilientOracleInterface)8694":{"encoding":"inplace","label":"contract ResilientOracleInterface","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bool)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"errors":{"InsufficientBalance(uint256,uint256)":[{"notice":"Error thrown when this contract balance is less than sweep amount"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"InnerTokenAdded(address)":{"notice":"Event emitted when inner token set successfully."},"OracleChanged(address,address)":{"notice":"Event emitted when oracle is modified."},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of transactions from local chain is modified."},"SetMaxDailyReceiveLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving transactions from remote chain is modified."},"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single receive transaction from remote chain is modified."},"SetMaxSingleTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single transaction from local chain is modified."},"SetWhitelist(address,bool)":{"notice":"Emitted when address is added to whitelist."},"SweepToken(address,address,uint256)":{"notice":"Emitted on sweep token success"},"TrustedRemoteRemoved(uint16)":{"notice":"Event emitted when trusted remote sets to empty."},"UpdateSendAndCallEnabled(bool)":{"notice":"Event emitted when SendAndCallEnabled updated successfully."}},"kind":"user","methods":{"chainIdToLast24HourReceiveWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from remote chain."},"chainIdToLast24HourReceived(uint16)":{"notice":"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain."},"chainIdToLast24HourTransferred(uint16)":{"notice":"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain."},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from local chain."},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain."},"chainIdToMaxDailyReceiveLimit(uint16)":{"notice":"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleReceiveTransactionLimit(uint16)":{"notice":"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleTransactionLimit(uint16)":{"notice":"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain."},"isEligibleToSend(address,uint16,uint256)":{"notice":"Checks the eligibility of a sender to initiate a cross-chain token transfer."},"oracle()":{"notice":"The address of ResilientOracle contract wrapped in its interface."},"pause()":{"notice":"Triggers stopped state of the bridge."},"removeTrustedRemote(uint16)":{"notice":"Remove trusted remote from storage."},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening."},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"notice":"Initiates a cross-chain token transfer and triggers a call on the destination chain."},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) transactions amount."},"setMaxDailyReceiveLimit(uint16,uint256)":{"notice":"Sets the maximum daily limit for receiving transactions."},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"notice":"Sets the maximum limit for a single receive transaction."},"setMaxSingleTransactionLimit(uint16,uint256)":{"notice":"Sets the limit of single transaction amount."},"setOracle(address)":{"notice":"Set the address of the ResilientOracle contract."},"setWhitelist(address,bool)":{"notice":"Sets the whitelist address to skip checks on transaction limit."},"sweepToken(address,address,uint256)":{"notice":"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user"},"token()":{"notice":"Return's the address of the inner token of this bridge."},"unpause()":{"notice":"Triggers resume state of the bridge."},"updateSendAndCallEnabled(bool)":{"notice":"It enables or disables sendAndCall functionality for the bridge."},"whitelist(address)":{"notice":"Address on which cap check and bound limit is not applicable."}},"notice":"The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token. It manages transaction limits of a single and daily transactions. This contract inherits key functionalities from other contracts, including pausing capabilities and error handling. It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses. The contract allows the owner to configure limits, set whitelists, and control pausing. Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.","version":1}}},"contracts/Bridge/XVSBridgeAdmin.sol":{"XVSBridgeAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"XVSBridge_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"calledContract","type":"address"},{"internalType":"string","name":"methodSignature","type":"string"}],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"signature","type":"string"},{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"FunctionRegistryChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":false,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"XVSBridge","outputs":[{"internalType":"contract IXVSProxyOFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"contract IAccessControlManagerV8","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"functionRegistry","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"remoteAddress_","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"},{"internalType":"bytes","name":"remoteAddress_","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"transferBridgeOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"signatures_","type":"string[]"},{"internalType":"bool[]","name":"active_","type":"bool[]"}],"name":"upsertSignature","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."}},"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"params":{"accessControlManager_":"Address of access control manager contract."}},"isTrustedRemote(uint16,bytes)":{"custom:error":"ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.","params":{"remoteAddress_":"Address of the destination bridge.","remoteChainId_":"Chain Id of the destination chain."},"returns":{"_0":"Bool indicating whether the remote chain is trusted or not."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"setAccessControlManager(address)":{"custom:access":"Only Governance","custom:event":"Emits NewAccessControlManager event","details":"Admin function to set address of AccessControlManager","params":{"accessControlManager_":"The new address of the AccessControlManager"}},"setTrustedRemoteAddress(uint16,bytes)":{"custom:access":"Controlled by AccessControlManager.","custom:error":"ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.","params":{"remoteAddress_":"Address of the destination bridge.","remoteChainId_":"Chain Id of the destination chain."}},"transferBridgeOwnership(address)":{"custom:access":"Controlled by AccessControlManager.","params":{"newOwner_":"New owner of the XVS Bridge."}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner."},"upsertSignature(string[],bool[])":{"custom:access":"Only owner.","custom:event":"Emits FunctionRegistryChanged if bool value of function changes.","params":{"active_":"bool value, should be true to add function.","signatures_":"Function signature to be added or removed."}}},"stateVariables":{"XVSBridge":{"custom:oz-upgrades-unsafe-allow":"state-variable-immutable"}},"title":"XVSBridgeAdmin","version":1},"evm":{"bytecode":{"functionDebugData":{"@_10459":{"entryPoint":null,"id":10459,"parameterSlots":1,"returnSlots":0},"@_disableInitializers_4595":{"entryPoint":125,"id":4595,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":83,"id":9333,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":299,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":351,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":426,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":260,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":279,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2833:65","nodeType":"YulBlock","src":"0:2833:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"922:274:65","nodeType":"YulBlock","src":"922:274:65","statements":[{"body":{"nativeSrc":"968:83:65","nodeType":"YulBlock","src":"968:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:65","nodeType":"YulIdentifier","src":"970:77:65"},"nativeSrc":"970:79:65","nodeType":"YulFunctionCall","src":"970:79:65"},"nativeSrc":"970:79:65","nodeType":"YulExpressionStatement","src":"970:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:65","nodeType":"YulIdentifier","src":"943:7:65"},{"name":"headStart","nativeSrc":"952:9:65","nodeType":"YulIdentifier","src":"952:9:65"}],"functionName":{"name":"sub","nativeSrc":"939:3:65","nodeType":"YulIdentifier","src":"939:3:65"},"nativeSrc":"939:23:65","nodeType":"YulFunctionCall","src":"939:23:65"},{"kind":"number","nativeSrc":"964:2:65","nodeType":"YulLiteral","src":"964:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:32:65","nodeType":"YulFunctionCall","src":"935:32:65"},"nativeSrc":"932:119:65","nodeType":"YulIf","src":"932:119:65"},{"nativeSrc":"1061:128:65","nodeType":"YulBlock","src":"1061:128:65","statements":[{"nativeSrc":"1076:15:65","nodeType":"YulVariableDeclaration","src":"1076:15:65","value":{"kind":"number","nativeSrc":"1090:1:65","nodeType":"YulLiteral","src":"1090:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:65","nodeType":"YulTypedName","src":"1080:6:65","type":""}]},{"nativeSrc":"1105:74:65","nodeType":"YulAssignment","src":"1105:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:65","nodeType":"YulIdentifier","src":"1151:9:65"},{"name":"offset","nativeSrc":"1162:6:65","nodeType":"YulIdentifier","src":"1162:6:65"}],"functionName":{"name":"add","nativeSrc":"1147:3:65","nodeType":"YulIdentifier","src":"1147:3:65"},"nativeSrc":"1147:22:65","nodeType":"YulFunctionCall","src":"1147:22:65"},{"name":"dataEnd","nativeSrc":"1171:7:65","nodeType":"YulIdentifier","src":"1171:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:65","nodeType":"YulIdentifier","src":"1115:31:65"},"nativeSrc":"1115:64:65","nodeType":"YulFunctionCall","src":"1115:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:65","nodeType":"YulIdentifier","src":"1105:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:65","nodeType":"YulTypedName","src":"892:9:65","type":""},{"name":"dataEnd","nativeSrc":"903:7:65","nodeType":"YulTypedName","src":"903:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:65","nodeType":"YulTypedName","src":"915:6:65","type":""}],"src":"845:351:65"},{"body":{"nativeSrc":"1298:73:65","nodeType":"YulBlock","src":"1298:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1315:3:65","nodeType":"YulIdentifier","src":"1315:3:65"},{"name":"length","nativeSrc":"1320:6:65","nodeType":"YulIdentifier","src":"1320:6:65"}],"functionName":{"name":"mstore","nativeSrc":"1308:6:65","nodeType":"YulIdentifier","src":"1308:6:65"},"nativeSrc":"1308:19:65","nodeType":"YulFunctionCall","src":"1308:19:65"},"nativeSrc":"1308:19:65","nodeType":"YulExpressionStatement","src":"1308:19:65"},{"nativeSrc":"1336:29:65","nodeType":"YulAssignment","src":"1336:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"1355:3:65","nodeType":"YulIdentifier","src":"1355:3:65"},{"kind":"number","nativeSrc":"1360:4:65","nodeType":"YulLiteral","src":"1360:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1351:3:65","nodeType":"YulIdentifier","src":"1351:3:65"},"nativeSrc":"1351:14:65","nodeType":"YulFunctionCall","src":"1351:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"1336:11:65","nodeType":"YulIdentifier","src":"1336:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1202:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1270:3:65","nodeType":"YulTypedName","src":"1270:3:65","type":""},{"name":"length","nativeSrc":"1275:6:65","nodeType":"YulTypedName","src":"1275:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1286:11:65","nodeType":"YulTypedName","src":"1286:11:65","type":""}],"src":"1202:169:65"},{"body":{"nativeSrc":"1483:120:65","nodeType":"YulBlock","src":"1483:120:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1505:6:65","nodeType":"YulIdentifier","src":"1505:6:65"},{"kind":"number","nativeSrc":"1513:1:65","nodeType":"YulLiteral","src":"1513:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1501:3:65","nodeType":"YulIdentifier","src":"1501:3:65"},"nativeSrc":"1501:14:65","nodeType":"YulFunctionCall","src":"1501:14:65"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469","kind":"string","nativeSrc":"1517:34:65","nodeType":"YulLiteral","src":"1517:34:65","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nativeSrc":"1494:6:65","nodeType":"YulIdentifier","src":"1494:6:65"},"nativeSrc":"1494:58:65","nodeType":"YulFunctionCall","src":"1494:58:65"},"nativeSrc":"1494:58:65","nodeType":"YulExpressionStatement","src":"1494:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1573:6:65","nodeType":"YulIdentifier","src":"1573:6:65"},{"kind":"number","nativeSrc":"1581:2:65","nodeType":"YulLiteral","src":"1581:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1569:3:65","nodeType":"YulIdentifier","src":"1569:3:65"},"nativeSrc":"1569:15:65","nodeType":"YulFunctionCall","src":"1569:15:65"},{"hexValue":"616c697a696e67","kind":"string","nativeSrc":"1586:9:65","nodeType":"YulLiteral","src":"1586:9:65","type":"","value":"alizing"}],"functionName":{"name":"mstore","nativeSrc":"1562:6:65","nodeType":"YulIdentifier","src":"1562:6:65"},"nativeSrc":"1562:34:65","nodeType":"YulFunctionCall","src":"1562:34:65"},"nativeSrc":"1562:34:65","nodeType":"YulExpressionStatement","src":"1562:34:65"}]},"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"1377:226:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1475:6:65","nodeType":"YulTypedName","src":"1475:6:65","type":""}],"src":"1377:226:65"},{"body":{"nativeSrc":"1755:220:65","nodeType":"YulBlock","src":"1755:220:65","statements":[{"nativeSrc":"1765:74:65","nodeType":"YulAssignment","src":"1765:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"1831:3:65","nodeType":"YulIdentifier","src":"1831:3:65"},{"kind":"number","nativeSrc":"1836:2:65","nodeType":"YulLiteral","src":"1836:2:65","type":"","value":"39"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1772:58:65","nodeType":"YulIdentifier","src":"1772:58:65"},"nativeSrc":"1772:67:65","nodeType":"YulFunctionCall","src":"1772:67:65"},"variableNames":[{"name":"pos","nativeSrc":"1765:3:65","nodeType":"YulIdentifier","src":"1765:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1937:3:65","nodeType":"YulIdentifier","src":"1937:3:65"}],"functionName":{"name":"store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","nativeSrc":"1848:88:65","nodeType":"YulIdentifier","src":"1848:88:65"},"nativeSrc":"1848:93:65","nodeType":"YulFunctionCall","src":"1848:93:65"},"nativeSrc":"1848:93:65","nodeType":"YulExpressionStatement","src":"1848:93:65"},{"nativeSrc":"1950:19:65","nodeType":"YulAssignment","src":"1950:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"1961:3:65","nodeType":"YulIdentifier","src":"1961:3:65"},{"kind":"number","nativeSrc":"1966:2:65","nodeType":"YulLiteral","src":"1966:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1957:3:65","nodeType":"YulIdentifier","src":"1957:3:65"},"nativeSrc":"1957:12:65","nodeType":"YulFunctionCall","src":"1957:12:65"},"variableNames":[{"name":"end","nativeSrc":"1950:3:65","nodeType":"YulIdentifier","src":"1950:3:65"}]}]},"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"1609:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1743:3:65","nodeType":"YulTypedName","src":"1743:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1751:3:65","nodeType":"YulTypedName","src":"1751:3:65","type":""}],"src":"1609:366:65"},{"body":{"nativeSrc":"2152:248:65","nodeType":"YulBlock","src":"2152:248:65","statements":[{"nativeSrc":"2162:26:65","nodeType":"YulAssignment","src":"2162:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"2174:9:65","nodeType":"YulIdentifier","src":"2174:9:65"},{"kind":"number","nativeSrc":"2185:2:65","nodeType":"YulLiteral","src":"2185:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2170:3:65","nodeType":"YulIdentifier","src":"2170:3:65"},"nativeSrc":"2170:18:65","nodeType":"YulFunctionCall","src":"2170:18:65"},"variableNames":[{"name":"tail","nativeSrc":"2162:4:65","nodeType":"YulIdentifier","src":"2162:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2209:9:65","nodeType":"YulIdentifier","src":"2209:9:65"},{"kind":"number","nativeSrc":"2220:1:65","nodeType":"YulLiteral","src":"2220:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2205:3:65","nodeType":"YulIdentifier","src":"2205:3:65"},"nativeSrc":"2205:17:65","nodeType":"YulFunctionCall","src":"2205:17:65"},{"arguments":[{"name":"tail","nativeSrc":"2228:4:65","nodeType":"YulIdentifier","src":"2228:4:65"},{"name":"headStart","nativeSrc":"2234:9:65","nodeType":"YulIdentifier","src":"2234:9:65"}],"functionName":{"name":"sub","nativeSrc":"2224:3:65","nodeType":"YulIdentifier","src":"2224:3:65"},"nativeSrc":"2224:20:65","nodeType":"YulFunctionCall","src":"2224:20:65"}],"functionName":{"name":"mstore","nativeSrc":"2198:6:65","nodeType":"YulIdentifier","src":"2198:6:65"},"nativeSrc":"2198:47:65","nodeType":"YulFunctionCall","src":"2198:47:65"},"nativeSrc":"2198:47:65","nodeType":"YulExpressionStatement","src":"2198:47:65"},{"nativeSrc":"2254:139:65","nodeType":"YulAssignment","src":"2254:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"2388:4:65","nodeType":"YulIdentifier","src":"2388:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack","nativeSrc":"2262:124:65","nodeType":"YulIdentifier","src":"2262:124:65"},"nativeSrc":"2262:131:65","nodeType":"YulFunctionCall","src":"2262:131:65"},"variableNames":[{"name":"tail","nativeSrc":"2254:4:65","nodeType":"YulIdentifier","src":"2254:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1981:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2132:9:65","nodeType":"YulTypedName","src":"2132:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2147:4:65","nodeType":"YulTypedName","src":"2147:4:65","type":""}],"src":"1981:419:65"},{"body":{"nativeSrc":"2449:43:65","nodeType":"YulBlock","src":"2449:43:65","statements":[{"nativeSrc":"2459:27:65","nodeType":"YulAssignment","src":"2459:27:65","value":{"arguments":[{"name":"value","nativeSrc":"2474:5:65","nodeType":"YulIdentifier","src":"2474:5:65"},{"kind":"number","nativeSrc":"2481:4:65","nodeType":"YulLiteral","src":"2481:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2470:3:65","nodeType":"YulIdentifier","src":"2470:3:65"},"nativeSrc":"2470:16:65","nodeType":"YulFunctionCall","src":"2470:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2459:7:65","nodeType":"YulIdentifier","src":"2459:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2406:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2431:5:65","nodeType":"YulTypedName","src":"2431:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2441:7:65","nodeType":"YulTypedName","src":"2441:7:65","type":""}],"src":"2406:86:65"},{"body":{"nativeSrc":"2559:51:65","nodeType":"YulBlock","src":"2559:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2576:3:65","nodeType":"YulIdentifier","src":"2576:3:65"},{"arguments":[{"name":"value","nativeSrc":"2597:5:65","nodeType":"YulIdentifier","src":"2597:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2581:15:65","nodeType":"YulIdentifier","src":"2581:15:65"},"nativeSrc":"2581:22:65","nodeType":"YulFunctionCall","src":"2581:22:65"}],"functionName":{"name":"mstore","nativeSrc":"2569:6:65","nodeType":"YulIdentifier","src":"2569:6:65"},"nativeSrc":"2569:35:65","nodeType":"YulFunctionCall","src":"2569:35:65"},"nativeSrc":"2569:35:65","nodeType":"YulExpressionStatement","src":"2569:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2498:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2547:5:65","nodeType":"YulTypedName","src":"2547:5:65","type":""},{"name":"pos","nativeSrc":"2554:3:65","nodeType":"YulTypedName","src":"2554:3:65","type":""}],"src":"2498:112:65"},{"body":{"nativeSrc":"2710:120:65","nodeType":"YulBlock","src":"2710:120:65","statements":[{"nativeSrc":"2720:26:65","nodeType":"YulAssignment","src":"2720:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"2732:9:65","nodeType":"YulIdentifier","src":"2732:9:65"},{"kind":"number","nativeSrc":"2743:2:65","nodeType":"YulLiteral","src":"2743:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2728:3:65","nodeType":"YulIdentifier","src":"2728:3:65"},"nativeSrc":"2728:18:65","nodeType":"YulFunctionCall","src":"2728:18:65"},"variableNames":[{"name":"tail","nativeSrc":"2720:4:65","nodeType":"YulIdentifier","src":"2720:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2796:6:65","nodeType":"YulIdentifier","src":"2796:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"2809:9:65","nodeType":"YulIdentifier","src":"2809:9:65"},{"kind":"number","nativeSrc":"2820:1:65","nodeType":"YulLiteral","src":"2820:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2805:3:65","nodeType":"YulIdentifier","src":"2805:3:65"},"nativeSrc":"2805:17:65","nodeType":"YulFunctionCall","src":"2805:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"2756:39:65","nodeType":"YulIdentifier","src":"2756:39:65"},"nativeSrc":"2756:67:65","nodeType":"YulFunctionCall","src":"2756:67:65"},"nativeSrc":"2756:67:65","nodeType":"YulExpressionStatement","src":"2756:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"2616:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2682:9:65","nodeType":"YulTypedName","src":"2682:9:65","type":""},{"name":"value0","nativeSrc":"2694:6:65","nodeType":"YulTypedName","src":"2694:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2705:4:65","nodeType":"YulTypedName","src":"2705:4:65","type":""}],"src":"2616:214:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is initi\")\n\n        mstore(add(memPtr, 32), \"alizing\")\n\n    }\n\n    function abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n        store_literal_in_memory_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611a10380380611a1083398101604081905261002f91610136565b61003881610053565b6001600160a01b03811660805261004d61007d565b506101b9565b6001600160a01b03811661007a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100ae5760405162461bcd60e51b81526004016100a59061015f565b60405180910390fd5b60005460ff90811614610102576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916100f9916101aa565b60405180910390a15b565b60006001600160a01b0382165b92915050565b61012081610104565b811461007a57600080fd5b805161011181610117565b60006020828403121561014b5761014b600080fd5b6000610157848461012b565b949350505050565b6020808252810161011181602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff8216815260208101610111565b6080516118206101f0600039600081816101400152818161022d01528181610567015281816106420152610a1501526118206000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146102d7578063c4d66de8146102e8578063e30c3978146102fb578063f2fde38b1461030c576100ea565b806379ba5097146102a25780638da5cb5b146102aa578063a6c3d165146102c4576100ea565b80633d8b38f6116100c85780633d8b38f61461025c5780633f90b5401461027c5780634bb7453e1461028f578063715018a6146101fd576100ea565b80630e32cb86146101ea578063180d295c146101ff57806327a020ef14610228575b600036606060006101066000356001600160e01b03191661031f565b905080516000036101325760405162461bcd60e51b815260040161012990610e4b565b60405180910390fd5b61013b816103cc565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686604051610178929190610e7a565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b5091509150816101dc5760405162461bcd60e51b815260040161012990610eb1565b805195506020019350505050f35b6101fd6101f8366004610ef1565b61046a565b005b61021261020d366004610f2d565b61047e565b60405161021f9190610fa6565b60405180910390f35b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161021f9190610fff565b61026f61026a366004611074565b610518565b60405161021f91906110d8565b6101fd61028a366004610ef1565b6105ed565b6101fd61029d366004611131565b6106ac565b6101fd610977565b6033546001600160a01b03165b60405161021f91906111b3565b6101fd6102d2366004611074565b6109ac565b6097546001600160a01b031661024f565b6101fd6102f6366004610ef1565b610a85565b6065546001600160a01b03166102b7565b6101fd61031a366004610ef1565b610b55565b6001600160e01b03198116600090815260c960205260409020805460609190610347906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610373906111d7565b80156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906103ff9033908690600401611203565b602060405180830381865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190611236565b90508061046657333083604051634a3fa29360e01b815260040161012993929190611257565b5050565b610472610bc6565b61047b81610bf0565b50565b60c96020526000908152604090208054610497906111d7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c3906111d7565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b60008361ffff1660000361053e5760405162461bcd60e51b8152600401610129906112c1565b61055061054b8484610c69565b610c81565b604051631ec59c7b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d8b38f6906105a0908790879087906004016112fe565b6020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611236565b90505b9392505050565b61062b6040518060400160405280602081526020017f7472616e736665724272696467654f776e6572736869702861646472657373298152506103cc565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906106779084906004016111b3565b600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b5050505050565b6106b4610bc6565b828181146106d45760405162461bcd60e51b815260040161012990611365565b60005b8181101561096d5760008686838181106106f3576106f3611375565b9050602002810190610705919061138b565b604051610713929190610e7a565b60408051918290039091206001600160e01b03198116600090815260c9602052918220805491935090610745906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610771906111d7565b80156107be5780601f10610793576101008083540402835291602001916107be565b820191906000526020600020905b8154815290600101906020018083116107a157829003601f168201915b505050505090508585848181106107d7576107d7611375565b90506020020160208101906107ec91906113f5565b80156107f757508051155b156108a95787878481811061080e5761080e611375565b9050602002810190610820919061138b565b6001600160e01b03198416600090815260c960205260409020916108459190836114c2565b507f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061087957610879611375565b905060200281019061088b919061138b565b600160405161089c93929190611585565b60405180910390a1610963565b8585848181106108bb576108bb611375565b90506020020160208101906108d091906113f5565b1580156108dd5750805115155b15610963576001600160e01b03198216600090815260c96020526040812061090491610dd1565b7f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061093757610937611375565b9050602002810190610949919061138b565b600060405161095a93929190611585565b60405180910390a15b50506001016106d7565b505050505050565b565b60655433906001600160a01b031681146109a35760405162461bcd60e51b8152600401610129906115ec565b61047b81610ca8565b6109cd6040518060600160405280602581526020016117c6602591396103cc565b8261ffff166000036109f15760405162461bcd60e51b8152600401610129906112c1565b6109fe61054b8383610c69565b60405163a6c3d16560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610a4e908690869086906004016112fe565b600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610aa55750600054600160ff909116105b80610abf5750303b158015610abf575060005460ff166001145b610adb5760405162461bcd60e51b815260040161012990611647565b6000805460ff191660011790558015610afe576000805461ff0019166101001790555b610b0782610cc1565b8015610466576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b499060019061166b565b60405180910390a15050565b610b5d610bc6565b606580546001600160a01b0383166001600160a01b03199091168117909155610b8e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146109755760405162461bcd60e51b8152600401610129906116ab565b6001600160a01b038116610c165760405162461bcd60e51b8152600401610129906116fd565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b49908390859061170d565b6000610c758284611728565b60601c90505b92915050565b6001600160a01b03811661047b576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561047b81610cf9565b600054610100900460ff16610ce85760405162461bcd60e51b8152600401610129906117b5565b610cf0610d4b565b61047b81610d7a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d725760405162461bcd60e51b8152600401610129906117b5565b610975610da1565b600054610100900460ff166104725760405162461bcd60e51b8152600401610129906117b5565b600054610100900460ff16610dc85760405162461bcd60e51b8152600401610129906117b5565b61097533610ca8565b508054610ddd906111d7565b6000825580601f10610ded575050565b601f01602090049060005260206000209081019061047b91905b80821115610e1b5760008155600101610e07565b5090565b6012815260006020820171119d5b98dd1a5bdb881b9bdd08199bdd5b9960721b815291505b5060200190565b60208082528101610c7b81610e1f565b82818337506000910152565b6000610e74838584610e5b565b50500190565b6000610e87828486610e67565b949350505050565b600b81526000602082016a18d85b1b0819985a5b195960aa1b81529150610e44565b60208082528101610c7b81610e8f565b60006001600160a01b038216610c7b565b610edb81610ec1565b811461047b57600080fd5b8035610c7b81610ed2565b600060208284031215610f0657610f06600080fd5b6000610e878484610ee6565b6001600160e01b03198116610edb565b8035610c7b81610f12565b600060208284031215610f4257610f42600080fd5b6000610e878484610f22565b60005b83811015610f69578181015183820152602001610f51565b50506000910152565b6000610f7c825190565b808452602084019350610f93818560208601610f4e565b601f19601f8201165b9093019392505050565b602080825281016105e68184610f72565b6000610c7b6001600160a01b038316610fce565b90565b6001600160a01b031690565b6000610c7b82610fb7565b6000610c7b82610fda565b610ff981610fe5565b82525050565b60208101610c7b8284610ff0565b61ffff8116610edb565b8035610c7b8161100d565b60008083601f84011261103757611037600080fd5b50813567ffffffffffffffff81111561105257611052600080fd5b60208301915083600182028301111561106d5761106d600080fd5b9250929050565b60008060006040848603121561108c5761108c600080fd5b60006110988686611017565b935050602084013567ffffffffffffffff8111156110b8576110b8600080fd5b6110c486828701611022565b92509250509250925092565b801515610ff9565b60208101610c7b82846110d0565b60008083601f8401126110fb576110fb600080fd5b50813567ffffffffffffffff81111561111657611116600080fd5b60208301915083602082028301111561106d5761106d600080fd5b6000806000806040858703121561114a5761114a600080fd5b843567ffffffffffffffff81111561116457611164600080fd5b611170878288016110e6565b9450945050602085013567ffffffffffffffff81111561119257611192600080fd5b61119e878288016110e6565b95989497509550505050565b610ff981610ec1565b60208101610c7b82846111aa565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806111eb57607f821691505b6020821081036111fd576111fd6111c1565b50919050565b6040810161121182856111aa565b81810360208301526105e38184610f72565b801515610edb565b8051610c7b81611223565b60006020828403121561124b5761124b600080fd5b6000610e87848461122b565b6060810161126582866111aa565b61127260208301856111aa565b81810360408301526112848184610f72565b95945050505050565b601881526000602082017f436861696e4964206d757374206e6f74206265207a65726f000000000000000081529150610e44565b60208082528101610c7b8161128d565b61ffff8116610ff9565b81835260006020840193506112f1838584610e5b565b601f19601f840116610f9c565b6040810161130c82866112d1565b81810360208301526112848184866112db565b602681526000602082017f496e70757420617272617973206d7573742068617665207468652073616d65208152650d8cadccee8d60d31b602082015291505b5060400190565b60208082528101610c7b8161131f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19368590030181126113a6576113a6600080fd5b80840192508235915067ffffffffffffffff8211156113c7576113c7600080fd5b6020830192506001820236038313156113e2576113e2600080fd5b509250929050565b8035610c7b81611223565b60006020828403121561140a5761140a600080fd5b6000610e8784846113ea565b634e487b7160e01b600052604160045260246000fd5b6000610c7b610fcb8381565b6114418361142c565b815460001960089490940293841b1916921b91909117905550565b6000611469818484611438565b505050565b818110156104665761148160008261145c565b60010161146e565b601f821115611469576000818152602090206020601f850104810160208510156114b05750805b6106a56020601f86010483018261146e565b8267ffffffffffffffff8111156114db576114db611416565b6114e582546111d7565b6114f0828285611489565b6000601f831160018114611524576000841561150c5750858201355b600019600886021c1981166002860217865550610a7c565b600085815260208120601f198616915b828110156115545788850135825560209485019460019092019101611534565b8683101561157057600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b604080825281016115978185876112db565b9050610e8760208301846110d0565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061135e565b60208082528101610c7b816115a6565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061135e565b60208082528101610c7b816115fc565b600060ff8216610c7b565b610ff981611657565b60208101610c7b8284611662565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610e44565b60208082528101610c7b81611679565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061135e565b60208082528101610c7b816116bb565b6040810161171b82856111aa565b6105e660208301846111aa565b80356bffffffffffffffffffffffff191682826014821015611765576117606bffffffffffffffffffffffff19836014036008021b90565b831692505b505092915050565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061135e565b60208082528101610c7b8161176d56fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a264697066735822122064478b3481d2baf49002998ce95c0b20c2411f6ef978775825123d11beb2ab1264736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1A10 CODESIZE SUB DUP1 PUSH2 0x1A10 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x136 JUMP JUMPDEST PUSH2 0x38 DUP2 PUSH2 0x53 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x80 MSTORE PUSH2 0x4D PUSH2 0x7D JUMP JUMPDEST POP PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7A JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA5 SWAP1 PUSH2 0x15F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND EQ PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP2 PUSH2 0xF9 SWAP2 PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 PUSH2 0x104 JUMP JUMPDEST DUP2 EQ PUSH2 0x7A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x111 DUP2 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH2 0x14B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x157 DUP5 DUP5 PUSH2 0x12B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x111 DUP2 PUSH1 0x27 DUP2 MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0x111 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1820 PUSH2 0x1F0 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x140 ADD MSTORE DUP2 DUP2 PUSH2 0x22D ADD MSTORE DUP2 DUP2 PUSH2 0x567 ADD MSTORE DUP2 DUP2 PUSH2 0x642 ADD MSTORE PUSH2 0xA15 ADD MSTORE PUSH2 0x1820 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x30C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x2C4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x3D8B38F6 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FD JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x27A020EF EQ PUSH2 0x228 JUMPI JUMPDEST PUSH1 0x0 CALLDATASIZE PUSH1 0x60 PUSH1 0x0 PUSH2 0x106 PUSH1 0x0 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH2 0x31F JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0xE4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x13B DUP2 PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x178 SWAP3 SWAP2 SWAP1 PUSH2 0xE7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1BA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0xEB1 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0x46A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x212 PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0xF2D JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0xFA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH2 0x26F PUSH2 0x26A CALLDATASIZE PUSH1 0x4 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x10D8 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x1131 JUMP JUMPDEST PUSH2 0x6AC JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x977 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x11B3 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x24F JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0xB55 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x347 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x373 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x395 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3C0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3A3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x3FF SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1203 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x466 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1257 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x472 PUSH2 0xBC6 JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xBF0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x497 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C3 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x510 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x510 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x54B DUP5 DUP5 PUSH2 0xC69 JUMP JUMPDEST PUSH2 0xC81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1EC59C7B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3D8B38F6 SWAP1 PUSH2 0x5A0 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E3 SWAP2 SWAP1 PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x62B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH2 0x677 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6B4 PUSH2 0xBC6 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x6D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x1365 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x96D JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x6F3 JUMPI PUSH2 0x6F3 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x705 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x713 SWAP3 SWAP2 SWAP1 PUSH2 0xE7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x745 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x771 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x793 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x7D7 JUMPI PUSH2 0x7D7 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F7 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x8A9 JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x80E JUMPI PUSH2 0x80E PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x820 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x845 SWAP2 SWAP1 DUP4 PUSH2 0x14C2 JUMP JUMPDEST POP PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x88B SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1585 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x963 JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x8BB JUMPI PUSH2 0x8BB PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8D0 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x8DD JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x963 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x904 SWAP2 PUSH2 0xDD1 JUMP JUMPDEST PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x937 JUMPI PUSH2 0x937 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x949 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x95A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1585 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x6D7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x15EC JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xCA8 JUMP JUMPDEST PUSH2 0x9CD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C6 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x3CC JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x9F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x9FE PUSH2 0x54B DUP4 DUP4 PUSH2 0xC69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA6C3D165 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xA4E SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAA5 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xABF JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xABF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xADB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x1647 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB07 DUP3 PUSH2 0xCC1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0xB49 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x166B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xB5D PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xB8E PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x975 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x16AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xB49 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 DUP5 PUSH2 0x1728 JUMP JUMPDEST PUSH1 0x60 SHR SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x47B DUP2 PUSH2 0xCF9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0xCF0 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xD7A JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x975 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x472 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xDC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x975 CALLER PUSH2 0xCA8 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0xDDD SWAP1 PUSH2 0x11D7 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xDED JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE07 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH18 0x119D5B98DD1A5BDB881B9BDD08199BDD5B99 PUSH1 0x72 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0xE1F JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE74 DUP4 DUP6 DUP5 PUSH2 0xE5B JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP3 DUP5 DUP7 PUSH2 0xE67 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH11 0x18D85B1B0819985A5B1959 PUSH1 0xAA SHL DUP2 MSTORE SWAP2 POP PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC7B JUMP JUMPDEST PUSH2 0xEDB DUP2 PUSH2 0xEC1 JUMP JUMPDEST DUP2 EQ PUSH2 0x47B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF06 JUMPI PUSH2 0xF06 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0xEDB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0xF12 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0xF22 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF69 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF51 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xF93 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x5E6 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xFCE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0xFE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0xFF0 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0xEDB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0x100D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1037 JUMPI PUSH2 0x1037 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1052 JUMPI PUSH2 0x1052 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x106D JUMPI PUSH2 0x106D PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x108C JUMPI PUSH2 0x108C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1098 DUP7 DUP7 PUSH2 0x1017 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B8 JUMPI PUSH2 0x10B8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP7 DUP3 DUP8 ADD PUSH2 0x1022 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xFF9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x10D0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10FB JUMPI PUSH2 0x10FB PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH2 0x1116 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x106D JUMPI PUSH2 0x106D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x114A JUMPI PUSH2 0x114A PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1164 JUMPI PUSH2 0x1164 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1170 DUP8 DUP3 DUP9 ADD PUSH2 0x10E6 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1192 JUMPI PUSH2 0x1192 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x119E DUP8 DUP3 DUP9 ADD PUSH2 0x10E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x11AA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x11EB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x11FD JUMPI PUSH2 0x11FD PUSH2 0x11C1 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1211 DUP3 DUP6 PUSH2 0x11AA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5E3 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xEDB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC7B DUP2 PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x124B JUMPI PUSH2 0x124B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0x122B JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1265 DUP3 DUP7 PUSH2 0x11AA JUMP JUMPDEST PUSH2 0x1272 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11AA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1284 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x128D JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0xFF9 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x12F1 DUP4 DUP6 DUP5 PUSH2 0xE5B JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0xF9C JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x130C DUP3 DUP7 PUSH2 0x12D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1284 DUP2 DUP5 DUP7 PUSH2 0x12DB JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 DUP2 MSTORE PUSH6 0xD8CADCCEE8D PUSH1 0xD3 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x131F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x13A6 JUMPI PUSH2 0x13A6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH2 0x13C7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x13E2 JUMPI PUSH2 0x13E2 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x140A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH2 0xFCB DUP4 DUP2 JUMP JUMPDEST PUSH2 0x1441 DUP4 PUSH2 0x142C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1469 DUP2 DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x466 JUMPI PUSH2 0x1481 PUSH1 0x0 DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x146E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1469 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x14B0 JUMPI POP DUP1 JUMPDEST PUSH2 0x6A5 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x146E JUMP JUMPDEST DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14DB JUMPI PUSH2 0x14DB PUSH2 0x1416 JUMP JUMPDEST PUSH2 0x14E5 DUP3 SLOAD PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x14F0 DUP3 DUP3 DUP6 PUSH2 0x1489 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1524 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x150C JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1534 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1570 JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1597 DUP2 DUP6 DUP8 PUSH2 0x12DB JUMP JUMPDEST SWAP1 POP PUSH2 0xE87 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x10D0 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x15A6 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x15FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH2 0xC7B JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x1662 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x1679 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x171B DUP3 DUP6 PUSH2 0x11AA JUMP JUMPDEST PUSH2 0x5E6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11AA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 DUP3 PUSH1 0x14 DUP3 LT ISZERO PUSH2 0x1765 JUMPI PUSH2 0x1760 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP4 PUSH1 0x14 SUB PUSH1 0x8 MUL SHL SWAP1 JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x176D JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x5822122064478B3481D2BAF49002998CE95C0B20 0xC2 COINBASE 0x1F PUSH15 0xF978775825123D11BEB2AB1264736F PUSH13 0x63430008190033000000000000 ","sourceMap":"732:5422:43:-:0;;;1254:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1296:32;1317:10;1296:20;:32::i;:::-;-1:-1:-1;;;;;1338:36:43;;;;1384:22;:20;:22::i;:::-;1254:159;732:5422;;485:136:41;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;544:75;485:136;:::o;5939:280:16:-;6007:13;;;;;;;6006:14;5998:66;;;;-1:-1:-1;;;5998:66:16;;;;;;;:::i;:::-;;;;;;;;;6078:12;;6094:15;6078:12;;;:31;6074:139;;6125:12;:30;;-1:-1:-1;;6125:30:16;6140:15;6125:30;;;;;;6174:28;;;;;;;:::i;:::-;;;;;;;;6074:139;5939:280::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:65:o;1981:419::-;2185:2;2198:47;;;2170:18;;2262:131;2170:18;1836:2;1308:19;;1517:34;1360:4;1351:14;;1494:58;-1:-1:-1;;;1569:15:65;;;1562:34;1957:12;;;1609:366;2616:214;2481:4;2470:16;;2569:35;;2743:2;2728:18;;2756:67;2498:112;2616:214;732:5422:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@XVSBridge_10427":{"entryPoint":null,"id":10427,"parameterSlots":0,"returnSlots":0},"@_10522":{"entryPoint":null,"id":10522,"parameterSlots":2,"returnSlots":1},"@__AccessControlled_init_8515":{"entryPoint":3265,"id":8515,"parameterSlots":1,"returnSlots":0},"@__AccessControlled_init_unchained_8527":{"entryPoint":3450,"id":8527,"parameterSlots":1,"returnSlots":0},"@__Ownable2Step_init_4225":{"entryPoint":3403,"id":4225,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_4351":{"entryPoint":3489,"id":4351,"parameterSlots":0,"returnSlots":0},"@_checkAccessAllowed_8618":{"entryPoint":972,"id":8618,"parameterSlots":1,"returnSlots":0},"@_checkOwner_4382":{"entryPoint":3014,"id":4382,"parameterSlots":0,"returnSlots":0},"@_getFunctionName_10730":{"entryPoint":799,"id":10730,"parameterSlots":1,"returnSlots":1},"@_msgSender_4971":{"entryPoint":null,"id":4971,"parameterSlots":0,"returnSlots":1},"@_setAccessControlManager_8588":{"entryPoint":3056,"id":8588,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_4285":{"entryPoint":3240,"id":4285,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_4439":{"entryPoint":3321,"id":4439,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_4307":{"entryPoint":2423,"id":4307,"parameterSlots":0,"returnSlots":0},"@accessControlManager_8550":{"entryPoint":null,"id":8550,"parameterSlots":0,"returnSlots":1},"@bytesToAddress_10750":{"entryPoint":3177,"id":10750,"parameterSlots":2,"returnSlots":1},"@ensureNonzeroAddress_9333":{"entryPoint":3201,"id":9333,"parameterSlots":1,"returnSlots":0},"@functionRegistry_10432":{"entryPoint":1150,"id":10432,"parameterSlots":0,"returnSlots":0},"@initialize_10472":{"entryPoint":2693,"id":10472,"parameterSlots":1,"returnSlots":0},"@isContract_4632":{"entryPoint":null,"id":4632,"parameterSlots":1,"returnSlots":1},"@isTrustedRemote_10711":{"entryPoint":1304,"id":10711,"parameterSlots":3,"returnSlots":1},"@owner_4368":{"entryPoint":null,"id":4368,"parameterSlots":0,"returnSlots":1},"@pendingOwner_4248":{"entryPoint":null,"id":4248,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_10717":{"entryPoint":2421,"id":10717,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_8540":{"entryPoint":1130,"id":8540,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_10555":{"entryPoint":2476,"id":10555,"parameterSlots":3,"returnSlots":0},"@transferBridgeOwnership_10681":{"entryPoint":1517,"id":10681,"parameterSlots":1,"returnSlots":0},"@transferOwnership_4268":{"entryPoint":2901,"id":4268,"parameterSlots":1,"returnSlots":0},"@upsertSignature_10664":{"entryPoint":1708,"id":10664,"parameterSlots":4,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3814,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":4326,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":5098,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":4651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4130,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint16":{"entryPoint":4119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":4401,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":5109,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4662,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":4212,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4304,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4827,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":3687,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_contract$_IAccessControlManagerV8_$8664_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IXVSProxyOFT_$11260_to_t_address_fromStack":{"entryPoint":4080,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack":{"entryPoint":5730,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":3954,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":5542,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1_to_t_string_memory_ptr_fromStack":{"entryPoint":4749,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack":{"entryPoint":5819,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack":{"entryPoint":5628,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e_to_t_string_memory_ptr_fromStack":{"entryPoint":4895,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":5753,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a_to_t_string_memory_ptr_fromStack":{"entryPoint":3727,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d_to_t_string_memory_ptr_fromStack":{"entryPoint":3615,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack":{"entryPoint":5997,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":4817,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3706,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":5901,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4695,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4611,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8664__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IXVSProxyOFT_$11260__to_t_address__fromStack_reversed":{"entryPoint":4095,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":5739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed":{"entryPoint":5509,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4006,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5612,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4801,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5885,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5703,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4965,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5803,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3761,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3659,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6069,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4862,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":5003,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_bytes_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_string_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":5257,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":3777,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes20":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":5230,"id":null,"parameterSlots":2,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20":{"entryPoint":5928,"id":null,"parameterSlots":2,"returnSlots":1},"convert_t_contract$_IAccessControlManagerV8_$8664_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IXVSProxyOFT_$11260_to_t_address":{"entryPoint":4069,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint8":{"entryPoint":5719,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4058,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4023,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":5164,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":5314,"id":null,"parameterSlots":3,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":3675,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":3918,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":4567,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":4545,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":4981,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5142,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":5212,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":5176,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3794,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4643,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3858,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":4109,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:32144:65","nodeType":"YulBlock","src":"0:32144:65","statements":[{"body":{"nativeSrc":"103:73:65","nodeType":"YulBlock","src":"103:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"120:3:65","nodeType":"YulIdentifier","src":"120:3:65"},{"name":"length","nativeSrc":"125:6:65","nodeType":"YulIdentifier","src":"125:6:65"}],"functionName":{"name":"mstore","nativeSrc":"113:6:65","nodeType":"YulIdentifier","src":"113:6:65"},"nativeSrc":"113:19:65","nodeType":"YulFunctionCall","src":"113:19:65"},"nativeSrc":"113:19:65","nodeType":"YulExpressionStatement","src":"113:19:65"},{"nativeSrc":"141:29:65","nodeType":"YulAssignment","src":"141:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"160:3:65","nodeType":"YulIdentifier","src":"160:3:65"},{"kind":"number","nativeSrc":"165:4:65","nodeType":"YulLiteral","src":"165:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"156:3:65","nodeType":"YulIdentifier","src":"156:3:65"},"nativeSrc":"156:14:65","nodeType":"YulFunctionCall","src":"156:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"141:11:65","nodeType":"YulIdentifier","src":"141:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75:3:65","nodeType":"YulTypedName","src":"75:3:65","type":""},{"name":"length","nativeSrc":"80:6:65","nodeType":"YulTypedName","src":"80:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"91:11:65","nodeType":"YulTypedName","src":"91:11:65","type":""}],"src":"7:169:65"},{"body":{"nativeSrc":"288:62:65","nodeType":"YulBlock","src":"288:62:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},{"kind":"number","nativeSrc":"318:1:65","nodeType":"YulLiteral","src":"318:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"306:3:65","nodeType":"YulIdentifier","src":"306:3:65"},"nativeSrc":"306:14:65","nodeType":"YulFunctionCall","src":"306:14:65"},{"hexValue":"46756e6374696f6e206e6f7420666f756e64","kind":"string","nativeSrc":"322:20:65","nodeType":"YulLiteral","src":"322:20:65","type":"","value":"Function not found"}],"functionName":{"name":"mstore","nativeSrc":"299:6:65","nodeType":"YulIdentifier","src":"299:6:65"},"nativeSrc":"299:44:65","nodeType":"YulFunctionCall","src":"299:44:65"},"nativeSrc":"299:44:65","nodeType":"YulExpressionStatement","src":"299:44:65"}]},"name":"store_literal_in_memory_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","nativeSrc":"182:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"280:6:65","nodeType":"YulTypedName","src":"280:6:65","type":""}],"src":"182:168:65"},{"body":{"nativeSrc":"502:220:65","nodeType":"YulBlock","src":"502:220:65","statements":[{"nativeSrc":"512:74:65","nodeType":"YulAssignment","src":"512:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"578:3:65","nodeType":"YulIdentifier","src":"578:3:65"},{"kind":"number","nativeSrc":"583:2:65","nodeType":"YulLiteral","src":"583:2:65","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"519:58:65","nodeType":"YulIdentifier","src":"519:58:65"},"nativeSrc":"519:67:65","nodeType":"YulFunctionCall","src":"519:67:65"},"variableNames":[{"name":"pos","nativeSrc":"512:3:65","nodeType":"YulIdentifier","src":"512:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"684:3:65","nodeType":"YulIdentifier","src":"684:3:65"}],"functionName":{"name":"store_literal_in_memory_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d","nativeSrc":"595:88:65","nodeType":"YulIdentifier","src":"595:88:65"},"nativeSrc":"595:93:65","nodeType":"YulFunctionCall","src":"595:93:65"},"nativeSrc":"595:93:65","nodeType":"YulExpressionStatement","src":"595:93:65"},{"nativeSrc":"697:19:65","nodeType":"YulAssignment","src":"697:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"708:3:65","nodeType":"YulIdentifier","src":"708:3:65"},{"kind":"number","nativeSrc":"713:2:65","nodeType":"YulLiteral","src":"713:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"704:3:65","nodeType":"YulIdentifier","src":"704:3:65"},"nativeSrc":"704:12:65","nodeType":"YulFunctionCall","src":"704:12:65"},"variableNames":[{"name":"end","nativeSrc":"697:3:65","nodeType":"YulIdentifier","src":"697:3:65"}]}]},"name":"abi_encode_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d_to_t_string_memory_ptr_fromStack","nativeSrc":"356:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"490:3:65","nodeType":"YulTypedName","src":"490:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"498:3:65","nodeType":"YulTypedName","src":"498:3:65","type":""}],"src":"356:366:65"},{"body":{"nativeSrc":"899:248:65","nodeType":"YulBlock","src":"899:248:65","statements":[{"nativeSrc":"909:26:65","nodeType":"YulAssignment","src":"909:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"921:9:65","nodeType":"YulIdentifier","src":"921:9:65"},{"kind":"number","nativeSrc":"932:2:65","nodeType":"YulLiteral","src":"932:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"917:3:65","nodeType":"YulIdentifier","src":"917:3:65"},"nativeSrc":"917:18:65","nodeType":"YulFunctionCall","src":"917:18:65"},"variableNames":[{"name":"tail","nativeSrc":"909:4:65","nodeType":"YulIdentifier","src":"909:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"956:9:65","nodeType":"YulIdentifier","src":"956:9:65"},{"kind":"number","nativeSrc":"967:1:65","nodeType":"YulLiteral","src":"967:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"952:3:65","nodeType":"YulIdentifier","src":"952:3:65"},"nativeSrc":"952:17:65","nodeType":"YulFunctionCall","src":"952:17:65"},{"arguments":[{"name":"tail","nativeSrc":"975:4:65","nodeType":"YulIdentifier","src":"975:4:65"},{"name":"headStart","nativeSrc":"981:9:65","nodeType":"YulIdentifier","src":"981:9:65"}],"functionName":{"name":"sub","nativeSrc":"971:3:65","nodeType":"YulIdentifier","src":"971:3:65"},"nativeSrc":"971:20:65","nodeType":"YulFunctionCall","src":"971:20:65"}],"functionName":{"name":"mstore","nativeSrc":"945:6:65","nodeType":"YulIdentifier","src":"945:6:65"},"nativeSrc":"945:47:65","nodeType":"YulFunctionCall","src":"945:47:65"},"nativeSrc":"945:47:65","nodeType":"YulExpressionStatement","src":"945:47:65"},{"nativeSrc":"1001:139:65","nodeType":"YulAssignment","src":"1001:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"1135:4:65","nodeType":"YulIdentifier","src":"1135:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d_to_t_string_memory_ptr_fromStack","nativeSrc":"1009:124:65","nodeType":"YulIdentifier","src":"1009:124:65"},"nativeSrc":"1009:131:65","nodeType":"YulFunctionCall","src":"1009:131:65"},"variableNames":[{"name":"tail","nativeSrc":"1001:4:65","nodeType":"YulIdentifier","src":"1001:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"728:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"879:9:65","nodeType":"YulTypedName","src":"879:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"894:4:65","nodeType":"YulTypedName","src":"894:4:65","type":""}],"src":"728:419:65"},{"body":{"nativeSrc":"1266:34:65","nodeType":"YulBlock","src":"1266:34:65","statements":[{"nativeSrc":"1276:18:65","nodeType":"YulAssignment","src":"1276:18:65","value":{"name":"pos","nativeSrc":"1291:3:65","nodeType":"YulIdentifier","src":"1291:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"1276:11:65","nodeType":"YulIdentifier","src":"1276:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"1153:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1238:3:65","nodeType":"YulTypedName","src":"1238:3:65","type":""},{"name":"length","nativeSrc":"1243:6:65","nodeType":"YulTypedName","src":"1243:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1254:11:65","nodeType":"YulTypedName","src":"1254:11:65","type":""}],"src":"1153:147:65"},{"body":{"nativeSrc":"1370:84:65","nodeType":"YulBlock","src":"1370:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1394:3:65","nodeType":"YulIdentifier","src":"1394:3:65"},{"name":"src","nativeSrc":"1399:3:65","nodeType":"YulIdentifier","src":"1399:3:65"},{"name":"length","nativeSrc":"1404:6:65","nodeType":"YulIdentifier","src":"1404:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"1381:12:65","nodeType":"YulIdentifier","src":"1381:12:65"},"nativeSrc":"1381:30:65","nodeType":"YulFunctionCall","src":"1381:30:65"},"nativeSrc":"1381:30:65","nodeType":"YulExpressionStatement","src":"1381:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1431:3:65","nodeType":"YulIdentifier","src":"1431:3:65"},{"name":"length","nativeSrc":"1436:6:65","nodeType":"YulIdentifier","src":"1436:6:65"}],"functionName":{"name":"add","nativeSrc":"1427:3:65","nodeType":"YulIdentifier","src":"1427:3:65"},"nativeSrc":"1427:16:65","nodeType":"YulFunctionCall","src":"1427:16:65"},{"kind":"number","nativeSrc":"1445:1:65","nodeType":"YulLiteral","src":"1445:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1420:6:65","nodeType":"YulIdentifier","src":"1420:6:65"},"nativeSrc":"1420:27:65","nodeType":"YulFunctionCall","src":"1420:27:65"},"nativeSrc":"1420:27:65","nodeType":"YulExpressionStatement","src":"1420:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1306:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1352:3:65","nodeType":"YulTypedName","src":"1352:3:65","type":""},{"name":"dst","nativeSrc":"1357:3:65","nodeType":"YulTypedName","src":"1357:3:65","type":""},{"name":"length","nativeSrc":"1362:6:65","nodeType":"YulTypedName","src":"1362:6:65","type":""}],"src":"1306:148:65"},{"body":{"nativeSrc":"1600:209:65","nodeType":"YulBlock","src":"1600:209:65","statements":[{"nativeSrc":"1610:95:65","nodeType":"YulAssignment","src":"1610:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"1693:3:65","nodeType":"YulIdentifier","src":"1693:3:65"},{"name":"length","nativeSrc":"1698:6:65","nodeType":"YulIdentifier","src":"1698:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"1617:75:65","nodeType":"YulIdentifier","src":"1617:75:65"},"nativeSrc":"1617:88:65","nodeType":"YulFunctionCall","src":"1617:88:65"},"variableNames":[{"name":"pos","nativeSrc":"1610:3:65","nodeType":"YulIdentifier","src":"1610:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"1752:5:65","nodeType":"YulIdentifier","src":"1752:5:65"},{"name":"pos","nativeSrc":"1759:3:65","nodeType":"YulIdentifier","src":"1759:3:65"},{"name":"length","nativeSrc":"1764:6:65","nodeType":"YulIdentifier","src":"1764:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"1715:36:65","nodeType":"YulIdentifier","src":"1715:36:65"},"nativeSrc":"1715:56:65","nodeType":"YulFunctionCall","src":"1715:56:65"},"nativeSrc":"1715:56:65","nodeType":"YulExpressionStatement","src":"1715:56:65"},{"nativeSrc":"1780:23:65","nodeType":"YulAssignment","src":"1780:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"1791:3:65","nodeType":"YulIdentifier","src":"1791:3:65"},{"name":"length","nativeSrc":"1796:6:65","nodeType":"YulIdentifier","src":"1796:6:65"}],"functionName":{"name":"add","nativeSrc":"1787:3:65","nodeType":"YulIdentifier","src":"1787:3:65"},"nativeSrc":"1787:16:65","nodeType":"YulFunctionCall","src":"1787:16:65"},"variableNames":[{"name":"end","nativeSrc":"1780:3:65","nodeType":"YulIdentifier","src":"1780:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"1482:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"1573:5:65","nodeType":"YulTypedName","src":"1573:5:65","type":""},{"name":"length","nativeSrc":"1580:6:65","nodeType":"YulTypedName","src":"1580:6:65","type":""},{"name":"pos","nativeSrc":"1588:3:65","nodeType":"YulTypedName","src":"1588:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1596:3:65","nodeType":"YulTypedName","src":"1596:3:65","type":""}],"src":"1482:327:65"},{"body":{"nativeSrc":"1959:147:65","nodeType":"YulBlock","src":"1959:147:65","statements":[{"nativeSrc":"1970:110:65","nodeType":"YulAssignment","src":"1970:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"2059:6:65","nodeType":"YulIdentifier","src":"2059:6:65"},{"name":"value1","nativeSrc":"2067:6:65","nodeType":"YulIdentifier","src":"2067:6:65"},{"name":"pos","nativeSrc":"2076:3:65","nodeType":"YulIdentifier","src":"2076:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"1977:81:65","nodeType":"YulIdentifier","src":"1977:81:65"},"nativeSrc":"1977:103:65","nodeType":"YulFunctionCall","src":"1977:103:65"},"variableNames":[{"name":"pos","nativeSrc":"1970:3:65","nodeType":"YulIdentifier","src":"1970:3:65"}]},{"nativeSrc":"2090:10:65","nodeType":"YulAssignment","src":"2090:10:65","value":{"name":"pos","nativeSrc":"2097:3:65","nodeType":"YulIdentifier","src":"2097:3:65"},"variableNames":[{"name":"end","nativeSrc":"2090:3:65","nodeType":"YulIdentifier","src":"2090:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"1815:291:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1930:3:65","nodeType":"YulTypedName","src":"1930:3:65","type":""},{"name":"value1","nativeSrc":"1936:6:65","nodeType":"YulTypedName","src":"1936:6:65","type":""},{"name":"value0","nativeSrc":"1944:6:65","nodeType":"YulTypedName","src":"1944:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1955:3:65","nodeType":"YulTypedName","src":"1955:3:65","type":""}],"src":"1815:291:65"},{"body":{"nativeSrc":"2218:55:65","nodeType":"YulBlock","src":"2218:55:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2240:6:65","nodeType":"YulIdentifier","src":"2240:6:65"},{"kind":"number","nativeSrc":"2248:1:65","nodeType":"YulLiteral","src":"2248:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2236:3:65","nodeType":"YulIdentifier","src":"2236:3:65"},"nativeSrc":"2236:14:65","nodeType":"YulFunctionCall","src":"2236:14:65"},{"hexValue":"63616c6c206661696c6564","kind":"string","nativeSrc":"2252:13:65","nodeType":"YulLiteral","src":"2252:13:65","type":"","value":"call failed"}],"functionName":{"name":"mstore","nativeSrc":"2229:6:65","nodeType":"YulIdentifier","src":"2229:6:65"},"nativeSrc":"2229:37:65","nodeType":"YulFunctionCall","src":"2229:37:65"},"nativeSrc":"2229:37:65","nodeType":"YulExpressionStatement","src":"2229:37:65"}]},"name":"store_literal_in_memory_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","nativeSrc":"2112:161:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2210:6:65","nodeType":"YulTypedName","src":"2210:6:65","type":""}],"src":"2112:161:65"},{"body":{"nativeSrc":"2425:220:65","nodeType":"YulBlock","src":"2425:220:65","statements":[{"nativeSrc":"2435:74:65","nodeType":"YulAssignment","src":"2435:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"2501:3:65","nodeType":"YulIdentifier","src":"2501:3:65"},{"kind":"number","nativeSrc":"2506:2:65","nodeType":"YulLiteral","src":"2506:2:65","type":"","value":"11"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2442:58:65","nodeType":"YulIdentifier","src":"2442:58:65"},"nativeSrc":"2442:67:65","nodeType":"YulFunctionCall","src":"2442:67:65"},"variableNames":[{"name":"pos","nativeSrc":"2435:3:65","nodeType":"YulIdentifier","src":"2435:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2607:3:65","nodeType":"YulIdentifier","src":"2607:3:65"}],"functionName":{"name":"store_literal_in_memory_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a","nativeSrc":"2518:88:65","nodeType":"YulIdentifier","src":"2518:88:65"},"nativeSrc":"2518:93:65","nodeType":"YulFunctionCall","src":"2518:93:65"},"nativeSrc":"2518:93:65","nodeType":"YulExpressionStatement","src":"2518:93:65"},{"nativeSrc":"2620:19:65","nodeType":"YulAssignment","src":"2620:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"2631:3:65","nodeType":"YulIdentifier","src":"2631:3:65"},{"kind":"number","nativeSrc":"2636:2:65","nodeType":"YulLiteral","src":"2636:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2627:3:65","nodeType":"YulIdentifier","src":"2627:3:65"},"nativeSrc":"2627:12:65","nodeType":"YulFunctionCall","src":"2627:12:65"},"variableNames":[{"name":"end","nativeSrc":"2620:3:65","nodeType":"YulIdentifier","src":"2620:3:65"}]}]},"name":"abi_encode_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a_to_t_string_memory_ptr_fromStack","nativeSrc":"2279:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2413:3:65","nodeType":"YulTypedName","src":"2413:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2421:3:65","nodeType":"YulTypedName","src":"2421:3:65","type":""}],"src":"2279:366:65"},{"body":{"nativeSrc":"2822:248:65","nodeType":"YulBlock","src":"2822:248:65","statements":[{"nativeSrc":"2832:26:65","nodeType":"YulAssignment","src":"2832:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"2844:9:65","nodeType":"YulIdentifier","src":"2844:9:65"},{"kind":"number","nativeSrc":"2855:2:65","nodeType":"YulLiteral","src":"2855:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2840:3:65","nodeType":"YulIdentifier","src":"2840:3:65"},"nativeSrc":"2840:18:65","nodeType":"YulFunctionCall","src":"2840:18:65"},"variableNames":[{"name":"tail","nativeSrc":"2832:4:65","nodeType":"YulIdentifier","src":"2832:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2879:9:65","nodeType":"YulIdentifier","src":"2879:9:65"},{"kind":"number","nativeSrc":"2890:1:65","nodeType":"YulLiteral","src":"2890:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2875:3:65","nodeType":"YulIdentifier","src":"2875:3:65"},"nativeSrc":"2875:17:65","nodeType":"YulFunctionCall","src":"2875:17:65"},{"arguments":[{"name":"tail","nativeSrc":"2898:4:65","nodeType":"YulIdentifier","src":"2898:4:65"},{"name":"headStart","nativeSrc":"2904:9:65","nodeType":"YulIdentifier","src":"2904:9:65"}],"functionName":{"name":"sub","nativeSrc":"2894:3:65","nodeType":"YulIdentifier","src":"2894:3:65"},"nativeSrc":"2894:20:65","nodeType":"YulFunctionCall","src":"2894:20:65"}],"functionName":{"name":"mstore","nativeSrc":"2868:6:65","nodeType":"YulIdentifier","src":"2868:6:65"},"nativeSrc":"2868:47:65","nodeType":"YulFunctionCall","src":"2868:47:65"},"nativeSrc":"2868:47:65","nodeType":"YulExpressionStatement","src":"2868:47:65"},{"nativeSrc":"2924:139:65","nodeType":"YulAssignment","src":"2924:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"3058:4:65","nodeType":"YulIdentifier","src":"3058:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a_to_t_string_memory_ptr_fromStack","nativeSrc":"2932:124:65","nodeType":"YulIdentifier","src":"2932:124:65"},"nativeSrc":"2932:131:65","nodeType":"YulFunctionCall","src":"2932:131:65"},"variableNames":[{"name":"tail","nativeSrc":"2924:4:65","nodeType":"YulIdentifier","src":"2924:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2651:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2802:9:65","nodeType":"YulTypedName","src":"2802:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2817:4:65","nodeType":"YulTypedName","src":"2817:4:65","type":""}],"src":"2651:419:65"},{"body":{"nativeSrc":"3116:35:65","nodeType":"YulBlock","src":"3116:35:65","statements":[{"nativeSrc":"3126:19:65","nodeType":"YulAssignment","src":"3126:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"3142:2:65","nodeType":"YulLiteral","src":"3142:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"3136:5:65","nodeType":"YulIdentifier","src":"3136:5:65"},"nativeSrc":"3136:9:65","nodeType":"YulFunctionCall","src":"3136:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"3126:6:65","nodeType":"YulIdentifier","src":"3126:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"3076:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"3109:6:65","nodeType":"YulTypedName","src":"3109:6:65","type":""}],"src":"3076:75:65"},{"body":{"nativeSrc":"3246:28:65","nodeType":"YulBlock","src":"3246:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3263:1:65","nodeType":"YulLiteral","src":"3263:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3266:1:65","nodeType":"YulLiteral","src":"3266:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3256:6:65","nodeType":"YulIdentifier","src":"3256:6:65"},"nativeSrc":"3256:12:65","nodeType":"YulFunctionCall","src":"3256:12:65"},"nativeSrc":"3256:12:65","nodeType":"YulExpressionStatement","src":"3256:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3157:117:65","nodeType":"YulFunctionDefinition","src":"3157:117:65"},{"body":{"nativeSrc":"3369:28:65","nodeType":"YulBlock","src":"3369:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3386:1:65","nodeType":"YulLiteral","src":"3386:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3389:1:65","nodeType":"YulLiteral","src":"3389:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3379:6:65","nodeType":"YulIdentifier","src":"3379:6:65"},"nativeSrc":"3379:12:65","nodeType":"YulFunctionCall","src":"3379:12:65"},"nativeSrc":"3379:12:65","nodeType":"YulExpressionStatement","src":"3379:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3280:117:65","nodeType":"YulFunctionDefinition","src":"3280:117:65"},{"body":{"nativeSrc":"3448:81:65","nodeType":"YulBlock","src":"3448:81:65","statements":[{"nativeSrc":"3458:65:65","nodeType":"YulAssignment","src":"3458:65:65","value":{"arguments":[{"name":"value","nativeSrc":"3473:5:65","nodeType":"YulIdentifier","src":"3473:5:65"},{"kind":"number","nativeSrc":"3480:42:65","nodeType":"YulLiteral","src":"3480:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3469:3:65","nodeType":"YulIdentifier","src":"3469:3:65"},"nativeSrc":"3469:54:65","nodeType":"YulFunctionCall","src":"3469:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3458:7:65","nodeType":"YulIdentifier","src":"3458:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3403:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3430:5:65","nodeType":"YulTypedName","src":"3430:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3440:7:65","nodeType":"YulTypedName","src":"3440:7:65","type":""}],"src":"3403:126:65"},{"body":{"nativeSrc":"3580:51:65","nodeType":"YulBlock","src":"3580:51:65","statements":[{"nativeSrc":"3590:35:65","nodeType":"YulAssignment","src":"3590:35:65","value":{"arguments":[{"name":"value","nativeSrc":"3619:5:65","nodeType":"YulIdentifier","src":"3619:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3601:17:65","nodeType":"YulIdentifier","src":"3601:17:65"},"nativeSrc":"3601:24:65","nodeType":"YulFunctionCall","src":"3601:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3590:7:65","nodeType":"YulIdentifier","src":"3590:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"3535:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3562:5:65","nodeType":"YulTypedName","src":"3562:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3572:7:65","nodeType":"YulTypedName","src":"3572:7:65","type":""}],"src":"3535:96:65"},{"body":{"nativeSrc":"3680:79:65","nodeType":"YulBlock","src":"3680:79:65","statements":[{"body":{"nativeSrc":"3737:16:65","nodeType":"YulBlock","src":"3737:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3746:1:65","nodeType":"YulLiteral","src":"3746:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3749:1:65","nodeType":"YulLiteral","src":"3749:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3739:6:65","nodeType":"YulIdentifier","src":"3739:6:65"},"nativeSrc":"3739:12:65","nodeType":"YulFunctionCall","src":"3739:12:65"},"nativeSrc":"3739:12:65","nodeType":"YulExpressionStatement","src":"3739:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3703:5:65","nodeType":"YulIdentifier","src":"3703:5:65"},{"arguments":[{"name":"value","nativeSrc":"3728:5:65","nodeType":"YulIdentifier","src":"3728:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3710:17:65","nodeType":"YulIdentifier","src":"3710:17:65"},"nativeSrc":"3710:24:65","nodeType":"YulFunctionCall","src":"3710:24:65"}],"functionName":{"name":"eq","nativeSrc":"3700:2:65","nodeType":"YulIdentifier","src":"3700:2:65"},"nativeSrc":"3700:35:65","nodeType":"YulFunctionCall","src":"3700:35:65"}],"functionName":{"name":"iszero","nativeSrc":"3693:6:65","nodeType":"YulIdentifier","src":"3693:6:65"},"nativeSrc":"3693:43:65","nodeType":"YulFunctionCall","src":"3693:43:65"},"nativeSrc":"3690:63:65","nodeType":"YulIf","src":"3690:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"3637:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3673:5:65","nodeType":"YulTypedName","src":"3673:5:65","type":""}],"src":"3637:122:65"},{"body":{"nativeSrc":"3817:87:65","nodeType":"YulBlock","src":"3817:87:65","statements":[{"nativeSrc":"3827:29:65","nodeType":"YulAssignment","src":"3827:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3849:6:65","nodeType":"YulIdentifier","src":"3849:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3836:12:65","nodeType":"YulIdentifier","src":"3836:12:65"},"nativeSrc":"3836:20:65","nodeType":"YulFunctionCall","src":"3836:20:65"},"variableNames":[{"name":"value","nativeSrc":"3827:5:65","nodeType":"YulIdentifier","src":"3827:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3892:5:65","nodeType":"YulIdentifier","src":"3892:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3865:26:65","nodeType":"YulIdentifier","src":"3865:26:65"},"nativeSrc":"3865:33:65","nodeType":"YulFunctionCall","src":"3865:33:65"},"nativeSrc":"3865:33:65","nodeType":"YulExpressionStatement","src":"3865:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"3765:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3795:6:65","nodeType":"YulTypedName","src":"3795:6:65","type":""},{"name":"end","nativeSrc":"3803:3:65","nodeType":"YulTypedName","src":"3803:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3811:5:65","nodeType":"YulTypedName","src":"3811:5:65","type":""}],"src":"3765:139:65"},{"body":{"nativeSrc":"3976:263:65","nodeType":"YulBlock","src":"3976:263:65","statements":[{"body":{"nativeSrc":"4022:83:65","nodeType":"YulBlock","src":"4022:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4024:77:65","nodeType":"YulIdentifier","src":"4024:77:65"},"nativeSrc":"4024:79:65","nodeType":"YulFunctionCall","src":"4024:79:65"},"nativeSrc":"4024:79:65","nodeType":"YulExpressionStatement","src":"4024:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3997:7:65","nodeType":"YulIdentifier","src":"3997:7:65"},{"name":"headStart","nativeSrc":"4006:9:65","nodeType":"YulIdentifier","src":"4006:9:65"}],"functionName":{"name":"sub","nativeSrc":"3993:3:65","nodeType":"YulIdentifier","src":"3993:3:65"},"nativeSrc":"3993:23:65","nodeType":"YulFunctionCall","src":"3993:23:65"},{"kind":"number","nativeSrc":"4018:2:65","nodeType":"YulLiteral","src":"4018:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3989:3:65","nodeType":"YulIdentifier","src":"3989:3:65"},"nativeSrc":"3989:32:65","nodeType":"YulFunctionCall","src":"3989:32:65"},"nativeSrc":"3986:119:65","nodeType":"YulIf","src":"3986:119:65"},{"nativeSrc":"4115:117:65","nodeType":"YulBlock","src":"4115:117:65","statements":[{"nativeSrc":"4130:15:65","nodeType":"YulVariableDeclaration","src":"4130:15:65","value":{"kind":"number","nativeSrc":"4144:1:65","nodeType":"YulLiteral","src":"4144:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4134:6:65","nodeType":"YulTypedName","src":"4134:6:65","type":""}]},{"nativeSrc":"4159:63:65","nodeType":"YulAssignment","src":"4159:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4194:9:65","nodeType":"YulIdentifier","src":"4194:9:65"},{"name":"offset","nativeSrc":"4205:6:65","nodeType":"YulIdentifier","src":"4205:6:65"}],"functionName":{"name":"add","nativeSrc":"4190:3:65","nodeType":"YulIdentifier","src":"4190:3:65"},"nativeSrc":"4190:22:65","nodeType":"YulFunctionCall","src":"4190:22:65"},{"name":"dataEnd","nativeSrc":"4214:7:65","nodeType":"YulIdentifier","src":"4214:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4169:20:65","nodeType":"YulIdentifier","src":"4169:20:65"},"nativeSrc":"4169:53:65","nodeType":"YulFunctionCall","src":"4169:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4159:6:65","nodeType":"YulIdentifier","src":"4159:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3910:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3946:9:65","nodeType":"YulTypedName","src":"3946:9:65","type":""},{"name":"dataEnd","nativeSrc":"3957:7:65","nodeType":"YulTypedName","src":"3957:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3969:6:65","nodeType":"YulTypedName","src":"3969:6:65","type":""}],"src":"3910:329:65"},{"body":{"nativeSrc":"4289:105:65","nodeType":"YulBlock","src":"4289:105:65","statements":[{"nativeSrc":"4299:89:65","nodeType":"YulAssignment","src":"4299:89:65","value":{"arguments":[{"name":"value","nativeSrc":"4314:5:65","nodeType":"YulIdentifier","src":"4314:5:65"},{"kind":"number","nativeSrc":"4321:66:65","nodeType":"YulLiteral","src":"4321:66:65","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"4310:3:65","nodeType":"YulIdentifier","src":"4310:3:65"},"nativeSrc":"4310:78:65","nodeType":"YulFunctionCall","src":"4310:78:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4299:7:65","nodeType":"YulIdentifier","src":"4299:7:65"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"4245:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4271:5:65","nodeType":"YulTypedName","src":"4271:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4281:7:65","nodeType":"YulTypedName","src":"4281:7:65","type":""}],"src":"4245:149:65"},{"body":{"nativeSrc":"4442:78:65","nodeType":"YulBlock","src":"4442:78:65","statements":[{"body":{"nativeSrc":"4498:16:65","nodeType":"YulBlock","src":"4498:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4507:1:65","nodeType":"YulLiteral","src":"4507:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4510:1:65","nodeType":"YulLiteral","src":"4510:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4500:6:65","nodeType":"YulIdentifier","src":"4500:6:65"},"nativeSrc":"4500:12:65","nodeType":"YulFunctionCall","src":"4500:12:65"},"nativeSrc":"4500:12:65","nodeType":"YulExpressionStatement","src":"4500:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4465:5:65","nodeType":"YulIdentifier","src":"4465:5:65"},{"arguments":[{"name":"value","nativeSrc":"4489:5:65","nodeType":"YulIdentifier","src":"4489:5:65"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"4472:16:65","nodeType":"YulIdentifier","src":"4472:16:65"},"nativeSrc":"4472:23:65","nodeType":"YulFunctionCall","src":"4472:23:65"}],"functionName":{"name":"eq","nativeSrc":"4462:2:65","nodeType":"YulIdentifier","src":"4462:2:65"},"nativeSrc":"4462:34:65","nodeType":"YulFunctionCall","src":"4462:34:65"}],"functionName":{"name":"iszero","nativeSrc":"4455:6:65","nodeType":"YulIdentifier","src":"4455:6:65"},"nativeSrc":"4455:42:65","nodeType":"YulFunctionCall","src":"4455:42:65"},"nativeSrc":"4452:62:65","nodeType":"YulIf","src":"4452:62:65"}]},"name":"validator_revert_t_bytes4","nativeSrc":"4400:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4435:5:65","nodeType":"YulTypedName","src":"4435:5:65","type":""}],"src":"4400:120:65"},{"body":{"nativeSrc":"4577:86:65","nodeType":"YulBlock","src":"4577:86:65","statements":[{"nativeSrc":"4587:29:65","nodeType":"YulAssignment","src":"4587:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"4609:6:65","nodeType":"YulIdentifier","src":"4609:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"4596:12:65","nodeType":"YulIdentifier","src":"4596:12:65"},"nativeSrc":"4596:20:65","nodeType":"YulFunctionCall","src":"4596:20:65"},"variableNames":[{"name":"value","nativeSrc":"4587:5:65","nodeType":"YulIdentifier","src":"4587:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4651:5:65","nodeType":"YulIdentifier","src":"4651:5:65"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"4625:25:65","nodeType":"YulIdentifier","src":"4625:25:65"},"nativeSrc":"4625:32:65","nodeType":"YulFunctionCall","src":"4625:32:65"},"nativeSrc":"4625:32:65","nodeType":"YulExpressionStatement","src":"4625:32:65"}]},"name":"abi_decode_t_bytes4","nativeSrc":"4526:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4555:6:65","nodeType":"YulTypedName","src":"4555:6:65","type":""},{"name":"end","nativeSrc":"4563:3:65","nodeType":"YulTypedName","src":"4563:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4571:5:65","nodeType":"YulTypedName","src":"4571:5:65","type":""}],"src":"4526:137:65"},{"body":{"nativeSrc":"4734:262:65","nodeType":"YulBlock","src":"4734:262:65","statements":[{"body":{"nativeSrc":"4780:83:65","nodeType":"YulBlock","src":"4780:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4782:77:65","nodeType":"YulIdentifier","src":"4782:77:65"},"nativeSrc":"4782:79:65","nodeType":"YulFunctionCall","src":"4782:79:65"},"nativeSrc":"4782:79:65","nodeType":"YulExpressionStatement","src":"4782:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4755:7:65","nodeType":"YulIdentifier","src":"4755:7:65"},{"name":"headStart","nativeSrc":"4764:9:65","nodeType":"YulIdentifier","src":"4764:9:65"}],"functionName":{"name":"sub","nativeSrc":"4751:3:65","nodeType":"YulIdentifier","src":"4751:3:65"},"nativeSrc":"4751:23:65","nodeType":"YulFunctionCall","src":"4751:23:65"},{"kind":"number","nativeSrc":"4776:2:65","nodeType":"YulLiteral","src":"4776:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4747:3:65","nodeType":"YulIdentifier","src":"4747:3:65"},"nativeSrc":"4747:32:65","nodeType":"YulFunctionCall","src":"4747:32:65"},"nativeSrc":"4744:119:65","nodeType":"YulIf","src":"4744:119:65"},{"nativeSrc":"4873:116:65","nodeType":"YulBlock","src":"4873:116:65","statements":[{"nativeSrc":"4888:15:65","nodeType":"YulVariableDeclaration","src":"4888:15:65","value":{"kind":"number","nativeSrc":"4902:1:65","nodeType":"YulLiteral","src":"4902:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4892:6:65","nodeType":"YulTypedName","src":"4892:6:65","type":""}]},{"nativeSrc":"4917:62:65","nodeType":"YulAssignment","src":"4917:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4951:9:65","nodeType":"YulIdentifier","src":"4951:9:65"},{"name":"offset","nativeSrc":"4962:6:65","nodeType":"YulIdentifier","src":"4962:6:65"}],"functionName":{"name":"add","nativeSrc":"4947:3:65","nodeType":"YulIdentifier","src":"4947:3:65"},"nativeSrc":"4947:22:65","nodeType":"YulFunctionCall","src":"4947:22:65"},{"name":"dataEnd","nativeSrc":"4971:7:65","nodeType":"YulIdentifier","src":"4971:7:65"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"4927:19:65","nodeType":"YulIdentifier","src":"4927:19:65"},"nativeSrc":"4927:52:65","nodeType":"YulFunctionCall","src":"4927:52:65"},"variableNames":[{"name":"value0","nativeSrc":"4917:6:65","nodeType":"YulIdentifier","src":"4917:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"4669:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4704:9:65","nodeType":"YulTypedName","src":"4704:9:65","type":""},{"name":"dataEnd","nativeSrc":"4715:7:65","nodeType":"YulTypedName","src":"4715:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4727:6:65","nodeType":"YulTypedName","src":"4727:6:65","type":""}],"src":"4669:327:65"},{"body":{"nativeSrc":"5061:40:65","nodeType":"YulBlock","src":"5061:40:65","statements":[{"nativeSrc":"5072:22:65","nodeType":"YulAssignment","src":"5072:22:65","value":{"arguments":[{"name":"value","nativeSrc":"5088:5:65","nodeType":"YulIdentifier","src":"5088:5:65"}],"functionName":{"name":"mload","nativeSrc":"5082:5:65","nodeType":"YulIdentifier","src":"5082:5:65"},"nativeSrc":"5082:12:65","nodeType":"YulFunctionCall","src":"5082:12:65"},"variableNames":[{"name":"length","nativeSrc":"5072:6:65","nodeType":"YulIdentifier","src":"5072:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"5002:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5044:5:65","nodeType":"YulTypedName","src":"5044:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5054:6:65","nodeType":"YulTypedName","src":"5054:6:65","type":""}],"src":"5002:99:65"},{"body":{"nativeSrc":"5169:186:65","nodeType":"YulBlock","src":"5169:186:65","statements":[{"nativeSrc":"5180:10:65","nodeType":"YulVariableDeclaration","src":"5180:10:65","value":{"kind":"number","nativeSrc":"5189:1:65","nodeType":"YulLiteral","src":"5189:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5184:1:65","nodeType":"YulTypedName","src":"5184:1:65","type":""}]},{"body":{"nativeSrc":"5249:63:65","nodeType":"YulBlock","src":"5249:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5274:3:65","nodeType":"YulIdentifier","src":"5274:3:65"},{"name":"i","nativeSrc":"5279:1:65","nodeType":"YulIdentifier","src":"5279:1:65"}],"functionName":{"name":"add","nativeSrc":"5270:3:65","nodeType":"YulIdentifier","src":"5270:3:65"},"nativeSrc":"5270:11:65","nodeType":"YulFunctionCall","src":"5270:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5293:3:65","nodeType":"YulIdentifier","src":"5293:3:65"},{"name":"i","nativeSrc":"5298:1:65","nodeType":"YulIdentifier","src":"5298:1:65"}],"functionName":{"name":"add","nativeSrc":"5289:3:65","nodeType":"YulIdentifier","src":"5289:3:65"},"nativeSrc":"5289:11:65","nodeType":"YulFunctionCall","src":"5289:11:65"}],"functionName":{"name":"mload","nativeSrc":"5283:5:65","nodeType":"YulIdentifier","src":"5283:5:65"},"nativeSrc":"5283:18:65","nodeType":"YulFunctionCall","src":"5283:18:65"}],"functionName":{"name":"mstore","nativeSrc":"5263:6:65","nodeType":"YulIdentifier","src":"5263:6:65"},"nativeSrc":"5263:39:65","nodeType":"YulFunctionCall","src":"5263:39:65"},"nativeSrc":"5263:39:65","nodeType":"YulExpressionStatement","src":"5263:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5210:1:65","nodeType":"YulIdentifier","src":"5210:1:65"},{"name":"length","nativeSrc":"5213:6:65","nodeType":"YulIdentifier","src":"5213:6:65"}],"functionName":{"name":"lt","nativeSrc":"5207:2:65","nodeType":"YulIdentifier","src":"5207:2:65"},"nativeSrc":"5207:13:65","nodeType":"YulFunctionCall","src":"5207:13:65"},"nativeSrc":"5199:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"5221:19:65","nodeType":"YulBlock","src":"5221:19:65","statements":[{"nativeSrc":"5223:15:65","nodeType":"YulAssignment","src":"5223:15:65","value":{"arguments":[{"name":"i","nativeSrc":"5232:1:65","nodeType":"YulIdentifier","src":"5232:1:65"},{"kind":"number","nativeSrc":"5235:2:65","nodeType":"YulLiteral","src":"5235:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5228:3:65","nodeType":"YulIdentifier","src":"5228:3:65"},"nativeSrc":"5228:10:65","nodeType":"YulFunctionCall","src":"5228:10:65"},"variableNames":[{"name":"i","nativeSrc":"5223:1:65","nodeType":"YulIdentifier","src":"5223:1:65"}]}]},"pre":{"nativeSrc":"5203:3:65","nodeType":"YulBlock","src":"5203:3:65","statements":[]},"src":"5199:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5332:3:65","nodeType":"YulIdentifier","src":"5332:3:65"},{"name":"length","nativeSrc":"5337:6:65","nodeType":"YulIdentifier","src":"5337:6:65"}],"functionName":{"name":"add","nativeSrc":"5328:3:65","nodeType":"YulIdentifier","src":"5328:3:65"},"nativeSrc":"5328:16:65","nodeType":"YulFunctionCall","src":"5328:16:65"},{"kind":"number","nativeSrc":"5346:1:65","nodeType":"YulLiteral","src":"5346:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5321:6:65","nodeType":"YulIdentifier","src":"5321:6:65"},"nativeSrc":"5321:27:65","nodeType":"YulFunctionCall","src":"5321:27:65"},"nativeSrc":"5321:27:65","nodeType":"YulExpressionStatement","src":"5321:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5107:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5151:3:65","nodeType":"YulTypedName","src":"5151:3:65","type":""},{"name":"dst","nativeSrc":"5156:3:65","nodeType":"YulTypedName","src":"5156:3:65","type":""},{"name":"length","nativeSrc":"5161:6:65","nodeType":"YulTypedName","src":"5161:6:65","type":""}],"src":"5107:248:65"},{"body":{"nativeSrc":"5409:54:65","nodeType":"YulBlock","src":"5409:54:65","statements":[{"nativeSrc":"5419:38:65","nodeType":"YulAssignment","src":"5419:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5437:5:65","nodeType":"YulIdentifier","src":"5437:5:65"},{"kind":"number","nativeSrc":"5444:2:65","nodeType":"YulLiteral","src":"5444:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5433:3:65","nodeType":"YulIdentifier","src":"5433:3:65"},"nativeSrc":"5433:14:65","nodeType":"YulFunctionCall","src":"5433:14:65"},{"arguments":[{"kind":"number","nativeSrc":"5453:2:65","nodeType":"YulLiteral","src":"5453:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5449:3:65","nodeType":"YulIdentifier","src":"5449:3:65"},"nativeSrc":"5449:7:65","nodeType":"YulFunctionCall","src":"5449:7:65"}],"functionName":{"name":"and","nativeSrc":"5429:3:65","nodeType":"YulIdentifier","src":"5429:3:65"},"nativeSrc":"5429:28:65","nodeType":"YulFunctionCall","src":"5429:28:65"},"variableNames":[{"name":"result","nativeSrc":"5419:6:65","nodeType":"YulIdentifier","src":"5419:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"5361:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5392:5:65","nodeType":"YulTypedName","src":"5392:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5402:6:65","nodeType":"YulTypedName","src":"5402:6:65","type":""}],"src":"5361:102:65"},{"body":{"nativeSrc":"5561:285:65","nodeType":"YulBlock","src":"5561:285:65","statements":[{"nativeSrc":"5571:53:65","nodeType":"YulVariableDeclaration","src":"5571:53:65","value":{"arguments":[{"name":"value","nativeSrc":"5618:5:65","nodeType":"YulIdentifier","src":"5618:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"5585:32:65","nodeType":"YulIdentifier","src":"5585:32:65"},"nativeSrc":"5585:39:65","nodeType":"YulFunctionCall","src":"5585:39:65"},"variables":[{"name":"length","nativeSrc":"5575:6:65","nodeType":"YulTypedName","src":"5575:6:65","type":""}]},{"nativeSrc":"5633:78:65","nodeType":"YulAssignment","src":"5633:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"5699:3:65","nodeType":"YulIdentifier","src":"5699:3:65"},{"name":"length","nativeSrc":"5704:6:65","nodeType":"YulIdentifier","src":"5704:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5640:58:65","nodeType":"YulIdentifier","src":"5640:58:65"},"nativeSrc":"5640:71:65","nodeType":"YulFunctionCall","src":"5640:71:65"},"variableNames":[{"name":"pos","nativeSrc":"5633:3:65","nodeType":"YulIdentifier","src":"5633:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5759:5:65","nodeType":"YulIdentifier","src":"5759:5:65"},{"kind":"number","nativeSrc":"5766:4:65","nodeType":"YulLiteral","src":"5766:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5755:3:65","nodeType":"YulIdentifier","src":"5755:3:65"},"nativeSrc":"5755:16:65","nodeType":"YulFunctionCall","src":"5755:16:65"},{"name":"pos","nativeSrc":"5773:3:65","nodeType":"YulIdentifier","src":"5773:3:65"},{"name":"length","nativeSrc":"5778:6:65","nodeType":"YulIdentifier","src":"5778:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5720:34:65","nodeType":"YulIdentifier","src":"5720:34:65"},"nativeSrc":"5720:65:65","nodeType":"YulFunctionCall","src":"5720:65:65"},"nativeSrc":"5720:65:65","nodeType":"YulExpressionStatement","src":"5720:65:65"},{"nativeSrc":"5794:46:65","nodeType":"YulAssignment","src":"5794:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"5805:3:65","nodeType":"YulIdentifier","src":"5805:3:65"},{"arguments":[{"name":"length","nativeSrc":"5832:6:65","nodeType":"YulIdentifier","src":"5832:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5810:21:65","nodeType":"YulIdentifier","src":"5810:21:65"},"nativeSrc":"5810:29:65","nodeType":"YulFunctionCall","src":"5810:29:65"}],"functionName":{"name":"add","nativeSrc":"5801:3:65","nodeType":"YulIdentifier","src":"5801:3:65"},"nativeSrc":"5801:39:65","nodeType":"YulFunctionCall","src":"5801:39:65"},"variableNames":[{"name":"end","nativeSrc":"5794:3:65","nodeType":"YulIdentifier","src":"5794:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"5469:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5542:5:65","nodeType":"YulTypedName","src":"5542:5:65","type":""},{"name":"pos","nativeSrc":"5549:3:65","nodeType":"YulTypedName","src":"5549:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5557:3:65","nodeType":"YulTypedName","src":"5557:3:65","type":""}],"src":"5469:377:65"},{"body":{"nativeSrc":"5970:195:65","nodeType":"YulBlock","src":"5970:195:65","statements":[{"nativeSrc":"5980:26:65","nodeType":"YulAssignment","src":"5980:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5992:9:65","nodeType":"YulIdentifier","src":"5992:9:65"},{"kind":"number","nativeSrc":"6003:2:65","nodeType":"YulLiteral","src":"6003:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5988:3:65","nodeType":"YulIdentifier","src":"5988:3:65"},"nativeSrc":"5988:18:65","nodeType":"YulFunctionCall","src":"5988:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5980:4:65","nodeType":"YulIdentifier","src":"5980:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6027:9:65","nodeType":"YulIdentifier","src":"6027:9:65"},{"kind":"number","nativeSrc":"6038:1:65","nodeType":"YulLiteral","src":"6038:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6023:3:65","nodeType":"YulIdentifier","src":"6023:3:65"},"nativeSrc":"6023:17:65","nodeType":"YulFunctionCall","src":"6023:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6046:4:65","nodeType":"YulIdentifier","src":"6046:4:65"},{"name":"headStart","nativeSrc":"6052:9:65","nodeType":"YulIdentifier","src":"6052:9:65"}],"functionName":{"name":"sub","nativeSrc":"6042:3:65","nodeType":"YulIdentifier","src":"6042:3:65"},"nativeSrc":"6042:20:65","nodeType":"YulFunctionCall","src":"6042:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6016:6:65","nodeType":"YulIdentifier","src":"6016:6:65"},"nativeSrc":"6016:47:65","nodeType":"YulFunctionCall","src":"6016:47:65"},"nativeSrc":"6016:47:65","nodeType":"YulExpressionStatement","src":"6016:47:65"},{"nativeSrc":"6072:86:65","nodeType":"YulAssignment","src":"6072:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"6144:6:65","nodeType":"YulIdentifier","src":"6144:6:65"},{"name":"tail","nativeSrc":"6153:4:65","nodeType":"YulIdentifier","src":"6153:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"6080:63:65","nodeType":"YulIdentifier","src":"6080:63:65"},"nativeSrc":"6080:78:65","nodeType":"YulFunctionCall","src":"6080:78:65"},"variableNames":[{"name":"tail","nativeSrc":"6072:4:65","nodeType":"YulIdentifier","src":"6072:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5852:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5942:9:65","nodeType":"YulTypedName","src":"5942:9:65","type":""},{"name":"value0","nativeSrc":"5954:6:65","nodeType":"YulTypedName","src":"5954:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5965:4:65","nodeType":"YulTypedName","src":"5965:4:65","type":""}],"src":"5852:313:65"},{"body":{"nativeSrc":"6203:28:65","nodeType":"YulBlock","src":"6203:28:65","statements":[{"nativeSrc":"6213:12:65","nodeType":"YulAssignment","src":"6213:12:65","value":{"name":"value","nativeSrc":"6220:5:65","nodeType":"YulIdentifier","src":"6220:5:65"},"variableNames":[{"name":"ret","nativeSrc":"6213:3:65","nodeType":"YulIdentifier","src":"6213:3:65"}]}]},"name":"identity","nativeSrc":"6171:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6189:5:65","nodeType":"YulTypedName","src":"6189:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"6199:3:65","nodeType":"YulTypedName","src":"6199:3:65","type":""}],"src":"6171:60:65"},{"body":{"nativeSrc":"6297:82:65","nodeType":"YulBlock","src":"6297:82:65","statements":[{"nativeSrc":"6307:66:65","nodeType":"YulAssignment","src":"6307:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6365:5:65","nodeType":"YulIdentifier","src":"6365:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6347:17:65","nodeType":"YulIdentifier","src":"6347:17:65"},"nativeSrc":"6347:24:65","nodeType":"YulFunctionCall","src":"6347:24:65"}],"functionName":{"name":"identity","nativeSrc":"6338:8:65","nodeType":"YulIdentifier","src":"6338:8:65"},"nativeSrc":"6338:34:65","nodeType":"YulFunctionCall","src":"6338:34:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6320:17:65","nodeType":"YulIdentifier","src":"6320:17:65"},"nativeSrc":"6320:53:65","nodeType":"YulFunctionCall","src":"6320:53:65"},"variableNames":[{"name":"converted","nativeSrc":"6307:9:65","nodeType":"YulIdentifier","src":"6307:9:65"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"6237:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6277:5:65","nodeType":"YulTypedName","src":"6277:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6287:9:65","nodeType":"YulTypedName","src":"6287:9:65","type":""}],"src":"6237:142:65"},{"body":{"nativeSrc":"6445:66:65","nodeType":"YulBlock","src":"6445:66:65","statements":[{"nativeSrc":"6455:50:65","nodeType":"YulAssignment","src":"6455:50:65","value":{"arguments":[{"name":"value","nativeSrc":"6499:5:65","nodeType":"YulIdentifier","src":"6499:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"6468:30:65","nodeType":"YulIdentifier","src":"6468:30:65"},"nativeSrc":"6468:37:65","nodeType":"YulFunctionCall","src":"6468:37:65"},"variableNames":[{"name":"converted","nativeSrc":"6455:9:65","nodeType":"YulIdentifier","src":"6455:9:65"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"6385:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6425:5:65","nodeType":"YulTypedName","src":"6425:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6435:9:65","nodeType":"YulTypedName","src":"6435:9:65","type":""}],"src":"6385:126:65"},{"body":{"nativeSrc":"6599:66:65","nodeType":"YulBlock","src":"6599:66:65","statements":[{"nativeSrc":"6609:50:65","nodeType":"YulAssignment","src":"6609:50:65","value":{"arguments":[{"name":"value","nativeSrc":"6653:5:65","nodeType":"YulIdentifier","src":"6653:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"6622:30:65","nodeType":"YulIdentifier","src":"6622:30:65"},"nativeSrc":"6622:37:65","nodeType":"YulFunctionCall","src":"6622:37:65"},"variableNames":[{"name":"converted","nativeSrc":"6609:9:65","nodeType":"YulIdentifier","src":"6609:9:65"}]}]},"name":"convert_t_contract$_IXVSProxyOFT_$11260_to_t_address","nativeSrc":"6517:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6579:5:65","nodeType":"YulTypedName","src":"6579:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6589:9:65","nodeType":"YulTypedName","src":"6589:9:65","type":""}],"src":"6517:148:65"},{"body":{"nativeSrc":"6758:88:65","nodeType":"YulBlock","src":"6758:88:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6775:3:65","nodeType":"YulIdentifier","src":"6775:3:65"},{"arguments":[{"name":"value","nativeSrc":"6833:5:65","nodeType":"YulIdentifier","src":"6833:5:65"}],"functionName":{"name":"convert_t_contract$_IXVSProxyOFT_$11260_to_t_address","nativeSrc":"6780:52:65","nodeType":"YulIdentifier","src":"6780:52:65"},"nativeSrc":"6780:59:65","nodeType":"YulFunctionCall","src":"6780:59:65"}],"functionName":{"name":"mstore","nativeSrc":"6768:6:65","nodeType":"YulIdentifier","src":"6768:6:65"},"nativeSrc":"6768:72:65","nodeType":"YulFunctionCall","src":"6768:72:65"},"nativeSrc":"6768:72:65","nodeType":"YulExpressionStatement","src":"6768:72:65"}]},"name":"abi_encode_t_contract$_IXVSProxyOFT_$11260_to_t_address_fromStack","nativeSrc":"6671:175:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6746:5:65","nodeType":"YulTypedName","src":"6746:5:65","type":""},{"name":"pos","nativeSrc":"6753:3:65","nodeType":"YulTypedName","src":"6753:3:65","type":""}],"src":"6671:175:65"},{"body":{"nativeSrc":"6972:146:65","nodeType":"YulBlock","src":"6972:146:65","statements":[{"nativeSrc":"6982:26:65","nodeType":"YulAssignment","src":"6982:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6994:9:65","nodeType":"YulIdentifier","src":"6994:9:65"},{"kind":"number","nativeSrc":"7005:2:65","nodeType":"YulLiteral","src":"7005:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6990:3:65","nodeType":"YulIdentifier","src":"6990:3:65"},"nativeSrc":"6990:18:65","nodeType":"YulFunctionCall","src":"6990:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6982:4:65","nodeType":"YulIdentifier","src":"6982:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7084:6:65","nodeType":"YulIdentifier","src":"7084:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7097:9:65","nodeType":"YulIdentifier","src":"7097:9:65"},{"kind":"number","nativeSrc":"7108:1:65","nodeType":"YulLiteral","src":"7108:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7093:3:65","nodeType":"YulIdentifier","src":"7093:3:65"},"nativeSrc":"7093:17:65","nodeType":"YulFunctionCall","src":"7093:17:65"}],"functionName":{"name":"abi_encode_t_contract$_IXVSProxyOFT_$11260_to_t_address_fromStack","nativeSrc":"7018:65:65","nodeType":"YulIdentifier","src":"7018:65:65"},"nativeSrc":"7018:93:65","nodeType":"YulFunctionCall","src":"7018:93:65"},"nativeSrc":"7018:93:65","nodeType":"YulExpressionStatement","src":"7018:93:65"}]},"name":"abi_encode_tuple_t_contract$_IXVSProxyOFT_$11260__to_t_address__fromStack_reversed","nativeSrc":"6852:266:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6944:9:65","nodeType":"YulTypedName","src":"6944:9:65","type":""},{"name":"value0","nativeSrc":"6956:6:65","nodeType":"YulTypedName","src":"6956:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6967:4:65","nodeType":"YulTypedName","src":"6967:4:65","type":""}],"src":"6852:266:65"},{"body":{"nativeSrc":"7168:45:65","nodeType":"YulBlock","src":"7168:45:65","statements":[{"nativeSrc":"7178:29:65","nodeType":"YulAssignment","src":"7178:29:65","value":{"arguments":[{"name":"value","nativeSrc":"7193:5:65","nodeType":"YulIdentifier","src":"7193:5:65"},{"kind":"number","nativeSrc":"7200:6:65","nodeType":"YulLiteral","src":"7200:6:65","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"7189:3:65","nodeType":"YulIdentifier","src":"7189:3:65"},"nativeSrc":"7189:18:65","nodeType":"YulFunctionCall","src":"7189:18:65"},"variableNames":[{"name":"cleaned","nativeSrc":"7178:7:65","nodeType":"YulIdentifier","src":"7178:7:65"}]}]},"name":"cleanup_t_uint16","nativeSrc":"7124:89:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7150:5:65","nodeType":"YulTypedName","src":"7150:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7160:7:65","nodeType":"YulTypedName","src":"7160:7:65","type":""}],"src":"7124:89:65"},{"body":{"nativeSrc":"7261:78:65","nodeType":"YulBlock","src":"7261:78:65","statements":[{"body":{"nativeSrc":"7317:16:65","nodeType":"YulBlock","src":"7317:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7326:1:65","nodeType":"YulLiteral","src":"7326:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7329:1:65","nodeType":"YulLiteral","src":"7329:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7319:6:65","nodeType":"YulIdentifier","src":"7319:6:65"},"nativeSrc":"7319:12:65","nodeType":"YulFunctionCall","src":"7319:12:65"},"nativeSrc":"7319:12:65","nodeType":"YulExpressionStatement","src":"7319:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7284:5:65","nodeType":"YulIdentifier","src":"7284:5:65"},{"arguments":[{"name":"value","nativeSrc":"7308:5:65","nodeType":"YulIdentifier","src":"7308:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"7291:16:65","nodeType":"YulIdentifier","src":"7291:16:65"},"nativeSrc":"7291:23:65","nodeType":"YulFunctionCall","src":"7291:23:65"}],"functionName":{"name":"eq","nativeSrc":"7281:2:65","nodeType":"YulIdentifier","src":"7281:2:65"},"nativeSrc":"7281:34:65","nodeType":"YulFunctionCall","src":"7281:34:65"}],"functionName":{"name":"iszero","nativeSrc":"7274:6:65","nodeType":"YulIdentifier","src":"7274:6:65"},"nativeSrc":"7274:42:65","nodeType":"YulFunctionCall","src":"7274:42:65"},"nativeSrc":"7271:62:65","nodeType":"YulIf","src":"7271:62:65"}]},"name":"validator_revert_t_uint16","nativeSrc":"7219:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7254:5:65","nodeType":"YulTypedName","src":"7254:5:65","type":""}],"src":"7219:120:65"},{"body":{"nativeSrc":"7396:86:65","nodeType":"YulBlock","src":"7396:86:65","statements":[{"nativeSrc":"7406:29:65","nodeType":"YulAssignment","src":"7406:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"7428:6:65","nodeType":"YulIdentifier","src":"7428:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"7415:12:65","nodeType":"YulIdentifier","src":"7415:12:65"},"nativeSrc":"7415:20:65","nodeType":"YulFunctionCall","src":"7415:20:65"},"variableNames":[{"name":"value","nativeSrc":"7406:5:65","nodeType":"YulIdentifier","src":"7406:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7470:5:65","nodeType":"YulIdentifier","src":"7470:5:65"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"7444:25:65","nodeType":"YulIdentifier","src":"7444:25:65"},"nativeSrc":"7444:32:65","nodeType":"YulFunctionCall","src":"7444:32:65"},"nativeSrc":"7444:32:65","nodeType":"YulExpressionStatement","src":"7444:32:65"}]},"name":"abi_decode_t_uint16","nativeSrc":"7345:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7374:6:65","nodeType":"YulTypedName","src":"7374:6:65","type":""},{"name":"end","nativeSrc":"7382:3:65","nodeType":"YulTypedName","src":"7382:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7390:5:65","nodeType":"YulTypedName","src":"7390:5:65","type":""}],"src":"7345:137:65"},{"body":{"nativeSrc":"7577:28:65","nodeType":"YulBlock","src":"7577:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7594:1:65","nodeType":"YulLiteral","src":"7594:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7597:1:65","nodeType":"YulLiteral","src":"7597:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7587:6:65","nodeType":"YulIdentifier","src":"7587:6:65"},"nativeSrc":"7587:12:65","nodeType":"YulFunctionCall","src":"7587:12:65"},"nativeSrc":"7587:12:65","nodeType":"YulExpressionStatement","src":"7587:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7488:117:65","nodeType":"YulFunctionDefinition","src":"7488:117:65"},{"body":{"nativeSrc":"7700:28:65","nodeType":"YulBlock","src":"7700:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7717:1:65","nodeType":"YulLiteral","src":"7717:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7720:1:65","nodeType":"YulLiteral","src":"7720:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7710:6:65","nodeType":"YulIdentifier","src":"7710:6:65"},"nativeSrc":"7710:12:65","nodeType":"YulFunctionCall","src":"7710:12:65"},"nativeSrc":"7710:12:65","nodeType":"YulExpressionStatement","src":"7710:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7611:117:65","nodeType":"YulFunctionDefinition","src":"7611:117:65"},{"body":{"nativeSrc":"7823:28:65","nodeType":"YulBlock","src":"7823:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7840:1:65","nodeType":"YulLiteral","src":"7840:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7843:1:65","nodeType":"YulLiteral","src":"7843:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7833:6:65","nodeType":"YulIdentifier","src":"7833:6:65"},"nativeSrc":"7833:12:65","nodeType":"YulFunctionCall","src":"7833:12:65"},"nativeSrc":"7833:12:65","nodeType":"YulExpressionStatement","src":"7833:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7734:117:65","nodeType":"YulFunctionDefinition","src":"7734:117:65"},{"body":{"nativeSrc":"7944:478:65","nodeType":"YulBlock","src":"7944:478:65","statements":[{"body":{"nativeSrc":"7993:83:65","nodeType":"YulBlock","src":"7993:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7995:77:65","nodeType":"YulIdentifier","src":"7995:77:65"},"nativeSrc":"7995:79:65","nodeType":"YulFunctionCall","src":"7995:79:65"},"nativeSrc":"7995:79:65","nodeType":"YulExpressionStatement","src":"7995:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7972:6:65","nodeType":"YulIdentifier","src":"7972:6:65"},{"kind":"number","nativeSrc":"7980:4:65","nodeType":"YulLiteral","src":"7980:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7968:3:65","nodeType":"YulIdentifier","src":"7968:3:65"},"nativeSrc":"7968:17:65","nodeType":"YulFunctionCall","src":"7968:17:65"},{"name":"end","nativeSrc":"7987:3:65","nodeType":"YulIdentifier","src":"7987:3:65"}],"functionName":{"name":"slt","nativeSrc":"7964:3:65","nodeType":"YulIdentifier","src":"7964:3:65"},"nativeSrc":"7964:27:65","nodeType":"YulFunctionCall","src":"7964:27:65"}],"functionName":{"name":"iszero","nativeSrc":"7957:6:65","nodeType":"YulIdentifier","src":"7957:6:65"},"nativeSrc":"7957:35:65","nodeType":"YulFunctionCall","src":"7957:35:65"},"nativeSrc":"7954:122:65","nodeType":"YulIf","src":"7954:122:65"},{"nativeSrc":"8085:30:65","nodeType":"YulAssignment","src":"8085:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"8108:6:65","nodeType":"YulIdentifier","src":"8108:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"8095:12:65","nodeType":"YulIdentifier","src":"8095:12:65"},"nativeSrc":"8095:20:65","nodeType":"YulFunctionCall","src":"8095:20:65"},"variableNames":[{"name":"length","nativeSrc":"8085:6:65","nodeType":"YulIdentifier","src":"8085:6:65"}]},{"body":{"nativeSrc":"8158:83:65","nodeType":"YulBlock","src":"8158:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"8160:77:65","nodeType":"YulIdentifier","src":"8160:77:65"},"nativeSrc":"8160:79:65","nodeType":"YulFunctionCall","src":"8160:79:65"},"nativeSrc":"8160:79:65","nodeType":"YulExpressionStatement","src":"8160:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8130:6:65","nodeType":"YulIdentifier","src":"8130:6:65"},{"kind":"number","nativeSrc":"8138:18:65","nodeType":"YulLiteral","src":"8138:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8127:2:65","nodeType":"YulIdentifier","src":"8127:2:65"},"nativeSrc":"8127:30:65","nodeType":"YulFunctionCall","src":"8127:30:65"},"nativeSrc":"8124:117:65","nodeType":"YulIf","src":"8124:117:65"},{"nativeSrc":"8250:29:65","nodeType":"YulAssignment","src":"8250:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"8266:6:65","nodeType":"YulIdentifier","src":"8266:6:65"},{"kind":"number","nativeSrc":"8274:4:65","nodeType":"YulLiteral","src":"8274:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8262:3:65","nodeType":"YulIdentifier","src":"8262:3:65"},"nativeSrc":"8262:17:65","nodeType":"YulFunctionCall","src":"8262:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"8250:8:65","nodeType":"YulIdentifier","src":"8250:8:65"}]},{"body":{"nativeSrc":"8333:83:65","nodeType":"YulBlock","src":"8333:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"8335:77:65","nodeType":"YulIdentifier","src":"8335:77:65"},"nativeSrc":"8335:79:65","nodeType":"YulFunctionCall","src":"8335:79:65"},"nativeSrc":"8335:79:65","nodeType":"YulExpressionStatement","src":"8335:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"8298:8:65","nodeType":"YulIdentifier","src":"8298:8:65"},{"arguments":[{"name":"length","nativeSrc":"8312:6:65","nodeType":"YulIdentifier","src":"8312:6:65"},{"kind":"number","nativeSrc":"8320:4:65","nodeType":"YulLiteral","src":"8320:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"8308:3:65","nodeType":"YulIdentifier","src":"8308:3:65"},"nativeSrc":"8308:17:65","nodeType":"YulFunctionCall","src":"8308:17:65"}],"functionName":{"name":"add","nativeSrc":"8294:3:65","nodeType":"YulIdentifier","src":"8294:3:65"},"nativeSrc":"8294:32:65","nodeType":"YulFunctionCall","src":"8294:32:65"},{"name":"end","nativeSrc":"8328:3:65","nodeType":"YulIdentifier","src":"8328:3:65"}],"functionName":{"name":"gt","nativeSrc":"8291:2:65","nodeType":"YulIdentifier","src":"8291:2:65"},"nativeSrc":"8291:41:65","nodeType":"YulFunctionCall","src":"8291:41:65"},"nativeSrc":"8288:128:65","nodeType":"YulIf","src":"8288:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7870:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7911:6:65","nodeType":"YulTypedName","src":"7911:6:65","type":""},{"name":"end","nativeSrc":"7919:3:65","nodeType":"YulTypedName","src":"7919:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7927:8:65","nodeType":"YulTypedName","src":"7927:8:65","type":""},{"name":"length","nativeSrc":"7937:6:65","nodeType":"YulTypedName","src":"7937:6:65","type":""}],"src":"7870:552:65"},{"body":{"nativeSrc":"8529:569:65","nodeType":"YulBlock","src":"8529:569:65","statements":[{"body":{"nativeSrc":"8575:83:65","nodeType":"YulBlock","src":"8575:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8577:77:65","nodeType":"YulIdentifier","src":"8577:77:65"},"nativeSrc":"8577:79:65","nodeType":"YulFunctionCall","src":"8577:79:65"},"nativeSrc":"8577:79:65","nodeType":"YulExpressionStatement","src":"8577:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8550:7:65","nodeType":"YulIdentifier","src":"8550:7:65"},{"name":"headStart","nativeSrc":"8559:9:65","nodeType":"YulIdentifier","src":"8559:9:65"}],"functionName":{"name":"sub","nativeSrc":"8546:3:65","nodeType":"YulIdentifier","src":"8546:3:65"},"nativeSrc":"8546:23:65","nodeType":"YulFunctionCall","src":"8546:23:65"},{"kind":"number","nativeSrc":"8571:2:65","nodeType":"YulLiteral","src":"8571:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8542:3:65","nodeType":"YulIdentifier","src":"8542:3:65"},"nativeSrc":"8542:32:65","nodeType":"YulFunctionCall","src":"8542:32:65"},"nativeSrc":"8539:119:65","nodeType":"YulIf","src":"8539:119:65"},{"nativeSrc":"8668:116:65","nodeType":"YulBlock","src":"8668:116:65","statements":[{"nativeSrc":"8683:15:65","nodeType":"YulVariableDeclaration","src":"8683:15:65","value":{"kind":"number","nativeSrc":"8697:1:65","nodeType":"YulLiteral","src":"8697:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8687:6:65","nodeType":"YulTypedName","src":"8687:6:65","type":""}]},{"nativeSrc":"8712:62:65","nodeType":"YulAssignment","src":"8712:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8746:9:65","nodeType":"YulIdentifier","src":"8746:9:65"},{"name":"offset","nativeSrc":"8757:6:65","nodeType":"YulIdentifier","src":"8757:6:65"}],"functionName":{"name":"add","nativeSrc":"8742:3:65","nodeType":"YulIdentifier","src":"8742:3:65"},"nativeSrc":"8742:22:65","nodeType":"YulFunctionCall","src":"8742:22:65"},{"name":"dataEnd","nativeSrc":"8766:7:65","nodeType":"YulIdentifier","src":"8766:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"8722:19:65","nodeType":"YulIdentifier","src":"8722:19:65"},"nativeSrc":"8722:52:65","nodeType":"YulFunctionCall","src":"8722:52:65"},"variableNames":[{"name":"value0","nativeSrc":"8712:6:65","nodeType":"YulIdentifier","src":"8712:6:65"}]}]},{"nativeSrc":"8794:297:65","nodeType":"YulBlock","src":"8794:297:65","statements":[{"nativeSrc":"8809:46:65","nodeType":"YulVariableDeclaration","src":"8809:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8840:9:65","nodeType":"YulIdentifier","src":"8840:9:65"},{"kind":"number","nativeSrc":"8851:2:65","nodeType":"YulLiteral","src":"8851:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8836:3:65","nodeType":"YulIdentifier","src":"8836:3:65"},"nativeSrc":"8836:18:65","nodeType":"YulFunctionCall","src":"8836:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"8823:12:65","nodeType":"YulIdentifier","src":"8823:12:65"},"nativeSrc":"8823:32:65","nodeType":"YulFunctionCall","src":"8823:32:65"},"variables":[{"name":"offset","nativeSrc":"8813:6:65","nodeType":"YulTypedName","src":"8813:6:65","type":""}]},{"body":{"nativeSrc":"8902:83:65","nodeType":"YulBlock","src":"8902:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8904:77:65","nodeType":"YulIdentifier","src":"8904:77:65"},"nativeSrc":"8904:79:65","nodeType":"YulFunctionCall","src":"8904:79:65"},"nativeSrc":"8904:79:65","nodeType":"YulExpressionStatement","src":"8904:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8874:6:65","nodeType":"YulIdentifier","src":"8874:6:65"},{"kind":"number","nativeSrc":"8882:18:65","nodeType":"YulLiteral","src":"8882:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8871:2:65","nodeType":"YulIdentifier","src":"8871:2:65"},"nativeSrc":"8871:30:65","nodeType":"YulFunctionCall","src":"8871:30:65"},"nativeSrc":"8868:117:65","nodeType":"YulIf","src":"8868:117:65"},{"nativeSrc":"8999:82:65","nodeType":"YulAssignment","src":"8999:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9053:9:65","nodeType":"YulIdentifier","src":"9053:9:65"},{"name":"offset","nativeSrc":"9064:6:65","nodeType":"YulIdentifier","src":"9064:6:65"}],"functionName":{"name":"add","nativeSrc":"9049:3:65","nodeType":"YulIdentifier","src":"9049:3:65"},"nativeSrc":"9049:22:65","nodeType":"YulFunctionCall","src":"9049:22:65"},{"name":"dataEnd","nativeSrc":"9073:7:65","nodeType":"YulIdentifier","src":"9073:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9017:31:65","nodeType":"YulIdentifier","src":"9017:31:65"},"nativeSrc":"9017:64:65","nodeType":"YulFunctionCall","src":"9017:64:65"},"variableNames":[{"name":"value1","nativeSrc":"8999:6:65","nodeType":"YulIdentifier","src":"8999:6:65"},{"name":"value2","nativeSrc":"9007:6:65","nodeType":"YulIdentifier","src":"9007:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"8428:670:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8483:9:65","nodeType":"YulTypedName","src":"8483:9:65","type":""},{"name":"dataEnd","nativeSrc":"8494:7:65","nodeType":"YulTypedName","src":"8494:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8506:6:65","nodeType":"YulTypedName","src":"8506:6:65","type":""},{"name":"value1","nativeSrc":"8514:6:65","nodeType":"YulTypedName","src":"8514:6:65","type":""},{"name":"value2","nativeSrc":"8522:6:65","nodeType":"YulTypedName","src":"8522:6:65","type":""}],"src":"8428:670:65"},{"body":{"nativeSrc":"9146:48:65","nodeType":"YulBlock","src":"9146:48:65","statements":[{"nativeSrc":"9156:32:65","nodeType":"YulAssignment","src":"9156:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9181:5:65","nodeType":"YulIdentifier","src":"9181:5:65"}],"functionName":{"name":"iszero","nativeSrc":"9174:6:65","nodeType":"YulIdentifier","src":"9174:6:65"},"nativeSrc":"9174:13:65","nodeType":"YulFunctionCall","src":"9174:13:65"}],"functionName":{"name":"iszero","nativeSrc":"9167:6:65","nodeType":"YulIdentifier","src":"9167:6:65"},"nativeSrc":"9167:21:65","nodeType":"YulFunctionCall","src":"9167:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"9156:7:65","nodeType":"YulIdentifier","src":"9156:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"9104:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9128:5:65","nodeType":"YulTypedName","src":"9128:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"9138:7:65","nodeType":"YulTypedName","src":"9138:7:65","type":""}],"src":"9104:90:65"},{"body":{"nativeSrc":"9259:50:65","nodeType":"YulBlock","src":"9259:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9276:3:65","nodeType":"YulIdentifier","src":"9276:3:65"},{"arguments":[{"name":"value","nativeSrc":"9296:5:65","nodeType":"YulIdentifier","src":"9296:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"9281:14:65","nodeType":"YulIdentifier","src":"9281:14:65"},"nativeSrc":"9281:21:65","nodeType":"YulFunctionCall","src":"9281:21:65"}],"functionName":{"name":"mstore","nativeSrc":"9269:6:65","nodeType":"YulIdentifier","src":"9269:6:65"},"nativeSrc":"9269:34:65","nodeType":"YulFunctionCall","src":"9269:34:65"},"nativeSrc":"9269:34:65","nodeType":"YulExpressionStatement","src":"9269:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"9200:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9247:5:65","nodeType":"YulTypedName","src":"9247:5:65","type":""},{"name":"pos","nativeSrc":"9254:3:65","nodeType":"YulTypedName","src":"9254:3:65","type":""}],"src":"9200:109:65"},{"body":{"nativeSrc":"9407:118:65","nodeType":"YulBlock","src":"9407:118:65","statements":[{"nativeSrc":"9417:26:65","nodeType":"YulAssignment","src":"9417:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9429:9:65","nodeType":"YulIdentifier","src":"9429:9:65"},{"kind":"number","nativeSrc":"9440:2:65","nodeType":"YulLiteral","src":"9440:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9425:3:65","nodeType":"YulIdentifier","src":"9425:3:65"},"nativeSrc":"9425:18:65","nodeType":"YulFunctionCall","src":"9425:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9417:4:65","nodeType":"YulIdentifier","src":"9417:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9491:6:65","nodeType":"YulIdentifier","src":"9491:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9504:9:65","nodeType":"YulIdentifier","src":"9504:9:65"},{"kind":"number","nativeSrc":"9515:1:65","nodeType":"YulLiteral","src":"9515:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9500:3:65","nodeType":"YulIdentifier","src":"9500:3:65"},"nativeSrc":"9500:17:65","nodeType":"YulFunctionCall","src":"9500:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"9453:37:65","nodeType":"YulIdentifier","src":"9453:37:65"},"nativeSrc":"9453:65:65","nodeType":"YulFunctionCall","src":"9453:65:65"},"nativeSrc":"9453:65:65","nodeType":"YulExpressionStatement","src":"9453:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"9315:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9379:9:65","nodeType":"YulTypedName","src":"9379:9:65","type":""},{"name":"value0","nativeSrc":"9391:6:65","nodeType":"YulTypedName","src":"9391:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9402:4:65","nodeType":"YulTypedName","src":"9402:4:65","type":""}],"src":"9315:210:65"},{"body":{"nativeSrc":"9649:478:65","nodeType":"YulBlock","src":"9649:478:65","statements":[{"body":{"nativeSrc":"9698:83:65","nodeType":"YulBlock","src":"9698:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9700:77:65","nodeType":"YulIdentifier","src":"9700:77:65"},"nativeSrc":"9700:79:65","nodeType":"YulFunctionCall","src":"9700:79:65"},"nativeSrc":"9700:79:65","nodeType":"YulExpressionStatement","src":"9700:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9677:6:65","nodeType":"YulIdentifier","src":"9677:6:65"},{"kind":"number","nativeSrc":"9685:4:65","nodeType":"YulLiteral","src":"9685:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9673:3:65","nodeType":"YulIdentifier","src":"9673:3:65"},"nativeSrc":"9673:17:65","nodeType":"YulFunctionCall","src":"9673:17:65"},{"name":"end","nativeSrc":"9692:3:65","nodeType":"YulIdentifier","src":"9692:3:65"}],"functionName":{"name":"slt","nativeSrc":"9669:3:65","nodeType":"YulIdentifier","src":"9669:3:65"},"nativeSrc":"9669:27:65","nodeType":"YulFunctionCall","src":"9669:27:65"}],"functionName":{"name":"iszero","nativeSrc":"9662:6:65","nodeType":"YulIdentifier","src":"9662:6:65"},"nativeSrc":"9662:35:65","nodeType":"YulFunctionCall","src":"9662:35:65"},"nativeSrc":"9659:122:65","nodeType":"YulIf","src":"9659:122:65"},{"nativeSrc":"9790:30:65","nodeType":"YulAssignment","src":"9790:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"9813:6:65","nodeType":"YulIdentifier","src":"9813:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"9800:12:65","nodeType":"YulIdentifier","src":"9800:12:65"},"nativeSrc":"9800:20:65","nodeType":"YulFunctionCall","src":"9800:20:65"},"variableNames":[{"name":"length","nativeSrc":"9790:6:65","nodeType":"YulIdentifier","src":"9790:6:65"}]},{"body":{"nativeSrc":"9863:83:65","nodeType":"YulBlock","src":"9863:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"9865:77:65","nodeType":"YulIdentifier","src":"9865:77:65"},"nativeSrc":"9865:79:65","nodeType":"YulFunctionCall","src":"9865:79:65"},"nativeSrc":"9865:79:65","nodeType":"YulExpressionStatement","src":"9865:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9835:6:65","nodeType":"YulIdentifier","src":"9835:6:65"},{"kind":"number","nativeSrc":"9843:18:65","nodeType":"YulLiteral","src":"9843:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9832:2:65","nodeType":"YulIdentifier","src":"9832:2:65"},"nativeSrc":"9832:30:65","nodeType":"YulFunctionCall","src":"9832:30:65"},"nativeSrc":"9829:117:65","nodeType":"YulIf","src":"9829:117:65"},{"nativeSrc":"9955:29:65","nodeType":"YulAssignment","src":"9955:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"9971:6:65","nodeType":"YulIdentifier","src":"9971:6:65"},{"kind":"number","nativeSrc":"9979:4:65","nodeType":"YulLiteral","src":"9979:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9967:3:65","nodeType":"YulIdentifier","src":"9967:3:65"},"nativeSrc":"9967:17:65","nodeType":"YulFunctionCall","src":"9967:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"9955:8:65","nodeType":"YulIdentifier","src":"9955:8:65"}]},{"body":{"nativeSrc":"10038:83:65","nodeType":"YulBlock","src":"10038:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10040:77:65","nodeType":"YulIdentifier","src":"10040:77:65"},"nativeSrc":"10040:79:65","nodeType":"YulFunctionCall","src":"10040:79:65"},"nativeSrc":"10040:79:65","nodeType":"YulExpressionStatement","src":"10040:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10003:8:65","nodeType":"YulIdentifier","src":"10003:8:65"},{"arguments":[{"name":"length","nativeSrc":"10017:6:65","nodeType":"YulIdentifier","src":"10017:6:65"},{"kind":"number","nativeSrc":"10025:4:65","nodeType":"YulLiteral","src":"10025:4:65","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10013:3:65","nodeType":"YulIdentifier","src":"10013:3:65"},"nativeSrc":"10013:17:65","nodeType":"YulFunctionCall","src":"10013:17:65"}],"functionName":{"name":"add","nativeSrc":"9999:3:65","nodeType":"YulIdentifier","src":"9999:3:65"},"nativeSrc":"9999:32:65","nodeType":"YulFunctionCall","src":"9999:32:65"},{"name":"end","nativeSrc":"10033:3:65","nodeType":"YulIdentifier","src":"10033:3:65"}],"functionName":{"name":"gt","nativeSrc":"9996:2:65","nodeType":"YulIdentifier","src":"9996:2:65"},"nativeSrc":"9996:41:65","nodeType":"YulFunctionCall","src":"9996:41:65"},"nativeSrc":"9993:128:65","nodeType":"YulIf","src":"9993:128:65"}]},"name":"abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"9547:580:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9616:6:65","nodeType":"YulTypedName","src":"9616:6:65","type":""},{"name":"end","nativeSrc":"9624:3:65","nodeType":"YulTypedName","src":"9624:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"9632:8:65","nodeType":"YulTypedName","src":"9632:8:65","type":""},{"name":"length","nativeSrc":"9642:6:65","nodeType":"YulTypedName","src":"9642:6:65","type":""}],"src":"9547:580:65"},{"body":{"nativeSrc":"10234:478:65","nodeType":"YulBlock","src":"10234:478:65","statements":[{"body":{"nativeSrc":"10283:83:65","nodeType":"YulBlock","src":"10283:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10285:77:65","nodeType":"YulIdentifier","src":"10285:77:65"},"nativeSrc":"10285:79:65","nodeType":"YulFunctionCall","src":"10285:79:65"},"nativeSrc":"10285:79:65","nodeType":"YulExpressionStatement","src":"10285:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10262:6:65","nodeType":"YulIdentifier","src":"10262:6:65"},{"kind":"number","nativeSrc":"10270:4:65","nodeType":"YulLiteral","src":"10270:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10258:3:65","nodeType":"YulIdentifier","src":"10258:3:65"},"nativeSrc":"10258:17:65","nodeType":"YulFunctionCall","src":"10258:17:65"},{"name":"end","nativeSrc":"10277:3:65","nodeType":"YulIdentifier","src":"10277:3:65"}],"functionName":{"name":"slt","nativeSrc":"10254:3:65","nodeType":"YulIdentifier","src":"10254:3:65"},"nativeSrc":"10254:27:65","nodeType":"YulFunctionCall","src":"10254:27:65"}],"functionName":{"name":"iszero","nativeSrc":"10247:6:65","nodeType":"YulIdentifier","src":"10247:6:65"},"nativeSrc":"10247:35:65","nodeType":"YulFunctionCall","src":"10247:35:65"},"nativeSrc":"10244:122:65","nodeType":"YulIf","src":"10244:122:65"},{"nativeSrc":"10375:30:65","nodeType":"YulAssignment","src":"10375:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"10398:6:65","nodeType":"YulIdentifier","src":"10398:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"10385:12:65","nodeType":"YulIdentifier","src":"10385:12:65"},"nativeSrc":"10385:20:65","nodeType":"YulFunctionCall","src":"10385:20:65"},"variableNames":[{"name":"length","nativeSrc":"10375:6:65","nodeType":"YulIdentifier","src":"10375:6:65"}]},{"body":{"nativeSrc":"10448:83:65","nodeType":"YulBlock","src":"10448:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10450:77:65","nodeType":"YulIdentifier","src":"10450:77:65"},"nativeSrc":"10450:79:65","nodeType":"YulFunctionCall","src":"10450:79:65"},"nativeSrc":"10450:79:65","nodeType":"YulExpressionStatement","src":"10450:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10420:6:65","nodeType":"YulIdentifier","src":"10420:6:65"},{"kind":"number","nativeSrc":"10428:18:65","nodeType":"YulLiteral","src":"10428:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10417:2:65","nodeType":"YulIdentifier","src":"10417:2:65"},"nativeSrc":"10417:30:65","nodeType":"YulFunctionCall","src":"10417:30:65"},"nativeSrc":"10414:117:65","nodeType":"YulIf","src":"10414:117:65"},{"nativeSrc":"10540:29:65","nodeType":"YulAssignment","src":"10540:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"10556:6:65","nodeType":"YulIdentifier","src":"10556:6:65"},{"kind":"number","nativeSrc":"10564:4:65","nodeType":"YulLiteral","src":"10564:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10552:3:65","nodeType":"YulIdentifier","src":"10552:3:65"},"nativeSrc":"10552:17:65","nodeType":"YulFunctionCall","src":"10552:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"10540:8:65","nodeType":"YulIdentifier","src":"10540:8:65"}]},{"body":{"nativeSrc":"10623:83:65","nodeType":"YulBlock","src":"10623:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10625:77:65","nodeType":"YulIdentifier","src":"10625:77:65"},"nativeSrc":"10625:79:65","nodeType":"YulFunctionCall","src":"10625:79:65"},"nativeSrc":"10625:79:65","nodeType":"YulExpressionStatement","src":"10625:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10588:8:65","nodeType":"YulIdentifier","src":"10588:8:65"},{"arguments":[{"name":"length","nativeSrc":"10602:6:65","nodeType":"YulIdentifier","src":"10602:6:65"},{"kind":"number","nativeSrc":"10610:4:65","nodeType":"YulLiteral","src":"10610:4:65","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10598:3:65","nodeType":"YulIdentifier","src":"10598:3:65"},"nativeSrc":"10598:17:65","nodeType":"YulFunctionCall","src":"10598:17:65"}],"functionName":{"name":"add","nativeSrc":"10584:3:65","nodeType":"YulIdentifier","src":"10584:3:65"},"nativeSrc":"10584:32:65","nodeType":"YulFunctionCall","src":"10584:32:65"},{"name":"end","nativeSrc":"10618:3:65","nodeType":"YulIdentifier","src":"10618:3:65"}],"functionName":{"name":"gt","nativeSrc":"10581:2:65","nodeType":"YulIdentifier","src":"10581:2:65"},"nativeSrc":"10581:41:65","nodeType":"YulFunctionCall","src":"10581:41:65"},"nativeSrc":"10578:128:65","nodeType":"YulIf","src":"10578:128:65"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"10147:565:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10201:6:65","nodeType":"YulTypedName","src":"10201:6:65","type":""},{"name":"end","nativeSrc":"10209:3:65","nodeType":"YulTypedName","src":"10209:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10217:8:65","nodeType":"YulTypedName","src":"10217:8:65","type":""},{"name":"length","nativeSrc":"10227:6:65","nodeType":"YulTypedName","src":"10227:6:65","type":""}],"src":"10147:565:65"},{"body":{"nativeSrc":"10880:790:65","nodeType":"YulBlock","src":"10880:790:65","statements":[{"body":{"nativeSrc":"10926:83:65","nodeType":"YulBlock","src":"10926:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10928:77:65","nodeType":"YulIdentifier","src":"10928:77:65"},"nativeSrc":"10928:79:65","nodeType":"YulFunctionCall","src":"10928:79:65"},"nativeSrc":"10928:79:65","nodeType":"YulExpressionStatement","src":"10928:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10901:7:65","nodeType":"YulIdentifier","src":"10901:7:65"},{"name":"headStart","nativeSrc":"10910:9:65","nodeType":"YulIdentifier","src":"10910:9:65"}],"functionName":{"name":"sub","nativeSrc":"10897:3:65","nodeType":"YulIdentifier","src":"10897:3:65"},"nativeSrc":"10897:23:65","nodeType":"YulFunctionCall","src":"10897:23:65"},{"kind":"number","nativeSrc":"10922:2:65","nodeType":"YulLiteral","src":"10922:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10893:3:65","nodeType":"YulIdentifier","src":"10893:3:65"},"nativeSrc":"10893:32:65","nodeType":"YulFunctionCall","src":"10893:32:65"},"nativeSrc":"10890:119:65","nodeType":"YulIf","src":"10890:119:65"},{"nativeSrc":"11019:324:65","nodeType":"YulBlock","src":"11019:324:65","statements":[{"nativeSrc":"11034:45:65","nodeType":"YulVariableDeclaration","src":"11034:45:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11065:9:65","nodeType":"YulIdentifier","src":"11065:9:65"},{"kind":"number","nativeSrc":"11076:1:65","nodeType":"YulLiteral","src":"11076:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11061:3:65","nodeType":"YulIdentifier","src":"11061:3:65"},"nativeSrc":"11061:17:65","nodeType":"YulFunctionCall","src":"11061:17:65"}],"functionName":{"name":"calldataload","nativeSrc":"11048:12:65","nodeType":"YulIdentifier","src":"11048:12:65"},"nativeSrc":"11048:31:65","nodeType":"YulFunctionCall","src":"11048:31:65"},"variables":[{"name":"offset","nativeSrc":"11038:6:65","nodeType":"YulTypedName","src":"11038:6:65","type":""}]},{"body":{"nativeSrc":"11126:83:65","nodeType":"YulBlock","src":"11126:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11128:77:65","nodeType":"YulIdentifier","src":"11128:77:65"},"nativeSrc":"11128:79:65","nodeType":"YulFunctionCall","src":"11128:79:65"},"nativeSrc":"11128:79:65","nodeType":"YulExpressionStatement","src":"11128:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11098:6:65","nodeType":"YulIdentifier","src":"11098:6:65"},{"kind":"number","nativeSrc":"11106:18:65","nodeType":"YulLiteral","src":"11106:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11095:2:65","nodeType":"YulIdentifier","src":"11095:2:65"},"nativeSrc":"11095:30:65","nodeType":"YulFunctionCall","src":"11095:30:65"},"nativeSrc":"11092:117:65","nodeType":"YulIf","src":"11092:117:65"},{"nativeSrc":"11223:110:65","nodeType":"YulAssignment","src":"11223:110:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11305:9:65","nodeType":"YulIdentifier","src":"11305:9:65"},{"name":"offset","nativeSrc":"11316:6:65","nodeType":"YulIdentifier","src":"11316:6:65"}],"functionName":{"name":"add","nativeSrc":"11301:3:65","nodeType":"YulIdentifier","src":"11301:3:65"},"nativeSrc":"11301:22:65","nodeType":"YulFunctionCall","src":"11301:22:65"},{"name":"dataEnd","nativeSrc":"11325:7:65","nodeType":"YulIdentifier","src":"11325:7:65"}],"functionName":{"name":"abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"11241:59:65","nodeType":"YulIdentifier","src":"11241:59:65"},"nativeSrc":"11241:92:65","nodeType":"YulFunctionCall","src":"11241:92:65"},"variableNames":[{"name":"value0","nativeSrc":"11223:6:65","nodeType":"YulIdentifier","src":"11223:6:65"},{"name":"value1","nativeSrc":"11231:6:65","nodeType":"YulIdentifier","src":"11231:6:65"}]}]},{"nativeSrc":"11353:310:65","nodeType":"YulBlock","src":"11353:310:65","statements":[{"nativeSrc":"11368:46:65","nodeType":"YulVariableDeclaration","src":"11368:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11399:9:65","nodeType":"YulIdentifier","src":"11399:9:65"},{"kind":"number","nativeSrc":"11410:2:65","nodeType":"YulLiteral","src":"11410:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11395:3:65","nodeType":"YulIdentifier","src":"11395:3:65"},"nativeSrc":"11395:18:65","nodeType":"YulFunctionCall","src":"11395:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"11382:12:65","nodeType":"YulIdentifier","src":"11382:12:65"},"nativeSrc":"11382:32:65","nodeType":"YulFunctionCall","src":"11382:32:65"},"variables":[{"name":"offset","nativeSrc":"11372:6:65","nodeType":"YulTypedName","src":"11372:6:65","type":""}]},{"body":{"nativeSrc":"11461:83:65","nodeType":"YulBlock","src":"11461:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11463:77:65","nodeType":"YulIdentifier","src":"11463:77:65"},"nativeSrc":"11463:79:65","nodeType":"YulFunctionCall","src":"11463:79:65"},"nativeSrc":"11463:79:65","nodeType":"YulExpressionStatement","src":"11463:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11433:6:65","nodeType":"YulIdentifier","src":"11433:6:65"},{"kind":"number","nativeSrc":"11441:18:65","nodeType":"YulLiteral","src":"11441:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11430:2:65","nodeType":"YulIdentifier","src":"11430:2:65"},"nativeSrc":"11430:30:65","nodeType":"YulFunctionCall","src":"11430:30:65"},"nativeSrc":"11427:117:65","nodeType":"YulIf","src":"11427:117:65"},{"nativeSrc":"11558:95:65","nodeType":"YulAssignment","src":"11558:95:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11625:9:65","nodeType":"YulIdentifier","src":"11625:9:65"},{"name":"offset","nativeSrc":"11636:6:65","nodeType":"YulIdentifier","src":"11636:6:65"}],"functionName":{"name":"add","nativeSrc":"11621:3:65","nodeType":"YulIdentifier","src":"11621:3:65"},"nativeSrc":"11621:22:65","nodeType":"YulFunctionCall","src":"11621:22:65"},{"name":"dataEnd","nativeSrc":"11645:7:65","nodeType":"YulIdentifier","src":"11645:7:65"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"11576:44:65","nodeType":"YulIdentifier","src":"11576:44:65"},"nativeSrc":"11576:77:65","nodeType":"YulFunctionCall","src":"11576:77:65"},"variableNames":[{"name":"value2","nativeSrc":"11558:6:65","nodeType":"YulIdentifier","src":"11558:6:65"},{"name":"value3","nativeSrc":"11566:6:65","nodeType":"YulIdentifier","src":"11566:6:65"}]}]}]},"name":"abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"10718:952:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10826:9:65","nodeType":"YulTypedName","src":"10826:9:65","type":""},{"name":"dataEnd","nativeSrc":"10837:7:65","nodeType":"YulTypedName","src":"10837:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10849:6:65","nodeType":"YulTypedName","src":"10849:6:65","type":""},{"name":"value1","nativeSrc":"10857:6:65","nodeType":"YulTypedName","src":"10857:6:65","type":""},{"name":"value2","nativeSrc":"10865:6:65","nodeType":"YulTypedName","src":"10865:6:65","type":""},{"name":"value3","nativeSrc":"10873:6:65","nodeType":"YulTypedName","src":"10873:6:65","type":""}],"src":"10718:952:65"},{"body":{"nativeSrc":"11741:53:65","nodeType":"YulBlock","src":"11741:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11758:3:65","nodeType":"YulIdentifier","src":"11758:3:65"},{"arguments":[{"name":"value","nativeSrc":"11781:5:65","nodeType":"YulIdentifier","src":"11781:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"11763:17:65","nodeType":"YulIdentifier","src":"11763:17:65"},"nativeSrc":"11763:24:65","nodeType":"YulFunctionCall","src":"11763:24:65"}],"functionName":{"name":"mstore","nativeSrc":"11751:6:65","nodeType":"YulIdentifier","src":"11751:6:65"},"nativeSrc":"11751:37:65","nodeType":"YulFunctionCall","src":"11751:37:65"},"nativeSrc":"11751:37:65","nodeType":"YulExpressionStatement","src":"11751:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11676:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11729:5:65","nodeType":"YulTypedName","src":"11729:5:65","type":""},{"name":"pos","nativeSrc":"11736:3:65","nodeType":"YulTypedName","src":"11736:3:65","type":""}],"src":"11676:118:65"},{"body":{"nativeSrc":"11898:124:65","nodeType":"YulBlock","src":"11898:124:65","statements":[{"nativeSrc":"11908:26:65","nodeType":"YulAssignment","src":"11908:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11920:9:65","nodeType":"YulIdentifier","src":"11920:9:65"},{"kind":"number","nativeSrc":"11931:2:65","nodeType":"YulLiteral","src":"11931:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11916:3:65","nodeType":"YulIdentifier","src":"11916:3:65"},"nativeSrc":"11916:18:65","nodeType":"YulFunctionCall","src":"11916:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11908:4:65","nodeType":"YulIdentifier","src":"11908:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11988:6:65","nodeType":"YulIdentifier","src":"11988:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"12001:9:65","nodeType":"YulIdentifier","src":"12001:9:65"},{"kind":"number","nativeSrc":"12012:1:65","nodeType":"YulLiteral","src":"12012:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11997:3:65","nodeType":"YulIdentifier","src":"11997:3:65"},"nativeSrc":"11997:17:65","nodeType":"YulFunctionCall","src":"11997:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11944:43:65","nodeType":"YulIdentifier","src":"11944:43:65"},"nativeSrc":"11944:71:65","nodeType":"YulFunctionCall","src":"11944:71:65"},"nativeSrc":"11944:71:65","nodeType":"YulExpressionStatement","src":"11944:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"11800:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11870:9:65","nodeType":"YulTypedName","src":"11870:9:65","type":""},{"name":"value0","nativeSrc":"11882:6:65","nodeType":"YulTypedName","src":"11882:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11893:4:65","nodeType":"YulTypedName","src":"11893:4:65","type":""}],"src":"11800:222:65"},{"body":{"nativeSrc":"12120:66:65","nodeType":"YulBlock","src":"12120:66:65","statements":[{"nativeSrc":"12130:50:65","nodeType":"YulAssignment","src":"12130:50:65","value":{"arguments":[{"name":"value","nativeSrc":"12174:5:65","nodeType":"YulIdentifier","src":"12174:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"12143:30:65","nodeType":"YulIdentifier","src":"12143:30:65"},"nativeSrc":"12143:37:65","nodeType":"YulFunctionCall","src":"12143:37:65"},"variableNames":[{"name":"converted","nativeSrc":"12130:9:65","nodeType":"YulIdentifier","src":"12130:9:65"}]}]},"name":"convert_t_contract$_IAccessControlManagerV8_$8664_to_t_address","nativeSrc":"12028:158:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12100:5:65","nodeType":"YulTypedName","src":"12100:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12110:9:65","nodeType":"YulTypedName","src":"12110:9:65","type":""}],"src":"12028:158:65"},{"body":{"nativeSrc":"12289:98:65","nodeType":"YulBlock","src":"12289:98:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12306:3:65","nodeType":"YulIdentifier","src":"12306:3:65"},{"arguments":[{"name":"value","nativeSrc":"12374:5:65","nodeType":"YulIdentifier","src":"12374:5:65"}],"functionName":{"name":"convert_t_contract$_IAccessControlManagerV8_$8664_to_t_address","nativeSrc":"12311:62:65","nodeType":"YulIdentifier","src":"12311:62:65"},"nativeSrc":"12311:69:65","nodeType":"YulFunctionCall","src":"12311:69:65"}],"functionName":{"name":"mstore","nativeSrc":"12299:6:65","nodeType":"YulIdentifier","src":"12299:6:65"},"nativeSrc":"12299:82:65","nodeType":"YulFunctionCall","src":"12299:82:65"},"nativeSrc":"12299:82:65","nodeType":"YulExpressionStatement","src":"12299:82:65"}]},"name":"abi_encode_t_contract$_IAccessControlManagerV8_$8664_to_t_address_fromStack","nativeSrc":"12192:195:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12277:5:65","nodeType":"YulTypedName","src":"12277:5:65","type":""},{"name":"pos","nativeSrc":"12284:3:65","nodeType":"YulTypedName","src":"12284:3:65","type":""}],"src":"12192:195:65"},{"body":{"nativeSrc":"12523:156:65","nodeType":"YulBlock","src":"12523:156:65","statements":[{"nativeSrc":"12533:26:65","nodeType":"YulAssignment","src":"12533:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"12545:9:65","nodeType":"YulIdentifier","src":"12545:9:65"},{"kind":"number","nativeSrc":"12556:2:65","nodeType":"YulLiteral","src":"12556:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12541:3:65","nodeType":"YulIdentifier","src":"12541:3:65"},"nativeSrc":"12541:18:65","nodeType":"YulFunctionCall","src":"12541:18:65"},"variableNames":[{"name":"tail","nativeSrc":"12533:4:65","nodeType":"YulIdentifier","src":"12533:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12645:6:65","nodeType":"YulIdentifier","src":"12645:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"12658:9:65","nodeType":"YulIdentifier","src":"12658:9:65"},{"kind":"number","nativeSrc":"12669:1:65","nodeType":"YulLiteral","src":"12669:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12654:3:65","nodeType":"YulIdentifier","src":"12654:3:65"},"nativeSrc":"12654:17:65","nodeType":"YulFunctionCall","src":"12654:17:65"}],"functionName":{"name":"abi_encode_t_contract$_IAccessControlManagerV8_$8664_to_t_address_fromStack","nativeSrc":"12569:75:65","nodeType":"YulIdentifier","src":"12569:75:65"},"nativeSrc":"12569:103:65","nodeType":"YulFunctionCall","src":"12569:103:65"},"nativeSrc":"12569:103:65","nodeType":"YulExpressionStatement","src":"12569:103:65"}]},"name":"abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8664__to_t_address__fromStack_reversed","nativeSrc":"12393:286:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12495:9:65","nodeType":"YulTypedName","src":"12495:9:65","type":""},{"name":"value0","nativeSrc":"12507:6:65","nodeType":"YulTypedName","src":"12507:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12518:4:65","nodeType":"YulTypedName","src":"12518:4:65","type":""}],"src":"12393:286:65"},{"body":{"nativeSrc":"12713:152:65","nodeType":"YulBlock","src":"12713:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12730:1:65","nodeType":"YulLiteral","src":"12730:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12733:77:65","nodeType":"YulLiteral","src":"12733:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12723:6:65","nodeType":"YulIdentifier","src":"12723:6:65"},"nativeSrc":"12723:88:65","nodeType":"YulFunctionCall","src":"12723:88:65"},"nativeSrc":"12723:88:65","nodeType":"YulExpressionStatement","src":"12723:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12827:1:65","nodeType":"YulLiteral","src":"12827:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"12830:4:65","nodeType":"YulLiteral","src":"12830:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"12820:6:65","nodeType":"YulIdentifier","src":"12820:6:65"},"nativeSrc":"12820:15:65","nodeType":"YulFunctionCall","src":"12820:15:65"},"nativeSrc":"12820:15:65","nodeType":"YulExpressionStatement","src":"12820:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12851:1:65","nodeType":"YulLiteral","src":"12851:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12854:4:65","nodeType":"YulLiteral","src":"12854:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12844:6:65","nodeType":"YulIdentifier","src":"12844:6:65"},"nativeSrc":"12844:15:65","nodeType":"YulFunctionCall","src":"12844:15:65"},"nativeSrc":"12844:15:65","nodeType":"YulExpressionStatement","src":"12844:15:65"}]},"name":"panic_error_0x22","nativeSrc":"12685:180:65","nodeType":"YulFunctionDefinition","src":"12685:180:65"},{"body":{"nativeSrc":"12922:269:65","nodeType":"YulBlock","src":"12922:269:65","statements":[{"nativeSrc":"12932:22:65","nodeType":"YulAssignment","src":"12932:22:65","value":{"arguments":[{"name":"data","nativeSrc":"12946:4:65","nodeType":"YulIdentifier","src":"12946:4:65"},{"kind":"number","nativeSrc":"12952:1:65","nodeType":"YulLiteral","src":"12952:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"12942:3:65","nodeType":"YulIdentifier","src":"12942:3:65"},"nativeSrc":"12942:12:65","nodeType":"YulFunctionCall","src":"12942:12:65"},"variableNames":[{"name":"length","nativeSrc":"12932:6:65","nodeType":"YulIdentifier","src":"12932:6:65"}]},{"nativeSrc":"12963:38:65","nodeType":"YulVariableDeclaration","src":"12963:38:65","value":{"arguments":[{"name":"data","nativeSrc":"12993:4:65","nodeType":"YulIdentifier","src":"12993:4:65"},{"kind":"number","nativeSrc":"12999:1:65","nodeType":"YulLiteral","src":"12999:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"12989:3:65","nodeType":"YulIdentifier","src":"12989:3:65"},"nativeSrc":"12989:12:65","nodeType":"YulFunctionCall","src":"12989:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"12967:18:65","nodeType":"YulTypedName","src":"12967:18:65","type":""}]},{"body":{"nativeSrc":"13040:51:65","nodeType":"YulBlock","src":"13040:51:65","statements":[{"nativeSrc":"13054:27:65","nodeType":"YulAssignment","src":"13054:27:65","value":{"arguments":[{"name":"length","nativeSrc":"13068:6:65","nodeType":"YulIdentifier","src":"13068:6:65"},{"kind":"number","nativeSrc":"13076:4:65","nodeType":"YulLiteral","src":"13076:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"13064:3:65","nodeType":"YulIdentifier","src":"13064:3:65"},"nativeSrc":"13064:17:65","nodeType":"YulFunctionCall","src":"13064:17:65"},"variableNames":[{"name":"length","nativeSrc":"13054:6:65","nodeType":"YulIdentifier","src":"13054:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"13020:18:65","nodeType":"YulIdentifier","src":"13020:18:65"}],"functionName":{"name":"iszero","nativeSrc":"13013:6:65","nodeType":"YulIdentifier","src":"13013:6:65"},"nativeSrc":"13013:26:65","nodeType":"YulFunctionCall","src":"13013:26:65"},"nativeSrc":"13010:81:65","nodeType":"YulIf","src":"13010:81:65"},{"body":{"nativeSrc":"13143:42:65","nodeType":"YulBlock","src":"13143:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"13157:16:65","nodeType":"YulIdentifier","src":"13157:16:65"},"nativeSrc":"13157:18:65","nodeType":"YulFunctionCall","src":"13157:18:65"},"nativeSrc":"13157:18:65","nodeType":"YulExpressionStatement","src":"13157:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"13107:18:65","nodeType":"YulIdentifier","src":"13107:18:65"},{"arguments":[{"name":"length","nativeSrc":"13130:6:65","nodeType":"YulIdentifier","src":"13130:6:65"},{"kind":"number","nativeSrc":"13138:2:65","nodeType":"YulLiteral","src":"13138:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"13127:2:65","nodeType":"YulIdentifier","src":"13127:2:65"},"nativeSrc":"13127:14:65","nodeType":"YulFunctionCall","src":"13127:14:65"}],"functionName":{"name":"eq","nativeSrc":"13104:2:65","nodeType":"YulIdentifier","src":"13104:2:65"},"nativeSrc":"13104:38:65","nodeType":"YulFunctionCall","src":"13104:38:65"},"nativeSrc":"13101:84:65","nodeType":"YulIf","src":"13101:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"12871:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"12906:4:65","nodeType":"YulTypedName","src":"12906:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"12915:6:65","nodeType":"YulTypedName","src":"12915:6:65","type":""}],"src":"12871:320:65"},{"body":{"nativeSrc":"13343:277:65","nodeType":"YulBlock","src":"13343:277:65","statements":[{"nativeSrc":"13353:26:65","nodeType":"YulAssignment","src":"13353:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"13365:9:65","nodeType":"YulIdentifier","src":"13365:9:65"},{"kind":"number","nativeSrc":"13376:2:65","nodeType":"YulLiteral","src":"13376:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13361:3:65","nodeType":"YulIdentifier","src":"13361:3:65"},"nativeSrc":"13361:18:65","nodeType":"YulFunctionCall","src":"13361:18:65"},"variableNames":[{"name":"tail","nativeSrc":"13353:4:65","nodeType":"YulIdentifier","src":"13353:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13433:6:65","nodeType":"YulIdentifier","src":"13433:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"13446:9:65","nodeType":"YulIdentifier","src":"13446:9:65"},{"kind":"number","nativeSrc":"13457:1:65","nodeType":"YulLiteral","src":"13457:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13442:3:65","nodeType":"YulIdentifier","src":"13442:3:65"},"nativeSrc":"13442:17:65","nodeType":"YulFunctionCall","src":"13442:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13389:43:65","nodeType":"YulIdentifier","src":"13389:43:65"},"nativeSrc":"13389:71:65","nodeType":"YulFunctionCall","src":"13389:71:65"},"nativeSrc":"13389:71:65","nodeType":"YulExpressionStatement","src":"13389:71:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13481:9:65","nodeType":"YulIdentifier","src":"13481:9:65"},{"kind":"number","nativeSrc":"13492:2:65","nodeType":"YulLiteral","src":"13492:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13477:3:65","nodeType":"YulIdentifier","src":"13477:3:65"},"nativeSrc":"13477:18:65","nodeType":"YulFunctionCall","src":"13477:18:65"},{"arguments":[{"name":"tail","nativeSrc":"13501:4:65","nodeType":"YulIdentifier","src":"13501:4:65"},{"name":"headStart","nativeSrc":"13507:9:65","nodeType":"YulIdentifier","src":"13507:9:65"}],"functionName":{"name":"sub","nativeSrc":"13497:3:65","nodeType":"YulIdentifier","src":"13497:3:65"},"nativeSrc":"13497:20:65","nodeType":"YulFunctionCall","src":"13497:20:65"}],"functionName":{"name":"mstore","nativeSrc":"13470:6:65","nodeType":"YulIdentifier","src":"13470:6:65"},"nativeSrc":"13470:48:65","nodeType":"YulFunctionCall","src":"13470:48:65"},"nativeSrc":"13470:48:65","nodeType":"YulExpressionStatement","src":"13470:48:65"},{"nativeSrc":"13527:86:65","nodeType":"YulAssignment","src":"13527:86:65","value":{"arguments":[{"name":"value1","nativeSrc":"13599:6:65","nodeType":"YulIdentifier","src":"13599:6:65"},{"name":"tail","nativeSrc":"13608:4:65","nodeType":"YulIdentifier","src":"13608:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"13535:63:65","nodeType":"YulIdentifier","src":"13535:63:65"},"nativeSrc":"13535:78:65","nodeType":"YulFunctionCall","src":"13535:78:65"},"variableNames":[{"name":"tail","nativeSrc":"13527:4:65","nodeType":"YulIdentifier","src":"13527:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13197:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13307:9:65","nodeType":"YulTypedName","src":"13307:9:65","type":""},{"name":"value1","nativeSrc":"13319:6:65","nodeType":"YulTypedName","src":"13319:6:65","type":""},{"name":"value0","nativeSrc":"13327:6:65","nodeType":"YulTypedName","src":"13327:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13338:4:65","nodeType":"YulTypedName","src":"13338:4:65","type":""}],"src":"13197:423:65"},{"body":{"nativeSrc":"13666:76:65","nodeType":"YulBlock","src":"13666:76:65","statements":[{"body":{"nativeSrc":"13720:16:65","nodeType":"YulBlock","src":"13720:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13729:1:65","nodeType":"YulLiteral","src":"13729:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"13732:1:65","nodeType":"YulLiteral","src":"13732:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13722:6:65","nodeType":"YulIdentifier","src":"13722:6:65"},"nativeSrc":"13722:12:65","nodeType":"YulFunctionCall","src":"13722:12:65"},"nativeSrc":"13722:12:65","nodeType":"YulExpressionStatement","src":"13722:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13689:5:65","nodeType":"YulIdentifier","src":"13689:5:65"},{"arguments":[{"name":"value","nativeSrc":"13711:5:65","nodeType":"YulIdentifier","src":"13711:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"13696:14:65","nodeType":"YulIdentifier","src":"13696:14:65"},"nativeSrc":"13696:21:65","nodeType":"YulFunctionCall","src":"13696:21:65"}],"functionName":{"name":"eq","nativeSrc":"13686:2:65","nodeType":"YulIdentifier","src":"13686:2:65"},"nativeSrc":"13686:32:65","nodeType":"YulFunctionCall","src":"13686:32:65"}],"functionName":{"name":"iszero","nativeSrc":"13679:6:65","nodeType":"YulIdentifier","src":"13679:6:65"},"nativeSrc":"13679:40:65","nodeType":"YulFunctionCall","src":"13679:40:65"},"nativeSrc":"13676:60:65","nodeType":"YulIf","src":"13676:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"13626:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13659:5:65","nodeType":"YulTypedName","src":"13659:5:65","type":""}],"src":"13626:116:65"},{"body":{"nativeSrc":"13808:77:65","nodeType":"YulBlock","src":"13808:77:65","statements":[{"nativeSrc":"13818:22:65","nodeType":"YulAssignment","src":"13818:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"13833:6:65","nodeType":"YulIdentifier","src":"13833:6:65"}],"functionName":{"name":"mload","nativeSrc":"13827:5:65","nodeType":"YulIdentifier","src":"13827:5:65"},"nativeSrc":"13827:13:65","nodeType":"YulFunctionCall","src":"13827:13:65"},"variableNames":[{"name":"value","nativeSrc":"13818:5:65","nodeType":"YulIdentifier","src":"13818:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13873:5:65","nodeType":"YulIdentifier","src":"13873:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"13849:23:65","nodeType":"YulIdentifier","src":"13849:23:65"},"nativeSrc":"13849:30:65","nodeType":"YulFunctionCall","src":"13849:30:65"},"nativeSrc":"13849:30:65","nodeType":"YulExpressionStatement","src":"13849:30:65"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"13748:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13786:6:65","nodeType":"YulTypedName","src":"13786:6:65","type":""},{"name":"end","nativeSrc":"13794:3:65","nodeType":"YulTypedName","src":"13794:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13802:5:65","nodeType":"YulTypedName","src":"13802:5:65","type":""}],"src":"13748:137:65"},{"body":{"nativeSrc":"13965:271:65","nodeType":"YulBlock","src":"13965:271:65","statements":[{"body":{"nativeSrc":"14011:83:65","nodeType":"YulBlock","src":"14011:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14013:77:65","nodeType":"YulIdentifier","src":"14013:77:65"},"nativeSrc":"14013:79:65","nodeType":"YulFunctionCall","src":"14013:79:65"},"nativeSrc":"14013:79:65","nodeType":"YulExpressionStatement","src":"14013:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13986:7:65","nodeType":"YulIdentifier","src":"13986:7:65"},{"name":"headStart","nativeSrc":"13995:9:65","nodeType":"YulIdentifier","src":"13995:9:65"}],"functionName":{"name":"sub","nativeSrc":"13982:3:65","nodeType":"YulIdentifier","src":"13982:3:65"},"nativeSrc":"13982:23:65","nodeType":"YulFunctionCall","src":"13982:23:65"},{"kind":"number","nativeSrc":"14007:2:65","nodeType":"YulLiteral","src":"14007:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13978:3:65","nodeType":"YulIdentifier","src":"13978:3:65"},"nativeSrc":"13978:32:65","nodeType":"YulFunctionCall","src":"13978:32:65"},"nativeSrc":"13975:119:65","nodeType":"YulIf","src":"13975:119:65"},{"nativeSrc":"14104:125:65","nodeType":"YulBlock","src":"14104:125:65","statements":[{"nativeSrc":"14119:15:65","nodeType":"YulVariableDeclaration","src":"14119:15:65","value":{"kind":"number","nativeSrc":"14133:1:65","nodeType":"YulLiteral","src":"14133:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14123:6:65","nodeType":"YulTypedName","src":"14123:6:65","type":""}]},{"nativeSrc":"14148:71:65","nodeType":"YulAssignment","src":"14148:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14191:9:65","nodeType":"YulIdentifier","src":"14191:9:65"},{"name":"offset","nativeSrc":"14202:6:65","nodeType":"YulIdentifier","src":"14202:6:65"}],"functionName":{"name":"add","nativeSrc":"14187:3:65","nodeType":"YulIdentifier","src":"14187:3:65"},"nativeSrc":"14187:22:65","nodeType":"YulFunctionCall","src":"14187:22:65"},{"name":"dataEnd","nativeSrc":"14211:7:65","nodeType":"YulIdentifier","src":"14211:7:65"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14158:28:65","nodeType":"YulIdentifier","src":"14158:28:65"},"nativeSrc":"14158:61:65","nodeType":"YulFunctionCall","src":"14158:61:65"},"variableNames":[{"name":"value0","nativeSrc":"14148:6:65","nodeType":"YulIdentifier","src":"14148:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"13891:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13935:9:65","nodeType":"YulTypedName","src":"13935:9:65","type":""},{"name":"dataEnd","nativeSrc":"13946:7:65","nodeType":"YulTypedName","src":"13946:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13958:6:65","nodeType":"YulTypedName","src":"13958:6:65","type":""}],"src":"13891:345:65"},{"body":{"nativeSrc":"14416:359:65","nodeType":"YulBlock","src":"14416:359:65","statements":[{"nativeSrc":"14426:26:65","nodeType":"YulAssignment","src":"14426:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14438:9:65","nodeType":"YulIdentifier","src":"14438:9:65"},{"kind":"number","nativeSrc":"14449:2:65","nodeType":"YulLiteral","src":"14449:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14434:3:65","nodeType":"YulIdentifier","src":"14434:3:65"},"nativeSrc":"14434:18:65","nodeType":"YulFunctionCall","src":"14434:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14426:4:65","nodeType":"YulIdentifier","src":"14426:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14506:6:65","nodeType":"YulIdentifier","src":"14506:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"14519:9:65","nodeType":"YulIdentifier","src":"14519:9:65"},{"kind":"number","nativeSrc":"14530:1:65","nodeType":"YulLiteral","src":"14530:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14515:3:65","nodeType":"YulIdentifier","src":"14515:3:65"},"nativeSrc":"14515:17:65","nodeType":"YulFunctionCall","src":"14515:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14462:43:65","nodeType":"YulIdentifier","src":"14462:43:65"},"nativeSrc":"14462:71:65","nodeType":"YulFunctionCall","src":"14462:71:65"},"nativeSrc":"14462:71:65","nodeType":"YulExpressionStatement","src":"14462:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14587:6:65","nodeType":"YulIdentifier","src":"14587:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"14600:9:65","nodeType":"YulIdentifier","src":"14600:9:65"},{"kind":"number","nativeSrc":"14611:2:65","nodeType":"YulLiteral","src":"14611:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14596:3:65","nodeType":"YulIdentifier","src":"14596:3:65"},"nativeSrc":"14596:18:65","nodeType":"YulFunctionCall","src":"14596:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14543:43:65","nodeType":"YulIdentifier","src":"14543:43:65"},"nativeSrc":"14543:72:65","nodeType":"YulFunctionCall","src":"14543:72:65"},"nativeSrc":"14543:72:65","nodeType":"YulExpressionStatement","src":"14543:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14636:9:65","nodeType":"YulIdentifier","src":"14636:9:65"},{"kind":"number","nativeSrc":"14647:2:65","nodeType":"YulLiteral","src":"14647:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14632:3:65","nodeType":"YulIdentifier","src":"14632:3:65"},"nativeSrc":"14632:18:65","nodeType":"YulFunctionCall","src":"14632:18:65"},{"arguments":[{"name":"tail","nativeSrc":"14656:4:65","nodeType":"YulIdentifier","src":"14656:4:65"},{"name":"headStart","nativeSrc":"14662:9:65","nodeType":"YulIdentifier","src":"14662:9:65"}],"functionName":{"name":"sub","nativeSrc":"14652:3:65","nodeType":"YulIdentifier","src":"14652:3:65"},"nativeSrc":"14652:20:65","nodeType":"YulFunctionCall","src":"14652:20:65"}],"functionName":{"name":"mstore","nativeSrc":"14625:6:65","nodeType":"YulIdentifier","src":"14625:6:65"},"nativeSrc":"14625:48:65","nodeType":"YulFunctionCall","src":"14625:48:65"},"nativeSrc":"14625:48:65","nodeType":"YulExpressionStatement","src":"14625:48:65"},{"nativeSrc":"14682:86:65","nodeType":"YulAssignment","src":"14682:86:65","value":{"arguments":[{"name":"value2","nativeSrc":"14754:6:65","nodeType":"YulIdentifier","src":"14754:6:65"},{"name":"tail","nativeSrc":"14763:4:65","nodeType":"YulIdentifier","src":"14763:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"14690:63:65","nodeType":"YulIdentifier","src":"14690:63:65"},"nativeSrc":"14690:78:65","nodeType":"YulFunctionCall","src":"14690:78:65"},"variableNames":[{"name":"tail","nativeSrc":"14682:4:65","nodeType":"YulIdentifier","src":"14682:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14242:533:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14372:9:65","nodeType":"YulTypedName","src":"14372:9:65","type":""},{"name":"value2","nativeSrc":"14384:6:65","nodeType":"YulTypedName","src":"14384:6:65","type":""},{"name":"value1","nativeSrc":"14392:6:65","nodeType":"YulTypedName","src":"14392:6:65","type":""},{"name":"value0","nativeSrc":"14400:6:65","nodeType":"YulTypedName","src":"14400:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14411:4:65","nodeType":"YulTypedName","src":"14411:4:65","type":""}],"src":"14242:533:65"},{"body":{"nativeSrc":"14887:68:65","nodeType":"YulBlock","src":"14887:68:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14909:6:65","nodeType":"YulIdentifier","src":"14909:6:65"},{"kind":"number","nativeSrc":"14917:1:65","nodeType":"YulLiteral","src":"14917:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14905:3:65","nodeType":"YulIdentifier","src":"14905:3:65"},"nativeSrc":"14905:14:65","nodeType":"YulFunctionCall","src":"14905:14:65"},{"hexValue":"436861696e4964206d757374206e6f74206265207a65726f","kind":"string","nativeSrc":"14921:26:65","nodeType":"YulLiteral","src":"14921:26:65","type":"","value":"ChainId must not be zero"}],"functionName":{"name":"mstore","nativeSrc":"14898:6:65","nodeType":"YulIdentifier","src":"14898:6:65"},"nativeSrc":"14898:50:65","nodeType":"YulFunctionCall","src":"14898:50:65"},"nativeSrc":"14898:50:65","nodeType":"YulExpressionStatement","src":"14898:50:65"}]},"name":"store_literal_in_memory_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","nativeSrc":"14781:174:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14879:6:65","nodeType":"YulTypedName","src":"14879:6:65","type":""}],"src":"14781:174:65"},{"body":{"nativeSrc":"15107:220:65","nodeType":"YulBlock","src":"15107:220:65","statements":[{"nativeSrc":"15117:74:65","nodeType":"YulAssignment","src":"15117:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"15183:3:65","nodeType":"YulIdentifier","src":"15183:3:65"},{"kind":"number","nativeSrc":"15188:2:65","nodeType":"YulLiteral","src":"15188:2:65","type":"","value":"24"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15124:58:65","nodeType":"YulIdentifier","src":"15124:58:65"},"nativeSrc":"15124:67:65","nodeType":"YulFunctionCall","src":"15124:67:65"},"variableNames":[{"name":"pos","nativeSrc":"15117:3:65","nodeType":"YulIdentifier","src":"15117:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15289:3:65","nodeType":"YulIdentifier","src":"15289:3:65"}],"functionName":{"name":"store_literal_in_memory_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1","nativeSrc":"15200:88:65","nodeType":"YulIdentifier","src":"15200:88:65"},"nativeSrc":"15200:93:65","nodeType":"YulFunctionCall","src":"15200:93:65"},"nativeSrc":"15200:93:65","nodeType":"YulExpressionStatement","src":"15200:93:65"},{"nativeSrc":"15302:19:65","nodeType":"YulAssignment","src":"15302:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"15313:3:65","nodeType":"YulIdentifier","src":"15313:3:65"},{"kind":"number","nativeSrc":"15318:2:65","nodeType":"YulLiteral","src":"15318:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15309:3:65","nodeType":"YulIdentifier","src":"15309:3:65"},"nativeSrc":"15309:12:65","nodeType":"YulFunctionCall","src":"15309:12:65"},"variableNames":[{"name":"end","nativeSrc":"15302:3:65","nodeType":"YulIdentifier","src":"15302:3:65"}]}]},"name":"abi_encode_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1_to_t_string_memory_ptr_fromStack","nativeSrc":"14961:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15095:3:65","nodeType":"YulTypedName","src":"15095:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15103:3:65","nodeType":"YulTypedName","src":"15103:3:65","type":""}],"src":"14961:366:65"},{"body":{"nativeSrc":"15504:248:65","nodeType":"YulBlock","src":"15504:248:65","statements":[{"nativeSrc":"15514:26:65","nodeType":"YulAssignment","src":"15514:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"15526:9:65","nodeType":"YulIdentifier","src":"15526:9:65"},{"kind":"number","nativeSrc":"15537:2:65","nodeType":"YulLiteral","src":"15537:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15522:3:65","nodeType":"YulIdentifier","src":"15522:3:65"},"nativeSrc":"15522:18:65","nodeType":"YulFunctionCall","src":"15522:18:65"},"variableNames":[{"name":"tail","nativeSrc":"15514:4:65","nodeType":"YulIdentifier","src":"15514:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15561:9:65","nodeType":"YulIdentifier","src":"15561:9:65"},{"kind":"number","nativeSrc":"15572:1:65","nodeType":"YulLiteral","src":"15572:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15557:3:65","nodeType":"YulIdentifier","src":"15557:3:65"},"nativeSrc":"15557:17:65","nodeType":"YulFunctionCall","src":"15557:17:65"},{"arguments":[{"name":"tail","nativeSrc":"15580:4:65","nodeType":"YulIdentifier","src":"15580:4:65"},{"name":"headStart","nativeSrc":"15586:9:65","nodeType":"YulIdentifier","src":"15586:9:65"}],"functionName":{"name":"sub","nativeSrc":"15576:3:65","nodeType":"YulIdentifier","src":"15576:3:65"},"nativeSrc":"15576:20:65","nodeType":"YulFunctionCall","src":"15576:20:65"}],"functionName":{"name":"mstore","nativeSrc":"15550:6:65","nodeType":"YulIdentifier","src":"15550:6:65"},"nativeSrc":"15550:47:65","nodeType":"YulFunctionCall","src":"15550:47:65"},"nativeSrc":"15550:47:65","nodeType":"YulExpressionStatement","src":"15550:47:65"},{"nativeSrc":"15606:139:65","nodeType":"YulAssignment","src":"15606:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"15740:4:65","nodeType":"YulIdentifier","src":"15740:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1_to_t_string_memory_ptr_fromStack","nativeSrc":"15614:124:65","nodeType":"YulIdentifier","src":"15614:124:65"},"nativeSrc":"15614:131:65","nodeType":"YulFunctionCall","src":"15614:131:65"},"variableNames":[{"name":"tail","nativeSrc":"15606:4:65","nodeType":"YulIdentifier","src":"15606:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15333:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15484:9:65","nodeType":"YulTypedName","src":"15484:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15499:4:65","nodeType":"YulTypedName","src":"15499:4:65","type":""}],"src":"15333:419:65"},{"body":{"nativeSrc":"15821:52:65","nodeType":"YulBlock","src":"15821:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15838:3:65","nodeType":"YulIdentifier","src":"15838:3:65"},{"arguments":[{"name":"value","nativeSrc":"15860:5:65","nodeType":"YulIdentifier","src":"15860:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"15843:16:65","nodeType":"YulIdentifier","src":"15843:16:65"},"nativeSrc":"15843:23:65","nodeType":"YulFunctionCall","src":"15843:23:65"}],"functionName":{"name":"mstore","nativeSrc":"15831:6:65","nodeType":"YulIdentifier","src":"15831:6:65"},"nativeSrc":"15831:36:65","nodeType":"YulFunctionCall","src":"15831:36:65"},"nativeSrc":"15831:36:65","nodeType":"YulExpressionStatement","src":"15831:36:65"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"15758:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15809:5:65","nodeType":"YulTypedName","src":"15809:5:65","type":""},{"name":"pos","nativeSrc":"15816:3:65","nodeType":"YulTypedName","src":"15816:3:65","type":""}],"src":"15758:115:65"},{"body":{"nativeSrc":"15974:73:65","nodeType":"YulBlock","src":"15974:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15991:3:65","nodeType":"YulIdentifier","src":"15991:3:65"},{"name":"length","nativeSrc":"15996:6:65","nodeType":"YulIdentifier","src":"15996:6:65"}],"functionName":{"name":"mstore","nativeSrc":"15984:6:65","nodeType":"YulIdentifier","src":"15984:6:65"},"nativeSrc":"15984:19:65","nodeType":"YulFunctionCall","src":"15984:19:65"},"nativeSrc":"15984:19:65","nodeType":"YulExpressionStatement","src":"15984:19:65"},{"nativeSrc":"16012:29:65","nodeType":"YulAssignment","src":"16012:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"16031:3:65","nodeType":"YulIdentifier","src":"16031:3:65"},{"kind":"number","nativeSrc":"16036:4:65","nodeType":"YulLiteral","src":"16036:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16027:3:65","nodeType":"YulIdentifier","src":"16027:3:65"},"nativeSrc":"16027:14:65","nodeType":"YulFunctionCall","src":"16027:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"16012:11:65","nodeType":"YulIdentifier","src":"16012:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"15879:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15946:3:65","nodeType":"YulTypedName","src":"15946:3:65","type":""},{"name":"length","nativeSrc":"15951:6:65","nodeType":"YulTypedName","src":"15951:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15962:11:65","nodeType":"YulTypedName","src":"15962:11:65","type":""}],"src":"15879:168:65"},{"body":{"nativeSrc":"16175:214:65","nodeType":"YulBlock","src":"16175:214:65","statements":[{"nativeSrc":"16185:77:65","nodeType":"YulAssignment","src":"16185:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"16250:3:65","nodeType":"YulIdentifier","src":"16250:3:65"},{"name":"length","nativeSrc":"16255:6:65","nodeType":"YulIdentifier","src":"16255:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"16192:57:65","nodeType":"YulIdentifier","src":"16192:57:65"},"nativeSrc":"16192:70:65","nodeType":"YulFunctionCall","src":"16192:70:65"},"variableNames":[{"name":"pos","nativeSrc":"16185:3:65","nodeType":"YulIdentifier","src":"16185:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"16309:5:65","nodeType":"YulIdentifier","src":"16309:5:65"},{"name":"pos","nativeSrc":"16316:3:65","nodeType":"YulIdentifier","src":"16316:3:65"},{"name":"length","nativeSrc":"16321:6:65","nodeType":"YulIdentifier","src":"16321:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16272:36:65","nodeType":"YulIdentifier","src":"16272:36:65"},"nativeSrc":"16272:56:65","nodeType":"YulFunctionCall","src":"16272:56:65"},"nativeSrc":"16272:56:65","nodeType":"YulExpressionStatement","src":"16272:56:65"},{"nativeSrc":"16337:46:65","nodeType":"YulAssignment","src":"16337:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"16348:3:65","nodeType":"YulIdentifier","src":"16348:3:65"},{"arguments":[{"name":"length","nativeSrc":"16375:6:65","nodeType":"YulIdentifier","src":"16375:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"16353:21:65","nodeType":"YulIdentifier","src":"16353:21:65"},"nativeSrc":"16353:29:65","nodeType":"YulFunctionCall","src":"16353:29:65"}],"functionName":{"name":"add","nativeSrc":"16344:3:65","nodeType":"YulIdentifier","src":"16344:3:65"},"nativeSrc":"16344:39:65","nodeType":"YulFunctionCall","src":"16344:39:65"},"variableNames":[{"name":"end","nativeSrc":"16337:3:65","nodeType":"YulIdentifier","src":"16337:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16075:314:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"16148:5:65","nodeType":"YulTypedName","src":"16148:5:65","type":""},{"name":"length","nativeSrc":"16155:6:65","nodeType":"YulTypedName","src":"16155:6:65","type":""},{"name":"pos","nativeSrc":"16163:3:65","nodeType":"YulTypedName","src":"16163:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16171:3:65","nodeType":"YulTypedName","src":"16171:3:65","type":""}],"src":"16075:314:65"},{"body":{"nativeSrc":"16547:283:65","nodeType":"YulBlock","src":"16547:283:65","statements":[{"nativeSrc":"16557:26:65","nodeType":"YulAssignment","src":"16557:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16569:9:65","nodeType":"YulIdentifier","src":"16569:9:65"},{"kind":"number","nativeSrc":"16580:2:65","nodeType":"YulLiteral","src":"16580:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16565:3:65","nodeType":"YulIdentifier","src":"16565:3:65"},"nativeSrc":"16565:18:65","nodeType":"YulFunctionCall","src":"16565:18:65"},"variableNames":[{"name":"tail","nativeSrc":"16557:4:65","nodeType":"YulIdentifier","src":"16557:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16635:6:65","nodeType":"YulIdentifier","src":"16635:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"16648:9:65","nodeType":"YulIdentifier","src":"16648:9:65"},{"kind":"number","nativeSrc":"16659:1:65","nodeType":"YulLiteral","src":"16659:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16644:3:65","nodeType":"YulIdentifier","src":"16644:3:65"},"nativeSrc":"16644:17:65","nodeType":"YulFunctionCall","src":"16644:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"16593:41:65","nodeType":"YulIdentifier","src":"16593:41:65"},"nativeSrc":"16593:69:65","nodeType":"YulFunctionCall","src":"16593:69:65"},"nativeSrc":"16593:69:65","nodeType":"YulExpressionStatement","src":"16593:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16683:9:65","nodeType":"YulIdentifier","src":"16683:9:65"},{"kind":"number","nativeSrc":"16694:2:65","nodeType":"YulLiteral","src":"16694:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16679:3:65","nodeType":"YulIdentifier","src":"16679:3:65"},"nativeSrc":"16679:18:65","nodeType":"YulFunctionCall","src":"16679:18:65"},{"arguments":[{"name":"tail","nativeSrc":"16703:4:65","nodeType":"YulIdentifier","src":"16703:4:65"},{"name":"headStart","nativeSrc":"16709:9:65","nodeType":"YulIdentifier","src":"16709:9:65"}],"functionName":{"name":"sub","nativeSrc":"16699:3:65","nodeType":"YulIdentifier","src":"16699:3:65"},"nativeSrc":"16699:20:65","nodeType":"YulFunctionCall","src":"16699:20:65"}],"functionName":{"name":"mstore","nativeSrc":"16672:6:65","nodeType":"YulIdentifier","src":"16672:6:65"},"nativeSrc":"16672:48:65","nodeType":"YulFunctionCall","src":"16672:48:65"},"nativeSrc":"16672:48:65","nodeType":"YulExpressionStatement","src":"16672:48:65"},{"nativeSrc":"16729:94:65","nodeType":"YulAssignment","src":"16729:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"16801:6:65","nodeType":"YulIdentifier","src":"16801:6:65"},{"name":"value2","nativeSrc":"16809:6:65","nodeType":"YulIdentifier","src":"16809:6:65"},{"name":"tail","nativeSrc":"16818:4:65","nodeType":"YulIdentifier","src":"16818:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16737:63:65","nodeType":"YulIdentifier","src":"16737:63:65"},"nativeSrc":"16737:86:65","nodeType":"YulFunctionCall","src":"16737:86:65"},"variableNames":[{"name":"tail","nativeSrc":"16729:4:65","nodeType":"YulIdentifier","src":"16729:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16395:435:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16503:9:65","nodeType":"YulTypedName","src":"16503:9:65","type":""},{"name":"value2","nativeSrc":"16515:6:65","nodeType":"YulTypedName","src":"16515:6:65","type":""},{"name":"value1","nativeSrc":"16523:6:65","nodeType":"YulTypedName","src":"16523:6:65","type":""},{"name":"value0","nativeSrc":"16531:6:65","nodeType":"YulTypedName","src":"16531:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16542:4:65","nodeType":"YulTypedName","src":"16542:4:65","type":""}],"src":"16395:435:65"},{"body":{"nativeSrc":"16942:119:65","nodeType":"YulBlock","src":"16942:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"16964:6:65","nodeType":"YulIdentifier","src":"16964:6:65"},{"kind":"number","nativeSrc":"16972:1:65","nodeType":"YulLiteral","src":"16972:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16960:3:65","nodeType":"YulIdentifier","src":"16960:3:65"},"nativeSrc":"16960:14:65","nodeType":"YulFunctionCall","src":"16960:14:65"},{"hexValue":"496e70757420617272617973206d7573742068617665207468652073616d6520","kind":"string","nativeSrc":"16976:34:65","nodeType":"YulLiteral","src":"16976:34:65","type":"","value":"Input arrays must have the same "}],"functionName":{"name":"mstore","nativeSrc":"16953:6:65","nodeType":"YulIdentifier","src":"16953:6:65"},"nativeSrc":"16953:58:65","nodeType":"YulFunctionCall","src":"16953:58:65"},"nativeSrc":"16953:58:65","nodeType":"YulExpressionStatement","src":"16953:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17032:6:65","nodeType":"YulIdentifier","src":"17032:6:65"},{"kind":"number","nativeSrc":"17040:2:65","nodeType":"YulLiteral","src":"17040:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17028:3:65","nodeType":"YulIdentifier","src":"17028:3:65"},"nativeSrc":"17028:15:65","nodeType":"YulFunctionCall","src":"17028:15:65"},{"hexValue":"6c656e677468","kind":"string","nativeSrc":"17045:8:65","nodeType":"YulLiteral","src":"17045:8:65","type":"","value":"length"}],"functionName":{"name":"mstore","nativeSrc":"17021:6:65","nodeType":"YulIdentifier","src":"17021:6:65"},"nativeSrc":"17021:33:65","nodeType":"YulFunctionCall","src":"17021:33:65"},"nativeSrc":"17021:33:65","nodeType":"YulExpressionStatement","src":"17021:33:65"}]},"name":"store_literal_in_memory_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","nativeSrc":"16836:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16934:6:65","nodeType":"YulTypedName","src":"16934:6:65","type":""}],"src":"16836:225:65"},{"body":{"nativeSrc":"17213:220:65","nodeType":"YulBlock","src":"17213:220:65","statements":[{"nativeSrc":"17223:74:65","nodeType":"YulAssignment","src":"17223:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"17289:3:65","nodeType":"YulIdentifier","src":"17289:3:65"},{"kind":"number","nativeSrc":"17294:2:65","nodeType":"YulLiteral","src":"17294:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"17230:58:65","nodeType":"YulIdentifier","src":"17230:58:65"},"nativeSrc":"17230:67:65","nodeType":"YulFunctionCall","src":"17230:67:65"},"variableNames":[{"name":"pos","nativeSrc":"17223:3:65","nodeType":"YulIdentifier","src":"17223:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17395:3:65","nodeType":"YulIdentifier","src":"17395:3:65"}],"functionName":{"name":"store_literal_in_memory_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e","nativeSrc":"17306:88:65","nodeType":"YulIdentifier","src":"17306:88:65"},"nativeSrc":"17306:93:65","nodeType":"YulFunctionCall","src":"17306:93:65"},"nativeSrc":"17306:93:65","nodeType":"YulExpressionStatement","src":"17306:93:65"},{"nativeSrc":"17408:19:65","nodeType":"YulAssignment","src":"17408:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"17419:3:65","nodeType":"YulIdentifier","src":"17419:3:65"},{"kind":"number","nativeSrc":"17424:2:65","nodeType":"YulLiteral","src":"17424:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17415:3:65","nodeType":"YulIdentifier","src":"17415:3:65"},"nativeSrc":"17415:12:65","nodeType":"YulFunctionCall","src":"17415:12:65"},"variableNames":[{"name":"end","nativeSrc":"17408:3:65","nodeType":"YulIdentifier","src":"17408:3:65"}]}]},"name":"abi_encode_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e_to_t_string_memory_ptr_fromStack","nativeSrc":"17067:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17201:3:65","nodeType":"YulTypedName","src":"17201:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17209:3:65","nodeType":"YulTypedName","src":"17209:3:65","type":""}],"src":"17067:366:65"},{"body":{"nativeSrc":"17610:248:65","nodeType":"YulBlock","src":"17610:248:65","statements":[{"nativeSrc":"17620:26:65","nodeType":"YulAssignment","src":"17620:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"17632:9:65","nodeType":"YulIdentifier","src":"17632:9:65"},{"kind":"number","nativeSrc":"17643:2:65","nodeType":"YulLiteral","src":"17643:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17628:3:65","nodeType":"YulIdentifier","src":"17628:3:65"},"nativeSrc":"17628:18:65","nodeType":"YulFunctionCall","src":"17628:18:65"},"variableNames":[{"name":"tail","nativeSrc":"17620:4:65","nodeType":"YulIdentifier","src":"17620:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17667:9:65","nodeType":"YulIdentifier","src":"17667:9:65"},{"kind":"number","nativeSrc":"17678:1:65","nodeType":"YulLiteral","src":"17678:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17663:3:65","nodeType":"YulIdentifier","src":"17663:3:65"},"nativeSrc":"17663:17:65","nodeType":"YulFunctionCall","src":"17663:17:65"},{"arguments":[{"name":"tail","nativeSrc":"17686:4:65","nodeType":"YulIdentifier","src":"17686:4:65"},{"name":"headStart","nativeSrc":"17692:9:65","nodeType":"YulIdentifier","src":"17692:9:65"}],"functionName":{"name":"sub","nativeSrc":"17682:3:65","nodeType":"YulIdentifier","src":"17682:3:65"},"nativeSrc":"17682:20:65","nodeType":"YulFunctionCall","src":"17682:20:65"}],"functionName":{"name":"mstore","nativeSrc":"17656:6:65","nodeType":"YulIdentifier","src":"17656:6:65"},"nativeSrc":"17656:47:65","nodeType":"YulFunctionCall","src":"17656:47:65"},"nativeSrc":"17656:47:65","nodeType":"YulExpressionStatement","src":"17656:47:65"},{"nativeSrc":"17712:139:65","nodeType":"YulAssignment","src":"17712:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"17846:4:65","nodeType":"YulIdentifier","src":"17846:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e_to_t_string_memory_ptr_fromStack","nativeSrc":"17720:124:65","nodeType":"YulIdentifier","src":"17720:124:65"},"nativeSrc":"17720:131:65","nodeType":"YulFunctionCall","src":"17720:131:65"},"variableNames":[{"name":"tail","nativeSrc":"17712:4:65","nodeType":"YulIdentifier","src":"17712:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"17439:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17590:9:65","nodeType":"YulTypedName","src":"17590:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17605:4:65","nodeType":"YulTypedName","src":"17605:4:65","type":""}],"src":"17439:419:65"},{"body":{"nativeSrc":"17892:152:65","nodeType":"YulBlock","src":"17892:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17909:1:65","nodeType":"YulLiteral","src":"17909:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"17912:77:65","nodeType":"YulLiteral","src":"17912:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17902:6:65","nodeType":"YulIdentifier","src":"17902:6:65"},"nativeSrc":"17902:88:65","nodeType":"YulFunctionCall","src":"17902:88:65"},"nativeSrc":"17902:88:65","nodeType":"YulExpressionStatement","src":"17902:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18006:1:65","nodeType":"YulLiteral","src":"18006:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"18009:4:65","nodeType":"YulLiteral","src":"18009:4:65","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"17999:6:65","nodeType":"YulIdentifier","src":"17999:6:65"},"nativeSrc":"17999:15:65","nodeType":"YulFunctionCall","src":"17999:15:65"},"nativeSrc":"17999:15:65","nodeType":"YulExpressionStatement","src":"17999:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18030:1:65","nodeType":"YulLiteral","src":"18030:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"18033:4:65","nodeType":"YulLiteral","src":"18033:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18023:6:65","nodeType":"YulIdentifier","src":"18023:6:65"},"nativeSrc":"18023:15:65","nodeType":"YulFunctionCall","src":"18023:15:65"},"nativeSrc":"18023:15:65","nodeType":"YulExpressionStatement","src":"18023:15:65"}]},"name":"panic_error_0x32","nativeSrc":"17864:180:65","nodeType":"YulFunctionDefinition","src":"17864:180:65"},{"body":{"nativeSrc":"18139:28:65","nodeType":"YulBlock","src":"18139:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18156:1:65","nodeType":"YulLiteral","src":"18156:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"18159:1:65","nodeType":"YulLiteral","src":"18159:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18149:6:65","nodeType":"YulIdentifier","src":"18149:6:65"},"nativeSrc":"18149:12:65","nodeType":"YulFunctionCall","src":"18149:12:65"},"nativeSrc":"18149:12:65","nodeType":"YulExpressionStatement","src":"18149:12:65"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"18050:117:65","nodeType":"YulFunctionDefinition","src":"18050:117:65"},{"body":{"nativeSrc":"18262:28:65","nodeType":"YulBlock","src":"18262:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18279:1:65","nodeType":"YulLiteral","src":"18279:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"18282:1:65","nodeType":"YulLiteral","src":"18282:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18272:6:65","nodeType":"YulIdentifier","src":"18272:6:65"},"nativeSrc":"18272:12:65","nodeType":"YulFunctionCall","src":"18272:12:65"},"nativeSrc":"18272:12:65","nodeType":"YulExpressionStatement","src":"18272:12:65"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"18173:117:65","nodeType":"YulFunctionDefinition","src":"18173:117:65"},{"body":{"nativeSrc":"18385:28:65","nodeType":"YulBlock","src":"18385:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18402:1:65","nodeType":"YulLiteral","src":"18402:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"18405:1:65","nodeType":"YulLiteral","src":"18405:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18395:6:65","nodeType":"YulIdentifier","src":"18395:6:65"},"nativeSrc":"18395:12:65","nodeType":"YulFunctionCall","src":"18395:12:65"},"nativeSrc":"18395:12:65","nodeType":"YulExpressionStatement","src":"18395:12:65"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"18296:117:65","nodeType":"YulFunctionDefinition","src":"18296:117:65"},{"body":{"nativeSrc":"18510:634:65","nodeType":"YulBlock","src":"18510:634:65","statements":[{"nativeSrc":"18520:51:65","nodeType":"YulVariableDeclaration","src":"18520:51:65","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"18559:11:65","nodeType":"YulIdentifier","src":"18559:11:65"}],"functionName":{"name":"calldataload","nativeSrc":"18546:12:65","nodeType":"YulIdentifier","src":"18546:12:65"},"nativeSrc":"18546:25:65","nodeType":"YulFunctionCall","src":"18546:25:65"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"18524:18:65","nodeType":"YulTypedName","src":"18524:18:65","type":""}]},{"body":{"nativeSrc":"18665:83:65","nodeType":"YulBlock","src":"18665:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"18667:77:65","nodeType":"YulIdentifier","src":"18667:77:65"},"nativeSrc":"18667:79:65","nodeType":"YulFunctionCall","src":"18667:79:65"},"nativeSrc":"18667:79:65","nodeType":"YulExpressionStatement","src":"18667:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"18594:18:65","nodeType":"YulIdentifier","src":"18594:18:65"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"18622:12:65","nodeType":"YulIdentifier","src":"18622:12:65"},"nativeSrc":"18622:14:65","nodeType":"YulFunctionCall","src":"18622:14:65"},{"name":"base_ref","nativeSrc":"18638:8:65","nodeType":"YulIdentifier","src":"18638:8:65"}],"functionName":{"name":"sub","nativeSrc":"18618:3:65","nodeType":"YulIdentifier","src":"18618:3:65"},"nativeSrc":"18618:29:65","nodeType":"YulFunctionCall","src":"18618:29:65"},{"arguments":[{"kind":"number","nativeSrc":"18653:4:65","nodeType":"YulLiteral","src":"18653:4:65","type":"","value":"0x20"},{"kind":"number","nativeSrc":"18659:1:65","nodeType":"YulLiteral","src":"18659:1:65","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"18649:3:65","nodeType":"YulIdentifier","src":"18649:3:65"},"nativeSrc":"18649:12:65","nodeType":"YulFunctionCall","src":"18649:12:65"}],"functionName":{"name":"sub","nativeSrc":"18614:3:65","nodeType":"YulIdentifier","src":"18614:3:65"},"nativeSrc":"18614:48:65","nodeType":"YulFunctionCall","src":"18614:48:65"}],"functionName":{"name":"slt","nativeSrc":"18590:3:65","nodeType":"YulIdentifier","src":"18590:3:65"},"nativeSrc":"18590:73:65","nodeType":"YulFunctionCall","src":"18590:73:65"}],"functionName":{"name":"iszero","nativeSrc":"18583:6:65","nodeType":"YulIdentifier","src":"18583:6:65"},"nativeSrc":"18583:81:65","nodeType":"YulFunctionCall","src":"18583:81:65"},"nativeSrc":"18580:168:65","nodeType":"YulIf","src":"18580:168:65"},{"nativeSrc":"18757:41:65","nodeType":"YulAssignment","src":"18757:41:65","value":{"arguments":[{"name":"base_ref","nativeSrc":"18769:8:65","nodeType":"YulIdentifier","src":"18769:8:65"},{"name":"rel_offset_of_tail","nativeSrc":"18779:18:65","nodeType":"YulIdentifier","src":"18779:18:65"}],"functionName":{"name":"add","nativeSrc":"18765:3:65","nodeType":"YulIdentifier","src":"18765:3:65"},"nativeSrc":"18765:33:65","nodeType":"YulFunctionCall","src":"18765:33:65"},"variableNames":[{"name":"addr","nativeSrc":"18757:4:65","nodeType":"YulIdentifier","src":"18757:4:65"}]},{"nativeSrc":"18808:28:65","nodeType":"YulAssignment","src":"18808:28:65","value":{"arguments":[{"name":"addr","nativeSrc":"18831:4:65","nodeType":"YulIdentifier","src":"18831:4:65"}],"functionName":{"name":"calldataload","nativeSrc":"18818:12:65","nodeType":"YulIdentifier","src":"18818:12:65"},"nativeSrc":"18818:18:65","nodeType":"YulFunctionCall","src":"18818:18:65"},"variableNames":[{"name":"length","nativeSrc":"18808:6:65","nodeType":"YulIdentifier","src":"18808:6:65"}]},{"body":{"nativeSrc":"18879:83:65","nodeType":"YulBlock","src":"18879:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"18881:77:65","nodeType":"YulIdentifier","src":"18881:77:65"},"nativeSrc":"18881:79:65","nodeType":"YulFunctionCall","src":"18881:79:65"},"nativeSrc":"18881:79:65","nodeType":"YulExpressionStatement","src":"18881:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"18851:6:65","nodeType":"YulIdentifier","src":"18851:6:65"},{"kind":"number","nativeSrc":"18859:18:65","nodeType":"YulLiteral","src":"18859:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18848:2:65","nodeType":"YulIdentifier","src":"18848:2:65"},"nativeSrc":"18848:30:65","nodeType":"YulFunctionCall","src":"18848:30:65"},"nativeSrc":"18845:117:65","nodeType":"YulIf","src":"18845:117:65"},{"nativeSrc":"18971:21:65","nodeType":"YulAssignment","src":"18971:21:65","value":{"arguments":[{"name":"addr","nativeSrc":"18983:4:65","nodeType":"YulIdentifier","src":"18983:4:65"},{"kind":"number","nativeSrc":"18989:2:65","nodeType":"YulLiteral","src":"18989:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18979:3:65","nodeType":"YulIdentifier","src":"18979:3:65"},"nativeSrc":"18979:13:65","nodeType":"YulFunctionCall","src":"18979:13:65"},"variableNames":[{"name":"addr","nativeSrc":"18971:4:65","nodeType":"YulIdentifier","src":"18971:4:65"}]},{"body":{"nativeSrc":"19054:83:65","nodeType":"YulBlock","src":"19054:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"19056:77:65","nodeType":"YulIdentifier","src":"19056:77:65"},"nativeSrc":"19056:79:65","nodeType":"YulFunctionCall","src":"19056:79:65"},"nativeSrc":"19056:79:65","nodeType":"YulExpressionStatement","src":"19056:79:65"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"19008:4:65","nodeType":"YulIdentifier","src":"19008:4:65"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"19018:12:65","nodeType":"YulIdentifier","src":"19018:12:65"},"nativeSrc":"19018:14:65","nodeType":"YulFunctionCall","src":"19018:14:65"},{"arguments":[{"name":"length","nativeSrc":"19038:6:65","nodeType":"YulIdentifier","src":"19038:6:65"},{"kind":"number","nativeSrc":"19046:4:65","nodeType":"YulLiteral","src":"19046:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"19034:3:65","nodeType":"YulIdentifier","src":"19034:3:65"},"nativeSrc":"19034:17:65","nodeType":"YulFunctionCall","src":"19034:17:65"}],"functionName":{"name":"sub","nativeSrc":"19014:3:65","nodeType":"YulIdentifier","src":"19014:3:65"},"nativeSrc":"19014:38:65","nodeType":"YulFunctionCall","src":"19014:38:65"}],"functionName":{"name":"sgt","nativeSrc":"19004:3:65","nodeType":"YulIdentifier","src":"19004:3:65"},"nativeSrc":"19004:49:65","nodeType":"YulFunctionCall","src":"19004:49:65"},"nativeSrc":"19001:136:65","nodeType":"YulIf","src":"19001:136:65"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nativeSrc":"18419:725:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"18471:8:65","nodeType":"YulTypedName","src":"18471:8:65","type":""},{"name":"ptr_to_tail","nativeSrc":"18481:11:65","nodeType":"YulTypedName","src":"18481:11:65","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"18497:4:65","nodeType":"YulTypedName","src":"18497:4:65","type":""},{"name":"length","nativeSrc":"18503:6:65","nodeType":"YulTypedName","src":"18503:6:65","type":""}],"src":"18419:725:65"},{"body":{"nativeSrc":"19199:84:65","nodeType":"YulBlock","src":"19199:84:65","statements":[{"nativeSrc":"19209:29:65","nodeType":"YulAssignment","src":"19209:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"19231:6:65","nodeType":"YulIdentifier","src":"19231:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"19218:12:65","nodeType":"YulIdentifier","src":"19218:12:65"},"nativeSrc":"19218:20:65","nodeType":"YulFunctionCall","src":"19218:20:65"},"variableNames":[{"name":"value","nativeSrc":"19209:5:65","nodeType":"YulIdentifier","src":"19209:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19271:5:65","nodeType":"YulIdentifier","src":"19271:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"19247:23:65","nodeType":"YulIdentifier","src":"19247:23:65"},"nativeSrc":"19247:30:65","nodeType":"YulFunctionCall","src":"19247:30:65"},"nativeSrc":"19247:30:65","nodeType":"YulExpressionStatement","src":"19247:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"19150:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19177:6:65","nodeType":"YulTypedName","src":"19177:6:65","type":""},{"name":"end","nativeSrc":"19185:3:65","nodeType":"YulTypedName","src":"19185:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19193:5:65","nodeType":"YulTypedName","src":"19193:5:65","type":""}],"src":"19150:133:65"},{"body":{"nativeSrc":"19352:260:65","nodeType":"YulBlock","src":"19352:260:65","statements":[{"body":{"nativeSrc":"19398:83:65","nodeType":"YulBlock","src":"19398:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19400:77:65","nodeType":"YulIdentifier","src":"19400:77:65"},"nativeSrc":"19400:79:65","nodeType":"YulFunctionCall","src":"19400:79:65"},"nativeSrc":"19400:79:65","nodeType":"YulExpressionStatement","src":"19400:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19373:7:65","nodeType":"YulIdentifier","src":"19373:7:65"},{"name":"headStart","nativeSrc":"19382:9:65","nodeType":"YulIdentifier","src":"19382:9:65"}],"functionName":{"name":"sub","nativeSrc":"19369:3:65","nodeType":"YulIdentifier","src":"19369:3:65"},"nativeSrc":"19369:23:65","nodeType":"YulFunctionCall","src":"19369:23:65"},{"kind":"number","nativeSrc":"19394:2:65","nodeType":"YulLiteral","src":"19394:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19365:3:65","nodeType":"YulIdentifier","src":"19365:3:65"},"nativeSrc":"19365:32:65","nodeType":"YulFunctionCall","src":"19365:32:65"},"nativeSrc":"19362:119:65","nodeType":"YulIf","src":"19362:119:65"},{"nativeSrc":"19491:114:65","nodeType":"YulBlock","src":"19491:114:65","statements":[{"nativeSrc":"19506:15:65","nodeType":"YulVariableDeclaration","src":"19506:15:65","value":{"kind":"number","nativeSrc":"19520:1:65","nodeType":"YulLiteral","src":"19520:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19510:6:65","nodeType":"YulTypedName","src":"19510:6:65","type":""}]},{"nativeSrc":"19535:60:65","nodeType":"YulAssignment","src":"19535:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19567:9:65","nodeType":"YulIdentifier","src":"19567:9:65"},{"name":"offset","nativeSrc":"19578:6:65","nodeType":"YulIdentifier","src":"19578:6:65"}],"functionName":{"name":"add","nativeSrc":"19563:3:65","nodeType":"YulIdentifier","src":"19563:3:65"},"nativeSrc":"19563:22:65","nodeType":"YulFunctionCall","src":"19563:22:65"},{"name":"dataEnd","nativeSrc":"19587:7:65","nodeType":"YulIdentifier","src":"19587:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"19545:17:65","nodeType":"YulIdentifier","src":"19545:17:65"},"nativeSrc":"19545:50:65","nodeType":"YulFunctionCall","src":"19545:50:65"},"variableNames":[{"name":"value0","nativeSrc":"19535:6:65","nodeType":"YulIdentifier","src":"19535:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"19289:323:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19322:9:65","nodeType":"YulTypedName","src":"19322:9:65","type":""},{"name":"dataEnd","nativeSrc":"19333:7:65","nodeType":"YulTypedName","src":"19333:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19345:6:65","nodeType":"YulTypedName","src":"19345:6:65","type":""}],"src":"19289:323:65"},{"body":{"nativeSrc":"19684:31:65","nodeType":"YulBlock","src":"19684:31:65","statements":[{"nativeSrc":"19695:13:65","nodeType":"YulAssignment","src":"19695:13:65","value":{"name":"len","nativeSrc":"19705:3:65","nodeType":"YulIdentifier","src":"19705:3:65"},"variableNames":[{"name":"length","nativeSrc":"19695:6:65","nodeType":"YulIdentifier","src":"19695:6:65"}]}]},"name":"array_length_t_string_calldata_ptr","nativeSrc":"19618:97:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19662:5:65","nodeType":"YulTypedName","src":"19662:5:65","type":""},{"name":"len","nativeSrc":"19669:3:65","nodeType":"YulTypedName","src":"19669:3:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"19677:6:65","nodeType":"YulTypedName","src":"19677:6:65","type":""}],"src":"19618:97:65"},{"body":{"nativeSrc":"19749:152:65","nodeType":"YulBlock","src":"19749:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19766:1:65","nodeType":"YulLiteral","src":"19766:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"19769:77:65","nodeType":"YulLiteral","src":"19769:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"19759:6:65","nodeType":"YulIdentifier","src":"19759:6:65"},"nativeSrc":"19759:88:65","nodeType":"YulFunctionCall","src":"19759:88:65"},"nativeSrc":"19759:88:65","nodeType":"YulExpressionStatement","src":"19759:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19863:1:65","nodeType":"YulLiteral","src":"19863:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"19866:4:65","nodeType":"YulLiteral","src":"19866:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"19856:6:65","nodeType":"YulIdentifier","src":"19856:6:65"},"nativeSrc":"19856:15:65","nodeType":"YulFunctionCall","src":"19856:15:65"},"nativeSrc":"19856:15:65","nodeType":"YulExpressionStatement","src":"19856:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19887:1:65","nodeType":"YulLiteral","src":"19887:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"19890:4:65","nodeType":"YulLiteral","src":"19890:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19880:6:65","nodeType":"YulIdentifier","src":"19880:6:65"},"nativeSrc":"19880:15:65","nodeType":"YulFunctionCall","src":"19880:15:65"},"nativeSrc":"19880:15:65","nodeType":"YulExpressionStatement","src":"19880:15:65"}]},"name":"panic_error_0x41","nativeSrc":"19721:180:65","nodeType":"YulFunctionDefinition","src":"19721:180:65"},{"body":{"nativeSrc":"19961:87:65","nodeType":"YulBlock","src":"19961:87:65","statements":[{"nativeSrc":"19971:11:65","nodeType":"YulAssignment","src":"19971:11:65","value":{"name":"ptr","nativeSrc":"19979:3:65","nodeType":"YulIdentifier","src":"19979:3:65"},"variableNames":[{"name":"data","nativeSrc":"19971:4:65","nodeType":"YulIdentifier","src":"19971:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19999:1:65","nodeType":"YulLiteral","src":"19999:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"20002:3:65","nodeType":"YulIdentifier","src":"20002:3:65"}],"functionName":{"name":"mstore","nativeSrc":"19992:6:65","nodeType":"YulIdentifier","src":"19992:6:65"},"nativeSrc":"19992:14:65","nodeType":"YulFunctionCall","src":"19992:14:65"},"nativeSrc":"19992:14:65","nodeType":"YulExpressionStatement","src":"19992:14:65"},{"nativeSrc":"20015:26:65","nodeType":"YulAssignment","src":"20015:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"20033:1:65","nodeType":"YulLiteral","src":"20033:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"20036:4:65","nodeType":"YulLiteral","src":"20036:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20023:9:65","nodeType":"YulIdentifier","src":"20023:9:65"},"nativeSrc":"20023:18:65","nodeType":"YulFunctionCall","src":"20023:18:65"},"variableNames":[{"name":"data","nativeSrc":"20015:4:65","nodeType":"YulIdentifier","src":"20015:4:65"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"19907:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"19948:3:65","nodeType":"YulTypedName","src":"19948:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"19956:4:65","nodeType":"YulTypedName","src":"19956:4:65","type":""}],"src":"19907:141:65"},{"body":{"nativeSrc":"20098:49:65","nodeType":"YulBlock","src":"20098:49:65","statements":[{"nativeSrc":"20108:33:65","nodeType":"YulAssignment","src":"20108:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20126:5:65","nodeType":"YulIdentifier","src":"20126:5:65"},{"kind":"number","nativeSrc":"20133:2:65","nodeType":"YulLiteral","src":"20133:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"20122:3:65","nodeType":"YulIdentifier","src":"20122:3:65"},"nativeSrc":"20122:14:65","nodeType":"YulFunctionCall","src":"20122:14:65"},{"kind":"number","nativeSrc":"20138:2:65","nodeType":"YulLiteral","src":"20138:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"20118:3:65","nodeType":"YulIdentifier","src":"20118:3:65"},"nativeSrc":"20118:23:65","nodeType":"YulFunctionCall","src":"20118:23:65"},"variableNames":[{"name":"result","nativeSrc":"20108:6:65","nodeType":"YulIdentifier","src":"20108:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"20054:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20081:5:65","nodeType":"YulTypedName","src":"20081:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20091:6:65","nodeType":"YulTypedName","src":"20091:6:65","type":""}],"src":"20054:93:65"},{"body":{"nativeSrc":"20206:54:65","nodeType":"YulBlock","src":"20206:54:65","statements":[{"nativeSrc":"20216:37:65","nodeType":"YulAssignment","src":"20216:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"20241:4:65","nodeType":"YulIdentifier","src":"20241:4:65"},{"name":"value","nativeSrc":"20247:5:65","nodeType":"YulIdentifier","src":"20247:5:65"}],"functionName":{"name":"shl","nativeSrc":"20237:3:65","nodeType":"YulIdentifier","src":"20237:3:65"},"nativeSrc":"20237:16:65","nodeType":"YulFunctionCall","src":"20237:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"20216:8:65","nodeType":"YulIdentifier","src":"20216:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"20153:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"20181:4:65","nodeType":"YulTypedName","src":"20181:4:65","type":""},{"name":"value","nativeSrc":"20187:5:65","nodeType":"YulTypedName","src":"20187:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"20197:8:65","nodeType":"YulTypedName","src":"20197:8:65","type":""}],"src":"20153:107:65"},{"body":{"nativeSrc":"20342:317:65","nodeType":"YulBlock","src":"20342:317:65","statements":[{"nativeSrc":"20352:35:65","nodeType":"YulVariableDeclaration","src":"20352:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"20373:10:65","nodeType":"YulIdentifier","src":"20373:10:65"},{"kind":"number","nativeSrc":"20385:1:65","nodeType":"YulLiteral","src":"20385:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"20369:3:65","nodeType":"YulIdentifier","src":"20369:3:65"},"nativeSrc":"20369:18:65","nodeType":"YulFunctionCall","src":"20369:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"20356:9:65","nodeType":"YulTypedName","src":"20356:9:65","type":""}]},{"nativeSrc":"20396:109:65","nodeType":"YulVariableDeclaration","src":"20396:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"20427:9:65","nodeType":"YulIdentifier","src":"20427:9:65"},{"kind":"number","nativeSrc":"20438:66:65","nodeType":"YulLiteral","src":"20438:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"20408:18:65","nodeType":"YulIdentifier","src":"20408:18:65"},"nativeSrc":"20408:97:65","nodeType":"YulFunctionCall","src":"20408:97:65"},"variables":[{"name":"mask","nativeSrc":"20400:4:65","nodeType":"YulTypedName","src":"20400:4:65","type":""}]},{"nativeSrc":"20514:51:65","nodeType":"YulAssignment","src":"20514:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"20545:9:65","nodeType":"YulIdentifier","src":"20545:9:65"},{"name":"toInsert","nativeSrc":"20556:8:65","nodeType":"YulIdentifier","src":"20556:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"20526:18:65","nodeType":"YulIdentifier","src":"20526:18:65"},"nativeSrc":"20526:39:65","nodeType":"YulFunctionCall","src":"20526:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"20514:8:65","nodeType":"YulIdentifier","src":"20514:8:65"}]},{"nativeSrc":"20574:30:65","nodeType":"YulAssignment","src":"20574:30:65","value":{"arguments":[{"name":"value","nativeSrc":"20587:5:65","nodeType":"YulIdentifier","src":"20587:5:65"},{"arguments":[{"name":"mask","nativeSrc":"20598:4:65","nodeType":"YulIdentifier","src":"20598:4:65"}],"functionName":{"name":"not","nativeSrc":"20594:3:65","nodeType":"YulIdentifier","src":"20594:3:65"},"nativeSrc":"20594:9:65","nodeType":"YulFunctionCall","src":"20594:9:65"}],"functionName":{"name":"and","nativeSrc":"20583:3:65","nodeType":"YulIdentifier","src":"20583:3:65"},"nativeSrc":"20583:21:65","nodeType":"YulFunctionCall","src":"20583:21:65"},"variableNames":[{"name":"value","nativeSrc":"20574:5:65","nodeType":"YulIdentifier","src":"20574:5:65"}]},{"nativeSrc":"20613:40:65","nodeType":"YulAssignment","src":"20613:40:65","value":{"arguments":[{"name":"value","nativeSrc":"20626:5:65","nodeType":"YulIdentifier","src":"20626:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"20637:8:65","nodeType":"YulIdentifier","src":"20637:8:65"},{"name":"mask","nativeSrc":"20647:4:65","nodeType":"YulIdentifier","src":"20647:4:65"}],"functionName":{"name":"and","nativeSrc":"20633:3:65","nodeType":"YulIdentifier","src":"20633:3:65"},"nativeSrc":"20633:19:65","nodeType":"YulFunctionCall","src":"20633:19:65"}],"functionName":{"name":"or","nativeSrc":"20623:2:65","nodeType":"YulIdentifier","src":"20623:2:65"},"nativeSrc":"20623:30:65","nodeType":"YulFunctionCall","src":"20623:30:65"},"variableNames":[{"name":"result","nativeSrc":"20613:6:65","nodeType":"YulIdentifier","src":"20613:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"20266:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20303:5:65","nodeType":"YulTypedName","src":"20303:5:65","type":""},{"name":"shiftBytes","nativeSrc":"20310:10:65","nodeType":"YulTypedName","src":"20310:10:65","type":""},{"name":"toInsert","nativeSrc":"20322:8:65","nodeType":"YulTypedName","src":"20322:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20335:6:65","nodeType":"YulTypedName","src":"20335:6:65","type":""}],"src":"20266:393:65"},{"body":{"nativeSrc":"20710:32:65","nodeType":"YulBlock","src":"20710:32:65","statements":[{"nativeSrc":"20720:16:65","nodeType":"YulAssignment","src":"20720:16:65","value":{"name":"value","nativeSrc":"20731:5:65","nodeType":"YulIdentifier","src":"20731:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"20720:7:65","nodeType":"YulIdentifier","src":"20720:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"20665:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20692:5:65","nodeType":"YulTypedName","src":"20692:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"20702:7:65","nodeType":"YulTypedName","src":"20702:7:65","type":""}],"src":"20665:77:65"},{"body":{"nativeSrc":"20808:82:65","nodeType":"YulBlock","src":"20808:82:65","statements":[{"nativeSrc":"20818:66:65","nodeType":"YulAssignment","src":"20818:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20876:5:65","nodeType":"YulIdentifier","src":"20876:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20858:17:65","nodeType":"YulIdentifier","src":"20858:17:65"},"nativeSrc":"20858:24:65","nodeType":"YulFunctionCall","src":"20858:24:65"}],"functionName":{"name":"identity","nativeSrc":"20849:8:65","nodeType":"YulIdentifier","src":"20849:8:65"},"nativeSrc":"20849:34:65","nodeType":"YulFunctionCall","src":"20849:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20831:17:65","nodeType":"YulIdentifier","src":"20831:17:65"},"nativeSrc":"20831:53:65","nodeType":"YulFunctionCall","src":"20831:53:65"},"variableNames":[{"name":"converted","nativeSrc":"20818:9:65","nodeType":"YulIdentifier","src":"20818:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"20748:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20788:5:65","nodeType":"YulTypedName","src":"20788:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"20798:9:65","nodeType":"YulTypedName","src":"20798:9:65","type":""}],"src":"20748:142:65"},{"body":{"nativeSrc":"20943:28:65","nodeType":"YulBlock","src":"20943:28:65","statements":[{"nativeSrc":"20953:12:65","nodeType":"YulAssignment","src":"20953:12:65","value":{"name":"value","nativeSrc":"20960:5:65","nodeType":"YulIdentifier","src":"20960:5:65"},"variableNames":[{"name":"ret","nativeSrc":"20953:3:65","nodeType":"YulIdentifier","src":"20953:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"20896:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20929:5:65","nodeType":"YulTypedName","src":"20929:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"20939:3:65","nodeType":"YulTypedName","src":"20939:3:65","type":""}],"src":"20896:75:65"},{"body":{"nativeSrc":"21053:193:65","nodeType":"YulBlock","src":"21053:193:65","statements":[{"nativeSrc":"21063:63:65","nodeType":"YulVariableDeclaration","src":"21063:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"21118:7:65","nodeType":"YulIdentifier","src":"21118:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21087:30:65","nodeType":"YulIdentifier","src":"21087:30:65"},"nativeSrc":"21087:39:65","nodeType":"YulFunctionCall","src":"21087:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"21067:16:65","nodeType":"YulTypedName","src":"21067:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21142:4:65","nodeType":"YulIdentifier","src":"21142:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"21182:4:65","nodeType":"YulIdentifier","src":"21182:4:65"}],"functionName":{"name":"sload","nativeSrc":"21176:5:65","nodeType":"YulIdentifier","src":"21176:5:65"},"nativeSrc":"21176:11:65","nodeType":"YulFunctionCall","src":"21176:11:65"},{"name":"offset","nativeSrc":"21189:6:65","nodeType":"YulIdentifier","src":"21189:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"21221:16:65","nodeType":"YulIdentifier","src":"21221:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"21197:23:65","nodeType":"YulIdentifier","src":"21197:23:65"},"nativeSrc":"21197:41:65","nodeType":"YulFunctionCall","src":"21197:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"21148:27:65","nodeType":"YulIdentifier","src":"21148:27:65"},"nativeSrc":"21148:91:65","nodeType":"YulFunctionCall","src":"21148:91:65"}],"functionName":{"name":"sstore","nativeSrc":"21135:6:65","nodeType":"YulIdentifier","src":"21135:6:65"},"nativeSrc":"21135:105:65","nodeType":"YulFunctionCall","src":"21135:105:65"},"nativeSrc":"21135:105:65","nodeType":"YulExpressionStatement","src":"21135:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"20977:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21030:4:65","nodeType":"YulTypedName","src":"21030:4:65","type":""},{"name":"offset","nativeSrc":"21036:6:65","nodeType":"YulTypedName","src":"21036:6:65","type":""},{"name":"value_0","nativeSrc":"21044:7:65","nodeType":"YulTypedName","src":"21044:7:65","type":""}],"src":"20977:269:65"},{"body":{"nativeSrc":"21301:24:65","nodeType":"YulBlock","src":"21301:24:65","statements":[{"nativeSrc":"21311:8:65","nodeType":"YulAssignment","src":"21311:8:65","value":{"kind":"number","nativeSrc":"21318:1:65","nodeType":"YulLiteral","src":"21318:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"21311:3:65","nodeType":"YulIdentifier","src":"21311:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"21252:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"21297:3:65","nodeType":"YulTypedName","src":"21297:3:65","type":""}],"src":"21252:73:65"},{"body":{"nativeSrc":"21384:136:65","nodeType":"YulBlock","src":"21384:136:65","statements":[{"nativeSrc":"21394:46:65","nodeType":"YulVariableDeclaration","src":"21394:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"21408:30:65","nodeType":"YulIdentifier","src":"21408:30:65"},"nativeSrc":"21408:32:65","nodeType":"YulFunctionCall","src":"21408:32:65"},"variables":[{"name":"zero_0","nativeSrc":"21398:6:65","nodeType":"YulTypedName","src":"21398:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21493:4:65","nodeType":"YulIdentifier","src":"21493:4:65"},{"name":"offset","nativeSrc":"21499:6:65","nodeType":"YulIdentifier","src":"21499:6:65"},{"name":"zero_0","nativeSrc":"21507:6:65","nodeType":"YulIdentifier","src":"21507:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"21449:43:65","nodeType":"YulIdentifier","src":"21449:43:65"},"nativeSrc":"21449:65:65","nodeType":"YulFunctionCall","src":"21449:65:65"},"nativeSrc":"21449:65:65","nodeType":"YulExpressionStatement","src":"21449:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"21331:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21370:4:65","nodeType":"YulTypedName","src":"21370:4:65","type":""},{"name":"offset","nativeSrc":"21376:6:65","nodeType":"YulTypedName","src":"21376:6:65","type":""}],"src":"21331:189:65"},{"body":{"nativeSrc":"21576:136:65","nodeType":"YulBlock","src":"21576:136:65","statements":[{"body":{"nativeSrc":"21643:63:65","nodeType":"YulBlock","src":"21643:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"21687:5:65","nodeType":"YulIdentifier","src":"21687:5:65"},{"kind":"number","nativeSrc":"21694:1:65","nodeType":"YulLiteral","src":"21694:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"21657:29:65","nodeType":"YulIdentifier","src":"21657:29:65"},"nativeSrc":"21657:39:65","nodeType":"YulFunctionCall","src":"21657:39:65"},"nativeSrc":"21657:39:65","nodeType":"YulExpressionStatement","src":"21657:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"21596:5:65","nodeType":"YulIdentifier","src":"21596:5:65"},{"name":"end","nativeSrc":"21603:3:65","nodeType":"YulIdentifier","src":"21603:3:65"}],"functionName":{"name":"lt","nativeSrc":"21593:2:65","nodeType":"YulIdentifier","src":"21593:2:65"},"nativeSrc":"21593:14:65","nodeType":"YulFunctionCall","src":"21593:14:65"},"nativeSrc":"21586:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"21608:26:65","nodeType":"YulBlock","src":"21608:26:65","statements":[{"nativeSrc":"21610:22:65","nodeType":"YulAssignment","src":"21610:22:65","value":{"arguments":[{"name":"start","nativeSrc":"21623:5:65","nodeType":"YulIdentifier","src":"21623:5:65"},{"kind":"number","nativeSrc":"21630:1:65","nodeType":"YulLiteral","src":"21630:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21619:3:65","nodeType":"YulIdentifier","src":"21619:3:65"},"nativeSrc":"21619:13:65","nodeType":"YulFunctionCall","src":"21619:13:65"},"variableNames":[{"name":"start","nativeSrc":"21610:5:65","nodeType":"YulIdentifier","src":"21610:5:65"}]}]},"pre":{"nativeSrc":"21590:2:65","nodeType":"YulBlock","src":"21590:2:65","statements":[]},"src":"21586:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"21526:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"21564:5:65","nodeType":"YulTypedName","src":"21564:5:65","type":""},{"name":"end","nativeSrc":"21571:3:65","nodeType":"YulTypedName","src":"21571:3:65","type":""}],"src":"21526:186:65"},{"body":{"nativeSrc":"21797:464:65","nodeType":"YulBlock","src":"21797:464:65","statements":[{"body":{"nativeSrc":"21823:431:65","nodeType":"YulBlock","src":"21823:431:65","statements":[{"nativeSrc":"21837:54:65","nodeType":"YulVariableDeclaration","src":"21837:54:65","value":{"arguments":[{"name":"array","nativeSrc":"21885:5:65","nodeType":"YulIdentifier","src":"21885:5:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"21853:31:65","nodeType":"YulIdentifier","src":"21853:31:65"},"nativeSrc":"21853:38:65","nodeType":"YulFunctionCall","src":"21853:38:65"},"variables":[{"name":"dataArea","nativeSrc":"21841:8:65","nodeType":"YulTypedName","src":"21841:8:65","type":""}]},{"nativeSrc":"21904:63:65","nodeType":"YulVariableDeclaration","src":"21904:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"21927:8:65","nodeType":"YulIdentifier","src":"21927:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"21955:10:65","nodeType":"YulIdentifier","src":"21955:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"21937:17:65","nodeType":"YulIdentifier","src":"21937:17:65"},"nativeSrc":"21937:29:65","nodeType":"YulFunctionCall","src":"21937:29:65"}],"functionName":{"name":"add","nativeSrc":"21923:3:65","nodeType":"YulIdentifier","src":"21923:3:65"},"nativeSrc":"21923:44:65","nodeType":"YulFunctionCall","src":"21923:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"21908:11:65","nodeType":"YulTypedName","src":"21908:11:65","type":""}]},{"body":{"nativeSrc":"22124:27:65","nodeType":"YulBlock","src":"22124:27:65","statements":[{"nativeSrc":"22126:23:65","nodeType":"YulAssignment","src":"22126:23:65","value":{"name":"dataArea","nativeSrc":"22141:8:65","nodeType":"YulIdentifier","src":"22141:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"22126:11:65","nodeType":"YulIdentifier","src":"22126:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"22108:10:65","nodeType":"YulIdentifier","src":"22108:10:65"},{"kind":"number","nativeSrc":"22120:2:65","nodeType":"YulLiteral","src":"22120:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"22105:2:65","nodeType":"YulIdentifier","src":"22105:2:65"},"nativeSrc":"22105:18:65","nodeType":"YulFunctionCall","src":"22105:18:65"},"nativeSrc":"22102:49:65","nodeType":"YulIf","src":"22102:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"22193:11:65","nodeType":"YulIdentifier","src":"22193:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"22210:8:65","nodeType":"YulIdentifier","src":"22210:8:65"},{"arguments":[{"name":"len","nativeSrc":"22238:3:65","nodeType":"YulIdentifier","src":"22238:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"22220:17:65","nodeType":"YulIdentifier","src":"22220:17:65"},"nativeSrc":"22220:22:65","nodeType":"YulFunctionCall","src":"22220:22:65"}],"functionName":{"name":"add","nativeSrc":"22206:3:65","nodeType":"YulIdentifier","src":"22206:3:65"},"nativeSrc":"22206:37:65","nodeType":"YulFunctionCall","src":"22206:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"22164:28:65","nodeType":"YulIdentifier","src":"22164:28:65"},"nativeSrc":"22164:80:65","nodeType":"YulFunctionCall","src":"22164:80:65"},"nativeSrc":"22164:80:65","nodeType":"YulExpressionStatement","src":"22164:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"21814:3:65","nodeType":"YulIdentifier","src":"21814:3:65"},{"kind":"number","nativeSrc":"21819:2:65","nodeType":"YulLiteral","src":"21819:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"21811:2:65","nodeType":"YulIdentifier","src":"21811:2:65"},"nativeSrc":"21811:11:65","nodeType":"YulFunctionCall","src":"21811:11:65"},"nativeSrc":"21808:446:65","nodeType":"YulIf","src":"21808:446:65"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"21718:543:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"21773:5:65","nodeType":"YulTypedName","src":"21773:5:65","type":""},{"name":"len","nativeSrc":"21780:3:65","nodeType":"YulTypedName","src":"21780:3:65","type":""},{"name":"startIndex","nativeSrc":"21785:10:65","nodeType":"YulTypedName","src":"21785:10:65","type":""}],"src":"21718:543:65"},{"body":{"nativeSrc":"22330:54:65","nodeType":"YulBlock","src":"22330:54:65","statements":[{"nativeSrc":"22340:37:65","nodeType":"YulAssignment","src":"22340:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"22365:4:65","nodeType":"YulIdentifier","src":"22365:4:65"},{"name":"value","nativeSrc":"22371:5:65","nodeType":"YulIdentifier","src":"22371:5:65"}],"functionName":{"name":"shr","nativeSrc":"22361:3:65","nodeType":"YulIdentifier","src":"22361:3:65"},"nativeSrc":"22361:16:65","nodeType":"YulFunctionCall","src":"22361:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"22340:8:65","nodeType":"YulIdentifier","src":"22340:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"22267:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"22305:4:65","nodeType":"YulTypedName","src":"22305:4:65","type":""},{"name":"value","nativeSrc":"22311:5:65","nodeType":"YulTypedName","src":"22311:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"22321:8:65","nodeType":"YulTypedName","src":"22321:8:65","type":""}],"src":"22267:117:65"},{"body":{"nativeSrc":"22441:118:65","nodeType":"YulBlock","src":"22441:118:65","statements":[{"nativeSrc":"22451:68:65","nodeType":"YulVariableDeclaration","src":"22451:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22500:1:65","nodeType":"YulLiteral","src":"22500:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"22503:5:65","nodeType":"YulIdentifier","src":"22503:5:65"}],"functionName":{"name":"mul","nativeSrc":"22496:3:65","nodeType":"YulIdentifier","src":"22496:3:65"},"nativeSrc":"22496:13:65","nodeType":"YulFunctionCall","src":"22496:13:65"},{"arguments":[{"kind":"number","nativeSrc":"22515:1:65","nodeType":"YulLiteral","src":"22515:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"22511:3:65","nodeType":"YulIdentifier","src":"22511:3:65"},"nativeSrc":"22511:6:65","nodeType":"YulFunctionCall","src":"22511:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"22467:28:65","nodeType":"YulIdentifier","src":"22467:28:65"},"nativeSrc":"22467:51:65","nodeType":"YulFunctionCall","src":"22467:51:65"}],"functionName":{"name":"not","nativeSrc":"22463:3:65","nodeType":"YulIdentifier","src":"22463:3:65"},"nativeSrc":"22463:56:65","nodeType":"YulFunctionCall","src":"22463:56:65"},"variables":[{"name":"mask","nativeSrc":"22455:4:65","nodeType":"YulTypedName","src":"22455:4:65","type":""}]},{"nativeSrc":"22528:25:65","nodeType":"YulAssignment","src":"22528:25:65","value":{"arguments":[{"name":"data","nativeSrc":"22542:4:65","nodeType":"YulIdentifier","src":"22542:4:65"},{"name":"mask","nativeSrc":"22548:4:65","nodeType":"YulIdentifier","src":"22548:4:65"}],"functionName":{"name":"and","nativeSrc":"22538:3:65","nodeType":"YulIdentifier","src":"22538:3:65"},"nativeSrc":"22538:15:65","nodeType":"YulFunctionCall","src":"22538:15:65"},"variableNames":[{"name":"result","nativeSrc":"22528:6:65","nodeType":"YulIdentifier","src":"22528:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"22390:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"22418:4:65","nodeType":"YulTypedName","src":"22418:4:65","type":""},{"name":"bytes","nativeSrc":"22424:5:65","nodeType":"YulTypedName","src":"22424:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"22434:6:65","nodeType":"YulTypedName","src":"22434:6:65","type":""}],"src":"22390:169:65"},{"body":{"nativeSrc":"22645:214:65","nodeType":"YulBlock","src":"22645:214:65","statements":[{"nativeSrc":"22778:37:65","nodeType":"YulAssignment","src":"22778:37:65","value":{"arguments":[{"name":"data","nativeSrc":"22805:4:65","nodeType":"YulIdentifier","src":"22805:4:65"},{"name":"len","nativeSrc":"22811:3:65","nodeType":"YulIdentifier","src":"22811:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"22786:18:65","nodeType":"YulIdentifier","src":"22786:18:65"},"nativeSrc":"22786:29:65","nodeType":"YulFunctionCall","src":"22786:29:65"},"variableNames":[{"name":"data","nativeSrc":"22778:4:65","nodeType":"YulIdentifier","src":"22778:4:65"}]},{"nativeSrc":"22824:29:65","nodeType":"YulAssignment","src":"22824:29:65","value":{"arguments":[{"name":"data","nativeSrc":"22835:4:65","nodeType":"YulIdentifier","src":"22835:4:65"},{"arguments":[{"kind":"number","nativeSrc":"22845:1:65","nodeType":"YulLiteral","src":"22845:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"22848:3:65","nodeType":"YulIdentifier","src":"22848:3:65"}],"functionName":{"name":"mul","nativeSrc":"22841:3:65","nodeType":"YulIdentifier","src":"22841:3:65"},"nativeSrc":"22841:11:65","nodeType":"YulFunctionCall","src":"22841:11:65"}],"functionName":{"name":"or","nativeSrc":"22832:2:65","nodeType":"YulIdentifier","src":"22832:2:65"},"nativeSrc":"22832:21:65","nodeType":"YulFunctionCall","src":"22832:21:65"},"variableNames":[{"name":"used","nativeSrc":"22824:4:65","nodeType":"YulIdentifier","src":"22824:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22564:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"22626:4:65","nodeType":"YulTypedName","src":"22626:4:65","type":""},{"name":"len","nativeSrc":"22632:3:65","nodeType":"YulTypedName","src":"22632:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"22640:4:65","nodeType":"YulTypedName","src":"22640:4:65","type":""}],"src":"22564:295:65"},{"body":{"nativeSrc":"22963:1304:65","nodeType":"YulBlock","src":"22963:1304:65","statements":[{"nativeSrc":"22974:58:65","nodeType":"YulVariableDeclaration","src":"22974:58:65","value":{"arguments":[{"name":"src","nativeSrc":"23023:3:65","nodeType":"YulIdentifier","src":"23023:3:65"},{"name":"len","nativeSrc":"23028:3:65","nodeType":"YulIdentifier","src":"23028:3:65"}],"functionName":{"name":"array_length_t_string_calldata_ptr","nativeSrc":"22988:34:65","nodeType":"YulIdentifier","src":"22988:34:65"},"nativeSrc":"22988:44:65","nodeType":"YulFunctionCall","src":"22988:44:65"},"variables":[{"name":"newLen","nativeSrc":"22978:6:65","nodeType":"YulTypedName","src":"22978:6:65","type":""}]},{"body":{"nativeSrc":"23117:22:65","nodeType":"YulBlock","src":"23117:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23119:16:65","nodeType":"YulIdentifier","src":"23119:16:65"},"nativeSrc":"23119:18:65","nodeType":"YulFunctionCall","src":"23119:18:65"},"nativeSrc":"23119:18:65","nodeType":"YulExpressionStatement","src":"23119:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"23089:6:65","nodeType":"YulIdentifier","src":"23089:6:65"},{"kind":"number","nativeSrc":"23097:18:65","nodeType":"YulLiteral","src":"23097:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23086:2:65","nodeType":"YulIdentifier","src":"23086:2:65"},"nativeSrc":"23086:30:65","nodeType":"YulFunctionCall","src":"23086:30:65"},"nativeSrc":"23083:56:65","nodeType":"YulIf","src":"23083:56:65"},{"nativeSrc":"23149:52:65","nodeType":"YulVariableDeclaration","src":"23149:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23195:4:65","nodeType":"YulIdentifier","src":"23195:4:65"}],"functionName":{"name":"sload","nativeSrc":"23189:5:65","nodeType":"YulIdentifier","src":"23189:5:65"},"nativeSrc":"23189:11:65","nodeType":"YulFunctionCall","src":"23189:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23163:25:65","nodeType":"YulIdentifier","src":"23163:25:65"},"nativeSrc":"23163:38:65","nodeType":"YulFunctionCall","src":"23163:38:65"},"variables":[{"name":"oldLen","nativeSrc":"23153:6:65","nodeType":"YulTypedName","src":"23153:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23294:4:65","nodeType":"YulIdentifier","src":"23294:4:65"},{"name":"oldLen","nativeSrc":"23300:6:65","nodeType":"YulIdentifier","src":"23300:6:65"},{"name":"newLen","nativeSrc":"23308:6:65","nodeType":"YulIdentifier","src":"23308:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"23248:45:65","nodeType":"YulIdentifier","src":"23248:45:65"},"nativeSrc":"23248:67:65","nodeType":"YulFunctionCall","src":"23248:67:65"},"nativeSrc":"23248:67:65","nodeType":"YulExpressionStatement","src":"23248:67:65"},{"nativeSrc":"23325:18:65","nodeType":"YulVariableDeclaration","src":"23325:18:65","value":{"kind":"number","nativeSrc":"23342:1:65","nodeType":"YulLiteral","src":"23342:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23329:9:65","nodeType":"YulTypedName","src":"23329:9:65","type":""}]},{"cases":[{"body":{"nativeSrc":"23390:625:65","nodeType":"YulBlock","src":"23390:625:65","statements":[{"nativeSrc":"23404:37:65","nodeType":"YulVariableDeclaration","src":"23404:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"23423:6:65","nodeType":"YulIdentifier","src":"23423:6:65"},{"arguments":[{"kind":"number","nativeSrc":"23435:4:65","nodeType":"YulLiteral","src":"23435:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"23431:3:65","nodeType":"YulIdentifier","src":"23431:3:65"},"nativeSrc":"23431:9:65","nodeType":"YulFunctionCall","src":"23431:9:65"}],"functionName":{"name":"and","nativeSrc":"23419:3:65","nodeType":"YulIdentifier","src":"23419:3:65"},"nativeSrc":"23419:22:65","nodeType":"YulFunctionCall","src":"23419:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"23408:7:65","nodeType":"YulTypedName","src":"23408:7:65","type":""}]},{"nativeSrc":"23455:51:65","nodeType":"YulVariableDeclaration","src":"23455:51:65","value":{"arguments":[{"name":"slot","nativeSrc":"23501:4:65","nodeType":"YulIdentifier","src":"23501:4:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"23469:31:65","nodeType":"YulIdentifier","src":"23469:31:65"},"nativeSrc":"23469:37:65","nodeType":"YulFunctionCall","src":"23469:37:65"},"variables":[{"name":"dstPtr","nativeSrc":"23459:6:65","nodeType":"YulTypedName","src":"23459:6:65","type":""}]},{"nativeSrc":"23519:10:65","nodeType":"YulVariableDeclaration","src":"23519:10:65","value":{"kind":"number","nativeSrc":"23528:1:65","nodeType":"YulLiteral","src":"23528:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"23523:1:65","nodeType":"YulTypedName","src":"23523:1:65","type":""}]},{"body":{"nativeSrc":"23587:170:65","nodeType":"YulBlock","src":"23587:170:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23612:6:65","nodeType":"YulIdentifier","src":"23612:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23637:3:65","nodeType":"YulIdentifier","src":"23637:3:65"},{"name":"srcOffset","nativeSrc":"23642:9:65","nodeType":"YulIdentifier","src":"23642:9:65"}],"functionName":{"name":"add","nativeSrc":"23633:3:65","nodeType":"YulIdentifier","src":"23633:3:65"},"nativeSrc":"23633:19:65","nodeType":"YulFunctionCall","src":"23633:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"23620:12:65","nodeType":"YulIdentifier","src":"23620:12:65"},"nativeSrc":"23620:33:65","nodeType":"YulFunctionCall","src":"23620:33:65"}],"functionName":{"name":"sstore","nativeSrc":"23605:6:65","nodeType":"YulIdentifier","src":"23605:6:65"},"nativeSrc":"23605:49:65","nodeType":"YulFunctionCall","src":"23605:49:65"},"nativeSrc":"23605:49:65","nodeType":"YulExpressionStatement","src":"23605:49:65"},{"nativeSrc":"23671:24:65","nodeType":"YulAssignment","src":"23671:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"23685:6:65","nodeType":"YulIdentifier","src":"23685:6:65"},{"kind":"number","nativeSrc":"23693:1:65","nodeType":"YulLiteral","src":"23693:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23681:3:65","nodeType":"YulIdentifier","src":"23681:3:65"},"nativeSrc":"23681:14:65","nodeType":"YulFunctionCall","src":"23681:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"23671:6:65","nodeType":"YulIdentifier","src":"23671:6:65"}]},{"nativeSrc":"23712:31:65","nodeType":"YulAssignment","src":"23712:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"23729:9:65","nodeType":"YulIdentifier","src":"23729:9:65"},{"kind":"number","nativeSrc":"23740:2:65","nodeType":"YulLiteral","src":"23740:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23725:3:65","nodeType":"YulIdentifier","src":"23725:3:65"},"nativeSrc":"23725:18:65","nodeType":"YulFunctionCall","src":"23725:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"23712:9:65","nodeType":"YulIdentifier","src":"23712:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"23553:1:65","nodeType":"YulIdentifier","src":"23553:1:65"},{"name":"loopEnd","nativeSrc":"23556:7:65","nodeType":"YulIdentifier","src":"23556:7:65"}],"functionName":{"name":"lt","nativeSrc":"23550:2:65","nodeType":"YulIdentifier","src":"23550:2:65"},"nativeSrc":"23550:14:65","nodeType":"YulFunctionCall","src":"23550:14:65"},"nativeSrc":"23542:215:65","nodeType":"YulForLoop","post":{"nativeSrc":"23565:21:65","nodeType":"YulBlock","src":"23565:21:65","statements":[{"nativeSrc":"23567:17:65","nodeType":"YulAssignment","src":"23567:17:65","value":{"arguments":[{"name":"i","nativeSrc":"23576:1:65","nodeType":"YulIdentifier","src":"23576:1:65"},{"kind":"number","nativeSrc":"23579:4:65","nodeType":"YulLiteral","src":"23579:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23572:3:65","nodeType":"YulIdentifier","src":"23572:3:65"},"nativeSrc":"23572:12:65","nodeType":"YulFunctionCall","src":"23572:12:65"},"variableNames":[{"name":"i","nativeSrc":"23567:1:65","nodeType":"YulIdentifier","src":"23567:1:65"}]}]},"pre":{"nativeSrc":"23546:3:65","nodeType":"YulBlock","src":"23546:3:65","statements":[]},"src":"23542:215:65"},{"body":{"nativeSrc":"23793:163:65","nodeType":"YulBlock","src":"23793:163:65","statements":[{"nativeSrc":"23811:50:65","nodeType":"YulVariableDeclaration","src":"23811:50:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"23845:3:65","nodeType":"YulIdentifier","src":"23845:3:65"},{"name":"srcOffset","nativeSrc":"23850:9:65","nodeType":"YulIdentifier","src":"23850:9:65"}],"functionName":{"name":"add","nativeSrc":"23841:3:65","nodeType":"YulIdentifier","src":"23841:3:65"},"nativeSrc":"23841:19:65","nodeType":"YulFunctionCall","src":"23841:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"23828:12:65","nodeType":"YulIdentifier","src":"23828:12:65"},"nativeSrc":"23828:33:65","nodeType":"YulFunctionCall","src":"23828:33:65"},"variables":[{"name":"lastValue","nativeSrc":"23815:9:65","nodeType":"YulTypedName","src":"23815:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"23885:6:65","nodeType":"YulIdentifier","src":"23885:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"23912:9:65","nodeType":"YulIdentifier","src":"23912:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"23927:6:65","nodeType":"YulIdentifier","src":"23927:6:65"},{"kind":"number","nativeSrc":"23935:4:65","nodeType":"YulLiteral","src":"23935:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"23923:3:65","nodeType":"YulIdentifier","src":"23923:3:65"},"nativeSrc":"23923:17:65","nodeType":"YulFunctionCall","src":"23923:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"23893:18:65","nodeType":"YulIdentifier","src":"23893:18:65"},"nativeSrc":"23893:48:65","nodeType":"YulFunctionCall","src":"23893:48:65"}],"functionName":{"name":"sstore","nativeSrc":"23878:6:65","nodeType":"YulIdentifier","src":"23878:6:65"},"nativeSrc":"23878:64:65","nodeType":"YulFunctionCall","src":"23878:64:65"},"nativeSrc":"23878:64:65","nodeType":"YulExpressionStatement","src":"23878:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"23776:7:65","nodeType":"YulIdentifier","src":"23776:7:65"},{"name":"newLen","nativeSrc":"23785:6:65","nodeType":"YulIdentifier","src":"23785:6:65"}],"functionName":{"name":"lt","nativeSrc":"23773:2:65","nodeType":"YulIdentifier","src":"23773:2:65"},"nativeSrc":"23773:19:65","nodeType":"YulFunctionCall","src":"23773:19:65"},"nativeSrc":"23770:186:65","nodeType":"YulIf","src":"23770:186:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23976:4:65","nodeType":"YulIdentifier","src":"23976:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"23990:6:65","nodeType":"YulIdentifier","src":"23990:6:65"},{"kind":"number","nativeSrc":"23998:1:65","nodeType":"YulLiteral","src":"23998:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"23986:3:65","nodeType":"YulIdentifier","src":"23986:3:65"},"nativeSrc":"23986:14:65","nodeType":"YulFunctionCall","src":"23986:14:65"},{"kind":"number","nativeSrc":"24002:1:65","nodeType":"YulLiteral","src":"24002:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23982:3:65","nodeType":"YulIdentifier","src":"23982:3:65"},"nativeSrc":"23982:22:65","nodeType":"YulFunctionCall","src":"23982:22:65"}],"functionName":{"name":"sstore","nativeSrc":"23969:6:65","nodeType":"YulIdentifier","src":"23969:6:65"},"nativeSrc":"23969:36:65","nodeType":"YulFunctionCall","src":"23969:36:65"},"nativeSrc":"23969:36:65","nodeType":"YulExpressionStatement","src":"23969:36:65"}]},"nativeSrc":"23383:632:65","nodeType":"YulCase","src":"23383:632:65","value":{"kind":"number","nativeSrc":"23388:1:65","nodeType":"YulLiteral","src":"23388:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"24032:229:65","nodeType":"YulBlock","src":"24032:229:65","statements":[{"nativeSrc":"24046:14:65","nodeType":"YulVariableDeclaration","src":"24046:14:65","value":{"kind":"number","nativeSrc":"24059:1:65","nodeType":"YulLiteral","src":"24059:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24050:5:65","nodeType":"YulTypedName","src":"24050:5:65","type":""}]},{"body":{"nativeSrc":"24083:74:65","nodeType":"YulBlock","src":"24083:74:65","statements":[{"nativeSrc":"24101:42:65","nodeType":"YulAssignment","src":"24101:42:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24127:3:65","nodeType":"YulIdentifier","src":"24127:3:65"},{"name":"srcOffset","nativeSrc":"24132:9:65","nodeType":"YulIdentifier","src":"24132:9:65"}],"functionName":{"name":"add","nativeSrc":"24123:3:65","nodeType":"YulIdentifier","src":"24123:3:65"},"nativeSrc":"24123:19:65","nodeType":"YulFunctionCall","src":"24123:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"24110:12:65","nodeType":"YulIdentifier","src":"24110:12:65"},"nativeSrc":"24110:33:65","nodeType":"YulFunctionCall","src":"24110:33:65"},"variableNames":[{"name":"value","nativeSrc":"24101:5:65","nodeType":"YulIdentifier","src":"24101:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"24076:6:65","nodeType":"YulIdentifier","src":"24076:6:65"},"nativeSrc":"24073:84:65","nodeType":"YulIf","src":"24073:84:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24177:4:65","nodeType":"YulIdentifier","src":"24177:4:65"},{"arguments":[{"name":"value","nativeSrc":"24236:5:65","nodeType":"YulIdentifier","src":"24236:5:65"},{"name":"newLen","nativeSrc":"24243:6:65","nodeType":"YulIdentifier","src":"24243:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24183:52:65","nodeType":"YulIdentifier","src":"24183:52:65"},"nativeSrc":"24183:67:65","nodeType":"YulFunctionCall","src":"24183:67:65"}],"functionName":{"name":"sstore","nativeSrc":"24170:6:65","nodeType":"YulIdentifier","src":"24170:6:65"},"nativeSrc":"24170:81:65","nodeType":"YulFunctionCall","src":"24170:81:65"},"nativeSrc":"24170:81:65","nodeType":"YulExpressionStatement","src":"24170:81:65"}]},"nativeSrc":"24024:237:65","nodeType":"YulCase","src":"24024:237:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"23363:6:65","nodeType":"YulIdentifier","src":"23363:6:65"},{"kind":"number","nativeSrc":"23371:2:65","nodeType":"YulLiteral","src":"23371:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"23360:2:65","nodeType":"YulIdentifier","src":"23360:2:65"},"nativeSrc":"23360:14:65","nodeType":"YulFunctionCall","src":"23360:14:65"},"nativeSrc":"23353:908:65","nodeType":"YulSwitch","src":"23353:908:65"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nativeSrc":"22864:1403:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22947:4:65","nodeType":"YulTypedName","src":"22947:4:65","type":""},{"name":"src","nativeSrc":"22953:3:65","nodeType":"YulTypedName","src":"22953:3:65","type":""},{"name":"len","nativeSrc":"22958:3:65","nodeType":"YulTypedName","src":"22958:3:65","type":""}],"src":"22864:1403:65"},{"body":{"nativeSrc":"24399:215:65","nodeType":"YulBlock","src":"24399:215:65","statements":[{"nativeSrc":"24409:78:65","nodeType":"YulAssignment","src":"24409:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"24475:3:65","nodeType":"YulIdentifier","src":"24475:3:65"},{"name":"length","nativeSrc":"24480:6:65","nodeType":"YulIdentifier","src":"24480:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"24416:58:65","nodeType":"YulIdentifier","src":"24416:58:65"},"nativeSrc":"24416:71:65","nodeType":"YulFunctionCall","src":"24416:71:65"},"variableNames":[{"name":"pos","nativeSrc":"24409:3:65","nodeType":"YulIdentifier","src":"24409:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"24534:5:65","nodeType":"YulIdentifier","src":"24534:5:65"},{"name":"pos","nativeSrc":"24541:3:65","nodeType":"YulIdentifier","src":"24541:3:65"},{"name":"length","nativeSrc":"24546:6:65","nodeType":"YulIdentifier","src":"24546:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"24497:36:65","nodeType":"YulIdentifier","src":"24497:36:65"},"nativeSrc":"24497:56:65","nodeType":"YulFunctionCall","src":"24497:56:65"},"nativeSrc":"24497:56:65","nodeType":"YulExpressionStatement","src":"24497:56:65"},{"nativeSrc":"24562:46:65","nodeType":"YulAssignment","src":"24562:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"24573:3:65","nodeType":"YulIdentifier","src":"24573:3:65"},{"arguments":[{"name":"length","nativeSrc":"24600:6:65","nodeType":"YulIdentifier","src":"24600:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"24578:21:65","nodeType":"YulIdentifier","src":"24578:21:65"},"nativeSrc":"24578:29:65","nodeType":"YulFunctionCall","src":"24578:29:65"}],"functionName":{"name":"add","nativeSrc":"24569:3:65","nodeType":"YulIdentifier","src":"24569:3:65"},"nativeSrc":"24569:39:65","nodeType":"YulFunctionCall","src":"24569:39:65"},"variableNames":[{"name":"end","nativeSrc":"24562:3:65","nodeType":"YulIdentifier","src":"24562:3:65"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"24297:317:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"24372:5:65","nodeType":"YulTypedName","src":"24372:5:65","type":""},{"name":"length","nativeSrc":"24379:6:65","nodeType":"YulTypedName","src":"24379:6:65","type":""},{"name":"pos","nativeSrc":"24387:3:65","nodeType":"YulTypedName","src":"24387:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24395:3:65","nodeType":"YulTypedName","src":"24395:3:65","type":""}],"src":"24297:317:65"},{"body":{"nativeSrc":"24770:281:65","nodeType":"YulBlock","src":"24770:281:65","statements":[{"nativeSrc":"24780:26:65","nodeType":"YulAssignment","src":"24780:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"24792:9:65","nodeType":"YulIdentifier","src":"24792:9:65"},{"kind":"number","nativeSrc":"24803:2:65","nodeType":"YulLiteral","src":"24803:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"24788:3:65","nodeType":"YulIdentifier","src":"24788:3:65"},"nativeSrc":"24788:18:65","nodeType":"YulFunctionCall","src":"24788:18:65"},"variableNames":[{"name":"tail","nativeSrc":"24780:4:65","nodeType":"YulIdentifier","src":"24780:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24827:9:65","nodeType":"YulIdentifier","src":"24827:9:65"},{"kind":"number","nativeSrc":"24838:1:65","nodeType":"YulLiteral","src":"24838:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24823:3:65","nodeType":"YulIdentifier","src":"24823:3:65"},"nativeSrc":"24823:17:65","nodeType":"YulFunctionCall","src":"24823:17:65"},{"arguments":[{"name":"tail","nativeSrc":"24846:4:65","nodeType":"YulIdentifier","src":"24846:4:65"},{"name":"headStart","nativeSrc":"24852:9:65","nodeType":"YulIdentifier","src":"24852:9:65"}],"functionName":{"name":"sub","nativeSrc":"24842:3:65","nodeType":"YulIdentifier","src":"24842:3:65"},"nativeSrc":"24842:20:65","nodeType":"YulFunctionCall","src":"24842:20:65"}],"functionName":{"name":"mstore","nativeSrc":"24816:6:65","nodeType":"YulIdentifier","src":"24816:6:65"},"nativeSrc":"24816:47:65","nodeType":"YulFunctionCall","src":"24816:47:65"},"nativeSrc":"24816:47:65","nodeType":"YulExpressionStatement","src":"24816:47:65"},{"nativeSrc":"24872:96:65","nodeType":"YulAssignment","src":"24872:96:65","value":{"arguments":[{"name":"value0","nativeSrc":"24946:6:65","nodeType":"YulIdentifier","src":"24946:6:65"},{"name":"value1","nativeSrc":"24954:6:65","nodeType":"YulIdentifier","src":"24954:6:65"},{"name":"tail","nativeSrc":"24963:4:65","nodeType":"YulIdentifier","src":"24963:4:65"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"24880:65:65","nodeType":"YulIdentifier","src":"24880:65:65"},"nativeSrc":"24880:88:65","nodeType":"YulFunctionCall","src":"24880:88:65"},"variableNames":[{"name":"tail","nativeSrc":"24872:4:65","nodeType":"YulIdentifier","src":"24872:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"25016:6:65","nodeType":"YulIdentifier","src":"25016:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"25029:9:65","nodeType":"YulIdentifier","src":"25029:9:65"},{"kind":"number","nativeSrc":"25040:2:65","nodeType":"YulLiteral","src":"25040:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25025:3:65","nodeType":"YulIdentifier","src":"25025:3:65"},"nativeSrc":"25025:18:65","nodeType":"YulFunctionCall","src":"25025:18:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"24978:37:65","nodeType":"YulIdentifier","src":"24978:37:65"},"nativeSrc":"24978:66:65","nodeType":"YulFunctionCall","src":"24978:66:65"},"nativeSrc":"24978:66:65","nodeType":"YulExpressionStatement","src":"24978:66:65"}]},"name":"abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed","nativeSrc":"24620:431:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24726:9:65","nodeType":"YulTypedName","src":"24726:9:65","type":""},{"name":"value2","nativeSrc":"24738:6:65","nodeType":"YulTypedName","src":"24738:6:65","type":""},{"name":"value1","nativeSrc":"24746:6:65","nodeType":"YulTypedName","src":"24746:6:65","type":""},{"name":"value0","nativeSrc":"24754:6:65","nodeType":"YulTypedName","src":"24754:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24765:4:65","nodeType":"YulTypedName","src":"24765:4:65","type":""}],"src":"24620:431:65"},{"body":{"nativeSrc":"25163:122:65","nodeType":"YulBlock","src":"25163:122:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"25185:6:65","nodeType":"YulIdentifier","src":"25185:6:65"},{"kind":"number","nativeSrc":"25193:1:65","nodeType":"YulLiteral","src":"25193:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25181:3:65","nodeType":"YulIdentifier","src":"25181:3:65"},"nativeSrc":"25181:14:65","nodeType":"YulFunctionCall","src":"25181:14:65"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"25197:34:65","nodeType":"YulLiteral","src":"25197:34:65","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"25174:6:65","nodeType":"YulIdentifier","src":"25174:6:65"},"nativeSrc":"25174:58:65","nodeType":"YulFunctionCall","src":"25174:58:65"},"nativeSrc":"25174:58:65","nodeType":"YulExpressionStatement","src":"25174:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"25253:6:65","nodeType":"YulIdentifier","src":"25253:6:65"},{"kind":"number","nativeSrc":"25261:2:65","nodeType":"YulLiteral","src":"25261:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25249:3:65","nodeType":"YulIdentifier","src":"25249:3:65"},"nativeSrc":"25249:15:65","nodeType":"YulFunctionCall","src":"25249:15:65"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"25266:11:65","nodeType":"YulLiteral","src":"25266:11:65","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"25242:6:65","nodeType":"YulIdentifier","src":"25242:6:65"},"nativeSrc":"25242:36:65","nodeType":"YulFunctionCall","src":"25242:36:65"},"nativeSrc":"25242:36:65","nodeType":"YulExpressionStatement","src":"25242:36:65"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"25057:228:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"25155:6:65","nodeType":"YulTypedName","src":"25155:6:65","type":""}],"src":"25057:228:65"},{"body":{"nativeSrc":"25437:220:65","nodeType":"YulBlock","src":"25437:220:65","statements":[{"nativeSrc":"25447:74:65","nodeType":"YulAssignment","src":"25447:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"25513:3:65","nodeType":"YulIdentifier","src":"25513:3:65"},{"kind":"number","nativeSrc":"25518:2:65","nodeType":"YulLiteral","src":"25518:2:65","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"25454:58:65","nodeType":"YulIdentifier","src":"25454:58:65"},"nativeSrc":"25454:67:65","nodeType":"YulFunctionCall","src":"25454:67:65"},"variableNames":[{"name":"pos","nativeSrc":"25447:3:65","nodeType":"YulIdentifier","src":"25447:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"25619:3:65","nodeType":"YulIdentifier","src":"25619:3:65"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nativeSrc":"25530:88:65","nodeType":"YulIdentifier","src":"25530:88:65"},"nativeSrc":"25530:93:65","nodeType":"YulFunctionCall","src":"25530:93:65"},"nativeSrc":"25530:93:65","nodeType":"YulExpressionStatement","src":"25530:93:65"},{"nativeSrc":"25632:19:65","nodeType":"YulAssignment","src":"25632:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"25643:3:65","nodeType":"YulIdentifier","src":"25643:3:65"},{"kind":"number","nativeSrc":"25648:2:65","nodeType":"YulLiteral","src":"25648:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25639:3:65","nodeType":"YulIdentifier","src":"25639:3:65"},"nativeSrc":"25639:12:65","nodeType":"YulFunctionCall","src":"25639:12:65"},"variableNames":[{"name":"end","nativeSrc":"25632:3:65","nodeType":"YulIdentifier","src":"25632:3:65"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"25291:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"25425:3:65","nodeType":"YulTypedName","src":"25425:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25433:3:65","nodeType":"YulTypedName","src":"25433:3:65","type":""}],"src":"25291:366:65"},{"body":{"nativeSrc":"25834:248:65","nodeType":"YulBlock","src":"25834:248:65","statements":[{"nativeSrc":"25844:26:65","nodeType":"YulAssignment","src":"25844:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"25856:9:65","nodeType":"YulIdentifier","src":"25856:9:65"},{"kind":"number","nativeSrc":"25867:2:65","nodeType":"YulLiteral","src":"25867:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25852:3:65","nodeType":"YulIdentifier","src":"25852:3:65"},"nativeSrc":"25852:18:65","nodeType":"YulFunctionCall","src":"25852:18:65"},"variableNames":[{"name":"tail","nativeSrc":"25844:4:65","nodeType":"YulIdentifier","src":"25844:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25891:9:65","nodeType":"YulIdentifier","src":"25891:9:65"},{"kind":"number","nativeSrc":"25902:1:65","nodeType":"YulLiteral","src":"25902:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25887:3:65","nodeType":"YulIdentifier","src":"25887:3:65"},"nativeSrc":"25887:17:65","nodeType":"YulFunctionCall","src":"25887:17:65"},{"arguments":[{"name":"tail","nativeSrc":"25910:4:65","nodeType":"YulIdentifier","src":"25910:4:65"},{"name":"headStart","nativeSrc":"25916:9:65","nodeType":"YulIdentifier","src":"25916:9:65"}],"functionName":{"name":"sub","nativeSrc":"25906:3:65","nodeType":"YulIdentifier","src":"25906:3:65"},"nativeSrc":"25906:20:65","nodeType":"YulFunctionCall","src":"25906:20:65"}],"functionName":{"name":"mstore","nativeSrc":"25880:6:65","nodeType":"YulIdentifier","src":"25880:6:65"},"nativeSrc":"25880:47:65","nodeType":"YulFunctionCall","src":"25880:47:65"},"nativeSrc":"25880:47:65","nodeType":"YulExpressionStatement","src":"25880:47:65"},{"nativeSrc":"25936:139:65","nodeType":"YulAssignment","src":"25936:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"26070:4:65","nodeType":"YulIdentifier","src":"26070:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nativeSrc":"25944:124:65","nodeType":"YulIdentifier","src":"25944:124:65"},"nativeSrc":"25944:131:65","nodeType":"YulFunctionCall","src":"25944:131:65"},"variableNames":[{"name":"tail","nativeSrc":"25936:4:65","nodeType":"YulIdentifier","src":"25936:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"25663:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25814:9:65","nodeType":"YulTypedName","src":"25814:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25829:4:65","nodeType":"YulTypedName","src":"25829:4:65","type":""}],"src":"25663:419:65"},{"body":{"nativeSrc":"26194:127:65","nodeType":"YulBlock","src":"26194:127:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"26216:6:65","nodeType":"YulIdentifier","src":"26216:6:65"},{"kind":"number","nativeSrc":"26224:1:65","nodeType":"YulLiteral","src":"26224:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26212:3:65","nodeType":"YulIdentifier","src":"26212:3:65"},"nativeSrc":"26212:14:65","nodeType":"YulFunctionCall","src":"26212:14:65"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nativeSrc":"26228:34:65","nodeType":"YulLiteral","src":"26228:34:65","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nativeSrc":"26205:6:65","nodeType":"YulIdentifier","src":"26205:6:65"},"nativeSrc":"26205:58:65","nodeType":"YulFunctionCall","src":"26205:58:65"},"nativeSrc":"26205:58:65","nodeType":"YulExpressionStatement","src":"26205:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"26284:6:65","nodeType":"YulIdentifier","src":"26284:6:65"},{"kind":"number","nativeSrc":"26292:2:65","nodeType":"YulLiteral","src":"26292:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26280:3:65","nodeType":"YulIdentifier","src":"26280:3:65"},"nativeSrc":"26280:15:65","nodeType":"YulFunctionCall","src":"26280:15:65"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nativeSrc":"26297:16:65","nodeType":"YulLiteral","src":"26297:16:65","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nativeSrc":"26273:6:65","nodeType":"YulIdentifier","src":"26273:6:65"},"nativeSrc":"26273:41:65","nodeType":"YulFunctionCall","src":"26273:41:65"},"nativeSrc":"26273:41:65","nodeType":"YulExpressionStatement","src":"26273:41:65"}]},"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"26088:233:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"26186:6:65","nodeType":"YulTypedName","src":"26186:6:65","type":""}],"src":"26088:233:65"},{"body":{"nativeSrc":"26473:220:65","nodeType":"YulBlock","src":"26473:220:65","statements":[{"nativeSrc":"26483:74:65","nodeType":"YulAssignment","src":"26483:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"26549:3:65","nodeType":"YulIdentifier","src":"26549:3:65"},{"kind":"number","nativeSrc":"26554:2:65","nodeType":"YulLiteral","src":"26554:2:65","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"26490:58:65","nodeType":"YulIdentifier","src":"26490:58:65"},"nativeSrc":"26490:67:65","nodeType":"YulFunctionCall","src":"26490:67:65"},"variableNames":[{"name":"pos","nativeSrc":"26483:3:65","nodeType":"YulIdentifier","src":"26483:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"26655:3:65","nodeType":"YulIdentifier","src":"26655:3:65"}],"functionName":{"name":"store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","nativeSrc":"26566:88:65","nodeType":"YulIdentifier","src":"26566:88:65"},"nativeSrc":"26566:93:65","nodeType":"YulFunctionCall","src":"26566:93:65"},"nativeSrc":"26566:93:65","nodeType":"YulExpressionStatement","src":"26566:93:65"},{"nativeSrc":"26668:19:65","nodeType":"YulAssignment","src":"26668:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"26679:3:65","nodeType":"YulIdentifier","src":"26679:3:65"},{"kind":"number","nativeSrc":"26684:2:65","nodeType":"YulLiteral","src":"26684:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"26675:3:65","nodeType":"YulIdentifier","src":"26675:3:65"},"nativeSrc":"26675:12:65","nodeType":"YulFunctionCall","src":"26675:12:65"},"variableNames":[{"name":"end","nativeSrc":"26668:3:65","nodeType":"YulIdentifier","src":"26668:3:65"}]}]},"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"26327:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26461:3:65","nodeType":"YulTypedName","src":"26461:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26469:3:65","nodeType":"YulTypedName","src":"26469:3:65","type":""}],"src":"26327:366:65"},{"body":{"nativeSrc":"26870:248:65","nodeType":"YulBlock","src":"26870:248:65","statements":[{"nativeSrc":"26880:26:65","nodeType":"YulAssignment","src":"26880:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"26892:9:65","nodeType":"YulIdentifier","src":"26892:9:65"},{"kind":"number","nativeSrc":"26903:2:65","nodeType":"YulLiteral","src":"26903:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26888:3:65","nodeType":"YulIdentifier","src":"26888:3:65"},"nativeSrc":"26888:18:65","nodeType":"YulFunctionCall","src":"26888:18:65"},"variableNames":[{"name":"tail","nativeSrc":"26880:4:65","nodeType":"YulIdentifier","src":"26880:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26927:9:65","nodeType":"YulIdentifier","src":"26927:9:65"},{"kind":"number","nativeSrc":"26938:1:65","nodeType":"YulLiteral","src":"26938:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26923:3:65","nodeType":"YulIdentifier","src":"26923:3:65"},"nativeSrc":"26923:17:65","nodeType":"YulFunctionCall","src":"26923:17:65"},{"arguments":[{"name":"tail","nativeSrc":"26946:4:65","nodeType":"YulIdentifier","src":"26946:4:65"},{"name":"headStart","nativeSrc":"26952:9:65","nodeType":"YulIdentifier","src":"26952:9:65"}],"functionName":{"name":"sub","nativeSrc":"26942:3:65","nodeType":"YulIdentifier","src":"26942:3:65"},"nativeSrc":"26942:20:65","nodeType":"YulFunctionCall","src":"26942:20:65"}],"functionName":{"name":"mstore","nativeSrc":"26916:6:65","nodeType":"YulIdentifier","src":"26916:6:65"},"nativeSrc":"26916:47:65","nodeType":"YulFunctionCall","src":"26916:47:65"},"nativeSrc":"26916:47:65","nodeType":"YulExpressionStatement","src":"26916:47:65"},{"nativeSrc":"26972:139:65","nodeType":"YulAssignment","src":"26972:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"27106:4:65","nodeType":"YulIdentifier","src":"27106:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack","nativeSrc":"26980:124:65","nodeType":"YulIdentifier","src":"26980:124:65"},"nativeSrc":"26980:131:65","nodeType":"YulFunctionCall","src":"26980:131:65"},"variableNames":[{"name":"tail","nativeSrc":"26972:4:65","nodeType":"YulIdentifier","src":"26972:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"26699:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26850:9:65","nodeType":"YulTypedName","src":"26850:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26865:4:65","nodeType":"YulTypedName","src":"26865:4:65","type":""}],"src":"26699:419:65"},{"body":{"nativeSrc":"27177:32:65","nodeType":"YulBlock","src":"27177:32:65","statements":[{"nativeSrc":"27187:16:65","nodeType":"YulAssignment","src":"27187:16:65","value":{"name":"value","nativeSrc":"27198:5:65","nodeType":"YulIdentifier","src":"27198:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"27187:7:65","nodeType":"YulIdentifier","src":"27187:7:65"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"27124:85:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27159:5:65","nodeType":"YulTypedName","src":"27159:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"27169:7:65","nodeType":"YulTypedName","src":"27169:7:65","type":""}],"src":"27124:85:65"},{"body":{"nativeSrc":"27258:43:65","nodeType":"YulBlock","src":"27258:43:65","statements":[{"nativeSrc":"27268:27:65","nodeType":"YulAssignment","src":"27268:27:65","value":{"arguments":[{"name":"value","nativeSrc":"27283:5:65","nodeType":"YulIdentifier","src":"27283:5:65"},{"kind":"number","nativeSrc":"27290:4:65","nodeType":"YulLiteral","src":"27290:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"27279:3:65","nodeType":"YulIdentifier","src":"27279:3:65"},"nativeSrc":"27279:16:65","nodeType":"YulFunctionCall","src":"27279:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"27268:7:65","nodeType":"YulIdentifier","src":"27268:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"27215:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27240:5:65","nodeType":"YulTypedName","src":"27240:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"27250:7:65","nodeType":"YulTypedName","src":"27250:7:65","type":""}],"src":"27215:86:65"},{"body":{"nativeSrc":"27373:88:65","nodeType":"YulBlock","src":"27373:88:65","statements":[{"nativeSrc":"27383:72:65","nodeType":"YulAssignment","src":"27383:72:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27447:5:65","nodeType":"YulIdentifier","src":"27447:5:65"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"27421:25:65","nodeType":"YulIdentifier","src":"27421:25:65"},"nativeSrc":"27421:32:65","nodeType":"YulFunctionCall","src":"27421:32:65"}],"functionName":{"name":"identity","nativeSrc":"27412:8:65","nodeType":"YulIdentifier","src":"27412:8:65"},"nativeSrc":"27412:42:65","nodeType":"YulFunctionCall","src":"27412:42:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"27396:15:65","nodeType":"YulIdentifier","src":"27396:15:65"},"nativeSrc":"27396:59:65","nodeType":"YulFunctionCall","src":"27396:59:65"},"variableNames":[{"name":"converted","nativeSrc":"27383:9:65","nodeType":"YulIdentifier","src":"27383:9:65"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"27307:154:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27353:5:65","nodeType":"YulTypedName","src":"27353:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"27363:9:65","nodeType":"YulTypedName","src":"27363:9:65","type":""}],"src":"27307:154:65"},{"body":{"nativeSrc":"27538:72:65","nodeType":"YulBlock","src":"27538:72:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"27555:3:65","nodeType":"YulIdentifier","src":"27555:3:65"},{"arguments":[{"name":"value","nativeSrc":"27597:5:65","nodeType":"YulIdentifier","src":"27597:5:65"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint8","nativeSrc":"27560:36:65","nodeType":"YulIdentifier","src":"27560:36:65"},"nativeSrc":"27560:43:65","nodeType":"YulFunctionCall","src":"27560:43:65"}],"functionName":{"name":"mstore","nativeSrc":"27548:6:65","nodeType":"YulIdentifier","src":"27548:6:65"},"nativeSrc":"27548:56:65","nodeType":"YulFunctionCall","src":"27548:56:65"},"nativeSrc":"27548:56:65","nodeType":"YulExpressionStatement","src":"27548:56:65"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"27467:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27526:5:65","nodeType":"YulTypedName","src":"27526:5:65","type":""},{"name":"pos","nativeSrc":"27533:3:65","nodeType":"YulTypedName","src":"27533:3:65","type":""}],"src":"27467:143:65"},{"body":{"nativeSrc":"27720:130:65","nodeType":"YulBlock","src":"27720:130:65","statements":[{"nativeSrc":"27730:26:65","nodeType":"YulAssignment","src":"27730:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"27742:9:65","nodeType":"YulIdentifier","src":"27742:9:65"},{"kind":"number","nativeSrc":"27753:2:65","nodeType":"YulLiteral","src":"27753:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27738:3:65","nodeType":"YulIdentifier","src":"27738:3:65"},"nativeSrc":"27738:18:65","nodeType":"YulFunctionCall","src":"27738:18:65"},"variableNames":[{"name":"tail","nativeSrc":"27730:4:65","nodeType":"YulIdentifier","src":"27730:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27816:6:65","nodeType":"YulIdentifier","src":"27816:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"27829:9:65","nodeType":"YulIdentifier","src":"27829:9:65"},{"kind":"number","nativeSrc":"27840:1:65","nodeType":"YulLiteral","src":"27840:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27825:3:65","nodeType":"YulIdentifier","src":"27825:3:65"},"nativeSrc":"27825:17:65","nodeType":"YulFunctionCall","src":"27825:17:65"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint8_fromStack","nativeSrc":"27766:49:65","nodeType":"YulIdentifier","src":"27766:49:65"},"nativeSrc":"27766:77:65","nodeType":"YulFunctionCall","src":"27766:77:65"},"nativeSrc":"27766:77:65","nodeType":"YulExpressionStatement","src":"27766:77:65"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nativeSrc":"27616:234:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27692:9:65","nodeType":"YulTypedName","src":"27692:9:65","type":""},{"name":"value0","nativeSrc":"27704:6:65","nodeType":"YulTypedName","src":"27704:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27715:4:65","nodeType":"YulTypedName","src":"27715:4:65","type":""}],"src":"27616:234:65"},{"body":{"nativeSrc":"27962:76:65","nodeType":"YulBlock","src":"27962:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"27984:6:65","nodeType":"YulIdentifier","src":"27984:6:65"},{"kind":"number","nativeSrc":"27992:1:65","nodeType":"YulLiteral","src":"27992:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27980:3:65","nodeType":"YulIdentifier","src":"27980:3:65"},"nativeSrc":"27980:14:65","nodeType":"YulFunctionCall","src":"27980:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"27996:34:65","nodeType":"YulLiteral","src":"27996:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"27973:6:65","nodeType":"YulIdentifier","src":"27973:6:65"},"nativeSrc":"27973:58:65","nodeType":"YulFunctionCall","src":"27973:58:65"},"nativeSrc":"27973:58:65","nodeType":"YulExpressionStatement","src":"27973:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"27856:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"27954:6:65","nodeType":"YulTypedName","src":"27954:6:65","type":""}],"src":"27856:182:65"},{"body":{"nativeSrc":"28190:220:65","nodeType":"YulBlock","src":"28190:220:65","statements":[{"nativeSrc":"28200:74:65","nodeType":"YulAssignment","src":"28200:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"28266:3:65","nodeType":"YulIdentifier","src":"28266:3:65"},{"kind":"number","nativeSrc":"28271:2:65","nodeType":"YulLiteral","src":"28271:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"28207:58:65","nodeType":"YulIdentifier","src":"28207:58:65"},"nativeSrc":"28207:67:65","nodeType":"YulFunctionCall","src":"28207:67:65"},"variableNames":[{"name":"pos","nativeSrc":"28200:3:65","nodeType":"YulIdentifier","src":"28200:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"28372:3:65","nodeType":"YulIdentifier","src":"28372:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"28283:88:65","nodeType":"YulIdentifier","src":"28283:88:65"},"nativeSrc":"28283:93:65","nodeType":"YulFunctionCall","src":"28283:93:65"},"nativeSrc":"28283:93:65","nodeType":"YulExpressionStatement","src":"28283:93:65"},{"nativeSrc":"28385:19:65","nodeType":"YulAssignment","src":"28385:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"28396:3:65","nodeType":"YulIdentifier","src":"28396:3:65"},{"kind":"number","nativeSrc":"28401:2:65","nodeType":"YulLiteral","src":"28401:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28392:3:65","nodeType":"YulIdentifier","src":"28392:3:65"},"nativeSrc":"28392:12:65","nodeType":"YulFunctionCall","src":"28392:12:65"},"variableNames":[{"name":"end","nativeSrc":"28385:3:65","nodeType":"YulIdentifier","src":"28385:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"28044:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"28178:3:65","nodeType":"YulTypedName","src":"28178:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"28186:3:65","nodeType":"YulTypedName","src":"28186:3:65","type":""}],"src":"28044:366:65"},{"body":{"nativeSrc":"28587:248:65","nodeType":"YulBlock","src":"28587:248:65","statements":[{"nativeSrc":"28597:26:65","nodeType":"YulAssignment","src":"28597:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"28609:9:65","nodeType":"YulIdentifier","src":"28609:9:65"},{"kind":"number","nativeSrc":"28620:2:65","nodeType":"YulLiteral","src":"28620:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28605:3:65","nodeType":"YulIdentifier","src":"28605:3:65"},"nativeSrc":"28605:18:65","nodeType":"YulFunctionCall","src":"28605:18:65"},"variableNames":[{"name":"tail","nativeSrc":"28597:4:65","nodeType":"YulIdentifier","src":"28597:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28644:9:65","nodeType":"YulIdentifier","src":"28644:9:65"},{"kind":"number","nativeSrc":"28655:1:65","nodeType":"YulLiteral","src":"28655:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28640:3:65","nodeType":"YulIdentifier","src":"28640:3:65"},"nativeSrc":"28640:17:65","nodeType":"YulFunctionCall","src":"28640:17:65"},{"arguments":[{"name":"tail","nativeSrc":"28663:4:65","nodeType":"YulIdentifier","src":"28663:4:65"},{"name":"headStart","nativeSrc":"28669:9:65","nodeType":"YulIdentifier","src":"28669:9:65"}],"functionName":{"name":"sub","nativeSrc":"28659:3:65","nodeType":"YulIdentifier","src":"28659:3:65"},"nativeSrc":"28659:20:65","nodeType":"YulFunctionCall","src":"28659:20:65"}],"functionName":{"name":"mstore","nativeSrc":"28633:6:65","nodeType":"YulIdentifier","src":"28633:6:65"},"nativeSrc":"28633:47:65","nodeType":"YulFunctionCall","src":"28633:47:65"},"nativeSrc":"28633:47:65","nodeType":"YulExpressionStatement","src":"28633:47:65"},{"nativeSrc":"28689:139:65","nodeType":"YulAssignment","src":"28689:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"28823:4:65","nodeType":"YulIdentifier","src":"28823:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"28697:124:65","nodeType":"YulIdentifier","src":"28697:124:65"},"nativeSrc":"28697:131:65","nodeType":"YulFunctionCall","src":"28697:131:65"},"variableNames":[{"name":"tail","nativeSrc":"28689:4:65","nodeType":"YulIdentifier","src":"28689:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"28416:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28567:9:65","nodeType":"YulTypedName","src":"28567:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28582:4:65","nodeType":"YulTypedName","src":"28582:4:65","type":""}],"src":"28416:419:65"},{"body":{"nativeSrc":"28947:118:65","nodeType":"YulBlock","src":"28947:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"28969:6:65","nodeType":"YulIdentifier","src":"28969:6:65"},{"kind":"number","nativeSrc":"28977:1:65","nodeType":"YulLiteral","src":"28977:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28965:3:65","nodeType":"YulIdentifier","src":"28965:3:65"},"nativeSrc":"28965:14:65","nodeType":"YulFunctionCall","src":"28965:14:65"},{"hexValue":"696e76616c696420616365737320636f6e74726f6c206d616e61676572206164","kind":"string","nativeSrc":"28981:34:65","nodeType":"YulLiteral","src":"28981:34:65","type":"","value":"invalid acess control manager ad"}],"functionName":{"name":"mstore","nativeSrc":"28958:6:65","nodeType":"YulIdentifier","src":"28958:6:65"},"nativeSrc":"28958:58:65","nodeType":"YulFunctionCall","src":"28958:58:65"},"nativeSrc":"28958:58:65","nodeType":"YulExpressionStatement","src":"28958:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29037:6:65","nodeType":"YulIdentifier","src":"29037:6:65"},{"kind":"number","nativeSrc":"29045:2:65","nodeType":"YulLiteral","src":"29045:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29033:3:65","nodeType":"YulIdentifier","src":"29033:3:65"},"nativeSrc":"29033:15:65","nodeType":"YulFunctionCall","src":"29033:15:65"},{"hexValue":"6472657373","kind":"string","nativeSrc":"29050:7:65","nodeType":"YulLiteral","src":"29050:7:65","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"29026:6:65","nodeType":"YulIdentifier","src":"29026:6:65"},"nativeSrc":"29026:32:65","nodeType":"YulFunctionCall","src":"29026:32:65"},"nativeSrc":"29026:32:65","nodeType":"YulExpressionStatement","src":"29026:32:65"}]},"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"28841:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"28939:6:65","nodeType":"YulTypedName","src":"28939:6:65","type":""}],"src":"28841:224:65"},{"body":{"nativeSrc":"29217:220:65","nodeType":"YulBlock","src":"29217:220:65","statements":[{"nativeSrc":"29227:74:65","nodeType":"YulAssignment","src":"29227:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"29293:3:65","nodeType":"YulIdentifier","src":"29293:3:65"},{"kind":"number","nativeSrc":"29298:2:65","nodeType":"YulLiteral","src":"29298:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29234:58:65","nodeType":"YulIdentifier","src":"29234:58:65"},"nativeSrc":"29234:67:65","nodeType":"YulFunctionCall","src":"29234:67:65"},"variableNames":[{"name":"pos","nativeSrc":"29227:3:65","nodeType":"YulIdentifier","src":"29227:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29399:3:65","nodeType":"YulIdentifier","src":"29399:3:65"}],"functionName":{"name":"store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb","nativeSrc":"29310:88:65","nodeType":"YulIdentifier","src":"29310:88:65"},"nativeSrc":"29310:93:65","nodeType":"YulFunctionCall","src":"29310:93:65"},"nativeSrc":"29310:93:65","nodeType":"YulExpressionStatement","src":"29310:93:65"},{"nativeSrc":"29412:19:65","nodeType":"YulAssignment","src":"29412:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"29423:3:65","nodeType":"YulIdentifier","src":"29423:3:65"},{"kind":"number","nativeSrc":"29428:2:65","nodeType":"YulLiteral","src":"29428:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29419:3:65","nodeType":"YulIdentifier","src":"29419:3:65"},"nativeSrc":"29419:12:65","nodeType":"YulFunctionCall","src":"29419:12:65"},"variableNames":[{"name":"end","nativeSrc":"29412:3:65","nodeType":"YulIdentifier","src":"29412:3:65"}]}]},"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"29071:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29205:3:65","nodeType":"YulTypedName","src":"29205:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29213:3:65","nodeType":"YulTypedName","src":"29213:3:65","type":""}],"src":"29071:366:65"},{"body":{"nativeSrc":"29614:248:65","nodeType":"YulBlock","src":"29614:248:65","statements":[{"nativeSrc":"29624:26:65","nodeType":"YulAssignment","src":"29624:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"29636:9:65","nodeType":"YulIdentifier","src":"29636:9:65"},{"kind":"number","nativeSrc":"29647:2:65","nodeType":"YulLiteral","src":"29647:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29632:3:65","nodeType":"YulIdentifier","src":"29632:3:65"},"nativeSrc":"29632:18:65","nodeType":"YulFunctionCall","src":"29632:18:65"},"variableNames":[{"name":"tail","nativeSrc":"29624:4:65","nodeType":"YulIdentifier","src":"29624:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29671:9:65","nodeType":"YulIdentifier","src":"29671:9:65"},{"kind":"number","nativeSrc":"29682:1:65","nodeType":"YulLiteral","src":"29682:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29667:3:65","nodeType":"YulIdentifier","src":"29667:3:65"},"nativeSrc":"29667:17:65","nodeType":"YulFunctionCall","src":"29667:17:65"},{"arguments":[{"name":"tail","nativeSrc":"29690:4:65","nodeType":"YulIdentifier","src":"29690:4:65"},{"name":"headStart","nativeSrc":"29696:9:65","nodeType":"YulIdentifier","src":"29696:9:65"}],"functionName":{"name":"sub","nativeSrc":"29686:3:65","nodeType":"YulIdentifier","src":"29686:3:65"},"nativeSrc":"29686:20:65","nodeType":"YulFunctionCall","src":"29686:20:65"}],"functionName":{"name":"mstore","nativeSrc":"29660:6:65","nodeType":"YulIdentifier","src":"29660:6:65"},"nativeSrc":"29660:47:65","nodeType":"YulFunctionCall","src":"29660:47:65"},"nativeSrc":"29660:47:65","nodeType":"YulExpressionStatement","src":"29660:47:65"},{"nativeSrc":"29716:139:65","nodeType":"YulAssignment","src":"29716:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"29850:4:65","nodeType":"YulIdentifier","src":"29850:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack","nativeSrc":"29724:124:65","nodeType":"YulIdentifier","src":"29724:124:65"},"nativeSrc":"29724:131:65","nodeType":"YulFunctionCall","src":"29724:131:65"},"variableNames":[{"name":"tail","nativeSrc":"29716:4:65","nodeType":"YulIdentifier","src":"29716:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29443:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29594:9:65","nodeType":"YulTypedName","src":"29594:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29609:4:65","nodeType":"YulTypedName","src":"29609:4:65","type":""}],"src":"29443:419:65"},{"body":{"nativeSrc":"29994:206:65","nodeType":"YulBlock","src":"29994:206:65","statements":[{"nativeSrc":"30004:26:65","nodeType":"YulAssignment","src":"30004:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"30016:9:65","nodeType":"YulIdentifier","src":"30016:9:65"},{"kind":"number","nativeSrc":"30027:2:65","nodeType":"YulLiteral","src":"30027:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"30012:3:65","nodeType":"YulIdentifier","src":"30012:3:65"},"nativeSrc":"30012:18:65","nodeType":"YulFunctionCall","src":"30012:18:65"},"variableNames":[{"name":"tail","nativeSrc":"30004:4:65","nodeType":"YulIdentifier","src":"30004:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"30084:6:65","nodeType":"YulIdentifier","src":"30084:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"30097:9:65","nodeType":"YulIdentifier","src":"30097:9:65"},{"kind":"number","nativeSrc":"30108:1:65","nodeType":"YulLiteral","src":"30108:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30093:3:65","nodeType":"YulIdentifier","src":"30093:3:65"},"nativeSrc":"30093:17:65","nodeType":"YulFunctionCall","src":"30093:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"30040:43:65","nodeType":"YulIdentifier","src":"30040:43:65"},"nativeSrc":"30040:71:65","nodeType":"YulFunctionCall","src":"30040:71:65"},"nativeSrc":"30040:71:65","nodeType":"YulExpressionStatement","src":"30040:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"30165:6:65","nodeType":"YulIdentifier","src":"30165:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"30178:9:65","nodeType":"YulIdentifier","src":"30178:9:65"},{"kind":"number","nativeSrc":"30189:2:65","nodeType":"YulLiteral","src":"30189:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30174:3:65","nodeType":"YulIdentifier","src":"30174:3:65"},"nativeSrc":"30174:18:65","nodeType":"YulFunctionCall","src":"30174:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"30121:43:65","nodeType":"YulIdentifier","src":"30121:43:65"},"nativeSrc":"30121:72:65","nodeType":"YulFunctionCall","src":"30121:72:65"},"nativeSrc":"30121:72:65","nodeType":"YulExpressionStatement","src":"30121:72:65"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"29868:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29958:9:65","nodeType":"YulTypedName","src":"29958:9:65","type":""},{"name":"value1","nativeSrc":"29970:6:65","nodeType":"YulTypedName","src":"29970:6:65","type":""},{"name":"value0","nativeSrc":"29978:6:65","nodeType":"YulTypedName","src":"29978:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29989:4:65","nodeType":"YulTypedName","src":"29989:4:65","type":""}],"src":"29868:332:65"},{"body":{"nativeSrc":"30271:31:65","nodeType":"YulBlock","src":"30271:31:65","statements":[{"nativeSrc":"30282:13:65","nodeType":"YulAssignment","src":"30282:13:65","value":{"name":"len","nativeSrc":"30292:3:65","nodeType":"YulIdentifier","src":"30292:3:65"},"variableNames":[{"name":"length","nativeSrc":"30282:6:65","nodeType":"YulIdentifier","src":"30282:6:65"}]}]},"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"30206:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30249:5:65","nodeType":"YulTypedName","src":"30249:5:65","type":""},{"name":"len","nativeSrc":"30256:3:65","nodeType":"YulTypedName","src":"30256:3:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"30264:6:65","nodeType":"YulTypedName","src":"30264:6:65","type":""}],"src":"30206:96:65"},{"body":{"nativeSrc":"30366:28:65","nodeType":"YulBlock","src":"30366:28:65","statements":[{"nativeSrc":"30376:11:65","nodeType":"YulAssignment","src":"30376:11:65","value":{"name":"ptr","nativeSrc":"30384:3:65","nodeType":"YulIdentifier","src":"30384:3:65"},"variableNames":[{"name":"data","nativeSrc":"30376:4:65","nodeType":"YulIdentifier","src":"30376:4:65"}]}]},"name":"array_dataslot_t_bytes_calldata_ptr","nativeSrc":"30308:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"30353:3:65","nodeType":"YulTypedName","src":"30353:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"30361:4:65","nodeType":"YulTypedName","src":"30361:4:65","type":""}],"src":"30308:86:65"},{"body":{"nativeSrc":"30445:105:65","nodeType":"YulBlock","src":"30445:105:65","statements":[{"nativeSrc":"30455:89:65","nodeType":"YulAssignment","src":"30455:89:65","value":{"arguments":[{"name":"value","nativeSrc":"30470:5:65","nodeType":"YulIdentifier","src":"30470:5:65"},{"kind":"number","nativeSrc":"30477:66:65","nodeType":"YulLiteral","src":"30477:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"30466:3:65","nodeType":"YulIdentifier","src":"30466:3:65"},"nativeSrc":"30466:78:65","nodeType":"YulFunctionCall","src":"30466:78:65"},"variableNames":[{"name":"cleaned","nativeSrc":"30455:7:65","nodeType":"YulIdentifier","src":"30455:7:65"}]}]},"name":"cleanup_t_bytes20","nativeSrc":"30400:150:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30427:5:65","nodeType":"YulTypedName","src":"30427:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"30437:7:65","nodeType":"YulTypedName","src":"30437:7:65","type":""}],"src":"30400:150:65"},{"body":{"nativeSrc":"30653:455:65","nodeType":"YulBlock","src":"30653:455:65","statements":[{"nativeSrc":"30664:59:65","nodeType":"YulVariableDeclaration","src":"30664:59:65","value":{"arguments":[{"name":"array","nativeSrc":"30712:5:65","nodeType":"YulIdentifier","src":"30712:5:65"},{"name":"len","nativeSrc":"30719:3:65","nodeType":"YulIdentifier","src":"30719:3:65"}],"functionName":{"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"30678:33:65","nodeType":"YulIdentifier","src":"30678:33:65"},"nativeSrc":"30678:45:65","nodeType":"YulFunctionCall","src":"30678:45:65"},"variables":[{"name":"length","nativeSrc":"30668:6:65","nodeType":"YulTypedName","src":"30668:6:65","type":""}]},{"nativeSrc":"30732:21:65","nodeType":"YulVariableDeclaration","src":"30732:21:65","value":{"name":"array","nativeSrc":"30748:5:65","nodeType":"YulIdentifier","src":"30748:5:65"},"variables":[{"name":"dataArea","nativeSrc":"30736:8:65","nodeType":"YulTypedName","src":"30736:8:65","type":""}]},{"nativeSrc":"30763:50:65","nodeType":"YulAssignment","src":"30763:50:65","value":{"arguments":[{"arguments":[{"name":"dataArea","nativeSrc":"30803:8:65","nodeType":"YulIdentifier","src":"30803:8:65"}],"functionName":{"name":"calldataload","nativeSrc":"30790:12:65","nodeType":"YulIdentifier","src":"30790:12:65"},"nativeSrc":"30790:22:65","nodeType":"YulFunctionCall","src":"30790:22:65"}],"functionName":{"name":"cleanup_t_bytes20","nativeSrc":"30772:17:65","nodeType":"YulIdentifier","src":"30772:17:65"},"nativeSrc":"30772:41:65","nodeType":"YulFunctionCall","src":"30772:41:65"},"variableNames":[{"name":"value","nativeSrc":"30763:5:65","nodeType":"YulIdentifier","src":"30763:5:65"}]},{"body":{"nativeSrc":"30841:260:65","nodeType":"YulBlock","src":"30841:260:65","statements":[{"nativeSrc":"30855:236:65","nodeType":"YulAssignment","src":"30855:236:65","value":{"arguments":[{"name":"value","nativeSrc":"30885:5:65","nodeType":"YulIdentifier","src":"30885:5:65"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30952:1:65","nodeType":"YulLiteral","src":"30952:1:65","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"30959:2:65","nodeType":"YulLiteral","src":"30959:2:65","type":"","value":"20"},{"name":"length","nativeSrc":"30963:6:65","nodeType":"YulIdentifier","src":"30963:6:65"}],"functionName":{"name":"sub","nativeSrc":"30955:3:65","nodeType":"YulIdentifier","src":"30955:3:65"},"nativeSrc":"30955:15:65","nodeType":"YulFunctionCall","src":"30955:15:65"}],"functionName":{"name":"mul","nativeSrc":"30948:3:65","nodeType":"YulIdentifier","src":"30948:3:65"},"nativeSrc":"30948:23:65","nodeType":"YulFunctionCall","src":"30948:23:65"},{"kind":"number","nativeSrc":"30993:66:65","nodeType":"YulLiteral","src":"30993:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"30908:18:65","nodeType":"YulIdentifier","src":"30908:18:65"},"nativeSrc":"30908:169:65","nodeType":"YulFunctionCall","src":"30908:169:65"}],"functionName":{"name":"and","nativeSrc":"30864:3:65","nodeType":"YulIdentifier","src":"30864:3:65"},"nativeSrc":"30864:227:65","nodeType":"YulFunctionCall","src":"30864:227:65"},"variableNames":[{"name":"value","nativeSrc":"30855:5:65","nodeType":"YulIdentifier","src":"30855:5:65"}]}]},"condition":{"arguments":[{"name":"length","nativeSrc":"30829:6:65","nodeType":"YulIdentifier","src":"30829:6:65"},{"kind":"number","nativeSrc":"30837:2:65","nodeType":"YulLiteral","src":"30837:2:65","type":"","value":"20"}],"functionName":{"name":"lt","nativeSrc":"30826:2:65","nodeType":"YulIdentifier","src":"30826:2:65"},"nativeSrc":"30826:14:65","nodeType":"YulFunctionCall","src":"30826:14:65"},"nativeSrc":"30823:278:65","nodeType":"YulIf","src":"30823:278:65"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20","nativeSrc":"30556:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"30632:5:65","nodeType":"YulTypedName","src":"30632:5:65","type":""},{"name":"len","nativeSrc":"30639:3:65","nodeType":"YulTypedName","src":"30639:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"30647:5:65","nodeType":"YulTypedName","src":"30647:5:65","type":""}],"src":"30556:552:65"},{"body":{"nativeSrc":"31220:124:65","nodeType":"YulBlock","src":"31220:124:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31242:6:65","nodeType":"YulIdentifier","src":"31242:6:65"},{"kind":"number","nativeSrc":"31250:1:65","nodeType":"YulLiteral","src":"31250:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31238:3:65","nodeType":"YulIdentifier","src":"31238:3:65"},"nativeSrc":"31238:14:65","nodeType":"YulFunctionCall","src":"31238:14:65"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nativeSrc":"31254:34:65","nodeType":"YulLiteral","src":"31254:34:65","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nativeSrc":"31231:6:65","nodeType":"YulIdentifier","src":"31231:6:65"},"nativeSrc":"31231:58:65","nodeType":"YulFunctionCall","src":"31231:58:65"},"nativeSrc":"31231:58:65","nodeType":"YulExpressionStatement","src":"31231:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31310:6:65","nodeType":"YulIdentifier","src":"31310:6:65"},{"kind":"number","nativeSrc":"31318:2:65","nodeType":"YulLiteral","src":"31318:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31306:3:65","nodeType":"YulIdentifier","src":"31306:3:65"},"nativeSrc":"31306:15:65","nodeType":"YulFunctionCall","src":"31306:15:65"},{"hexValue":"6e697469616c697a696e67","kind":"string","nativeSrc":"31323:13:65","nodeType":"YulLiteral","src":"31323:13:65","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nativeSrc":"31299:6:65","nodeType":"YulIdentifier","src":"31299:6:65"},"nativeSrc":"31299:38:65","nodeType":"YulFunctionCall","src":"31299:38:65"},"nativeSrc":"31299:38:65","nodeType":"YulExpressionStatement","src":"31299:38:65"}]},"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"31114:230:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"31212:6:65","nodeType":"YulTypedName","src":"31212:6:65","type":""}],"src":"31114:230:65"},{"body":{"nativeSrc":"31496:220:65","nodeType":"YulBlock","src":"31496:220:65","statements":[{"nativeSrc":"31506:74:65","nodeType":"YulAssignment","src":"31506:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"31572:3:65","nodeType":"YulIdentifier","src":"31572:3:65"},{"kind":"number","nativeSrc":"31577:2:65","nodeType":"YulLiteral","src":"31577:2:65","type":"","value":"43"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"31513:58:65","nodeType":"YulIdentifier","src":"31513:58:65"},"nativeSrc":"31513:67:65","nodeType":"YulFunctionCall","src":"31513:67:65"},"variableNames":[{"name":"pos","nativeSrc":"31506:3:65","nodeType":"YulIdentifier","src":"31506:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"31678:3:65","nodeType":"YulIdentifier","src":"31678:3:65"}],"functionName":{"name":"store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","nativeSrc":"31589:88:65","nodeType":"YulIdentifier","src":"31589:88:65"},"nativeSrc":"31589:93:65","nodeType":"YulFunctionCall","src":"31589:93:65"},"nativeSrc":"31589:93:65","nodeType":"YulExpressionStatement","src":"31589:93:65"},{"nativeSrc":"31691:19:65","nodeType":"YulAssignment","src":"31691:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"31702:3:65","nodeType":"YulIdentifier","src":"31702:3:65"},{"kind":"number","nativeSrc":"31707:2:65","nodeType":"YulLiteral","src":"31707:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"31698:3:65","nodeType":"YulIdentifier","src":"31698:3:65"},"nativeSrc":"31698:12:65","nodeType":"YulFunctionCall","src":"31698:12:65"},"variableNames":[{"name":"end","nativeSrc":"31691:3:65","nodeType":"YulIdentifier","src":"31691:3:65"}]}]},"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"31350:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31484:3:65","nodeType":"YulTypedName","src":"31484:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31492:3:65","nodeType":"YulTypedName","src":"31492:3:65","type":""}],"src":"31350:366:65"},{"body":{"nativeSrc":"31893:248:65","nodeType":"YulBlock","src":"31893:248:65","statements":[{"nativeSrc":"31903:26:65","nodeType":"YulAssignment","src":"31903:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"31915:9:65","nodeType":"YulIdentifier","src":"31915:9:65"},{"kind":"number","nativeSrc":"31926:2:65","nodeType":"YulLiteral","src":"31926:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31911:3:65","nodeType":"YulIdentifier","src":"31911:3:65"},"nativeSrc":"31911:18:65","nodeType":"YulFunctionCall","src":"31911:18:65"},"variableNames":[{"name":"tail","nativeSrc":"31903:4:65","nodeType":"YulIdentifier","src":"31903:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31950:9:65","nodeType":"YulIdentifier","src":"31950:9:65"},{"kind":"number","nativeSrc":"31961:1:65","nodeType":"YulLiteral","src":"31961:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31946:3:65","nodeType":"YulIdentifier","src":"31946:3:65"},"nativeSrc":"31946:17:65","nodeType":"YulFunctionCall","src":"31946:17:65"},{"arguments":[{"name":"tail","nativeSrc":"31969:4:65","nodeType":"YulIdentifier","src":"31969:4:65"},{"name":"headStart","nativeSrc":"31975:9:65","nodeType":"YulIdentifier","src":"31975:9:65"}],"functionName":{"name":"sub","nativeSrc":"31965:3:65","nodeType":"YulIdentifier","src":"31965:3:65"},"nativeSrc":"31965:20:65","nodeType":"YulFunctionCall","src":"31965:20:65"}],"functionName":{"name":"mstore","nativeSrc":"31939:6:65","nodeType":"YulIdentifier","src":"31939:6:65"},"nativeSrc":"31939:47:65","nodeType":"YulFunctionCall","src":"31939:47:65"},"nativeSrc":"31939:47:65","nodeType":"YulExpressionStatement","src":"31939:47:65"},{"nativeSrc":"31995:139:65","nodeType":"YulAssignment","src":"31995:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"32129:4:65","nodeType":"YulIdentifier","src":"32129:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack","nativeSrc":"32003:124:65","nodeType":"YulIdentifier","src":"32003:124:65"},"nativeSrc":"32003:131:65","nodeType":"YulFunctionCall","src":"32003:131:65"},"variableNames":[{"name":"tail","nativeSrc":"31995:4:65","nodeType":"YulIdentifier","src":"31995:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"31722:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31873:9:65","nodeType":"YulTypedName","src":"31873:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31888:4:65","nodeType":"YulTypedName","src":"31888:4:65","type":""}],"src":"31722:419:65"}]},"contents":"{\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d(memPtr) {\n\n        mstore(add(memPtr, 0), \"Function not found\")\n\n    }\n\n    function abi_encode_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n        store_literal_in_memory_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b9c7f9fb4d10afcebf26c5daf76290a584c3f270eee838d3acb27fb2fe13b11d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a(memPtr) {\n\n        mstore(add(memPtr, 0), \"call failed\")\n\n    }\n\n    function abi_encode_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n        store_literal_in_memory_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a04f7977a7361020e07a160885cb05178aa6d9ff17ec37e942914b4316b9352a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes4(value) -> cleaned {\n        cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n    }\n\n    function validator_revert_t_bytes4(value) {\n        if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes4(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes4(value)\n    }\n\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IXVSProxyOFT_$11260_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IXVSProxyOFT_$11260_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IXVSProxyOFT_$11260_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IXVSProxyOFT_$11260__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IXVSProxyOFT_$11260_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    // string[]\n    function abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    // bool[]\n    function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0, value1 := abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_IAccessControlManagerV8_$8664_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IAccessControlManagerV8_$8664_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IAccessControlManagerV8_$8664_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IAccessControlManagerV8_$8664__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IAccessControlManagerV8_$8664_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_string_memory_ptr__to_t_address_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n    }\n\n    function store_literal_in_memory_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1(memPtr) {\n\n        mstore(add(memPtr, 0), \"ChainId must not be zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n        store_literal_in_memory_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_25330637c37e740ba17926890288a3211f1ce0916deecf251da03c3bc20367a1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n    }\n\n    function store_literal_in_memory_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e(memPtr) {\n\n        mstore(add(memPtr, 0), \"Input arrays must have the same \")\n\n        mstore(add(memPtr, 32), \"length\")\n\n    }\n\n    function abi_encode_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_8c7d7f44a93d75a90a1d7078d1656040bea1969f911d1ad279bc9b0194f1b13e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n        revert(0, 0)\n    }\n\n    function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n        revert(0, 0)\n    }\n\n    function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n        revert(0, 0)\n    }\n\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n        addr := add(base_ref, rel_offset_of_tail)\n\n        length := calldataload(addr)\n        if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n        addr := add(addr, 32)\n        if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_calldata_ptr(value, len) -> length {\n\n        length := len\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len) {\n\n        let newLen := array_length_t_string_calldata_ptr(src, len)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := calldataload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    // string -> string\n    function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_calldata_ptr_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value0, value1,  tail)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value2,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is alrea\")\n\n        mstore(add(memPtr, 32), \"dy initialized\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid acess control manager ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4fb90961f89e1ad09bee577e07c3323ef046bc07751bb17057bc82e05747edcb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_length_t_bytes_calldata_ptr(value, len) -> length {\n\n        length := len\n\n    }\n\n    function array_dataslot_t_bytes_calldata_ptr(ptr) -> data {\n        data := ptr\n\n    }\n\n    function cleanup_t_bytes20(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000)\n    }\n\n    function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes20(array, len) -> value {\n\n        let length := array_length_t_bytes_calldata_ptr(array, len)\n        let dataArea := array\n\n        value := cleanup_t_bytes20(calldataload(dataArea))\n\n        if lt(length, 20) {\n            value := and(\n                value,\n                shift_left_dynamic(\n                    mul(8, sub(20, length)),\n                    0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000\n                )\n            )\n        }\n\n    }\n\n    function store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Initializable: contract is not i\")\n\n        mstore(add(memPtr, 32), \"nitializing\")\n\n    }\n\n    function abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n        store_literal_in_memory_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10427":[{"length":32,"start":320},{"length":32,"start":557},{"length":32,"start":1383},{"length":32,"start":1602},{"length":32,"start":2581}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146102d7578063c4d66de8146102e8578063e30c3978146102fb578063f2fde38b1461030c576100ea565b806379ba5097146102a25780638da5cb5b146102aa578063a6c3d165146102c4576100ea565b80633d8b38f6116100c85780633d8b38f61461025c5780633f90b5401461027c5780634bb7453e1461028f578063715018a6146101fd576100ea565b80630e32cb86146101ea578063180d295c146101ff57806327a020ef14610228575b600036606060006101066000356001600160e01b03191661031f565b905080516000036101325760405162461bcd60e51b815260040161012990610e4b565b60405180910390fd5b61013b816103cc565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686604051610178929190610e7a565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b5091509150816101dc5760405162461bcd60e51b815260040161012990610eb1565b805195506020019350505050f35b6101fd6101f8366004610ef1565b61046a565b005b61021261020d366004610f2d565b61047e565b60405161021f9190610fa6565b60405180910390f35b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161021f9190610fff565b61026f61026a366004611074565b610518565b60405161021f91906110d8565b6101fd61028a366004610ef1565b6105ed565b6101fd61029d366004611131565b6106ac565b6101fd610977565b6033546001600160a01b03165b60405161021f91906111b3565b6101fd6102d2366004611074565b6109ac565b6097546001600160a01b031661024f565b6101fd6102f6366004610ef1565b610a85565b6065546001600160a01b03166102b7565b6101fd61031a366004610ef1565b610b55565b6001600160e01b03198116600090815260c960205260409020805460609190610347906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610373906111d7565b80156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906103ff9033908690600401611203565b602060405180830381865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190611236565b90508061046657333083604051634a3fa29360e01b815260040161012993929190611257565b5050565b610472610bc6565b61047b81610bf0565b50565b60c96020526000908152604090208054610497906111d7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c3906111d7565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b60008361ffff1660000361053e5760405162461bcd60e51b8152600401610129906112c1565b61055061054b8484610c69565b610c81565b604051631ec59c7b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d8b38f6906105a0908790879087906004016112fe565b6020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611236565b90505b9392505050565b61062b6040518060400160405280602081526020017f7472616e736665724272696467654f776e6572736869702861646472657373298152506103cc565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906106779084906004016111b3565b600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b5050505050565b6106b4610bc6565b828181146106d45760405162461bcd60e51b815260040161012990611365565b60005b8181101561096d5760008686838181106106f3576106f3611375565b9050602002810190610705919061138b565b604051610713929190610e7a565b60408051918290039091206001600160e01b03198116600090815260c9602052918220805491935090610745906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610771906111d7565b80156107be5780601f10610793576101008083540402835291602001916107be565b820191906000526020600020905b8154815290600101906020018083116107a157829003601f168201915b505050505090508585848181106107d7576107d7611375565b90506020020160208101906107ec91906113f5565b80156107f757508051155b156108a95787878481811061080e5761080e611375565b9050602002810190610820919061138b565b6001600160e01b03198416600090815260c960205260409020916108459190836114c2565b507f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061087957610879611375565b905060200281019061088b919061138b565b600160405161089c93929190611585565b60405180910390a1610963565b8585848181106108bb576108bb611375565b90506020020160208101906108d091906113f5565b1580156108dd5750805115155b15610963576001600160e01b03198216600090815260c96020526040812061090491610dd1565b7f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061093757610937611375565b9050602002810190610949919061138b565b600060405161095a93929190611585565b60405180910390a15b50506001016106d7565b505050505050565b565b60655433906001600160a01b031681146109a35760405162461bcd60e51b8152600401610129906115ec565b61047b81610ca8565b6109cd6040518060600160405280602581526020016117c6602591396103cc565b8261ffff166000036109f15760405162461bcd60e51b8152600401610129906112c1565b6109fe61054b8383610c69565b60405163a6c3d16560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610a4e908690869086906004016112fe565b600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610aa55750600054600160ff909116105b80610abf5750303b158015610abf575060005460ff166001145b610adb5760405162461bcd60e51b815260040161012990611647565b6000805460ff191660011790558015610afe576000805461ff0019166101001790555b610b0782610cc1565b8015610466576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b499060019061166b565b60405180910390a15050565b610b5d610bc6565b606580546001600160a01b0383166001600160a01b03199091168117909155610b8e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146109755760405162461bcd60e51b8152600401610129906116ab565b6001600160a01b038116610c165760405162461bcd60e51b8152600401610129906116fd565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b49908390859061170d565b6000610c758284611728565b60601c90505b92915050565b6001600160a01b03811661047b576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561047b81610cf9565b600054610100900460ff16610ce85760405162461bcd60e51b8152600401610129906117b5565b610cf0610d4b565b61047b81610d7a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d725760405162461bcd60e51b8152600401610129906117b5565b610975610da1565b600054610100900460ff166104725760405162461bcd60e51b8152600401610129906117b5565b600054610100900460ff16610dc85760405162461bcd60e51b8152600401610129906117b5565b61097533610ca8565b508054610ddd906111d7565b6000825580601f10610ded575050565b601f01602090049060005260206000209081019061047b91905b80821115610e1b5760008155600101610e07565b5090565b6012815260006020820171119d5b98dd1a5bdb881b9bdd08199bdd5b9960721b815291505b5060200190565b60208082528101610c7b81610e1f565b82818337506000910152565b6000610e74838584610e5b565b50500190565b6000610e87828486610e67565b949350505050565b600b81526000602082016a18d85b1b0819985a5b195960aa1b81529150610e44565b60208082528101610c7b81610e8f565b60006001600160a01b038216610c7b565b610edb81610ec1565b811461047b57600080fd5b8035610c7b81610ed2565b600060208284031215610f0657610f06600080fd5b6000610e878484610ee6565b6001600160e01b03198116610edb565b8035610c7b81610f12565b600060208284031215610f4257610f42600080fd5b6000610e878484610f22565b60005b83811015610f69578181015183820152602001610f51565b50506000910152565b6000610f7c825190565b808452602084019350610f93818560208601610f4e565b601f19601f8201165b9093019392505050565b602080825281016105e68184610f72565b6000610c7b6001600160a01b038316610fce565b90565b6001600160a01b031690565b6000610c7b82610fb7565b6000610c7b82610fda565b610ff981610fe5565b82525050565b60208101610c7b8284610ff0565b61ffff8116610edb565b8035610c7b8161100d565b60008083601f84011261103757611037600080fd5b50813567ffffffffffffffff81111561105257611052600080fd5b60208301915083600182028301111561106d5761106d600080fd5b9250929050565b60008060006040848603121561108c5761108c600080fd5b60006110988686611017565b935050602084013567ffffffffffffffff8111156110b8576110b8600080fd5b6110c486828701611022565b92509250509250925092565b801515610ff9565b60208101610c7b82846110d0565b60008083601f8401126110fb576110fb600080fd5b50813567ffffffffffffffff81111561111657611116600080fd5b60208301915083602082028301111561106d5761106d600080fd5b6000806000806040858703121561114a5761114a600080fd5b843567ffffffffffffffff81111561116457611164600080fd5b611170878288016110e6565b9450945050602085013567ffffffffffffffff81111561119257611192600080fd5b61119e878288016110e6565b95989497509550505050565b610ff981610ec1565b60208101610c7b82846111aa565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806111eb57607f821691505b6020821081036111fd576111fd6111c1565b50919050565b6040810161121182856111aa565b81810360208301526105e38184610f72565b801515610edb565b8051610c7b81611223565b60006020828403121561124b5761124b600080fd5b6000610e87848461122b565b6060810161126582866111aa565b61127260208301856111aa565b81810360408301526112848184610f72565b95945050505050565b601881526000602082017f436861696e4964206d757374206e6f74206265207a65726f000000000000000081529150610e44565b60208082528101610c7b8161128d565b61ffff8116610ff9565b81835260006020840193506112f1838584610e5b565b601f19601f840116610f9c565b6040810161130c82866112d1565b81810360208301526112848184866112db565b602681526000602082017f496e70757420617272617973206d7573742068617665207468652073616d65208152650d8cadccee8d60d31b602082015291505b5060400190565b60208082528101610c7b8161131f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19368590030181126113a6576113a6600080fd5b80840192508235915067ffffffffffffffff8211156113c7576113c7600080fd5b6020830192506001820236038313156113e2576113e2600080fd5b509250929050565b8035610c7b81611223565b60006020828403121561140a5761140a600080fd5b6000610e8784846113ea565b634e487b7160e01b600052604160045260246000fd5b6000610c7b610fcb8381565b6114418361142c565b815460001960089490940293841b1916921b91909117905550565b6000611469818484611438565b505050565b818110156104665761148160008261145c565b60010161146e565b601f821115611469576000818152602090206020601f850104810160208510156114b05750805b6106a56020601f86010483018261146e565b8267ffffffffffffffff8111156114db576114db611416565b6114e582546111d7565b6114f0828285611489565b6000601f831160018114611524576000841561150c5750858201355b600019600886021c1981166002860217865550610a7c565b600085815260208120601f198616915b828110156115545788850135825560209485019460019092019101611534565b8683101561157057600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b604080825281016115978185876112db565b9050610e8760208301846110d0565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061135e565b60208082528101610c7b816115a6565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061135e565b60208082528101610c7b816115fc565b600060ff8216610c7b565b610ff981611657565b60208101610c7b8284611662565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610e44565b60208082528101610c7b81611679565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061135e565b60208082528101610c7b816116bb565b6040810161171b82856111aa565b6105e660208301846111aa565b80356bffffffffffffffffffffffff191682826014821015611765576117606bffffffffffffffffffffffff19836014036008021b90565b831692505b505092915050565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061135e565b60208082528101610c7b8161176d56fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a264697066735822122064478b3481d2baf49002998ce95c0b20c2411f6ef978775825123d11beb2ab1264736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79BA5097 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xB4A0BDF3 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x2D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x30C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0x2C4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x3D8B38F6 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x3F90B540 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x4BB7453E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1FD JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x180D295C EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x27A020EF EQ PUSH2 0x228 JUMPI JUMPDEST PUSH1 0x0 CALLDATASIZE PUSH1 0x60 PUSH1 0x0 PUSH2 0x106 PUSH1 0x0 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH2 0x31F JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0xE4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x13B DUP2 PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x178 SWAP3 SWAP2 SWAP1 PUSH2 0xE7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1BA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0xEB1 JUMP JUMPDEST DUP1 MLOAD SWAP6 POP PUSH1 0x20 ADD SWAP4 POP POP POP POP RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0x46A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x212 PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0xF2D JUMP JUMPDEST PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0xFA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH2 0x26F PUSH2 0x26A CALLDATASIZE PUSH1 0x4 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x10D8 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x1131 JUMP JUMPDEST PUSH2 0x6AC JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x977 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21F SWAP2 SWAP1 PUSH2 0x11B3 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1074 JUMP JUMPDEST PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x24F JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2F6 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0xEF1 JUMP JUMPDEST PUSH2 0xB55 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x347 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x373 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3C0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x395 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3C0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3A3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x3FF SWAP1 CALLER SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1203 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x466 JUMPI CALLER ADDRESS DUP4 PUSH1 0x40 MLOAD PUSH4 0x4A3FA293 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1257 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x472 PUSH2 0xBC6 JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xBF0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x497 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C3 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x510 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x510 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x53E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x54B DUP5 DUP5 PUSH2 0xC69 JUMP JUMPDEST PUSH2 0xC81 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1EC59C7B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3D8B38F6 SWAP1 PUSH2 0x5A0 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E3 SWAP2 SWAP1 PUSH2 0x1236 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x62B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7472616E736665724272696467654F776E657273686970286164647265737329 DUP2 MSTORE POP PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH2 0x677 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x11B3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6B4 PUSH2 0xBC6 JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x6D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x1365 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x96D JUMPI PUSH1 0x0 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x6F3 JUMPI PUSH2 0x6F3 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x705 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x713 SWAP3 SWAP2 SWAP1 PUSH2 0xE7A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE SWAP2 DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 POP SWAP1 PUSH2 0x745 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x771 SWAP1 PUSH2 0x11D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x793 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x7D7 JUMPI PUSH2 0x7D7 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7EC SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7F7 JUMPI POP DUP1 MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x8A9 JUMPI DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x80E JUMPI PUSH2 0x80E PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x820 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 PUSH2 0x845 SWAP2 SWAP1 DUP4 PUSH2 0x14C2 JUMP JUMPDEST POP PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x88B SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1585 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x963 JUMP JUMPDEST DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x8BB JUMPI PUSH2 0x8BB PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8D0 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x8DD JUMPI POP DUP1 MLOAD ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x963 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x904 SWAP2 PUSH2 0xDD1 JUMP JUMPDEST PUSH32 0x9D424E54F4D851AABD288F6CC4946E5726D6B5C0E66EA4EF159A3C40BCC470FA DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x937 JUMPI PUSH2 0x937 PUSH2 0x1375 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x949 SWAP2 SWAP1 PUSH2 0x138B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x95A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1585 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP PUSH1 0x1 ADD PUSH2 0x6D7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x15EC JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xCA8 JUMP JUMPDEST PUSH2 0x9CD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x17C6 PUSH1 0x25 SWAP2 CODECOPY PUSH2 0x3CC JUMP JUMPDEST DUP3 PUSH2 0xFFFF AND PUSH1 0x0 SUB PUSH2 0x9F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x12C1 JUMP JUMPDEST PUSH2 0x9FE PUSH2 0x54B DUP4 DUP4 PUSH2 0xC69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA6C3D165 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA6C3D165 SWAP1 PUSH2 0xA4E SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAA5 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xABF JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xABF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xADB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x1647 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xB07 DUP3 PUSH2 0xCC1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH2 0xB49 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x166B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xB5D PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xB8E PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x975 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x16AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH2 0xB49 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 DUP5 PUSH2 0x1728 JUMP JUMPDEST PUSH1 0x60 SHR SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x47B JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x47B DUP2 PUSH2 0xCF9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0xCF0 PUSH2 0xD4B JUMP JUMPDEST PUSH2 0x47B DUP2 PUSH2 0xD7A JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xD72 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x975 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x472 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xDC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x17B5 JUMP JUMPDEST PUSH2 0x975 CALLER PUSH2 0xCA8 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0xDDD SWAP1 PUSH2 0x11D7 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0xDED JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x47B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xE1B JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xE07 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH18 0x119D5B98DD1A5BDB881B9BDD08199BDD5B99 PUSH1 0x72 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0xE1F JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE74 DUP4 DUP6 DUP5 PUSH2 0xE5B JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP3 DUP5 DUP7 PUSH2 0xE67 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH11 0x18D85B1B0819985A5B1959 PUSH1 0xAA SHL DUP2 MSTORE SWAP2 POP PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0xE8F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC7B JUMP JUMPDEST PUSH2 0xEDB DUP2 PUSH2 0xEC1 JUMP JUMPDEST DUP2 EQ PUSH2 0x47B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0xED2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF06 JUMPI PUSH2 0xF06 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0xEE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0xEDB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0xF12 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0xF22 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF69 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xF51 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xF93 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x5E6 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xFCE JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7B DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0xFE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0xFF0 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0xEDB JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0x100D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1037 JUMPI PUSH2 0x1037 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1052 JUMPI PUSH2 0x1052 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x106D JUMPI PUSH2 0x106D PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x108C JUMPI PUSH2 0x108C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1098 DUP7 DUP7 PUSH2 0x1017 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B8 JUMPI PUSH2 0x10B8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C4 DUP7 DUP3 DUP8 ADD PUSH2 0x1022 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xFF9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x10D0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10FB JUMPI PUSH2 0x10FB PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH2 0x1116 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x106D JUMPI PUSH2 0x106D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x114A JUMPI PUSH2 0x114A PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1164 JUMPI PUSH2 0x1164 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1170 DUP8 DUP3 DUP9 ADD PUSH2 0x10E6 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1192 JUMPI PUSH2 0x1192 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x119E DUP8 DUP3 DUP9 ADD PUSH2 0x10E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0xEC1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x11AA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x11EB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x11FD JUMPI PUSH2 0x11FD PUSH2 0x11C1 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1211 DUP3 DUP6 PUSH2 0x11AA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5E3 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0xEDB JUMP JUMPDEST DUP1 MLOAD PUSH2 0xC7B DUP2 PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x124B JUMPI PUSH2 0x124B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0x122B JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1265 DUP3 DUP7 PUSH2 0x11AA JUMP JUMPDEST PUSH2 0x1272 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11AA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1284 DUP2 DUP5 PUSH2 0xF72 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x436861696E4964206D757374206E6F74206265207A65726F0000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x128D JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0xFF9 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x12F1 DUP4 DUP6 DUP5 PUSH2 0xE5B JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0xF9C JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x130C DUP3 DUP7 PUSH2 0x12D1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1284 DUP2 DUP5 DUP7 PUSH2 0x12DB JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E70757420617272617973206D7573742068617665207468652073616D6520 DUP2 MSTORE PUSH6 0xD8CADCCEE8D PUSH1 0xD3 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x131F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x13A6 JUMPI PUSH2 0x13A6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH2 0x13C7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x13E2 JUMPI PUSH2 0x13E2 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xC7B DUP2 PUSH2 0x1223 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x140A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE87 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC7B PUSH2 0xFCB DUP4 DUP2 JUMP JUMPDEST PUSH2 0x1441 DUP4 PUSH2 0x142C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1469 DUP2 DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x466 JUMPI PUSH2 0x1481 PUSH1 0x0 DUP3 PUSH2 0x145C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x146E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1469 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x14B0 JUMPI POP DUP1 JUMPDEST PUSH2 0x6A5 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x146E JUMP JUMPDEST DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14DB JUMPI PUSH2 0x14DB PUSH2 0x1416 JUMP JUMPDEST PUSH2 0x14E5 DUP3 SLOAD PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0x14F0 DUP3 DUP3 DUP6 PUSH2 0x1489 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1524 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x150C JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1554 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1534 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1570 JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1597 DUP2 DUP6 DUP8 PUSH2 0x12DB JUMP JUMPDEST SWAP1 POP PUSH2 0xE87 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x10D0 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x15A6 JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 DUP2 MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x15FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH2 0xC7B JUMP JUMPDEST PUSH2 0xFF9 DUP2 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC7B DUP3 DUP5 PUSH2 0x1662 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0xE44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x1679 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E76616C696420616365737320636F6E74726F6C206D616E61676572206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x171B DUP3 DUP6 PUSH2 0x11AA JUMP JUMPDEST PUSH2 0x5E6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11AA JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 DUP3 PUSH1 0x14 DUP3 LT ISZERO PUSH2 0x1765 JUMPI PUSH2 0x1760 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP4 PUSH1 0x14 SUB PUSH1 0x8 MUL SHL SWAP1 JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 DUP2 MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x135E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xC7B DUP2 PUSH2 0x176D JUMP INVALID PUSH20 0x65745472757374656452656D6F74654164647265 PUSH20 0x732875696E7431362C627974657329A264697066 PUSH20 0x5822122064478B3481D2BAF49002998CE95C0B20 0xC2 COINBASE 0x1F PUSH15 0xF978775825123D11BEB2AB1264736F PUSH13 0x63430008190033000000000000 ","sourceMap":"732:5422:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:12;1921:17;1941:25;1958:7;;-1:-1:-1;;;;;;1958:7:43;1941:16;:25::i;:::-;1921:45;;1990:3;1984:17;2005:1;1984:22;1976:53;;;;-1:-1:-1;;;1976:53:43;;;;;;;:::i;:::-;;;;;;;;;2039:24;2059:3;2039:19;:24::i;:::-;2074:7;2083:16;2111:9;-1:-1:-1;;;;;2103:23:43;2127:4;;2103:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:59;;;;2150:2;2142:26;;;;-1:-1:-1;;;2142:26:43;;;;;;;:::i;:::-;732:5422;;;-1:-1:-1;732:5422:43;;;-1:-1:-1;;;;732:5422:43;2102:147:36;;;;;;:::i;:::-;;:::i;:::-;;1008:49:43;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;850:39;;;;;;;;;;;;:::i;5034:312::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4441:181::-;;;;;;:::i;:::-;;:::i;3314:894::-;;;;;;:::i;:::-;;:::i;2010:212:14:-;;;:::i;1441:85:15:-;1513:6;;-1:-1:-1;;;;;1513:6:15;1441:85;;;;;;;:::i;2558:376:43:-;;;;;;:::i;:::-;;:::i;2345:125:36:-;2442:21;;-1:-1:-1;;;;;2442:21:36;2345:125;;1515:135:43;;;;;;:::i;:::-;;:::i;1123:99:14:-;1202:13;;-1:-1:-1;;;;;1202:13:14;1123:99;;1415:178;;;;;;:::i;:::-;;:::i;5719:135:43:-;-1:-1:-1;;;;;;5819:28:43;;;;;;:16;:28;;;;;5812:35;;5787:13;;5819:28;5812:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5719:135;;;:::o;3203:282:36:-;3304:21;;:60;;-1:-1:-1;;;3304:60:36;;3281:20;;-1:-1:-1;;;;;3304:21:36;;:37;;:60;;3342:10;;3354:9;;3304:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3281:83;;3380:15;3375:104;;3431:10;3451:4;3458:9;3418:50;;-1:-1:-1;;;3418:50:36;;;;;;;;;;:::i;3375:104::-;3271:214;3203:282;:::o;2102:147::-;1334:13:15;:11;:13::i;:::-;2195:47:36::1;2220:21;2195:24;:47::i;:::-;2102:147:::0;:::o;1008:49:43:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5034:312::-;5131:4;5155:14;:19;;5173:1;5155:19;5147:56;;;;-1:-1:-1;;;5147:56:43;;;;;;;:::i;:::-;5213:52;5234:30;5249:14;;5234;:30::i;:::-;5213:20;:52::i;:::-;5282:57;;-1:-1:-1;;;5282:57:43;;-1:-1:-1;;;;;5282:9:43;:25;;;;:57;;5308:14;;5324;;;;5282:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5275:64;;5034:312;;;;;;:::o;4441:181::-;4512:55;;;;;;;;;;;;;;;;;;:19;:55::i;:::-;4577:38;;-1:-1:-1;;;4577:38:43;;-1:-1:-1;;;;;4577:9:43;:27;;;;:38;;4605:9;;4577:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4441:181;:::o;3314:894::-;1334:13:15;:11;:13::i;:::-;3450:11:43;3486:33;;::::1;3478:84;;;;-1:-1:-1::0;;;3478:84:43::1;;;;;;;:::i;:::-;3577:9;3572:630;3592:15;3588:1;:19;3572:630;;;3625:14;3665:11;;3677:1;3665:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3649:32;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;-1:-1:-1;;;;;;3727:25:43;::::1;3696:22;3727:25:::0;;;:16:::1;:25;::::0;;;;3696:57;;3649:32;;-1:-1:-1;3727:25:43;3696:57:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3771:7;;3779:1;3771:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;:35;;;;-1:-1:-1::0;3785:16:43;;:21;3771:35:::1;3767:366;;;3854:11;;3866:1;3854:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;3826:25:43;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:42:::1;::::0;;:25;:42:::1;:::i;:::-;;3891:45;3915:11;;3927:1;3915:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3931:4;3891:45;;;;;;;;:::i;:::-;;;;;;;;3767:366;;;3962:7;;3970:1;3962:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3961:11;:36;;;;-1:-1:-1::0;3976:16:43;;:21;::::1;3961:36;3957:176;;;-1:-1:-1::0;;;;;;4024:25:43;::::1;;::::0;;;:16:::1;:25;::::0;;;;4017:32:::1;::::0;::::1;:::i;:::-;4072:46;4096:11;;4108:1;4096:14;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4112:5;4072:46;;;;;;;;:::i;:::-;;;;;;;;3957:176;-1:-1:-1::0;;4174:3:43::1;;3572:630;;;;3414:794;3314:894:::0;;;;:::o;5453:47::-;:::o;2010:212:14:-;1202:13;;929:10:18;;-1:-1:-1;;;;;1202:13:14;2109:24;;2101:78;;;;-1:-1:-1;;;2101:78:14;;;;;;;:::i;:::-;2189:26;2208:6;2189:18;:26::i;2558:376:43:-;2664:60;;;;;;;;;;;;;;;;;;:19;:60::i;:::-;2742:14;:19;;2760:1;2742:19;2734:56;;;;-1:-1:-1;;;2734:56:43;;;;;;;:::i;:::-;2800:52;2821:30;2836:14;;2821;:30::i;2800:52::-;2862:65;;-1:-1:-1;;;2862:65:43;;-1:-1:-1;;;;;2862:9:43;:33;;;;:65;;2896:14;;2912;;;;2862:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2558:376;;;:::o;1515:135::-;3279:19:16;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:16;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:16;1713:19:17;:23;;;3387:66:16;;-1:-1:-1;3436:12:16;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:16;;;;;;;:::i;:::-;3536:12;:16;;-1:-1:-1;;3536:16:16;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:16;;;;;3562:65;1597:46:43::1;1621:21;1597:23;:46::i;:::-;3651:14:16::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:16;;;3721:14;;;;;;3681:13;;3721:14;:::i;:::-;;;;;;;;3269:483;1515:135:43;:::o;1415:178:14:-;1334:13:15;:11;:13::i;:::-;1504::14::1;:24:::0;;-1:-1:-1;;;;;1504:24:14;::::1;-1:-1:-1::0;;;;;;1504:24:14;;::::1;::::0;::::1;::::0;;;1568:7:::1;1513:6:15::0;;-1:-1:-1;;;;;1513:6:15;;1441:85;1568:7:14::1;-1:-1:-1::0;;;;;1543:43:14::1;;;;;;;;;;;1415:178:::0;:::o;1599:130:15:-;1513:6;;-1:-1:-1;;;;;1513:6:15;929:10:18;1662:23:15;1654:68;;;;-1:-1:-1;;;1654:68:15;;;;;;;:::i;2641:425:36:-;-1:-1:-1;;;;;2733:44:36;;2725:94;;;;-1:-1:-1;;;2725:94:36;;;;;;;:::i;:::-;2871:21;;;-1:-1:-1;;;;;2903:70:36;;;-1:-1:-1;;;;;;2903:70:36;;;;;;2988:71;;2871:21;;;2988:71;;;;2871:21;;2951;;2988:71;:::i;6027:125:43:-;6091:7;6133:10;6141:1;;6133:10;:::i;:::-;6125:19;;6110:35;;6027:125;;;;;:::o;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;1777:153:14;1866:13;1859:20;;-1:-1:-1;;;;;;1859:20:14;;;1889:34;1914:8;1889:24;:34::i;1419:194:36:-;5374:13:16;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:16;;;;;;;:::i;:::-;1519:21:36::1;:19;:21::i;:::-;1550:56;1584:21;1550:33;:56::i;2666:187:15:-:0;2758:6;;;-1:-1:-1;;;;;2774:17:15;;;-1:-1:-1;;;;;;2774:17:15;;;;;;;2806:40;;2758:6;;;2774:17;2758:6;;2806:40;;2739:16;;2806:40;2729:124;2666:187;:::o;738:100:14:-;5374:13:16;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:16;;;;;;;:::i;:::-;805:26:14::1;:24;:26::i;1619:164:36:-:0;5374:13:16;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:16;;;;;;;:::i;1104:111:15:-;5374:13:16;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:16;;;;;;;:::i;:::-;1176:32:15::1;929:10:18::0;1176:18:15::1;:32::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;356:366:65:-;583:2;113:19;;498:3;165:4;156:14;;-1:-1:-1;;;299:44:65;;512:74;-1:-1:-1;595:93:65;-1:-1:-1;713:2:65;704:12;;356:366::o;728:419::-;932:2;945:47;;;917:18;;1009:131;917:18;1009:131;:::i;1306:148::-;1404:6;1399:3;1394;1381:30;-1:-1:-1;1445:1:65;1427:16;;1420:27;1306:148::o;1482:327::-;1596:3;1715:56;1764:6;1759:3;1752:5;1715:56;:::i;:::-;-1:-1:-1;;1787:16:65;;1482:327::o;1815:291::-;1955:3;1977:103;2076:3;2067:6;2059;1977:103;:::i;:::-;1970:110;1815:291;-1:-1:-1;;;;1815:291:65:o;2279:366::-;2506:2;113:19;;2421:3;165:4;156:14;;-1:-1:-1;;;2229:37:65;;2435:74;-1:-1:-1;2518:93:65;2112:161;2651:419;2855:2;2868:47;;;2840:18;;2932:131;2840:18;2932:131;:::i;3535:96::-;3572:7;-1:-1:-1;;;;;3469:54:65;;3601:24;3403:126;3637:122;3710:24;3728:5;3710:24;:::i;:::-;3703:5;3700:35;3690:63;;3749:1;3746;3739:12;3765:139;3836:20;;3865:33;3836:20;3865:33;:::i;3910:329::-;3969:6;4018:2;4006:9;3997:7;3993:23;3989:32;3986:119;;;4024:79;3266:1;3263;3256:12;4024:79;4144:1;4169:53;4214:7;4194:9;4169:53;:::i;4400:120::-;-1:-1:-1;;;;;;4310:78:65;;4472:23;4245:149;4526:137;4596:20;;4625:32;4596:20;4625:32;:::i;4669:327::-;4727:6;4776:2;4764:9;4755:7;4751:23;4747:32;4744:119;;;4782:79;3266:1;3263;3256:12;4782:79;4902:1;4927:52;4971:7;4951:9;4927:52;:::i;5107:248::-;5189:1;5199:113;5213:6;5210:1;5207:13;5199:113;;;5289:11;;;5283:18;5270:11;;;5263:39;5235:2;5228:10;5199:113;;;-1:-1:-1;;5346:1:65;5328:16;;5321:27;5107:248::o;5469:377::-;5557:3;5585:39;5618:5;5082:12;;5002:99;5585:39;113:19;;;165:4;156:14;;5633:78;;5720:65;5778:6;5773:3;5766:4;5759:5;5755:16;5720:65;:::i;:::-;-1:-1:-1;;5453:2:65;5433:14;;5429:28;5810:29;5801:39;;;;5469:377;-1:-1:-1;;;5469:377:65:o;5852:313::-;6003:2;6016:47;;;5988:18;;6080:78;5988:18;6144:6;6080:78;:::i;6237:142::-;6287:9;6320:53;-1:-1:-1;;;;;3469:54:65;;6338:34;6171:60;6347:24;6220:5;6171:60;6338:34;-1:-1:-1;;;;;3469:54:65;;3403:126;6385;6435:9;6468:37;6499:5;6468:37;:::i;6517:148::-;6589:9;6622:37;6653:5;6622:37;:::i;6671:175::-;6780:59;6833:5;6780:59;:::i;:::-;6775:3;6768:72;6671:175;;:::o;6852:266::-;7005:2;6990:18;;7018:93;6994:9;7084:6;7018:93;:::i;7219:120::-;7200:6;7189:18;;7291:23;7124:89;7345:137;7415:20;;7444:32;7415:20;7444:32;:::i;7870:552::-;7927:8;7937:6;7987:3;7980:4;7972:6;7968:17;7964:27;7954:122;;7995:79;3266:1;3263;3256:12;7995:79;-1:-1:-1;8095:20:65;;8138:18;8127:30;;8124:117;;;8160:79;3266:1;3263;3256:12;8160:79;8274:4;8266:6;8262:17;8250:29;;8328:3;8320:4;8312:6;8308:17;8298:8;8294:32;8291:41;8288:128;;;8335:79;3266:1;3263;3256:12;8335:79;7870:552;;;;;:::o;8428:670::-;8506:6;8514;8522;8571:2;8559:9;8550:7;8546:23;8542:32;8539:119;;;8577:79;3266:1;3263;3256:12;8577:79;8697:1;8722:52;8766:7;8746:9;8722:52;:::i;:::-;8712:62;;8668:116;8851:2;8840:9;8836:18;8823:32;8882:18;8874:6;8871:30;8868:117;;;8904:79;3266:1;3263;3256:12;8904:79;9017:64;9073:7;9064:6;9053:9;9049:22;9017:64;:::i;:::-;8999:82;;;;8794:297;8428:670;;;;;:::o;9200:109::-;9174:13;;9167:21;9281;9104:90;9315:210;9440:2;9425:18;;9453:65;9429:9;9491:6;9453:65;:::i;9547:580::-;9632:8;9642:6;9692:3;9685:4;9677:6;9673:17;9669:27;9659:122;;9700:79;3266:1;3263;3256:12;9700:79;-1:-1:-1;9800:20:65;;9843:18;9832:30;;9829:117;;;9865:79;3266:1;3263;3256:12;9865:79;9979:4;9971:6;9967:17;9955:29;;10033:3;10025:4;10017:6;10013:17;10003:8;9999:32;9996:41;9993:128;;;10040:79;3266:1;3263;3256:12;10718:952;10849:6;10857;10865;10873;10922:2;10910:9;10901:7;10897:23;10893:32;10890:119;;;10928:79;3266:1;3263;3256:12;10928:79;11048:31;;11106:18;11095:30;;11092:117;;;11128:79;3266:1;3263;3256:12;11128:79;11241:92;11325:7;11316:6;11305:9;11301:22;11241:92;:::i;:::-;11223:110;;;;11019:324;11410:2;11399:9;11395:18;11382:32;11441:18;11433:6;11430:30;11427:117;;;11463:79;3266:1;3263;3256:12;11463:79;11576:77;11645:7;11636:6;11625:9;11621:22;11576:77;:::i;:::-;10718:952;;;;-1:-1:-1;11558:95:65;-1:-1:-1;;;;10718:952:65:o;11676:118::-;11763:24;11781:5;11763:24;:::i;11800:222::-;11931:2;11916:18;;11944:71;11920:9;11988:6;11944:71;:::i;12685:180::-;-1:-1:-1;;;12730:1:65;12723:88;12830:4;12827:1;12820:15;12854:4;12851:1;12844:15;12871:320;12952:1;12942:12;;12999:1;12989:12;;;13010:81;;13076:4;13068:6;13064:17;13054:27;;13010:81;13138:2;13130:6;13127:14;13107:18;13104:38;13101:84;;13157:18;;:::i;:::-;12922:269;12871:320;;;:::o;13197:423::-;13376:2;13361:18;;13389:71;13365:9;13433:6;13389:71;:::i;:::-;13507:9;13501:4;13497:20;13492:2;13481:9;13477:18;13470:48;13535:78;13608:4;13599:6;13535:78;:::i;13626:116::-;9174:13;;9167:21;13696;9104:90;13748:137;13827:13;;13849:30;13827:13;13849:30;:::i;13891:345::-;13958:6;14007:2;13995:9;13986:7;13982:23;13978:32;13975:119;;;14013:79;3266:1;3263;3256:12;14013:79;14133:1;14158:61;14211:7;14191:9;14158:61;:::i;14242:533::-;14449:2;14434:18;;14462:71;14438:9;14506:6;14462:71;:::i;:::-;14543:72;14611:2;14600:9;14596:18;14587:6;14543:72;:::i;:::-;14662:9;14656:4;14652:20;14647:2;14636:9;14632:18;14625:48;14690:78;14763:4;14754:6;14690:78;:::i;:::-;14682:86;14242:533;-1:-1:-1;;;;;14242:533:65:o;14961:366::-;15188:2;113:19;;15103:3;165:4;156:14;;14921:26;14898:50;;15117:74;-1:-1:-1;15200:93:65;14781:174;15333:419;15537:2;15550:47;;;15522:18;;15614:131;15522:18;15614:131;:::i;15758:115::-;7200:6;7189:18;;15843:23;7124:89;16075:314;113:19;;;16171:3;165:4;156:14;;16185:77;;16272:56;16321:6;16316:3;16309:5;16272:56;:::i;:::-;-1:-1:-1;;5453:2:65;5433:14;;5429:28;16353:29;5361:102;16395:435;16580:2;16565:18;;16593:69;16569:9;16635:6;16593:69;:::i;:::-;16709:9;16703:4;16699:20;16694:2;16683:9;16679:18;16672:48;16737:86;16818:4;16809:6;16801;16737:86;:::i;17067:366::-;17294:2;113:19;;17209:3;165:4;156:14;;16976:34;16953:58;;-1:-1:-1;;;17040:2:65;17028:15;;17021:33;17223:74;-1:-1:-1;17306:93:65;-1:-1:-1;17424:2:65;17415:12;;17067:366::o;17439:419::-;17643:2;17656:47;;;17628:18;;17720:131;17628:18;17720:131;:::i;17864:180::-;-1:-1:-1;;;17909:1:65;17902:88;18009:4;18006:1;17999:15;18033:4;18030:1;18023:15;18419:725;18497:4;;18546:25;;-1:-1:-1;;18622:14:65;18618:29;;;18614:48;18590:73;;18580:168;;18667:79;3266:1;3263;3256:12;18667:79;18779:18;18769:8;18765:33;18757:41;;18831:4;18818:18;18808:28;;18859:18;18851:6;18848:30;18845:117;;;18881:79;3266:1;3263;3256:12;18881:79;18989:2;18983:4;18979:13;18971:21;;19046:4;19038:6;19034:17;19018:14;19014:38;19008:4;19004:49;19001:136;;;19056:79;3266:1;3263;3256:12;19056:79;18510:634;18419:725;;;;;:::o;19150:133::-;19218:20;;19247:30;19218:20;19247:30;:::i;19289:323::-;19345:6;19394:2;19382:9;19373:7;19369:23;19365:32;19362:119;;;19400:79;3266:1;3263;3256:12;19400:79;19520:1;19545:50;19587:7;19567:9;19545:50;:::i;19721:180::-;-1:-1:-1;;;19766:1:65;19759:88;19866:4;19863:1;19856:15;19890:4;19887:1;19880:15;20748:142;20798:9;20831:53;20849:34;20876:5;20849:34;6171:60;20977:269;21087:39;21118:7;21087:39;:::i;:::-;21176:11;;-1:-1:-1;;20385:1:65;20369:18;;;;20237:16;;;20594:9;20583:21;20237:16;;20623:30;;;;21135:105;;-1:-1:-1;20977:269:65:o;21331:189::-;21297:3;21449:65;21507:6;21499;21493:4;21449:65;:::i;:::-;21384:136;21331:189;;:::o;21526:186::-;21603:3;21596:5;21593:14;21586:120;;;21657:39;21694:1;21687:5;21657:39;:::i;:::-;21630:1;21619:13;21586:120;;21718:543;21819:2;21814:3;21811:11;21808:446;;;19956:4;19992:14;;;20036:4;20023:18;;20138:2;20133;20122:14;;20118:23;21927:8;21923:44;22120:2;22108:10;22105:18;22102:49;;;-1:-1:-1;22141:8:65;22102:49;22164:80;20138:2;20133;20122:14;;20118:23;22210:8;22206:37;22193:11;22164:80;:::i;22864:1403::-;23028:3;23097:18;23089:6;23086:30;23083:56;;;23119:18;;:::i;:::-;23163:38;23195:4;23189:11;23163:38;:::i;:::-;23248:67;23308:6;23300;23294:4;23248:67;:::i;:::-;23342:1;23371:2;23363:6;23360:14;23388:1;23383:632;;;;24059:1;24076:6;24073:84;;;-1:-1:-1;24123:19:65;;;24110:33;24073:84;-1:-1:-1;;22500:1:65;22496:13;;22361:16;22463:56;22538:15;;22845:1;22841:11;;22832:21;24177:4;24170:81;24032:229;23353:908;;23383:632;19956:4;19992:14;;;20036:4;20023:18;;-1:-1:-1;;23419:22:65;;;23542:215;23556:7;23553:1;23550:14;23542:215;;;23633:19;;;23620:33;23605:49;;23740:2;23725:18;;;;23693:1;23681:14;;;;23572:12;23542:215;;;23785:6;23776:7;23773:19;23770:186;;;-1:-1:-1;;23935:4:65;23923:17;;22500:1;22496:13;22361:16;22463:56;23841:19;;;23828:33;22538:15;23878:64;;23770:186;24002:1;23998;23990:6;23986:14;23982:22;23976:4;23969:36;23390:625;;;23353:908;22963:1304;;;22864:1403;;;:::o;24620:431::-;24803:2;24816:47;;;24788:18;;24880:88;24788:18;24954:6;24946;24880:88;:::i;:::-;24872:96;;24978:66;25040:2;25029:9;25025:18;25016:6;24978:66;:::i;25291:366::-;25518:2;113:19;;25433:3;165:4;156:14;;25197:34;25174:58;;-1:-1:-1;;;25261:2:65;25249:15;;25242:36;25447:74;-1:-1:-1;25530:93:65;25057:228;25663:419;25867:2;25880:47;;;25852:18;;25944:131;25852:18;25944:131;:::i;26327:366::-;26554:2;113:19;;26469:3;165:4;156:14;;26228:34;26205:58;;-1:-1:-1;;;26292:2:65;26280:15;;26273:41;26483:74;-1:-1:-1;26566:93:65;26088:233;26699:419;26903:2;26916:47;;;26888:18;;26980:131;26888:18;26980:131;:::i;27307:154::-;27363:9;27290:4;27279:16;;27396:59;27215:86;27467:143;27560:43;27597:5;27560:43;:::i;27616:234::-;27753:2;27738:18;;27766:77;27742:9;27816:6;27766:77;:::i;28044:366::-;28271:2;113:19;;;27996:34;156:14;;27973:58;;;28186:3;28283:93;27856:182;28416:419;28620:2;28633:47;;;28605:18;;28697:131;28605:18;28697:131;:::i;29071:366::-;29298:2;113:19;;29213:3;165:4;156:14;;28981:34;28958:58;;-1:-1:-1;;;29045:2:65;29033:15;;29026:32;29227:74;-1:-1:-1;29310:93:65;28841:224;29443:419;29647:2;29660:47;;;29632:18;;29724:131;29632:18;29724:131;:::i;29868:332::-;30027:2;30012:18;;30040:71;30016:9;30084:6;30040:71;:::i;:::-;30121:72;30189:2;30178:9;30174:18;30165:6;30121:72;:::i;30556:552::-;30790:22;;-1:-1:-1;;30466:78:65;30719:3;30748:5;30837:2;30826:14;;30823:278;;;30908:169;-1:-1:-1;;30963:6:65;30959:2;30955:15;30952:1;30948:23;20237:16;;20153:107;30908:169;30885:5;30864:227;30855:236;;30823:278;30653:455;;30556:552;;;;:::o;31350:366::-;31577:2;113:19;;31492:3;165:4;156:14;;31254:34;31231:58;;-1:-1:-1;;;31318:2:65;31306:15;;31299:38;31506:74;-1:-1:-1;31589:93:65;31114:230;31722:419;31926:2;31939:47;;;31911:18;;32003:131;31911:18;32003:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1235200","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","XVSBridge()":"infinite","acceptOwnership()":"infinite","accessControlManager()":"infinite","functionRegistry(bytes4)":"infinite","initialize(address)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","owner()":"infinite","pendingOwner()":"infinite","renounceOwnership()":"209","setAccessControlManager(address)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","transferBridgeOwnership(address)":"infinite","transferOwnership(address)":"infinite","upsertSignature(string[],bool[])":"infinite"},"internal":{"_getFunctionName(bytes4)":"infinite","bytesToAddress(bytes calldata)":"177"}},"methodIdentifiers":{"XVSBridge()":"27a020ef","acceptOwnership()":"79ba5097","accessControlManager()":"b4a0bdf3","functionRegistry(bytes4)":"180d295c","initialize(address)":"c4d66de8","isTrustedRemote(uint16,bytes)":"3d8b38f6","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferBridgeOwnership(address)":"3f90b540","transferOwnership(address)":"f2fde38b","upsertSignature(string[],bool[])":"4bb7453e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"XVSBridge_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"calledContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"methodSignature\",\"type\":\"string\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"FunctionRegistryChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"XVSBridge\",\"outputs\":[{\"internalType\":\"contract IXVSProxyOFT\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"contract IAccessControlManagerV8\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"functionRegistry\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"remoteAddress_\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"remoteAddress_\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner_\",\"type\":\"address\"}],\"name\":\"transferBridgeOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"signatures_\",\"type\":\"string[]\"},{\"internalType\":\"bool[]\",\"name\":\"active_\",\"type\":\"bool[]\"}],\"name\":\"upsertSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"params\":{\"accessControlManager_\":\"Address of access control manager contract.\"}},\"isTrustedRemote(uint16,bytes)\":{\"custom:error\":\"ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\",\"params\":{\"remoteAddress_\":\"Address of the destination bridge.\",\"remoteChainId_\":\"Chain Id of the destination chain.\"},\"returns\":{\"_0\":\"Bool indicating whether the remote chain is trusted or not.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only Governance\",\"custom:event\":\"Emits NewAccessControlManager event\",\"details\":\"Admin function to set address of AccessControlManager\",\"params\":{\"accessControlManager_\":\"The new address of the AccessControlManager\"}},\"setTrustedRemoteAddress(uint16,bytes)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:error\":\"ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\",\"params\":{\"remoteAddress_\":\"Address of the destination bridge.\",\"remoteChainId_\":\"Chain Id of the destination chain.\"}},\"transferBridgeOwnership(address)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"params\":{\"newOwner_\":\"New owner of the XVS Bridge.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"upsertSignature(string[],bool[])\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits FunctionRegistryChanged if bool value of function changes.\",\"params\":{\"active_\":\"bool value, should be true to add function.\",\"signatures_\":\"Function signature to be added or removed.\"}}},\"stateVariables\":{\"XVSBridge\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"XVSBridgeAdmin\",\"version\":1},\"userdoc\":{\"errors\":{\"Unauthorized(address,address,string)\":[{\"notice\":\"Thrown when the action is prohibited by AccessControlManager\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"FunctionRegistryChanged(string,bool)\":{\"notice\":\"emitted when function registry updated\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when access control manager contract address is changed\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Returns the address of the access control manager contract\"},\"functionRegistry(bytes4)\":{\"notice\":\"A mapping keeps track of function signature associated with function name string.\"},\"isTrustedRemote(uint16,bytes)\":{\"notice\":\"Returns true if remote address is trustedRemote corresponds to chainId_.\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening.\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of AccessControlManager\"},\"setTrustedRemoteAddress(uint16,bytes)\":{\"notice\":\"Sets trusted remote on particular chain.\"},\"transferBridgeOwnership(address)\":{\"notice\":\"This function transfers the ownership of the bridge from this contract to new owner.\"},\"upsertSignature(string[],bool[])\":{\"notice\":\"A setter for the registry of functions that are allowed to be executed from proposals.\"}},\"notice\":\"The XVSBridgeAdmin contract extends a parent contract AccessControlledV8 for access control, and it manages an external contract called XVSProxyOFT. It maintains a registry of function signatures and names, allowing for dynamic function handling i.e checking of access control of interaction with only owner functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/XVSBridgeAdmin.sol\":\"XVSBridgeAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OwnableUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership} and {acceptOwnership}.\\n *\\n * This module is used through inheritance. It will make available all functions\\n * from parent (Ownable).\\n */\\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\\n    function __Ownable2Step_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\\n    }\\n    address private _pendingOwner;\\n\\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Returns the address of the pending owner.\\n     */\\n    function pendingOwner() public view virtual returns (address) {\\n        return _pendingOwner;\\n    }\\n\\n    /**\\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\\n        _pendingOwner = newOwner;\\n        emit OwnershipTransferStarted(owner(), newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual override {\\n        delete _pendingOwner;\\n        super._transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev The new owner accepts the ownership transfer.\\n     */\\n    function acceptOwnership() public virtual {\\n        address sender = _msgSender();\\n        require(pendingOwner() == sender, \\\"Ownable2Step: caller is not the new owner\\\");\\n        _transferOwnership(sender);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x84efb8889801b0ac817324aff6acc691d07bbee816b671817132911d287a8c63\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/ContextUpgradeable.sol\\\";\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    function __Ownable_init() internal onlyInitializing {\\n        __Ownable_init_unchained();\\n    }\\n\\n    function __Ownable_init_unchained() internal onlyInitializing {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n}\\n\",\"keccak256\":\"0x4075622496acc77fd6d4de4cc30a8577a744d5c75afad33fdeacf1704d6eda98\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../../utils/AddressUpgradeable.sol\\\";\\n\\n/**\\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\\n *\\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\\n * reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in\\n * case an upgrade adds a module that needs to be initialized.\\n *\\n * For example:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```solidity\\n * contract MyToken is ERC20Upgradeable {\\n *     function initialize() initializer public {\\n *         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");\\n *     }\\n * }\\n *\\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\\n *     function initializeV2() reinitializer(2) public {\\n *         __ERC20Permit_init(\\\"MyToken\\\");\\n *     }\\n * }\\n * ```\\n *\\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\\n *\\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\\n *\\n * [CAUTION]\\n * ====\\n * Avoid leaving a contract uninitialized.\\n *\\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\\n *\\n * [.hljs-theme-light.nopadding]\\n * ```\\n * /// @custom:oz-upgrades-unsafe-allow constructor\\n * constructor() {\\n *     _disableInitializers();\\n * }\\n * ```\\n * ====\\n */\\nabstract contract Initializable {\\n    /**\\n     * @dev Indicates that the contract has been initialized.\\n     * @custom:oz-retyped-from bool\\n     */\\n    uint8 private _initialized;\\n\\n    /**\\n     * @dev Indicates that the contract is in the process of being initialized.\\n     */\\n    bool private _initializing;\\n\\n    /**\\n     * @dev Triggered when the contract has been initialized or reinitialized.\\n     */\\n    event Initialized(uint8 version);\\n\\n    /**\\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\\n     * `onlyInitializing` functions can be used to initialize parent contracts.\\n     *\\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\\n     * constructor.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier initializer() {\\n        bool isTopLevelCall = !_initializing;\\n        require(\\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\\n            \\\"Initializable: contract is already initialized\\\"\\n        );\\n        _initialized = 1;\\n        if (isTopLevelCall) {\\n            _initializing = true;\\n        }\\n        _;\\n        if (isTopLevelCall) {\\n            _initializing = false;\\n            emit Initialized(1);\\n        }\\n    }\\n\\n    /**\\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\\n     * used to initialize parent contracts.\\n     *\\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\\n     * are added through upgrades and that require initialization.\\n     *\\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\\n     *\\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\\n     * a contract, executing them in the right order is up to the developer or operator.\\n     *\\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\\n     *\\n     * Emits an {Initialized} event.\\n     */\\n    modifier reinitializer(uint8 version) {\\n        require(!_initializing && _initialized < version, \\\"Initializable: contract is already initialized\\\");\\n        _initialized = version;\\n        _initializing = true;\\n        _;\\n        _initializing = false;\\n        emit Initialized(version);\\n    }\\n\\n    /**\\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\\n     */\\n    modifier onlyInitializing() {\\n        require(_initializing, \\\"Initializable: contract is not initializing\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\\n     * through proxies.\\n     *\\n     * Emits an {Initialized} event the first time it is successfully executed.\\n     */\\n    function _disableInitializers() internal virtual {\\n        require(!_initializing, \\\"Initializable: contract is initializing\\\");\\n        if (_initialized != type(uint8).max) {\\n            _initialized = type(uint8).max;\\n            emit Initialized(type(uint8).max);\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\\n     */\\n    function _getInitializedVersion() internal view returns (uint8) {\\n        return _initialized;\\n    }\\n\\n    /**\\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\\n     */\\n    function _isInitializing() internal view returns (bool) {\\n        return _initializing;\\n    }\\n}\\n\",\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary AddressUpgradeable {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\"},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\nimport \\\"../proxy/utils/Initializable.sol\\\";\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract ContextUpgradeable is Initializable {\\n    function __Context_init() internal onlyInitializing {\\n    }\\n\\n    function __Context_init_unchained() internal onlyInitializing {\\n    }\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[50] private __gap;\\n}\\n\",\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport \\\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\\\";\\nimport \\\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\\\";\\n\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlledV8\\n * @author Venus\\n * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)\\n * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.\\n */\\nabstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {\\n    /// @notice Access control manager contract\\n    IAccessControlManagerV8 internal _accessControlManager;\\n\\n    /**\\n     * @dev This empty reserved space is put in place to allow future versions to add new\\n     * variables without shifting down storage in the inheritance chain.\\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\\n     */\\n    uint256[49] private __gap;\\n\\n    /// @notice Emitted when access control manager contract address is changed\\n    event NewAccessControlManager(address oldAccessControlManager, address newAccessControlManager);\\n\\n    /// @notice Thrown when the action is prohibited by AccessControlManager\\n    error Unauthorized(address sender, address calledContract, string methodSignature);\\n\\n    function __AccessControlled_init(address accessControlManager_) internal onlyInitializing {\\n        __Ownable2Step_init();\\n        __AccessControlled_init_unchained(accessControlManager_);\\n    }\\n\\n    function __AccessControlled_init_unchained(address accessControlManager_) internal onlyInitializing {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of AccessControlManager\\n     * @dev Admin function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     * @custom:event Emits NewAccessControlManager event\\n     * @custom:access Only Governance\\n     */\\n    function setAccessControlManager(address accessControlManager_) external onlyOwner {\\n        _setAccessControlManager(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Returns the address of the access control manager contract\\n     */\\n    function accessControlManager() external view returns (IAccessControlManagerV8) {\\n        return _accessControlManager;\\n    }\\n\\n    /**\\n     * @dev Internal function to set address of AccessControlManager\\n     * @param accessControlManager_ The new address of the AccessControlManager\\n     */\\n    function _setAccessControlManager(address accessControlManager_) internal {\\n        require(address(accessControlManager_) != address(0), \\\"invalid acess control manager address\\\");\\n        address oldAccessControlManager = address(_accessControlManager);\\n        _accessControlManager = IAccessControlManagerV8(accessControlManager_);\\n        emit NewAccessControlManager(oldAccessControlManager, accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Reverts if the call is not allowed by AccessControlManager\\n     * @param signature Method signature\\n     */\\n    function _checkAccessAllowed(string memory signature) internal view {\\n        bool isAllowedToCall = _accessControlManager.isAllowedToCall(msg.sender, signature);\\n\\n        if (!isAllowedToCall) {\\n            revert Unauthorized(msg.sender, address(this), signature);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe0fd441c84ac907cabc88db69ef04f6d7532d770c7e6a1dfe6e7d6305debb49\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/XVSBridgeAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { AccessControlledV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { IXVSProxyOFT } from \\\"./interfaces/IXVSProxyOFT.sol\\\";\\n\\n/**\\n * @title XVSBridgeAdmin\\n * @author Venus\\n * @notice The XVSBridgeAdmin contract extends a parent contract AccessControlledV8 for access control, and it manages an external contract called XVSProxyOFT.\\n * It maintains a registry of function signatures and names,\\n * allowing for dynamic function handling i.e checking of access control of interaction with only owner functions.\\n */\\ncontract XVSBridgeAdmin is AccessControlledV8 {\\n    /// @custom:oz-upgrades-unsafe-allow state-variable-immutable\\n    IXVSProxyOFT public immutable XVSBridge;\\n    /**\\n     * @notice A mapping keeps track of function signature associated with function name string.\\n     */\\n    mapping(bytes4 => string) public functionRegistry;\\n\\n    /**\\n     * @notice emitted when function registry updated\\n     */\\n    event FunctionRegistryChanged(string signature, bool active);\\n\\n    /// @custom:oz-upgrades-unsafe-allow constructor\\n    constructor(address XVSBridge_) {\\n        ensureNonzeroAddress(XVSBridge_);\\n        XVSBridge = IXVSProxyOFT(XVSBridge_);\\n        _disableInitializers();\\n    }\\n\\n    /**\\n     * @param accessControlManager_ Address of access control manager contract.\\n     */\\n    function initialize(address accessControlManager_) external initializer {\\n        __AccessControlled_init(accessControlManager_);\\n    }\\n\\n    /**\\n     * @notice Invoked when called function does not exist in the contract.\\n     * @return Response of low level call.\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    fallback(bytes calldata data) external returns (bytes memory) {\\n        string memory fun = _getFunctionName(msg.sig);\\n        require(bytes(fun).length != 0, \\\"Function not found\\\");\\n        _checkAccessAllowed(fun);\\n        (bool ok, bytes memory res) = address(XVSBridge).call(data);\\n        require(ok, \\\"call failed\\\");\\n        return res;\\n    }\\n\\n    /**\\n     * @notice Sets trusted remote on particular chain.\\n     * @param remoteChainId_ Chain Id of the destination chain.\\n     * @param remoteAddress_ Address of the destination bridge.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\\n     */\\n    function setTrustedRemoteAddress(uint16 remoteChainId_, bytes calldata remoteAddress_) external {\\n        _checkAccessAllowed(\\\"setTrustedRemoteAddress(uint16,bytes)\\\");\\n        require(remoteChainId_ != 0, \\\"ChainId must not be zero\\\");\\n        ensureNonzeroAddress(bytesToAddress(remoteAddress_));\\n        XVSBridge.setTrustedRemoteAddress(remoteChainId_, remoteAddress_);\\n    }\\n\\n    /**\\n     * @notice A setter for the registry of functions that are allowed to be executed from proposals.\\n     * @param signatures_  Function signature to be added or removed.\\n     * @param active_ bool value, should be true to add function.\\n     * @custom:access Only owner.\\n     * @custom:event Emits FunctionRegistryChanged if bool value of function changes.\\n     */\\n    function upsertSignature(string[] calldata signatures_, bool[] calldata active_) external onlyOwner {\\n        uint256 signatureLength = signatures_.length;\\n        require(signatureLength == active_.length, \\\"Input arrays must have the same length\\\");\\n        for (uint256 i; i < signatureLength; ) {\\n            bytes4 sigHash = bytes4(keccak256(bytes(signatures_[i])));\\n            bytes memory signature = bytes(functionRegistry[sigHash]);\\n            if (active_[i] && signature.length == 0) {\\n                functionRegistry[sigHash] = signatures_[i];\\n                emit FunctionRegistryChanged(signatures_[i], true);\\n            } else if (!active_[i] && signature.length != 0) {\\n                delete functionRegistry[sigHash];\\n                emit FunctionRegistryChanged(signatures_[i], false);\\n            }\\n            unchecked {\\n                ++i;\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @notice This function transfers the ownership of the bridge from this contract to new owner.\\n     * @param newOwner_ New owner of the XVS Bridge.\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    function transferBridgeOwnership(address newOwner_) external {\\n        _checkAccessAllowed(\\\"transferBridgeOwnership(address)\\\");\\n        XVSBridge.transferOwnership(newOwner_);\\n    }\\n\\n    /**\\n     * @notice Returns true if remote address is trustedRemote corresponds to chainId_.\\n     * @param remoteChainId_ Chain Id of the destination chain.\\n     * @param remoteAddress_ Address of the destination bridge.\\n     * @custom:error ZeroAddressNotAllowed is thrown when remoteAddress_ contract address is zero.\\n     * @return Bool indicating whether the remote chain is trusted or not.\\n     */\\n    function isTrustedRemote(uint16 remoteChainId_, bytes calldata remoteAddress_) external returns (bool) {\\n        require(remoteChainId_ != 0, \\\"ChainId must not be zero\\\");\\n        ensureNonzeroAddress(bytesToAddress(remoteAddress_));\\n        return XVSBridge.isTrustedRemote(remoteChainId_, remoteAddress_);\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @dev Returns function name string associated with function signature.\\n     * @param signature_ Four bytes of function signature.\\n     * @return Function signature corresponding to its hash.\\n     */\\n    function _getFunctionName(bytes4 signature_) internal view returns (string memory) {\\n        return functionRegistry[signature_];\\n    }\\n\\n    /**\\n     * @notice Converts given bytes into address.\\n     * @param b Bytes to be converted into address.\\n     * @return Converted address of given bytes.\\n     */\\n    function bytesToAddress(bytes calldata b) private pure returns (address) {\\n        return address(uint160(bytes20(b)));\\n    }\\n}\\n\",\"keccak256\":\"0x7a353b13a255e1bc73a8f482a8fc4ae1c5785400bf4795cb12eee4a2cb7fbb45\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/interfaces/IXVSProxyOFT.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title IXVSProxyOFT\\n * @author Venus\\n * @notice Interface implemented by `XVSProxyOFT`.\\n */\\ninterface IXVSProxyOFT {\\n    function transferOwnership(address addr) external;\\n\\n    function setTrustedRemoteAddress(uint16 remoteChainId, bytes calldata srcAddress) external;\\n\\n    function isTrustedRemote(uint16 remoteChainId, bytes calldata srcAddress) external returns (bool);\\n}\\n\",\"keccak256\":\"0xe72963d6cb0c35c473dbc43d5c761a8814015fc0f25c1d4490ef3273d5ed40b1\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":4452,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":4455,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":4985,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":4324,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":4444,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":4233,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"_pendingOwner","offset":0,"slot":"101","type":"t_address"},{"astId":4312,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":8479,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"_accessControlManager","offset":0,"slot":"151","type":"t_contract(IAccessControlManagerV8)8664"},{"astId":8484,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":10432,"contract":"contracts/Bridge/XVSBridgeAdmin.sol:XVSBridgeAdmin","label":"functionRegistry","offset":0,"slot":"201","type":"t_mapping(t_bytes4,t_string_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_contract(IAccessControlManagerV8)8664":{"encoding":"inplace","label":"contract IAccessControlManagerV8","numberOfBytes":"20"},"t_mapping(t_bytes4,t_string_storage)":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"errors":{"Unauthorized(address,address,string)":[{"notice":"Thrown when the action is prohibited by AccessControlManager"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"FunctionRegistryChanged(string,bool)":{"notice":"emitted when function registry updated"},"NewAccessControlManager(address,address)":{"notice":"Emitted when access control manager contract address is changed"}},"kind":"user","methods":{"accessControlManager()":{"notice":"Returns the address of the access control manager contract"},"functionRegistry(bytes4)":{"notice":"A mapping keeps track of function signature associated with function name string."},"isTrustedRemote(uint16,bytes)":{"notice":"Returns true if remote address is trustedRemote corresponds to chainId_."},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening."},"setAccessControlManager(address)":{"notice":"Sets the address of AccessControlManager"},"setTrustedRemoteAddress(uint16,bytes)":{"notice":"Sets trusted remote on particular chain."},"transferBridgeOwnership(address)":{"notice":"This function transfers the ownership of the bridge from this contract to new owner."},"upsertSignature(string[],bool[])":{"notice":"A setter for the registry of functions that are allowed to be executed from proposals."}},"notice":"The XVSBridgeAdmin contract extends a parent contract AccessControlledV8 for access control, and it manages an external contract called XVSProxyOFT. It maintains a registry of function signatures and names, allowing for dynamic function handling i.e checking of access control of interaction with only owner functions.","version":1}}},"contracts/Bridge/XVSProxyOFTDest.sol":{"XVSProxyOFTDest":{"abi":[{"inputs":[{"internalType":"address","name":"tokenAddress_","type":"address"},{"internalType":"uint8","name":"sharedDecimals_","type":"uint8"},{"internalType":"address","name":"lzEndpoint_","type":"address"},{"internalType":"address","name":"oracle_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"sweepAmount","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":true,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"DropFailedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"innerToken","type":"address"}],"name":"InnerTokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOracle","type":"address"},{"indexed":true,"internalType":"address","name":"newOracle","type":"address"}],"name":"OracleChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyReceiveLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleReceiveTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"isWhitelist","type":"bool"}],"name":"SetWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"sweepAmount","type":"uint256"}],"name":"SweepToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"TrustedRemoteRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UpdateSendAndCallEnabled","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleReceiveTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","type":"bytes"},{"internalType":"uint64","name":"nonce_","type":"uint64"}],"name":"dropFailedMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"isEligibleToSend","outputs":[{"internalType":"bool","name":"eligibleToSend","type":"bool"},{"internalType":"uint256","name":"maxSingleTransactionLimit","type":"uint256"},{"internalType":"uint256","name":"maxDailyLimit","type":"uint256"},{"internalType":"uint256","name":"amountInUsd","type":"uint256"},{"internalType":"uint256","name":"transferredInWindow","type":"uint256"},{"internalType":"uint256","name":"last24HourWindowStart","type":"uint256"},{"internalType":"bool","name":"isWhiteListedUser","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"}],"name":"removeTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"bytes32","name":"toAddress_","type":"bytes32"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"uint64","name":"dstGasForCall_","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"callparams_","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sendAndCallEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleReceiveTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracleAddress_","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bool","name":"val_","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"sweepToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled_","type":"bool"}],"name":"updateSendAndCallEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"ReceiveFromChain(uint16,address,uint256)":{"details":"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce."},"SendToChain(uint16,address,bytes32,uint256)":{"details":"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce"},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"circulatingSupply()":{"returns":{"_0":"total circulating supply of the token on the destination chain."}},"dropFailedMessage(uint16,bytes,uint64)":{"custom:access":"Only owner","custom:event":"Emits DropFailedMessage on clearance of failed message.","params":{"nonce_":"Nonce_ of the transaction","srcAddress_":"Address of source followed by current bridge address","srcChainId_":"Chain id of source"}},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"isEligibleToSend(address,uint16,uint256)":{"details":"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.","params":{"amount_":"The quantity of tokens to be transferred.","dstChainId_":"Indicates destination chain.","from_":"The sender's address initiating the transfer."},"returns":{"amountInUsd":"The equivalent amount in USD based on the oracle price.","eligibleToSend":"A boolean indicating whether the sender is eligible to transfer the tokens.","isWhiteListedUser":"A boolean indicating whether the sender is whitelisted.","last24HourWindowStart":"The timestamp when the current 24-hour window started.","maxDailyLimit":"The maximum daily limit for transactions.","maxSingleTransactionLimit":"The maximum limit for a single transaction.","transferredInWindow":"The total amount transferred in the current 24-hour window."}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"removeTrustedRemote(uint16)":{"custom:access":"Only owner.","custom:event":"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.","params":{"remoteChainId_":"The chain's id corresponds to setting the trusted remote to empty."}},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"details":"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.","params":{"amount_":"Amount of tokens that will be transferred.","callparams_":"Additional parameters, including refund address, ZRO payment address,                   and adapter params.","dstChainId_":"Destination chain id on which tokens will be send.","dstGasForCall_":"The amount of gas allocated for the call on the destination chain.","from_":"Address from which tokens will be debited.","payload_":"Additional data payload for the call on the destination chain.","toAddress_":"Address on which tokens will be credited on destination chain."}},"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":{"details":"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setMaxDailyReceiveLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum daily limit in USD(scaled with 18 decimals)."}},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum limit in USD(scaled with 18 decimals)."}},"setMaxSingleTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setOracle(address)":{"custom:access":"Only owner.","custom:event":"Emits OracleChanged with old and new oracle address.","details":"Reverts if the new address is zero.","params":{"oracleAddress_":"The new address of the ResilientOracle contract."}},"setWhitelist(address,bool)":{"custom:access":"Only owner.","custom:event":"Emits setWhitelist.","params":{"user_":"Address to be add in whitelist.","val_":"Boolean to be set (true for user_ address is whitelisted)."}},"sweepToken(address,address,uint256)":{"custom:access":"Only Owner","custom:error":"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract","custom:event":"Emits SweepToken event","params":{"amount_":"The amount of tokens needs to transfer","to_":"The address of the recipient","token_":"The address of the ERC-20 token to sweep"}},"token()":{"returns":{"_0":"Address of the inner token of this bridge."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Only owner."},"updateSendAndCallEnabled(bool)":{"params":{"enabled_":"Boolean indicating whether the sendAndCall function should be enabled or disabled."}}},"title":"XVSProxyOFTDest","version":1},"evm":{"bytecode":{"functionDebugData":{"@_10787":{"entryPoint":null,"id":10787,"parameterSlots":4,"returnSlots":0},"@_2968":{"entryPoint":null,"id":2968,"parameterSlots":2,"returnSlots":0},"@_3210":{"entryPoint":null,"id":3210,"parameterSlots":2,"returnSlots":0},"@_503":{"entryPoint":null,"id":503,"parameterSlots":1,"returnSlots":0},"@_5399":{"entryPoint":null,"id":5399,"parameterSlots":0,"returnSlots":0},"@_5515":{"entryPoint":null,"id":5515,"parameterSlots":0,"returnSlots":0},"@_9607":{"entryPoint":null,"id":9607,"parameterSlots":4,"returnSlots":0},"@_989":{"entryPoint":null,"id":989,"parameterSlots":1,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":555,"id":5487,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":644,"id":9333,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":745,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory":{"entryPoint":756,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":1031,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":892,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack":{"entryPoint":1072,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack":{"entryPoint":945,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":926,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1145,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1015,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":1212,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":1482,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":1284,"id":null,"parameterSlots":3,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":1183,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":686,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":856,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":1161,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":705,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":736,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8589:65","nodeType":"YulBlock","src":"0:8589:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"888:43:65","nodeType":"YulBlock","src":"888:43:65","statements":[{"nativeSrc":"898:27:65","nodeType":"YulAssignment","src":"898:27:65","value":{"arguments":[{"name":"value","nativeSrc":"913:5:65","nodeType":"YulIdentifier","src":"913:5:65"},{"kind":"number","nativeSrc":"920:4:65","nodeType":"YulLiteral","src":"920:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"909:3:65","nodeType":"YulIdentifier","src":"909:3:65"},"nativeSrc":"909:16:65","nodeType":"YulFunctionCall","src":"909:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"898:7:65","nodeType":"YulIdentifier","src":"898:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"845:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"870:5:65","nodeType":"YulTypedName","src":"870:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"880:7:65","nodeType":"YulTypedName","src":"880:7:65","type":""}],"src":"845:86:65"},{"body":{"nativeSrc":"978:77:65","nodeType":"YulBlock","src":"978:77:65","statements":[{"body":{"nativeSrc":"1033:16:65","nodeType":"YulBlock","src":"1033:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1042:1:65","nodeType":"YulLiteral","src":"1042:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1045:1:65","nodeType":"YulLiteral","src":"1045:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1035:6:65","nodeType":"YulIdentifier","src":"1035:6:65"},"nativeSrc":"1035:12:65","nodeType":"YulFunctionCall","src":"1035:12:65"},"nativeSrc":"1035:12:65","nodeType":"YulExpressionStatement","src":"1035:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1001:5:65","nodeType":"YulIdentifier","src":"1001:5:65"},{"arguments":[{"name":"value","nativeSrc":"1024:5:65","nodeType":"YulIdentifier","src":"1024:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"1008:15:65","nodeType":"YulIdentifier","src":"1008:15:65"},"nativeSrc":"1008:22:65","nodeType":"YulFunctionCall","src":"1008:22:65"}],"functionName":{"name":"eq","nativeSrc":"998:2:65","nodeType":"YulIdentifier","src":"998:2:65"},"nativeSrc":"998:33:65","nodeType":"YulFunctionCall","src":"998:33:65"}],"functionName":{"name":"iszero","nativeSrc":"991:6:65","nodeType":"YulIdentifier","src":"991:6:65"},"nativeSrc":"991:41:65","nodeType":"YulFunctionCall","src":"991:41:65"},"nativeSrc":"988:61:65","nodeType":"YulIf","src":"988:61:65"}]},"name":"validator_revert_t_uint8","nativeSrc":"937:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"971:5:65","nodeType":"YulTypedName","src":"971:5:65","type":""}],"src":"937:118:65"},{"body":{"nativeSrc":"1122:78:65","nodeType":"YulBlock","src":"1122:78:65","statements":[{"nativeSrc":"1132:22:65","nodeType":"YulAssignment","src":"1132:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"1147:6:65","nodeType":"YulIdentifier","src":"1147:6:65"}],"functionName":{"name":"mload","nativeSrc":"1141:5:65","nodeType":"YulIdentifier","src":"1141:5:65"},"nativeSrc":"1141:13:65","nodeType":"YulFunctionCall","src":"1141:13:65"},"variableNames":[{"name":"value","nativeSrc":"1132:5:65","nodeType":"YulIdentifier","src":"1132:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1188:5:65","nodeType":"YulIdentifier","src":"1188:5:65"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"1163:24:65","nodeType":"YulIdentifier","src":"1163:24:65"},"nativeSrc":"1163:31:65","nodeType":"YulFunctionCall","src":"1163:31:65"},"nativeSrc":"1163:31:65","nodeType":"YulExpressionStatement","src":"1163:31:65"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"1061:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1100:6:65","nodeType":"YulTypedName","src":"1100:6:65","type":""},{"name":"end","nativeSrc":"1108:3:65","nodeType":"YulTypedName","src":"1108:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1116:5:65","nodeType":"YulTypedName","src":"1116:5:65","type":""}],"src":"1061:139:65"},{"body":{"nativeSrc":"1332:690:65","nodeType":"YulBlock","src":"1332:690:65","statements":[{"body":{"nativeSrc":"1379:83:65","nodeType":"YulBlock","src":"1379:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1381:77:65","nodeType":"YulIdentifier","src":"1381:77:65"},"nativeSrc":"1381:79:65","nodeType":"YulFunctionCall","src":"1381:79:65"},"nativeSrc":"1381:79:65","nodeType":"YulExpressionStatement","src":"1381:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1353:7:65","nodeType":"YulIdentifier","src":"1353:7:65"},{"name":"headStart","nativeSrc":"1362:9:65","nodeType":"YulIdentifier","src":"1362:9:65"}],"functionName":{"name":"sub","nativeSrc":"1349:3:65","nodeType":"YulIdentifier","src":"1349:3:65"},"nativeSrc":"1349:23:65","nodeType":"YulFunctionCall","src":"1349:23:65"},{"kind":"number","nativeSrc":"1374:3:65","nodeType":"YulLiteral","src":"1374:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1345:3:65","nodeType":"YulIdentifier","src":"1345:3:65"},"nativeSrc":"1345:33:65","nodeType":"YulFunctionCall","src":"1345:33:65"},"nativeSrc":"1342:120:65","nodeType":"YulIf","src":"1342:120:65"},{"nativeSrc":"1472:128:65","nodeType":"YulBlock","src":"1472:128:65","statements":[{"nativeSrc":"1487:15:65","nodeType":"YulVariableDeclaration","src":"1487:15:65","value":{"kind":"number","nativeSrc":"1501:1:65","nodeType":"YulLiteral","src":"1501:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1491:6:65","nodeType":"YulTypedName","src":"1491:6:65","type":""}]},{"nativeSrc":"1516:74:65","nodeType":"YulAssignment","src":"1516:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1562:9:65","nodeType":"YulIdentifier","src":"1562:9:65"},{"name":"offset","nativeSrc":"1573:6:65","nodeType":"YulIdentifier","src":"1573:6:65"}],"functionName":{"name":"add","nativeSrc":"1558:3:65","nodeType":"YulIdentifier","src":"1558:3:65"},"nativeSrc":"1558:22:65","nodeType":"YulFunctionCall","src":"1558:22:65"},{"name":"dataEnd","nativeSrc":"1582:7:65","nodeType":"YulIdentifier","src":"1582:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1526:31:65","nodeType":"YulIdentifier","src":"1526:31:65"},"nativeSrc":"1526:64:65","nodeType":"YulFunctionCall","src":"1526:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1516:6:65","nodeType":"YulIdentifier","src":"1516:6:65"}]}]},{"nativeSrc":"1610:127:65","nodeType":"YulBlock","src":"1610:127:65","statements":[{"nativeSrc":"1625:16:65","nodeType":"YulVariableDeclaration","src":"1625:16:65","value":{"kind":"number","nativeSrc":"1639:2:65","nodeType":"YulLiteral","src":"1639:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1629:6:65","nodeType":"YulTypedName","src":"1629:6:65","type":""}]},{"nativeSrc":"1655:72:65","nodeType":"YulAssignment","src":"1655:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1699:9:65","nodeType":"YulIdentifier","src":"1699:9:65"},{"name":"offset","nativeSrc":"1710:6:65","nodeType":"YulIdentifier","src":"1710:6:65"}],"functionName":{"name":"add","nativeSrc":"1695:3:65","nodeType":"YulIdentifier","src":"1695:3:65"},"nativeSrc":"1695:22:65","nodeType":"YulFunctionCall","src":"1695:22:65"},{"name":"dataEnd","nativeSrc":"1719:7:65","nodeType":"YulIdentifier","src":"1719:7:65"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"1665:29:65","nodeType":"YulIdentifier","src":"1665:29:65"},"nativeSrc":"1665:62:65","nodeType":"YulFunctionCall","src":"1665:62:65"},"variableNames":[{"name":"value1","nativeSrc":"1655:6:65","nodeType":"YulIdentifier","src":"1655:6:65"}]}]},{"nativeSrc":"1747:129:65","nodeType":"YulBlock","src":"1747:129:65","statements":[{"nativeSrc":"1762:16:65","nodeType":"YulVariableDeclaration","src":"1762:16:65","value":{"kind":"number","nativeSrc":"1776:2:65","nodeType":"YulLiteral","src":"1776:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1766:6:65","nodeType":"YulTypedName","src":"1766:6:65","type":""}]},{"nativeSrc":"1792:74:65","nodeType":"YulAssignment","src":"1792:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1838:9:65","nodeType":"YulIdentifier","src":"1838:9:65"},{"name":"offset","nativeSrc":"1849:6:65","nodeType":"YulIdentifier","src":"1849:6:65"}],"functionName":{"name":"add","nativeSrc":"1834:3:65","nodeType":"YulIdentifier","src":"1834:3:65"},"nativeSrc":"1834:22:65","nodeType":"YulFunctionCall","src":"1834:22:65"},{"name":"dataEnd","nativeSrc":"1858:7:65","nodeType":"YulIdentifier","src":"1858:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1802:31:65","nodeType":"YulIdentifier","src":"1802:31:65"},"nativeSrc":"1802:64:65","nodeType":"YulFunctionCall","src":"1802:64:65"},"variableNames":[{"name":"value2","nativeSrc":"1792:6:65","nodeType":"YulIdentifier","src":"1792:6:65"}]}]},{"nativeSrc":"1886:129:65","nodeType":"YulBlock","src":"1886:129:65","statements":[{"nativeSrc":"1901:16:65","nodeType":"YulVariableDeclaration","src":"1901:16:65","value":{"kind":"number","nativeSrc":"1915:2:65","nodeType":"YulLiteral","src":"1915:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1905:6:65","nodeType":"YulTypedName","src":"1905:6:65","type":""}]},{"nativeSrc":"1931:74:65","nodeType":"YulAssignment","src":"1931:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1977:9:65","nodeType":"YulIdentifier","src":"1977:9:65"},{"name":"offset","nativeSrc":"1988:6:65","nodeType":"YulIdentifier","src":"1988:6:65"}],"functionName":{"name":"add","nativeSrc":"1973:3:65","nodeType":"YulIdentifier","src":"1973:3:65"},"nativeSrc":"1973:22:65","nodeType":"YulFunctionCall","src":"1973:22:65"},{"name":"dataEnd","nativeSrc":"1997:7:65","nodeType":"YulIdentifier","src":"1997:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1941:31:65","nodeType":"YulIdentifier","src":"1941:31:65"},"nativeSrc":"1941:64:65","nodeType":"YulFunctionCall","src":"1941:64:65"},"variableNames":[{"name":"value3","nativeSrc":"1931:6:65","nodeType":"YulIdentifier","src":"1931:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory","nativeSrc":"1206:816:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1278:9:65","nodeType":"YulTypedName","src":"1278:9:65","type":""},{"name":"dataEnd","nativeSrc":"1289:7:65","nodeType":"YulTypedName","src":"1289:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1301:6:65","nodeType":"YulTypedName","src":"1301:6:65","type":""},{"name":"value1","nativeSrc":"1309:6:65","nodeType":"YulTypedName","src":"1309:6:65","type":""},{"name":"value2","nativeSrc":"1317:6:65","nodeType":"YulTypedName","src":"1317:6:65","type":""},{"name":"value3","nativeSrc":"1325:6:65","nodeType":"YulTypedName","src":"1325:6:65","type":""}],"src":"1206:816:65"},{"body":{"nativeSrc":"2086:40:65","nodeType":"YulBlock","src":"2086:40:65","statements":[{"nativeSrc":"2097:22:65","nodeType":"YulAssignment","src":"2097:22:65","value":{"arguments":[{"name":"value","nativeSrc":"2113:5:65","nodeType":"YulIdentifier","src":"2113:5:65"}],"functionName":{"name":"mload","nativeSrc":"2107:5:65","nodeType":"YulIdentifier","src":"2107:5:65"},"nativeSrc":"2107:12:65","nodeType":"YulFunctionCall","src":"2107:12:65"},"variableNames":[{"name":"length","nativeSrc":"2097:6:65","nodeType":"YulIdentifier","src":"2097:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2028:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:65","nodeType":"YulTypedName","src":"2069:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2079:6:65","nodeType":"YulTypedName","src":"2079:6:65","type":""}],"src":"2028:98:65"},{"body":{"nativeSrc":"2245:34:65","nodeType":"YulBlock","src":"2245:34:65","statements":[{"nativeSrc":"2255:18:65","nodeType":"YulAssignment","src":"2255:18:65","value":{"name":"pos","nativeSrc":"2270:3:65","nodeType":"YulIdentifier","src":"2270:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"2255:11:65","nodeType":"YulIdentifier","src":"2255:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2132:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2217:3:65","nodeType":"YulTypedName","src":"2217:3:65","type":""},{"name":"length","nativeSrc":"2222:6:65","nodeType":"YulTypedName","src":"2222:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2233:11:65","nodeType":"YulTypedName","src":"2233:11:65","type":""}],"src":"2132:147:65"},{"body":{"nativeSrc":"2347:186:65","nodeType":"YulBlock","src":"2347:186:65","statements":[{"nativeSrc":"2358:10:65","nodeType":"YulVariableDeclaration","src":"2358:10:65","value":{"kind":"number","nativeSrc":"2367:1:65","nodeType":"YulLiteral","src":"2367:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2362:1:65","nodeType":"YulTypedName","src":"2362:1:65","type":""}]},{"body":{"nativeSrc":"2427:63:65","nodeType":"YulBlock","src":"2427:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2452:3:65","nodeType":"YulIdentifier","src":"2452:3:65"},{"name":"i","nativeSrc":"2457:1:65","nodeType":"YulIdentifier","src":"2457:1:65"}],"functionName":{"name":"add","nativeSrc":"2448:3:65","nodeType":"YulIdentifier","src":"2448:3:65"},"nativeSrc":"2448:11:65","nodeType":"YulFunctionCall","src":"2448:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2471:3:65","nodeType":"YulIdentifier","src":"2471:3:65"},{"name":"i","nativeSrc":"2476:1:65","nodeType":"YulIdentifier","src":"2476:1:65"}],"functionName":{"name":"add","nativeSrc":"2467:3:65","nodeType":"YulIdentifier","src":"2467:3:65"},"nativeSrc":"2467:11:65","nodeType":"YulFunctionCall","src":"2467:11:65"}],"functionName":{"name":"mload","nativeSrc":"2461:5:65","nodeType":"YulIdentifier","src":"2461:5:65"},"nativeSrc":"2461:18:65","nodeType":"YulFunctionCall","src":"2461:18:65"}],"functionName":{"name":"mstore","nativeSrc":"2441:6:65","nodeType":"YulIdentifier","src":"2441:6:65"},"nativeSrc":"2441:39:65","nodeType":"YulFunctionCall","src":"2441:39:65"},"nativeSrc":"2441:39:65","nodeType":"YulExpressionStatement","src":"2441:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2388:1:65","nodeType":"YulIdentifier","src":"2388:1:65"},{"name":"length","nativeSrc":"2391:6:65","nodeType":"YulIdentifier","src":"2391:6:65"}],"functionName":{"name":"lt","nativeSrc":"2385:2:65","nodeType":"YulIdentifier","src":"2385:2:65"},"nativeSrc":"2385:13:65","nodeType":"YulFunctionCall","src":"2385:13:65"},"nativeSrc":"2377:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"2399:19:65","nodeType":"YulBlock","src":"2399:19:65","statements":[{"nativeSrc":"2401:15:65","nodeType":"YulAssignment","src":"2401:15:65","value":{"arguments":[{"name":"i","nativeSrc":"2410:1:65","nodeType":"YulIdentifier","src":"2410:1:65"},{"kind":"number","nativeSrc":"2413:2:65","nodeType":"YulLiteral","src":"2413:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2406:3:65","nodeType":"YulIdentifier","src":"2406:3:65"},"nativeSrc":"2406:10:65","nodeType":"YulFunctionCall","src":"2406:10:65"},"variableNames":[{"name":"i","nativeSrc":"2401:1:65","nodeType":"YulIdentifier","src":"2401:1:65"}]}]},"pre":{"nativeSrc":"2381:3:65","nodeType":"YulBlock","src":"2381:3:65","statements":[]},"src":"2377:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2510:3:65","nodeType":"YulIdentifier","src":"2510:3:65"},{"name":"length","nativeSrc":"2515:6:65","nodeType":"YulIdentifier","src":"2515:6:65"}],"functionName":{"name":"add","nativeSrc":"2506:3:65","nodeType":"YulIdentifier","src":"2506:3:65"},"nativeSrc":"2506:16:65","nodeType":"YulFunctionCall","src":"2506:16:65"},{"kind":"number","nativeSrc":"2524:1:65","nodeType":"YulLiteral","src":"2524:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2499:6:65","nodeType":"YulIdentifier","src":"2499:6:65"},"nativeSrc":"2499:27:65","nodeType":"YulFunctionCall","src":"2499:27:65"},"nativeSrc":"2499:27:65","nodeType":"YulExpressionStatement","src":"2499:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2285:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2329:3:65","nodeType":"YulTypedName","src":"2329:3:65","type":""},{"name":"dst","nativeSrc":"2334:3:65","nodeType":"YulTypedName","src":"2334:3:65","type":""},{"name":"length","nativeSrc":"2339:6:65","nodeType":"YulTypedName","src":"2339:6:65","type":""}],"src":"2285:248:65"},{"body":{"nativeSrc":"2647:278:65","nodeType":"YulBlock","src":"2647:278:65","statements":[{"nativeSrc":"2657:52:65","nodeType":"YulVariableDeclaration","src":"2657:52:65","value":{"arguments":[{"name":"value","nativeSrc":"2703:5:65","nodeType":"YulIdentifier","src":"2703:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2671:31:65","nodeType":"YulIdentifier","src":"2671:31:65"},"nativeSrc":"2671:38:65","nodeType":"YulFunctionCall","src":"2671:38:65"},"variables":[{"name":"length","nativeSrc":"2661:6:65","nodeType":"YulTypedName","src":"2661:6:65","type":""}]},{"nativeSrc":"2718:95:65","nodeType":"YulAssignment","src":"2718:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"2801:3:65","nodeType":"YulIdentifier","src":"2801:3:65"},{"name":"length","nativeSrc":"2806:6:65","nodeType":"YulIdentifier","src":"2806:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2725:75:65","nodeType":"YulIdentifier","src":"2725:75:65"},"nativeSrc":"2725:88:65","nodeType":"YulFunctionCall","src":"2725:88:65"},"variableNames":[{"name":"pos","nativeSrc":"2718:3:65","nodeType":"YulIdentifier","src":"2718:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2861:5:65","nodeType":"YulIdentifier","src":"2861:5:65"},{"kind":"number","nativeSrc":"2868:4:65","nodeType":"YulLiteral","src":"2868:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2857:3:65","nodeType":"YulIdentifier","src":"2857:3:65"},"nativeSrc":"2857:16:65","nodeType":"YulFunctionCall","src":"2857:16:65"},{"name":"pos","nativeSrc":"2875:3:65","nodeType":"YulIdentifier","src":"2875:3:65"},{"name":"length","nativeSrc":"2880:6:65","nodeType":"YulIdentifier","src":"2880:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2822:34:65","nodeType":"YulIdentifier","src":"2822:34:65"},"nativeSrc":"2822:65:65","nodeType":"YulFunctionCall","src":"2822:65:65"},"nativeSrc":"2822:65:65","nodeType":"YulExpressionStatement","src":"2822:65:65"},{"nativeSrc":"2896:23:65","nodeType":"YulAssignment","src":"2896:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"2907:3:65","nodeType":"YulIdentifier","src":"2907:3:65"},{"name":"length","nativeSrc":"2912:6:65","nodeType":"YulIdentifier","src":"2912:6:65"}],"functionName":{"name":"add","nativeSrc":"2903:3:65","nodeType":"YulIdentifier","src":"2903:3:65"},"nativeSrc":"2903:16:65","nodeType":"YulFunctionCall","src":"2903:16:65"},"variableNames":[{"name":"end","nativeSrc":"2896:3:65","nodeType":"YulIdentifier","src":"2896:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2539:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2628:5:65","nodeType":"YulTypedName","src":"2628:5:65","type":""},{"name":"pos","nativeSrc":"2635:3:65","nodeType":"YulTypedName","src":"2635:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2643:3:65","nodeType":"YulTypedName","src":"2643:3:65","type":""}],"src":"2539:386:65"},{"body":{"nativeSrc":"3065:137:65","nodeType":"YulBlock","src":"3065:137:65","statements":[{"nativeSrc":"3076:100:65","nodeType":"YulAssignment","src":"3076:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"3163:6:65","nodeType":"YulIdentifier","src":"3163:6:65"},{"name":"pos","nativeSrc":"3172:3:65","nodeType":"YulIdentifier","src":"3172:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"3083:79:65","nodeType":"YulIdentifier","src":"3083:79:65"},"nativeSrc":"3083:93:65","nodeType":"YulFunctionCall","src":"3083:93:65"},"variableNames":[{"name":"pos","nativeSrc":"3076:3:65","nodeType":"YulIdentifier","src":"3076:3:65"}]},{"nativeSrc":"3186:10:65","nodeType":"YulAssignment","src":"3186:10:65","value":{"name":"pos","nativeSrc":"3193:3:65","nodeType":"YulIdentifier","src":"3193:3:65"},"variableNames":[{"name":"end","nativeSrc":"3186:3:65","nodeType":"YulIdentifier","src":"3186:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2931:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3044:3:65","nodeType":"YulTypedName","src":"3044:3:65","type":""},{"name":"value0","nativeSrc":"3050:6:65","nodeType":"YulTypedName","src":"3050:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3061:3:65","nodeType":"YulTypedName","src":"3061:3:65","type":""}],"src":"2931:271:65"},{"body":{"nativeSrc":"3304:73:65","nodeType":"YulBlock","src":"3304:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3321:3:65","nodeType":"YulIdentifier","src":"3321:3:65"},{"name":"length","nativeSrc":"3326:6:65","nodeType":"YulIdentifier","src":"3326:6:65"}],"functionName":{"name":"mstore","nativeSrc":"3314:6:65","nodeType":"YulIdentifier","src":"3314:6:65"},"nativeSrc":"3314:19:65","nodeType":"YulFunctionCall","src":"3314:19:65"},"nativeSrc":"3314:19:65","nodeType":"YulExpressionStatement","src":"3314:19:65"},{"nativeSrc":"3342:29:65","nodeType":"YulAssignment","src":"3342:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"3361:3:65","nodeType":"YulIdentifier","src":"3361:3:65"},{"kind":"number","nativeSrc":"3366:4:65","nodeType":"YulLiteral","src":"3366:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3357:3:65","nodeType":"YulIdentifier","src":"3357:3:65"},"nativeSrc":"3357:14:65","nodeType":"YulFunctionCall","src":"3357:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"3342:11:65","nodeType":"YulIdentifier","src":"3342:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3208:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3276:3:65","nodeType":"YulTypedName","src":"3276:3:65","type":""},{"name":"length","nativeSrc":"3281:6:65","nodeType":"YulTypedName","src":"3281:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3292:11:65","nodeType":"YulTypedName","src":"3292:11:65","type":""}],"src":"3208:169:65"},{"body":{"nativeSrc":"3489:119:65","nodeType":"YulBlock","src":"3489:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3511:6:65","nodeType":"YulIdentifier","src":"3511:6:65"},{"kind":"number","nativeSrc":"3519:1:65","nodeType":"YulLiteral","src":"3519:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3507:3:65","nodeType":"YulIdentifier","src":"3507:3:65"},"nativeSrc":"3507:14:65","nodeType":"YulFunctionCall","src":"3507:14:65"},{"hexValue":"50726f78794f46543a206661696c656420746f2067657420746f6b656e206465","kind":"string","nativeSrc":"3523:34:65","nodeType":"YulLiteral","src":"3523:34:65","type":"","value":"ProxyOFT: failed to get token de"}],"functionName":{"name":"mstore","nativeSrc":"3500:6:65","nodeType":"YulIdentifier","src":"3500:6:65"},"nativeSrc":"3500:58:65","nodeType":"YulFunctionCall","src":"3500:58:65"},"nativeSrc":"3500:58:65","nodeType":"YulExpressionStatement","src":"3500:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3579:6:65","nodeType":"YulIdentifier","src":"3579:6:65"},{"kind":"number","nativeSrc":"3587:2:65","nodeType":"YulLiteral","src":"3587:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3575:3:65","nodeType":"YulIdentifier","src":"3575:3:65"},"nativeSrc":"3575:15:65","nodeType":"YulFunctionCall","src":"3575:15:65"},{"hexValue":"63696d616c73","kind":"string","nativeSrc":"3592:8:65","nodeType":"YulLiteral","src":"3592:8:65","type":"","value":"cimals"}],"functionName":{"name":"mstore","nativeSrc":"3568:6:65","nodeType":"YulIdentifier","src":"3568:6:65"},"nativeSrc":"3568:33:65","nodeType":"YulFunctionCall","src":"3568:33:65"},"nativeSrc":"3568:33:65","nodeType":"YulExpressionStatement","src":"3568:33:65"}]},"name":"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","nativeSrc":"3383:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3481:6:65","nodeType":"YulTypedName","src":"3481:6:65","type":""}],"src":"3383:225:65"},{"body":{"nativeSrc":"3760:220:65","nodeType":"YulBlock","src":"3760:220:65","statements":[{"nativeSrc":"3770:74:65","nodeType":"YulAssignment","src":"3770:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"3836:3:65","nodeType":"YulIdentifier","src":"3836:3:65"},{"kind":"number","nativeSrc":"3841:2:65","nodeType":"YulLiteral","src":"3841:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3777:58:65","nodeType":"YulIdentifier","src":"3777:58:65"},"nativeSrc":"3777:67:65","nodeType":"YulFunctionCall","src":"3777:67:65"},"variableNames":[{"name":"pos","nativeSrc":"3770:3:65","nodeType":"YulIdentifier","src":"3770:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3942:3:65","nodeType":"YulIdentifier","src":"3942:3:65"}],"functionName":{"name":"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","nativeSrc":"3853:88:65","nodeType":"YulIdentifier","src":"3853:88:65"},"nativeSrc":"3853:93:65","nodeType":"YulFunctionCall","src":"3853:93:65"},"nativeSrc":"3853:93:65","nodeType":"YulExpressionStatement","src":"3853:93:65"},{"nativeSrc":"3955:19:65","nodeType":"YulAssignment","src":"3955:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"3966:3:65","nodeType":"YulIdentifier","src":"3966:3:65"},{"kind":"number","nativeSrc":"3971:2:65","nodeType":"YulLiteral","src":"3971:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3962:3:65","nodeType":"YulIdentifier","src":"3962:3:65"},"nativeSrc":"3962:12:65","nodeType":"YulFunctionCall","src":"3962:12:65"},"variableNames":[{"name":"end","nativeSrc":"3955:3:65","nodeType":"YulIdentifier","src":"3955:3:65"}]}]},"name":"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack","nativeSrc":"3614:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3748:3:65","nodeType":"YulTypedName","src":"3748:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3756:3:65","nodeType":"YulTypedName","src":"3756:3:65","type":""}],"src":"3614:366:65"},{"body":{"nativeSrc":"4157:248:65","nodeType":"YulBlock","src":"4157:248:65","statements":[{"nativeSrc":"4167:26:65","nodeType":"YulAssignment","src":"4167:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4179:9:65","nodeType":"YulIdentifier","src":"4179:9:65"},{"kind":"number","nativeSrc":"4190:2:65","nodeType":"YulLiteral","src":"4190:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4175:3:65","nodeType":"YulIdentifier","src":"4175:3:65"},"nativeSrc":"4175:18:65","nodeType":"YulFunctionCall","src":"4175:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4167:4:65","nodeType":"YulIdentifier","src":"4167:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4214:9:65","nodeType":"YulIdentifier","src":"4214:9:65"},{"kind":"number","nativeSrc":"4225:1:65","nodeType":"YulLiteral","src":"4225:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4210:3:65","nodeType":"YulIdentifier","src":"4210:3:65"},"nativeSrc":"4210:17:65","nodeType":"YulFunctionCall","src":"4210:17:65"},{"arguments":[{"name":"tail","nativeSrc":"4233:4:65","nodeType":"YulIdentifier","src":"4233:4:65"},{"name":"headStart","nativeSrc":"4239:9:65","nodeType":"YulIdentifier","src":"4239:9:65"}],"functionName":{"name":"sub","nativeSrc":"4229:3:65","nodeType":"YulIdentifier","src":"4229:3:65"},"nativeSrc":"4229:20:65","nodeType":"YulFunctionCall","src":"4229:20:65"}],"functionName":{"name":"mstore","nativeSrc":"4203:6:65","nodeType":"YulIdentifier","src":"4203:6:65"},"nativeSrc":"4203:47:65","nodeType":"YulFunctionCall","src":"4203:47:65"},"nativeSrc":"4203:47:65","nodeType":"YulExpressionStatement","src":"4203:47:65"},{"nativeSrc":"4259:139:65","nodeType":"YulAssignment","src":"4259:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"4393:4:65","nodeType":"YulIdentifier","src":"4393:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack","nativeSrc":"4267:124:65","nodeType":"YulIdentifier","src":"4267:124:65"},"nativeSrc":"4267:131:65","nodeType":"YulFunctionCall","src":"4267:131:65"},"variableNames":[{"name":"tail","nativeSrc":"4259:4:65","nodeType":"YulIdentifier","src":"4259:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3986:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4137:9:65","nodeType":"YulTypedName","src":"4137:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4152:4:65","nodeType":"YulTypedName","src":"4152:4:65","type":""}],"src":"3986:419:65"},{"body":{"nativeSrc":"4486:272:65","nodeType":"YulBlock","src":"4486:272:65","statements":[{"body":{"nativeSrc":"4532:83:65","nodeType":"YulBlock","src":"4532:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4534:77:65","nodeType":"YulIdentifier","src":"4534:77:65"},"nativeSrc":"4534:79:65","nodeType":"YulFunctionCall","src":"4534:79:65"},"nativeSrc":"4534:79:65","nodeType":"YulExpressionStatement","src":"4534:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4507:7:65","nodeType":"YulIdentifier","src":"4507:7:65"},{"name":"headStart","nativeSrc":"4516:9:65","nodeType":"YulIdentifier","src":"4516:9:65"}],"functionName":{"name":"sub","nativeSrc":"4503:3:65","nodeType":"YulIdentifier","src":"4503:3:65"},"nativeSrc":"4503:23:65","nodeType":"YulFunctionCall","src":"4503:23:65"},{"kind":"number","nativeSrc":"4528:2:65","nodeType":"YulLiteral","src":"4528:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4499:3:65","nodeType":"YulIdentifier","src":"4499:3:65"},"nativeSrc":"4499:32:65","nodeType":"YulFunctionCall","src":"4499:32:65"},"nativeSrc":"4496:119:65","nodeType":"YulIf","src":"4496:119:65"},{"nativeSrc":"4625:126:65","nodeType":"YulBlock","src":"4625:126:65","statements":[{"nativeSrc":"4640:15:65","nodeType":"YulVariableDeclaration","src":"4640:15:65","value":{"kind":"number","nativeSrc":"4654:1:65","nodeType":"YulLiteral","src":"4654:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4644:6:65","nodeType":"YulTypedName","src":"4644:6:65","type":""}]},{"nativeSrc":"4669:72:65","nodeType":"YulAssignment","src":"4669:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4713:9:65","nodeType":"YulIdentifier","src":"4713:9:65"},{"name":"offset","nativeSrc":"4724:6:65","nodeType":"YulIdentifier","src":"4724:6:65"}],"functionName":{"name":"add","nativeSrc":"4709:3:65","nodeType":"YulIdentifier","src":"4709:3:65"},"nativeSrc":"4709:22:65","nodeType":"YulFunctionCall","src":"4709:22:65"},{"name":"dataEnd","nativeSrc":"4733:7:65","nodeType":"YulIdentifier","src":"4733:7:65"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"4679:29:65","nodeType":"YulIdentifier","src":"4679:29:65"},"nativeSrc":"4679:62:65","nodeType":"YulFunctionCall","src":"4679:62:65"},"variableNames":[{"name":"value0","nativeSrc":"4669:6:65","nodeType":"YulIdentifier","src":"4669:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"4411:347:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4456:9:65","nodeType":"YulTypedName","src":"4456:9:65","type":""},{"name":"dataEnd","nativeSrc":"4467:7:65","nodeType":"YulTypedName","src":"4467:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4479:6:65","nodeType":"YulTypedName","src":"4479:6:65","type":""}],"src":"4411:347:65"},{"body":{"nativeSrc":"4870:125:65","nodeType":"YulBlock","src":"4870:125:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4892:6:65","nodeType":"YulIdentifier","src":"4892:6:65"},{"kind":"number","nativeSrc":"4900:1:65","nodeType":"YulLiteral","src":"4900:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4888:3:65","nodeType":"YulIdentifier","src":"4888:3:65"},"nativeSrc":"4888:14:65","nodeType":"YulFunctionCall","src":"4888:14:65"},{"hexValue":"50726f78794f46543a20736861726564446563696d616c73206d757374206265","kind":"string","nativeSrc":"4904:34:65","nodeType":"YulLiteral","src":"4904:34:65","type":"","value":"ProxyOFT: sharedDecimals must be"}],"functionName":{"name":"mstore","nativeSrc":"4881:6:65","nodeType":"YulIdentifier","src":"4881:6:65"},"nativeSrc":"4881:58:65","nodeType":"YulFunctionCall","src":"4881:58:65"},"nativeSrc":"4881:58:65","nodeType":"YulExpressionStatement","src":"4881:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4960:6:65","nodeType":"YulIdentifier","src":"4960:6:65"},{"kind":"number","nativeSrc":"4968:2:65","nodeType":"YulLiteral","src":"4968:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4956:3:65","nodeType":"YulIdentifier","src":"4956:3:65"},"nativeSrc":"4956:15:65","nodeType":"YulFunctionCall","src":"4956:15:65"},{"hexValue":"203c3d20646563696d616c73","kind":"string","nativeSrc":"4973:14:65","nodeType":"YulLiteral","src":"4973:14:65","type":"","value":" <= decimals"}],"functionName":{"name":"mstore","nativeSrc":"4949:6:65","nodeType":"YulIdentifier","src":"4949:6:65"},"nativeSrc":"4949:39:65","nodeType":"YulFunctionCall","src":"4949:39:65"},"nativeSrc":"4949:39:65","nodeType":"YulExpressionStatement","src":"4949:39:65"}]},"name":"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","nativeSrc":"4764:231:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4862:6:65","nodeType":"YulTypedName","src":"4862:6:65","type":""}],"src":"4764:231:65"},{"body":{"nativeSrc":"5147:220:65","nodeType":"YulBlock","src":"5147:220:65","statements":[{"nativeSrc":"5157:74:65","nodeType":"YulAssignment","src":"5157:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5223:3:65","nodeType":"YulIdentifier","src":"5223:3:65"},{"kind":"number","nativeSrc":"5228:2:65","nodeType":"YulLiteral","src":"5228:2:65","type":"","value":"44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5164:58:65","nodeType":"YulIdentifier","src":"5164:58:65"},"nativeSrc":"5164:67:65","nodeType":"YulFunctionCall","src":"5164:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5157:3:65","nodeType":"YulIdentifier","src":"5157:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5329:3:65","nodeType":"YulIdentifier","src":"5329:3:65"}],"functionName":{"name":"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","nativeSrc":"5240:88:65","nodeType":"YulIdentifier","src":"5240:88:65"},"nativeSrc":"5240:93:65","nodeType":"YulFunctionCall","src":"5240:93:65"},"nativeSrc":"5240:93:65","nodeType":"YulExpressionStatement","src":"5240:93:65"},{"nativeSrc":"5342:19:65","nodeType":"YulAssignment","src":"5342:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5353:3:65","nodeType":"YulIdentifier","src":"5353:3:65"},{"kind":"number","nativeSrc":"5358:2:65","nodeType":"YulLiteral","src":"5358:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5349:3:65","nodeType":"YulIdentifier","src":"5349:3:65"},"nativeSrc":"5349:12:65","nodeType":"YulFunctionCall","src":"5349:12:65"},"variableNames":[{"name":"end","nativeSrc":"5342:3:65","nodeType":"YulIdentifier","src":"5342:3:65"}]}]},"name":"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack","nativeSrc":"5001:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5135:3:65","nodeType":"YulTypedName","src":"5135:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5143:3:65","nodeType":"YulTypedName","src":"5143:3:65","type":""}],"src":"5001:366:65"},{"body":{"nativeSrc":"5544:248:65","nodeType":"YulBlock","src":"5544:248:65","statements":[{"nativeSrc":"5554:26:65","nodeType":"YulAssignment","src":"5554:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5566:9:65","nodeType":"YulIdentifier","src":"5566:9:65"},{"kind":"number","nativeSrc":"5577:2:65","nodeType":"YulLiteral","src":"5577:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5562:3:65","nodeType":"YulIdentifier","src":"5562:3:65"},"nativeSrc":"5562:18:65","nodeType":"YulFunctionCall","src":"5562:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5554:4:65","nodeType":"YulIdentifier","src":"5554:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5601:9:65","nodeType":"YulIdentifier","src":"5601:9:65"},{"kind":"number","nativeSrc":"5612:1:65","nodeType":"YulLiteral","src":"5612:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5597:3:65","nodeType":"YulIdentifier","src":"5597:3:65"},"nativeSrc":"5597:17:65","nodeType":"YulFunctionCall","src":"5597:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5620:4:65","nodeType":"YulIdentifier","src":"5620:4:65"},{"name":"headStart","nativeSrc":"5626:9:65","nodeType":"YulIdentifier","src":"5626:9:65"}],"functionName":{"name":"sub","nativeSrc":"5616:3:65","nodeType":"YulIdentifier","src":"5616:3:65"},"nativeSrc":"5616:20:65","nodeType":"YulFunctionCall","src":"5616:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5590:6:65","nodeType":"YulIdentifier","src":"5590:6:65"},"nativeSrc":"5590:47:65","nodeType":"YulFunctionCall","src":"5590:47:65"},"nativeSrc":"5590:47:65","nodeType":"YulExpressionStatement","src":"5590:47:65"},{"nativeSrc":"5646:139:65","nodeType":"YulAssignment","src":"5646:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5780:4:65","nodeType":"YulIdentifier","src":"5780:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack","nativeSrc":"5654:124:65","nodeType":"YulIdentifier","src":"5654:124:65"},"nativeSrc":"5654:131:65","nodeType":"YulFunctionCall","src":"5654:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5646:4:65","nodeType":"YulIdentifier","src":"5646:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5373:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5524:9:65","nodeType":"YulTypedName","src":"5524:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5539:4:65","nodeType":"YulTypedName","src":"5539:4:65","type":""}],"src":"5373:419:65"},{"body":{"nativeSrc":"5826:152:65","nodeType":"YulBlock","src":"5826:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5843:1:65","nodeType":"YulLiteral","src":"5843:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5846:77:65","nodeType":"YulLiteral","src":"5846:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5836:6:65","nodeType":"YulIdentifier","src":"5836:6:65"},"nativeSrc":"5836:88:65","nodeType":"YulFunctionCall","src":"5836:88:65"},"nativeSrc":"5836:88:65","nodeType":"YulExpressionStatement","src":"5836:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5940:1:65","nodeType":"YulLiteral","src":"5940:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"5943:4:65","nodeType":"YulLiteral","src":"5943:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5933:6:65","nodeType":"YulIdentifier","src":"5933:6:65"},"nativeSrc":"5933:15:65","nodeType":"YulFunctionCall","src":"5933:15:65"},"nativeSrc":"5933:15:65","nodeType":"YulExpressionStatement","src":"5933:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5964:1:65","nodeType":"YulLiteral","src":"5964:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5967:4:65","nodeType":"YulLiteral","src":"5967:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5957:6:65","nodeType":"YulIdentifier","src":"5957:6:65"},"nativeSrc":"5957:15:65","nodeType":"YulFunctionCall","src":"5957:15:65"},"nativeSrc":"5957:15:65","nodeType":"YulExpressionStatement","src":"5957:15:65"}]},"name":"panic_error_0x11","nativeSrc":"5798:180:65","nodeType":"YulFunctionDefinition","src":"5798:180:65"},{"body":{"nativeSrc":"6027:148:65","nodeType":"YulBlock","src":"6027:148:65","statements":[{"nativeSrc":"6037:23:65","nodeType":"YulAssignment","src":"6037:23:65","value":{"arguments":[{"name":"x","nativeSrc":"6058:1:65","nodeType":"YulIdentifier","src":"6058:1:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6042:15:65","nodeType":"YulIdentifier","src":"6042:15:65"},"nativeSrc":"6042:18:65","nodeType":"YulFunctionCall","src":"6042:18:65"},"variableNames":[{"name":"x","nativeSrc":"6037:1:65","nodeType":"YulIdentifier","src":"6037:1:65"}]},{"nativeSrc":"6069:23:65","nodeType":"YulAssignment","src":"6069:23:65","value":{"arguments":[{"name":"y","nativeSrc":"6090:1:65","nodeType":"YulIdentifier","src":"6090:1:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6074:15:65","nodeType":"YulIdentifier","src":"6074:15:65"},"nativeSrc":"6074:18:65","nodeType":"YulFunctionCall","src":"6074:18:65"},"variableNames":[{"name":"y","nativeSrc":"6069:1:65","nodeType":"YulIdentifier","src":"6069:1:65"}]},{"nativeSrc":"6101:17:65","nodeType":"YulAssignment","src":"6101:17:65","value":{"arguments":[{"name":"x","nativeSrc":"6113:1:65","nodeType":"YulIdentifier","src":"6113:1:65"},{"name":"y","nativeSrc":"6116:1:65","nodeType":"YulIdentifier","src":"6116:1:65"}],"functionName":{"name":"sub","nativeSrc":"6109:3:65","nodeType":"YulIdentifier","src":"6109:3:65"},"nativeSrc":"6109:9:65","nodeType":"YulFunctionCall","src":"6109:9:65"},"variableNames":[{"name":"diff","nativeSrc":"6101:4:65","nodeType":"YulIdentifier","src":"6101:4:65"}]},{"body":{"nativeSrc":"6146:22:65","nodeType":"YulBlock","src":"6146:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6148:16:65","nodeType":"YulIdentifier","src":"6148:16:65"},"nativeSrc":"6148:18:65","nodeType":"YulFunctionCall","src":"6148:18:65"},"nativeSrc":"6148:18:65","nodeType":"YulExpressionStatement","src":"6148:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6134:4:65","nodeType":"YulIdentifier","src":"6134:4:65"},{"kind":"number","nativeSrc":"6140:4:65","nodeType":"YulLiteral","src":"6140:4:65","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"6131:2:65","nodeType":"YulIdentifier","src":"6131:2:65"},"nativeSrc":"6131:14:65","nodeType":"YulFunctionCall","src":"6131:14:65"},"nativeSrc":"6128:40:65","nodeType":"YulIf","src":"6128:40:65"}]},"name":"checked_sub_t_uint8","nativeSrc":"5984:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6013:1:65","nodeType":"YulTypedName","src":"6013:1:65","type":""},{"name":"y","nativeSrc":"6016:1:65","nodeType":"YulTypedName","src":"6016:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6022:4:65","nodeType":"YulTypedName","src":"6022:4:65","type":""}],"src":"5984:191:65"},{"body":{"nativeSrc":"6232:51:65","nodeType":"YulBlock","src":"6232:51:65","statements":[{"nativeSrc":"6242:34:65","nodeType":"YulAssignment","src":"6242:34:65","value":{"arguments":[{"kind":"number","nativeSrc":"6267:1:65","nodeType":"YulLiteral","src":"6267:1:65","type":"","value":"1"},{"name":"value","nativeSrc":"6270:5:65","nodeType":"YulIdentifier","src":"6270:5:65"}],"functionName":{"name":"shr","nativeSrc":"6263:3:65","nodeType":"YulIdentifier","src":"6263:3:65"},"nativeSrc":"6263:13:65","nodeType":"YulFunctionCall","src":"6263:13:65"},"variableNames":[{"name":"newValue","nativeSrc":"6242:8:65","nodeType":"YulIdentifier","src":"6242:8:65"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"6181:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6213:5:65","nodeType":"YulTypedName","src":"6213:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6223:8:65","nodeType":"YulTypedName","src":"6223:8:65","type":""}],"src":"6181:102:65"},{"body":{"nativeSrc":"6362:775:65","nodeType":"YulBlock","src":"6362:775:65","statements":[{"nativeSrc":"6372:15:65","nodeType":"YulAssignment","src":"6372:15:65","value":{"name":"_power","nativeSrc":"6381:6:65","nodeType":"YulIdentifier","src":"6381:6:65"},"variableNames":[{"name":"power","nativeSrc":"6372:5:65","nodeType":"YulIdentifier","src":"6372:5:65"}]},{"nativeSrc":"6396:14:65","nodeType":"YulAssignment","src":"6396:14:65","value":{"name":"_base","nativeSrc":"6405:5:65","nodeType":"YulIdentifier","src":"6405:5:65"},"variableNames":[{"name":"base","nativeSrc":"6396:4:65","nodeType":"YulIdentifier","src":"6396:4:65"}]},{"body":{"nativeSrc":"6454:677:65","nodeType":"YulBlock","src":"6454:677:65","statements":[{"body":{"nativeSrc":"6542:22:65","nodeType":"YulBlock","src":"6542:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6544:16:65","nodeType":"YulIdentifier","src":"6544:16:65"},"nativeSrc":"6544:18:65","nodeType":"YulFunctionCall","src":"6544:18:65"},"nativeSrc":"6544:18:65","nodeType":"YulExpressionStatement","src":"6544:18:65"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"6520:4:65","nodeType":"YulIdentifier","src":"6520:4:65"},{"arguments":[{"name":"max","nativeSrc":"6530:3:65","nodeType":"YulIdentifier","src":"6530:3:65"},{"name":"base","nativeSrc":"6535:4:65","nodeType":"YulIdentifier","src":"6535:4:65"}],"functionName":{"name":"div","nativeSrc":"6526:3:65","nodeType":"YulIdentifier","src":"6526:3:65"},"nativeSrc":"6526:14:65","nodeType":"YulFunctionCall","src":"6526:14:65"}],"functionName":{"name":"gt","nativeSrc":"6517:2:65","nodeType":"YulIdentifier","src":"6517:2:65"},"nativeSrc":"6517:24:65","nodeType":"YulFunctionCall","src":"6517:24:65"},"nativeSrc":"6514:50:65","nodeType":"YulIf","src":"6514:50:65"},{"body":{"nativeSrc":"6609:419:65","nodeType":"YulBlock","src":"6609:419:65","statements":[{"nativeSrc":"6989:25:65","nodeType":"YulAssignment","src":"6989:25:65","value":{"arguments":[{"name":"power","nativeSrc":"7002:5:65","nodeType":"YulIdentifier","src":"7002:5:65"},{"name":"base","nativeSrc":"7009:4:65","nodeType":"YulIdentifier","src":"7009:4:65"}],"functionName":{"name":"mul","nativeSrc":"6998:3:65","nodeType":"YulIdentifier","src":"6998:3:65"},"nativeSrc":"6998:16:65","nodeType":"YulFunctionCall","src":"6998:16:65"},"variableNames":[{"name":"power","nativeSrc":"6989:5:65","nodeType":"YulIdentifier","src":"6989:5:65"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6584:8:65","nodeType":"YulIdentifier","src":"6584:8:65"},{"kind":"number","nativeSrc":"6594:1:65","nodeType":"YulLiteral","src":"6594:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6580:3:65","nodeType":"YulIdentifier","src":"6580:3:65"},"nativeSrc":"6580:16:65","nodeType":"YulFunctionCall","src":"6580:16:65"},"nativeSrc":"6577:451:65","nodeType":"YulIf","src":"6577:451:65"},{"nativeSrc":"7041:23:65","nodeType":"YulAssignment","src":"7041:23:65","value":{"arguments":[{"name":"base","nativeSrc":"7053:4:65","nodeType":"YulIdentifier","src":"7053:4:65"},{"name":"base","nativeSrc":"7059:4:65","nodeType":"YulIdentifier","src":"7059:4:65"}],"functionName":{"name":"mul","nativeSrc":"7049:3:65","nodeType":"YulIdentifier","src":"7049:3:65"},"nativeSrc":"7049:15:65","nodeType":"YulFunctionCall","src":"7049:15:65"},"variableNames":[{"name":"base","nativeSrc":"7041:4:65","nodeType":"YulIdentifier","src":"7041:4:65"}]},{"nativeSrc":"7077:44:65","nodeType":"YulAssignment","src":"7077:44:65","value":{"arguments":[{"name":"exponent","nativeSrc":"7112:8:65","nodeType":"YulIdentifier","src":"7112:8:65"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"7089:22:65","nodeType":"YulIdentifier","src":"7089:22:65"},"nativeSrc":"7089:32:65","nodeType":"YulFunctionCall","src":"7089:32:65"},"variableNames":[{"name":"exponent","nativeSrc":"7077:8:65","nodeType":"YulIdentifier","src":"7077:8:65"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6430:8:65","nodeType":"YulIdentifier","src":"6430:8:65"},{"kind":"number","nativeSrc":"6440:1:65","nodeType":"YulLiteral","src":"6440:1:65","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6427:2:65","nodeType":"YulIdentifier","src":"6427:2:65"},"nativeSrc":"6427:15:65","nodeType":"YulFunctionCall","src":"6427:15:65"},"nativeSrc":"6419:712:65","nodeType":"YulForLoop","post":{"nativeSrc":"6443:2:65","nodeType":"YulBlock","src":"6443:2:65","statements":[]},"pre":{"nativeSrc":"6423:3:65","nodeType":"YulBlock","src":"6423:3:65","statements":[]},"src":"6419:712:65"}]},"name":"checked_exp_helper","nativeSrc":"6289:848:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"6317:6:65","nodeType":"YulTypedName","src":"6317:6:65","type":""},{"name":"_base","nativeSrc":"6325:5:65","nodeType":"YulTypedName","src":"6325:5:65","type":""},{"name":"exponent","nativeSrc":"6332:8:65","nodeType":"YulTypedName","src":"6332:8:65","type":""},{"name":"max","nativeSrc":"6342:3:65","nodeType":"YulTypedName","src":"6342:3:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"6350:5:65","nodeType":"YulTypedName","src":"6350:5:65","type":""},{"name":"base","nativeSrc":"6357:4:65","nodeType":"YulTypedName","src":"6357:4:65","type":""}],"src":"6289:848:65"},{"body":{"nativeSrc":"7203:1013:65","nodeType":"YulBlock","src":"7203:1013:65","statements":[{"body":{"nativeSrc":"7398:20:65","nodeType":"YulBlock","src":"7398:20:65","statements":[{"nativeSrc":"7400:10:65","nodeType":"YulAssignment","src":"7400:10:65","value":{"kind":"number","nativeSrc":"7409:1:65","nodeType":"YulLiteral","src":"7409:1:65","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7400:5:65","nodeType":"YulIdentifier","src":"7400:5:65"}]},{"nativeSrc":"7411:5:65","nodeType":"YulLeave","src":"7411:5:65"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7388:8:65","nodeType":"YulIdentifier","src":"7388:8:65"}],"functionName":{"name":"iszero","nativeSrc":"7381:6:65","nodeType":"YulIdentifier","src":"7381:6:65"},"nativeSrc":"7381:16:65","nodeType":"YulFunctionCall","src":"7381:16:65"},"nativeSrc":"7378:40:65","nodeType":"YulIf","src":"7378:40:65"},{"body":{"nativeSrc":"7443:20:65","nodeType":"YulBlock","src":"7443:20:65","statements":[{"nativeSrc":"7445:10:65","nodeType":"YulAssignment","src":"7445:10:65","value":{"kind":"number","nativeSrc":"7454:1:65","nodeType":"YulLiteral","src":"7454:1:65","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"7445:5:65","nodeType":"YulIdentifier","src":"7445:5:65"}]},{"nativeSrc":"7456:5:65","nodeType":"YulLeave","src":"7456:5:65"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7437:4:65","nodeType":"YulIdentifier","src":"7437:4:65"}],"functionName":{"name":"iszero","nativeSrc":"7430:6:65","nodeType":"YulIdentifier","src":"7430:6:65"},"nativeSrc":"7430:12:65","nodeType":"YulFunctionCall","src":"7430:12:65"},"nativeSrc":"7427:36:65","nodeType":"YulIf","src":"7427:36:65"},{"cases":[{"body":{"nativeSrc":"7573:20:65","nodeType":"YulBlock","src":"7573:20:65","statements":[{"nativeSrc":"7575:10:65","nodeType":"YulAssignment","src":"7575:10:65","value":{"kind":"number","nativeSrc":"7584:1:65","nodeType":"YulLiteral","src":"7584:1:65","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7575:5:65","nodeType":"YulIdentifier","src":"7575:5:65"}]},{"nativeSrc":"7586:5:65","nodeType":"YulLeave","src":"7586:5:65"}]},"nativeSrc":"7566:27:65","nodeType":"YulCase","src":"7566:27:65","value":{"kind":"number","nativeSrc":"7571:1:65","nodeType":"YulLiteral","src":"7571:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"7617:176:65","nodeType":"YulBlock","src":"7617:176:65","statements":[{"body":{"nativeSrc":"7652:22:65","nodeType":"YulBlock","src":"7652:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7654:16:65","nodeType":"YulIdentifier","src":"7654:16:65"},"nativeSrc":"7654:18:65","nodeType":"YulFunctionCall","src":"7654:18:65"},"nativeSrc":"7654:18:65","nodeType":"YulExpressionStatement","src":"7654:18:65"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7637:8:65","nodeType":"YulIdentifier","src":"7637:8:65"},{"kind":"number","nativeSrc":"7647:3:65","nodeType":"YulLiteral","src":"7647:3:65","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"7634:2:65","nodeType":"YulIdentifier","src":"7634:2:65"},"nativeSrc":"7634:17:65","nodeType":"YulFunctionCall","src":"7634:17:65"},"nativeSrc":"7631:43:65","nodeType":"YulIf","src":"7631:43:65"},{"nativeSrc":"7687:25:65","nodeType":"YulAssignment","src":"7687:25:65","value":{"arguments":[{"kind":"number","nativeSrc":"7700:1:65","nodeType":"YulLiteral","src":"7700:1:65","type":"","value":"2"},{"name":"exponent","nativeSrc":"7703:8:65","nodeType":"YulIdentifier","src":"7703:8:65"}],"functionName":{"name":"exp","nativeSrc":"7696:3:65","nodeType":"YulIdentifier","src":"7696:3:65"},"nativeSrc":"7696:16:65","nodeType":"YulFunctionCall","src":"7696:16:65"},"variableNames":[{"name":"power","nativeSrc":"7687:5:65","nodeType":"YulIdentifier","src":"7687:5:65"}]},{"body":{"nativeSrc":"7743:22:65","nodeType":"YulBlock","src":"7743:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7745:16:65","nodeType":"YulIdentifier","src":"7745:16:65"},"nativeSrc":"7745:18:65","nodeType":"YulFunctionCall","src":"7745:18:65"},"nativeSrc":"7745:18:65","nodeType":"YulExpressionStatement","src":"7745:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7731:5:65","nodeType":"YulIdentifier","src":"7731:5:65"},{"name":"max","nativeSrc":"7738:3:65","nodeType":"YulIdentifier","src":"7738:3:65"}],"functionName":{"name":"gt","nativeSrc":"7728:2:65","nodeType":"YulIdentifier","src":"7728:2:65"},"nativeSrc":"7728:14:65","nodeType":"YulFunctionCall","src":"7728:14:65"},"nativeSrc":"7725:40:65","nodeType":"YulIf","src":"7725:40:65"},{"nativeSrc":"7778:5:65","nodeType":"YulLeave","src":"7778:5:65"}]},"nativeSrc":"7602:191:65","nodeType":"YulCase","src":"7602:191:65","value":{"kind":"number","nativeSrc":"7607:1:65","nodeType":"YulLiteral","src":"7607:1:65","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"7523:4:65","nodeType":"YulIdentifier","src":"7523:4:65"},"nativeSrc":"7516:277:65","nodeType":"YulSwitch","src":"7516:277:65"},{"body":{"nativeSrc":"7925:123:65","nodeType":"YulBlock","src":"7925:123:65","statements":[{"nativeSrc":"7939:28:65","nodeType":"YulAssignment","src":"7939:28:65","value":{"arguments":[{"name":"base","nativeSrc":"7952:4:65","nodeType":"YulIdentifier","src":"7952:4:65"},{"name":"exponent","nativeSrc":"7958:8:65","nodeType":"YulIdentifier","src":"7958:8:65"}],"functionName":{"name":"exp","nativeSrc":"7948:3:65","nodeType":"YulIdentifier","src":"7948:3:65"},"nativeSrc":"7948:19:65","nodeType":"YulFunctionCall","src":"7948:19:65"},"variableNames":[{"name":"power","nativeSrc":"7939:5:65","nodeType":"YulIdentifier","src":"7939:5:65"}]},{"body":{"nativeSrc":"7998:22:65","nodeType":"YulBlock","src":"7998:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8000:16:65","nodeType":"YulIdentifier","src":"8000:16:65"},"nativeSrc":"8000:18:65","nodeType":"YulFunctionCall","src":"8000:18:65"},"nativeSrc":"8000:18:65","nodeType":"YulExpressionStatement","src":"8000:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7986:5:65","nodeType":"YulIdentifier","src":"7986:5:65"},{"name":"max","nativeSrc":"7993:3:65","nodeType":"YulIdentifier","src":"7993:3:65"}],"functionName":{"name":"gt","nativeSrc":"7983:2:65","nodeType":"YulIdentifier","src":"7983:2:65"},"nativeSrc":"7983:14:65","nodeType":"YulFunctionCall","src":"7983:14:65"},"nativeSrc":"7980:40:65","nodeType":"YulIf","src":"7980:40:65"},{"nativeSrc":"8033:5:65","nodeType":"YulLeave","src":"8033:5:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7828:4:65","nodeType":"YulIdentifier","src":"7828:4:65"},{"kind":"number","nativeSrc":"7834:2:65","nodeType":"YulLiteral","src":"7834:2:65","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"7825:2:65","nodeType":"YulIdentifier","src":"7825:2:65"},"nativeSrc":"7825:12:65","nodeType":"YulFunctionCall","src":"7825:12:65"},{"arguments":[{"name":"exponent","nativeSrc":"7842:8:65","nodeType":"YulIdentifier","src":"7842:8:65"},{"kind":"number","nativeSrc":"7852:2:65","nodeType":"YulLiteral","src":"7852:2:65","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"7839:2:65","nodeType":"YulIdentifier","src":"7839:2:65"},"nativeSrc":"7839:16:65","nodeType":"YulFunctionCall","src":"7839:16:65"}],"functionName":{"name":"and","nativeSrc":"7821:3:65","nodeType":"YulIdentifier","src":"7821:3:65"},"nativeSrc":"7821:35:65","nodeType":"YulFunctionCall","src":"7821:35:65"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7877:4:65","nodeType":"YulIdentifier","src":"7877:4:65"},{"kind":"number","nativeSrc":"7883:3:65","nodeType":"YulLiteral","src":"7883:3:65","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"7874:2:65","nodeType":"YulIdentifier","src":"7874:2:65"},"nativeSrc":"7874:13:65","nodeType":"YulFunctionCall","src":"7874:13:65"},{"arguments":[{"name":"exponent","nativeSrc":"7892:8:65","nodeType":"YulIdentifier","src":"7892:8:65"},{"kind":"number","nativeSrc":"7902:2:65","nodeType":"YulLiteral","src":"7902:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7889:2:65","nodeType":"YulIdentifier","src":"7889:2:65"},"nativeSrc":"7889:16:65","nodeType":"YulFunctionCall","src":"7889:16:65"}],"functionName":{"name":"and","nativeSrc":"7870:3:65","nodeType":"YulIdentifier","src":"7870:3:65"},"nativeSrc":"7870:36:65","nodeType":"YulFunctionCall","src":"7870:36:65"}],"functionName":{"name":"or","nativeSrc":"7805:2:65","nodeType":"YulIdentifier","src":"7805:2:65"},"nativeSrc":"7805:111:65","nodeType":"YulFunctionCall","src":"7805:111:65"},"nativeSrc":"7802:246:65","nodeType":"YulIf","src":"7802:246:65"},{"nativeSrc":"8058:57:65","nodeType":"YulAssignment","src":"8058:57:65","value":{"arguments":[{"kind":"number","nativeSrc":"8092:1:65","nodeType":"YulLiteral","src":"8092:1:65","type":"","value":"1"},{"name":"base","nativeSrc":"8095:4:65","nodeType":"YulIdentifier","src":"8095:4:65"},{"name":"exponent","nativeSrc":"8101:8:65","nodeType":"YulIdentifier","src":"8101:8:65"},{"name":"max","nativeSrc":"8111:3:65","nodeType":"YulIdentifier","src":"8111:3:65"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"8073:18:65","nodeType":"YulIdentifier","src":"8073:18:65"},"nativeSrc":"8073:42:65","nodeType":"YulFunctionCall","src":"8073:42:65"},"variableNames":[{"name":"power","nativeSrc":"8058:5:65","nodeType":"YulIdentifier","src":"8058:5:65"},{"name":"base","nativeSrc":"8065:4:65","nodeType":"YulIdentifier","src":"8065:4:65"}]},{"body":{"nativeSrc":"8154:22:65","nodeType":"YulBlock","src":"8154:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8156:16:65","nodeType":"YulIdentifier","src":"8156:16:65"},"nativeSrc":"8156:18:65","nodeType":"YulFunctionCall","src":"8156:18:65"},"nativeSrc":"8156:18:65","nodeType":"YulExpressionStatement","src":"8156:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8131:5:65","nodeType":"YulIdentifier","src":"8131:5:65"},{"arguments":[{"name":"max","nativeSrc":"8142:3:65","nodeType":"YulIdentifier","src":"8142:3:65"},{"name":"base","nativeSrc":"8147:4:65","nodeType":"YulIdentifier","src":"8147:4:65"}],"functionName":{"name":"div","nativeSrc":"8138:3:65","nodeType":"YulIdentifier","src":"8138:3:65"},"nativeSrc":"8138:14:65","nodeType":"YulFunctionCall","src":"8138:14:65"}],"functionName":{"name":"gt","nativeSrc":"8128:2:65","nodeType":"YulIdentifier","src":"8128:2:65"},"nativeSrc":"8128:25:65","nodeType":"YulFunctionCall","src":"8128:25:65"},"nativeSrc":"8125:51:65","nodeType":"YulIf","src":"8125:51:65"},{"nativeSrc":"8185:25:65","nodeType":"YulAssignment","src":"8185:25:65","value":{"arguments":[{"name":"power","nativeSrc":"8198:5:65","nodeType":"YulIdentifier","src":"8198:5:65"},{"name":"base","nativeSrc":"8205:4:65","nodeType":"YulIdentifier","src":"8205:4:65"}],"functionName":{"name":"mul","nativeSrc":"8194:3:65","nodeType":"YulIdentifier","src":"8194:3:65"},"nativeSrc":"8194:16:65","nodeType":"YulFunctionCall","src":"8194:16:65"},"variableNames":[{"name":"power","nativeSrc":"8185:5:65","nodeType":"YulIdentifier","src":"8185:5:65"}]}]},"name":"checked_exp_unsigned","nativeSrc":"7143:1073:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"7173:4:65","nodeType":"YulTypedName","src":"7173:4:65","type":""},{"name":"exponent","nativeSrc":"7179:8:65","nodeType":"YulTypedName","src":"7179:8:65","type":""},{"name":"max","nativeSrc":"7189:3:65","nodeType":"YulTypedName","src":"7189:3:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7197:5:65","nodeType":"YulTypedName","src":"7197:5:65","type":""}],"src":"7143:1073:65"},{"body":{"nativeSrc":"8267:32:65","nodeType":"YulBlock","src":"8267:32:65","statements":[{"nativeSrc":"8277:16:65","nodeType":"YulAssignment","src":"8277:16:65","value":{"name":"value","nativeSrc":"8288:5:65","nodeType":"YulIdentifier","src":"8288:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"8277:7:65","nodeType":"YulIdentifier","src":"8277:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"8222:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8249:5:65","nodeType":"YulTypedName","src":"8249:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8259:7:65","nodeType":"YulTypedName","src":"8259:7:65","type":""}],"src":"8222:77:65"},{"body":{"nativeSrc":"8369:217:65","nodeType":"YulBlock","src":"8369:217:65","statements":[{"nativeSrc":"8379:31:65","nodeType":"YulAssignment","src":"8379:31:65","value":{"arguments":[{"name":"base","nativeSrc":"8405:4:65","nodeType":"YulIdentifier","src":"8405:4:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8387:17:65","nodeType":"YulIdentifier","src":"8387:17:65"},"nativeSrc":"8387:23:65","nodeType":"YulFunctionCall","src":"8387:23:65"},"variableNames":[{"name":"base","nativeSrc":"8379:4:65","nodeType":"YulIdentifier","src":"8379:4:65"}]},{"nativeSrc":"8419:37:65","nodeType":"YulAssignment","src":"8419:37:65","value":{"arguments":[{"name":"exponent","nativeSrc":"8447:8:65","nodeType":"YulIdentifier","src":"8447:8:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8431:15:65","nodeType":"YulIdentifier","src":"8431:15:65"},"nativeSrc":"8431:25:65","nodeType":"YulFunctionCall","src":"8431:25:65"},"variableNames":[{"name":"exponent","nativeSrc":"8419:8:65","nodeType":"YulIdentifier","src":"8419:8:65"}]},{"nativeSrc":"8466:113:65","nodeType":"YulAssignment","src":"8466:113:65","value":{"arguments":[{"name":"base","nativeSrc":"8496:4:65","nodeType":"YulIdentifier","src":"8496:4:65"},{"name":"exponent","nativeSrc":"8502:8:65","nodeType":"YulIdentifier","src":"8502:8:65"},{"kind":"number","nativeSrc":"8512:66:65","nodeType":"YulLiteral","src":"8512:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"8475:20:65","nodeType":"YulIdentifier","src":"8475:20:65"},"nativeSrc":"8475:104:65","nodeType":"YulFunctionCall","src":"8475:104:65"},"variableNames":[{"name":"power","nativeSrc":"8466:5:65","nodeType":"YulIdentifier","src":"8466:5:65"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"8305:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8344:4:65","nodeType":"YulTypedName","src":"8344:4:65","type":""},{"name":"exponent","nativeSrc":"8350:8:65","nodeType":"YulTypedName","src":"8350:8:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8363:5:65","nodeType":"YulTypedName","src":"8363:5:65","type":""}],"src":"8305:281:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: failed to get token de\")\n\n        mstore(add(memPtr, 32), \"cimals\")\n\n    }\n\n    function abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: sharedDecimals must be\")\n\n        mstore(add(memPtr, 32), \" <= decimals\")\n\n    }\n\n    function abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n        store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint8(x, y) -> diff {\n        x := cleanup_t_uint8(x)\n        y := cleanup_t_uint8(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xff) { panic_error_0x11() }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"61010060405234801561001157600080fd5b506040516162a83803806162a8833981016040819052610030916102f4565b6000805460ff191690558383838382828181808061004d3361022b565b6001600160a01b0316608052505060ff1660a0525061006d905084610284565b61007682610284565b61007f81610284565b6001600160a01b03841660c081905260408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600092839290916100c9919061039e565b600060405180830381855afa9150503d8060008114610104576040519150601f19603f3d011682016040523d82523d6000602084013e610109565b606091505b5091509150816101345760405162461bcd60e51b815260040161012b906103f7565b60405180910390fd5b60008180602001905181019061014a9190610407565b90508060ff168660ff1611156101725760405162461bcd60e51b815260040161012b90610479565b61017c868261049f565b61018790600a6105ca565b60e0526040516001600160a01b038816907f0b673f021ff9a27bbe58f282908695869e130b3103029190387b83650806c2c390600090a26040516001600160a01b038516906000907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd908290a35050600780546001600160a01b0390931661010002610100600160a81b031990931692909217909155506105df9650505050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6001600160a01b0381166102ab576040516342bcdf7f60e11b815260040160405180910390fd5b50565b60006001600160a01b0382165b92915050565b6102ca816102ae565b81146102ab57600080fd5b80516102bb816102c1565b60ff81166102ca565b80516102bb816102e0565b6000806000806080858703121561030d5761030d600080fd5b600061031987876102d5565b945050602061032a878288016102e9565b935050604061033b878288016102d5565b925050606061034c878288016102d5565b91505092959194509250565b60005b8381101561037357818101518382015260200161035b565b50506000910152565b6000610386825190565b610394818560208601610358565b9290920192915050565b60006103aa828461037c565b9392505050565b602681526000602082017f50726f78794f46543a206661696c656420746f2067657420746f6b656e20646581526563696d616c7360d01b602082015291505b5060400190565b602080825281016102bb816103b1565b60006020828403121561041c5761041c600080fd5b600061042884846102e9565b949350505050565b602c81526000602082017f50726f78794f46543a20736861726564446563696d616c73206d75737420626581526b203c3d20646563696d616c7360a01b602082015291506103f0565b602080825281016102bb81610430565b634e487b7160e01b600052601160045260246000fd5b60ff9182169190811690828203908111156102bb576102bb610489565b80825b60018511156104fb578086048111156104da576104da610489565b60018516156104e857908102905b80026104f48560011c90565b94506104bf565b94509492505050565b600082610513575060016103aa565b81610520575060006103aa565b816001811461053657600281146105405761056d565b60019150506103aa565b60ff84111561055157610551610489565b8360020a91508482111561056757610567610489565b506103aa565b5060208310610133831016604e8410600b84101617156105a0575081810a8381111561059b5761059b610489565b6103aa565b6105ad84848460016104bc565b925090508184048111156105c3576105c3610489565b0292915050565b600060ff831692506103aa6000198484610504565b60805160a05160c05160e051615bfd6106ab60003960008181612c67015281816130e20152613504015260008181610c6d01528181611011015281816119e3015281816128fe01528181612993015281816129cc01528181612a0d0152818161316e0152818161355e015281816136e901526139ed01526000610881015260008181610a8a01528181610cc101528181610eda01528181610f820152818161136f01528181611cd1015281816120e701528181612264015281816126ac01526132c00152615bfd6000f3fe6080604052600436106103b75760003560e01c80637dc0d1d0116101f2578063baf3292d1161010d578063df2a5b3b116100a0578063f2fde38b1161006f578063f2fde38b14610c1e578063f5ecbdbc14610c3e578063fc0c546a14610c5e578063fdff235b14610c9157600080fd5b8063df2a5b3b14610ba9578063e6a20ae614610bc9578063eaffd49a14610bde578063eb8d72b714610bfe57600080fd5b8063cc01e9b6116100dc578063cc01e9b614610b1c578063cc7015ae14610b3c578063d1deba1f14610b69578063d708a46814610b7c57600080fd5b8063baf3292d14610aac578063c1e9132e14610acc578063c446183414610ae6578063cbed8b9c14610afc57600080fd5b806393a61d6c116101855780639f38369a116101545780639f38369a14610a18578063a4c51df514610a38578063a6c3d16514610a58578063b353aaa714610a7857600080fd5b806393a61d6c14610949578063950c8a74146109765780639b19251a146109965780639bdb9812146109c657600080fd5b80638cfd8f5c116101c15780638cfd8f5c146108a35780638da5cb5b146108db57806390436567146109075780639358928b1461093457600080fd5b80637dc0d1d0146108085780638456cb591461083a57806384e69c691461084f578063857749b01461086f57600080fd5b80634c42899a116102e257806364aff9ec11610275578063715018a611610244578063715018a61461079c5780637533d788146107a857806376203b48146107d55780637adbf973146107e857600080fd5b806364aff9ec1461072957806366ad5c8a14610749578063695ef6bf1461076957806369c1e7b81461077c57600080fd5b806353489d6c116102b157806353489d6c1461068257806353d6fd59146106a25780635b8c41e6146106c25780635c975abb1461071157600080fd5b80634c42899a146105e65780634cec6256146106085780634ed2c662146106355780634f4ba0f41461065557600080fd5b80632dbbec081161035a5780633f1f4fa4116103295780633f1f4fa41461056f5780633f4ba83a1461059c57806342d65a8d146105b157806344770515146105d157600080fd5b80632dbbec08146104c7578063365260b4146104e75780633c4ec39b146105155780633d8b38f61461054f57600080fd5b80630df37483116103965780630df374831461043457806310ddb13714610454578063182b4b89146104745780632488eec8146104a757600080fd5b80621d3567146103bc57806301ffc9a7146103de57806307e0db1714610414575b600080fd5b3480156103c857600080fd5b506103dc6103d7366004613cbc565b610cbe565b005b3480156103ea57600080fd5b506103fe6103f9366004613d77565b610e84565b60405161040b9190613da2565b60405180910390f35b34801561042057600080fd5b506103dc61042f366004613db0565b610ebb565b34801561044057600080fd5b506103dc61044f366004613de2565b610f44565b34801561046057600080fd5b506103dc61046f366004613db0565b610f63565b34801561048057600080fd5b5061049461048f366004613e44565b610fb7565b60405161040b9796959493929190613e9a565b3480156104b357600080fd5b506103dc6104c2366004613de2565b61111c565b3480156104d357600080fd5b506103dc6104e2366004613db0565b6111be565b3480156104f357600080fd5b50610507610502366004613f15565b61121c565b60405161040b929190613f8f565b34801561052157600080fd5b50610542610530366004613db0565b600d6020526000908152604090205481565b60405161040b9190613faa565b34801561055b57600080fd5b506103fe61056a366004613fb8565b611271565b34801561057b57600080fd5b5061054261058a366004613db0565b60036020526000908152604090205481565b3480156105a857600080fd5b506103dc61133e565b3480156105bd57600080fd5b506103dc6105cc366004613fb8565b611350565b3480156105dd57600080fd5b50610542600081565b3480156105f257600080fd5b506105fb600081565b60405161040b919061401c565b34801561061457600080fd5b50610542610623366004613db0565b600a6020526000908152604090205481565b34801561064157600080fd5b506103dc61065036600461402a565b6113d6565b34801561066157600080fd5b50610542610670366004613db0565b60096020526000908152604090205481565b34801561068e57600080fd5b506103dc61069d366004613de2565b61141b565b3480156106ae57600080fd5b506103dc6106bd36600461404b565b6114bd565b3480156106ce57600080fd5b506105426106dd366004614177565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561071d57600080fd5b5060005460ff166103fe565b34801561073557600080fd5b506103dc6107443660046141f6565b611531565b34801561075557600080fd5b506103dc610764366004613cbc565b611635565b6103dc610777366004614246565b6116d2565b34801561078857600080fd5b506103dc610797366004613de2565b61173d565b3480156103dc57600080fd5b3480156107b457600080fd5b506107c86107c3366004613db0565b6117df565b60405161040b9190614330565b6103dc6107e3366004614341565b611879565b3480156107f457600080fd5b506103dc610803366004614418565b6118b5565b34801561081457600080fd5b5060075461082d9061010090046001600160a01b031681565b60405161040b919061447b565b34801561084657600080fd5b506103dc61192d565b34801561085b57600080fd5b506103dc61086a366004614177565b61193d565b34801561087b57600080fd5b506105fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108af57600080fd5b506105426108be366004614489565b600260209081526000928352604080842090915290825290205481565b3480156108e757600080fd5b5060005461010090046001600160a01b03165b60405161040b91906144c5565b34801561091357600080fd5b50610542610922366004613db0565b600c6020526000908152604090205481565b34801561094057600080fd5b506105426119df565b34801561095557600080fd5b50610542610964366004613db0565b600b6020526000908152604090205481565b34801561098257600080fd5b506004546108fa906001600160a01b031681565b3480156109a257600080fd5b506103fe6109b1366004614418565b60106020526000908152604090205460ff1681565b3480156109d257600080fd5b506103fe6109e1366004614177565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b348015610a2457600080fd5b506107c8610a33366004613db0565b611a68565b348015610a4457600080fd5b50610507610a533660046144d3565b611b47565b348015610a6457600080fd5b506103dc610a73366004613fb8565b611bd6565b348015610a8457600080fd5b5061082d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610ab857600080fd5b506103dc610ac7366004614418565b611c5f565b348015610ad857600080fd5b506007546103fe9060ff1681565b348015610af257600080fd5b5061054261271081565b348015610b0857600080fd5b506103dc610b173660046145ae565b611cb2565b348015610b2857600080fd5b506103dc610b37366004613de2565b611d47565b348015610b4857600080fd5b50610542610b57366004613db0565b60086020526000908152604090205481565b6103dc610b77366004613cbc565b611de9565b348015610b8857600080fd5b50610542610b97366004613db0565b600e6020526000908152604090205481565b348015610bb557600080fd5b506103dc610bc4366004614631565b611eed565b348015610bd557600080fd5b506105fb600181565b348015610bea57600080fd5b506103dc610bf9366004614655565b611f4c565b348015610c0a57600080fd5b506103dc610c19366004613fb8565b612039565b348015610c2a57600080fd5b506103dc610c39366004614418565b612093565b348015610c4a57600080fd5b506107c8610c59366004614745565b6120cd565b348015610c6a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006108fa565b348015610c9d57600080fd5b50610542610cac366004613db0565b600f6020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d0f5760405162461bcd60e51b8152600401610d06906147e0565b60405180910390fd5b61ffff861660009081526001602052604081208054610d2d90614806565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5990614806565b8015610da65780601f10610d7b57610100808354040283529160200191610da6565b820191906000526020600020905b815481529060010190602001808311610d8957829003601f168201915b50505050509050805186869050148015610dc1575060008151115b8015610de9575080516020820120604051610ddf908890889061483f565b6040518091039020145b610e055760405162461bcd60e51b8152600401610d0690614892565b610e7b8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061217292505050565b50505050505050565b60006001600160e01b03198216631f7ecdf760e01b1480610eb557506301ffc9a760e01b6001600160e01b03198316145b92915050565b610ec36121eb565b6040516307e0db1760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307e0db1790610f0f9084906004016148ac565b600060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050505050565b610f4c6121eb565b61ffff909116600090815260036020526040902055565b610f6b6121eb565b6040516310ddb13760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906310ddb13790610f0f9084906004016148ac565b6001600160a01b038381166000908152601060209081526040808320548151928301918290526007546341976e0960e01b90925292938493849384938493849360ff16928492909182916101009004166341976e096110397f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa158015611056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107a91906148c5565b90529050611088818a61221b565b61ffff8b166000908152600b6020908152604080832054600a835281842054600884528285205460099094529190932054919a50909850919650909450925042620151806110d685836148fc565b11156110e7578594508093506110f4565b6110f1868661490f565b94505b828061110b575087861115801561110b5750868511155b985050509397509397509397909450565b6111246121eb565b61ffff82166000908152600860205260409020548110156111575760405162461bcd60e51b8152600401610d0690614965565b61ffff8216600090815260096020526040908190205490517f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f6939161119f918591908590614975565b60405180910390a161ffff909116600090815260096020526040902055565b6111c66121eb565b61ffff811660009081526001602052604081206111e291613be7565b7f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd378160405161121191906148ac565b60405180910390a150565b6000806112628888888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061223392505050565b91509150965096945050505050565b61ffff83166000908152600160205260408120805482919061129290614806565b80601f01602080910402602001604051908101604052809291908181526020018280546112be90614806565b801561130b5780601f106112e05761010080835404028352916020019161130b565b820191906000526020600020905b8154815290600101906020018083116112ee57829003601f168201915b50505050509050838360405161132292919061483f565b60405180910390208180519060200120149150505b9392505050565b6113466121eb565b61134e6122f0565b565b6113586121eb565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d906113a8908690869086906004016149c0565b600060405180830381600087803b1580156113c257600080fd5b505af1158015610e7b573d6000803e3d6000fd5b6113de6121eb565b6007805460ff19168215159081179091556040517fe628f01c6f4e6340598d3a2913390db68e8859379eebff349e170f2b16baed0090600090a250565b6114236121eb565b61ffff82166000908152600960205260409020548111156114565760405162461bcd60e51b8152600401610d0690614a24565b61ffff8216600090815260086020526040908190205490517f7babeac42ccbb33537ee421fedc4db7b5f251b5d2a3fa5c0ff4b35b2d783be879161149e918591908590614975565b60405180910390a161ffff909116600090815260086020526040902055565b6114c56121eb565b816001600160a01b03167ff6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb826040516114fe9190613da2565b60405180910390a26001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6115396121eb565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906115689030906004016144c5565b602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a991906148c5565b9050808211156115d057818160405163cf47918160e01b8152600401610d06929190613f8f565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5846040516116139190613faa565b60405180910390a361162f6001600160a01b038516848461233c565b50505050565b3330146116545760405162461bcd60e51b8152600401610d0690614a77565b6116ca8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061239792505050565b505050505050565b6116ca858585856116e66020870187614418565b6116f66040880160208901614418565b6117036040890189614a87565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123ee92505050565b6117456121eb565b61ffff82166000908152600c60205260409020548110156117785760405162461bcd60e51b8152600401610d0690614b30565b61ffff82166000908152600d6020526040908190205490517f95dc51094cd27cf4ee3fd0dbb50cf96f8df1629c822f5434c4a34d7eb03c9724916117c0918591908590614975565b60405180910390a161ffff9091166000908152600d6020526040902055565b600160205260009081526040902080546117f890614806565b80601f016020809104026020016040519081016040528092919081815260200182805461182490614806565b80156118715780601f1061184657610100808354040283529160200191611871565b820191906000526020600020905b81548152906001019060200180831161185457829003601f168201915b505050505081565b60075460ff1661189b5760405162461bcd60e51b8152600401610d0690614b74565b6118ab88888888888888886124a8565b5050505050505050565b6118bd6121eb565b6118c68161254c565b6007546040516001600160a01b0380841692610100900416907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6119356121eb565b61134e612573565b6119456121eb565b61ffff83166000908152600560205260408082209051611966908590614ba6565b9081526040805191829003602090810183206001600160401b038616600090815291522091909155611999908390614ba6565b60405180910390207f48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee84836040516119d2929190614bc1565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6391906148c5565b905090565b61ffff8116600090815260016020526040812080546060929190611a8b90614806565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab790614806565b8015611b045780601f10611ad957610100808354040283529160200191611b04565b820191906000526020600020905b815481529060010190602001808311611ae757829003601f168201915b505050505090508051600003611b2c5760405162461bcd60e51b8152600401610d0690614c10565b611337600060148351611b3f91906148fc565b8391906125b0565b600080611bc48b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c908190840183828082843760009201919091525061267892505050565b91509150995099975050505050505050565b611bde6121eb565b818130604051602001611bf393929190614c48565b60408051601f1981840301815291815261ffff8516600090815260016020522090611c1e9082614cfd565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611c52939291906149c0565b60405180910390a1505050565b611c676121eb565b600480546001600160a01b0319166001600160a01b0383161790556040517f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906112119083906144c5565b611cba6121eb565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611d0e9088908890889088908890600401614dbf565b600060405180830381600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050505050505050565b611d4f6121eb565b61ffff82166000908152600d6020526040902054811115611d825760405162461bcd60e51b8152600401610d0690614e45565b61ffff82166000908152600c6020526040908190205490517f2c42997a938a029910a78e7c28d762b349c28e70f3a89c1fbccbb1a46020b15991611dca918591908590614975565b60405180910390a161ffff9091166000908152600c6020526040902055565b61ffff861660009081526001602052604081208054611e0790614806565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3390614806565b8015611e805780601f10611e5557610100808354040283529160200191611e80565b820191906000526020600020905b815481529060010190602001808311611e6357829003601f168201915b50505050509050805186869050148015611e9b575060008151115b8015611ec3575080516020820120604051611eb9908890889061483f565b6040518091039020145b611edf5760405162461bcd60e51b8152600401610d0690614892565b610e7b87878787878761273a565b611ef56121eb565b61ffff80841660009081526002602090815260408083209386168352929052819020829055517f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090611c5290859085908590614e55565b333014611f6b5760405162461bcd60e51b8152600401610d0690614ea4565b611f763086866128da565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf86604051611fb69190613faa565b60405180910390a3604051633fe79aed60e11b81526001600160a01b03861690637fcf35da908390611ffa908e908e908e908e908e908d908d908d90600401614eb4565b600060405180830381600088803b15801561201457600080fd5b5087f1158015612028573d6000803e3d6000fd5b505050505050505050505050505050565b6120416121eb565b61ffff8316600090815260016020526040902061205f828483614f1f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051611c52939291906149c0565b61209b6121eb565b6001600160a01b0381166120c15760405162461bcd60e51b8152600401610d0690615024565b6120ca81612a96565b50565b604051633d7b2f6f60e21b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f5ecbdbc90612122908890889030908890600401615034565b600060405180830381865afa15801561213f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261216791908101906150c1565b90505b949350505050565b6000806121d55a60966366ad5c8a60e01b8989898960405160240161219a94939291906150fb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612aef565b91509150816116ca576116ca8686868685612b79565b6000546001600160a01b0361010090910416331461134e5760405162461bcd60e51b8152600401610d0690615178565b6000806122288484612c16565b905061216a81612c47565b600080600061224a8761224588612c5f565b612cb5565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906122a1908b90309086908b908b90600401615188565b6040805180830381865afa1580156122bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e191906151d6565b92509250509550959350505050565b6122f8612ce4565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161233291906144c5565b60405180910390a1565b6123928363a9059cbb60e01b848460405160240161235b929190615209565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612d06565b505050565b60006123a38282612d98565b905060ff81166123be576123b985858585612dce565b610f3d565b60001960ff8216016123d6576123b985858585612e5c565b60405162461bcd60e51b8152600401610d069061524b565b60006123fc87828481613065565b612405856130da565b5090506124148888888461311a565b9050600081116124365760405162461bcd60e51b8152600401610d069061528f565b60006124458761224584612c5f565b90506124558882878787346131e0565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516124949190613faa565b60405180910390a450979650505050505050565b611d3c8888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506124f59150506020890189614418565b61250560408a0160208b01614418565b61251260408b018b614a87565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061333c92505050565b6001600160a01b0381166120ca576040516342bcdf7f60e11b815260040160405180910390fd5b61257b613403565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123253390565b6060816125be81601f61490f565b10156125dc5760405162461bcd60e51b8152600401610d06906152c4565b6125e6828461490f565b845110156126065760405162461bcd60e51b8152600401610d06906152fc565b606082158015612625576040519150600082526020820160405261266f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561265e578051835260209283019201612646565b5050858452601f01601f1916604052505b50949350505050565b6000806000612692338a61268b8b612c5f565b8a8a613426565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906126e9908d90309086908b908b90600401615188565b6040805180830381865afa158015612705573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272991906151d6565b925092505097509795505050505050565b61ffff8616600090815260056020526040808220905161275d908890889061483f565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806127a15760405162461bcd60e51b8152600401610d069061534c565b8083836040516127b292919061483f565b6040518091039020146127d75760405162461bcd60e51b8152600401610d069061539a565b61ffff871660009081526005602052604080822090516127fa908990899061483f565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612892918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061239792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516128c99594939291906153aa565b60405180910390a150505050505050565b60006128e4613403565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906129339087906004016144c5565b602060405180830381865afa158015612950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297491906148c5565b9050306001600160a01b038616036129bf576129ba6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858561233c565b6129f4565b6129f46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868686613467565b6040516370a0823160e01b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612a429088906004016144c5565b602060405180830381865afa158015612a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8391906148c5565b612a8d91906148fc565b95945050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6000606060008060008661ffff166001600160401b03811115612b1457612b1461407e565b6040519080825280601f01601f191660200182016040528015612b3e576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612b60578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612baa9190614ba6565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612c0790879087908790879087906153e7565b60405180910390a15050505050565b6040805160208101909152600081526040518060200160405280612c3e856000015185613488565b90529392505050565b8051600090610eb590670de0b6b3a764000090615452565b600080612c8c7f000000000000000000000000000000000000000000000000000000000000000084615452565b90506001600160401b03811115610eb55760405162461bcd60e51b8152600401610d069061549a565b606060008383604051602001612ccd939291906154e0565b604051602081830303815290604052905092915050565b60005460ff1661134e5760405162461bcd60e51b8152600401610d0690615542565b6000612d5b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134949092919063ffffffff16565b9050805160001480612d7c575080806020019051810190612d7c919061555d565b6123925760405162461bcd60e51b8152600401610d06906155c5565b6000612da582600161490f565b83511015612dc55760405162461bcd60e51b8152600401610d06906155ff565b50016001015190565b600080612dda836134a3565b90925090506001600160a01b038216612df35761dead91505b6000612dfe826134fd565b9050612e0b878483613532565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf83604051612e4b9190613faa565b60405180910390a350505050505050565b6000806000806000612e6d866135cf565b945094509450945094506000600660008b61ffff1661ffff16815260200190815260200160002089604051612ea29190614ba6565b90815260408051602092819003830190206001600160401b038b166000908152925281205460ff169150612ed5856134fd565b905081612f4357612ee78b3083613532565b61ffff8c16600090815260066020526040908190209051919250600191612f0f908d90614ba6565b90815260408051602092819003830190206001600160401b038d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b612f95577f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d86604051612f8191906144c5565b60405180910390a15050505050505061162f565b8a8a8a8a8a8a868a60008a612fb3578b6001600160401b0316612fb5565b5a5b9050600080612fe75a609663eaffd49a60e01b8e8e8e8d8d8d8d8d60405160240161219a98979695949392919061560f565b915091508115613040578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88490613032908e908e908690615694565b60405180910390a25061304d565b61304d8b8b8b8b85612b79565b50505050505050505050505050505050505050505050565b60006130708361365b565b61ffff808716600090815260026020908152604080832093891683529290522054909150806130b15760405162461bcd60e51b8152600401610d06906156e8565b6130bb838261490f565b8210156116ca5760405162461bcd60e51b8152600401610d069061572c565b6000806131077f00000000000000000000000000000000000000000000000000000000000000008461573c565b905061311381846148fc565b9150915091565b6000613124613403565b6001600160a01b038516331461314c5760405162461bcd60e51b8152600401610d069061578f565b613157858584613687565b604051632770a7eb60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639dc29fac906131a59088908690600401615209565b600060405180830381600087803b1580156131bf57600080fd5b505af11580156131d3573d6000803e3d6000fd5b5093979650505050505050565b61ffff8616600090815260016020526040812080546131fe90614806565b80601f016020809104026020016040519081016040528092919081815260200182805461322a90614806565b80156132775780601f1061324c57610100808354040283529160200191613277565b820191906000526020600020905b81548152906001019060200180831161325a57829003601f168201915b50505050509050805160000361329f5760405162461bcd60e51b8152600401610d06906157ec565b6132aa87875161383b565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490613301908b9086908c908c908c908c906004016157fc565b6000604051808303818588803b15801561331a57600080fd5b505af115801561332e573d6000803e3d6000fd5b505050505050505050505050565b6000613354896001846001600160401b038916613065565b61335d876130da565b50905061336c8a8a8a8461311a565b90506000811161338e5760405162461bcd60e51b8152600401610d069061528f565b600061339e338a61268b85612c5f565b90506133ae8a82878787346131e0565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516133ed9190613faa565b60405180910390a4509998505050505050505050565b60005460ff161561134e5760405162461bcd60e51b8152600401610d0690615885565b6060600185856001600160a01b038916858760405160200161344d96959493929190615895565b604051602081830303815290604052905095945050505050565b61162f846323b872dd60e01b85858560405160240161235b939291906158f1565b6000611337828461590c565b606061216a848460008561387c565b600080806134b18482612d98565b60ff161480156134c2575082516029145b6134de5760405162461bcd60e51b8152600401610d069061595f565b6134e983600d613918565b91506134f6836021613955565b9050915091565b6000610eb57f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661590c565b600061353c613403565b61354783858461398b565b6040516340c10f1960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906135959086908690600401615209565b600060405180830381600087803b1580156135af57600080fd5b505af11580156135c3573d6000803e3d6000fd5b50939695505050505050565b6000808060608160016135e28783612d98565b60ff16146136025760405162461bcd60e51b8152600401610d069061595f565b61360d86600d613918565b935061361a866021613955565b9250613627866029613b3f565b9450613634866049613955565b9050613650605180885161364891906148fc565b8891906125b0565b915091939590929450565b600060228251101561367f5760405162461bcd60e51b8152600401610d06906159a3565b506022015190565b6001600160a01b03831660009081526010602052604090205460ff1680156136af5750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e096137117f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa15801561372e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375291906148c5565b90529050613760818561221b565b61ffff86166000908152600b6020908152604080832054600a8352818420546008845282852054600990945291909320549395504293909190818711156137b95760405162461bcd60e51b8152600401610d06906159e7565b620151806137c785876148fc565b11156137eb5761ffff8a166000908152600b602052604090208590558692506137f8565b6137f5878461490f565b92505b808311156138185760405162461bcd60e51b8152600401610d0690615a2b565b505061ffff9097166000908152600a602052604090209690965550505050505050565b61ffff82166000908152600360205260408120549081900361385c57506127105b808211156123925760405162461bcd60e51b8152600401610d0690615a6d565b60608247101561389e5760405162461bcd60e51b8152600401610d0690615ac0565b600080866001600160a01b031685876040516138ba9190614ba6565b60006040518083038185875af1925050503d80600081146138f7576040519150601f19603f3d011682016040523d82523d6000602084013e6138fc565b606091505b509150915061390d87838387613b75565b979650505050505050565b600061392582601461490f565b835110156139455760405162461bcd60e51b8152600401610d0690615afc565b500160200151600160601b900490565b600061396282600861490f565b835110156139825760405162461bcd60e51b8152600401610d0690615b37565b50016008015190565b6001600160a01b03831660009081526010602052604090205460ff1680156139b35750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e09613a157f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa158015613a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5691906148c5565b90529050613a64818561221b565b61ffff86166000908152600f6020908152604080832054600e835281842054600c845282852054600d9094529190932054939550429390919081871115613abd5760405162461bcd60e51b8152600401610d06906159e7565b62015180613acb85876148fc565b1115613aef5761ffff8a166000908152600f60205260409020859055869250613afc565b613af9878461490f565b92505b80831115613b1c5760405162461bcd60e51b8152600401610d0690615a2b565b505061ffff9097166000908152600e602052604090209690965550505050505050565b6000613b4c82602061490f565b83511015613b6c5760405162461bcd60e51b8152600401610d0690615b73565b50016020015190565b60608315613bb4578251600003613bad576001600160a01b0385163b613bad5760405162461bcd60e51b8152600401610d0690615bb7565b508161216a565b61216a8383815115613bc95781518083602001fd5b8060405162461bcd60e51b8152600401610d069190614330565b5050565b508054613bf390614806565b6000825580601f10613c03575050565b601f0160209004906000526020600020908101906120ca91905b80821115613c315760008155600101613c1d565b5090565b61ffff81165b81146120ca57600080fd5b8035610eb581613c35565b60008083601f840112613c6657613c66600080fd5b5081356001600160401b03811115613c8057613c80600080fd5b602083019150836001820283011115613c9b57613c9b600080fd5b9250929050565b6001600160401b038116613c3b565b8035610eb581613ca2565b60008060008060008060808789031215613cd857613cd8600080fd5b6000613ce48989613c46565b96505060208701356001600160401b03811115613d0357613d03600080fd5b613d0f89828a01613c51565b95509550506040613d2289828a01613cb1565b93505060608701356001600160401b03811115613d4157613d41600080fd5b613d4d89828a01613c51565b92509250509295509295509295565b6001600160e01b03198116613c3b565b8035610eb581613d5c565b600060208284031215613d8c57613d8c600080fd5b600061216a8484613d6c565b8015155b82525050565b60208101610eb58284613d98565b600060208284031215613dc557613dc5600080fd5b600061216a8484613c46565b80613c3b565b8035610eb581613dd1565b60008060408385031215613df857613df8600080fd5b6000613e048585613c46565b9250506020613e1585828601613dd7565b9150509250929050565b60006001600160a01b038216610eb5565b613c3b81613e1f565b8035610eb581613e30565b600080600060608486031215613e5c57613e5c600080fd5b6000613e688686613e39565b9350506020613e7986828701613c46565b9250506040613e8a86828701613dd7565b9150509250925092565b80613d9c565b60e08101613ea8828a613d98565b613eb56020830189613e94565b613ec26040830188613e94565b613ecf6060830187613e94565b613edc6080830186613e94565b613ee960a0830185613e94565b613ef660c0830184613d98565b98975050505050505050565b801515613c3b565b8035610eb581613f02565b60008060008060008060a08789031215613f3157613f31600080fd5b6000613f3d8989613c46565b9650506020613f4e89828a01613dd7565b9550506040613f5f89828a01613dd7565b9450506060613f7089828a01613f0a565b93505060808701356001600160401b03811115613d4157613d41600080fd5b60408101613f9d8285613e94565b6113376020830184613e94565b60208101610eb58284613e94565b600080600060408486031215613fd057613fd0600080fd5b6000613fdc8686613c46565b93505060208401356001600160401b03811115613ffb57613ffb600080fd5b61400786828701613c51565b92509250509250925092565b60ff8116613d9c565b60208101610eb58284614013565b60006020828403121561403f5761403f600080fd5b600061216a8484613f0a565b6000806040838503121561406157614061600080fd5b600061406d8585613e39565b9250506020613e1585828601613f0a565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156140b9576140b961407e565b6040525050565b60006140cb60405190565b90506140d78282614094565b919050565b60006001600160401b038211156140f5576140f561407e565b601f19601f83011660200192915050565b82818337506000910152565b6000614125614120846140dc565b6140c0565b90508281526020810184848401111561414057614140600080fd5b61414b848285614106565b509392505050565b600082601f83011261416757614167600080fd5b813561216a848260208601614112565b60008060006060848603121561418f5761418f600080fd5b600061419b8686613c46565b93505060208401356001600160401b038111156141ba576141ba600080fd5b6141c686828701614153565b9250506040613e8a86828701613cb1565b6000610eb582613e1f565b613c3b816141d7565b8035610eb5816141e2565b60008060006060848603121561420e5761420e600080fd5b600061421a86866141eb565b9350506020613e7986828701613e39565b60006060828403121561424057614240600080fd5b50919050565b600080600080600060a0868803121561426157614261600080fd5b600061426d8888613e39565b955050602061427e88828901613c46565b945050604061428f88828901613dd7565b93505060606142a088828901613dd7565b92505060808601356001600160401b038111156142bf576142bf600080fd5b6142cb8882890161422b565b9150509295509295909350565b60005b838110156142f35781810151838201526020016142db565b50506000910152565b6000614306825190565b80845260208401935061431d8185602086016142d8565b601f19601f8201165b9093019392505050565b6020808252810161133781846142fc565b60008060008060008060008060e0898b03121561436057614360600080fd5b600061436c8b8b613e39565b985050602061437d8b828c01613c46565b975050604061438e8b828c01613dd7565b965050606061439f8b828c01613dd7565b95505060808901356001600160401b038111156143be576143be600080fd5b6143ca8b828c01613c51565b945094505060a06143dd8b828c01613cb1565b92505060c08901356001600160401b038111156143fc576143fc600080fd5b6144088b828c0161422b565b9150509295985092959890939650565b60006020828403121561442d5761442d600080fd5b600061216a8484613e39565b6000610eb56001600160a01b038316614450565b90565b6001600160a01b031690565b6000610eb582614439565b6000610eb58261445c565b613d9c81614467565b60208101610eb58284614472565b6000806040838503121561449f5761449f600080fd5b60006144ab8585613c46565b9250506020613e1585828601613c46565b613d9c81613e1f565b60208101610eb582846144bc565b600080600080600080600080600060e08a8c0312156144f4576144f4600080fd5b60006145008c8c613c46565b99505060206145118c828d01613dd7565b98505060406145228c828d01613dd7565b97505060608a01356001600160401b0381111561454157614541600080fd5b61454d8c828d01613c51565b965096505060806145608c828d01613cb1565b94505060a06145718c828d01613f0a565b93505060c08a01356001600160401b0381111561459057614590600080fd5b61459c8c828d01613c51565b92509250509295985092959850929598565b6000806000806000608086880312156145c9576145c9600080fd5b60006145d58888613c46565b95505060206145e688828901613c46565b94505060406145f788828901613dd7565b93505060608601356001600160401b0381111561461657614616600080fd5b61462288828901613c51565b92509250509295509295909350565b60008060006060848603121561464957614649600080fd5b6000613e688686613c46565b6000806000806000806000806000806101008b8d03121561467857614678600080fd5b60006146848d8d613c46565b9a505060208b01356001600160401b038111156146a3576146a3600080fd5b6146af8d828e01613c51565b995099505060406146c28d828e01613cb1565b97505060606146d38d828e01613dd7565b96505060806146e48d828e01613e39565b95505060a06146f58d828e01613dd7565b94505060c08b01356001600160401b0381111561471457614714600080fd5b6147208d828e01613c51565b935093505060e06147338d828e01613dd7565b9150509295989b9194979a5092959850565b6000806000806080858703121561475e5761475e600080fd5b600061476a8787613c46565b945050602061477b87828801613c46565b935050604061478c87828801613e39565b925050606061479d87828801613dd7565b91505092959194509250565b601e81526000602082017f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000815291505b5060200190565b60208082528101610eb5816147a9565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061481a57607f821691505b602082108103614240576142406147f0565b6000614839838584614106565b50500190565b600061216a82848661482c565b602681526000602082017f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f8152651b9d1c9858dd60d21b602082015291505b5060400190565b60208082528101610eb58161484c565b61ffff8116613d9c565b60208101610eb582846148a2565b8051610eb581613dd1565b6000602082840312156148da576148da600080fd5b600061216a84846148ba565b634e487b7160e01b600052601160045260246000fd5b81810381811115610eb557610eb56148e6565b80820180821115610eb557610eb56148e6565b602681526000602082017f4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e815265081b1a5b5a5d60d21b6020820152915061488b565b60208082528101610eb581614922565b6060810161498382866148a2565b6149906020830185613e94565b61216a6040830184613e94565b81835260006020840193506149b3838584614106565b601f19601f840116614326565b604081016149ce82866148a2565b818103602083015261216781848661499d565b602681526000602082017f53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79815265081b1a5b5a5d60d21b6020820152915061488b565b60208082528101610eb5816149e1565b602681526000602082017f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062658152650204c7a4170760d41b6020820152915061488b565b60208082528101610eb581614a34565b6000808335601e1936859003018112614aa257614aa2600080fd5b8084019250823591506001600160401b03821115614ac257614ac2600080fd5b602083019250600182023603831315614add57614add600080fd5b509250929050565b602e81526000602082017f4461696c79206c696d6974203c2073696e676c6520726563656976652074726181526d1b9cd858dd1a5bdb881b1a5b5a5d60921b6020820152915061488b565b60208082528101610eb581614ae5565b601781526000602082017f73656e64416e6443616c6c2069732064697361626c6564000000000000000000815291506147d9565b60208082528101610eb581614b40565b6000614b8e825190565b614b9c8185602086016142d8565b9290920192915050565b60006113378284614b84565b6001600160401b038116613d9c565b60408101614bcf82856148a2565b6113376020830184614bb2565b601d81526000602082017f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000815291506147d9565b60208082528101610eb581614bdc565b6000610eb58260601b90565b6000610eb582614c20565b613d9c614c4382613e1f565b614c2c565b6000614c5582858761482c565b9150614c618284614c37565b506014019392505050565b6000610eb561444d8381565b614c8183614c6c565b815460001960089490940293841b1916921b91909117905550565b6000612392818484614c78565b81811015613be357614cbc600082614c9c565b600101614ca9565b601f821115612392576000818152602090206020601f85010481016020851015614ceb5750805b610f3d6020601f860104830182614ca9565b81516001600160401b03811115614d1657614d1661407e565b614d208254614806565b614d2b828285614cc4565b6020601f831160018114614d5f5760008415614d475750858201515b600019600886021c19811660028602178655506116ca565b600085815260208120601f198616915b82811015614d8f5788850151825560209485019460019092019101614d6f565b86831015614dab5784890151600019601f89166008021c191682555b600160028802018855505050505050505050565b60808101614dcd82886148a2565b614dda60208301876148a2565b614de76040830186613e94565b818103606083015261390d81848661499d565b602e81526000602082017f73696e676c652072656365697665207472616e73616374696f6e206c696d697481526d080f8811185a5b1e481b1a5b5a5d60921b6020820152915061488b565b60208082528101610eb581614dfa565b60608101614e6382866148a2565b61499060208301856148a2565b601f81526000602082017f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f726500815291506147d9565b60208082528101610eb581614e70565b60c08101614ec2828b6148a2565b8181036020830152614ed581898b61499d565b9050614ee46040830188614bb2565b614ef16060830187613e94565b614efe6080830186613e94565b81810360a0830152614f1181848661499d565b9a9950505050505050505050565b826001600160401b03811115614f3757614f3761407e565b614f418254614806565b614f4c828285614cc4565b6000601f831160018114614f805760008415614f685750858201355b600019600886021c1981166002860217865550610e7b565b600085815260208120601f198616915b82811015614fb05788850135825560209485019460019092019101614f90565b86831015614fcc57600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b6020820152915061488b565b60208082528101610eb581614fe1565b6080810161504282876148a2565b61504f60208301866148a2565b61505c60408301856144bc565b612a8d6060830184613e94565b6000615077614120846140dc565b90508281526020810184848401111561509257615092600080fd5b61414b8482856142d8565b600082601f8301126150b1576150b1600080fd5b815161216a848260208601615069565b6000602082840312156150d6576150d6600080fd5b81516001600160401b038111156150ef576150ef600080fd5b61216a8482850161509d565b6080810161510982876148a2565b818103602083015261511b81866142fc565b905061512a6040830185614bb2565b818103606083015261513c81846142fc565b9695505050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006147d9565b60208082528101610eb581615146565b60a0810161519682886148a2565b6151a360208301876144bc565b81810360408301526151b581866142fc565b90506151c46060830185613d98565b818103608083015261390d81846142fc565b600080604083850312156151ec576151ec600080fd5b60006151f885856148ba565b9250506020613e15858286016148ba565b60408101613f9d82856144bc565b601c81526000602082017f4f4654436f72653a20756e6b6e6f776e207061636b6574207479706500000000815291506147d9565b60208082528101610eb581615217565b601981526000602082017f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c00000000000000815291506147d9565b60208082528101610eb58161525b565b600e81526000602082016d736c6963655f6f766572666c6f7760901b815291506147d9565b60208082528101610eb58161529f565b6011815260006020820170736c6963655f6f75744f66426f756e647360781b815291506147d9565b60208082528101610eb5816152d4565b602381526000602082017f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737381526261676560e81b6020820152915061488b565b60208082528101610eb58161530c565b602181526000602082017f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f618152601960fa1b6020820152915061488b565b60208082528101610eb58161535c565b608081016153b882886148a2565b81810360208301526153cb81868861499d565b90506153da6040830185614bb2565b61513c6060830184613e94565b60a081016153f582886148a2565b818103602083015261540781876142fc565b90506154166040830186614bb2565b818103606083015261542881856142fc565b9050818103608083015261390d81846142fc565b634e487b7160e01b600052601260045260246000fd5b6000826154615761546161543c565b500490565b601a81526000602082017f4f4654436f72653a20616d6f756e745344206f766572666c6f77000000000000815291506147d9565b60208082528101610eb581615466565b6000610eb58260f81b90565b613d9c60ff82166154aa565b6000610eb58260c01b90565b613d9c6001600160401b0382166154c2565b60006154ec82866154b6565b6001820191506154fc8285613e94565b60208201915061550c82846154ce565b506008019392505050565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b815291506147d9565b60208082528101610eb581615517565b8051610eb581613f02565b60006020828403121561557257615572600080fd5b600061216a8484615552565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b6020820152915061488b565b60208082528101610eb58161557e565b6013815260006020820172746f55696e74385f6f75744f66426f756e647360681b815291506147d9565b60208082528101610eb5816155d5565b610100810161561e828b6148a2565b8181036020830152615630818a6142fc565b905061563f6040830189614bb2565b61564c6060830188613e94565b61565960808301876144bc565b61566660a0830186613e94565b81810360c083015261567881856142fc565b905061568760e0830184613e94565b9998505050505050505050565b606080825281016156a581866142fc565b90506149906020830185614bb2565b601a81526000602082017f4c7a4170703a206d696e4761734c696d6974206e6f7420736574000000000000815291506147d9565b60208082528101610eb5816156b4565b601b81526000602082017f4c7a4170703a20676173206c696d697420697320746f6f206c6f770000000000815291506147d9565b60208082528101610eb5816156f8565b60008261574b5761574b61543c565b500690565b602281526000602082017f50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c81526132b960f11b6020820152915061488b565b60208082528101610eb581615750565b603081526000602082017f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742081526f61207472757374656420736f7572636560801b6020820152915061488b565b60208082528101610eb58161579f565b60c0810161580a82896148a2565b818103602083015261581c81886142fc565b9050818103604083015261583081876142fc565b905061583f60608301866144bc565b61584c60808301856144bc565b81810360a0830152613ef681846142fc565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b815291506147d9565b60208082528101610eb58161585e565b60006158a182896154b6565b6001820191506158b18288613e94565b6020820191506158c182876154ce565b6008820191506158d18286613e94565b6020820191506158e182856154ce565b600882019150613ef68284614b84565b606081016158ff82866144bc565b61499060208301856144bc565b818102808215838204851417615924576159246148e6565b5092915050565b601881526000602082017f4f4654436f72653a20696e76616c6964207061796c6f61640000000000000000815291506147d9565b60208082528101610eb58161592b565b601c81526000602082017f4c7a4170703a20696e76616c69642061646170746572506172616d7300000000815291506147d9565b60208082528101610eb58161596f565b601f81526000602082017f53696e676c65205472616e73616374696f6e204c696d69742045786365656400815291506147d9565b60208082528101610eb5816159b3565b601e81526000602082017f4461696c79205472616e73616374696f6e204c696d6974204578636565640000815291506147d9565b60208082528101610eb5816159f7565b60208082527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765910190815260006147d9565b60208082528101610eb581615a3b565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b6020820152915061488b565b60208082528101610eb581615a7d565b6015815260006020820174746f416464726573735f6f75744f66426f756e647360581b815291506147d9565b60208082528101610eb581615ad0565b6014815260006020820173746f55696e7436345f6f75744f66426f756e647360601b815291506147d9565b60208082528101610eb581615b0c565b6015815260006020820174746f427974657333325f6f75744f66426f756e647360581b815291506147d9565b60208082528101610eb581615b47565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506147d9565b60208082528101610eb581615b8356fea26469706673582212202dd3bfbed4cf2b38a77b8421f23e9c02cc363552cb91f700dae1e9b12b7d1e4764736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x62A8 CODESIZE SUB DUP1 PUSH2 0x62A8 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x30 SWAP2 PUSH2 0x2F4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP4 DUP4 DUP4 DUP4 DUP3 DUP3 DUP2 DUP2 DUP1 DUP1 PUSH2 0x4D CALLER PUSH2 0x22B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP POP PUSH1 0xFF AND PUSH1 0xA0 MSTORE POP PUSH2 0x6D SWAP1 POP DUP5 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x76 DUP3 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x7F DUP2 PUSH2 0x284 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0xC0 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x104 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x109 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B SWAP1 PUSH2 0x3F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP7 PUSH1 0xFF AND GT ISZERO PUSH2 0x172 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B SWAP1 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x17C DUP7 DUP3 PUSH2 0x49F JUMP JUMPDEST PUSH2 0x187 SWAP1 PUSH1 0xA PUSH2 0x5CA JUMP JUMPDEST PUSH1 0xE0 MSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xB673F021FF9A27BBE58F282908695869E130B3103029190387B83650806C2C3 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 DUP3 SWAP1 LOG3 POP POP PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE POP PUSH2 0x5DF SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2AB JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CA DUP2 PUSH2 0x2AE JUMP JUMPDEST DUP2 EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2BB DUP2 PUSH2 0x2C1 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x2CA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2BB DUP2 PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP8 DUP8 PUSH2 0x2D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x32A DUP8 DUP3 DUP9 ADD PUSH2 0x2E9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x33B DUP8 DUP3 DUP9 ADD PUSH2 0x2D5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x34C DUP8 DUP3 DUP9 ADD PUSH2 0x2D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x373 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x35B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x386 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x394 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x358 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 DUP5 PUSH2 0x37C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206661696C656420746F2067657420746F6B656E206465 DUP2 MSTORE PUSH6 0x63696D616C73 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2BB DUP2 PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41C JUMPI PUSH2 0x41C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP5 PUSH2 0x2E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A20736861726564446563696D616C73206D757374206265 DUP2 MSTORE PUSH12 0x203C3D20646563696D616C73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2BB DUP2 PUSH2 0x430 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x2BB JUMPI PUSH2 0x2BB PUSH2 0x489 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x4FB JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x4DA JUMPI PUSH2 0x4DA PUSH2 0x489 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x4E8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x4F4 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x4BF JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x513 JUMPI POP PUSH1 0x1 PUSH2 0x3AA JUMP JUMPDEST DUP2 PUSH2 0x520 JUMPI POP PUSH1 0x0 PUSH2 0x3AA JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x536 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x540 JUMPI PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x3AA JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x551 JUMPI PUSH2 0x551 PUSH2 0x489 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x567 JUMPI PUSH2 0x567 PUSH2 0x489 JUMP JUMPDEST POP PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x5A0 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH2 0x59B PUSH2 0x489 JUMP JUMPDEST PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x5AD DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x4BC JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x5C3 JUMPI PUSH2 0x5C3 PUSH2 0x489 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP4 AND SWAP3 POP PUSH2 0x3AA PUSH1 0x0 NOT DUP5 DUP5 PUSH2 0x504 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x5BFD PUSH2 0x6AB PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x2C67 ADD MSTORE DUP2 DUP2 PUSH2 0x30E2 ADD MSTORE PUSH2 0x3504 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0xC6D ADD MSTORE DUP2 DUP2 PUSH2 0x1011 ADD MSTORE DUP2 DUP2 PUSH2 0x19E3 ADD MSTORE DUP2 DUP2 PUSH2 0x28FE ADD MSTORE DUP2 DUP2 PUSH2 0x2993 ADD MSTORE DUP2 DUP2 PUSH2 0x29CC ADD MSTORE DUP2 DUP2 PUSH2 0x2A0D ADD MSTORE DUP2 DUP2 PUSH2 0x316E ADD MSTORE DUP2 DUP2 PUSH2 0x355E ADD MSTORE DUP2 DUP2 PUSH2 0x36E9 ADD MSTORE PUSH2 0x39ED ADD MSTORE PUSH1 0x0 PUSH2 0x881 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0xA8A ADD MSTORE DUP2 DUP2 PUSH2 0xCC1 ADD MSTORE DUP2 DUP2 PUSH2 0xEDA ADD MSTORE DUP2 DUP2 PUSH2 0xF82 ADD MSTORE DUP2 DUP2 PUSH2 0x136F ADD MSTORE DUP2 DUP2 PUSH2 0x1CD1 ADD MSTORE DUP2 DUP2 PUSH2 0x20E7 ADD MSTORE DUP2 DUP2 PUSH2 0x2264 ADD MSTORE DUP2 DUP2 PUSH2 0x26AC ADD MSTORE PUSH2 0x32C0 ADD MSTORE PUSH2 0x5BFD PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7DC0D1D0 GT PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC1E JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0xC3E JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC5E JUMPI DUP1 PUSH4 0xFDFF235B EQ PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0xBA9 JUMPI DUP1 PUSH4 0xE6A20AE6 EQ PUSH2 0xBC9 JUMPI DUP1 PUSH4 0xEAFFD49A EQ PUSH2 0xBDE JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0xBFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCC01E9B6 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xCC01E9B6 EQ PUSH2 0xB1C JUMPI DUP1 PUSH4 0xCC7015AE EQ PUSH2 0xB3C JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0xB69 JUMPI DUP1 PUSH4 0xD708A468 EQ PUSH2 0xB7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0xAAC JUMPI DUP1 PUSH4 0xC1E9132E EQ PUSH2 0xACC JUMPI DUP1 PUSH4 0xC4461834 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0xAFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x9F38369A GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xA4C51DF5 EQ PUSH2 0xA38 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0xA58 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0xA78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x949 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x976 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x996 JUMPI DUP1 PUSH4 0x9BDB9812 EQ PUSH2 0x9C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x8A3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8DB JUMPI DUP1 PUSH4 0x90436567 EQ PUSH2 0x907 JUMPI DUP1 PUSH4 0x9358928B EQ PUSH2 0x934 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x83A JUMPI DUP1 PUSH4 0x84E69C69 EQ PUSH2 0x84F JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C42899A GT PUSH2 0x2E2 JUMPI DUP1 PUSH4 0x64AFF9EC GT PUSH2 0x275 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x244 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0x76203B48 EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0x7ADBF973 EQ PUSH2 0x7E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x64AFF9EC EQ PUSH2 0x729 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x749 JUMPI DUP1 PUSH4 0x695EF6BF EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0x69C1E7B8 EQ PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x53489D6C GT PUSH2 0x2B1 JUMPI DUP1 PUSH4 0x53489D6C EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0x53D6FD59 EQ PUSH2 0x6A2 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C42899A EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x4CEC6256 EQ PUSH2 0x608 JUMPI DUP1 PUSH4 0x4ED2C662 EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DBBEC08 GT PUSH2 0x35A JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x329 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x59C JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x5B1 JUMPI DUP1 PUSH4 0x44770515 EQ PUSH2 0x5D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x4C7 JUMPI DUP1 PUSH4 0x365260B4 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0x3C4EC39B EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDF37483 GT PUSH2 0x396 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x182B4B89 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x414 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0xCBE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D77 JUMP JUMPDEST PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0xEBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0xF44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0xF63 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x494 PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x3E44 JUMP JUMPDEST PUSH2 0xFB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x4C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x111C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x4E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x11BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x507 PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F15 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP3 SWAP2 SWAP1 PUSH2 0x3F8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x530 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1271 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x133E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1350 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x401C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x623 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x402A JUMP JUMPDEST PUSH2 0x13D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x670 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x69D CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x404B JUMP JUMPDEST PUSH2 0x14BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x3FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x744 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F6 JUMP JUMPDEST PUSH2 0x1531 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x755 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x764 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0x777 CALLDATASIZE PUSH1 0x4 PUSH2 0x4246 JUMP JUMPDEST PUSH2 0x16D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x173D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0x7C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x17DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x4330 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0x7E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x4341 JUMP JUMPDEST PUSH2 0x1879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x82D SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x447B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x192D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x86A CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x8BE CALLDATASIZE PUSH1 0x4 PUSH2 0x4489 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x922 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x19DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x964 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x982 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x8FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x9B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x9E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0xA33 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x507 PUSH2 0xA53 CALLDATASIZE PUSH1 0x4 PUSH2 0x44D3 JUMP JUMPDEST PUSH2 0x1B47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xA73 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x82D PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xAC7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x1C5F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x3FE SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xB17 CALLDATASIZE PUSH1 0x4 PUSH2 0x45AE JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xB37 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x1D47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xB57 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0xB77 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0x1DE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xB97 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4631 JUMP JUMPDEST PUSH2 0x1EED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4655 JUMP JUMPDEST PUSH2 0x1F4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xC19 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xC39 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2093 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0xC59 CALLDATASIZE PUSH1 0x4 PUSH2 0x4745 JUMP JUMPDEST PUSH2 0x20CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x8FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xCAC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x47E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xD2D SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD59 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD89 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xDC1 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xDE9 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xDDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4892 JUMP JUMPDEST PUSH2 0xE7B DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2172 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1F7ECDF7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xEB5 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEC3 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH2 0xF0F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF4C PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xF6B PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH2 0xF0F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH1 0xFF AND SWAP3 DUP5 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x100 SWAP1 DIV AND PUSH4 0x41976E09 PUSH2 0x1039 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1056 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x107A SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x1088 DUP2 DUP11 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP2 SWAP11 POP SWAP1 SWAP9 POP SWAP2 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP TIMESTAMP PUSH3 0x15180 PUSH2 0x10D6 DUP6 DUP4 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x10E7 JUMPI DUP6 SWAP5 POP DUP1 SWAP4 POP PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x10F1 DUP7 DUP7 PUSH2 0x490F JUMP JUMPDEST SWAP5 POP JUMPDEST DUP3 DUP1 PUSH2 0x110B JUMPI POP DUP8 DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x110B JUMPI POP DUP7 DUP6 GT ISZERO JUMPDEST SWAP9 POP POP POP SWAP4 SWAP8 POP SWAP4 SWAP8 POP SWAP4 SWAP8 SWAP1 SWAP5 POP JUMP JUMPDEST PUSH2 0x1124 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1157 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4965 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 PUSH2 0x119F SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x11C6 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x11E2 SWAP2 PUSH2 0x3BE7 JUMP JUMPDEST PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1262 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2233 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x1292 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x12BE SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x130B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12E0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x130B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x12EE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1322 SWAP3 SWAP2 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1346 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x134E PUSH2 0x22F0 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1358 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x13A8 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x49C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE7B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x13DE PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xE628F01C6F4E6340598D3A2913390DB68E8859379EEBFF349E170F2B16BAED00 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x1423 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4A24 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x7BABEAC42CCBB33537EE421FEDC4DB7B5F251B5D2A3FA5C0FF4B35B2D783BE87 SWAP2 PUSH2 0x149E SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x14C5 PUSH2 0x21EB JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF6019EC0A78D156D249A1EC7579E2321F6AC7521D6E1D2EACF90BA4A184DCCEB DUP3 PUSH1 0x40 MLOAD PUSH2 0x14FE SWAP2 SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1568 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A9 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x15D0 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP3 SWAP2 SWAP1 PUSH2 0x3F8F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6D25BE279134F4ECAA4770AFF0C3D916D9E7C5EF37B65ED95DBDBA411F5D54D5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1613 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x162F PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 DUP5 PUSH2 0x233C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1654 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4A77 JUMP JUMPDEST PUSH2 0x16CA DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2397 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x16CA DUP6 DUP6 DUP6 DUP6 PUSH2 0x16E6 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x16F6 PUSH1 0x40 DUP9 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x1703 PUSH1 0x40 DUP10 ADD DUP10 PUSH2 0x4A87 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x23EE SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1745 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x95DC51094CD27CF4EE3FD0DBB50CF96F8DF1629C822F5434C4A34D7EB03C9724 SWAP2 PUSH2 0x17C0 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x17F8 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1824 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1871 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1846 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1871 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1854 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x189B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4B74 JUMP JUMPDEST PUSH2 0x18AB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x24A8 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18BD PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x18C6 DUP2 PUSH2 0x254C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1935 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x134E PUSH2 0x2573 JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1966 SWAP1 DUP6 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1999 SWAP1 DUP4 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x48A980EEA4EA1C540209E2F9F32A4C2EDF51FAB37B1D21F453868301ECB6E2EE DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19D2 SWAP3 SWAP2 SWAP1 PUSH2 0x4BC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A63 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x1A8B SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB7 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1B04 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1AD9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B04 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AE7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1B2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1B3F SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x25B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BC4 DUP12 DUP12 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE DUP15 SWAP4 POP DUP14 SWAP3 POP SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2678 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP10 POP SWAP10 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BDE PUSH2 0x21EB JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BF3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C48 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1C1E SWAP1 DUP3 PUSH2 0x4CFD JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1C67 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH2 0x1211 SWAP1 DUP4 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH2 0x1CBA PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1D0E SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4DBF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D4F PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1D82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4E45 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x2C42997A938A029910A78E7C28D762B349C28E70F3A89C1FBCCBB1A46020B159 SWAP2 PUSH2 0x1DCA SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1E07 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E33 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E80 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E55 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E80 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E63 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x1E9B JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x1EC3 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x1EB9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x1EDF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4892 JUMP JUMPDEST PUSH2 0xE7B DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x273A JUMP JUMPDEST PUSH2 0x1EF5 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE DUP2 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE MLOAD PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH2 0x1C52 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x4E55 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1F6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4EA4 JUMP JUMPDEST PUSH2 0x1F76 ADDRESS DUP7 DUP7 PUSH2 0x28DA JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP7 PUSH1 0x40 MLOAD PUSH2 0x1FB6 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0x3FE79AED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x7FCF35DA SWAP1 DUP4 SWAP1 PUSH2 0x1FFA SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EB4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL ISZERO DUP1 ISZERO PUSH2 0x2028 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2041 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x205F DUP3 DUP5 DUP4 PUSH2 0x4F1F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49C0 JUMP JUMPDEST PUSH2 0x209B PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5024 JUMP JUMPDEST PUSH2 0x20CA DUP2 PUSH2 0x2A96 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH2 0x2122 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5034 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2167 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x50C1 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x21D5 GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x219A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x50FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x16CA JUMPI PUSH2 0x16CA DUP7 DUP7 DUP7 DUP7 DUP6 PUSH2 0x2B79 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV AND CALLER EQ PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5178 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2228 DUP5 DUP5 PUSH2 0x2C16 JUMP JUMPDEST SWAP1 POP PUSH2 0x216A DUP2 PUSH2 0x2C47 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x224A DUP8 PUSH2 0x2245 DUP9 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2CB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x22A1 SWAP1 DUP12 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5188 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22E1 SWAP2 SWAP1 PUSH2 0x51D6 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x22F8 PUSH2 0x2CE4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2332 SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2392 DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x235B SWAP3 SWAP2 SWAP1 PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x2D06 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A3 DUP3 DUP3 PUSH2 0x2D98 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP2 AND PUSH2 0x23BE JUMPI PUSH2 0x23B9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2DCE JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP3 AND ADD PUSH2 0x23D6 JUMPI PUSH2 0x23B9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2E5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x524B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23FC DUP8 DUP3 DUP5 DUP2 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x2405 DUP6 PUSH2 0x30DA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2414 DUP9 DUP9 DUP9 DUP5 PUSH2 0x311A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x2436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x528F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2445 DUP8 PUSH2 0x2245 DUP5 PUSH2 0x2C5F JUMP JUMPDEST SWAP1 POP PUSH2 0x2455 DUP9 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x31E0 JUMP JUMPDEST DUP7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x2494 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D3C DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x24F5 SWAP2 POP POP PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2505 PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2512 PUSH1 0x40 DUP12 ADD DUP12 PUSH2 0x4A87 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x333C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x257B PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2325 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x25BE DUP2 PUSH1 0x1F PUSH2 0x490F JUMP JUMPDEST LT ISZERO PUSH2 0x25DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x52C4 JUMP JUMPDEST PUSH2 0x25E6 DUP3 DUP5 PUSH2 0x490F JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2606 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x52FC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x266F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x265E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2646 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2692 CALLER DUP11 PUSH2 0x268B DUP12 PUSH2 0x2C5F JUMP JUMPDEST DUP11 DUP11 PUSH2 0x3426 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x26E9 SWAP1 DUP14 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5188 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2705 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2729 SWAP2 SWAP1 PUSH2 0x51D6 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x275D SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x27A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x534C JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27B2 SWAP3 SWAP2 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x27D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x539A JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x27FA SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x483F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2892 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2397 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x28C9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E4 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2933 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2950 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2974 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SUB PUSH2 0x29BF JUMPI PUSH2 0x29BA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH2 0x233C JUMP JUMPDEST PUSH2 0x29F4 JUMP JUMPDEST PUSH2 0x29F4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 DUP7 PUSH2 0x3467 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2A42 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A83 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST PUSH2 0x2A8D SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B14 JUMPI PUSH2 0x2B14 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2B3E JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2B60 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2BAA SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x2C07 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x53E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2C3E DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0x3488 JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0xEB5 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x5452 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C8C PUSH32 0x0 DUP5 PUSH2 0x5452 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x549A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2CCD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5542 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3494 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x2D7C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D7C SWAP2 SWAP1 PUSH2 0x555D JUMP JUMPDEST PUSH2 0x2392 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x55C5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA5 DUP3 PUSH1 0x1 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x2DC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x55FF JUMP JUMPDEST POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2DDA DUP4 PUSH2 0x34A3 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2DF3 JUMPI PUSH2 0xDEAD SWAP2 POP JUMPDEST PUSH1 0x0 PUSH2 0x2DFE DUP3 PUSH2 0x34FD JUMP JUMPDEST SWAP1 POP PUSH2 0x2E0B DUP8 DUP5 DUP4 PUSH2 0x3532 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP4 PUSH1 0x40 MLOAD PUSH2 0x2E4B SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2E6D DUP7 PUSH2 0x35CF JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP12 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP10 PUSH1 0x40 MLOAD PUSH2 0x2EA2 SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP PUSH2 0x2ED5 DUP6 PUSH2 0x34FD JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F43 JUMPI PUSH2 0x2EE7 DUP12 ADDRESS DUP4 PUSH2 0x3532 JUMP JUMPDEST PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 PUSH2 0x2F0F SWAP1 DUP14 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND EXTCODESIZE PUSH2 0x2F95 JUMPI PUSH32 0x9AEDF5FDBA8716DB3B6705CA00150643309995D4F818A249ED6DDE6677E7792D DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F81 SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH2 0x162F JUMP JUMPDEST DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP7 DUP11 PUSH1 0x0 DUP11 PUSH2 0x2FB3 JUMPI DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2FB5 JUMP JUMPDEST GAS JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FE7 GAS PUSH1 0x96 PUSH4 0xEAFFD49A PUSH1 0xE0 SHL DUP15 DUP15 DUP15 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x219A SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x560F JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3040 JUMPI DUP8 MLOAD PUSH1 0x20 DUP10 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP14 AND SWAP1 PUSH32 0xB8890EDBFC1C74692F527444645F95489C3703CC2DF42E4A366F5D06FA6CD884 SWAP1 PUSH2 0x3032 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP7 SWAP1 PUSH2 0x5694 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x304D JUMP JUMPDEST PUSH2 0x304D DUP12 DUP12 DUP12 DUP12 DUP6 PUSH2 0x2B79 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3070 DUP4 PUSH2 0x365B JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP10 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x30B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x56E8 JUMP JUMPDEST PUSH2 0x30BB DUP4 DUP3 PUSH2 0x490F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x572C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3107 PUSH32 0x0 DUP5 PUSH2 0x573C JUMP JUMPDEST SWAP1 POP PUSH2 0x3113 DUP2 DUP5 PUSH2 0x48FC JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3124 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER EQ PUSH2 0x314C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x578F JUMP JUMPDEST PUSH2 0x3157 DUP6 DUP6 DUP5 PUSH2 0x3687 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH2 0x31A5 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x31FE SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x322A SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3277 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x324C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3277 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x325A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x329F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x57EC JUMP JUMPDEST PUSH2 0x32AA DUP8 DUP8 MLOAD PUSH2 0x383B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x3301 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x57FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x331A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x332E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3354 DUP10 PUSH1 0x1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x335D DUP8 PUSH2 0x30DA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x336C DUP11 DUP11 DUP11 DUP5 PUSH2 0x311A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x338E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x528F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x339E CALLER DUP11 PUSH2 0x268B DUP6 PUSH2 0x2C5F JUMP JUMPDEST SWAP1 POP PUSH2 0x33AE DUP11 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x31E0 JUMP JUMPDEST DUP9 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x33ED SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5885 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x344D SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5895 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x162F DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x235B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1337 DUP3 DUP5 PUSH2 0x590C JUMP JUMPDEST PUSH1 0x60 PUSH2 0x216A DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x387C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x34B1 DUP5 DUP3 PUSH2 0x2D98 JUMP JUMPDEST PUSH1 0xFF AND EQ DUP1 ISZERO PUSH2 0x34C2 JUMPI POP DUP3 MLOAD PUSH1 0x29 EQ JUMPDEST PUSH2 0x34DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x595F JUMP JUMPDEST PUSH2 0x34E9 DUP4 PUSH1 0xD PUSH2 0x3918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F6 DUP4 PUSH1 0x21 PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH2 0x590C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353C PUSH2 0x3403 JUMP JUMPDEST PUSH2 0x3547 DUP4 DUP6 DUP5 PUSH2 0x398B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH2 0x3595 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x60 DUP2 PUSH1 0x1 PUSH2 0x35E2 DUP8 DUP4 PUSH2 0x2D98 JUMP JUMPDEST PUSH1 0xFF AND EQ PUSH2 0x3602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x595F JUMP JUMPDEST PUSH2 0x360D DUP7 PUSH1 0xD PUSH2 0x3918 JUMP JUMPDEST SWAP4 POP PUSH2 0x361A DUP7 PUSH1 0x21 PUSH2 0x3955 JUMP JUMPDEST SWAP3 POP PUSH2 0x3627 DUP7 PUSH1 0x29 PUSH2 0x3B3F JUMP JUMPDEST SWAP5 POP PUSH2 0x3634 DUP7 PUSH1 0x49 PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP PUSH2 0x3650 PUSH1 0x51 DUP1 DUP9 MLOAD PUSH2 0x3648 SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST DUP9 SWAP2 SWAP1 PUSH2 0x25B0 JUMP JUMPDEST SWAP2 POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 DUP3 MLOAD LT ISZERO PUSH2 0x367F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59A3 JUMP JUMPDEST POP PUSH1 0x22 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x36AF JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3711 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x372E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3752 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3760 DUP2 DUP6 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x37B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59E7 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x37C7 DUP6 DUP8 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x37EB JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x37F8 JUMP JUMPDEST PUSH2 0x37F5 DUP8 DUP5 PUSH2 0x490F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A2B JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x385C JUMPI POP PUSH2 0x2710 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2392 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A6D JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x389E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5AC0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x38BA SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x38F7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x38FC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x390D DUP8 DUP4 DUP4 DUP8 PUSH2 0x3B75 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3925 DUP3 PUSH1 0x14 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3945 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5AFC JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3962 DUP3 PUSH1 0x8 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3982 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5B37 JUMP JUMPDEST POP ADD PUSH1 0x8 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x39B3 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3A15 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A56 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3A64 DUP2 DUP6 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0xC DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0xD SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3ABD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59E7 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3ACB DUP6 DUP8 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x3AEF JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3AFC JUMP JUMPDEST PUSH2 0x3AF9 DUP8 DUP5 PUSH2 0x490F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3B1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A2B JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B4C DUP3 PUSH1 0x20 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3B6C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5B73 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3BB4 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x3BAD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3BAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5BB7 JUMP JUMPDEST POP DUP2 PUSH2 0x216A JUMP JUMPDEST PUSH2 0x216A DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3BC9 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP2 SWAP1 PUSH2 0x4330 JUMP JUMPDEST POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3BF3 SWAP1 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3C03 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20CA SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3C31 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3C1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x20CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3C35 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3C66 JUMPI PUSH2 0x3C66 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3C80 JUMPI PUSH2 0x3C80 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3C9B JUMPI PUSH2 0x3C9B PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3CD8 JUMPI PUSH2 0x3CD8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3CE4 DUP10 DUP10 PUSH2 0x3C46 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D03 JUMPI PUSH2 0x3D03 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D0F DUP10 DUP3 DUP11 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x40 PUSH2 0x3D22 DUP10 DUP3 DUP11 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D41 JUMPI PUSH2 0x3D41 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D4D DUP10 DUP3 DUP11 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D8C JUMPI PUSH2 0x3D8C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3D6C JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x3D98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DC5 JUMPI PUSH2 0x3DC5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3C46 JUMP JUMPDEST DUP1 PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3DD1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DF8 JUMPI PUSH2 0x3DF8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E04 DUP6 DUP6 PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x3E1F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3E30 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E5C JUMPI PUSH2 0x3E5C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E68 DUP7 DUP7 PUSH2 0x3E39 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E79 DUP7 DUP3 DUP8 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E8A DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x3EA8 DUP3 DUP11 PUSH2 0x3D98 JUMP JUMPDEST PUSH2 0x3EB5 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EC2 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3ECF PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EDC PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EE9 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EF6 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x3D98 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3F02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3F31 JUMPI PUSH2 0x3F31 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F3D DUP10 DUP10 PUSH2 0x3C46 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3F4E DUP10 DUP3 DUP11 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3F5F DUP10 DUP3 DUP11 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x3F70 DUP10 DUP3 DUP11 ADD PUSH2 0x3F0A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D41 JUMPI PUSH2 0x3D41 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3F9D DUP3 DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FD0 JUMPI PUSH2 0x3FD0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FDC DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3FFB JUMPI PUSH2 0x3FFB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4007 DUP7 DUP3 DUP8 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x403F JUMPI PUSH2 0x403F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3F0A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4061 JUMPI PUSH2 0x4061 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x406D DUP6 DUP6 PUSH2 0x3E39 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3F0A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x40B9 JUMPI PUSH2 0x40B9 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40CB PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x40D7 DUP3 DUP3 PUSH2 0x4094 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x40F5 JUMPI PUSH2 0x40F5 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4125 PUSH2 0x4120 DUP5 PUSH2 0x40DC JUMP JUMPDEST PUSH2 0x40C0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4140 JUMPI PUSH2 0x4140 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414B DUP5 DUP3 DUP6 PUSH2 0x4106 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4167 JUMPI PUSH2 0x4167 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x216A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4112 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x418F JUMPI PUSH2 0x418F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x419B DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41BA JUMPI PUSH2 0x41BA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4153 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E8A DUP7 DUP3 DUP8 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x3E1F JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x420E JUMPI PUSH2 0x420E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x421A DUP7 DUP7 PUSH2 0x41EB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E79 DUP7 DUP3 DUP8 ADD PUSH2 0x3E39 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4240 JUMPI PUSH2 0x4240 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4261 JUMPI PUSH2 0x4261 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x426D DUP9 DUP9 PUSH2 0x3E39 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x427E DUP9 DUP3 DUP10 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x428F DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x42A0 DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x42BF JUMPI PUSH2 0x42BF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42CB DUP9 DUP3 DUP10 ADD PUSH2 0x422B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42F3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x42DB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4306 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x431D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x42D8 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1337 DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x4360 JUMPI PUSH2 0x4360 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x436C DUP12 DUP12 PUSH2 0x3E39 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x437D DUP12 DUP3 DUP13 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x438E DUP12 DUP3 DUP13 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x439F DUP12 DUP3 DUP13 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x43BE JUMPI PUSH2 0x43BE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43CA DUP12 DUP3 DUP13 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0xA0 PUSH2 0x43DD DUP12 DUP3 DUP13 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x43FC JUMPI PUSH2 0x43FC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4408 DUP12 DUP3 DUP13 ADD PUSH2 0x422B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x442D JUMPI PUSH2 0x442D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3E39 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4450 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x4439 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x445C JUMP JUMPDEST PUSH2 0x3D9C DUP2 PUSH2 0x4467 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x4472 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x449F JUMPI PUSH2 0x449F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x44AB DUP6 DUP6 PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3C46 JUMP JUMPDEST PUSH2 0x3D9C DUP2 PUSH2 0x3E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x44BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x44F4 JUMPI PUSH2 0x44F4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4500 DUP13 DUP13 PUSH2 0x3C46 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x4511 DUP13 DUP3 DUP14 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x4522 DUP13 DUP3 DUP14 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4541 JUMPI PUSH2 0x4541 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x454D DUP13 DUP3 DUP14 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x80 PUSH2 0x4560 DUP13 DUP3 DUP14 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x4571 DUP13 DUP3 DUP14 ADD PUSH2 0x3F0A JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4590 JUMPI PUSH2 0x4590 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x459C DUP13 DUP3 DUP14 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45C9 JUMPI PUSH2 0x45C9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x45D5 DUP9 DUP9 PUSH2 0x3C46 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x45E6 DUP9 DUP3 DUP10 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x45F7 DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4616 JUMPI PUSH2 0x4616 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4622 DUP9 DUP3 DUP10 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4649 JUMPI PUSH2 0x4649 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E68 DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4678 JUMPI PUSH2 0x4678 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4684 DUP14 DUP14 PUSH2 0x3C46 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x46A3 JUMPI PUSH2 0x46A3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46AF DUP14 DUP3 DUP15 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x40 PUSH2 0x46C2 DUP14 DUP3 DUP15 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x46D3 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x46E4 DUP14 DUP3 DUP15 ADD PUSH2 0x3E39 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x46F5 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4714 JUMPI PUSH2 0x4714 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4720 DUP14 DUP3 DUP15 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0xE0 PUSH2 0x4733 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x475E JUMPI PUSH2 0x475E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x476A DUP8 DUP8 PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x477B DUP8 DUP3 DUP9 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x478C DUP8 DUP3 DUP9 ADD PUSH2 0x3E39 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x479D DUP8 DUP3 DUP9 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x47A9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x481A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4240 JUMPI PUSH2 0x4240 PUSH2 0x47F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4839 DUP4 DUP6 DUP5 PUSH2 0x4106 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP3 DUP5 DUP7 PUSH2 0x482C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x484C JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x48A2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xEB5 DUP2 PUSH2 0x3DD1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48DA JUMPI PUSH2 0x48DA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x48BA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEB5 JUMPI PUSH2 0xEB5 PUSH2 0x48E6 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEB5 JUMPI PUSH2 0xEB5 PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207472616E73616374696F6E DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4922 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4983 DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x216A PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x49B3 DUP4 DUP6 DUP5 PUSH2 0x4106 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x4326 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x49CE DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2167 DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65207472616E73616374696F6E206C696D6974203E204461696C79 DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x49E1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 DUP2 MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4A34 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x4AA2 JUMPI PUSH2 0x4AA2 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4AC2 JUMPI PUSH2 0x4AC2 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4ADD JUMPI PUSH2 0x4ADD PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207265636569766520747261 DUP2 MSTORE PUSH14 0x1B9CD858DD1A5BDB881B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73656E64416E6443616C6C2069732064697361626C6564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4B40 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B8E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4B9C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x42D8 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1337 DUP3 DUP5 PUSH2 0x4B84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4BCF DUP3 DUP6 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4BB2 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4BDC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x4C20 JUMP JUMPDEST PUSH2 0x3D9C PUSH2 0x4C43 DUP3 PUSH2 0x3E1F JUMP JUMPDEST PUSH2 0x4C2C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C55 DUP3 DUP6 DUP8 PUSH2 0x482C JUMP JUMPDEST SWAP2 POP PUSH2 0x4C61 DUP3 DUP5 PUSH2 0x4C37 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH2 0x444D DUP4 DUP2 JUMP JUMPDEST PUSH2 0x4C81 DUP4 PUSH2 0x4C6C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2392 DUP2 DUP5 DUP5 PUSH2 0x4C78 JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3BE3 JUMPI PUSH2 0x4CBC PUSH1 0x0 DUP3 PUSH2 0x4C9C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x4CA9 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4CEB JUMPI POP DUP1 JUMPDEST PUSH2 0xF3D PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x4CA9 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4D16 JUMPI PUSH2 0x4D16 PUSH2 0x407E JUMP JUMPDEST PUSH2 0x4D20 DUP3 SLOAD PUSH2 0x4806 JUMP JUMPDEST PUSH2 0x4D2B DUP3 DUP3 DUP6 PUSH2 0x4CC4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4D5F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4D47 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x16CA JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4D8F JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4D6F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4DAB JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4DCD DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4DDA PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4DE7 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73696E676C652072656365697665207472616E73616374696F6E206C696D6974 DUP2 MSTORE PUSH14 0x80F8811185A5B1E481B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4E63 DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x48A2 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A2063616C6C6572206D757374206265204F4654436F726500 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x4EC2 DUP3 DUP12 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4ED5 DUP2 DUP10 DUP12 PUSH2 0x499D JUMP JUMPDEST SWAP1 POP PUSH2 0x4EE4 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x4EF1 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x4EFE PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4F11 DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F37 JUMPI PUSH2 0x4F37 PUSH2 0x407E JUMP JUMPDEST PUSH2 0x4F41 DUP3 SLOAD PUSH2 0x4806 JUMP JUMPDEST PUSH2 0x4F4C DUP3 DUP3 DUP6 PUSH2 0x4CC4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F80 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F68 JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FB0 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4F90 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4FCC JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4FE1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5042 DUP3 DUP8 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x504F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x505C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x2A8D PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5077 PUSH2 0x4120 DUP5 PUSH2 0x40DC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5092 JUMPI PUSH2 0x5092 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414B DUP5 DUP3 DUP6 PUSH2 0x42D8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50B1 JUMPI PUSH2 0x50B1 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x216A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5069 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D6 JUMPI PUSH2 0x50D6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x50EF JUMPI PUSH2 0x50EF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x216A DUP5 DUP3 DUP6 ADD PUSH2 0x509D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5109 DUP3 DUP8 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x511B DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x512A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x513C DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5146 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x5196 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x51A3 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x51B5 DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x51C4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x3D98 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x51EC JUMPI PUSH2 0x51EC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51F8 DUP6 DUP6 PUSH2 0x48BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x48BA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3F9D DUP3 DUP6 PUSH2 0x44BC JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20756E6B6E6F776E207061636B6574207479706500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5217 JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E7420746F6F20736D616C6C00000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x525B JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x529F JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x52D4 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 DUP2 MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x530C JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 DUP2 MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x535C JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x53B8 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x53CB DUP2 DUP7 DUP9 PUSH2 0x499D JUMP JUMPDEST SWAP1 POP PUSH2 0x53DA PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x513C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53F5 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5407 DUP2 DUP8 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x5416 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4BB2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x5428 DUP2 DUP6 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5461 JUMPI PUSH2 0x5461 PUSH2 0x543C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E745344206F766572666C6F77000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5466 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0xF8 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3D9C PUSH1 0xFF DUP3 AND PUSH2 0x54AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0xC0 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3D9C PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH2 0x54C2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54EC DUP3 DUP7 PUSH2 0x54B6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x54FC DUP3 DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x550C DUP3 DUP5 PUSH2 0x54CE JUMP JUMPDEST POP PUSH1 0x8 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5517 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xEB5 DUP2 PUSH2 0x3F02 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5572 JUMPI PUSH2 0x5572 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x5552 JUMP JUMPDEST PUSH1 0x2A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E DUP2 MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x557E JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x746F55696E74385F6F75744F66426F756E6473 PUSH1 0x68 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x55D5 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x561E DUP3 DUP12 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5630 DUP2 DUP11 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x563F PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x564C PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x5659 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x5666 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x5678 DUP2 DUP6 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x5687 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x56A5 DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206D696E4761734C696D6974206E6F7420736574000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x56B4 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20676173206C696D697420697320746F6F206C6F770000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x56F8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x574B JUMPI PUSH2 0x574B PUSH2 0x543C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F776E6572206973206E6F742073656E642063616C6C DUP2 MSTORE PUSH2 0x32B9 PUSH1 0xF1 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5750 JUMP JUMPDEST PUSH1 0x30 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 DUP2 MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x579F JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x580A DUP3 DUP10 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x581C DUP2 DUP9 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5830 DUP2 DUP8 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x583F PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x584C PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x3EF6 DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x585E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58A1 DUP3 DUP10 PUSH2 0x54B6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x58B1 DUP3 DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x58C1 DUP3 DUP8 PUSH2 0x54CE JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x58D1 DUP3 DUP7 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x58E1 DUP3 DUP6 PUSH2 0x54CE JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x3EF6 DUP3 DUP5 PUSH2 0x4B84 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x58FF DUP3 DUP7 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x5924 JUMPI PUSH2 0x5924 PUSH2 0x48E6 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20696E76616C6964207061796C6F61640000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x592B JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C69642061646170746572506172616D7300000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x596F JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65205472616E73616374696F6E204C696D69742045786365656400 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x59B3 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565640000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x59F7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C7A4170703A207061796C6F61642073697A6520697320746F6F206C61726765 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5A3B JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F DUP2 MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F416464726573735F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x746F55696E7436345F6F75744F66426F756E6473 PUSH1 0x60 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B0C JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F427974657333325F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B47 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B83 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0xD3 0xBF 0xBE 0xD4 0xCF 0x2B CODESIZE 0xA7 PUSH28 0x8421F23E9C02CC363552CB91F700DAE1E9B12B7D1E4764736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"548:2622:44:-:0;;;781:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:5:22;996:15;;-1:-1:-1;;996:15:22;;;931:13:44;946:15;963:11;976:7;946:15;963:11;946:15;963:11;;;936:32:21;719:10:29;936:18:21;:32::i;:::-;-1:-1:-1;;;;;1201:42:2;;;-1:-1:-1;;1513:32:10::1;;;::::0;-1:-1:-1;6148:35:42::1;::::0;-1:-1:-1;6169:13:42;6148:20:::1;:35::i;:::-;6193:33;6214:11:::0;6193:20:::1;:33::i;:::-;6236:29;6257:7:::0;6236:20:::1;:29::i;:::-;-1:-1:-1::0;;;;;6276:34:42;::::1;;::::0;;;6382:37:::1;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6382:37:42::1;-1:-1:-1::0;;;6382:37:42::1;::::0;;6357:63;;6322:12:::1;::::0;;;6276:34;;6357:63:::1;::::0;6382:37;6357:63:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6321:99;;;;6438:7;6430:58;;;;-1:-1:-1::0;;;6430:58:42::1;;;;;;;:::i;:::-;;;;;;;;;6498:14;6526:4;6515:25;;;;;;;;;;;;:::i;:::-;6498:42;;6578:8;6559:27;;:15;:27;;;;6551:84;;;;-1:-1:-1::0;;;6551:84:42::1;;;;;;;:::i;:::-;6664:26;6675:15:::0;6664:8;:26:::1;:::i;:::-;6657:34;::::0;:2:::1;:34;:::i;:::-;6645:46;::::0;6707:30:::1;::::0;-1:-1:-1;;;;;6707:30:42;::::1;::::0;::::1;::::0;;;::::1;6752:34;::::0;-1:-1:-1;;;;;6752:34:42;::::1;::::0;6774:1:::1;::::0;6752:34:::1;::::0;6774:1;;6752:34:::1;-1:-1:-1::0;;6797:6:42::1;:42:::0;;-1:-1:-1;;;;;6797:42:42;;::::1;;;-1:-1:-1::0;;;;;;6797:42:42;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;548:2622:44;;-1:-1:-1;;;;;;;548:2622:44;2426:187:21;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;2518:6;2534:17;;;-1:-1:-1;;;;;;2534:17:21;;;;;2566:40;;2518:6;;;;;;;2534:17;;2518:6;;2566:40;;;2489:124;2426:187;:::o;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;544:75;485:136;:::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;937:118::-;920:4;909:16;;1008:22;845:86;1061:139;1141:13;;1163:31;1141:13;1163:31;:::i;1206:816::-;1301:6;1309;1317;1325;1374:3;1362:9;1353:7;1349:23;1345:33;1342:120;;;1381:79;197:1;194;187:12;1381:79;1501:1;1526:64;1582:7;1562:9;1526:64;:::i;:::-;1516:74;;1472:128;1639:2;1665:62;1719:7;1710:6;1699:9;1695:22;1665:62;:::i;:::-;1655:72;;1610:127;1776:2;1802:64;1858:7;1849:6;1838:9;1834:22;1802:64;:::i;:::-;1792:74;;1747:129;1915:2;1941:64;1997:7;1988:6;1977:9;1973:22;1941:64;:::i;:::-;1931:74;;1886:129;1206:816;;;;;;;:::o;2285:248::-;2367:1;2377:113;2391:6;2388:1;2385:13;2377:113;;;2467:11;;;2461:18;2448:11;;;2441:39;2413:2;2406:10;2377:113;;;-1:-1:-1;;2524:1:65;2506:16;;2499:27;2285:248::o;2539:386::-;2643:3;2671:38;2703:5;2107:12;;2028:98;2671:38;2822:65;2880:6;2875:3;2868:4;2861:5;2857:16;2822:65;:::i;:::-;2903:16;;;;;2539:386;-1:-1:-1;;2539:386:65:o;2931:271::-;3061:3;3083:93;3172:3;3163:6;3083:93;:::i;:::-;3076:100;2931:271;-1:-1:-1;;;2931:271:65:o;3614:366::-;3841:2;3314:19;;3756:3;3366:4;3357:14;;3523:34;3500:58;;-1:-1:-1;;;3587:2:65;3575:15;;3568:33;3770:74;-1:-1:-1;3853:93:65;-1:-1:-1;3971:2:65;3962:12;;3614:366::o;3986:419::-;4190:2;4203:47;;;4175:18;;4267:131;4175:18;4267:131;:::i;4411:347::-;4479:6;4528:2;4516:9;4507:7;4503:23;4499:32;4496:119;;;4534:79;197:1;194;187:12;4534:79;4654:1;4679:62;4733:7;4713:9;4679:62;:::i;:::-;4669:72;4411:347;-1:-1:-1;;;;4411:347:65:o;5001:366::-;5228:2;3314:19;;5143:3;3366:4;3357:14;;4904:34;4881:58;;-1:-1:-1;;;4968:2:65;4956:15;;4949:39;5157:74;-1:-1:-1;5240:93:65;4764:231;5373:419;5577:2;5590:47;;;5562:18;;5654:131;5562:18;5654:131;:::i;5798:180::-;-1:-1:-1;;;5843:1:65;5836:88;5943:4;5940:1;5933:15;5967:4;5964:1;5957:15;5984:191;920:4;909:16;;;;;;;;6109:9;;;;6131:14;;6128:40;;;6148:18;;:::i;6289:848::-;6381:6;6405:5;6419:712;6440:1;6430:8;6427:15;6419:712;;;6535:4;6530:3;6526:14;6520:4;6517:24;6514:50;;;6544:18;;:::i;:::-;6594:1;6584:8;6580:16;6577:451;;;6998:16;;;;6577:451;7049:15;;7089:32;7112:8;6267:1;6263:13;;6181:102;7089:32;7077:44;;6419:712;;;6289:848;;;;;;;:::o;7143:1073::-;7197:5;7388:8;7378:40;;-1:-1:-1;7409:1:65;7411:5;;7378:40;7437:4;7427:36;;-1:-1:-1;7454:1:65;7456:5;;7427:36;7523:4;7571:1;7566:27;;;;7607:1;7602:191;;;;7516:277;;7566:27;7584:1;7575:10;;7586:5;;;7602:191;7647:3;7637:8;7634:17;7631:43;;;7654:18;;:::i;:::-;7703:8;7700:1;7696:16;7687:25;;7738:3;7731:5;7728:14;7725:40;;;7745:18;;:::i;:::-;7778:5;;;7516:277;;7902:2;7892:8;7889:16;7883:3;7877:4;7874:13;7870:36;7852:2;7842:8;7839:16;7834:2;7828:4;7825:12;7821:35;7805:111;7802:246;;;-1:-1:-1;7948:19:65;;;7983:14;;;7980:40;;;8000:18;;:::i;:::-;8033:5;;7802:246;8073:42;8111:3;8101:8;8095:4;8092:1;8073:42;:::i;:::-;8058:57;;;;8147:4;8142:3;8138:14;8131:5;8128:25;8125:51;;;8156:18;;:::i;:::-;8194:16;;7143:1073;-1:-1:-1;;7143:1073:65:o;8305:281::-;8363:5;920:4;909:16;;8419:37;;8475:104;-1:-1:-1;;8502:8:65;8496:4;8475:104;:::i;8305:281::-;548:2622:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_PAYLOAD_SIZE_LIMIT_448":{"entryPoint":null,"id":448,"parameterSlots":0,"returnSlots":0},"@NO_EXTRA_GAS_3145":{"entryPoint":null,"id":3145,"parameterSlots":0,"returnSlots":0},"@PT_SEND_3148":{"entryPoint":null,"id":3148,"parameterSlots":0,"returnSlots":0},"@PT_SEND_AND_CALL_3151":{"entryPoint":null,"id":3151,"parameterSlots":0,"returnSlots":0},"@_addressToBytes32_4042":{"entryPoint":null,"id":4042,"parameterSlots":1,"returnSlots":1},"@_blockingLzReceive_1068":{"entryPoint":8562,"id":1068,"parameterSlots":4,"returnSlots":0},"@_callOptionalReturn_6649":{"entryPoint":11526,"id":6649,"parameterSlots":2,"returnSlots":0},"@_checkGasLimit_664":{"entryPoint":12389,"id":664,"parameterSlots":4,"returnSlots":0},"@_checkOwner_5430":{"entryPoint":8683,"id":5430,"parameterSlots":0,"returnSlots":0},"@_checkPayloadSize_711":{"entryPoint":14395,"id":711,"parameterSlots":2,"returnSlots":0},"@_creditTo_10911":{"entryPoint":13618,"id":10911,"parameterSlots":3,"returnSlots":1},"@_debitFrom_10876":{"entryPoint":12570,"id":10876,"parameterSlots":4,"returnSlots":1},"@_decodeSendAndCallPayload_4023":{"entryPoint":13775,"id":4023,"parameterSlots":1,"returnSlots":5},"@_decodeSendPayload_3930":{"entryPoint":13475,"id":3930,"parameterSlots":1,"returnSlots":2},"@_encodeSendAndCallPayload_3958":{"entryPoint":13350,"id":3958,"parameterSlots":5,"returnSlots":1},"@_encodeSendPayload_3891":{"entryPoint":11445,"id":3891,"parameterSlots":2,"returnSlots":1},"@_estimateSendAndCallFee_3358":{"entryPoint":9848,"id":3358,"parameterSlots":7,"returnSlots":2},"@_estimateSendFee_3311":{"entryPoint":8755,"id":3311,"parameterSlots":5,"returnSlots":2},"@_getGasLimit_681":{"entryPoint":13915,"id":681,"parameterSlots":1,"returnSlots":1},"@_isContract_3807":{"entryPoint":null,"id":3807,"parameterSlots":1,"returnSlots":1},"@_isEligibleToReceive_10347":{"entryPoint":14731,"id":10347,"parameterSlots":3,"returnSlots":0},"@_isEligibleToSend_10231":{"entryPoint":13959,"id":10231,"parameterSlots":3,"returnSlots":0},"@_ld2sdRate_10411":{"entryPoint":null,"id":10411,"parameterSlots":0,"returnSlots":1},"@_ld2sd_3838":{"entryPoint":11359,"id":3838,"parameterSlots":1,"returnSlots":1},"@_lzSend_622":{"entryPoint":12768,"id":622,"parameterSlots":6,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_3407":{"entryPoint":9111,"id":3407,"parameterSlots":4,"returnSlots":0},"@_pause_5579":{"entryPoint":9587,"id":5579,"parameterSlots":0,"returnSlots":0},"@_removeDust_3874":{"entryPoint":12506,"id":3874,"parameterSlots":1,"returnSlots":2},"@_requireNotPaused_5552":{"entryPoint":13315,"id":5552,"parameterSlots":0,"returnSlots":0},"@_requirePaused_5563":{"entryPoint":11492,"id":5563,"parameterSlots":0,"returnSlots":0},"@_revert_7027":{"entryPoint":null,"id":7027,"parameterSlots":2,"returnSlots":0},"@_sd2ld_3851":{"entryPoint":13565,"id":3851,"parameterSlots":1,"returnSlots":1},"@_sendAck_3538":{"entryPoint":11726,"id":3538,"parameterSlots":4,"returnSlots":0},"@_sendAndCallAck_3793":{"entryPoint":11868,"id":3793,"parameterSlots":4,"returnSlots":0},"@_sendAndCall_3622":{"entryPoint":13116,"id":3622,"parameterSlots":9,"returnSlots":1},"@_send_3483":{"entryPoint":9198,"id":3483,"parameterSlots":7,"returnSlots":1},"@_storeFailedMessage_1102":{"entryPoint":11129,"id":1102,"parameterSlots":5,"returnSlots":0},"@_transferFrom_10401":{"entryPoint":10458,"id":10401,"parameterSlots":3,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":10902,"id":5487,"parameterSlots":1,"returnSlots":0},"@_unpause_5595":{"entryPoint":8944,"id":5595,"parameterSlots":0,"returnSlots":0},"@callOnOFTReceived_3272":{"entryPoint":8012,"id":3272,"parameterSlots":10,"returnSlots":0},"@chainIdToLast24HourReceiveWindowStart_9425":{"entryPoint":null,"id":9425,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourReceived_9420":{"entryPoint":null,"id":9420,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourTransferred_9400":{"entryPoint":null,"id":9400,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_9405":{"entryPoint":null,"id":9405,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_9395":{"entryPoint":null,"id":9395,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyReceiveLimit_9415":{"entryPoint":null,"id":9415,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxSingleReceiveTransactionLimit_9410":{"entryPoint":null,"id":9410,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxSingleTransactionLimit_9390":{"entryPoint":null,"id":9390,"parameterSlots":0,"returnSlots":0},"@circulatingSupply_10831":{"entryPoint":6623,"id":10831,"parameterSlots":0,"returnSlots":1},"@creditedPackets_3161":{"entryPoint":null,"id":3161,"parameterSlots":0,"returnSlots":0},"@dropFailedMessage_10819":{"entryPoint":6461,"id":10819,"parameterSlots":3,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":9548,"id":9333,"parameterSlots":1,"returnSlots":0},"@estimateSendAndCallFee_3115":{"entryPoint":6983,"id":3115,"parameterSlots":9,"returnSlots":2},"@estimateSendFee_3082":{"entryPoint":4636,"id":3082,"parameterSlots":6,"returnSlots":2},"@excessivelySafeCall_372":{"entryPoint":10991,"id":372,"parameterSlots":4,"returnSlots":2},"@failedMessages_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":0},"@forceResumeReceive_808":{"entryPoint":4944,"id":808,"parameterSlots":3,"returnSlots":0},"@functionCallWithValue_6852":{"entryPoint":14460,"id":6852,"parameterSlots":4,"returnSlots":1},"@functionCall_6788":{"entryPoint":13460,"id":6788,"parameterSlots":3,"returnSlots":1},"@getConfig_736":{"entryPoint":8397,"id":736,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_888":{"entryPoint":6760,"id":888,"parameterSlots":1,"returnSlots":1},"@isContract_6716":{"entryPoint":null,"id":6716,"parameterSlots":1,"returnSlots":1},"@isEligibleToSend_10011":{"entryPoint":4023,"id":10011,"parameterSlots":3,"returnSlots":7},"@isTrustedRemote_970":{"entryPoint":4721,"id":970,"parameterSlots":3,"returnSlots":1},"@lzEndpoint_451":{"entryPoint":null,"id":451,"parameterSlots":0,"returnSlots":0},"@lzReceive_562":{"entryPoint":3262,"id":562,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_461":{"entryPoint":null,"id":461,"parameterSlots":0,"returnSlots":0},"@mul_ScalarTruncate_8771":{"entryPoint":8731,"id":8771,"parameterSlots":2,"returnSlots":1},"@mul__9031":{"entryPoint":11286,"id":9031,"parameterSlots":2,"returnSlots":1},"@mul__9127":{"entryPoint":13448,"id":9127,"parameterSlots":2,"returnSlots":1},"@nonblockingLzReceive_1132":{"entryPoint":5685,"id":1132,"parameterSlots":6,"returnSlots":0},"@oracle_9385":{"entryPoint":null,"id":9385,"parameterSlots":0,"returnSlots":0},"@owner_5416":{"entryPoint":null,"id":5416,"parameterSlots":0,"returnSlots":1},"@pause_9802":{"entryPoint":6445,"id":9802,"parameterSlots":0,"returnSlots":0},"@paused_5540":{"entryPoint":null,"id":5540,"parameterSlots":0,"returnSlots":1},"@payloadSizeLimitLookup_465":{"entryPoint":null,"id":465,"parameterSlots":0,"returnSlots":0},"@precrime_467":{"entryPoint":null,"id":467,"parameterSlots":0,"returnSlots":0},"@removeTrustedRemote_9880":{"entryPoint":4542,"id":9880,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_10105":{"entryPoint":null,"id":10105,"parameterSlots":0,"returnSlots":0},"@retryMessage_10099":{"entryPoint":7657,"id":10099,"parameterSlots":6,"returnSlots":0},"@retryMessage_1211":{"entryPoint":10042,"id":1211,"parameterSlots":6,"returnSlots":0},"@safeTransferFrom_6382":{"entryPoint":13415,"id":6382,"parameterSlots":4,"returnSlots":0},"@safeTransfer_6355":{"entryPoint":9020,"id":6355,"parameterSlots":3,"returnSlots":0},"@sendAndCallEnabled_9381":{"entryPoint":null,"id":9381,"parameterSlots":0,"returnSlots":0},"@sendAndCall_10049":{"entryPoint":6265,"id":10049,"parameterSlots":8,"returnSlots":0},"@sendAndCall_3032":{"entryPoint":9384,"id":3032,"parameterSlots":8,"returnSlots":0},"@sendFrom_2997":{"entryPoint":5842,"id":2997,"parameterSlots":5,"returnSlots":0},"@setConfig_760":{"entryPoint":7346,"id":760,"parameterSlots":5,"returnSlots":0},"@setMaxDailyLimit_9702":{"entryPoint":4380,"id":9702,"parameterSlots":2,"returnSlots":0},"@setMaxDailyReceiveLimit_9770":{"entryPoint":5949,"id":9770,"parameterSlots":2,"returnSlots":0},"@setMaxSingleReceiveTransactionLimit_9736":{"entryPoint":7495,"id":9736,"parameterSlots":2,"returnSlots":0},"@setMaxSingleTransactionLimit_9668":{"entryPoint":5147,"id":9668,"parameterSlots":2,"returnSlots":0},"@setMinDstGas_930":{"entryPoint":7917,"id":930,"parameterSlots":3,"returnSlots":0},"@setOracle_9634":{"entryPoint":6325,"id":9634,"parameterSlots":1,"returnSlots":0},"@setPayloadSizeLimit_946":{"entryPoint":3908,"id":946,"parameterSlots":2,"returnSlots":0},"@setPrecrime_904":{"entryPoint":7263,"id":904,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_790":{"entryPoint":3939,"id":790,"parameterSlots":1,"returnSlots":0},"@setSendVersion_775":{"entryPoint":3771,"id":775,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_857":{"entryPoint":7126,"id":857,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_829":{"entryPoint":8249,"id":829,"parameterSlots":3,"returnSlots":0},"@setWhitelist_9792":{"entryPoint":5309,"id":9792,"parameterSlots":2,"returnSlots":0},"@sharedDecimals_3153":{"entryPoint":null,"id":3153,"parameterSlots":0,"returnSlots":0},"@slice_63":{"entryPoint":9648,"id":63,"parameterSlots":3,"returnSlots":1},"@supportsInterface_3055":{"entryPoint":3716,"id":3055,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7302":{"entryPoint":null,"id":7302,"parameterSlots":1,"returnSlots":1},"@sweepToken_9862":{"entryPoint":5425,"id":9862,"parameterSlots":3,"returnSlots":0},"@toAddress_89":{"entryPoint":14616,"id":89,"parameterSlots":2,"returnSlots":1},"@toBytes32_297":{"entryPoint":15167,"id":297,"parameterSlots":2,"returnSlots":1},"@toUint64_193":{"entryPoint":14677,"id":193,"parameterSlots":2,"returnSlots":1},"@toUint8_115":{"entryPoint":11672,"id":115,"parameterSlots":2,"returnSlots":1},"@token_10118":{"entryPoint":null,"id":10118,"parameterSlots":0,"returnSlots":1},"@transferOwnership_5467":{"entryPoint":8339,"id":5467,"parameterSlots":1,"returnSlots":0},"@truncate_8747":{"entryPoint":11335,"id":8747,"parameterSlots":1,"returnSlots":1},"@trustedRemoteLookup_455":{"entryPoint":6111,"id":455,"parameterSlots":0,"returnSlots":0},"@unpause_9812":{"entryPoint":4926,"id":9812,"parameterSlots":0,"returnSlots":0},"@updateSendAndCallEnabled_9897":{"entryPoint":5078,"id":9897,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_6983":{"entryPoint":15221,"id":6983,"parameterSlots":4,"returnSlots":1},"@whitelist_9430":{"entryPoint":null,"id":9430,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":16658,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":20585,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":15929,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":16138,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":21842,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":15724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":15441,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":16723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":20637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC20_$6261":{"entryPoint":16875,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":16939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16":{"entryPoint":15430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":15831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":18618,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":15537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":17432,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool":{"entryPoint":16459,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":17217,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":16966,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint16t_uint256":{"entryPoint":15940,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool":{"entryPoint":16426,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":21853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":15735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":20673,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256":{"entryPoint":16886,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16":{"entryPoint":15792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr":{"entryPoint":16149,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr":{"entryPoint":17619,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":16312,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256":{"entryPoint":18005,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":15548,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":16759,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":17545,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":18245,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":17969,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":17838,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":15842,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18629,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":20950,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_payable_to_t_address_payable_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":17596,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":19511,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":15768,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":18845,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":18476,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":17148,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":19332,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack":{"entryPoint":17522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack":{"entryPoint":21015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack":{"entryPoint":18996,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack":{"entryPoint":19420,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack":{"entryPoint":22264,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":21783,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack":{"entryPoint":22196,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack":{"entryPoint":19173,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":20449,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack":{"entryPoint":19962,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack":{"entryPoint":18913,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack":{"entryPoint":21260,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack":{"entryPoint":22352,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack":{"entryPoint":18722,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack":{"entryPoint":23308,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack":{"entryPoint":23165,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack":{"entryPoint":21606,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack":{"entryPoint":21151,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack":{"entryPoint":22431,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":22622,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack":{"entryPoint":22895,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack":{"entryPoint":20080,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack":{"entryPoint":23367,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":20806,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack":{"entryPoint":22963,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack":{"entryPoint":23248,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack":{"entryPoint":22827,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack":{"entryPoint":19264,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack":{"entryPoint":18345,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack":{"entryPoint":23427,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack":{"entryPoint":21204,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack":{"entryPoint":21973,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack":{"entryPoint":21886,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack":{"entryPoint":21340,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack":{"entryPoint":21083,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack":{"entryPoint":23031,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack":{"entryPoint":18508,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack":{"entryPoint":23099,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":18594,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":16020,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":19378,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack":{"entryPoint":21710,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":16403,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack":{"entryPoint":21686,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":18495,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":19528,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19366,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed":{"entryPoint":21728,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":22677,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":17605,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":22769,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":21001,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":15778,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed":{"entryPoint":16026,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17200,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":22164,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed":{"entryPoint":17531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21067,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19063,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19472,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22316,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21826,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22248,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19248,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20516,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20037,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18980,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21324,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22415,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18789,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23351,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23232,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21658,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21188,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22508,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22661,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22947,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20132,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23411,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20856,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23292,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22879,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19316,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18400,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23479,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21244,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22015,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21957,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21402,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21135,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23083,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18578,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23149,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":18604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20872,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":18880,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":21418,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20148,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22524,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":22031,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20731,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":21479,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":20532,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":20053,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":19903,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":18805,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed":{"entryPoint":19393,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":16298,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":16271,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":16412,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":19079,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":16576,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":16604,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":18703,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":21586,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":22796,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":18684,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":19652,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":15903,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC20_$6261":{"entryPoint":16855,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":19625,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address":{"entryPoint":17511,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":17500,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":17465,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":19564,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage":{"entryPoint":20255,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":19709,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":16646,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":17112,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":18438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":16532,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":19500,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":19488,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint64":{"entryPoint":21698,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint8":{"entryPoint":21674,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":22332,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":18662,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":21564,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":18416,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":16510,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_192":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_248":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":19612,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":19576,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":15920,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":16130,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":15708,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC20_$6261":{"entryPoint":16866,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":15413,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":15825,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":15522,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:95817:65","nodeType":"YulBlock","src":"0:95817:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"378:45:65","nodeType":"YulBlock","src":"378:45:65","statements":[{"nativeSrc":"388:29:65","nodeType":"YulAssignment","src":"388:29:65","value":{"arguments":[{"name":"value","nativeSrc":"403:5:65","nodeType":"YulIdentifier","src":"403:5:65"},{"kind":"number","nativeSrc":"410:6:65","nodeType":"YulLiteral","src":"410:6:65","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"399:3:65","nodeType":"YulIdentifier","src":"399:3:65"},"nativeSrc":"399:18:65","nodeType":"YulFunctionCall","src":"399:18:65"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:65","nodeType":"YulIdentifier","src":"388:7:65"}]}]},"name":"cleanup_t_uint16","nativeSrc":"334:89:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:65","nodeType":"YulTypedName","src":"360:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:65","nodeType":"YulTypedName","src":"370:7:65","type":""}],"src":"334:89:65"},{"body":{"nativeSrc":"471:78:65","nodeType":"YulBlock","src":"471:78:65","statements":[{"body":{"nativeSrc":"527:16:65","nodeType":"YulBlock","src":"527:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"536:1:65","nodeType":"YulLiteral","src":"536:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"539:1:65","nodeType":"YulLiteral","src":"539:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"529:6:65","nodeType":"YulIdentifier","src":"529:6:65"},"nativeSrc":"529:12:65","nodeType":"YulFunctionCall","src":"529:12:65"},"nativeSrc":"529:12:65","nodeType":"YulExpressionStatement","src":"529:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"494:5:65","nodeType":"YulIdentifier","src":"494:5:65"},{"arguments":[{"name":"value","nativeSrc":"518:5:65","nodeType":"YulIdentifier","src":"518:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"501:16:65","nodeType":"YulIdentifier","src":"501:16:65"},"nativeSrc":"501:23:65","nodeType":"YulFunctionCall","src":"501:23:65"}],"functionName":{"name":"eq","nativeSrc":"491:2:65","nodeType":"YulIdentifier","src":"491:2:65"},"nativeSrc":"491:34:65","nodeType":"YulFunctionCall","src":"491:34:65"}],"functionName":{"name":"iszero","nativeSrc":"484:6:65","nodeType":"YulIdentifier","src":"484:6:65"},"nativeSrc":"484:42:65","nodeType":"YulFunctionCall","src":"484:42:65"},"nativeSrc":"481:62:65","nodeType":"YulIf","src":"481:62:65"}]},"name":"validator_revert_t_uint16","nativeSrc":"429:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"464:5:65","nodeType":"YulTypedName","src":"464:5:65","type":""}],"src":"429:120:65"},{"body":{"nativeSrc":"606:86:65","nodeType":"YulBlock","src":"606:86:65","statements":[{"nativeSrc":"616:29:65","nodeType":"YulAssignment","src":"616:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"638:6:65","nodeType":"YulIdentifier","src":"638:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"625:12:65","nodeType":"YulIdentifier","src":"625:12:65"},"nativeSrc":"625:20:65","nodeType":"YulFunctionCall","src":"625:20:65"},"variableNames":[{"name":"value","nativeSrc":"616:5:65","nodeType":"YulIdentifier","src":"616:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"680:5:65","nodeType":"YulIdentifier","src":"680:5:65"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"654:25:65","nodeType":"YulIdentifier","src":"654:25:65"},"nativeSrc":"654:32:65","nodeType":"YulFunctionCall","src":"654:32:65"},"nativeSrc":"654:32:65","nodeType":"YulExpressionStatement","src":"654:32:65"}]},"name":"abi_decode_t_uint16","nativeSrc":"555:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"584:6:65","nodeType":"YulTypedName","src":"584:6:65","type":""},{"name":"end","nativeSrc":"592:3:65","nodeType":"YulTypedName","src":"592:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"600:5:65","nodeType":"YulTypedName","src":"600:5:65","type":""}],"src":"555:137:65"},{"body":{"nativeSrc":"787:28:65","nodeType":"YulBlock","src":"787:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"804:1:65","nodeType":"YulLiteral","src":"804:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"807:1:65","nodeType":"YulLiteral","src":"807:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"797:6:65","nodeType":"YulIdentifier","src":"797:6:65"},"nativeSrc":"797:12:65","nodeType":"YulFunctionCall","src":"797:12:65"},"nativeSrc":"797:12:65","nodeType":"YulExpressionStatement","src":"797:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"698:117:65","nodeType":"YulFunctionDefinition","src":"698:117:65"},{"body":{"nativeSrc":"910:28:65","nodeType":"YulBlock","src":"910:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"927:1:65","nodeType":"YulLiteral","src":"927:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"930:1:65","nodeType":"YulLiteral","src":"930:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"920:6:65","nodeType":"YulIdentifier","src":"920:6:65"},"nativeSrc":"920:12:65","nodeType":"YulFunctionCall","src":"920:12:65"},"nativeSrc":"920:12:65","nodeType":"YulExpressionStatement","src":"920:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"821:117:65","nodeType":"YulFunctionDefinition","src":"821:117:65"},{"body":{"nativeSrc":"1033:28:65","nodeType":"YulBlock","src":"1033:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1050:1:65","nodeType":"YulLiteral","src":"1050:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1053:1:65","nodeType":"YulLiteral","src":"1053:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1043:6:65","nodeType":"YulIdentifier","src":"1043:6:65"},"nativeSrc":"1043:12:65","nodeType":"YulFunctionCall","src":"1043:12:65"},"nativeSrc":"1043:12:65","nodeType":"YulExpressionStatement","src":"1043:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"944:117:65","nodeType":"YulFunctionDefinition","src":"944:117:65"},{"body":{"nativeSrc":"1154:478:65","nodeType":"YulBlock","src":"1154:478:65","statements":[{"body":{"nativeSrc":"1203:83:65","nodeType":"YulBlock","src":"1203:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1205:77:65","nodeType":"YulIdentifier","src":"1205:77:65"},"nativeSrc":"1205:79:65","nodeType":"YulFunctionCall","src":"1205:79:65"},"nativeSrc":"1205:79:65","nodeType":"YulExpressionStatement","src":"1205:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1182:6:65","nodeType":"YulIdentifier","src":"1182:6:65"},{"kind":"number","nativeSrc":"1190:4:65","nodeType":"YulLiteral","src":"1190:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1178:3:65","nodeType":"YulIdentifier","src":"1178:3:65"},"nativeSrc":"1178:17:65","nodeType":"YulFunctionCall","src":"1178:17:65"},{"name":"end","nativeSrc":"1197:3:65","nodeType":"YulIdentifier","src":"1197:3:65"}],"functionName":{"name":"slt","nativeSrc":"1174:3:65","nodeType":"YulIdentifier","src":"1174:3:65"},"nativeSrc":"1174:27:65","nodeType":"YulFunctionCall","src":"1174:27:65"}],"functionName":{"name":"iszero","nativeSrc":"1167:6:65","nodeType":"YulIdentifier","src":"1167:6:65"},"nativeSrc":"1167:35:65","nodeType":"YulFunctionCall","src":"1167:35:65"},"nativeSrc":"1164:122:65","nodeType":"YulIf","src":"1164:122:65"},{"nativeSrc":"1295:30:65","nodeType":"YulAssignment","src":"1295:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"1318:6:65","nodeType":"YulIdentifier","src":"1318:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1305:12:65","nodeType":"YulIdentifier","src":"1305:12:65"},"nativeSrc":"1305:20:65","nodeType":"YulFunctionCall","src":"1305:20:65"},"variableNames":[{"name":"length","nativeSrc":"1295:6:65","nodeType":"YulIdentifier","src":"1295:6:65"}]},{"body":{"nativeSrc":"1368:83:65","nodeType":"YulBlock","src":"1368:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1370:77:65","nodeType":"YulIdentifier","src":"1370:77:65"},"nativeSrc":"1370:79:65","nodeType":"YulFunctionCall","src":"1370:79:65"},"nativeSrc":"1370:79:65","nodeType":"YulExpressionStatement","src":"1370:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1340:6:65","nodeType":"YulIdentifier","src":"1340:6:65"},{"kind":"number","nativeSrc":"1348:18:65","nodeType":"YulLiteral","src":"1348:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1337:2:65","nodeType":"YulIdentifier","src":"1337:2:65"},"nativeSrc":"1337:30:65","nodeType":"YulFunctionCall","src":"1337:30:65"},"nativeSrc":"1334:117:65","nodeType":"YulIf","src":"1334:117:65"},{"nativeSrc":"1460:29:65","nodeType":"YulAssignment","src":"1460:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1476:6:65","nodeType":"YulIdentifier","src":"1476:6:65"},{"kind":"number","nativeSrc":"1484:4:65","nodeType":"YulLiteral","src":"1484:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1472:3:65","nodeType":"YulIdentifier","src":"1472:3:65"},"nativeSrc":"1472:17:65","nodeType":"YulFunctionCall","src":"1472:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"1460:8:65","nodeType":"YulIdentifier","src":"1460:8:65"}]},{"body":{"nativeSrc":"1543:83:65","nodeType":"YulBlock","src":"1543:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1545:77:65","nodeType":"YulIdentifier","src":"1545:77:65"},"nativeSrc":"1545:79:65","nodeType":"YulFunctionCall","src":"1545:79:65"},"nativeSrc":"1545:79:65","nodeType":"YulExpressionStatement","src":"1545:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1508:8:65","nodeType":"YulIdentifier","src":"1508:8:65"},{"arguments":[{"name":"length","nativeSrc":"1522:6:65","nodeType":"YulIdentifier","src":"1522:6:65"},{"kind":"number","nativeSrc":"1530:4:65","nodeType":"YulLiteral","src":"1530:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1518:3:65","nodeType":"YulIdentifier","src":"1518:3:65"},"nativeSrc":"1518:17:65","nodeType":"YulFunctionCall","src":"1518:17:65"}],"functionName":{"name":"add","nativeSrc":"1504:3:65","nodeType":"YulIdentifier","src":"1504:3:65"},"nativeSrc":"1504:32:65","nodeType":"YulFunctionCall","src":"1504:32:65"},{"name":"end","nativeSrc":"1538:3:65","nodeType":"YulIdentifier","src":"1538:3:65"}],"functionName":{"name":"gt","nativeSrc":"1501:2:65","nodeType":"YulIdentifier","src":"1501:2:65"},"nativeSrc":"1501:41:65","nodeType":"YulFunctionCall","src":"1501:41:65"},"nativeSrc":"1498:128:65","nodeType":"YulIf","src":"1498:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1080:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1121:6:65","nodeType":"YulTypedName","src":"1121:6:65","type":""},{"name":"end","nativeSrc":"1129:3:65","nodeType":"YulTypedName","src":"1129:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1137:8:65","nodeType":"YulTypedName","src":"1137:8:65","type":""},{"name":"length","nativeSrc":"1147:6:65","nodeType":"YulTypedName","src":"1147:6:65","type":""}],"src":"1080:552:65"},{"body":{"nativeSrc":"1682:57:65","nodeType":"YulBlock","src":"1682:57:65","statements":[{"nativeSrc":"1692:41:65","nodeType":"YulAssignment","src":"1692:41:65","value":{"arguments":[{"name":"value","nativeSrc":"1707:5:65","nodeType":"YulIdentifier","src":"1707:5:65"},{"kind":"number","nativeSrc":"1714:18:65","nodeType":"YulLiteral","src":"1714:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1703:3:65","nodeType":"YulIdentifier","src":"1703:3:65"},"nativeSrc":"1703:30:65","nodeType":"YulFunctionCall","src":"1703:30:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1692:7:65","nodeType":"YulIdentifier","src":"1692:7:65"}]}]},"name":"cleanup_t_uint64","nativeSrc":"1638:101:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1664:5:65","nodeType":"YulTypedName","src":"1664:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1674:7:65","nodeType":"YulTypedName","src":"1674:7:65","type":""}],"src":"1638:101:65"},{"body":{"nativeSrc":"1787:78:65","nodeType":"YulBlock","src":"1787:78:65","statements":[{"body":{"nativeSrc":"1843:16:65","nodeType":"YulBlock","src":"1843:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1852:1:65","nodeType":"YulLiteral","src":"1852:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1855:1:65","nodeType":"YulLiteral","src":"1855:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1845:6:65","nodeType":"YulIdentifier","src":"1845:6:65"},"nativeSrc":"1845:12:65","nodeType":"YulFunctionCall","src":"1845:12:65"},"nativeSrc":"1845:12:65","nodeType":"YulExpressionStatement","src":"1845:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1810:5:65","nodeType":"YulIdentifier","src":"1810:5:65"},{"arguments":[{"name":"value","nativeSrc":"1834:5:65","nodeType":"YulIdentifier","src":"1834:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"1817:16:65","nodeType":"YulIdentifier","src":"1817:16:65"},"nativeSrc":"1817:23:65","nodeType":"YulFunctionCall","src":"1817:23:65"}],"functionName":{"name":"eq","nativeSrc":"1807:2:65","nodeType":"YulIdentifier","src":"1807:2:65"},"nativeSrc":"1807:34:65","nodeType":"YulFunctionCall","src":"1807:34:65"}],"functionName":{"name":"iszero","nativeSrc":"1800:6:65","nodeType":"YulIdentifier","src":"1800:6:65"},"nativeSrc":"1800:42:65","nodeType":"YulFunctionCall","src":"1800:42:65"},"nativeSrc":"1797:62:65","nodeType":"YulIf","src":"1797:62:65"}]},"name":"validator_revert_t_uint64","nativeSrc":"1745:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1780:5:65","nodeType":"YulTypedName","src":"1780:5:65","type":""}],"src":"1745:120:65"},{"body":{"nativeSrc":"1922:86:65","nodeType":"YulBlock","src":"1922:86:65","statements":[{"nativeSrc":"1932:29:65","nodeType":"YulAssignment","src":"1932:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:65","nodeType":"YulIdentifier","src":"1954:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1941:12:65","nodeType":"YulIdentifier","src":"1941:12:65"},"nativeSrc":"1941:20:65","nodeType":"YulFunctionCall","src":"1941:20:65"},"variableNames":[{"name":"value","nativeSrc":"1932:5:65","nodeType":"YulIdentifier","src":"1932:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1996:5:65","nodeType":"YulIdentifier","src":"1996:5:65"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"1970:25:65","nodeType":"YulIdentifier","src":"1970:25:65"},"nativeSrc":"1970:32:65","nodeType":"YulFunctionCall","src":"1970:32:65"},"nativeSrc":"1970:32:65","nodeType":"YulExpressionStatement","src":"1970:32:65"}]},"name":"abi_decode_t_uint64","nativeSrc":"1871:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1900:6:65","nodeType":"YulTypedName","src":"1900:6:65","type":""},{"name":"end","nativeSrc":"1908:3:65","nodeType":"YulTypedName","src":"1908:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1916:5:65","nodeType":"YulTypedName","src":"1916:5:65","type":""}],"src":"1871:137:65"},{"body":{"nativeSrc":"2167:1004:65","nodeType":"YulBlock","src":"2167:1004:65","statements":[{"body":{"nativeSrc":"2214:83:65","nodeType":"YulBlock","src":"2214:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2216:77:65","nodeType":"YulIdentifier","src":"2216:77:65"},"nativeSrc":"2216:79:65","nodeType":"YulFunctionCall","src":"2216:79:65"},"nativeSrc":"2216:79:65","nodeType":"YulExpressionStatement","src":"2216:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2188:7:65","nodeType":"YulIdentifier","src":"2188:7:65"},{"name":"headStart","nativeSrc":"2197:9:65","nodeType":"YulIdentifier","src":"2197:9:65"}],"functionName":{"name":"sub","nativeSrc":"2184:3:65","nodeType":"YulIdentifier","src":"2184:3:65"},"nativeSrc":"2184:23:65","nodeType":"YulFunctionCall","src":"2184:23:65"},{"kind":"number","nativeSrc":"2209:3:65","nodeType":"YulLiteral","src":"2209:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"2180:3:65","nodeType":"YulIdentifier","src":"2180:3:65"},"nativeSrc":"2180:33:65","nodeType":"YulFunctionCall","src":"2180:33:65"},"nativeSrc":"2177:120:65","nodeType":"YulIf","src":"2177:120:65"},{"nativeSrc":"2307:116:65","nodeType":"YulBlock","src":"2307:116:65","statements":[{"nativeSrc":"2322:15:65","nodeType":"YulVariableDeclaration","src":"2322:15:65","value":{"kind":"number","nativeSrc":"2336:1:65","nodeType":"YulLiteral","src":"2336:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2326:6:65","nodeType":"YulTypedName","src":"2326:6:65","type":""}]},{"nativeSrc":"2351:62:65","nodeType":"YulAssignment","src":"2351:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2385:9:65","nodeType":"YulIdentifier","src":"2385:9:65"},{"name":"offset","nativeSrc":"2396:6:65","nodeType":"YulIdentifier","src":"2396:6:65"}],"functionName":{"name":"add","nativeSrc":"2381:3:65","nodeType":"YulIdentifier","src":"2381:3:65"},"nativeSrc":"2381:22:65","nodeType":"YulFunctionCall","src":"2381:22:65"},{"name":"dataEnd","nativeSrc":"2405:7:65","nodeType":"YulIdentifier","src":"2405:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"2361:19:65","nodeType":"YulIdentifier","src":"2361:19:65"},"nativeSrc":"2361:52:65","nodeType":"YulFunctionCall","src":"2361:52:65"},"variableNames":[{"name":"value0","nativeSrc":"2351:6:65","nodeType":"YulIdentifier","src":"2351:6:65"}]}]},{"nativeSrc":"2433:297:65","nodeType":"YulBlock","src":"2433:297:65","statements":[{"nativeSrc":"2448:46:65","nodeType":"YulVariableDeclaration","src":"2448:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2479:9:65","nodeType":"YulIdentifier","src":"2479:9:65"},{"kind":"number","nativeSrc":"2490:2:65","nodeType":"YulLiteral","src":"2490:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2475:3:65","nodeType":"YulIdentifier","src":"2475:3:65"},"nativeSrc":"2475:18:65","nodeType":"YulFunctionCall","src":"2475:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2462:12:65","nodeType":"YulIdentifier","src":"2462:12:65"},"nativeSrc":"2462:32:65","nodeType":"YulFunctionCall","src":"2462:32:65"},"variables":[{"name":"offset","nativeSrc":"2452:6:65","nodeType":"YulTypedName","src":"2452:6:65","type":""}]},{"body":{"nativeSrc":"2541:83:65","nodeType":"YulBlock","src":"2541:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2543:77:65","nodeType":"YulIdentifier","src":"2543:77:65"},"nativeSrc":"2543:79:65","nodeType":"YulFunctionCall","src":"2543:79:65"},"nativeSrc":"2543:79:65","nodeType":"YulExpressionStatement","src":"2543:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2513:6:65","nodeType":"YulIdentifier","src":"2513:6:65"},{"kind":"number","nativeSrc":"2521:18:65","nodeType":"YulLiteral","src":"2521:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2510:2:65","nodeType":"YulIdentifier","src":"2510:2:65"},"nativeSrc":"2510:30:65","nodeType":"YulFunctionCall","src":"2510:30:65"},"nativeSrc":"2507:117:65","nodeType":"YulIf","src":"2507:117:65"},{"nativeSrc":"2638:82:65","nodeType":"YulAssignment","src":"2638:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2692:9:65","nodeType":"YulIdentifier","src":"2692:9:65"},{"name":"offset","nativeSrc":"2703:6:65","nodeType":"YulIdentifier","src":"2703:6:65"}],"functionName":{"name":"add","nativeSrc":"2688:3:65","nodeType":"YulIdentifier","src":"2688:3:65"},"nativeSrc":"2688:22:65","nodeType":"YulFunctionCall","src":"2688:22:65"},{"name":"dataEnd","nativeSrc":"2712:7:65","nodeType":"YulIdentifier","src":"2712:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2656:31:65","nodeType":"YulIdentifier","src":"2656:31:65"},"nativeSrc":"2656:64:65","nodeType":"YulFunctionCall","src":"2656:64:65"},"variableNames":[{"name":"value1","nativeSrc":"2638:6:65","nodeType":"YulIdentifier","src":"2638:6:65"},{"name":"value2","nativeSrc":"2646:6:65","nodeType":"YulIdentifier","src":"2646:6:65"}]}]},{"nativeSrc":"2740:117:65","nodeType":"YulBlock","src":"2740:117:65","statements":[{"nativeSrc":"2755:16:65","nodeType":"YulVariableDeclaration","src":"2755:16:65","value":{"kind":"number","nativeSrc":"2769:2:65","nodeType":"YulLiteral","src":"2769:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2759:6:65","nodeType":"YulTypedName","src":"2759:6:65","type":""}]},{"nativeSrc":"2785:62:65","nodeType":"YulAssignment","src":"2785:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2819:9:65","nodeType":"YulIdentifier","src":"2819:9:65"},{"name":"offset","nativeSrc":"2830:6:65","nodeType":"YulIdentifier","src":"2830:6:65"}],"functionName":{"name":"add","nativeSrc":"2815:3:65","nodeType":"YulIdentifier","src":"2815:3:65"},"nativeSrc":"2815:22:65","nodeType":"YulFunctionCall","src":"2815:22:65"},{"name":"dataEnd","nativeSrc":"2839:7:65","nodeType":"YulIdentifier","src":"2839:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"2795:19:65","nodeType":"YulIdentifier","src":"2795:19:65"},"nativeSrc":"2795:52:65","nodeType":"YulFunctionCall","src":"2795:52:65"},"variableNames":[{"name":"value3","nativeSrc":"2785:6:65","nodeType":"YulIdentifier","src":"2785:6:65"}]}]},{"nativeSrc":"2867:297:65","nodeType":"YulBlock","src":"2867:297:65","statements":[{"nativeSrc":"2882:46:65","nodeType":"YulVariableDeclaration","src":"2882:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2913:9:65","nodeType":"YulIdentifier","src":"2913:9:65"},{"kind":"number","nativeSrc":"2924:2:65","nodeType":"YulLiteral","src":"2924:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2909:3:65","nodeType":"YulIdentifier","src":"2909:3:65"},"nativeSrc":"2909:18:65","nodeType":"YulFunctionCall","src":"2909:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2896:12:65","nodeType":"YulIdentifier","src":"2896:12:65"},"nativeSrc":"2896:32:65","nodeType":"YulFunctionCall","src":"2896:32:65"},"variables":[{"name":"offset","nativeSrc":"2886:6:65","nodeType":"YulTypedName","src":"2886:6:65","type":""}]},{"body":{"nativeSrc":"2975:83:65","nodeType":"YulBlock","src":"2975:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2977:77:65","nodeType":"YulIdentifier","src":"2977:77:65"},"nativeSrc":"2977:79:65","nodeType":"YulFunctionCall","src":"2977:79:65"},"nativeSrc":"2977:79:65","nodeType":"YulExpressionStatement","src":"2977:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2947:6:65","nodeType":"YulIdentifier","src":"2947:6:65"},{"kind":"number","nativeSrc":"2955:18:65","nodeType":"YulLiteral","src":"2955:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2944:2:65","nodeType":"YulIdentifier","src":"2944:2:65"},"nativeSrc":"2944:30:65","nodeType":"YulFunctionCall","src":"2944:30:65"},"nativeSrc":"2941:117:65","nodeType":"YulIf","src":"2941:117:65"},{"nativeSrc":"3072:82:65","nodeType":"YulAssignment","src":"3072:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3126:9:65","nodeType":"YulIdentifier","src":"3126:9:65"},{"name":"offset","nativeSrc":"3137:6:65","nodeType":"YulIdentifier","src":"3137:6:65"}],"functionName":{"name":"add","nativeSrc":"3122:3:65","nodeType":"YulIdentifier","src":"3122:3:65"},"nativeSrc":"3122:22:65","nodeType":"YulFunctionCall","src":"3122:22:65"},{"name":"dataEnd","nativeSrc":"3146:7:65","nodeType":"YulIdentifier","src":"3146:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3090:31:65","nodeType":"YulIdentifier","src":"3090:31:65"},"nativeSrc":"3090:64:65","nodeType":"YulFunctionCall","src":"3090:64:65"},"variableNames":[{"name":"value4","nativeSrc":"3072:6:65","nodeType":"YulIdentifier","src":"3072:6:65"},{"name":"value5","nativeSrc":"3080:6:65","nodeType":"YulIdentifier","src":"3080:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nativeSrc":"2014:1157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2097:9:65","nodeType":"YulTypedName","src":"2097:9:65","type":""},{"name":"dataEnd","nativeSrc":"2108:7:65","nodeType":"YulTypedName","src":"2108:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2120:6:65","nodeType":"YulTypedName","src":"2120:6:65","type":""},{"name":"value1","nativeSrc":"2128:6:65","nodeType":"YulTypedName","src":"2128:6:65","type":""},{"name":"value2","nativeSrc":"2136:6:65","nodeType":"YulTypedName","src":"2136:6:65","type":""},{"name":"value3","nativeSrc":"2144:6:65","nodeType":"YulTypedName","src":"2144:6:65","type":""},{"name":"value4","nativeSrc":"2152:6:65","nodeType":"YulTypedName","src":"2152:6:65","type":""},{"name":"value5","nativeSrc":"2160:6:65","nodeType":"YulTypedName","src":"2160:6:65","type":""}],"src":"2014:1157:65"},{"body":{"nativeSrc":"3221:105:65","nodeType":"YulBlock","src":"3221:105:65","statements":[{"nativeSrc":"3231:89:65","nodeType":"YulAssignment","src":"3231:89:65","value":{"arguments":[{"name":"value","nativeSrc":"3246:5:65","nodeType":"YulIdentifier","src":"3246:5:65"},{"kind":"number","nativeSrc":"3253:66:65","nodeType":"YulLiteral","src":"3253:66:65","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"3242:3:65","nodeType":"YulIdentifier","src":"3242:3:65"},"nativeSrc":"3242:78:65","nodeType":"YulFunctionCall","src":"3242:78:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3231:7:65","nodeType":"YulIdentifier","src":"3231:7:65"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"3177:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3203:5:65","nodeType":"YulTypedName","src":"3203:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3213:7:65","nodeType":"YulTypedName","src":"3213:7:65","type":""}],"src":"3177:149:65"},{"body":{"nativeSrc":"3374:78:65","nodeType":"YulBlock","src":"3374:78:65","statements":[{"body":{"nativeSrc":"3430:16:65","nodeType":"YulBlock","src":"3430:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3439:1:65","nodeType":"YulLiteral","src":"3439:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3442:1:65","nodeType":"YulLiteral","src":"3442:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3432:6:65","nodeType":"YulIdentifier","src":"3432:6:65"},"nativeSrc":"3432:12:65","nodeType":"YulFunctionCall","src":"3432:12:65"},"nativeSrc":"3432:12:65","nodeType":"YulExpressionStatement","src":"3432:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3397:5:65","nodeType":"YulIdentifier","src":"3397:5:65"},{"arguments":[{"name":"value","nativeSrc":"3421:5:65","nodeType":"YulIdentifier","src":"3421:5:65"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"3404:16:65","nodeType":"YulIdentifier","src":"3404:16:65"},"nativeSrc":"3404:23:65","nodeType":"YulFunctionCall","src":"3404:23:65"}],"functionName":{"name":"eq","nativeSrc":"3394:2:65","nodeType":"YulIdentifier","src":"3394:2:65"},"nativeSrc":"3394:34:65","nodeType":"YulFunctionCall","src":"3394:34:65"}],"functionName":{"name":"iszero","nativeSrc":"3387:6:65","nodeType":"YulIdentifier","src":"3387:6:65"},"nativeSrc":"3387:42:65","nodeType":"YulFunctionCall","src":"3387:42:65"},"nativeSrc":"3384:62:65","nodeType":"YulIf","src":"3384:62:65"}]},"name":"validator_revert_t_bytes4","nativeSrc":"3332:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3367:5:65","nodeType":"YulTypedName","src":"3367:5:65","type":""}],"src":"3332:120:65"},{"body":{"nativeSrc":"3509:86:65","nodeType":"YulBlock","src":"3509:86:65","statements":[{"nativeSrc":"3519:29:65","nodeType":"YulAssignment","src":"3519:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3541:6:65","nodeType":"YulIdentifier","src":"3541:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3528:12:65","nodeType":"YulIdentifier","src":"3528:12:65"},"nativeSrc":"3528:20:65","nodeType":"YulFunctionCall","src":"3528:20:65"},"variableNames":[{"name":"value","nativeSrc":"3519:5:65","nodeType":"YulIdentifier","src":"3519:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3583:5:65","nodeType":"YulIdentifier","src":"3583:5:65"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"3557:25:65","nodeType":"YulIdentifier","src":"3557:25:65"},"nativeSrc":"3557:32:65","nodeType":"YulFunctionCall","src":"3557:32:65"},"nativeSrc":"3557:32:65","nodeType":"YulExpressionStatement","src":"3557:32:65"}]},"name":"abi_decode_t_bytes4","nativeSrc":"3458:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3487:6:65","nodeType":"YulTypedName","src":"3487:6:65","type":""},{"name":"end","nativeSrc":"3495:3:65","nodeType":"YulTypedName","src":"3495:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3503:5:65","nodeType":"YulTypedName","src":"3503:5:65","type":""}],"src":"3458:137:65"},{"body":{"nativeSrc":"3666:262:65","nodeType":"YulBlock","src":"3666:262:65","statements":[{"body":{"nativeSrc":"3712:83:65","nodeType":"YulBlock","src":"3712:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3714:77:65","nodeType":"YulIdentifier","src":"3714:77:65"},"nativeSrc":"3714:79:65","nodeType":"YulFunctionCall","src":"3714:79:65"},"nativeSrc":"3714:79:65","nodeType":"YulExpressionStatement","src":"3714:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3687:7:65","nodeType":"YulIdentifier","src":"3687:7:65"},{"name":"headStart","nativeSrc":"3696:9:65","nodeType":"YulIdentifier","src":"3696:9:65"}],"functionName":{"name":"sub","nativeSrc":"3683:3:65","nodeType":"YulIdentifier","src":"3683:3:65"},"nativeSrc":"3683:23:65","nodeType":"YulFunctionCall","src":"3683:23:65"},{"kind":"number","nativeSrc":"3708:2:65","nodeType":"YulLiteral","src":"3708:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3679:3:65","nodeType":"YulIdentifier","src":"3679:3:65"},"nativeSrc":"3679:32:65","nodeType":"YulFunctionCall","src":"3679:32:65"},"nativeSrc":"3676:119:65","nodeType":"YulIf","src":"3676:119:65"},{"nativeSrc":"3805:116:65","nodeType":"YulBlock","src":"3805:116:65","statements":[{"nativeSrc":"3820:15:65","nodeType":"YulVariableDeclaration","src":"3820:15:65","value":{"kind":"number","nativeSrc":"3834:1:65","nodeType":"YulLiteral","src":"3834:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3824:6:65","nodeType":"YulTypedName","src":"3824:6:65","type":""}]},{"nativeSrc":"3849:62:65","nodeType":"YulAssignment","src":"3849:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3883:9:65","nodeType":"YulIdentifier","src":"3883:9:65"},{"name":"offset","nativeSrc":"3894:6:65","nodeType":"YulIdentifier","src":"3894:6:65"}],"functionName":{"name":"add","nativeSrc":"3879:3:65","nodeType":"YulIdentifier","src":"3879:3:65"},"nativeSrc":"3879:22:65","nodeType":"YulFunctionCall","src":"3879:22:65"},{"name":"dataEnd","nativeSrc":"3903:7:65","nodeType":"YulIdentifier","src":"3903:7:65"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"3859:19:65","nodeType":"YulIdentifier","src":"3859:19:65"},"nativeSrc":"3859:52:65","nodeType":"YulFunctionCall","src":"3859:52:65"},"variableNames":[{"name":"value0","nativeSrc":"3849:6:65","nodeType":"YulIdentifier","src":"3849:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"3601:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3636:9:65","nodeType":"YulTypedName","src":"3636:9:65","type":""},{"name":"dataEnd","nativeSrc":"3647:7:65","nodeType":"YulTypedName","src":"3647:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3659:6:65","nodeType":"YulTypedName","src":"3659:6:65","type":""}],"src":"3601:327:65"},{"body":{"nativeSrc":"3976:48:65","nodeType":"YulBlock","src":"3976:48:65","statements":[{"nativeSrc":"3986:32:65","nodeType":"YulAssignment","src":"3986:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4011:5:65","nodeType":"YulIdentifier","src":"4011:5:65"}],"functionName":{"name":"iszero","nativeSrc":"4004:6:65","nodeType":"YulIdentifier","src":"4004:6:65"},"nativeSrc":"4004:13:65","nodeType":"YulFunctionCall","src":"4004:13:65"}],"functionName":{"name":"iszero","nativeSrc":"3997:6:65","nodeType":"YulIdentifier","src":"3997:6:65"},"nativeSrc":"3997:21:65","nodeType":"YulFunctionCall","src":"3997:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3986:7:65","nodeType":"YulIdentifier","src":"3986:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"3934:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3958:5:65","nodeType":"YulTypedName","src":"3958:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3968:7:65","nodeType":"YulTypedName","src":"3968:7:65","type":""}],"src":"3934:90:65"},{"body":{"nativeSrc":"4089:50:65","nodeType":"YulBlock","src":"4089:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4106:3:65","nodeType":"YulIdentifier","src":"4106:3:65"},{"arguments":[{"name":"value","nativeSrc":"4126:5:65","nodeType":"YulIdentifier","src":"4126:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4111:14:65","nodeType":"YulIdentifier","src":"4111:14:65"},"nativeSrc":"4111:21:65","nodeType":"YulFunctionCall","src":"4111:21:65"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:65","nodeType":"YulIdentifier","src":"4099:6:65"},"nativeSrc":"4099:34:65","nodeType":"YulFunctionCall","src":"4099:34:65"},"nativeSrc":"4099:34:65","nodeType":"YulExpressionStatement","src":"4099:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4030:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4077:5:65","nodeType":"YulTypedName","src":"4077:5:65","type":""},{"name":"pos","nativeSrc":"4084:3:65","nodeType":"YulTypedName","src":"4084:3:65","type":""}],"src":"4030:109:65"},{"body":{"nativeSrc":"4237:118:65","nodeType":"YulBlock","src":"4237:118:65","statements":[{"nativeSrc":"4247:26:65","nodeType":"YulAssignment","src":"4247:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4259:9:65","nodeType":"YulIdentifier","src":"4259:9:65"},{"kind":"number","nativeSrc":"4270:2:65","nodeType":"YulLiteral","src":"4270:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4255:3:65","nodeType":"YulIdentifier","src":"4255:3:65"},"nativeSrc":"4255:18:65","nodeType":"YulFunctionCall","src":"4255:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4247:4:65","nodeType":"YulIdentifier","src":"4247:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4321:6:65","nodeType":"YulIdentifier","src":"4321:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4334:9:65","nodeType":"YulIdentifier","src":"4334:9:65"},{"kind":"number","nativeSrc":"4345:1:65","nodeType":"YulLiteral","src":"4345:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4330:3:65","nodeType":"YulIdentifier","src":"4330:3:65"},"nativeSrc":"4330:17:65","nodeType":"YulFunctionCall","src":"4330:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4283:37:65","nodeType":"YulIdentifier","src":"4283:37:65"},"nativeSrc":"4283:65:65","nodeType":"YulFunctionCall","src":"4283:65:65"},"nativeSrc":"4283:65:65","nodeType":"YulExpressionStatement","src":"4283:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4145:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4209:9:65","nodeType":"YulTypedName","src":"4209:9:65","type":""},{"name":"value0","nativeSrc":"4221:6:65","nodeType":"YulTypedName","src":"4221:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4232:4:65","nodeType":"YulTypedName","src":"4232:4:65","type":""}],"src":"4145:210:65"},{"body":{"nativeSrc":"4426:262:65","nodeType":"YulBlock","src":"4426:262:65","statements":[{"body":{"nativeSrc":"4472:83:65","nodeType":"YulBlock","src":"4472:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4474:77:65","nodeType":"YulIdentifier","src":"4474:77:65"},"nativeSrc":"4474:79:65","nodeType":"YulFunctionCall","src":"4474:79:65"},"nativeSrc":"4474:79:65","nodeType":"YulExpressionStatement","src":"4474:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4447:7:65","nodeType":"YulIdentifier","src":"4447:7:65"},{"name":"headStart","nativeSrc":"4456:9:65","nodeType":"YulIdentifier","src":"4456:9:65"}],"functionName":{"name":"sub","nativeSrc":"4443:3:65","nodeType":"YulIdentifier","src":"4443:3:65"},"nativeSrc":"4443:23:65","nodeType":"YulFunctionCall","src":"4443:23:65"},{"kind":"number","nativeSrc":"4468:2:65","nodeType":"YulLiteral","src":"4468:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4439:3:65","nodeType":"YulIdentifier","src":"4439:3:65"},"nativeSrc":"4439:32:65","nodeType":"YulFunctionCall","src":"4439:32:65"},"nativeSrc":"4436:119:65","nodeType":"YulIf","src":"4436:119:65"},{"nativeSrc":"4565:116:65","nodeType":"YulBlock","src":"4565:116:65","statements":[{"nativeSrc":"4580:15:65","nodeType":"YulVariableDeclaration","src":"4580:15:65","value":{"kind":"number","nativeSrc":"4594:1:65","nodeType":"YulLiteral","src":"4594:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4584:6:65","nodeType":"YulTypedName","src":"4584:6:65","type":""}]},{"nativeSrc":"4609:62:65","nodeType":"YulAssignment","src":"4609:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4643:9:65","nodeType":"YulIdentifier","src":"4643:9:65"},{"name":"offset","nativeSrc":"4654:6:65","nodeType":"YulIdentifier","src":"4654:6:65"}],"functionName":{"name":"add","nativeSrc":"4639:3:65","nodeType":"YulIdentifier","src":"4639:3:65"},"nativeSrc":"4639:22:65","nodeType":"YulFunctionCall","src":"4639:22:65"},{"name":"dataEnd","nativeSrc":"4663:7:65","nodeType":"YulIdentifier","src":"4663:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"4619:19:65","nodeType":"YulIdentifier","src":"4619:19:65"},"nativeSrc":"4619:52:65","nodeType":"YulFunctionCall","src":"4619:52:65"},"variableNames":[{"name":"value0","nativeSrc":"4609:6:65","nodeType":"YulIdentifier","src":"4609:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"4361:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4396:9:65","nodeType":"YulTypedName","src":"4396:9:65","type":""},{"name":"dataEnd","nativeSrc":"4407:7:65","nodeType":"YulTypedName","src":"4407:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4419:6:65","nodeType":"YulTypedName","src":"4419:6:65","type":""}],"src":"4361:327:65"},{"body":{"nativeSrc":"4739:32:65","nodeType":"YulBlock","src":"4739:32:65","statements":[{"nativeSrc":"4749:16:65","nodeType":"YulAssignment","src":"4749:16:65","value":{"name":"value","nativeSrc":"4760:5:65","nodeType":"YulIdentifier","src":"4760:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4749:7:65","nodeType":"YulIdentifier","src":"4749:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4694:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4721:5:65","nodeType":"YulTypedName","src":"4721:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4731:7:65","nodeType":"YulTypedName","src":"4731:7:65","type":""}],"src":"4694:77:65"},{"body":{"nativeSrc":"4820:79:65","nodeType":"YulBlock","src":"4820:79:65","statements":[{"body":{"nativeSrc":"4877:16:65","nodeType":"YulBlock","src":"4877:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4886:1:65","nodeType":"YulLiteral","src":"4886:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4889:1:65","nodeType":"YulLiteral","src":"4889:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4879:6:65","nodeType":"YulIdentifier","src":"4879:6:65"},"nativeSrc":"4879:12:65","nodeType":"YulFunctionCall","src":"4879:12:65"},"nativeSrc":"4879:12:65","nodeType":"YulExpressionStatement","src":"4879:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4843:5:65","nodeType":"YulIdentifier","src":"4843:5:65"},{"arguments":[{"name":"value","nativeSrc":"4868:5:65","nodeType":"YulIdentifier","src":"4868:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4850:17:65","nodeType":"YulIdentifier","src":"4850:17:65"},"nativeSrc":"4850:24:65","nodeType":"YulFunctionCall","src":"4850:24:65"}],"functionName":{"name":"eq","nativeSrc":"4840:2:65","nodeType":"YulIdentifier","src":"4840:2:65"},"nativeSrc":"4840:35:65","nodeType":"YulFunctionCall","src":"4840:35:65"}],"functionName":{"name":"iszero","nativeSrc":"4833:6:65","nodeType":"YulIdentifier","src":"4833:6:65"},"nativeSrc":"4833:43:65","nodeType":"YulFunctionCall","src":"4833:43:65"},"nativeSrc":"4830:63:65","nodeType":"YulIf","src":"4830:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"4777:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4813:5:65","nodeType":"YulTypedName","src":"4813:5:65","type":""}],"src":"4777:122:65"},{"body":{"nativeSrc":"4957:87:65","nodeType":"YulBlock","src":"4957:87:65","statements":[{"nativeSrc":"4967:29:65","nodeType":"YulAssignment","src":"4967:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"4989:6:65","nodeType":"YulIdentifier","src":"4989:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"4976:12:65","nodeType":"YulIdentifier","src":"4976:12:65"},"nativeSrc":"4976:20:65","nodeType":"YulFunctionCall","src":"4976:20:65"},"variableNames":[{"name":"value","nativeSrc":"4967:5:65","nodeType":"YulIdentifier","src":"4967:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5032:5:65","nodeType":"YulIdentifier","src":"5032:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5005:26:65","nodeType":"YulIdentifier","src":"5005:26:65"},"nativeSrc":"5005:33:65","nodeType":"YulFunctionCall","src":"5005:33:65"},"nativeSrc":"5005:33:65","nodeType":"YulExpressionStatement","src":"5005:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"4905:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4935:6:65","nodeType":"YulTypedName","src":"4935:6:65","type":""},{"name":"end","nativeSrc":"4943:3:65","nodeType":"YulTypedName","src":"4943:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4951:5:65","nodeType":"YulTypedName","src":"4951:5:65","type":""}],"src":"4905:139:65"},{"body":{"nativeSrc":"5132:390:65","nodeType":"YulBlock","src":"5132:390:65","statements":[{"body":{"nativeSrc":"5178:83:65","nodeType":"YulBlock","src":"5178:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5180:77:65","nodeType":"YulIdentifier","src":"5180:77:65"},"nativeSrc":"5180:79:65","nodeType":"YulFunctionCall","src":"5180:79:65"},"nativeSrc":"5180:79:65","nodeType":"YulExpressionStatement","src":"5180:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5153:7:65","nodeType":"YulIdentifier","src":"5153:7:65"},{"name":"headStart","nativeSrc":"5162:9:65","nodeType":"YulIdentifier","src":"5162:9:65"}],"functionName":{"name":"sub","nativeSrc":"5149:3:65","nodeType":"YulIdentifier","src":"5149:3:65"},"nativeSrc":"5149:23:65","nodeType":"YulFunctionCall","src":"5149:23:65"},{"kind":"number","nativeSrc":"5174:2:65","nodeType":"YulLiteral","src":"5174:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5145:3:65","nodeType":"YulIdentifier","src":"5145:3:65"},"nativeSrc":"5145:32:65","nodeType":"YulFunctionCall","src":"5145:32:65"},"nativeSrc":"5142:119:65","nodeType":"YulIf","src":"5142:119:65"},{"nativeSrc":"5271:116:65","nodeType":"YulBlock","src":"5271:116:65","statements":[{"nativeSrc":"5286:15:65","nodeType":"YulVariableDeclaration","src":"5286:15:65","value":{"kind":"number","nativeSrc":"5300:1:65","nodeType":"YulLiteral","src":"5300:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5290:6:65","nodeType":"YulTypedName","src":"5290:6:65","type":""}]},{"nativeSrc":"5315:62:65","nodeType":"YulAssignment","src":"5315:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5349:9:65","nodeType":"YulIdentifier","src":"5349:9:65"},{"name":"offset","nativeSrc":"5360:6:65","nodeType":"YulIdentifier","src":"5360:6:65"}],"functionName":{"name":"add","nativeSrc":"5345:3:65","nodeType":"YulIdentifier","src":"5345:3:65"},"nativeSrc":"5345:22:65","nodeType":"YulFunctionCall","src":"5345:22:65"},{"name":"dataEnd","nativeSrc":"5369:7:65","nodeType":"YulIdentifier","src":"5369:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"5325:19:65","nodeType":"YulIdentifier","src":"5325:19:65"},"nativeSrc":"5325:52:65","nodeType":"YulFunctionCall","src":"5325:52:65"},"variableNames":[{"name":"value0","nativeSrc":"5315:6:65","nodeType":"YulIdentifier","src":"5315:6:65"}]}]},{"nativeSrc":"5397:118:65","nodeType":"YulBlock","src":"5397:118:65","statements":[{"nativeSrc":"5412:16:65","nodeType":"YulVariableDeclaration","src":"5412:16:65","value":{"kind":"number","nativeSrc":"5426:2:65","nodeType":"YulLiteral","src":"5426:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5416:6:65","nodeType":"YulTypedName","src":"5416:6:65","type":""}]},{"nativeSrc":"5442:63:65","nodeType":"YulAssignment","src":"5442:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5477:9:65","nodeType":"YulIdentifier","src":"5477:9:65"},{"name":"offset","nativeSrc":"5488:6:65","nodeType":"YulIdentifier","src":"5488:6:65"}],"functionName":{"name":"add","nativeSrc":"5473:3:65","nodeType":"YulIdentifier","src":"5473:3:65"},"nativeSrc":"5473:22:65","nodeType":"YulFunctionCall","src":"5473:22:65"},{"name":"dataEnd","nativeSrc":"5497:7:65","nodeType":"YulIdentifier","src":"5497:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5452:20:65","nodeType":"YulIdentifier","src":"5452:20:65"},"nativeSrc":"5452:53:65","nodeType":"YulFunctionCall","src":"5452:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5442:6:65","nodeType":"YulIdentifier","src":"5442:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"5050:472:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5094:9:65","nodeType":"YulTypedName","src":"5094:9:65","type":""},{"name":"dataEnd","nativeSrc":"5105:7:65","nodeType":"YulTypedName","src":"5105:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5117:6:65","nodeType":"YulTypedName","src":"5117:6:65","type":""},{"name":"value1","nativeSrc":"5125:6:65","nodeType":"YulTypedName","src":"5125:6:65","type":""}],"src":"5050:472:65"},{"body":{"nativeSrc":"5573:81:65","nodeType":"YulBlock","src":"5573:81:65","statements":[{"nativeSrc":"5583:65:65","nodeType":"YulAssignment","src":"5583:65:65","value":{"arguments":[{"name":"value","nativeSrc":"5598:5:65","nodeType":"YulIdentifier","src":"5598:5:65"},{"kind":"number","nativeSrc":"5605:42:65","nodeType":"YulLiteral","src":"5605:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5594:3:65","nodeType":"YulIdentifier","src":"5594:3:65"},"nativeSrc":"5594:54:65","nodeType":"YulFunctionCall","src":"5594:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"5583:7:65","nodeType":"YulIdentifier","src":"5583:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5528:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5555:5:65","nodeType":"YulTypedName","src":"5555:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5565:7:65","nodeType":"YulTypedName","src":"5565:7:65","type":""}],"src":"5528:126:65"},{"body":{"nativeSrc":"5705:51:65","nodeType":"YulBlock","src":"5705:51:65","statements":[{"nativeSrc":"5715:35:65","nodeType":"YulAssignment","src":"5715:35:65","value":{"arguments":[{"name":"value","nativeSrc":"5744:5:65","nodeType":"YulIdentifier","src":"5744:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5726:17:65","nodeType":"YulIdentifier","src":"5726:17:65"},"nativeSrc":"5726:24:65","nodeType":"YulFunctionCall","src":"5726:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"5715:7:65","nodeType":"YulIdentifier","src":"5715:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"5660:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5687:5:65","nodeType":"YulTypedName","src":"5687:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5697:7:65","nodeType":"YulTypedName","src":"5697:7:65","type":""}],"src":"5660:96:65"},{"body":{"nativeSrc":"5805:79:65","nodeType":"YulBlock","src":"5805:79:65","statements":[{"body":{"nativeSrc":"5862:16:65","nodeType":"YulBlock","src":"5862:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5871:1:65","nodeType":"YulLiteral","src":"5871:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5874:1:65","nodeType":"YulLiteral","src":"5874:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5864:6:65","nodeType":"YulIdentifier","src":"5864:6:65"},"nativeSrc":"5864:12:65","nodeType":"YulFunctionCall","src":"5864:12:65"},"nativeSrc":"5864:12:65","nodeType":"YulExpressionStatement","src":"5864:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5828:5:65","nodeType":"YulIdentifier","src":"5828:5:65"},{"arguments":[{"name":"value","nativeSrc":"5853:5:65","nodeType":"YulIdentifier","src":"5853:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5835:17:65","nodeType":"YulIdentifier","src":"5835:17:65"},"nativeSrc":"5835:24:65","nodeType":"YulFunctionCall","src":"5835:24:65"}],"functionName":{"name":"eq","nativeSrc":"5825:2:65","nodeType":"YulIdentifier","src":"5825:2:65"},"nativeSrc":"5825:35:65","nodeType":"YulFunctionCall","src":"5825:35:65"}],"functionName":{"name":"iszero","nativeSrc":"5818:6:65","nodeType":"YulIdentifier","src":"5818:6:65"},"nativeSrc":"5818:43:65","nodeType":"YulFunctionCall","src":"5818:43:65"},"nativeSrc":"5815:63:65","nodeType":"YulIf","src":"5815:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"5762:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5798:5:65","nodeType":"YulTypedName","src":"5798:5:65","type":""}],"src":"5762:122:65"},{"body":{"nativeSrc":"5942:87:65","nodeType":"YulBlock","src":"5942:87:65","statements":[{"nativeSrc":"5952:29:65","nodeType":"YulAssignment","src":"5952:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"5974:6:65","nodeType":"YulIdentifier","src":"5974:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"5961:12:65","nodeType":"YulIdentifier","src":"5961:12:65"},"nativeSrc":"5961:20:65","nodeType":"YulFunctionCall","src":"5961:20:65"},"variableNames":[{"name":"value","nativeSrc":"5952:5:65","nodeType":"YulIdentifier","src":"5952:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6017:5:65","nodeType":"YulIdentifier","src":"6017:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5990:26:65","nodeType":"YulIdentifier","src":"5990:26:65"},"nativeSrc":"5990:33:65","nodeType":"YulFunctionCall","src":"5990:33:65"},"nativeSrc":"5990:33:65","nodeType":"YulExpressionStatement","src":"5990:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"5890:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5920:6:65","nodeType":"YulTypedName","src":"5920:6:65","type":""},{"name":"end","nativeSrc":"5928:3:65","nodeType":"YulTypedName","src":"5928:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5936:5:65","nodeType":"YulTypedName","src":"5936:5:65","type":""}],"src":"5890:139:65"},{"body":{"nativeSrc":"6134:518:65","nodeType":"YulBlock","src":"6134:518:65","statements":[{"body":{"nativeSrc":"6180:83:65","nodeType":"YulBlock","src":"6180:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6182:77:65","nodeType":"YulIdentifier","src":"6182:77:65"},"nativeSrc":"6182:79:65","nodeType":"YulFunctionCall","src":"6182:79:65"},"nativeSrc":"6182:79:65","nodeType":"YulExpressionStatement","src":"6182:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6155:7:65","nodeType":"YulIdentifier","src":"6155:7:65"},{"name":"headStart","nativeSrc":"6164:9:65","nodeType":"YulIdentifier","src":"6164:9:65"}],"functionName":{"name":"sub","nativeSrc":"6151:3:65","nodeType":"YulIdentifier","src":"6151:3:65"},"nativeSrc":"6151:23:65","nodeType":"YulFunctionCall","src":"6151:23:65"},{"kind":"number","nativeSrc":"6176:2:65","nodeType":"YulLiteral","src":"6176:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"6147:3:65","nodeType":"YulIdentifier","src":"6147:3:65"},"nativeSrc":"6147:32:65","nodeType":"YulFunctionCall","src":"6147:32:65"},"nativeSrc":"6144:119:65","nodeType":"YulIf","src":"6144:119:65"},{"nativeSrc":"6273:117:65","nodeType":"YulBlock","src":"6273:117:65","statements":[{"nativeSrc":"6288:15:65","nodeType":"YulVariableDeclaration","src":"6288:15:65","value":{"kind":"number","nativeSrc":"6302:1:65","nodeType":"YulLiteral","src":"6302:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6292:6:65","nodeType":"YulTypedName","src":"6292:6:65","type":""}]},{"nativeSrc":"6317:63:65","nodeType":"YulAssignment","src":"6317:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6352:9:65","nodeType":"YulIdentifier","src":"6352:9:65"},{"name":"offset","nativeSrc":"6363:6:65","nodeType":"YulIdentifier","src":"6363:6:65"}],"functionName":{"name":"add","nativeSrc":"6348:3:65","nodeType":"YulIdentifier","src":"6348:3:65"},"nativeSrc":"6348:22:65","nodeType":"YulFunctionCall","src":"6348:22:65"},{"name":"dataEnd","nativeSrc":"6372:7:65","nodeType":"YulIdentifier","src":"6372:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6327:20:65","nodeType":"YulIdentifier","src":"6327:20:65"},"nativeSrc":"6327:53:65","nodeType":"YulFunctionCall","src":"6327:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6317:6:65","nodeType":"YulIdentifier","src":"6317:6:65"}]}]},{"nativeSrc":"6400:117:65","nodeType":"YulBlock","src":"6400:117:65","statements":[{"nativeSrc":"6415:16:65","nodeType":"YulVariableDeclaration","src":"6415:16:65","value":{"kind":"number","nativeSrc":"6429:2:65","nodeType":"YulLiteral","src":"6429:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6419:6:65","nodeType":"YulTypedName","src":"6419:6:65","type":""}]},{"nativeSrc":"6445:62:65","nodeType":"YulAssignment","src":"6445:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6479:9:65","nodeType":"YulIdentifier","src":"6479:9:65"},{"name":"offset","nativeSrc":"6490:6:65","nodeType":"YulIdentifier","src":"6490:6:65"}],"functionName":{"name":"add","nativeSrc":"6475:3:65","nodeType":"YulIdentifier","src":"6475:3:65"},"nativeSrc":"6475:22:65","nodeType":"YulFunctionCall","src":"6475:22:65"},{"name":"dataEnd","nativeSrc":"6499:7:65","nodeType":"YulIdentifier","src":"6499:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"6455:19:65","nodeType":"YulIdentifier","src":"6455:19:65"},"nativeSrc":"6455:52:65","nodeType":"YulFunctionCall","src":"6455:52:65"},"variableNames":[{"name":"value1","nativeSrc":"6445:6:65","nodeType":"YulIdentifier","src":"6445:6:65"}]}]},{"nativeSrc":"6527:118:65","nodeType":"YulBlock","src":"6527:118:65","statements":[{"nativeSrc":"6542:16:65","nodeType":"YulVariableDeclaration","src":"6542:16:65","value":{"kind":"number","nativeSrc":"6556:2:65","nodeType":"YulLiteral","src":"6556:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6546:6:65","nodeType":"YulTypedName","src":"6546:6:65","type":""}]},{"nativeSrc":"6572:63:65","nodeType":"YulAssignment","src":"6572:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6607:9:65","nodeType":"YulIdentifier","src":"6607:9:65"},{"name":"offset","nativeSrc":"6618:6:65","nodeType":"YulIdentifier","src":"6618:6:65"}],"functionName":{"name":"add","nativeSrc":"6603:3:65","nodeType":"YulIdentifier","src":"6603:3:65"},"nativeSrc":"6603:22:65","nodeType":"YulFunctionCall","src":"6603:22:65"},{"name":"dataEnd","nativeSrc":"6627:7:65","nodeType":"YulIdentifier","src":"6627:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6582:20:65","nodeType":"YulIdentifier","src":"6582:20:65"},"nativeSrc":"6582:53:65","nodeType":"YulFunctionCall","src":"6582:53:65"},"variableNames":[{"name":"value2","nativeSrc":"6572:6:65","nodeType":"YulIdentifier","src":"6572:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_uint256","nativeSrc":"6035:617:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6088:9:65","nodeType":"YulTypedName","src":"6088:9:65","type":""},{"name":"dataEnd","nativeSrc":"6099:7:65","nodeType":"YulTypedName","src":"6099:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6111:6:65","nodeType":"YulTypedName","src":"6111:6:65","type":""},{"name":"value1","nativeSrc":"6119:6:65","nodeType":"YulTypedName","src":"6119:6:65","type":""},{"name":"value2","nativeSrc":"6127:6:65","nodeType":"YulTypedName","src":"6127:6:65","type":""}],"src":"6035:617:65"},{"body":{"nativeSrc":"6723:53:65","nodeType":"YulBlock","src":"6723:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6740:3:65","nodeType":"YulIdentifier","src":"6740:3:65"},{"arguments":[{"name":"value","nativeSrc":"6763:5:65","nodeType":"YulIdentifier","src":"6763:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6745:17:65","nodeType":"YulIdentifier","src":"6745:17:65"},"nativeSrc":"6745:24:65","nodeType":"YulFunctionCall","src":"6745:24:65"}],"functionName":{"name":"mstore","nativeSrc":"6733:6:65","nodeType":"YulIdentifier","src":"6733:6:65"},"nativeSrc":"6733:37:65","nodeType":"YulFunctionCall","src":"6733:37:65"},"nativeSrc":"6733:37:65","nodeType":"YulExpressionStatement","src":"6733:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6658:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6711:5:65","nodeType":"YulTypedName","src":"6711:5:65","type":""},{"name":"pos","nativeSrc":"6718:3:65","nodeType":"YulTypedName","src":"6718:3:65","type":""}],"src":"6658:118:65"},{"body":{"nativeSrc":"7036:608:65","nodeType":"YulBlock","src":"7036:608:65","statements":[{"nativeSrc":"7046:27:65","nodeType":"YulAssignment","src":"7046:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7058:9:65","nodeType":"YulIdentifier","src":"7058:9:65"},{"kind":"number","nativeSrc":"7069:3:65","nodeType":"YulLiteral","src":"7069:3:65","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"7054:3:65","nodeType":"YulIdentifier","src":"7054:3:65"},"nativeSrc":"7054:19:65","nodeType":"YulFunctionCall","src":"7054:19:65"},"variableNames":[{"name":"tail","nativeSrc":"7046:4:65","nodeType":"YulIdentifier","src":"7046:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7121:6:65","nodeType":"YulIdentifier","src":"7121:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7134:9:65","nodeType":"YulIdentifier","src":"7134:9:65"},{"kind":"number","nativeSrc":"7145:1:65","nodeType":"YulLiteral","src":"7145:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7130:3:65","nodeType":"YulIdentifier","src":"7130:3:65"},"nativeSrc":"7130:17:65","nodeType":"YulFunctionCall","src":"7130:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7083:37:65","nodeType":"YulIdentifier","src":"7083:37:65"},"nativeSrc":"7083:65:65","nodeType":"YulFunctionCall","src":"7083:65:65"},"nativeSrc":"7083:65:65","nodeType":"YulExpressionStatement","src":"7083:65:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7202:6:65","nodeType":"YulIdentifier","src":"7202:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7215:9:65","nodeType":"YulIdentifier","src":"7215:9:65"},{"kind":"number","nativeSrc":"7226:2:65","nodeType":"YulLiteral","src":"7226:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7211:3:65","nodeType":"YulIdentifier","src":"7211:3:65"},"nativeSrc":"7211:18:65","nodeType":"YulFunctionCall","src":"7211:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7158:43:65","nodeType":"YulIdentifier","src":"7158:43:65"},"nativeSrc":"7158:72:65","nodeType":"YulFunctionCall","src":"7158:72:65"},"nativeSrc":"7158:72:65","nodeType":"YulExpressionStatement","src":"7158:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"7284:6:65","nodeType":"YulIdentifier","src":"7284:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7297:9:65","nodeType":"YulIdentifier","src":"7297:9:65"},{"kind":"number","nativeSrc":"7308:2:65","nodeType":"YulLiteral","src":"7308:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7293:3:65","nodeType":"YulIdentifier","src":"7293:3:65"},"nativeSrc":"7293:18:65","nodeType":"YulFunctionCall","src":"7293:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7240:43:65","nodeType":"YulIdentifier","src":"7240:43:65"},"nativeSrc":"7240:72:65","nodeType":"YulFunctionCall","src":"7240:72:65"},"nativeSrc":"7240:72:65","nodeType":"YulExpressionStatement","src":"7240:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"7366:6:65","nodeType":"YulIdentifier","src":"7366:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7379:9:65","nodeType":"YulIdentifier","src":"7379:9:65"},{"kind":"number","nativeSrc":"7390:2:65","nodeType":"YulLiteral","src":"7390:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7375:3:65","nodeType":"YulIdentifier","src":"7375:3:65"},"nativeSrc":"7375:18:65","nodeType":"YulFunctionCall","src":"7375:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7322:43:65","nodeType":"YulIdentifier","src":"7322:43:65"},"nativeSrc":"7322:72:65","nodeType":"YulFunctionCall","src":"7322:72:65"},"nativeSrc":"7322:72:65","nodeType":"YulExpressionStatement","src":"7322:72:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"7448:6:65","nodeType":"YulIdentifier","src":"7448:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7461:9:65","nodeType":"YulIdentifier","src":"7461:9:65"},{"kind":"number","nativeSrc":"7472:3:65","nodeType":"YulLiteral","src":"7472:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7457:3:65","nodeType":"YulIdentifier","src":"7457:3:65"},"nativeSrc":"7457:19:65","nodeType":"YulFunctionCall","src":"7457:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7404:43:65","nodeType":"YulIdentifier","src":"7404:43:65"},"nativeSrc":"7404:73:65","nodeType":"YulFunctionCall","src":"7404:73:65"},"nativeSrc":"7404:73:65","nodeType":"YulExpressionStatement","src":"7404:73:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"7531:6:65","nodeType":"YulIdentifier","src":"7531:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7544:9:65","nodeType":"YulIdentifier","src":"7544:9:65"},{"kind":"number","nativeSrc":"7555:3:65","nodeType":"YulLiteral","src":"7555:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7540:3:65","nodeType":"YulIdentifier","src":"7540:3:65"},"nativeSrc":"7540:19:65","nodeType":"YulFunctionCall","src":"7540:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7487:43:65","nodeType":"YulIdentifier","src":"7487:43:65"},"nativeSrc":"7487:73:65","nodeType":"YulFunctionCall","src":"7487:73:65"},"nativeSrc":"7487:73:65","nodeType":"YulExpressionStatement","src":"7487:73:65"},{"expression":{"arguments":[{"name":"value6","nativeSrc":"7608:6:65","nodeType":"YulIdentifier","src":"7608:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7621:9:65","nodeType":"YulIdentifier","src":"7621:9:65"},{"kind":"number","nativeSrc":"7632:3:65","nodeType":"YulLiteral","src":"7632:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7617:3:65","nodeType":"YulIdentifier","src":"7617:3:65"},"nativeSrc":"7617:19:65","nodeType":"YulFunctionCall","src":"7617:19:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7570:37:65","nodeType":"YulIdentifier","src":"7570:37:65"},"nativeSrc":"7570:67:65","nodeType":"YulFunctionCall","src":"7570:67:65"},"nativeSrc":"7570:67:65","nodeType":"YulExpressionStatement","src":"7570:67:65"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed","nativeSrc":"6782:862:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6960:9:65","nodeType":"YulTypedName","src":"6960:9:65","type":""},{"name":"value6","nativeSrc":"6972:6:65","nodeType":"YulTypedName","src":"6972:6:65","type":""},{"name":"value5","nativeSrc":"6980:6:65","nodeType":"YulTypedName","src":"6980:6:65","type":""},{"name":"value4","nativeSrc":"6988:6:65","nodeType":"YulTypedName","src":"6988:6:65","type":""},{"name":"value3","nativeSrc":"6996:6:65","nodeType":"YulTypedName","src":"6996:6:65","type":""},{"name":"value2","nativeSrc":"7004:6:65","nodeType":"YulTypedName","src":"7004:6:65","type":""},{"name":"value1","nativeSrc":"7012:6:65","nodeType":"YulTypedName","src":"7012:6:65","type":""},{"name":"value0","nativeSrc":"7020:6:65","nodeType":"YulTypedName","src":"7020:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7031:4:65","nodeType":"YulTypedName","src":"7031:4:65","type":""}],"src":"6782:862:65"},{"body":{"nativeSrc":"7695:32:65","nodeType":"YulBlock","src":"7695:32:65","statements":[{"nativeSrc":"7705:16:65","nodeType":"YulAssignment","src":"7705:16:65","value":{"name":"value","nativeSrc":"7716:5:65","nodeType":"YulIdentifier","src":"7716:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"7705:7:65","nodeType":"YulIdentifier","src":"7705:7:65"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"7650:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7677:5:65","nodeType":"YulTypedName","src":"7677:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7687:7:65","nodeType":"YulTypedName","src":"7687:7:65","type":""}],"src":"7650:77:65"},{"body":{"nativeSrc":"7776:79:65","nodeType":"YulBlock","src":"7776:79:65","statements":[{"body":{"nativeSrc":"7833:16:65","nodeType":"YulBlock","src":"7833:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7842:1:65","nodeType":"YulLiteral","src":"7842:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7845:1:65","nodeType":"YulLiteral","src":"7845:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7835:6:65","nodeType":"YulIdentifier","src":"7835:6:65"},"nativeSrc":"7835:12:65","nodeType":"YulFunctionCall","src":"7835:12:65"},"nativeSrc":"7835:12:65","nodeType":"YulExpressionStatement","src":"7835:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7799:5:65","nodeType":"YulIdentifier","src":"7799:5:65"},{"arguments":[{"name":"value","nativeSrc":"7824:5:65","nodeType":"YulIdentifier","src":"7824:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"7806:17:65","nodeType":"YulIdentifier","src":"7806:17:65"},"nativeSrc":"7806:24:65","nodeType":"YulFunctionCall","src":"7806:24:65"}],"functionName":{"name":"eq","nativeSrc":"7796:2:65","nodeType":"YulIdentifier","src":"7796:2:65"},"nativeSrc":"7796:35:65","nodeType":"YulFunctionCall","src":"7796:35:65"}],"functionName":{"name":"iszero","nativeSrc":"7789:6:65","nodeType":"YulIdentifier","src":"7789:6:65"},"nativeSrc":"7789:43:65","nodeType":"YulFunctionCall","src":"7789:43:65"},"nativeSrc":"7786:63:65","nodeType":"YulIf","src":"7786:63:65"}]},"name":"validator_revert_t_bytes32","nativeSrc":"7733:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7769:5:65","nodeType":"YulTypedName","src":"7769:5:65","type":""}],"src":"7733:122:65"},{"body":{"nativeSrc":"7913:87:65","nodeType":"YulBlock","src":"7913:87:65","statements":[{"nativeSrc":"7923:29:65","nodeType":"YulAssignment","src":"7923:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"7945:6:65","nodeType":"YulIdentifier","src":"7945:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"7932:12:65","nodeType":"YulIdentifier","src":"7932:12:65"},"nativeSrc":"7932:20:65","nodeType":"YulFunctionCall","src":"7932:20:65"},"variableNames":[{"name":"value","nativeSrc":"7923:5:65","nodeType":"YulIdentifier","src":"7923:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7988:5:65","nodeType":"YulIdentifier","src":"7988:5:65"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"7961:26:65","nodeType":"YulIdentifier","src":"7961:26:65"},"nativeSrc":"7961:33:65","nodeType":"YulFunctionCall","src":"7961:33:65"},"nativeSrc":"7961:33:65","nodeType":"YulExpressionStatement","src":"7961:33:65"}]},"name":"abi_decode_t_bytes32","nativeSrc":"7861:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7891:6:65","nodeType":"YulTypedName","src":"7891:6:65","type":""},{"name":"end","nativeSrc":"7899:3:65","nodeType":"YulTypedName","src":"7899:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7907:5:65","nodeType":"YulTypedName","src":"7907:5:65","type":""}],"src":"7861:139:65"},{"body":{"nativeSrc":"8046:76:65","nodeType":"YulBlock","src":"8046:76:65","statements":[{"body":{"nativeSrc":"8100:16:65","nodeType":"YulBlock","src":"8100:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8109:1:65","nodeType":"YulLiteral","src":"8109:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"8112:1:65","nodeType":"YulLiteral","src":"8112:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8102:6:65","nodeType":"YulIdentifier","src":"8102:6:65"},"nativeSrc":"8102:12:65","nodeType":"YulFunctionCall","src":"8102:12:65"},"nativeSrc":"8102:12:65","nodeType":"YulExpressionStatement","src":"8102:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8069:5:65","nodeType":"YulIdentifier","src":"8069:5:65"},{"arguments":[{"name":"value","nativeSrc":"8091:5:65","nodeType":"YulIdentifier","src":"8091:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8076:14:65","nodeType":"YulIdentifier","src":"8076:14:65"},"nativeSrc":"8076:21:65","nodeType":"YulFunctionCall","src":"8076:21:65"}],"functionName":{"name":"eq","nativeSrc":"8066:2:65","nodeType":"YulIdentifier","src":"8066:2:65"},"nativeSrc":"8066:32:65","nodeType":"YulFunctionCall","src":"8066:32:65"}],"functionName":{"name":"iszero","nativeSrc":"8059:6:65","nodeType":"YulIdentifier","src":"8059:6:65"},"nativeSrc":"8059:40:65","nodeType":"YulFunctionCall","src":"8059:40:65"},"nativeSrc":"8056:60:65","nodeType":"YulIf","src":"8056:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"8006:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8039:5:65","nodeType":"YulTypedName","src":"8039:5:65","type":""}],"src":"8006:116:65"},{"body":{"nativeSrc":"8177:84:65","nodeType":"YulBlock","src":"8177:84:65","statements":[{"nativeSrc":"8187:29:65","nodeType":"YulAssignment","src":"8187:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"8209:6:65","nodeType":"YulIdentifier","src":"8209:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"8196:12:65","nodeType":"YulIdentifier","src":"8196:12:65"},"nativeSrc":"8196:20:65","nodeType":"YulFunctionCall","src":"8196:20:65"},"variableNames":[{"name":"value","nativeSrc":"8187:5:65","nodeType":"YulIdentifier","src":"8187:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8249:5:65","nodeType":"YulIdentifier","src":"8249:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8225:23:65","nodeType":"YulIdentifier","src":"8225:23:65"},"nativeSrc":"8225:30:65","nodeType":"YulFunctionCall","src":"8225:30:65"},"nativeSrc":"8225:30:65","nodeType":"YulExpressionStatement","src":"8225:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"8128:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8155:6:65","nodeType":"YulTypedName","src":"8155:6:65","type":""},{"name":"end","nativeSrc":"8163:3:65","nodeType":"YulTypedName","src":"8163:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8171:5:65","nodeType":"YulTypedName","src":"8171:5:65","type":""}],"src":"8128:133:65"},{"body":{"nativeSrc":"8416:952:65","nodeType":"YulBlock","src":"8416:952:65","statements":[{"body":{"nativeSrc":"8463:83:65","nodeType":"YulBlock","src":"8463:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8465:77:65","nodeType":"YulIdentifier","src":"8465:77:65"},"nativeSrc":"8465:79:65","nodeType":"YulFunctionCall","src":"8465:79:65"},"nativeSrc":"8465:79:65","nodeType":"YulExpressionStatement","src":"8465:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8437:7:65","nodeType":"YulIdentifier","src":"8437:7:65"},{"name":"headStart","nativeSrc":"8446:9:65","nodeType":"YulIdentifier","src":"8446:9:65"}],"functionName":{"name":"sub","nativeSrc":"8433:3:65","nodeType":"YulIdentifier","src":"8433:3:65"},"nativeSrc":"8433:23:65","nodeType":"YulFunctionCall","src":"8433:23:65"},{"kind":"number","nativeSrc":"8458:3:65","nodeType":"YulLiteral","src":"8458:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8429:3:65","nodeType":"YulIdentifier","src":"8429:3:65"},"nativeSrc":"8429:33:65","nodeType":"YulFunctionCall","src":"8429:33:65"},"nativeSrc":"8426:120:65","nodeType":"YulIf","src":"8426:120:65"},{"nativeSrc":"8556:116:65","nodeType":"YulBlock","src":"8556:116:65","statements":[{"nativeSrc":"8571:15:65","nodeType":"YulVariableDeclaration","src":"8571:15:65","value":{"kind":"number","nativeSrc":"8585:1:65","nodeType":"YulLiteral","src":"8585:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8575:6:65","nodeType":"YulTypedName","src":"8575:6:65","type":""}]},{"nativeSrc":"8600:62:65","nodeType":"YulAssignment","src":"8600:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8634:9:65","nodeType":"YulIdentifier","src":"8634:9:65"},{"name":"offset","nativeSrc":"8645:6:65","nodeType":"YulIdentifier","src":"8645:6:65"}],"functionName":{"name":"add","nativeSrc":"8630:3:65","nodeType":"YulIdentifier","src":"8630:3:65"},"nativeSrc":"8630:22:65","nodeType":"YulFunctionCall","src":"8630:22:65"},{"name":"dataEnd","nativeSrc":"8654:7:65","nodeType":"YulIdentifier","src":"8654:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"8610:19:65","nodeType":"YulIdentifier","src":"8610:19:65"},"nativeSrc":"8610:52:65","nodeType":"YulFunctionCall","src":"8610:52:65"},"variableNames":[{"name":"value0","nativeSrc":"8600:6:65","nodeType":"YulIdentifier","src":"8600:6:65"}]}]},{"nativeSrc":"8682:118:65","nodeType":"YulBlock","src":"8682:118:65","statements":[{"nativeSrc":"8697:16:65","nodeType":"YulVariableDeclaration","src":"8697:16:65","value":{"kind":"number","nativeSrc":"8711:2:65","nodeType":"YulLiteral","src":"8711:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8701:6:65","nodeType":"YulTypedName","src":"8701:6:65","type":""}]},{"nativeSrc":"8727:63:65","nodeType":"YulAssignment","src":"8727:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8762:9:65","nodeType":"YulIdentifier","src":"8762:9:65"},{"name":"offset","nativeSrc":"8773:6:65","nodeType":"YulIdentifier","src":"8773:6:65"}],"functionName":{"name":"add","nativeSrc":"8758:3:65","nodeType":"YulIdentifier","src":"8758:3:65"},"nativeSrc":"8758:22:65","nodeType":"YulFunctionCall","src":"8758:22:65"},{"name":"dataEnd","nativeSrc":"8782:7:65","nodeType":"YulIdentifier","src":"8782:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"8737:20:65","nodeType":"YulIdentifier","src":"8737:20:65"},"nativeSrc":"8737:53:65","nodeType":"YulFunctionCall","src":"8737:53:65"},"variableNames":[{"name":"value1","nativeSrc":"8727:6:65","nodeType":"YulIdentifier","src":"8727:6:65"}]}]},{"nativeSrc":"8810:118:65","nodeType":"YulBlock","src":"8810:118:65","statements":[{"nativeSrc":"8825:16:65","nodeType":"YulVariableDeclaration","src":"8825:16:65","value":{"kind":"number","nativeSrc":"8839:2:65","nodeType":"YulLiteral","src":"8839:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8829:6:65","nodeType":"YulTypedName","src":"8829:6:65","type":""}]},{"nativeSrc":"8855:63:65","nodeType":"YulAssignment","src":"8855:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8890:9:65","nodeType":"YulIdentifier","src":"8890:9:65"},{"name":"offset","nativeSrc":"8901:6:65","nodeType":"YulIdentifier","src":"8901:6:65"}],"functionName":{"name":"add","nativeSrc":"8886:3:65","nodeType":"YulIdentifier","src":"8886:3:65"},"nativeSrc":"8886:22:65","nodeType":"YulFunctionCall","src":"8886:22:65"},{"name":"dataEnd","nativeSrc":"8910:7:65","nodeType":"YulIdentifier","src":"8910:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8865:20:65","nodeType":"YulIdentifier","src":"8865:20:65"},"nativeSrc":"8865:53:65","nodeType":"YulFunctionCall","src":"8865:53:65"},"variableNames":[{"name":"value2","nativeSrc":"8855:6:65","nodeType":"YulIdentifier","src":"8855:6:65"}]}]},{"nativeSrc":"8938:115:65","nodeType":"YulBlock","src":"8938:115:65","statements":[{"nativeSrc":"8953:16:65","nodeType":"YulVariableDeclaration","src":"8953:16:65","value":{"kind":"number","nativeSrc":"8967:2:65","nodeType":"YulLiteral","src":"8967:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"8957:6:65","nodeType":"YulTypedName","src":"8957:6:65","type":""}]},{"nativeSrc":"8983:60:65","nodeType":"YulAssignment","src":"8983:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9015:9:65","nodeType":"YulIdentifier","src":"9015:9:65"},{"name":"offset","nativeSrc":"9026:6:65","nodeType":"YulIdentifier","src":"9026:6:65"}],"functionName":{"name":"add","nativeSrc":"9011:3:65","nodeType":"YulIdentifier","src":"9011:3:65"},"nativeSrc":"9011:22:65","nodeType":"YulFunctionCall","src":"9011:22:65"},{"name":"dataEnd","nativeSrc":"9035:7:65","nodeType":"YulIdentifier","src":"9035:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"8993:17:65","nodeType":"YulIdentifier","src":"8993:17:65"},"nativeSrc":"8993:50:65","nodeType":"YulFunctionCall","src":"8993:50:65"},"variableNames":[{"name":"value3","nativeSrc":"8983:6:65","nodeType":"YulIdentifier","src":"8983:6:65"}]}]},{"nativeSrc":"9063:298:65","nodeType":"YulBlock","src":"9063:298:65","statements":[{"nativeSrc":"9078:47:65","nodeType":"YulVariableDeclaration","src":"9078:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9109:9:65","nodeType":"YulIdentifier","src":"9109:9:65"},{"kind":"number","nativeSrc":"9120:3:65","nodeType":"YulLiteral","src":"9120:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9105:3:65","nodeType":"YulIdentifier","src":"9105:3:65"},"nativeSrc":"9105:19:65","nodeType":"YulFunctionCall","src":"9105:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"9092:12:65","nodeType":"YulIdentifier","src":"9092:12:65"},"nativeSrc":"9092:33:65","nodeType":"YulFunctionCall","src":"9092:33:65"},"variables":[{"name":"offset","nativeSrc":"9082:6:65","nodeType":"YulTypedName","src":"9082:6:65","type":""}]},{"body":{"nativeSrc":"9172:83:65","nodeType":"YulBlock","src":"9172:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9174:77:65","nodeType":"YulIdentifier","src":"9174:77:65"},"nativeSrc":"9174:79:65","nodeType":"YulFunctionCall","src":"9174:79:65"},"nativeSrc":"9174:79:65","nodeType":"YulExpressionStatement","src":"9174:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9144:6:65","nodeType":"YulIdentifier","src":"9144:6:65"},{"kind":"number","nativeSrc":"9152:18:65","nodeType":"YulLiteral","src":"9152:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9141:2:65","nodeType":"YulIdentifier","src":"9141:2:65"},"nativeSrc":"9141:30:65","nodeType":"YulFunctionCall","src":"9141:30:65"},"nativeSrc":"9138:117:65","nodeType":"YulIf","src":"9138:117:65"},{"nativeSrc":"9269:82:65","nodeType":"YulAssignment","src":"9269:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9323:9:65","nodeType":"YulIdentifier","src":"9323:9:65"},{"name":"offset","nativeSrc":"9334:6:65","nodeType":"YulIdentifier","src":"9334:6:65"}],"functionName":{"name":"add","nativeSrc":"9319:3:65","nodeType":"YulIdentifier","src":"9319:3:65"},"nativeSrc":"9319:22:65","nodeType":"YulFunctionCall","src":"9319:22:65"},{"name":"dataEnd","nativeSrc":"9343:7:65","nodeType":"YulIdentifier","src":"9343:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9287:31:65","nodeType":"YulIdentifier","src":"9287:31:65"},"nativeSrc":"9287:64:65","nodeType":"YulFunctionCall","src":"9287:64:65"},"variableNames":[{"name":"value4","nativeSrc":"9269:6:65","nodeType":"YulIdentifier","src":"9269:6:65"},{"name":"value5","nativeSrc":"9277:6:65","nodeType":"YulIdentifier","src":"9277:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr","nativeSrc":"8267:1101:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8346:9:65","nodeType":"YulTypedName","src":"8346:9:65","type":""},{"name":"dataEnd","nativeSrc":"8357:7:65","nodeType":"YulTypedName","src":"8357:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8369:6:65","nodeType":"YulTypedName","src":"8369:6:65","type":""},{"name":"value1","nativeSrc":"8377:6:65","nodeType":"YulTypedName","src":"8377:6:65","type":""},{"name":"value2","nativeSrc":"8385:6:65","nodeType":"YulTypedName","src":"8385:6:65","type":""},{"name":"value3","nativeSrc":"8393:6:65","nodeType":"YulTypedName","src":"8393:6:65","type":""},{"name":"value4","nativeSrc":"8401:6:65","nodeType":"YulTypedName","src":"8401:6:65","type":""},{"name":"value5","nativeSrc":"8409:6:65","nodeType":"YulTypedName","src":"8409:6:65","type":""}],"src":"8267:1101:65"},{"body":{"nativeSrc":"9500:206:65","nodeType":"YulBlock","src":"9500:206:65","statements":[{"nativeSrc":"9510:26:65","nodeType":"YulAssignment","src":"9510:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9522:9:65","nodeType":"YulIdentifier","src":"9522:9:65"},{"kind":"number","nativeSrc":"9533:2:65","nodeType":"YulLiteral","src":"9533:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9518:3:65","nodeType":"YulIdentifier","src":"9518:3:65"},"nativeSrc":"9518:18:65","nodeType":"YulFunctionCall","src":"9518:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9510:4:65","nodeType":"YulIdentifier","src":"9510:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9590:6:65","nodeType":"YulIdentifier","src":"9590:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9603:9:65","nodeType":"YulIdentifier","src":"9603:9:65"},{"kind":"number","nativeSrc":"9614:1:65","nodeType":"YulLiteral","src":"9614:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9599:3:65","nodeType":"YulIdentifier","src":"9599:3:65"},"nativeSrc":"9599:17:65","nodeType":"YulFunctionCall","src":"9599:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9546:43:65","nodeType":"YulIdentifier","src":"9546:43:65"},"nativeSrc":"9546:71:65","nodeType":"YulFunctionCall","src":"9546:71:65"},"nativeSrc":"9546:71:65","nodeType":"YulExpressionStatement","src":"9546:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9671:6:65","nodeType":"YulIdentifier","src":"9671:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9684:9:65","nodeType":"YulIdentifier","src":"9684:9:65"},{"kind":"number","nativeSrc":"9695:2:65","nodeType":"YulLiteral","src":"9695:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9680:3:65","nodeType":"YulIdentifier","src":"9680:3:65"},"nativeSrc":"9680:18:65","nodeType":"YulFunctionCall","src":"9680:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9627:43:65","nodeType":"YulIdentifier","src":"9627:43:65"},"nativeSrc":"9627:72:65","nodeType":"YulFunctionCall","src":"9627:72:65"},"nativeSrc":"9627:72:65","nodeType":"YulExpressionStatement","src":"9627:72:65"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"9374:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9464:9:65","nodeType":"YulTypedName","src":"9464:9:65","type":""},{"name":"value1","nativeSrc":"9476:6:65","nodeType":"YulTypedName","src":"9476:6:65","type":""},{"name":"value0","nativeSrc":"9484:6:65","nodeType":"YulTypedName","src":"9484:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9495:4:65","nodeType":"YulTypedName","src":"9495:4:65","type":""}],"src":"9374:332:65"},{"body":{"nativeSrc":"9810:124:65","nodeType":"YulBlock","src":"9810:124:65","statements":[{"nativeSrc":"9820:26:65","nodeType":"YulAssignment","src":"9820:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9832:9:65","nodeType":"YulIdentifier","src":"9832:9:65"},{"kind":"number","nativeSrc":"9843:2:65","nodeType":"YulLiteral","src":"9843:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9828:3:65","nodeType":"YulIdentifier","src":"9828:3:65"},"nativeSrc":"9828:18:65","nodeType":"YulFunctionCall","src":"9828:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9820:4:65","nodeType":"YulIdentifier","src":"9820:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9900:6:65","nodeType":"YulIdentifier","src":"9900:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9913:9:65","nodeType":"YulIdentifier","src":"9913:9:65"},{"kind":"number","nativeSrc":"9924:1:65","nodeType":"YulLiteral","src":"9924:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9909:3:65","nodeType":"YulIdentifier","src":"9909:3:65"},"nativeSrc":"9909:17:65","nodeType":"YulFunctionCall","src":"9909:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9856:43:65","nodeType":"YulIdentifier","src":"9856:43:65"},"nativeSrc":"9856:71:65","nodeType":"YulFunctionCall","src":"9856:71:65"},"nativeSrc":"9856:71:65","nodeType":"YulExpressionStatement","src":"9856:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"9712:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9782:9:65","nodeType":"YulTypedName","src":"9782:9:65","type":""},{"name":"value0","nativeSrc":"9794:6:65","nodeType":"YulTypedName","src":"9794:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9805:4:65","nodeType":"YulTypedName","src":"9805:4:65","type":""}],"src":"9712:222:65"},{"body":{"nativeSrc":"10041:569:65","nodeType":"YulBlock","src":"10041:569:65","statements":[{"body":{"nativeSrc":"10087:83:65","nodeType":"YulBlock","src":"10087:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10089:77:65","nodeType":"YulIdentifier","src":"10089:77:65"},"nativeSrc":"10089:79:65","nodeType":"YulFunctionCall","src":"10089:79:65"},"nativeSrc":"10089:79:65","nodeType":"YulExpressionStatement","src":"10089:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10062:7:65","nodeType":"YulIdentifier","src":"10062:7:65"},{"name":"headStart","nativeSrc":"10071:9:65","nodeType":"YulIdentifier","src":"10071:9:65"}],"functionName":{"name":"sub","nativeSrc":"10058:3:65","nodeType":"YulIdentifier","src":"10058:3:65"},"nativeSrc":"10058:23:65","nodeType":"YulFunctionCall","src":"10058:23:65"},{"kind":"number","nativeSrc":"10083:2:65","nodeType":"YulLiteral","src":"10083:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10054:3:65","nodeType":"YulIdentifier","src":"10054:3:65"},"nativeSrc":"10054:32:65","nodeType":"YulFunctionCall","src":"10054:32:65"},"nativeSrc":"10051:119:65","nodeType":"YulIf","src":"10051:119:65"},{"nativeSrc":"10180:116:65","nodeType":"YulBlock","src":"10180:116:65","statements":[{"nativeSrc":"10195:15:65","nodeType":"YulVariableDeclaration","src":"10195:15:65","value":{"kind":"number","nativeSrc":"10209:1:65","nodeType":"YulLiteral","src":"10209:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10199:6:65","nodeType":"YulTypedName","src":"10199:6:65","type":""}]},{"nativeSrc":"10224:62:65","nodeType":"YulAssignment","src":"10224:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10258:9:65","nodeType":"YulIdentifier","src":"10258:9:65"},{"name":"offset","nativeSrc":"10269:6:65","nodeType":"YulIdentifier","src":"10269:6:65"}],"functionName":{"name":"add","nativeSrc":"10254:3:65","nodeType":"YulIdentifier","src":"10254:3:65"},"nativeSrc":"10254:22:65","nodeType":"YulFunctionCall","src":"10254:22:65"},{"name":"dataEnd","nativeSrc":"10278:7:65","nodeType":"YulIdentifier","src":"10278:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"10234:19:65","nodeType":"YulIdentifier","src":"10234:19:65"},"nativeSrc":"10234:52:65","nodeType":"YulFunctionCall","src":"10234:52:65"},"variableNames":[{"name":"value0","nativeSrc":"10224:6:65","nodeType":"YulIdentifier","src":"10224:6:65"}]}]},{"nativeSrc":"10306:297:65","nodeType":"YulBlock","src":"10306:297:65","statements":[{"nativeSrc":"10321:46:65","nodeType":"YulVariableDeclaration","src":"10321:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10352:9:65","nodeType":"YulIdentifier","src":"10352:9:65"},{"kind":"number","nativeSrc":"10363:2:65","nodeType":"YulLiteral","src":"10363:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10348:3:65","nodeType":"YulIdentifier","src":"10348:3:65"},"nativeSrc":"10348:18:65","nodeType":"YulFunctionCall","src":"10348:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"10335:12:65","nodeType":"YulIdentifier","src":"10335:12:65"},"nativeSrc":"10335:32:65","nodeType":"YulFunctionCall","src":"10335:32:65"},"variables":[{"name":"offset","nativeSrc":"10325:6:65","nodeType":"YulTypedName","src":"10325:6:65","type":""}]},{"body":{"nativeSrc":"10414:83:65","nodeType":"YulBlock","src":"10414:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10416:77:65","nodeType":"YulIdentifier","src":"10416:77:65"},"nativeSrc":"10416:79:65","nodeType":"YulFunctionCall","src":"10416:79:65"},"nativeSrc":"10416:79:65","nodeType":"YulExpressionStatement","src":"10416:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10386:6:65","nodeType":"YulIdentifier","src":"10386:6:65"},{"kind":"number","nativeSrc":"10394:18:65","nodeType":"YulLiteral","src":"10394:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10383:2:65","nodeType":"YulIdentifier","src":"10383:2:65"},"nativeSrc":"10383:30:65","nodeType":"YulFunctionCall","src":"10383:30:65"},"nativeSrc":"10380:117:65","nodeType":"YulIf","src":"10380:117:65"},{"nativeSrc":"10511:82:65","nodeType":"YulAssignment","src":"10511:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10565:9:65","nodeType":"YulIdentifier","src":"10565:9:65"},{"name":"offset","nativeSrc":"10576:6:65","nodeType":"YulIdentifier","src":"10576:6:65"}],"functionName":{"name":"add","nativeSrc":"10561:3:65","nodeType":"YulIdentifier","src":"10561:3:65"},"nativeSrc":"10561:22:65","nodeType":"YulFunctionCall","src":"10561:22:65"},{"name":"dataEnd","nativeSrc":"10585:7:65","nodeType":"YulIdentifier","src":"10585:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10529:31:65","nodeType":"YulIdentifier","src":"10529:31:65"},"nativeSrc":"10529:64:65","nodeType":"YulFunctionCall","src":"10529:64:65"},"variableNames":[{"name":"value1","nativeSrc":"10511:6:65","nodeType":"YulIdentifier","src":"10511:6:65"},{"name":"value2","nativeSrc":"10519:6:65","nodeType":"YulIdentifier","src":"10519:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"9940:670:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9995:9:65","nodeType":"YulTypedName","src":"9995:9:65","type":""},{"name":"dataEnd","nativeSrc":"10006:7:65","nodeType":"YulTypedName","src":"10006:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10018:6:65","nodeType":"YulTypedName","src":"10018:6:65","type":""},{"name":"value1","nativeSrc":"10026:6:65","nodeType":"YulTypedName","src":"10026:6:65","type":""},{"name":"value2","nativeSrc":"10034:6:65","nodeType":"YulTypedName","src":"10034:6:65","type":""}],"src":"9940:670:65"},{"body":{"nativeSrc":"10659:43:65","nodeType":"YulBlock","src":"10659:43:65","statements":[{"nativeSrc":"10669:27:65","nodeType":"YulAssignment","src":"10669:27:65","value":{"arguments":[{"name":"value","nativeSrc":"10684:5:65","nodeType":"YulIdentifier","src":"10684:5:65"},{"kind":"number","nativeSrc":"10691:4:65","nodeType":"YulLiteral","src":"10691:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"10680:3:65","nodeType":"YulIdentifier","src":"10680:3:65"},"nativeSrc":"10680:16:65","nodeType":"YulFunctionCall","src":"10680:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"10669:7:65","nodeType":"YulIdentifier","src":"10669:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"10616:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10641:5:65","nodeType":"YulTypedName","src":"10641:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10651:7:65","nodeType":"YulTypedName","src":"10651:7:65","type":""}],"src":"10616:86:65"},{"body":{"nativeSrc":"10769:51:65","nodeType":"YulBlock","src":"10769:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10786:3:65","nodeType":"YulIdentifier","src":"10786:3:65"},{"arguments":[{"name":"value","nativeSrc":"10807:5:65","nodeType":"YulIdentifier","src":"10807:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"10791:15:65","nodeType":"YulIdentifier","src":"10791:15:65"},"nativeSrc":"10791:22:65","nodeType":"YulFunctionCall","src":"10791:22:65"}],"functionName":{"name":"mstore","nativeSrc":"10779:6:65","nodeType":"YulIdentifier","src":"10779:6:65"},"nativeSrc":"10779:35:65","nodeType":"YulFunctionCall","src":"10779:35:65"},"nativeSrc":"10779:35:65","nodeType":"YulExpressionStatement","src":"10779:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"10708:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10757:5:65","nodeType":"YulTypedName","src":"10757:5:65","type":""},{"name":"pos","nativeSrc":"10764:3:65","nodeType":"YulTypedName","src":"10764:3:65","type":""}],"src":"10708:112:65"},{"body":{"nativeSrc":"10920:120:65","nodeType":"YulBlock","src":"10920:120:65","statements":[{"nativeSrc":"10930:26:65","nodeType":"YulAssignment","src":"10930:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10942:9:65","nodeType":"YulIdentifier","src":"10942:9:65"},{"kind":"number","nativeSrc":"10953:2:65","nodeType":"YulLiteral","src":"10953:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10938:3:65","nodeType":"YulIdentifier","src":"10938:3:65"},"nativeSrc":"10938:18:65","nodeType":"YulFunctionCall","src":"10938:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10930:4:65","nodeType":"YulIdentifier","src":"10930:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11006:6:65","nodeType":"YulIdentifier","src":"11006:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"11019:9:65","nodeType":"YulIdentifier","src":"11019:9:65"},{"kind":"number","nativeSrc":"11030:1:65","nodeType":"YulLiteral","src":"11030:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11015:3:65","nodeType":"YulIdentifier","src":"11015:3:65"},"nativeSrc":"11015:17:65","nodeType":"YulFunctionCall","src":"11015:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"10966:39:65","nodeType":"YulIdentifier","src":"10966:39:65"},"nativeSrc":"10966:67:65","nodeType":"YulFunctionCall","src":"10966:67:65"},"nativeSrc":"10966:67:65","nodeType":"YulExpressionStatement","src":"10966:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"10826:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10892:9:65","nodeType":"YulTypedName","src":"10892:9:65","type":""},{"name":"value0","nativeSrc":"10904:6:65","nodeType":"YulTypedName","src":"10904:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10915:4:65","nodeType":"YulTypedName","src":"10915:4:65","type":""}],"src":"10826:214:65"},{"body":{"nativeSrc":"11109:260:65","nodeType":"YulBlock","src":"11109:260:65","statements":[{"body":{"nativeSrc":"11155:83:65","nodeType":"YulBlock","src":"11155:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11157:77:65","nodeType":"YulIdentifier","src":"11157:77:65"},"nativeSrc":"11157:79:65","nodeType":"YulFunctionCall","src":"11157:79:65"},"nativeSrc":"11157:79:65","nodeType":"YulExpressionStatement","src":"11157:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11130:7:65","nodeType":"YulIdentifier","src":"11130:7:65"},{"name":"headStart","nativeSrc":"11139:9:65","nodeType":"YulIdentifier","src":"11139:9:65"}],"functionName":{"name":"sub","nativeSrc":"11126:3:65","nodeType":"YulIdentifier","src":"11126:3:65"},"nativeSrc":"11126:23:65","nodeType":"YulFunctionCall","src":"11126:23:65"},{"kind":"number","nativeSrc":"11151:2:65","nodeType":"YulLiteral","src":"11151:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11122:3:65","nodeType":"YulIdentifier","src":"11122:3:65"},"nativeSrc":"11122:32:65","nodeType":"YulFunctionCall","src":"11122:32:65"},"nativeSrc":"11119:119:65","nodeType":"YulIf","src":"11119:119:65"},{"nativeSrc":"11248:114:65","nodeType":"YulBlock","src":"11248:114:65","statements":[{"nativeSrc":"11263:15:65","nodeType":"YulVariableDeclaration","src":"11263:15:65","value":{"kind":"number","nativeSrc":"11277:1:65","nodeType":"YulLiteral","src":"11277:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11267:6:65","nodeType":"YulTypedName","src":"11267:6:65","type":""}]},{"nativeSrc":"11292:60:65","nodeType":"YulAssignment","src":"11292:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11324:9:65","nodeType":"YulIdentifier","src":"11324:9:65"},{"name":"offset","nativeSrc":"11335:6:65","nodeType":"YulIdentifier","src":"11335:6:65"}],"functionName":{"name":"add","nativeSrc":"11320:3:65","nodeType":"YulIdentifier","src":"11320:3:65"},"nativeSrc":"11320:22:65","nodeType":"YulFunctionCall","src":"11320:22:65"},{"name":"dataEnd","nativeSrc":"11344:7:65","nodeType":"YulIdentifier","src":"11344:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"11302:17:65","nodeType":"YulIdentifier","src":"11302:17:65"},"nativeSrc":"11302:50:65","nodeType":"YulFunctionCall","src":"11302:50:65"},"variableNames":[{"name":"value0","nativeSrc":"11292:6:65","nodeType":"YulIdentifier","src":"11292:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"11046:323:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11079:9:65","nodeType":"YulTypedName","src":"11079:9:65","type":""},{"name":"dataEnd","nativeSrc":"11090:7:65","nodeType":"YulTypedName","src":"11090:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11102:6:65","nodeType":"YulTypedName","src":"11102:6:65","type":""}],"src":"11046:323:65"},{"body":{"nativeSrc":"11455:388:65","nodeType":"YulBlock","src":"11455:388:65","statements":[{"body":{"nativeSrc":"11501:83:65","nodeType":"YulBlock","src":"11501:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11503:77:65","nodeType":"YulIdentifier","src":"11503:77:65"},"nativeSrc":"11503:79:65","nodeType":"YulFunctionCall","src":"11503:79:65"},"nativeSrc":"11503:79:65","nodeType":"YulExpressionStatement","src":"11503:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11476:7:65","nodeType":"YulIdentifier","src":"11476:7:65"},{"name":"headStart","nativeSrc":"11485:9:65","nodeType":"YulIdentifier","src":"11485:9:65"}],"functionName":{"name":"sub","nativeSrc":"11472:3:65","nodeType":"YulIdentifier","src":"11472:3:65"},"nativeSrc":"11472:23:65","nodeType":"YulFunctionCall","src":"11472:23:65"},{"kind":"number","nativeSrc":"11497:2:65","nodeType":"YulLiteral","src":"11497:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11468:3:65","nodeType":"YulIdentifier","src":"11468:3:65"},"nativeSrc":"11468:32:65","nodeType":"YulFunctionCall","src":"11468:32:65"},"nativeSrc":"11465:119:65","nodeType":"YulIf","src":"11465:119:65"},{"nativeSrc":"11594:117:65","nodeType":"YulBlock","src":"11594:117:65","statements":[{"nativeSrc":"11609:15:65","nodeType":"YulVariableDeclaration","src":"11609:15:65","value":{"kind":"number","nativeSrc":"11623:1:65","nodeType":"YulLiteral","src":"11623:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11613:6:65","nodeType":"YulTypedName","src":"11613:6:65","type":""}]},{"nativeSrc":"11638:63:65","nodeType":"YulAssignment","src":"11638:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11673:9:65","nodeType":"YulIdentifier","src":"11673:9:65"},{"name":"offset","nativeSrc":"11684:6:65","nodeType":"YulIdentifier","src":"11684:6:65"}],"functionName":{"name":"add","nativeSrc":"11669:3:65","nodeType":"YulIdentifier","src":"11669:3:65"},"nativeSrc":"11669:22:65","nodeType":"YulFunctionCall","src":"11669:22:65"},{"name":"dataEnd","nativeSrc":"11693:7:65","nodeType":"YulIdentifier","src":"11693:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11648:20:65","nodeType":"YulIdentifier","src":"11648:20:65"},"nativeSrc":"11648:53:65","nodeType":"YulFunctionCall","src":"11648:53:65"},"variableNames":[{"name":"value0","nativeSrc":"11638:6:65","nodeType":"YulIdentifier","src":"11638:6:65"}]}]},{"nativeSrc":"11721:115:65","nodeType":"YulBlock","src":"11721:115:65","statements":[{"nativeSrc":"11736:16:65","nodeType":"YulVariableDeclaration","src":"11736:16:65","value":{"kind":"number","nativeSrc":"11750:2:65","nodeType":"YulLiteral","src":"11750:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11740:6:65","nodeType":"YulTypedName","src":"11740:6:65","type":""}]},{"nativeSrc":"11766:60:65","nodeType":"YulAssignment","src":"11766:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11798:9:65","nodeType":"YulIdentifier","src":"11798:9:65"},{"name":"offset","nativeSrc":"11809:6:65","nodeType":"YulIdentifier","src":"11809:6:65"}],"functionName":{"name":"add","nativeSrc":"11794:3:65","nodeType":"YulIdentifier","src":"11794:3:65"},"nativeSrc":"11794:22:65","nodeType":"YulFunctionCall","src":"11794:22:65"},{"name":"dataEnd","nativeSrc":"11818:7:65","nodeType":"YulIdentifier","src":"11818:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"11776:17:65","nodeType":"YulIdentifier","src":"11776:17:65"},"nativeSrc":"11776:50:65","nodeType":"YulFunctionCall","src":"11776:50:65"},"variableNames":[{"name":"value1","nativeSrc":"11766:6:65","nodeType":"YulIdentifier","src":"11766:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"11375:468:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11417:9:65","nodeType":"YulTypedName","src":"11417:9:65","type":""},{"name":"dataEnd","nativeSrc":"11428:7:65","nodeType":"YulTypedName","src":"11428:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11440:6:65","nodeType":"YulTypedName","src":"11440:6:65","type":""},{"name":"value1","nativeSrc":"11448:6:65","nodeType":"YulTypedName","src":"11448:6:65","type":""}],"src":"11375:468:65"},{"body":{"nativeSrc":"11938:28:65","nodeType":"YulBlock","src":"11938:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11955:1:65","nodeType":"YulLiteral","src":"11955:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"11958:1:65","nodeType":"YulLiteral","src":"11958:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11948:6:65","nodeType":"YulIdentifier","src":"11948:6:65"},"nativeSrc":"11948:12:65","nodeType":"YulFunctionCall","src":"11948:12:65"},"nativeSrc":"11948:12:65","nodeType":"YulExpressionStatement","src":"11948:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11849:117:65","nodeType":"YulFunctionDefinition","src":"11849:117:65"},{"body":{"nativeSrc":"12020:54:65","nodeType":"YulBlock","src":"12020:54:65","statements":[{"nativeSrc":"12030:38:65","nodeType":"YulAssignment","src":"12030:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12048:5:65","nodeType":"YulIdentifier","src":"12048:5:65"},{"kind":"number","nativeSrc":"12055:2:65","nodeType":"YulLiteral","src":"12055:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12044:3:65","nodeType":"YulIdentifier","src":"12044:3:65"},"nativeSrc":"12044:14:65","nodeType":"YulFunctionCall","src":"12044:14:65"},{"arguments":[{"kind":"number","nativeSrc":"12064:2:65","nodeType":"YulLiteral","src":"12064:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12060:3:65","nodeType":"YulIdentifier","src":"12060:3:65"},"nativeSrc":"12060:7:65","nodeType":"YulFunctionCall","src":"12060:7:65"}],"functionName":{"name":"and","nativeSrc":"12040:3:65","nodeType":"YulIdentifier","src":"12040:3:65"},"nativeSrc":"12040:28:65","nodeType":"YulFunctionCall","src":"12040:28:65"},"variableNames":[{"name":"result","nativeSrc":"12030:6:65","nodeType":"YulIdentifier","src":"12030:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"11972:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12003:5:65","nodeType":"YulTypedName","src":"12003:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12013:6:65","nodeType":"YulTypedName","src":"12013:6:65","type":""}],"src":"11972:102:65"},{"body":{"nativeSrc":"12108:152:65","nodeType":"YulBlock","src":"12108:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12125:1:65","nodeType":"YulLiteral","src":"12125:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12128:77:65","nodeType":"YulLiteral","src":"12128:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12118:6:65","nodeType":"YulIdentifier","src":"12118:6:65"},"nativeSrc":"12118:88:65","nodeType":"YulFunctionCall","src":"12118:88:65"},"nativeSrc":"12118:88:65","nodeType":"YulExpressionStatement","src":"12118:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12222:1:65","nodeType":"YulLiteral","src":"12222:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"12225:4:65","nodeType":"YulLiteral","src":"12225:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"12215:6:65","nodeType":"YulIdentifier","src":"12215:6:65"},"nativeSrc":"12215:15:65","nodeType":"YulFunctionCall","src":"12215:15:65"},"nativeSrc":"12215:15:65","nodeType":"YulExpressionStatement","src":"12215:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12246:1:65","nodeType":"YulLiteral","src":"12246:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12249:4:65","nodeType":"YulLiteral","src":"12249:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12239:6:65","nodeType":"YulIdentifier","src":"12239:6:65"},"nativeSrc":"12239:15:65","nodeType":"YulFunctionCall","src":"12239:15:65"},"nativeSrc":"12239:15:65","nodeType":"YulExpressionStatement","src":"12239:15:65"}]},"name":"panic_error_0x41","nativeSrc":"12080:180:65","nodeType":"YulFunctionDefinition","src":"12080:180:65"},{"body":{"nativeSrc":"12309:238:65","nodeType":"YulBlock","src":"12309:238:65","statements":[{"nativeSrc":"12319:58:65","nodeType":"YulVariableDeclaration","src":"12319:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"12341:6:65","nodeType":"YulIdentifier","src":"12341:6:65"},{"arguments":[{"name":"size","nativeSrc":"12371:4:65","nodeType":"YulIdentifier","src":"12371:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12349:21:65","nodeType":"YulIdentifier","src":"12349:21:65"},"nativeSrc":"12349:27:65","nodeType":"YulFunctionCall","src":"12349:27:65"}],"functionName":{"name":"add","nativeSrc":"12337:3:65","nodeType":"YulIdentifier","src":"12337:3:65"},"nativeSrc":"12337:40:65","nodeType":"YulFunctionCall","src":"12337:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"12323:10:65","nodeType":"YulTypedName","src":"12323:10:65","type":""}]},{"body":{"nativeSrc":"12488:22:65","nodeType":"YulBlock","src":"12488:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12490:16:65","nodeType":"YulIdentifier","src":"12490:16:65"},"nativeSrc":"12490:18:65","nodeType":"YulFunctionCall","src":"12490:18:65"},"nativeSrc":"12490:18:65","nodeType":"YulExpressionStatement","src":"12490:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"12431:10:65","nodeType":"YulIdentifier","src":"12431:10:65"},{"kind":"number","nativeSrc":"12443:18:65","nodeType":"YulLiteral","src":"12443:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12428:2:65","nodeType":"YulIdentifier","src":"12428:2:65"},"nativeSrc":"12428:34:65","nodeType":"YulFunctionCall","src":"12428:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"12467:10:65","nodeType":"YulIdentifier","src":"12467:10:65"},{"name":"memPtr","nativeSrc":"12479:6:65","nodeType":"YulIdentifier","src":"12479:6:65"}],"functionName":{"name":"lt","nativeSrc":"12464:2:65","nodeType":"YulIdentifier","src":"12464:2:65"},"nativeSrc":"12464:22:65","nodeType":"YulFunctionCall","src":"12464:22:65"}],"functionName":{"name":"or","nativeSrc":"12425:2:65","nodeType":"YulIdentifier","src":"12425:2:65"},"nativeSrc":"12425:62:65","nodeType":"YulFunctionCall","src":"12425:62:65"},"nativeSrc":"12422:88:65","nodeType":"YulIf","src":"12422:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12526:2:65","nodeType":"YulLiteral","src":"12526:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"12530:10:65","nodeType":"YulIdentifier","src":"12530:10:65"}],"functionName":{"name":"mstore","nativeSrc":"12519:6:65","nodeType":"YulIdentifier","src":"12519:6:65"},"nativeSrc":"12519:22:65","nodeType":"YulFunctionCall","src":"12519:22:65"},"nativeSrc":"12519:22:65","nodeType":"YulExpressionStatement","src":"12519:22:65"}]},"name":"finalize_allocation","nativeSrc":"12266:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12295:6:65","nodeType":"YulTypedName","src":"12295:6:65","type":""},{"name":"size","nativeSrc":"12303:4:65","nodeType":"YulTypedName","src":"12303:4:65","type":""}],"src":"12266:281:65"},{"body":{"nativeSrc":"12594:88:65","nodeType":"YulBlock","src":"12594:88:65","statements":[{"nativeSrc":"12604:30:65","nodeType":"YulAssignment","src":"12604:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"12614:18:65","nodeType":"YulIdentifier","src":"12614:18:65"},"nativeSrc":"12614:20:65","nodeType":"YulFunctionCall","src":"12614:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"12604:6:65","nodeType":"YulIdentifier","src":"12604:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"12663:6:65","nodeType":"YulIdentifier","src":"12663:6:65"},{"name":"size","nativeSrc":"12671:4:65","nodeType":"YulIdentifier","src":"12671:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"12643:19:65","nodeType":"YulIdentifier","src":"12643:19:65"},"nativeSrc":"12643:33:65","nodeType":"YulFunctionCall","src":"12643:33:65"},"nativeSrc":"12643:33:65","nodeType":"YulExpressionStatement","src":"12643:33:65"}]},"name":"allocate_memory","nativeSrc":"12553:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"12578:4:65","nodeType":"YulTypedName","src":"12578:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"12587:6:65","nodeType":"YulTypedName","src":"12587:6:65","type":""}],"src":"12553:129:65"},{"body":{"nativeSrc":"12754:241:65","nodeType":"YulBlock","src":"12754:241:65","statements":[{"body":{"nativeSrc":"12859:22:65","nodeType":"YulBlock","src":"12859:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12861:16:65","nodeType":"YulIdentifier","src":"12861:16:65"},"nativeSrc":"12861:18:65","nodeType":"YulFunctionCall","src":"12861:18:65"},"nativeSrc":"12861:18:65","nodeType":"YulExpressionStatement","src":"12861:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"12831:6:65","nodeType":"YulIdentifier","src":"12831:6:65"},{"kind":"number","nativeSrc":"12839:18:65","nodeType":"YulLiteral","src":"12839:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12828:2:65","nodeType":"YulIdentifier","src":"12828:2:65"},"nativeSrc":"12828:30:65","nodeType":"YulFunctionCall","src":"12828:30:65"},"nativeSrc":"12825:56:65","nodeType":"YulIf","src":"12825:56:65"},{"nativeSrc":"12891:37:65","nodeType":"YulAssignment","src":"12891:37:65","value":{"arguments":[{"name":"length","nativeSrc":"12921:6:65","nodeType":"YulIdentifier","src":"12921:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12899:21:65","nodeType":"YulIdentifier","src":"12899:21:65"},"nativeSrc":"12899:29:65","nodeType":"YulFunctionCall","src":"12899:29:65"},"variableNames":[{"name":"size","nativeSrc":"12891:4:65","nodeType":"YulIdentifier","src":"12891:4:65"}]},{"nativeSrc":"12965:23:65","nodeType":"YulAssignment","src":"12965:23:65","value":{"arguments":[{"name":"size","nativeSrc":"12977:4:65","nodeType":"YulIdentifier","src":"12977:4:65"},{"kind":"number","nativeSrc":"12983:4:65","nodeType":"YulLiteral","src":"12983:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12973:3:65","nodeType":"YulIdentifier","src":"12973:3:65"},"nativeSrc":"12973:15:65","nodeType":"YulFunctionCall","src":"12973:15:65"},"variableNames":[{"name":"size","nativeSrc":"12965:4:65","nodeType":"YulIdentifier","src":"12965:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"12688:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"12738:6:65","nodeType":"YulTypedName","src":"12738:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"12749:4:65","nodeType":"YulTypedName","src":"12749:4:65","type":""}],"src":"12688:307:65"},{"body":{"nativeSrc":"13065:84:65","nodeType":"YulBlock","src":"13065:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13089:3:65","nodeType":"YulIdentifier","src":"13089:3:65"},{"name":"src","nativeSrc":"13094:3:65","nodeType":"YulIdentifier","src":"13094:3:65"},{"name":"length","nativeSrc":"13099:6:65","nodeType":"YulIdentifier","src":"13099:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"13076:12:65","nodeType":"YulIdentifier","src":"13076:12:65"},"nativeSrc":"13076:30:65","nodeType":"YulFunctionCall","src":"13076:30:65"},"nativeSrc":"13076:30:65","nodeType":"YulExpressionStatement","src":"13076:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13126:3:65","nodeType":"YulIdentifier","src":"13126:3:65"},{"name":"length","nativeSrc":"13131:6:65","nodeType":"YulIdentifier","src":"13131:6:65"}],"functionName":{"name":"add","nativeSrc":"13122:3:65","nodeType":"YulIdentifier","src":"13122:3:65"},"nativeSrc":"13122:16:65","nodeType":"YulFunctionCall","src":"13122:16:65"},{"kind":"number","nativeSrc":"13140:1:65","nodeType":"YulLiteral","src":"13140:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13115:6:65","nodeType":"YulIdentifier","src":"13115:6:65"},"nativeSrc":"13115:27:65","nodeType":"YulFunctionCall","src":"13115:27:65"},"nativeSrc":"13115:27:65","nodeType":"YulExpressionStatement","src":"13115:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13001:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13047:3:65","nodeType":"YulTypedName","src":"13047:3:65","type":""},{"name":"dst","nativeSrc":"13052:3:65","nodeType":"YulTypedName","src":"13052:3:65","type":""},{"name":"length","nativeSrc":"13057:6:65","nodeType":"YulTypedName","src":"13057:6:65","type":""}],"src":"13001:148:65"},{"body":{"nativeSrc":"13238:340:65","nodeType":"YulBlock","src":"13238:340:65","statements":[{"nativeSrc":"13248:74:65","nodeType":"YulAssignment","src":"13248:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"13314:6:65","nodeType":"YulIdentifier","src":"13314:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13273:40:65","nodeType":"YulIdentifier","src":"13273:40:65"},"nativeSrc":"13273:48:65","nodeType":"YulFunctionCall","src":"13273:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"13257:15:65","nodeType":"YulIdentifier","src":"13257:15:65"},"nativeSrc":"13257:65:65","nodeType":"YulFunctionCall","src":"13257:65:65"},"variableNames":[{"name":"array","nativeSrc":"13248:5:65","nodeType":"YulIdentifier","src":"13248:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"13338:5:65","nodeType":"YulIdentifier","src":"13338:5:65"},{"name":"length","nativeSrc":"13345:6:65","nodeType":"YulIdentifier","src":"13345:6:65"}],"functionName":{"name":"mstore","nativeSrc":"13331:6:65","nodeType":"YulIdentifier","src":"13331:6:65"},"nativeSrc":"13331:21:65","nodeType":"YulFunctionCall","src":"13331:21:65"},"nativeSrc":"13331:21:65","nodeType":"YulExpressionStatement","src":"13331:21:65"},{"nativeSrc":"13361:27:65","nodeType":"YulVariableDeclaration","src":"13361:27:65","value":{"arguments":[{"name":"array","nativeSrc":"13376:5:65","nodeType":"YulIdentifier","src":"13376:5:65"},{"kind":"number","nativeSrc":"13383:4:65","nodeType":"YulLiteral","src":"13383:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13372:3:65","nodeType":"YulIdentifier","src":"13372:3:65"},"nativeSrc":"13372:16:65","nodeType":"YulFunctionCall","src":"13372:16:65"},"variables":[{"name":"dst","nativeSrc":"13365:3:65","nodeType":"YulTypedName","src":"13365:3:65","type":""}]},{"body":{"nativeSrc":"13426:83:65","nodeType":"YulBlock","src":"13426:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"13428:77:65","nodeType":"YulIdentifier","src":"13428:77:65"},"nativeSrc":"13428:79:65","nodeType":"YulFunctionCall","src":"13428:79:65"},"nativeSrc":"13428:79:65","nodeType":"YulExpressionStatement","src":"13428:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"13407:3:65","nodeType":"YulIdentifier","src":"13407:3:65"},{"name":"length","nativeSrc":"13412:6:65","nodeType":"YulIdentifier","src":"13412:6:65"}],"functionName":{"name":"add","nativeSrc":"13403:3:65","nodeType":"YulIdentifier","src":"13403:3:65"},"nativeSrc":"13403:16:65","nodeType":"YulFunctionCall","src":"13403:16:65"},{"name":"end","nativeSrc":"13421:3:65","nodeType":"YulIdentifier","src":"13421:3:65"}],"functionName":{"name":"gt","nativeSrc":"13400:2:65","nodeType":"YulIdentifier","src":"13400:2:65"},"nativeSrc":"13400:25:65","nodeType":"YulFunctionCall","src":"13400:25:65"},"nativeSrc":"13397:112:65","nodeType":"YulIf","src":"13397:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"13555:3:65","nodeType":"YulIdentifier","src":"13555:3:65"},{"name":"dst","nativeSrc":"13560:3:65","nodeType":"YulIdentifier","src":"13560:3:65"},{"name":"length","nativeSrc":"13565:6:65","nodeType":"YulIdentifier","src":"13565:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13518:36:65","nodeType":"YulIdentifier","src":"13518:36:65"},"nativeSrc":"13518:54:65","nodeType":"YulFunctionCall","src":"13518:54:65"},"nativeSrc":"13518:54:65","nodeType":"YulExpressionStatement","src":"13518:54:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13155:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13211:3:65","nodeType":"YulTypedName","src":"13211:3:65","type":""},{"name":"length","nativeSrc":"13216:6:65","nodeType":"YulTypedName","src":"13216:6:65","type":""},{"name":"end","nativeSrc":"13224:3:65","nodeType":"YulTypedName","src":"13224:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13232:5:65","nodeType":"YulTypedName","src":"13232:5:65","type":""}],"src":"13155:423:65"},{"body":{"nativeSrc":"13658:277:65","nodeType":"YulBlock","src":"13658:277:65","statements":[{"body":{"nativeSrc":"13707:83:65","nodeType":"YulBlock","src":"13707:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"13709:77:65","nodeType":"YulIdentifier","src":"13709:77:65"},"nativeSrc":"13709:79:65","nodeType":"YulFunctionCall","src":"13709:79:65"},"nativeSrc":"13709:79:65","nodeType":"YulExpressionStatement","src":"13709:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13686:6:65","nodeType":"YulIdentifier","src":"13686:6:65"},{"kind":"number","nativeSrc":"13694:4:65","nodeType":"YulLiteral","src":"13694:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13682:3:65","nodeType":"YulIdentifier","src":"13682:3:65"},"nativeSrc":"13682:17:65","nodeType":"YulFunctionCall","src":"13682:17:65"},{"name":"end","nativeSrc":"13701:3:65","nodeType":"YulIdentifier","src":"13701:3:65"}],"functionName":{"name":"slt","nativeSrc":"13678:3:65","nodeType":"YulIdentifier","src":"13678:3:65"},"nativeSrc":"13678:27:65","nodeType":"YulFunctionCall","src":"13678:27:65"}],"functionName":{"name":"iszero","nativeSrc":"13671:6:65","nodeType":"YulIdentifier","src":"13671:6:65"},"nativeSrc":"13671:35:65","nodeType":"YulFunctionCall","src":"13671:35:65"},"nativeSrc":"13668:122:65","nodeType":"YulIf","src":"13668:122:65"},{"nativeSrc":"13799:34:65","nodeType":"YulVariableDeclaration","src":"13799:34:65","value":{"arguments":[{"name":"offset","nativeSrc":"13826:6:65","nodeType":"YulIdentifier","src":"13826:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"13813:12:65","nodeType":"YulIdentifier","src":"13813:12:65"},"nativeSrc":"13813:20:65","nodeType":"YulFunctionCall","src":"13813:20:65"},"variables":[{"name":"length","nativeSrc":"13803:6:65","nodeType":"YulTypedName","src":"13803:6:65","type":""}]},{"nativeSrc":"13842:87:65","nodeType":"YulAssignment","src":"13842:87:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13902:6:65","nodeType":"YulIdentifier","src":"13902:6:65"},{"kind":"number","nativeSrc":"13910:4:65","nodeType":"YulLiteral","src":"13910:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13898:3:65","nodeType":"YulIdentifier","src":"13898:3:65"},"nativeSrc":"13898:17:65","nodeType":"YulFunctionCall","src":"13898:17:65"},{"name":"length","nativeSrc":"13917:6:65","nodeType":"YulIdentifier","src":"13917:6:65"},{"name":"end","nativeSrc":"13925:3:65","nodeType":"YulIdentifier","src":"13925:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13851:46:65","nodeType":"YulIdentifier","src":"13851:46:65"},"nativeSrc":"13851:78:65","nodeType":"YulFunctionCall","src":"13851:78:65"},"variableNames":[{"name":"array","nativeSrc":"13842:5:65","nodeType":"YulIdentifier","src":"13842:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13597:338:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13636:6:65","nodeType":"YulTypedName","src":"13636:6:65","type":""},{"name":"end","nativeSrc":"13644:3:65","nodeType":"YulTypedName","src":"13644:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13652:5:65","nodeType":"YulTypedName","src":"13652:5:65","type":""}],"src":"13597:338:65"},{"body":{"nativeSrc":"14048:686:65","nodeType":"YulBlock","src":"14048:686:65","statements":[{"body":{"nativeSrc":"14094:83:65","nodeType":"YulBlock","src":"14094:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14096:77:65","nodeType":"YulIdentifier","src":"14096:77:65"},"nativeSrc":"14096:79:65","nodeType":"YulFunctionCall","src":"14096:79:65"},"nativeSrc":"14096:79:65","nodeType":"YulExpressionStatement","src":"14096:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14069:7:65","nodeType":"YulIdentifier","src":"14069:7:65"},{"name":"headStart","nativeSrc":"14078:9:65","nodeType":"YulIdentifier","src":"14078:9:65"}],"functionName":{"name":"sub","nativeSrc":"14065:3:65","nodeType":"YulIdentifier","src":"14065:3:65"},"nativeSrc":"14065:23:65","nodeType":"YulFunctionCall","src":"14065:23:65"},{"kind":"number","nativeSrc":"14090:2:65","nodeType":"YulLiteral","src":"14090:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"14061:3:65","nodeType":"YulIdentifier","src":"14061:3:65"},"nativeSrc":"14061:32:65","nodeType":"YulFunctionCall","src":"14061:32:65"},"nativeSrc":"14058:119:65","nodeType":"YulIf","src":"14058:119:65"},{"nativeSrc":"14187:116:65","nodeType":"YulBlock","src":"14187:116:65","statements":[{"nativeSrc":"14202:15:65","nodeType":"YulVariableDeclaration","src":"14202:15:65","value":{"kind":"number","nativeSrc":"14216:1:65","nodeType":"YulLiteral","src":"14216:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14206:6:65","nodeType":"YulTypedName","src":"14206:6:65","type":""}]},{"nativeSrc":"14231:62:65","nodeType":"YulAssignment","src":"14231:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14265:9:65","nodeType":"YulIdentifier","src":"14265:9:65"},{"name":"offset","nativeSrc":"14276:6:65","nodeType":"YulIdentifier","src":"14276:6:65"}],"functionName":{"name":"add","nativeSrc":"14261:3:65","nodeType":"YulIdentifier","src":"14261:3:65"},"nativeSrc":"14261:22:65","nodeType":"YulFunctionCall","src":"14261:22:65"},{"name":"dataEnd","nativeSrc":"14285:7:65","nodeType":"YulIdentifier","src":"14285:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"14241:19:65","nodeType":"YulIdentifier","src":"14241:19:65"},"nativeSrc":"14241:52:65","nodeType":"YulFunctionCall","src":"14241:52:65"},"variableNames":[{"name":"value0","nativeSrc":"14231:6:65","nodeType":"YulIdentifier","src":"14231:6:65"}]}]},{"nativeSrc":"14313:287:65","nodeType":"YulBlock","src":"14313:287:65","statements":[{"nativeSrc":"14328:46:65","nodeType":"YulVariableDeclaration","src":"14328:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14359:9:65","nodeType":"YulIdentifier","src":"14359:9:65"},{"kind":"number","nativeSrc":"14370:2:65","nodeType":"YulLiteral","src":"14370:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14355:3:65","nodeType":"YulIdentifier","src":"14355:3:65"},"nativeSrc":"14355:18:65","nodeType":"YulFunctionCall","src":"14355:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"14342:12:65","nodeType":"YulIdentifier","src":"14342:12:65"},"nativeSrc":"14342:32:65","nodeType":"YulFunctionCall","src":"14342:32:65"},"variables":[{"name":"offset","nativeSrc":"14332:6:65","nodeType":"YulTypedName","src":"14332:6:65","type":""}]},{"body":{"nativeSrc":"14421:83:65","nodeType":"YulBlock","src":"14421:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14423:77:65","nodeType":"YulIdentifier","src":"14423:77:65"},"nativeSrc":"14423:79:65","nodeType":"YulFunctionCall","src":"14423:79:65"},"nativeSrc":"14423:79:65","nodeType":"YulExpressionStatement","src":"14423:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14393:6:65","nodeType":"YulIdentifier","src":"14393:6:65"},{"kind":"number","nativeSrc":"14401:18:65","nodeType":"YulLiteral","src":"14401:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14390:2:65","nodeType":"YulIdentifier","src":"14390:2:65"},"nativeSrc":"14390:30:65","nodeType":"YulFunctionCall","src":"14390:30:65"},"nativeSrc":"14387:117:65","nodeType":"YulIf","src":"14387:117:65"},{"nativeSrc":"14518:72:65","nodeType":"YulAssignment","src":"14518:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14562:9:65","nodeType":"YulIdentifier","src":"14562:9:65"},{"name":"offset","nativeSrc":"14573:6:65","nodeType":"YulIdentifier","src":"14573:6:65"}],"functionName":{"name":"add","nativeSrc":"14558:3:65","nodeType":"YulIdentifier","src":"14558:3:65"},"nativeSrc":"14558:22:65","nodeType":"YulFunctionCall","src":"14558:22:65"},{"name":"dataEnd","nativeSrc":"14582:7:65","nodeType":"YulIdentifier","src":"14582:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14528:29:65","nodeType":"YulIdentifier","src":"14528:29:65"},"nativeSrc":"14528:62:65","nodeType":"YulFunctionCall","src":"14528:62:65"},"variableNames":[{"name":"value1","nativeSrc":"14518:6:65","nodeType":"YulIdentifier","src":"14518:6:65"}]}]},{"nativeSrc":"14610:117:65","nodeType":"YulBlock","src":"14610:117:65","statements":[{"nativeSrc":"14625:16:65","nodeType":"YulVariableDeclaration","src":"14625:16:65","value":{"kind":"number","nativeSrc":"14639:2:65","nodeType":"YulLiteral","src":"14639:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"14629:6:65","nodeType":"YulTypedName","src":"14629:6:65","type":""}]},{"nativeSrc":"14655:62:65","nodeType":"YulAssignment","src":"14655:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14689:9:65","nodeType":"YulIdentifier","src":"14689:9:65"},{"name":"offset","nativeSrc":"14700:6:65","nodeType":"YulIdentifier","src":"14700:6:65"}],"functionName":{"name":"add","nativeSrc":"14685:3:65","nodeType":"YulIdentifier","src":"14685:3:65"},"nativeSrc":"14685:22:65","nodeType":"YulFunctionCall","src":"14685:22:65"},{"name":"dataEnd","nativeSrc":"14709:7:65","nodeType":"YulIdentifier","src":"14709:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"14665:19:65","nodeType":"YulIdentifier","src":"14665:19:65"},"nativeSrc":"14665:52:65","nodeType":"YulFunctionCall","src":"14665:52:65"},"variableNames":[{"name":"value2","nativeSrc":"14655:6:65","nodeType":"YulIdentifier","src":"14655:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nativeSrc":"13941:793:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14002:9:65","nodeType":"YulTypedName","src":"14002:9:65","type":""},{"name":"dataEnd","nativeSrc":"14013:7:65","nodeType":"YulTypedName","src":"14013:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14025:6:65","nodeType":"YulTypedName","src":"14025:6:65","type":""},{"name":"value1","nativeSrc":"14033:6:65","nodeType":"YulTypedName","src":"14033:6:65","type":""},{"name":"value2","nativeSrc":"14041:6:65","nodeType":"YulTypedName","src":"14041:6:65","type":""}],"src":"13941:793:65"},{"body":{"nativeSrc":"14805:53:65","nodeType":"YulBlock","src":"14805:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14822:3:65","nodeType":"YulIdentifier","src":"14822:3:65"},{"arguments":[{"name":"value","nativeSrc":"14845:5:65","nodeType":"YulIdentifier","src":"14845:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"14827:17:65","nodeType":"YulIdentifier","src":"14827:17:65"},"nativeSrc":"14827:24:65","nodeType":"YulFunctionCall","src":"14827:24:65"}],"functionName":{"name":"mstore","nativeSrc":"14815:6:65","nodeType":"YulIdentifier","src":"14815:6:65"},"nativeSrc":"14815:37:65","nodeType":"YulFunctionCall","src":"14815:37:65"},"nativeSrc":"14815:37:65","nodeType":"YulExpressionStatement","src":"14815:37:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"14740:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14793:5:65","nodeType":"YulTypedName","src":"14793:5:65","type":""},{"name":"pos","nativeSrc":"14800:3:65","nodeType":"YulTypedName","src":"14800:3:65","type":""}],"src":"14740:118:65"},{"body":{"nativeSrc":"14962:124:65","nodeType":"YulBlock","src":"14962:124:65","statements":[{"nativeSrc":"14972:26:65","nodeType":"YulAssignment","src":"14972:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14984:9:65","nodeType":"YulIdentifier","src":"14984:9:65"},{"kind":"number","nativeSrc":"14995:2:65","nodeType":"YulLiteral","src":"14995:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14980:3:65","nodeType":"YulIdentifier","src":"14980:3:65"},"nativeSrc":"14980:18:65","nodeType":"YulFunctionCall","src":"14980:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14972:4:65","nodeType":"YulIdentifier","src":"14972:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"15052:6:65","nodeType":"YulIdentifier","src":"15052:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15065:9:65","nodeType":"YulIdentifier","src":"15065:9:65"},{"kind":"number","nativeSrc":"15076:1:65","nodeType":"YulLiteral","src":"15076:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15061:3:65","nodeType":"YulIdentifier","src":"15061:3:65"},"nativeSrc":"15061:17:65","nodeType":"YulFunctionCall","src":"15061:17:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"15008:43:65","nodeType":"YulIdentifier","src":"15008:43:65"},"nativeSrc":"15008:71:65","nodeType":"YulFunctionCall","src":"15008:71:65"},"nativeSrc":"15008:71:65","nodeType":"YulExpressionStatement","src":"15008:71:65"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"14864:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14934:9:65","nodeType":"YulTypedName","src":"14934:9:65","type":""},{"name":"value0","nativeSrc":"14946:6:65","nodeType":"YulTypedName","src":"14946:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14957:4:65","nodeType":"YulTypedName","src":"14957:4:65","type":""}],"src":"14864:222:65"},{"body":{"nativeSrc":"15152:51:65","nodeType":"YulBlock","src":"15152:51:65","statements":[{"nativeSrc":"15162:35:65","nodeType":"YulAssignment","src":"15162:35:65","value":{"arguments":[{"name":"value","nativeSrc":"15191:5:65","nodeType":"YulIdentifier","src":"15191:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"15173:17:65","nodeType":"YulIdentifier","src":"15173:17:65"},"nativeSrc":"15173:24:65","nodeType":"YulFunctionCall","src":"15173:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"15162:7:65","nodeType":"YulIdentifier","src":"15162:7:65"}]}]},"name":"cleanup_t_contract$_IERC20_$6261","nativeSrc":"15092:111:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15134:5:65","nodeType":"YulTypedName","src":"15134:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"15144:7:65","nodeType":"YulTypedName","src":"15144:7:65","type":""}],"src":"15092:111:65"},{"body":{"nativeSrc":"15267:94:65","nodeType":"YulBlock","src":"15267:94:65","statements":[{"body":{"nativeSrc":"15339:16:65","nodeType":"YulBlock","src":"15339:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15348:1:65","nodeType":"YulLiteral","src":"15348:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15351:1:65","nodeType":"YulLiteral","src":"15351:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15341:6:65","nodeType":"YulIdentifier","src":"15341:6:65"},"nativeSrc":"15341:12:65","nodeType":"YulFunctionCall","src":"15341:12:65"},"nativeSrc":"15341:12:65","nodeType":"YulExpressionStatement","src":"15341:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15290:5:65","nodeType":"YulIdentifier","src":"15290:5:65"},{"arguments":[{"name":"value","nativeSrc":"15330:5:65","nodeType":"YulIdentifier","src":"15330:5:65"}],"functionName":{"name":"cleanup_t_contract$_IERC20_$6261","nativeSrc":"15297:32:65","nodeType":"YulIdentifier","src":"15297:32:65"},"nativeSrc":"15297:39:65","nodeType":"YulFunctionCall","src":"15297:39:65"}],"functionName":{"name":"eq","nativeSrc":"15287:2:65","nodeType":"YulIdentifier","src":"15287:2:65"},"nativeSrc":"15287:50:65","nodeType":"YulFunctionCall","src":"15287:50:65"}],"functionName":{"name":"iszero","nativeSrc":"15280:6:65","nodeType":"YulIdentifier","src":"15280:6:65"},"nativeSrc":"15280:58:65","nodeType":"YulFunctionCall","src":"15280:58:65"},"nativeSrc":"15277:78:65","nodeType":"YulIf","src":"15277:78:65"}]},"name":"validator_revert_t_contract$_IERC20_$6261","nativeSrc":"15209:152:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15260:5:65","nodeType":"YulTypedName","src":"15260:5:65","type":""}],"src":"15209:152:65"},{"body":{"nativeSrc":"15434:102:65","nodeType":"YulBlock","src":"15434:102:65","statements":[{"nativeSrc":"15444:29:65","nodeType":"YulAssignment","src":"15444:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"15466:6:65","nodeType":"YulIdentifier","src":"15466:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"15453:12:65","nodeType":"YulIdentifier","src":"15453:12:65"},"nativeSrc":"15453:20:65","nodeType":"YulFunctionCall","src":"15453:20:65"},"variableNames":[{"name":"value","nativeSrc":"15444:5:65","nodeType":"YulIdentifier","src":"15444:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15524:5:65","nodeType":"YulIdentifier","src":"15524:5:65"}],"functionName":{"name":"validator_revert_t_contract$_IERC20_$6261","nativeSrc":"15482:41:65","nodeType":"YulIdentifier","src":"15482:41:65"},"nativeSrc":"15482:48:65","nodeType":"YulFunctionCall","src":"15482:48:65"},"nativeSrc":"15482:48:65","nodeType":"YulExpressionStatement","src":"15482:48:65"}]},"name":"abi_decode_t_contract$_IERC20_$6261","nativeSrc":"15367:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15412:6:65","nodeType":"YulTypedName","src":"15412:6:65","type":""},{"name":"end","nativeSrc":"15420:3:65","nodeType":"YulTypedName","src":"15420:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15428:5:65","nodeType":"YulTypedName","src":"15428:5:65","type":""}],"src":"15367:169:65"},{"body":{"nativeSrc":"15657:534:65","nodeType":"YulBlock","src":"15657:534:65","statements":[{"body":{"nativeSrc":"15703:83:65","nodeType":"YulBlock","src":"15703:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15705:77:65","nodeType":"YulIdentifier","src":"15705:77:65"},"nativeSrc":"15705:79:65","nodeType":"YulFunctionCall","src":"15705:79:65"},"nativeSrc":"15705:79:65","nodeType":"YulExpressionStatement","src":"15705:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15678:7:65","nodeType":"YulIdentifier","src":"15678:7:65"},{"name":"headStart","nativeSrc":"15687:9:65","nodeType":"YulIdentifier","src":"15687:9:65"}],"functionName":{"name":"sub","nativeSrc":"15674:3:65","nodeType":"YulIdentifier","src":"15674:3:65"},"nativeSrc":"15674:23:65","nodeType":"YulFunctionCall","src":"15674:23:65"},{"kind":"number","nativeSrc":"15699:2:65","nodeType":"YulLiteral","src":"15699:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"15670:3:65","nodeType":"YulIdentifier","src":"15670:3:65"},"nativeSrc":"15670:32:65","nodeType":"YulFunctionCall","src":"15670:32:65"},"nativeSrc":"15667:119:65","nodeType":"YulIf","src":"15667:119:65"},{"nativeSrc":"15796:132:65","nodeType":"YulBlock","src":"15796:132:65","statements":[{"nativeSrc":"15811:15:65","nodeType":"YulVariableDeclaration","src":"15811:15:65","value":{"kind":"number","nativeSrc":"15825:1:65","nodeType":"YulLiteral","src":"15825:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15815:6:65","nodeType":"YulTypedName","src":"15815:6:65","type":""}]},{"nativeSrc":"15840:78:65","nodeType":"YulAssignment","src":"15840:78:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15890:9:65","nodeType":"YulIdentifier","src":"15890:9:65"},{"name":"offset","nativeSrc":"15901:6:65","nodeType":"YulIdentifier","src":"15901:6:65"}],"functionName":{"name":"add","nativeSrc":"15886:3:65","nodeType":"YulIdentifier","src":"15886:3:65"},"nativeSrc":"15886:22:65","nodeType":"YulFunctionCall","src":"15886:22:65"},{"name":"dataEnd","nativeSrc":"15910:7:65","nodeType":"YulIdentifier","src":"15910:7:65"}],"functionName":{"name":"abi_decode_t_contract$_IERC20_$6261","nativeSrc":"15850:35:65","nodeType":"YulIdentifier","src":"15850:35:65"},"nativeSrc":"15850:68:65","nodeType":"YulFunctionCall","src":"15850:68:65"},"variableNames":[{"name":"value0","nativeSrc":"15840:6:65","nodeType":"YulIdentifier","src":"15840:6:65"}]}]},{"nativeSrc":"15938:118:65","nodeType":"YulBlock","src":"15938:118:65","statements":[{"nativeSrc":"15953:16:65","nodeType":"YulVariableDeclaration","src":"15953:16:65","value":{"kind":"number","nativeSrc":"15967:2:65","nodeType":"YulLiteral","src":"15967:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15957:6:65","nodeType":"YulTypedName","src":"15957:6:65","type":""}]},{"nativeSrc":"15983:63:65","nodeType":"YulAssignment","src":"15983:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16018:9:65","nodeType":"YulIdentifier","src":"16018:9:65"},{"name":"offset","nativeSrc":"16029:6:65","nodeType":"YulIdentifier","src":"16029:6:65"}],"functionName":{"name":"add","nativeSrc":"16014:3:65","nodeType":"YulIdentifier","src":"16014:3:65"},"nativeSrc":"16014:22:65","nodeType":"YulFunctionCall","src":"16014:22:65"},{"name":"dataEnd","nativeSrc":"16038:7:65","nodeType":"YulIdentifier","src":"16038:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15993:20:65","nodeType":"YulIdentifier","src":"15993:20:65"},"nativeSrc":"15993:53:65","nodeType":"YulFunctionCall","src":"15993:53:65"},"variableNames":[{"name":"value1","nativeSrc":"15983:6:65","nodeType":"YulIdentifier","src":"15983:6:65"}]}]},{"nativeSrc":"16066:118:65","nodeType":"YulBlock","src":"16066:118:65","statements":[{"nativeSrc":"16081:16:65","nodeType":"YulVariableDeclaration","src":"16081:16:65","value":{"kind":"number","nativeSrc":"16095:2:65","nodeType":"YulLiteral","src":"16095:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16085:6:65","nodeType":"YulTypedName","src":"16085:6:65","type":""}]},{"nativeSrc":"16111:63:65","nodeType":"YulAssignment","src":"16111:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16146:9:65","nodeType":"YulIdentifier","src":"16146:9:65"},{"name":"offset","nativeSrc":"16157:6:65","nodeType":"YulIdentifier","src":"16157:6:65"}],"functionName":{"name":"add","nativeSrc":"16142:3:65","nodeType":"YulIdentifier","src":"16142:3:65"},"nativeSrc":"16142:22:65","nodeType":"YulFunctionCall","src":"16142:22:65"},{"name":"dataEnd","nativeSrc":"16166:7:65","nodeType":"YulIdentifier","src":"16166:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16121:20:65","nodeType":"YulIdentifier","src":"16121:20:65"},"nativeSrc":"16121:53:65","nodeType":"YulFunctionCall","src":"16121:53:65"},"variableNames":[{"name":"value2","nativeSrc":"16111:6:65","nodeType":"YulIdentifier","src":"16111:6:65"}]}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256","nativeSrc":"15542:649:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15611:9:65","nodeType":"YulTypedName","src":"15611:9:65","type":""},{"name":"dataEnd","nativeSrc":"15622:7:65","nodeType":"YulTypedName","src":"15622:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15634:6:65","nodeType":"YulTypedName","src":"15634:6:65","type":""},{"name":"value1","nativeSrc":"15642:6:65","nodeType":"YulTypedName","src":"15642:6:65","type":""},{"name":"value2","nativeSrc":"15650:6:65","nodeType":"YulTypedName","src":"15650:6:65","type":""}],"src":"15542:649:65"},{"body":{"nativeSrc":"16286:28:65","nodeType":"YulBlock","src":"16286:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16303:1:65","nodeType":"YulLiteral","src":"16303:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"16306:1:65","nodeType":"YulLiteral","src":"16306:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16296:6:65","nodeType":"YulIdentifier","src":"16296:6:65"},"nativeSrc":"16296:12:65","nodeType":"YulFunctionCall","src":"16296:12:65"},"nativeSrc":"16296:12:65","nodeType":"YulExpressionStatement","src":"16296:12:65"}]},"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nativeSrc":"16197:117:65","nodeType":"YulFunctionDefinition","src":"16197:117:65"},{"body":{"nativeSrc":"16442:152:65","nodeType":"YulBlock","src":"16442:152:65","statements":[{"body":{"nativeSrc":"16481:83:65","nodeType":"YulBlock","src":"16481:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nativeSrc":"16483:77:65","nodeType":"YulIdentifier","src":"16483:77:65"},"nativeSrc":"16483:79:65","nodeType":"YulFunctionCall","src":"16483:79:65"},"nativeSrc":"16483:79:65","nodeType":"YulExpressionStatement","src":"16483:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16463:3:65","nodeType":"YulIdentifier","src":"16463:3:65"},{"name":"offset","nativeSrc":"16468:6:65","nodeType":"YulIdentifier","src":"16468:6:65"}],"functionName":{"name":"sub","nativeSrc":"16459:3:65","nodeType":"YulIdentifier","src":"16459:3:65"},"nativeSrc":"16459:16:65","nodeType":"YulFunctionCall","src":"16459:16:65"},{"kind":"number","nativeSrc":"16477:2:65","nodeType":"YulLiteral","src":"16477:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"16455:3:65","nodeType":"YulIdentifier","src":"16455:3:65"},"nativeSrc":"16455:25:65","nodeType":"YulFunctionCall","src":"16455:25:65"},"nativeSrc":"16452:112:65","nodeType":"YulIf","src":"16452:112:65"},{"nativeSrc":"16573:15:65","nodeType":"YulAssignment","src":"16573:15:65","value":{"name":"offset","nativeSrc":"16582:6:65","nodeType":"YulIdentifier","src":"16582:6:65"},"variableNames":[{"name":"value","nativeSrc":"16573:5:65","nodeType":"YulIdentifier","src":"16573:5:65"}]}]},"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"16358:236:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16420:6:65","nodeType":"YulTypedName","src":"16420:6:65","type":""},{"name":"end","nativeSrc":"16428:3:65","nodeType":"YulTypedName","src":"16428:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16436:5:65","nodeType":"YulTypedName","src":"16436:5:65","type":""}],"src":"16358:236:65"},{"body":{"nativeSrc":"16765:968:65","nodeType":"YulBlock","src":"16765:968:65","statements":[{"body":{"nativeSrc":"16812:83:65","nodeType":"YulBlock","src":"16812:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16814:77:65","nodeType":"YulIdentifier","src":"16814:77:65"},"nativeSrc":"16814:79:65","nodeType":"YulFunctionCall","src":"16814:79:65"},"nativeSrc":"16814:79:65","nodeType":"YulExpressionStatement","src":"16814:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16786:7:65","nodeType":"YulIdentifier","src":"16786:7:65"},{"name":"headStart","nativeSrc":"16795:9:65","nodeType":"YulIdentifier","src":"16795:9:65"}],"functionName":{"name":"sub","nativeSrc":"16782:3:65","nodeType":"YulIdentifier","src":"16782:3:65"},"nativeSrc":"16782:23:65","nodeType":"YulFunctionCall","src":"16782:23:65"},{"kind":"number","nativeSrc":"16807:3:65","nodeType":"YulLiteral","src":"16807:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"16778:3:65","nodeType":"YulIdentifier","src":"16778:3:65"},"nativeSrc":"16778:33:65","nodeType":"YulFunctionCall","src":"16778:33:65"},"nativeSrc":"16775:120:65","nodeType":"YulIf","src":"16775:120:65"},{"nativeSrc":"16905:117:65","nodeType":"YulBlock","src":"16905:117:65","statements":[{"nativeSrc":"16920:15:65","nodeType":"YulVariableDeclaration","src":"16920:15:65","value":{"kind":"number","nativeSrc":"16934:1:65","nodeType":"YulLiteral","src":"16934:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16924:6:65","nodeType":"YulTypedName","src":"16924:6:65","type":""}]},{"nativeSrc":"16949:63:65","nodeType":"YulAssignment","src":"16949:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16984:9:65","nodeType":"YulIdentifier","src":"16984:9:65"},{"name":"offset","nativeSrc":"16995:6:65","nodeType":"YulIdentifier","src":"16995:6:65"}],"functionName":{"name":"add","nativeSrc":"16980:3:65","nodeType":"YulIdentifier","src":"16980:3:65"},"nativeSrc":"16980:22:65","nodeType":"YulFunctionCall","src":"16980:22:65"},{"name":"dataEnd","nativeSrc":"17004:7:65","nodeType":"YulIdentifier","src":"17004:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16959:20:65","nodeType":"YulIdentifier","src":"16959:20:65"},"nativeSrc":"16959:53:65","nodeType":"YulFunctionCall","src":"16959:53:65"},"variableNames":[{"name":"value0","nativeSrc":"16949:6:65","nodeType":"YulIdentifier","src":"16949:6:65"}]}]},{"nativeSrc":"17032:117:65","nodeType":"YulBlock","src":"17032:117:65","statements":[{"nativeSrc":"17047:16:65","nodeType":"YulVariableDeclaration","src":"17047:16:65","value":{"kind":"number","nativeSrc":"17061:2:65","nodeType":"YulLiteral","src":"17061:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"17051:6:65","nodeType":"YulTypedName","src":"17051:6:65","type":""}]},{"nativeSrc":"17077:62:65","nodeType":"YulAssignment","src":"17077:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17111:9:65","nodeType":"YulIdentifier","src":"17111:9:65"},{"name":"offset","nativeSrc":"17122:6:65","nodeType":"YulIdentifier","src":"17122:6:65"}],"functionName":{"name":"add","nativeSrc":"17107:3:65","nodeType":"YulIdentifier","src":"17107:3:65"},"nativeSrc":"17107:22:65","nodeType":"YulFunctionCall","src":"17107:22:65"},{"name":"dataEnd","nativeSrc":"17131:7:65","nodeType":"YulIdentifier","src":"17131:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"17087:19:65","nodeType":"YulIdentifier","src":"17087:19:65"},"nativeSrc":"17087:52:65","nodeType":"YulFunctionCall","src":"17087:52:65"},"variableNames":[{"name":"value1","nativeSrc":"17077:6:65","nodeType":"YulIdentifier","src":"17077:6:65"}]}]},{"nativeSrc":"17159:118:65","nodeType":"YulBlock","src":"17159:118:65","statements":[{"nativeSrc":"17174:16:65","nodeType":"YulVariableDeclaration","src":"17174:16:65","value":{"kind":"number","nativeSrc":"17188:2:65","nodeType":"YulLiteral","src":"17188:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"17178:6:65","nodeType":"YulTypedName","src":"17178:6:65","type":""}]},{"nativeSrc":"17204:63:65","nodeType":"YulAssignment","src":"17204:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17239:9:65","nodeType":"YulIdentifier","src":"17239:9:65"},{"name":"offset","nativeSrc":"17250:6:65","nodeType":"YulIdentifier","src":"17250:6:65"}],"functionName":{"name":"add","nativeSrc":"17235:3:65","nodeType":"YulIdentifier","src":"17235:3:65"},"nativeSrc":"17235:22:65","nodeType":"YulFunctionCall","src":"17235:22:65"},{"name":"dataEnd","nativeSrc":"17259:7:65","nodeType":"YulIdentifier","src":"17259:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"17214:20:65","nodeType":"YulIdentifier","src":"17214:20:65"},"nativeSrc":"17214:53:65","nodeType":"YulFunctionCall","src":"17214:53:65"},"variableNames":[{"name":"value2","nativeSrc":"17204:6:65","nodeType":"YulIdentifier","src":"17204:6:65"}]}]},{"nativeSrc":"17287:118:65","nodeType":"YulBlock","src":"17287:118:65","statements":[{"nativeSrc":"17302:16:65","nodeType":"YulVariableDeclaration","src":"17302:16:65","value":{"kind":"number","nativeSrc":"17316:2:65","nodeType":"YulLiteral","src":"17316:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"17306:6:65","nodeType":"YulTypedName","src":"17306:6:65","type":""}]},{"nativeSrc":"17332:63:65","nodeType":"YulAssignment","src":"17332:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17367:9:65","nodeType":"YulIdentifier","src":"17367:9:65"},{"name":"offset","nativeSrc":"17378:6:65","nodeType":"YulIdentifier","src":"17378:6:65"}],"functionName":{"name":"add","nativeSrc":"17363:3:65","nodeType":"YulIdentifier","src":"17363:3:65"},"nativeSrc":"17363:22:65","nodeType":"YulFunctionCall","src":"17363:22:65"},{"name":"dataEnd","nativeSrc":"17387:7:65","nodeType":"YulIdentifier","src":"17387:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"17342:20:65","nodeType":"YulIdentifier","src":"17342:20:65"},"nativeSrc":"17342:53:65","nodeType":"YulFunctionCall","src":"17342:53:65"},"variableNames":[{"name":"value3","nativeSrc":"17332:6:65","nodeType":"YulIdentifier","src":"17332:6:65"}]}]},{"nativeSrc":"17415:311:65","nodeType":"YulBlock","src":"17415:311:65","statements":[{"nativeSrc":"17430:47:65","nodeType":"YulVariableDeclaration","src":"17430:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17461:9:65","nodeType":"YulIdentifier","src":"17461:9:65"},{"kind":"number","nativeSrc":"17472:3:65","nodeType":"YulLiteral","src":"17472:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17457:3:65","nodeType":"YulIdentifier","src":"17457:3:65"},"nativeSrc":"17457:19:65","nodeType":"YulFunctionCall","src":"17457:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"17444:12:65","nodeType":"YulIdentifier","src":"17444:12:65"},"nativeSrc":"17444:33:65","nodeType":"YulFunctionCall","src":"17444:33:65"},"variables":[{"name":"offset","nativeSrc":"17434:6:65","nodeType":"YulTypedName","src":"17434:6:65","type":""}]},{"body":{"nativeSrc":"17524:83:65","nodeType":"YulBlock","src":"17524:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17526:77:65","nodeType":"YulIdentifier","src":"17526:77:65"},"nativeSrc":"17526:79:65","nodeType":"YulFunctionCall","src":"17526:79:65"},"nativeSrc":"17526:79:65","nodeType":"YulExpressionStatement","src":"17526:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17496:6:65","nodeType":"YulIdentifier","src":"17496:6:65"},{"kind":"number","nativeSrc":"17504:18:65","nodeType":"YulLiteral","src":"17504:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17493:2:65","nodeType":"YulIdentifier","src":"17493:2:65"},"nativeSrc":"17493:30:65","nodeType":"YulFunctionCall","src":"17493:30:65"},"nativeSrc":"17490:117:65","nodeType":"YulIf","src":"17490:117:65"},{"nativeSrc":"17621:95:65","nodeType":"YulAssignment","src":"17621:95:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17688:9:65","nodeType":"YulIdentifier","src":"17688:9:65"},{"name":"offset","nativeSrc":"17699:6:65","nodeType":"YulIdentifier","src":"17699:6:65"}],"functionName":{"name":"add","nativeSrc":"17684:3:65","nodeType":"YulIdentifier","src":"17684:3:65"},"nativeSrc":"17684:22:65","nodeType":"YulFunctionCall","src":"17684:22:65"},{"name":"dataEnd","nativeSrc":"17708:7:65","nodeType":"YulIdentifier","src":"17708:7:65"}],"functionName":{"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"17631:52:65","nodeType":"YulIdentifier","src":"17631:52:65"},"nativeSrc":"17631:85:65","nodeType":"YulFunctionCall","src":"17631:85:65"},"variableNames":[{"name":"value4","nativeSrc":"17621:6:65","nodeType":"YulIdentifier","src":"17621:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"16600:1133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16703:9:65","nodeType":"YulTypedName","src":"16703:9:65","type":""},{"name":"dataEnd","nativeSrc":"16714:7:65","nodeType":"YulTypedName","src":"16714:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16726:6:65","nodeType":"YulTypedName","src":"16726:6:65","type":""},{"name":"value1","nativeSrc":"16734:6:65","nodeType":"YulTypedName","src":"16734:6:65","type":""},{"name":"value2","nativeSrc":"16742:6:65","nodeType":"YulTypedName","src":"16742:6:65","type":""},{"name":"value3","nativeSrc":"16750:6:65","nodeType":"YulTypedName","src":"16750:6:65","type":""},{"name":"value4","nativeSrc":"16758:6:65","nodeType":"YulTypedName","src":"16758:6:65","type":""}],"src":"16600:1133:65"},{"body":{"nativeSrc":"17797:40:65","nodeType":"YulBlock","src":"17797:40:65","statements":[{"nativeSrc":"17808:22:65","nodeType":"YulAssignment","src":"17808:22:65","value":{"arguments":[{"name":"value","nativeSrc":"17824:5:65","nodeType":"YulIdentifier","src":"17824:5:65"}],"functionName":{"name":"mload","nativeSrc":"17818:5:65","nodeType":"YulIdentifier","src":"17818:5:65"},"nativeSrc":"17818:12:65","nodeType":"YulFunctionCall","src":"17818:12:65"},"variableNames":[{"name":"length","nativeSrc":"17808:6:65","nodeType":"YulIdentifier","src":"17808:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"17739:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17780:5:65","nodeType":"YulTypedName","src":"17780:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17790:6:65","nodeType":"YulTypedName","src":"17790:6:65","type":""}],"src":"17739:98:65"},{"body":{"nativeSrc":"17938:73:65","nodeType":"YulBlock","src":"17938:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17955:3:65","nodeType":"YulIdentifier","src":"17955:3:65"},{"name":"length","nativeSrc":"17960:6:65","nodeType":"YulIdentifier","src":"17960:6:65"}],"functionName":{"name":"mstore","nativeSrc":"17948:6:65","nodeType":"YulIdentifier","src":"17948:6:65"},"nativeSrc":"17948:19:65","nodeType":"YulFunctionCall","src":"17948:19:65"},"nativeSrc":"17948:19:65","nodeType":"YulExpressionStatement","src":"17948:19:65"},{"nativeSrc":"17976:29:65","nodeType":"YulAssignment","src":"17976:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"17995:3:65","nodeType":"YulIdentifier","src":"17995:3:65"},{"kind":"number","nativeSrc":"18000:4:65","nodeType":"YulLiteral","src":"18000:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17991:3:65","nodeType":"YulIdentifier","src":"17991:3:65"},"nativeSrc":"17991:14:65","nodeType":"YulFunctionCall","src":"17991:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"17976:11:65","nodeType":"YulIdentifier","src":"17976:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"17843:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17910:3:65","nodeType":"YulTypedName","src":"17910:3:65","type":""},{"name":"length","nativeSrc":"17915:6:65","nodeType":"YulTypedName","src":"17915:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"17926:11:65","nodeType":"YulTypedName","src":"17926:11:65","type":""}],"src":"17843:168:65"},{"body":{"nativeSrc":"18079:186:65","nodeType":"YulBlock","src":"18079:186:65","statements":[{"nativeSrc":"18090:10:65","nodeType":"YulVariableDeclaration","src":"18090:10:65","value":{"kind":"number","nativeSrc":"18099:1:65","nodeType":"YulLiteral","src":"18099:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"18094:1:65","nodeType":"YulTypedName","src":"18094:1:65","type":""}]},{"body":{"nativeSrc":"18159:63:65","nodeType":"YulBlock","src":"18159:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"18184:3:65","nodeType":"YulIdentifier","src":"18184:3:65"},{"name":"i","nativeSrc":"18189:1:65","nodeType":"YulIdentifier","src":"18189:1:65"}],"functionName":{"name":"add","nativeSrc":"18180:3:65","nodeType":"YulIdentifier","src":"18180:3:65"},"nativeSrc":"18180:11:65","nodeType":"YulFunctionCall","src":"18180:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"18203:3:65","nodeType":"YulIdentifier","src":"18203:3:65"},{"name":"i","nativeSrc":"18208:1:65","nodeType":"YulIdentifier","src":"18208:1:65"}],"functionName":{"name":"add","nativeSrc":"18199:3:65","nodeType":"YulIdentifier","src":"18199:3:65"},"nativeSrc":"18199:11:65","nodeType":"YulFunctionCall","src":"18199:11:65"}],"functionName":{"name":"mload","nativeSrc":"18193:5:65","nodeType":"YulIdentifier","src":"18193:5:65"},"nativeSrc":"18193:18:65","nodeType":"YulFunctionCall","src":"18193:18:65"}],"functionName":{"name":"mstore","nativeSrc":"18173:6:65","nodeType":"YulIdentifier","src":"18173:6:65"},"nativeSrc":"18173:39:65","nodeType":"YulFunctionCall","src":"18173:39:65"},"nativeSrc":"18173:39:65","nodeType":"YulExpressionStatement","src":"18173:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"18120:1:65","nodeType":"YulIdentifier","src":"18120:1:65"},{"name":"length","nativeSrc":"18123:6:65","nodeType":"YulIdentifier","src":"18123:6:65"}],"functionName":{"name":"lt","nativeSrc":"18117:2:65","nodeType":"YulIdentifier","src":"18117:2:65"},"nativeSrc":"18117:13:65","nodeType":"YulFunctionCall","src":"18117:13:65"},"nativeSrc":"18109:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"18131:19:65","nodeType":"YulBlock","src":"18131:19:65","statements":[{"nativeSrc":"18133:15:65","nodeType":"YulAssignment","src":"18133:15:65","value":{"arguments":[{"name":"i","nativeSrc":"18142:1:65","nodeType":"YulIdentifier","src":"18142:1:65"},{"kind":"number","nativeSrc":"18145:2:65","nodeType":"YulLiteral","src":"18145:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18138:3:65","nodeType":"YulIdentifier","src":"18138:3:65"},"nativeSrc":"18138:10:65","nodeType":"YulFunctionCall","src":"18138:10:65"},"variableNames":[{"name":"i","nativeSrc":"18133:1:65","nodeType":"YulIdentifier","src":"18133:1:65"}]}]},"pre":{"nativeSrc":"18113:3:65","nodeType":"YulBlock","src":"18113:3:65","statements":[]},"src":"18109:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"18242:3:65","nodeType":"YulIdentifier","src":"18242:3:65"},{"name":"length","nativeSrc":"18247:6:65","nodeType":"YulIdentifier","src":"18247:6:65"}],"functionName":{"name":"add","nativeSrc":"18238:3:65","nodeType":"YulIdentifier","src":"18238:3:65"},"nativeSrc":"18238:16:65","nodeType":"YulFunctionCall","src":"18238:16:65"},{"kind":"number","nativeSrc":"18256:1:65","nodeType":"YulLiteral","src":"18256:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18231:6:65","nodeType":"YulIdentifier","src":"18231:6:65"},"nativeSrc":"18231:27:65","nodeType":"YulFunctionCall","src":"18231:27:65"},"nativeSrc":"18231:27:65","nodeType":"YulExpressionStatement","src":"18231:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"18017:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"18061:3:65","nodeType":"YulTypedName","src":"18061:3:65","type":""},{"name":"dst","nativeSrc":"18066:3:65","nodeType":"YulTypedName","src":"18066:3:65","type":""},{"name":"length","nativeSrc":"18071:6:65","nodeType":"YulTypedName","src":"18071:6:65","type":""}],"src":"18017:248:65"},{"body":{"nativeSrc":"18361:283:65","nodeType":"YulBlock","src":"18361:283:65","statements":[{"nativeSrc":"18371:52:65","nodeType":"YulVariableDeclaration","src":"18371:52:65","value":{"arguments":[{"name":"value","nativeSrc":"18417:5:65","nodeType":"YulIdentifier","src":"18417:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"18385:31:65","nodeType":"YulIdentifier","src":"18385:31:65"},"nativeSrc":"18385:38:65","nodeType":"YulFunctionCall","src":"18385:38:65"},"variables":[{"name":"length","nativeSrc":"18375:6:65","nodeType":"YulTypedName","src":"18375:6:65","type":""}]},{"nativeSrc":"18432:77:65","nodeType":"YulAssignment","src":"18432:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"18497:3:65","nodeType":"YulIdentifier","src":"18497:3:65"},{"name":"length","nativeSrc":"18502:6:65","nodeType":"YulIdentifier","src":"18502:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"18439:57:65","nodeType":"YulIdentifier","src":"18439:57:65"},"nativeSrc":"18439:70:65","nodeType":"YulFunctionCall","src":"18439:70:65"},"variableNames":[{"name":"pos","nativeSrc":"18432:3:65","nodeType":"YulIdentifier","src":"18432:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18557:5:65","nodeType":"YulIdentifier","src":"18557:5:65"},{"kind":"number","nativeSrc":"18564:4:65","nodeType":"YulLiteral","src":"18564:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18553:3:65","nodeType":"YulIdentifier","src":"18553:3:65"},"nativeSrc":"18553:16:65","nodeType":"YulFunctionCall","src":"18553:16:65"},{"name":"pos","nativeSrc":"18571:3:65","nodeType":"YulIdentifier","src":"18571:3:65"},{"name":"length","nativeSrc":"18576:6:65","nodeType":"YulIdentifier","src":"18576:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"18518:34:65","nodeType":"YulIdentifier","src":"18518:34:65"},"nativeSrc":"18518:65:65","nodeType":"YulFunctionCall","src":"18518:65:65"},"nativeSrc":"18518:65:65","nodeType":"YulExpressionStatement","src":"18518:65:65"},{"nativeSrc":"18592:46:65","nodeType":"YulAssignment","src":"18592:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"18603:3:65","nodeType":"YulIdentifier","src":"18603:3:65"},{"arguments":[{"name":"length","nativeSrc":"18630:6:65","nodeType":"YulIdentifier","src":"18630:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"18608:21:65","nodeType":"YulIdentifier","src":"18608:21:65"},"nativeSrc":"18608:29:65","nodeType":"YulFunctionCall","src":"18608:29:65"}],"functionName":{"name":"add","nativeSrc":"18599:3:65","nodeType":"YulIdentifier","src":"18599:3:65"},"nativeSrc":"18599:39:65","nodeType":"YulFunctionCall","src":"18599:39:65"},"variableNames":[{"name":"end","nativeSrc":"18592:3:65","nodeType":"YulIdentifier","src":"18592:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"18271:373:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18342:5:65","nodeType":"YulTypedName","src":"18342:5:65","type":""},{"name":"pos","nativeSrc":"18349:3:65","nodeType":"YulTypedName","src":"18349:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18357:3:65","nodeType":"YulTypedName","src":"18357:3:65","type":""}],"src":"18271:373:65"},{"body":{"nativeSrc":"18766:193:65","nodeType":"YulBlock","src":"18766:193:65","statements":[{"nativeSrc":"18776:26:65","nodeType":"YulAssignment","src":"18776:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"18788:9:65","nodeType":"YulIdentifier","src":"18788:9:65"},{"kind":"number","nativeSrc":"18799:2:65","nodeType":"YulLiteral","src":"18799:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18784:3:65","nodeType":"YulIdentifier","src":"18784:3:65"},"nativeSrc":"18784:18:65","nodeType":"YulFunctionCall","src":"18784:18:65"},"variableNames":[{"name":"tail","nativeSrc":"18776:4:65","nodeType":"YulIdentifier","src":"18776:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18823:9:65","nodeType":"YulIdentifier","src":"18823:9:65"},{"kind":"number","nativeSrc":"18834:1:65","nodeType":"YulLiteral","src":"18834:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18819:3:65","nodeType":"YulIdentifier","src":"18819:3:65"},"nativeSrc":"18819:17:65","nodeType":"YulFunctionCall","src":"18819:17:65"},{"arguments":[{"name":"tail","nativeSrc":"18842:4:65","nodeType":"YulIdentifier","src":"18842:4:65"},{"name":"headStart","nativeSrc":"18848:9:65","nodeType":"YulIdentifier","src":"18848:9:65"}],"functionName":{"name":"sub","nativeSrc":"18838:3:65","nodeType":"YulIdentifier","src":"18838:3:65"},"nativeSrc":"18838:20:65","nodeType":"YulFunctionCall","src":"18838:20:65"}],"functionName":{"name":"mstore","nativeSrc":"18812:6:65","nodeType":"YulIdentifier","src":"18812:6:65"},"nativeSrc":"18812:47:65","nodeType":"YulFunctionCall","src":"18812:47:65"},"nativeSrc":"18812:47:65","nodeType":"YulExpressionStatement","src":"18812:47:65"},{"nativeSrc":"18868:84:65","nodeType":"YulAssignment","src":"18868:84:65","value":{"arguments":[{"name":"value0","nativeSrc":"18938:6:65","nodeType":"YulIdentifier","src":"18938:6:65"},{"name":"tail","nativeSrc":"18947:4:65","nodeType":"YulIdentifier","src":"18947:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"18876:61:65","nodeType":"YulIdentifier","src":"18876:61:65"},"nativeSrc":"18876:76:65","nodeType":"YulFunctionCall","src":"18876:76:65"},"variableNames":[{"name":"tail","nativeSrc":"18868:4:65","nodeType":"YulIdentifier","src":"18868:4:65"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"18650:309:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18738:9:65","nodeType":"YulTypedName","src":"18738:9:65","type":""},{"name":"value0","nativeSrc":"18750:6:65","nodeType":"YulTypedName","src":"18750:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18761:4:65","nodeType":"YulTypedName","src":"18761:4:65","type":""}],"src":"18650:309:65"},{"body":{"nativeSrc":"19182:1404:65","nodeType":"YulBlock","src":"19182:1404:65","statements":[{"body":{"nativeSrc":"19229:83:65","nodeType":"YulBlock","src":"19229:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19231:77:65","nodeType":"YulIdentifier","src":"19231:77:65"},"nativeSrc":"19231:79:65","nodeType":"YulFunctionCall","src":"19231:79:65"},"nativeSrc":"19231:79:65","nodeType":"YulExpressionStatement","src":"19231:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19203:7:65","nodeType":"YulIdentifier","src":"19203:7:65"},{"name":"headStart","nativeSrc":"19212:9:65","nodeType":"YulIdentifier","src":"19212:9:65"}],"functionName":{"name":"sub","nativeSrc":"19199:3:65","nodeType":"YulIdentifier","src":"19199:3:65"},"nativeSrc":"19199:23:65","nodeType":"YulFunctionCall","src":"19199:23:65"},{"kind":"number","nativeSrc":"19224:3:65","nodeType":"YulLiteral","src":"19224:3:65","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"19195:3:65","nodeType":"YulIdentifier","src":"19195:3:65"},"nativeSrc":"19195:33:65","nodeType":"YulFunctionCall","src":"19195:33:65"},"nativeSrc":"19192:120:65","nodeType":"YulIf","src":"19192:120:65"},{"nativeSrc":"19322:117:65","nodeType":"YulBlock","src":"19322:117:65","statements":[{"nativeSrc":"19337:15:65","nodeType":"YulVariableDeclaration","src":"19337:15:65","value":{"kind":"number","nativeSrc":"19351:1:65","nodeType":"YulLiteral","src":"19351:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19341:6:65","nodeType":"YulTypedName","src":"19341:6:65","type":""}]},{"nativeSrc":"19366:63:65","nodeType":"YulAssignment","src":"19366:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19401:9:65","nodeType":"YulIdentifier","src":"19401:9:65"},{"name":"offset","nativeSrc":"19412:6:65","nodeType":"YulIdentifier","src":"19412:6:65"}],"functionName":{"name":"add","nativeSrc":"19397:3:65","nodeType":"YulIdentifier","src":"19397:3:65"},"nativeSrc":"19397:22:65","nodeType":"YulFunctionCall","src":"19397:22:65"},{"name":"dataEnd","nativeSrc":"19421:7:65","nodeType":"YulIdentifier","src":"19421:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19376:20:65","nodeType":"YulIdentifier","src":"19376:20:65"},"nativeSrc":"19376:53:65","nodeType":"YulFunctionCall","src":"19376:53:65"},"variableNames":[{"name":"value0","nativeSrc":"19366:6:65","nodeType":"YulIdentifier","src":"19366:6:65"}]}]},{"nativeSrc":"19449:117:65","nodeType":"YulBlock","src":"19449:117:65","statements":[{"nativeSrc":"19464:16:65","nodeType":"YulVariableDeclaration","src":"19464:16:65","value":{"kind":"number","nativeSrc":"19478:2:65","nodeType":"YulLiteral","src":"19478:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"19468:6:65","nodeType":"YulTypedName","src":"19468:6:65","type":""}]},{"nativeSrc":"19494:62:65","nodeType":"YulAssignment","src":"19494:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19528:9:65","nodeType":"YulIdentifier","src":"19528:9:65"},{"name":"offset","nativeSrc":"19539:6:65","nodeType":"YulIdentifier","src":"19539:6:65"}],"functionName":{"name":"add","nativeSrc":"19524:3:65","nodeType":"YulIdentifier","src":"19524:3:65"},"nativeSrc":"19524:22:65","nodeType":"YulFunctionCall","src":"19524:22:65"},{"name":"dataEnd","nativeSrc":"19548:7:65","nodeType":"YulIdentifier","src":"19548:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"19504:19:65","nodeType":"YulIdentifier","src":"19504:19:65"},"nativeSrc":"19504:52:65","nodeType":"YulFunctionCall","src":"19504:52:65"},"variableNames":[{"name":"value1","nativeSrc":"19494:6:65","nodeType":"YulIdentifier","src":"19494:6:65"}]}]},{"nativeSrc":"19576:118:65","nodeType":"YulBlock","src":"19576:118:65","statements":[{"nativeSrc":"19591:16:65","nodeType":"YulVariableDeclaration","src":"19591:16:65","value":{"kind":"number","nativeSrc":"19605:2:65","nodeType":"YulLiteral","src":"19605:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"19595:6:65","nodeType":"YulTypedName","src":"19595:6:65","type":""}]},{"nativeSrc":"19621:63:65","nodeType":"YulAssignment","src":"19621:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19656:9:65","nodeType":"YulIdentifier","src":"19656:9:65"},{"name":"offset","nativeSrc":"19667:6:65","nodeType":"YulIdentifier","src":"19667:6:65"}],"functionName":{"name":"add","nativeSrc":"19652:3:65","nodeType":"YulIdentifier","src":"19652:3:65"},"nativeSrc":"19652:22:65","nodeType":"YulFunctionCall","src":"19652:22:65"},{"name":"dataEnd","nativeSrc":"19676:7:65","nodeType":"YulIdentifier","src":"19676:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"19631:20:65","nodeType":"YulIdentifier","src":"19631:20:65"},"nativeSrc":"19631:53:65","nodeType":"YulFunctionCall","src":"19631:53:65"},"variableNames":[{"name":"value2","nativeSrc":"19621:6:65","nodeType":"YulIdentifier","src":"19621:6:65"}]}]},{"nativeSrc":"19704:118:65","nodeType":"YulBlock","src":"19704:118:65","statements":[{"nativeSrc":"19719:16:65","nodeType":"YulVariableDeclaration","src":"19719:16:65","value":{"kind":"number","nativeSrc":"19733:2:65","nodeType":"YulLiteral","src":"19733:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"19723:6:65","nodeType":"YulTypedName","src":"19723:6:65","type":""}]},{"nativeSrc":"19749:63:65","nodeType":"YulAssignment","src":"19749:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19784:9:65","nodeType":"YulIdentifier","src":"19784:9:65"},{"name":"offset","nativeSrc":"19795:6:65","nodeType":"YulIdentifier","src":"19795:6:65"}],"functionName":{"name":"add","nativeSrc":"19780:3:65","nodeType":"YulIdentifier","src":"19780:3:65"},"nativeSrc":"19780:22:65","nodeType":"YulFunctionCall","src":"19780:22:65"},{"name":"dataEnd","nativeSrc":"19804:7:65","nodeType":"YulIdentifier","src":"19804:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"19759:20:65","nodeType":"YulIdentifier","src":"19759:20:65"},"nativeSrc":"19759:53:65","nodeType":"YulFunctionCall","src":"19759:53:65"},"variableNames":[{"name":"value3","nativeSrc":"19749:6:65","nodeType":"YulIdentifier","src":"19749:6:65"}]}]},{"nativeSrc":"19832:298:65","nodeType":"YulBlock","src":"19832:298:65","statements":[{"nativeSrc":"19847:47:65","nodeType":"YulVariableDeclaration","src":"19847:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19878:9:65","nodeType":"YulIdentifier","src":"19878:9:65"},{"kind":"number","nativeSrc":"19889:3:65","nodeType":"YulLiteral","src":"19889:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19874:3:65","nodeType":"YulIdentifier","src":"19874:3:65"},"nativeSrc":"19874:19:65","nodeType":"YulFunctionCall","src":"19874:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"19861:12:65","nodeType":"YulIdentifier","src":"19861:12:65"},"nativeSrc":"19861:33:65","nodeType":"YulFunctionCall","src":"19861:33:65"},"variables":[{"name":"offset","nativeSrc":"19851:6:65","nodeType":"YulTypedName","src":"19851:6:65","type":""}]},{"body":{"nativeSrc":"19941:83:65","nodeType":"YulBlock","src":"19941:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19943:77:65","nodeType":"YulIdentifier","src":"19943:77:65"},"nativeSrc":"19943:79:65","nodeType":"YulFunctionCall","src":"19943:79:65"},"nativeSrc":"19943:79:65","nodeType":"YulExpressionStatement","src":"19943:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19913:6:65","nodeType":"YulIdentifier","src":"19913:6:65"},{"kind":"number","nativeSrc":"19921:18:65","nodeType":"YulLiteral","src":"19921:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19910:2:65","nodeType":"YulIdentifier","src":"19910:2:65"},"nativeSrc":"19910:30:65","nodeType":"YulFunctionCall","src":"19910:30:65"},"nativeSrc":"19907:117:65","nodeType":"YulIf","src":"19907:117:65"},{"nativeSrc":"20038:82:65","nodeType":"YulAssignment","src":"20038:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20092:9:65","nodeType":"YulIdentifier","src":"20092:9:65"},{"name":"offset","nativeSrc":"20103:6:65","nodeType":"YulIdentifier","src":"20103:6:65"}],"functionName":{"name":"add","nativeSrc":"20088:3:65","nodeType":"YulIdentifier","src":"20088:3:65"},"nativeSrc":"20088:22:65","nodeType":"YulFunctionCall","src":"20088:22:65"},{"name":"dataEnd","nativeSrc":"20112:7:65","nodeType":"YulIdentifier","src":"20112:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"20056:31:65","nodeType":"YulIdentifier","src":"20056:31:65"},"nativeSrc":"20056:64:65","nodeType":"YulFunctionCall","src":"20056:64:65"},"variableNames":[{"name":"value4","nativeSrc":"20038:6:65","nodeType":"YulIdentifier","src":"20038:6:65"},{"name":"value5","nativeSrc":"20046:6:65","nodeType":"YulIdentifier","src":"20046:6:65"}]}]},{"nativeSrc":"20140:118:65","nodeType":"YulBlock","src":"20140:118:65","statements":[{"nativeSrc":"20155:17:65","nodeType":"YulVariableDeclaration","src":"20155:17:65","value":{"kind":"number","nativeSrc":"20169:3:65","nodeType":"YulLiteral","src":"20169:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"20159:6:65","nodeType":"YulTypedName","src":"20159:6:65","type":""}]},{"nativeSrc":"20186:62:65","nodeType":"YulAssignment","src":"20186:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20220:9:65","nodeType":"YulIdentifier","src":"20220:9:65"},{"name":"offset","nativeSrc":"20231:6:65","nodeType":"YulIdentifier","src":"20231:6:65"}],"functionName":{"name":"add","nativeSrc":"20216:3:65","nodeType":"YulIdentifier","src":"20216:3:65"},"nativeSrc":"20216:22:65","nodeType":"YulFunctionCall","src":"20216:22:65"},{"name":"dataEnd","nativeSrc":"20240:7:65","nodeType":"YulIdentifier","src":"20240:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"20196:19:65","nodeType":"YulIdentifier","src":"20196:19:65"},"nativeSrc":"20196:52:65","nodeType":"YulFunctionCall","src":"20196:52:65"},"variableNames":[{"name":"value6","nativeSrc":"20186:6:65","nodeType":"YulIdentifier","src":"20186:6:65"}]}]},{"nativeSrc":"20268:311:65","nodeType":"YulBlock","src":"20268:311:65","statements":[{"nativeSrc":"20283:47:65","nodeType":"YulVariableDeclaration","src":"20283:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20314:9:65","nodeType":"YulIdentifier","src":"20314:9:65"},{"kind":"number","nativeSrc":"20325:3:65","nodeType":"YulLiteral","src":"20325:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"20310:3:65","nodeType":"YulIdentifier","src":"20310:3:65"},"nativeSrc":"20310:19:65","nodeType":"YulFunctionCall","src":"20310:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"20297:12:65","nodeType":"YulIdentifier","src":"20297:12:65"},"nativeSrc":"20297:33:65","nodeType":"YulFunctionCall","src":"20297:33:65"},"variables":[{"name":"offset","nativeSrc":"20287:6:65","nodeType":"YulTypedName","src":"20287:6:65","type":""}]},{"body":{"nativeSrc":"20377:83:65","nodeType":"YulBlock","src":"20377:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"20379:77:65","nodeType":"YulIdentifier","src":"20379:77:65"},"nativeSrc":"20379:79:65","nodeType":"YulFunctionCall","src":"20379:79:65"},"nativeSrc":"20379:79:65","nodeType":"YulExpressionStatement","src":"20379:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20349:6:65","nodeType":"YulIdentifier","src":"20349:6:65"},{"kind":"number","nativeSrc":"20357:18:65","nodeType":"YulLiteral","src":"20357:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20346:2:65","nodeType":"YulIdentifier","src":"20346:2:65"},"nativeSrc":"20346:30:65","nodeType":"YulFunctionCall","src":"20346:30:65"},"nativeSrc":"20343:117:65","nodeType":"YulIf","src":"20343:117:65"},{"nativeSrc":"20474:95:65","nodeType":"YulAssignment","src":"20474:95:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20541:9:65","nodeType":"YulIdentifier","src":"20541:9:65"},{"name":"offset","nativeSrc":"20552:6:65","nodeType":"YulIdentifier","src":"20552:6:65"}],"functionName":{"name":"add","nativeSrc":"20537:3:65","nodeType":"YulIdentifier","src":"20537:3:65"},"nativeSrc":"20537:22:65","nodeType":"YulFunctionCall","src":"20537:22:65"},{"name":"dataEnd","nativeSrc":"20561:7:65","nodeType":"YulIdentifier","src":"20561:7:65"}],"functionName":{"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"20484:52:65","nodeType":"YulIdentifier","src":"20484:52:65"},"nativeSrc":"20484:85:65","nodeType":"YulFunctionCall","src":"20484:85:65"},"variableNames":[{"name":"value7","nativeSrc":"20474:6:65","nodeType":"YulIdentifier","src":"20474:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"18965:1621:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19096:9:65","nodeType":"YulTypedName","src":"19096:9:65","type":""},{"name":"dataEnd","nativeSrc":"19107:7:65","nodeType":"YulTypedName","src":"19107:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19119:6:65","nodeType":"YulTypedName","src":"19119:6:65","type":""},{"name":"value1","nativeSrc":"19127:6:65","nodeType":"YulTypedName","src":"19127:6:65","type":""},{"name":"value2","nativeSrc":"19135:6:65","nodeType":"YulTypedName","src":"19135:6:65","type":""},{"name":"value3","nativeSrc":"19143:6:65","nodeType":"YulTypedName","src":"19143:6:65","type":""},{"name":"value4","nativeSrc":"19151:6:65","nodeType":"YulTypedName","src":"19151:6:65","type":""},{"name":"value5","nativeSrc":"19159:6:65","nodeType":"YulTypedName","src":"19159:6:65","type":""},{"name":"value6","nativeSrc":"19167:6:65","nodeType":"YulTypedName","src":"19167:6:65","type":""},{"name":"value7","nativeSrc":"19175:6:65","nodeType":"YulTypedName","src":"19175:6:65","type":""}],"src":"18965:1621:65"},{"body":{"nativeSrc":"20658:263:65","nodeType":"YulBlock","src":"20658:263:65","statements":[{"body":{"nativeSrc":"20704:83:65","nodeType":"YulBlock","src":"20704:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"20706:77:65","nodeType":"YulIdentifier","src":"20706:77:65"},"nativeSrc":"20706:79:65","nodeType":"YulFunctionCall","src":"20706:79:65"},"nativeSrc":"20706:79:65","nodeType":"YulExpressionStatement","src":"20706:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20679:7:65","nodeType":"YulIdentifier","src":"20679:7:65"},{"name":"headStart","nativeSrc":"20688:9:65","nodeType":"YulIdentifier","src":"20688:9:65"}],"functionName":{"name":"sub","nativeSrc":"20675:3:65","nodeType":"YulIdentifier","src":"20675:3:65"},"nativeSrc":"20675:23:65","nodeType":"YulFunctionCall","src":"20675:23:65"},{"kind":"number","nativeSrc":"20700:2:65","nodeType":"YulLiteral","src":"20700:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20671:3:65","nodeType":"YulIdentifier","src":"20671:3:65"},"nativeSrc":"20671:32:65","nodeType":"YulFunctionCall","src":"20671:32:65"},"nativeSrc":"20668:119:65","nodeType":"YulIf","src":"20668:119:65"},{"nativeSrc":"20797:117:65","nodeType":"YulBlock","src":"20797:117:65","statements":[{"nativeSrc":"20812:15:65","nodeType":"YulVariableDeclaration","src":"20812:15:65","value":{"kind":"number","nativeSrc":"20826:1:65","nodeType":"YulLiteral","src":"20826:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20816:6:65","nodeType":"YulTypedName","src":"20816:6:65","type":""}]},{"nativeSrc":"20841:63:65","nodeType":"YulAssignment","src":"20841:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20876:9:65","nodeType":"YulIdentifier","src":"20876:9:65"},{"name":"offset","nativeSrc":"20887:6:65","nodeType":"YulIdentifier","src":"20887:6:65"}],"functionName":{"name":"add","nativeSrc":"20872:3:65","nodeType":"YulIdentifier","src":"20872:3:65"},"nativeSrc":"20872:22:65","nodeType":"YulFunctionCall","src":"20872:22:65"},{"name":"dataEnd","nativeSrc":"20896:7:65","nodeType":"YulIdentifier","src":"20896:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"20851:20:65","nodeType":"YulIdentifier","src":"20851:20:65"},"nativeSrc":"20851:53:65","nodeType":"YulFunctionCall","src":"20851:53:65"},"variableNames":[{"name":"value0","nativeSrc":"20841:6:65","nodeType":"YulIdentifier","src":"20841:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"20592:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20628:9:65","nodeType":"YulTypedName","src":"20628:9:65","type":""},{"name":"dataEnd","nativeSrc":"20639:7:65","nodeType":"YulTypedName","src":"20639:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20651:6:65","nodeType":"YulTypedName","src":"20651:6:65","type":""}],"src":"20592:329:65"},{"body":{"nativeSrc":"20959:28:65","nodeType":"YulBlock","src":"20959:28:65","statements":[{"nativeSrc":"20969:12:65","nodeType":"YulAssignment","src":"20969:12:65","value":{"name":"value","nativeSrc":"20976:5:65","nodeType":"YulIdentifier","src":"20976:5:65"},"variableNames":[{"name":"ret","nativeSrc":"20969:3:65","nodeType":"YulIdentifier","src":"20969:3:65"}]}]},"name":"identity","nativeSrc":"20927:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20945:5:65","nodeType":"YulTypedName","src":"20945:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"20955:3:65","nodeType":"YulTypedName","src":"20955:3:65","type":""}],"src":"20927:60:65"},{"body":{"nativeSrc":"21053:82:65","nodeType":"YulBlock","src":"21053:82:65","statements":[{"nativeSrc":"21063:66:65","nodeType":"YulAssignment","src":"21063:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21121:5:65","nodeType":"YulIdentifier","src":"21121:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"21103:17:65","nodeType":"YulIdentifier","src":"21103:17:65"},"nativeSrc":"21103:24:65","nodeType":"YulFunctionCall","src":"21103:24:65"}],"functionName":{"name":"identity","nativeSrc":"21094:8:65","nodeType":"YulIdentifier","src":"21094:8:65"},"nativeSrc":"21094:34:65","nodeType":"YulFunctionCall","src":"21094:34:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"21076:17:65","nodeType":"YulIdentifier","src":"21076:17:65"},"nativeSrc":"21076:53:65","nodeType":"YulFunctionCall","src":"21076:53:65"},"variableNames":[{"name":"converted","nativeSrc":"21063:9:65","nodeType":"YulIdentifier","src":"21063:9:65"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"20993:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21033:5:65","nodeType":"YulTypedName","src":"21033:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21043:9:65","nodeType":"YulTypedName","src":"21043:9:65","type":""}],"src":"20993:142:65"},{"body":{"nativeSrc":"21201:66:65","nodeType":"YulBlock","src":"21201:66:65","statements":[{"nativeSrc":"21211:50:65","nodeType":"YulAssignment","src":"21211:50:65","value":{"arguments":[{"name":"value","nativeSrc":"21255:5:65","nodeType":"YulIdentifier","src":"21255:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"21224:30:65","nodeType":"YulIdentifier","src":"21224:30:65"},"nativeSrc":"21224:37:65","nodeType":"YulFunctionCall","src":"21224:37:65"},"variableNames":[{"name":"converted","nativeSrc":"21211:9:65","nodeType":"YulIdentifier","src":"21211:9:65"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"21141:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21181:5:65","nodeType":"YulTypedName","src":"21181:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21191:9:65","nodeType":"YulTypedName","src":"21191:9:65","type":""}],"src":"21141:126:65"},{"body":{"nativeSrc":"21366:66:65","nodeType":"YulBlock","src":"21366:66:65","statements":[{"nativeSrc":"21376:50:65","nodeType":"YulAssignment","src":"21376:50:65","value":{"arguments":[{"name":"value","nativeSrc":"21420:5:65","nodeType":"YulIdentifier","src":"21420:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"21389:30:65","nodeType":"YulIdentifier","src":"21389:30:65"},"nativeSrc":"21389:37:65","nodeType":"YulFunctionCall","src":"21389:37:65"},"variableNames":[{"name":"converted","nativeSrc":"21376:9:65","nodeType":"YulIdentifier","src":"21376:9:65"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address","nativeSrc":"21273:159:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21346:5:65","nodeType":"YulTypedName","src":"21346:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21356:9:65","nodeType":"YulTypedName","src":"21356:9:65","type":""}],"src":"21273:159:65"},{"body":{"nativeSrc":"21536:99:65","nodeType":"YulBlock","src":"21536:99:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"21553:3:65","nodeType":"YulIdentifier","src":"21553:3:65"},{"arguments":[{"name":"value","nativeSrc":"21622:5:65","nodeType":"YulIdentifier","src":"21622:5:65"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address","nativeSrc":"21558:63:65","nodeType":"YulIdentifier","src":"21558:63:65"},"nativeSrc":"21558:70:65","nodeType":"YulFunctionCall","src":"21558:70:65"}],"functionName":{"name":"mstore","nativeSrc":"21546:6:65","nodeType":"YulIdentifier","src":"21546:6:65"},"nativeSrc":"21546:83:65","nodeType":"YulFunctionCall","src":"21546:83:65"},"nativeSrc":"21546:83:65","nodeType":"YulExpressionStatement","src":"21546:83:65"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack","nativeSrc":"21438:197:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21524:5:65","nodeType":"YulTypedName","src":"21524:5:65","type":""},{"name":"pos","nativeSrc":"21531:3:65","nodeType":"YulTypedName","src":"21531:3:65","type":""}],"src":"21438:197:65"},{"body":{"nativeSrc":"21772:157:65","nodeType":"YulBlock","src":"21772:157:65","statements":[{"nativeSrc":"21782:26:65","nodeType":"YulAssignment","src":"21782:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"21794:9:65","nodeType":"YulIdentifier","src":"21794:9:65"},{"kind":"number","nativeSrc":"21805:2:65","nodeType":"YulLiteral","src":"21805:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21790:3:65","nodeType":"YulIdentifier","src":"21790:3:65"},"nativeSrc":"21790:18:65","nodeType":"YulFunctionCall","src":"21790:18:65"},"variableNames":[{"name":"tail","nativeSrc":"21782:4:65","nodeType":"YulIdentifier","src":"21782:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21895:6:65","nodeType":"YulIdentifier","src":"21895:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"21908:9:65","nodeType":"YulIdentifier","src":"21908:9:65"},{"kind":"number","nativeSrc":"21919:1:65","nodeType":"YulLiteral","src":"21919:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21904:3:65","nodeType":"YulIdentifier","src":"21904:3:65"},"nativeSrc":"21904:17:65","nodeType":"YulFunctionCall","src":"21904:17:65"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack","nativeSrc":"21818:76:65","nodeType":"YulIdentifier","src":"21818:76:65"},"nativeSrc":"21818:104:65","nodeType":"YulFunctionCall","src":"21818:104:65"},"nativeSrc":"21818:104:65","nodeType":"YulExpressionStatement","src":"21818:104:65"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed","nativeSrc":"21641:288:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21744:9:65","nodeType":"YulTypedName","src":"21744:9:65","type":""},{"name":"value0","nativeSrc":"21756:6:65","nodeType":"YulTypedName","src":"21756:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21767:4:65","nodeType":"YulTypedName","src":"21767:4:65","type":""}],"src":"21641:288:65"},{"body":{"nativeSrc":"22016:389:65","nodeType":"YulBlock","src":"22016:389:65","statements":[{"body":{"nativeSrc":"22062:83:65","nodeType":"YulBlock","src":"22062:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22064:77:65","nodeType":"YulIdentifier","src":"22064:77:65"},"nativeSrc":"22064:79:65","nodeType":"YulFunctionCall","src":"22064:79:65"},"nativeSrc":"22064:79:65","nodeType":"YulExpressionStatement","src":"22064:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22037:7:65","nodeType":"YulIdentifier","src":"22037:7:65"},{"name":"headStart","nativeSrc":"22046:9:65","nodeType":"YulIdentifier","src":"22046:9:65"}],"functionName":{"name":"sub","nativeSrc":"22033:3:65","nodeType":"YulIdentifier","src":"22033:3:65"},"nativeSrc":"22033:23:65","nodeType":"YulFunctionCall","src":"22033:23:65"},{"kind":"number","nativeSrc":"22058:2:65","nodeType":"YulLiteral","src":"22058:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"22029:3:65","nodeType":"YulIdentifier","src":"22029:3:65"},"nativeSrc":"22029:32:65","nodeType":"YulFunctionCall","src":"22029:32:65"},"nativeSrc":"22026:119:65","nodeType":"YulIf","src":"22026:119:65"},{"nativeSrc":"22155:116:65","nodeType":"YulBlock","src":"22155:116:65","statements":[{"nativeSrc":"22170:15:65","nodeType":"YulVariableDeclaration","src":"22170:15:65","value":{"kind":"number","nativeSrc":"22184:1:65","nodeType":"YulLiteral","src":"22184:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22174:6:65","nodeType":"YulTypedName","src":"22174:6:65","type":""}]},{"nativeSrc":"22199:62:65","nodeType":"YulAssignment","src":"22199:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22233:9:65","nodeType":"YulIdentifier","src":"22233:9:65"},{"name":"offset","nativeSrc":"22244:6:65","nodeType":"YulIdentifier","src":"22244:6:65"}],"functionName":{"name":"add","nativeSrc":"22229:3:65","nodeType":"YulIdentifier","src":"22229:3:65"},"nativeSrc":"22229:22:65","nodeType":"YulFunctionCall","src":"22229:22:65"},{"name":"dataEnd","nativeSrc":"22253:7:65","nodeType":"YulIdentifier","src":"22253:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22209:19:65","nodeType":"YulIdentifier","src":"22209:19:65"},"nativeSrc":"22209:52:65","nodeType":"YulFunctionCall","src":"22209:52:65"},"variableNames":[{"name":"value0","nativeSrc":"22199:6:65","nodeType":"YulIdentifier","src":"22199:6:65"}]}]},{"nativeSrc":"22281:117:65","nodeType":"YulBlock","src":"22281:117:65","statements":[{"nativeSrc":"22296:16:65","nodeType":"YulVariableDeclaration","src":"22296:16:65","value":{"kind":"number","nativeSrc":"22310:2:65","nodeType":"YulLiteral","src":"22310:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"22300:6:65","nodeType":"YulTypedName","src":"22300:6:65","type":""}]},{"nativeSrc":"22326:62:65","nodeType":"YulAssignment","src":"22326:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22360:9:65","nodeType":"YulIdentifier","src":"22360:9:65"},{"name":"offset","nativeSrc":"22371:6:65","nodeType":"YulIdentifier","src":"22371:6:65"}],"functionName":{"name":"add","nativeSrc":"22356:3:65","nodeType":"YulIdentifier","src":"22356:3:65"},"nativeSrc":"22356:22:65","nodeType":"YulFunctionCall","src":"22356:22:65"},{"name":"dataEnd","nativeSrc":"22380:7:65","nodeType":"YulIdentifier","src":"22380:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22336:19:65","nodeType":"YulIdentifier","src":"22336:19:65"},"nativeSrc":"22336:52:65","nodeType":"YulFunctionCall","src":"22336:52:65"},"variableNames":[{"name":"value1","nativeSrc":"22326:6:65","nodeType":"YulIdentifier","src":"22326:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nativeSrc":"21935:470:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21978:9:65","nodeType":"YulTypedName","src":"21978:9:65","type":""},{"name":"dataEnd","nativeSrc":"21989:7:65","nodeType":"YulTypedName","src":"21989:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22001:6:65","nodeType":"YulTypedName","src":"22001:6:65","type":""},{"name":"value1","nativeSrc":"22009:6:65","nodeType":"YulTypedName","src":"22009:6:65","type":""}],"src":"21935:470:65"},{"body":{"nativeSrc":"22476:53:65","nodeType":"YulBlock","src":"22476:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22493:3:65","nodeType":"YulIdentifier","src":"22493:3:65"},{"arguments":[{"name":"value","nativeSrc":"22516:5:65","nodeType":"YulIdentifier","src":"22516:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"22498:17:65","nodeType":"YulIdentifier","src":"22498:17:65"},"nativeSrc":"22498:24:65","nodeType":"YulFunctionCall","src":"22498:24:65"}],"functionName":{"name":"mstore","nativeSrc":"22486:6:65","nodeType":"YulIdentifier","src":"22486:6:65"},"nativeSrc":"22486:37:65","nodeType":"YulFunctionCall","src":"22486:37:65"},"nativeSrc":"22486:37:65","nodeType":"YulExpressionStatement","src":"22486:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22411:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22464:5:65","nodeType":"YulTypedName","src":"22464:5:65","type":""},{"name":"pos","nativeSrc":"22471:3:65","nodeType":"YulTypedName","src":"22471:3:65","type":""}],"src":"22411:118:65"},{"body":{"nativeSrc":"22633:124:65","nodeType":"YulBlock","src":"22633:124:65","statements":[{"nativeSrc":"22643:26:65","nodeType":"YulAssignment","src":"22643:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"22655:9:65","nodeType":"YulIdentifier","src":"22655:9:65"},{"kind":"number","nativeSrc":"22666:2:65","nodeType":"YulLiteral","src":"22666:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22651:3:65","nodeType":"YulIdentifier","src":"22651:3:65"},"nativeSrc":"22651:18:65","nodeType":"YulFunctionCall","src":"22651:18:65"},"variableNames":[{"name":"tail","nativeSrc":"22643:4:65","nodeType":"YulIdentifier","src":"22643:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22723:6:65","nodeType":"YulIdentifier","src":"22723:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"22736:9:65","nodeType":"YulIdentifier","src":"22736:9:65"},{"kind":"number","nativeSrc":"22747:1:65","nodeType":"YulLiteral","src":"22747:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22732:3:65","nodeType":"YulIdentifier","src":"22732:3:65"},"nativeSrc":"22732:17:65","nodeType":"YulFunctionCall","src":"22732:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22679:43:65","nodeType":"YulIdentifier","src":"22679:43:65"},"nativeSrc":"22679:71:65","nodeType":"YulFunctionCall","src":"22679:71:65"},"nativeSrc":"22679:71:65","nodeType":"YulExpressionStatement","src":"22679:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"22535:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22605:9:65","nodeType":"YulTypedName","src":"22605:9:65","type":""},{"name":"value0","nativeSrc":"22617:6:65","nodeType":"YulTypedName","src":"22617:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22628:4:65","nodeType":"YulTypedName","src":"22628:4:65","type":""}],"src":"22535:222:65"},{"body":{"nativeSrc":"22964:1388:65","nodeType":"YulBlock","src":"22964:1388:65","statements":[{"body":{"nativeSrc":"23011:83:65","nodeType":"YulBlock","src":"23011:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23013:77:65","nodeType":"YulIdentifier","src":"23013:77:65"},"nativeSrc":"23013:79:65","nodeType":"YulFunctionCall","src":"23013:79:65"},"nativeSrc":"23013:79:65","nodeType":"YulExpressionStatement","src":"23013:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22985:7:65","nodeType":"YulIdentifier","src":"22985:7:65"},{"name":"headStart","nativeSrc":"22994:9:65","nodeType":"YulIdentifier","src":"22994:9:65"}],"functionName":{"name":"sub","nativeSrc":"22981:3:65","nodeType":"YulIdentifier","src":"22981:3:65"},"nativeSrc":"22981:23:65","nodeType":"YulFunctionCall","src":"22981:23:65"},{"kind":"number","nativeSrc":"23006:3:65","nodeType":"YulLiteral","src":"23006:3:65","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"22977:3:65","nodeType":"YulIdentifier","src":"22977:3:65"},"nativeSrc":"22977:33:65","nodeType":"YulFunctionCall","src":"22977:33:65"},"nativeSrc":"22974:120:65","nodeType":"YulIf","src":"22974:120:65"},{"nativeSrc":"23104:116:65","nodeType":"YulBlock","src":"23104:116:65","statements":[{"nativeSrc":"23119:15:65","nodeType":"YulVariableDeclaration","src":"23119:15:65","value":{"kind":"number","nativeSrc":"23133:1:65","nodeType":"YulLiteral","src":"23133:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23123:6:65","nodeType":"YulTypedName","src":"23123:6:65","type":""}]},{"nativeSrc":"23148:62:65","nodeType":"YulAssignment","src":"23148:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23182:9:65","nodeType":"YulIdentifier","src":"23182:9:65"},{"name":"offset","nativeSrc":"23193:6:65","nodeType":"YulIdentifier","src":"23193:6:65"}],"functionName":{"name":"add","nativeSrc":"23178:3:65","nodeType":"YulIdentifier","src":"23178:3:65"},"nativeSrc":"23178:22:65","nodeType":"YulFunctionCall","src":"23178:22:65"},{"name":"dataEnd","nativeSrc":"23202:7:65","nodeType":"YulIdentifier","src":"23202:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"23158:19:65","nodeType":"YulIdentifier","src":"23158:19:65"},"nativeSrc":"23158:52:65","nodeType":"YulFunctionCall","src":"23158:52:65"},"variableNames":[{"name":"value0","nativeSrc":"23148:6:65","nodeType":"YulIdentifier","src":"23148:6:65"}]}]},{"nativeSrc":"23230:118:65","nodeType":"YulBlock","src":"23230:118:65","statements":[{"nativeSrc":"23245:16:65","nodeType":"YulVariableDeclaration","src":"23245:16:65","value":{"kind":"number","nativeSrc":"23259:2:65","nodeType":"YulLiteral","src":"23259:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23249:6:65","nodeType":"YulTypedName","src":"23249:6:65","type":""}]},{"nativeSrc":"23275:63:65","nodeType":"YulAssignment","src":"23275:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23310:9:65","nodeType":"YulIdentifier","src":"23310:9:65"},{"name":"offset","nativeSrc":"23321:6:65","nodeType":"YulIdentifier","src":"23321:6:65"}],"functionName":{"name":"add","nativeSrc":"23306:3:65","nodeType":"YulIdentifier","src":"23306:3:65"},"nativeSrc":"23306:22:65","nodeType":"YulFunctionCall","src":"23306:22:65"},{"name":"dataEnd","nativeSrc":"23330:7:65","nodeType":"YulIdentifier","src":"23330:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"23285:20:65","nodeType":"YulIdentifier","src":"23285:20:65"},"nativeSrc":"23285:53:65","nodeType":"YulFunctionCall","src":"23285:53:65"},"variableNames":[{"name":"value1","nativeSrc":"23275:6:65","nodeType":"YulIdentifier","src":"23275:6:65"}]}]},{"nativeSrc":"23358:118:65","nodeType":"YulBlock","src":"23358:118:65","statements":[{"nativeSrc":"23373:16:65","nodeType":"YulVariableDeclaration","src":"23373:16:65","value":{"kind":"number","nativeSrc":"23387:2:65","nodeType":"YulLiteral","src":"23387:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"23377:6:65","nodeType":"YulTypedName","src":"23377:6:65","type":""}]},{"nativeSrc":"23403:63:65","nodeType":"YulAssignment","src":"23403:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23438:9:65","nodeType":"YulIdentifier","src":"23438:9:65"},{"name":"offset","nativeSrc":"23449:6:65","nodeType":"YulIdentifier","src":"23449:6:65"}],"functionName":{"name":"add","nativeSrc":"23434:3:65","nodeType":"YulIdentifier","src":"23434:3:65"},"nativeSrc":"23434:22:65","nodeType":"YulFunctionCall","src":"23434:22:65"},{"name":"dataEnd","nativeSrc":"23458:7:65","nodeType":"YulIdentifier","src":"23458:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"23413:20:65","nodeType":"YulIdentifier","src":"23413:20:65"},"nativeSrc":"23413:53:65","nodeType":"YulFunctionCall","src":"23413:53:65"},"variableNames":[{"name":"value2","nativeSrc":"23403:6:65","nodeType":"YulIdentifier","src":"23403:6:65"}]}]},{"nativeSrc":"23486:297:65","nodeType":"YulBlock","src":"23486:297:65","statements":[{"nativeSrc":"23501:46:65","nodeType":"YulVariableDeclaration","src":"23501:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23532:9:65","nodeType":"YulIdentifier","src":"23532:9:65"},{"kind":"number","nativeSrc":"23543:2:65","nodeType":"YulLiteral","src":"23543:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23528:3:65","nodeType":"YulIdentifier","src":"23528:3:65"},"nativeSrc":"23528:18:65","nodeType":"YulFunctionCall","src":"23528:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"23515:12:65","nodeType":"YulIdentifier","src":"23515:12:65"},"nativeSrc":"23515:32:65","nodeType":"YulFunctionCall","src":"23515:32:65"},"variables":[{"name":"offset","nativeSrc":"23505:6:65","nodeType":"YulTypedName","src":"23505:6:65","type":""}]},{"body":{"nativeSrc":"23594:83:65","nodeType":"YulBlock","src":"23594:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"23596:77:65","nodeType":"YulIdentifier","src":"23596:77:65"},"nativeSrc":"23596:79:65","nodeType":"YulFunctionCall","src":"23596:79:65"},"nativeSrc":"23596:79:65","nodeType":"YulExpressionStatement","src":"23596:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23566:6:65","nodeType":"YulIdentifier","src":"23566:6:65"},{"kind":"number","nativeSrc":"23574:18:65","nodeType":"YulLiteral","src":"23574:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23563:2:65","nodeType":"YulIdentifier","src":"23563:2:65"},"nativeSrc":"23563:30:65","nodeType":"YulFunctionCall","src":"23563:30:65"},"nativeSrc":"23560:117:65","nodeType":"YulIf","src":"23560:117:65"},{"nativeSrc":"23691:82:65","nodeType":"YulAssignment","src":"23691:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23745:9:65","nodeType":"YulIdentifier","src":"23745:9:65"},{"name":"offset","nativeSrc":"23756:6:65","nodeType":"YulIdentifier","src":"23756:6:65"}],"functionName":{"name":"add","nativeSrc":"23741:3:65","nodeType":"YulIdentifier","src":"23741:3:65"},"nativeSrc":"23741:22:65","nodeType":"YulFunctionCall","src":"23741:22:65"},{"name":"dataEnd","nativeSrc":"23765:7:65","nodeType":"YulIdentifier","src":"23765:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"23709:31:65","nodeType":"YulIdentifier","src":"23709:31:65"},"nativeSrc":"23709:64:65","nodeType":"YulFunctionCall","src":"23709:64:65"},"variableNames":[{"name":"value3","nativeSrc":"23691:6:65","nodeType":"YulIdentifier","src":"23691:6:65"},{"name":"value4","nativeSrc":"23699:6:65","nodeType":"YulIdentifier","src":"23699:6:65"}]}]},{"nativeSrc":"23793:118:65","nodeType":"YulBlock","src":"23793:118:65","statements":[{"nativeSrc":"23808:17:65","nodeType":"YulVariableDeclaration","src":"23808:17:65","value":{"kind":"number","nativeSrc":"23822:3:65","nodeType":"YulLiteral","src":"23822:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"23812:6:65","nodeType":"YulTypedName","src":"23812:6:65","type":""}]},{"nativeSrc":"23839:62:65","nodeType":"YulAssignment","src":"23839:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23873:9:65","nodeType":"YulIdentifier","src":"23873:9:65"},{"name":"offset","nativeSrc":"23884:6:65","nodeType":"YulIdentifier","src":"23884:6:65"}],"functionName":{"name":"add","nativeSrc":"23869:3:65","nodeType":"YulIdentifier","src":"23869:3:65"},"nativeSrc":"23869:22:65","nodeType":"YulFunctionCall","src":"23869:22:65"},{"name":"dataEnd","nativeSrc":"23893:7:65","nodeType":"YulIdentifier","src":"23893:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"23849:19:65","nodeType":"YulIdentifier","src":"23849:19:65"},"nativeSrc":"23849:52:65","nodeType":"YulFunctionCall","src":"23849:52:65"},"variableNames":[{"name":"value5","nativeSrc":"23839:6:65","nodeType":"YulIdentifier","src":"23839:6:65"}]}]},{"nativeSrc":"23921:116:65","nodeType":"YulBlock","src":"23921:116:65","statements":[{"nativeSrc":"23936:17:65","nodeType":"YulVariableDeclaration","src":"23936:17:65","value":{"kind":"number","nativeSrc":"23950:3:65","nodeType":"YulLiteral","src":"23950:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"23940:6:65","nodeType":"YulTypedName","src":"23940:6:65","type":""}]},{"nativeSrc":"23967:60:65","nodeType":"YulAssignment","src":"23967:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23999:9:65","nodeType":"YulIdentifier","src":"23999:9:65"},{"name":"offset","nativeSrc":"24010:6:65","nodeType":"YulIdentifier","src":"24010:6:65"}],"functionName":{"name":"add","nativeSrc":"23995:3:65","nodeType":"YulIdentifier","src":"23995:3:65"},"nativeSrc":"23995:22:65","nodeType":"YulFunctionCall","src":"23995:22:65"},{"name":"dataEnd","nativeSrc":"24019:7:65","nodeType":"YulIdentifier","src":"24019:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"23977:17:65","nodeType":"YulIdentifier","src":"23977:17:65"},"nativeSrc":"23977:50:65","nodeType":"YulFunctionCall","src":"23977:50:65"},"variableNames":[{"name":"value6","nativeSrc":"23967:6:65","nodeType":"YulIdentifier","src":"23967:6:65"}]}]},{"nativeSrc":"24047:298:65","nodeType":"YulBlock","src":"24047:298:65","statements":[{"nativeSrc":"24062:47:65","nodeType":"YulVariableDeclaration","src":"24062:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24093:9:65","nodeType":"YulIdentifier","src":"24093:9:65"},{"kind":"number","nativeSrc":"24104:3:65","nodeType":"YulLiteral","src":"24104:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"24089:3:65","nodeType":"YulIdentifier","src":"24089:3:65"},"nativeSrc":"24089:19:65","nodeType":"YulFunctionCall","src":"24089:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"24076:12:65","nodeType":"YulIdentifier","src":"24076:12:65"},"nativeSrc":"24076:33:65","nodeType":"YulFunctionCall","src":"24076:33:65"},"variables":[{"name":"offset","nativeSrc":"24066:6:65","nodeType":"YulTypedName","src":"24066:6:65","type":""}]},{"body":{"nativeSrc":"24156:83:65","nodeType":"YulBlock","src":"24156:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24158:77:65","nodeType":"YulIdentifier","src":"24158:77:65"},"nativeSrc":"24158:79:65","nodeType":"YulFunctionCall","src":"24158:79:65"},"nativeSrc":"24158:79:65","nodeType":"YulExpressionStatement","src":"24158:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24128:6:65","nodeType":"YulIdentifier","src":"24128:6:65"},{"kind":"number","nativeSrc":"24136:18:65","nodeType":"YulLiteral","src":"24136:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24125:2:65","nodeType":"YulIdentifier","src":"24125:2:65"},"nativeSrc":"24125:30:65","nodeType":"YulFunctionCall","src":"24125:30:65"},"nativeSrc":"24122:117:65","nodeType":"YulIf","src":"24122:117:65"},{"nativeSrc":"24253:82:65","nodeType":"YulAssignment","src":"24253:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24307:9:65","nodeType":"YulIdentifier","src":"24307:9:65"},{"name":"offset","nativeSrc":"24318:6:65","nodeType":"YulIdentifier","src":"24318:6:65"}],"functionName":{"name":"add","nativeSrc":"24303:3:65","nodeType":"YulIdentifier","src":"24303:3:65"},"nativeSrc":"24303:22:65","nodeType":"YulFunctionCall","src":"24303:22:65"},{"name":"dataEnd","nativeSrc":"24327:7:65","nodeType":"YulIdentifier","src":"24327:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"24271:31:65","nodeType":"YulIdentifier","src":"24271:31:65"},"nativeSrc":"24271:64:65","nodeType":"YulFunctionCall","src":"24271:64:65"},"variableNames":[{"name":"value7","nativeSrc":"24253:6:65","nodeType":"YulIdentifier","src":"24253:6:65"},{"name":"value8","nativeSrc":"24261:6:65","nodeType":"YulIdentifier","src":"24261:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr","nativeSrc":"22763:1589:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22870:9:65","nodeType":"YulTypedName","src":"22870:9:65","type":""},{"name":"dataEnd","nativeSrc":"22881:7:65","nodeType":"YulTypedName","src":"22881:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22893:6:65","nodeType":"YulTypedName","src":"22893:6:65","type":""},{"name":"value1","nativeSrc":"22901:6:65","nodeType":"YulTypedName","src":"22901:6:65","type":""},{"name":"value2","nativeSrc":"22909:6:65","nodeType":"YulTypedName","src":"22909:6:65","type":""},{"name":"value3","nativeSrc":"22917:6:65","nodeType":"YulTypedName","src":"22917:6:65","type":""},{"name":"value4","nativeSrc":"22925:6:65","nodeType":"YulTypedName","src":"22925:6:65","type":""},{"name":"value5","nativeSrc":"22933:6:65","nodeType":"YulTypedName","src":"22933:6:65","type":""},{"name":"value6","nativeSrc":"22941:6:65","nodeType":"YulTypedName","src":"22941:6:65","type":""},{"name":"value7","nativeSrc":"22949:6:65","nodeType":"YulTypedName","src":"22949:6:65","type":""},{"name":"value8","nativeSrc":"22957:6:65","nodeType":"YulTypedName","src":"22957:6:65","type":""}],"src":"22763:1589:65"},{"body":{"nativeSrc":"24445:66:65","nodeType":"YulBlock","src":"24445:66:65","statements":[{"nativeSrc":"24455:50:65","nodeType":"YulAssignment","src":"24455:50:65","value":{"arguments":[{"name":"value","nativeSrc":"24499:5:65","nodeType":"YulIdentifier","src":"24499:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"24468:30:65","nodeType":"YulIdentifier","src":"24468:30:65"},"nativeSrc":"24468:37:65","nodeType":"YulFunctionCall","src":"24468:37:65"},"variableNames":[{"name":"converted","nativeSrc":"24455:9:65","nodeType":"YulIdentifier","src":"24455:9:65"}]}]},"name":"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address","nativeSrc":"24358:153:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24425:5:65","nodeType":"YulTypedName","src":"24425:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"24435:9:65","nodeType":"YulTypedName","src":"24435:9:65","type":""}],"src":"24358:153:65"},{"body":{"nativeSrc":"24609:93:65","nodeType":"YulBlock","src":"24609:93:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"24626:3:65","nodeType":"YulIdentifier","src":"24626:3:65"},{"arguments":[{"name":"value","nativeSrc":"24689:5:65","nodeType":"YulIdentifier","src":"24689:5:65"}],"functionName":{"name":"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address","nativeSrc":"24631:57:65","nodeType":"YulIdentifier","src":"24631:57:65"},"nativeSrc":"24631:64:65","nodeType":"YulFunctionCall","src":"24631:64:65"}],"functionName":{"name":"mstore","nativeSrc":"24619:6:65","nodeType":"YulIdentifier","src":"24619:6:65"},"nativeSrc":"24619:77:65","nodeType":"YulFunctionCall","src":"24619:77:65"},"nativeSrc":"24619:77:65","nodeType":"YulExpressionStatement","src":"24619:77:65"}]},"name":"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack","nativeSrc":"24517:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24597:5:65","nodeType":"YulTypedName","src":"24597:5:65","type":""},{"name":"pos","nativeSrc":"24604:3:65","nodeType":"YulTypedName","src":"24604:3:65","type":""}],"src":"24517:185:65"},{"body":{"nativeSrc":"24833:151:65","nodeType":"YulBlock","src":"24833:151:65","statements":[{"nativeSrc":"24843:26:65","nodeType":"YulAssignment","src":"24843:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"24855:9:65","nodeType":"YulIdentifier","src":"24855:9:65"},{"kind":"number","nativeSrc":"24866:2:65","nodeType":"YulLiteral","src":"24866:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24851:3:65","nodeType":"YulIdentifier","src":"24851:3:65"},"nativeSrc":"24851:18:65","nodeType":"YulFunctionCall","src":"24851:18:65"},"variableNames":[{"name":"tail","nativeSrc":"24843:4:65","nodeType":"YulIdentifier","src":"24843:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"24950:6:65","nodeType":"YulIdentifier","src":"24950:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"24963:9:65","nodeType":"YulIdentifier","src":"24963:9:65"},{"kind":"number","nativeSrc":"24974:1:65","nodeType":"YulLiteral","src":"24974:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24959:3:65","nodeType":"YulIdentifier","src":"24959:3:65"},"nativeSrc":"24959:17:65","nodeType":"YulFunctionCall","src":"24959:17:65"}],"functionName":{"name":"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack","nativeSrc":"24879:70:65","nodeType":"YulIdentifier","src":"24879:70:65"},"nativeSrc":"24879:98:65","nodeType":"YulFunctionCall","src":"24879:98:65"},"nativeSrc":"24879:98:65","nodeType":"YulExpressionStatement","src":"24879:98:65"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed","nativeSrc":"24708:276:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24805:9:65","nodeType":"YulTypedName","src":"24805:9:65","type":""},{"name":"value0","nativeSrc":"24817:6:65","nodeType":"YulTypedName","src":"24817:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24828:4:65","nodeType":"YulTypedName","src":"24828:4:65","type":""}],"src":"24708:276:65"},{"body":{"nativeSrc":"25124:825:65","nodeType":"YulBlock","src":"25124:825:65","statements":[{"body":{"nativeSrc":"25171:83:65","nodeType":"YulBlock","src":"25171:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"25173:77:65","nodeType":"YulIdentifier","src":"25173:77:65"},"nativeSrc":"25173:79:65","nodeType":"YulFunctionCall","src":"25173:79:65"},"nativeSrc":"25173:79:65","nodeType":"YulExpressionStatement","src":"25173:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25145:7:65","nodeType":"YulIdentifier","src":"25145:7:65"},{"name":"headStart","nativeSrc":"25154:9:65","nodeType":"YulIdentifier","src":"25154:9:65"}],"functionName":{"name":"sub","nativeSrc":"25141:3:65","nodeType":"YulIdentifier","src":"25141:3:65"},"nativeSrc":"25141:23:65","nodeType":"YulFunctionCall","src":"25141:23:65"},{"kind":"number","nativeSrc":"25166:3:65","nodeType":"YulLiteral","src":"25166:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"25137:3:65","nodeType":"YulIdentifier","src":"25137:3:65"},"nativeSrc":"25137:33:65","nodeType":"YulFunctionCall","src":"25137:33:65"},"nativeSrc":"25134:120:65","nodeType":"YulIf","src":"25134:120:65"},{"nativeSrc":"25264:116:65","nodeType":"YulBlock","src":"25264:116:65","statements":[{"nativeSrc":"25279:15:65","nodeType":"YulVariableDeclaration","src":"25279:15:65","value":{"kind":"number","nativeSrc":"25293:1:65","nodeType":"YulLiteral","src":"25293:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"25283:6:65","nodeType":"YulTypedName","src":"25283:6:65","type":""}]},{"nativeSrc":"25308:62:65","nodeType":"YulAssignment","src":"25308:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25342:9:65","nodeType":"YulIdentifier","src":"25342:9:65"},{"name":"offset","nativeSrc":"25353:6:65","nodeType":"YulIdentifier","src":"25353:6:65"}],"functionName":{"name":"add","nativeSrc":"25338:3:65","nodeType":"YulIdentifier","src":"25338:3:65"},"nativeSrc":"25338:22:65","nodeType":"YulFunctionCall","src":"25338:22:65"},{"name":"dataEnd","nativeSrc":"25362:7:65","nodeType":"YulIdentifier","src":"25362:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"25318:19:65","nodeType":"YulIdentifier","src":"25318:19:65"},"nativeSrc":"25318:52:65","nodeType":"YulFunctionCall","src":"25318:52:65"},"variableNames":[{"name":"value0","nativeSrc":"25308:6:65","nodeType":"YulIdentifier","src":"25308:6:65"}]}]},{"nativeSrc":"25390:117:65","nodeType":"YulBlock","src":"25390:117:65","statements":[{"nativeSrc":"25405:16:65","nodeType":"YulVariableDeclaration","src":"25405:16:65","value":{"kind":"number","nativeSrc":"25419:2:65","nodeType":"YulLiteral","src":"25419:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"25409:6:65","nodeType":"YulTypedName","src":"25409:6:65","type":""}]},{"nativeSrc":"25435:62:65","nodeType":"YulAssignment","src":"25435:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25469:9:65","nodeType":"YulIdentifier","src":"25469:9:65"},{"name":"offset","nativeSrc":"25480:6:65","nodeType":"YulIdentifier","src":"25480:6:65"}],"functionName":{"name":"add","nativeSrc":"25465:3:65","nodeType":"YulIdentifier","src":"25465:3:65"},"nativeSrc":"25465:22:65","nodeType":"YulFunctionCall","src":"25465:22:65"},{"name":"dataEnd","nativeSrc":"25489:7:65","nodeType":"YulIdentifier","src":"25489:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"25445:19:65","nodeType":"YulIdentifier","src":"25445:19:65"},"nativeSrc":"25445:52:65","nodeType":"YulFunctionCall","src":"25445:52:65"},"variableNames":[{"name":"value1","nativeSrc":"25435:6:65","nodeType":"YulIdentifier","src":"25435:6:65"}]}]},{"nativeSrc":"25517:118:65","nodeType":"YulBlock","src":"25517:118:65","statements":[{"nativeSrc":"25532:16:65","nodeType":"YulVariableDeclaration","src":"25532:16:65","value":{"kind":"number","nativeSrc":"25546:2:65","nodeType":"YulLiteral","src":"25546:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"25536:6:65","nodeType":"YulTypedName","src":"25536:6:65","type":""}]},{"nativeSrc":"25562:63:65","nodeType":"YulAssignment","src":"25562:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25597:9:65","nodeType":"YulIdentifier","src":"25597:9:65"},{"name":"offset","nativeSrc":"25608:6:65","nodeType":"YulIdentifier","src":"25608:6:65"}],"functionName":{"name":"add","nativeSrc":"25593:3:65","nodeType":"YulIdentifier","src":"25593:3:65"},"nativeSrc":"25593:22:65","nodeType":"YulFunctionCall","src":"25593:22:65"},{"name":"dataEnd","nativeSrc":"25617:7:65","nodeType":"YulIdentifier","src":"25617:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"25572:20:65","nodeType":"YulIdentifier","src":"25572:20:65"},"nativeSrc":"25572:53:65","nodeType":"YulFunctionCall","src":"25572:53:65"},"variableNames":[{"name":"value2","nativeSrc":"25562:6:65","nodeType":"YulIdentifier","src":"25562:6:65"}]}]},{"nativeSrc":"25645:297:65","nodeType":"YulBlock","src":"25645:297:65","statements":[{"nativeSrc":"25660:46:65","nodeType":"YulVariableDeclaration","src":"25660:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25691:9:65","nodeType":"YulIdentifier","src":"25691:9:65"},{"kind":"number","nativeSrc":"25702:2:65","nodeType":"YulLiteral","src":"25702:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25687:3:65","nodeType":"YulIdentifier","src":"25687:3:65"},"nativeSrc":"25687:18:65","nodeType":"YulFunctionCall","src":"25687:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"25674:12:65","nodeType":"YulIdentifier","src":"25674:12:65"},"nativeSrc":"25674:32:65","nodeType":"YulFunctionCall","src":"25674:32:65"},"variables":[{"name":"offset","nativeSrc":"25664:6:65","nodeType":"YulTypedName","src":"25664:6:65","type":""}]},{"body":{"nativeSrc":"25753:83:65","nodeType":"YulBlock","src":"25753:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"25755:77:65","nodeType":"YulIdentifier","src":"25755:77:65"},"nativeSrc":"25755:79:65","nodeType":"YulFunctionCall","src":"25755:79:65"},"nativeSrc":"25755:79:65","nodeType":"YulExpressionStatement","src":"25755:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25725:6:65","nodeType":"YulIdentifier","src":"25725:6:65"},{"kind":"number","nativeSrc":"25733:18:65","nodeType":"YulLiteral","src":"25733:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25722:2:65","nodeType":"YulIdentifier","src":"25722:2:65"},"nativeSrc":"25722:30:65","nodeType":"YulFunctionCall","src":"25722:30:65"},"nativeSrc":"25719:117:65","nodeType":"YulIf","src":"25719:117:65"},{"nativeSrc":"25850:82:65","nodeType":"YulAssignment","src":"25850:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25904:9:65","nodeType":"YulIdentifier","src":"25904:9:65"},{"name":"offset","nativeSrc":"25915:6:65","nodeType":"YulIdentifier","src":"25915:6:65"}],"functionName":{"name":"add","nativeSrc":"25900:3:65","nodeType":"YulIdentifier","src":"25900:3:65"},"nativeSrc":"25900:22:65","nodeType":"YulFunctionCall","src":"25900:22:65"},{"name":"dataEnd","nativeSrc":"25924:7:65","nodeType":"YulIdentifier","src":"25924:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"25868:31:65","nodeType":"YulIdentifier","src":"25868:31:65"},"nativeSrc":"25868:64:65","nodeType":"YulFunctionCall","src":"25868:64:65"},"variableNames":[{"name":"value3","nativeSrc":"25850:6:65","nodeType":"YulIdentifier","src":"25850:6:65"},{"name":"value4","nativeSrc":"25858:6:65","nodeType":"YulIdentifier","src":"25858:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"24990:959:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25062:9:65","nodeType":"YulTypedName","src":"25062:9:65","type":""},{"name":"dataEnd","nativeSrc":"25073:7:65","nodeType":"YulTypedName","src":"25073:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25085:6:65","nodeType":"YulTypedName","src":"25085:6:65","type":""},{"name":"value1","nativeSrc":"25093:6:65","nodeType":"YulTypedName","src":"25093:6:65","type":""},{"name":"value2","nativeSrc":"25101:6:65","nodeType":"YulTypedName","src":"25101:6:65","type":""},{"name":"value3","nativeSrc":"25109:6:65","nodeType":"YulTypedName","src":"25109:6:65","type":""},{"name":"value4","nativeSrc":"25117:6:65","nodeType":"YulTypedName","src":"25117:6:65","type":""}],"src":"24990:959:65"},{"body":{"nativeSrc":"26053:517:65","nodeType":"YulBlock","src":"26053:517:65","statements":[{"body":{"nativeSrc":"26099:83:65","nodeType":"YulBlock","src":"26099:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26101:77:65","nodeType":"YulIdentifier","src":"26101:77:65"},"nativeSrc":"26101:79:65","nodeType":"YulFunctionCall","src":"26101:79:65"},"nativeSrc":"26101:79:65","nodeType":"YulExpressionStatement","src":"26101:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26074:7:65","nodeType":"YulIdentifier","src":"26074:7:65"},{"name":"headStart","nativeSrc":"26083:9:65","nodeType":"YulIdentifier","src":"26083:9:65"}],"functionName":{"name":"sub","nativeSrc":"26070:3:65","nodeType":"YulIdentifier","src":"26070:3:65"},"nativeSrc":"26070:23:65","nodeType":"YulFunctionCall","src":"26070:23:65"},{"kind":"number","nativeSrc":"26095:2:65","nodeType":"YulLiteral","src":"26095:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"26066:3:65","nodeType":"YulIdentifier","src":"26066:3:65"},"nativeSrc":"26066:32:65","nodeType":"YulFunctionCall","src":"26066:32:65"},"nativeSrc":"26063:119:65","nodeType":"YulIf","src":"26063:119:65"},{"nativeSrc":"26192:116:65","nodeType":"YulBlock","src":"26192:116:65","statements":[{"nativeSrc":"26207:15:65","nodeType":"YulVariableDeclaration","src":"26207:15:65","value":{"kind":"number","nativeSrc":"26221:1:65","nodeType":"YulLiteral","src":"26221:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26211:6:65","nodeType":"YulTypedName","src":"26211:6:65","type":""}]},{"nativeSrc":"26236:62:65","nodeType":"YulAssignment","src":"26236:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26270:9:65","nodeType":"YulIdentifier","src":"26270:9:65"},{"name":"offset","nativeSrc":"26281:6:65","nodeType":"YulIdentifier","src":"26281:6:65"}],"functionName":{"name":"add","nativeSrc":"26266:3:65","nodeType":"YulIdentifier","src":"26266:3:65"},"nativeSrc":"26266:22:65","nodeType":"YulFunctionCall","src":"26266:22:65"},{"name":"dataEnd","nativeSrc":"26290:7:65","nodeType":"YulIdentifier","src":"26290:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"26246:19:65","nodeType":"YulIdentifier","src":"26246:19:65"},"nativeSrc":"26246:52:65","nodeType":"YulFunctionCall","src":"26246:52:65"},"variableNames":[{"name":"value0","nativeSrc":"26236:6:65","nodeType":"YulIdentifier","src":"26236:6:65"}]}]},{"nativeSrc":"26318:117:65","nodeType":"YulBlock","src":"26318:117:65","statements":[{"nativeSrc":"26333:16:65","nodeType":"YulVariableDeclaration","src":"26333:16:65","value":{"kind":"number","nativeSrc":"26347:2:65","nodeType":"YulLiteral","src":"26347:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"26337:6:65","nodeType":"YulTypedName","src":"26337:6:65","type":""}]},{"nativeSrc":"26363:62:65","nodeType":"YulAssignment","src":"26363:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26397:9:65","nodeType":"YulIdentifier","src":"26397:9:65"},{"name":"offset","nativeSrc":"26408:6:65","nodeType":"YulIdentifier","src":"26408:6:65"}],"functionName":{"name":"add","nativeSrc":"26393:3:65","nodeType":"YulIdentifier","src":"26393:3:65"},"nativeSrc":"26393:22:65","nodeType":"YulFunctionCall","src":"26393:22:65"},{"name":"dataEnd","nativeSrc":"26417:7:65","nodeType":"YulIdentifier","src":"26417:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"26373:19:65","nodeType":"YulIdentifier","src":"26373:19:65"},"nativeSrc":"26373:52:65","nodeType":"YulFunctionCall","src":"26373:52:65"},"variableNames":[{"name":"value1","nativeSrc":"26363:6:65","nodeType":"YulIdentifier","src":"26363:6:65"}]}]},{"nativeSrc":"26445:118:65","nodeType":"YulBlock","src":"26445:118:65","statements":[{"nativeSrc":"26460:16:65","nodeType":"YulVariableDeclaration","src":"26460:16:65","value":{"kind":"number","nativeSrc":"26474:2:65","nodeType":"YulLiteral","src":"26474:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"26464:6:65","nodeType":"YulTypedName","src":"26464:6:65","type":""}]},{"nativeSrc":"26490:63:65","nodeType":"YulAssignment","src":"26490:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26525:9:65","nodeType":"YulIdentifier","src":"26525:9:65"},{"name":"offset","nativeSrc":"26536:6:65","nodeType":"YulIdentifier","src":"26536:6:65"}],"functionName":{"name":"add","nativeSrc":"26521:3:65","nodeType":"YulIdentifier","src":"26521:3:65"},"nativeSrc":"26521:22:65","nodeType":"YulFunctionCall","src":"26521:22:65"},{"name":"dataEnd","nativeSrc":"26545:7:65","nodeType":"YulIdentifier","src":"26545:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"26500:20:65","nodeType":"YulIdentifier","src":"26500:20:65"},"nativeSrc":"26500:53:65","nodeType":"YulFunctionCall","src":"26500:53:65"},"variableNames":[{"name":"value2","nativeSrc":"26490:6:65","nodeType":"YulIdentifier","src":"26490:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"25955:615:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26007:9:65","nodeType":"YulTypedName","src":"26007:9:65","type":""},{"name":"dataEnd","nativeSrc":"26018:7:65","nodeType":"YulTypedName","src":"26018:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26030:6:65","nodeType":"YulTypedName","src":"26030:6:65","type":""},{"name":"value1","nativeSrc":"26038:6:65","nodeType":"YulTypedName","src":"26038:6:65","type":""},{"name":"value2","nativeSrc":"26046:6:65","nodeType":"YulTypedName","src":"26046:6:65","type":""}],"src":"25955:615:65"},{"body":{"nativeSrc":"26797:1520:65","nodeType":"YulBlock","src":"26797:1520:65","statements":[{"body":{"nativeSrc":"26844:83:65","nodeType":"YulBlock","src":"26844:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26846:77:65","nodeType":"YulIdentifier","src":"26846:77:65"},"nativeSrc":"26846:79:65","nodeType":"YulFunctionCall","src":"26846:79:65"},"nativeSrc":"26846:79:65","nodeType":"YulExpressionStatement","src":"26846:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26818:7:65","nodeType":"YulIdentifier","src":"26818:7:65"},{"name":"headStart","nativeSrc":"26827:9:65","nodeType":"YulIdentifier","src":"26827:9:65"}],"functionName":{"name":"sub","nativeSrc":"26814:3:65","nodeType":"YulIdentifier","src":"26814:3:65"},"nativeSrc":"26814:23:65","nodeType":"YulFunctionCall","src":"26814:23:65"},{"kind":"number","nativeSrc":"26839:3:65","nodeType":"YulLiteral","src":"26839:3:65","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"26810:3:65","nodeType":"YulIdentifier","src":"26810:3:65"},"nativeSrc":"26810:33:65","nodeType":"YulFunctionCall","src":"26810:33:65"},"nativeSrc":"26807:120:65","nodeType":"YulIf","src":"26807:120:65"},{"nativeSrc":"26937:116:65","nodeType":"YulBlock","src":"26937:116:65","statements":[{"nativeSrc":"26952:15:65","nodeType":"YulVariableDeclaration","src":"26952:15:65","value":{"kind":"number","nativeSrc":"26966:1:65","nodeType":"YulLiteral","src":"26966:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26956:6:65","nodeType":"YulTypedName","src":"26956:6:65","type":""}]},{"nativeSrc":"26981:62:65","nodeType":"YulAssignment","src":"26981:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27015:9:65","nodeType":"YulIdentifier","src":"27015:9:65"},{"name":"offset","nativeSrc":"27026:6:65","nodeType":"YulIdentifier","src":"27026:6:65"}],"functionName":{"name":"add","nativeSrc":"27011:3:65","nodeType":"YulIdentifier","src":"27011:3:65"},"nativeSrc":"27011:22:65","nodeType":"YulFunctionCall","src":"27011:22:65"},{"name":"dataEnd","nativeSrc":"27035:7:65","nodeType":"YulIdentifier","src":"27035:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"26991:19:65","nodeType":"YulIdentifier","src":"26991:19:65"},"nativeSrc":"26991:52:65","nodeType":"YulFunctionCall","src":"26991:52:65"},"variableNames":[{"name":"value0","nativeSrc":"26981:6:65","nodeType":"YulIdentifier","src":"26981:6:65"}]}]},{"nativeSrc":"27063:297:65","nodeType":"YulBlock","src":"27063:297:65","statements":[{"nativeSrc":"27078:46:65","nodeType":"YulVariableDeclaration","src":"27078:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27109:9:65","nodeType":"YulIdentifier","src":"27109:9:65"},{"kind":"number","nativeSrc":"27120:2:65","nodeType":"YulLiteral","src":"27120:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27105:3:65","nodeType":"YulIdentifier","src":"27105:3:65"},"nativeSrc":"27105:18:65","nodeType":"YulFunctionCall","src":"27105:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"27092:12:65","nodeType":"YulIdentifier","src":"27092:12:65"},"nativeSrc":"27092:32:65","nodeType":"YulFunctionCall","src":"27092:32:65"},"variables":[{"name":"offset","nativeSrc":"27082:6:65","nodeType":"YulTypedName","src":"27082:6:65","type":""}]},{"body":{"nativeSrc":"27171:83:65","nodeType":"YulBlock","src":"27171:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27173:77:65","nodeType":"YulIdentifier","src":"27173:77:65"},"nativeSrc":"27173:79:65","nodeType":"YulFunctionCall","src":"27173:79:65"},"nativeSrc":"27173:79:65","nodeType":"YulExpressionStatement","src":"27173:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27143:6:65","nodeType":"YulIdentifier","src":"27143:6:65"},{"kind":"number","nativeSrc":"27151:18:65","nodeType":"YulLiteral","src":"27151:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27140:2:65","nodeType":"YulIdentifier","src":"27140:2:65"},"nativeSrc":"27140:30:65","nodeType":"YulFunctionCall","src":"27140:30:65"},"nativeSrc":"27137:117:65","nodeType":"YulIf","src":"27137:117:65"},{"nativeSrc":"27268:82:65","nodeType":"YulAssignment","src":"27268:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27322:9:65","nodeType":"YulIdentifier","src":"27322:9:65"},{"name":"offset","nativeSrc":"27333:6:65","nodeType":"YulIdentifier","src":"27333:6:65"}],"functionName":{"name":"add","nativeSrc":"27318:3:65","nodeType":"YulIdentifier","src":"27318:3:65"},"nativeSrc":"27318:22:65","nodeType":"YulFunctionCall","src":"27318:22:65"},{"name":"dataEnd","nativeSrc":"27342:7:65","nodeType":"YulIdentifier","src":"27342:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"27286:31:65","nodeType":"YulIdentifier","src":"27286:31:65"},"nativeSrc":"27286:64:65","nodeType":"YulFunctionCall","src":"27286:64:65"},"variableNames":[{"name":"value1","nativeSrc":"27268:6:65","nodeType":"YulIdentifier","src":"27268:6:65"},{"name":"value2","nativeSrc":"27276:6:65","nodeType":"YulIdentifier","src":"27276:6:65"}]}]},{"nativeSrc":"27370:117:65","nodeType":"YulBlock","src":"27370:117:65","statements":[{"nativeSrc":"27385:16:65","nodeType":"YulVariableDeclaration","src":"27385:16:65","value":{"kind":"number","nativeSrc":"27399:2:65","nodeType":"YulLiteral","src":"27399:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"27389:6:65","nodeType":"YulTypedName","src":"27389:6:65","type":""}]},{"nativeSrc":"27415:62:65","nodeType":"YulAssignment","src":"27415:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27449:9:65","nodeType":"YulIdentifier","src":"27449:9:65"},{"name":"offset","nativeSrc":"27460:6:65","nodeType":"YulIdentifier","src":"27460:6:65"}],"functionName":{"name":"add","nativeSrc":"27445:3:65","nodeType":"YulIdentifier","src":"27445:3:65"},"nativeSrc":"27445:22:65","nodeType":"YulFunctionCall","src":"27445:22:65"},{"name":"dataEnd","nativeSrc":"27469:7:65","nodeType":"YulIdentifier","src":"27469:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"27425:19:65","nodeType":"YulIdentifier","src":"27425:19:65"},"nativeSrc":"27425:52:65","nodeType":"YulFunctionCall","src":"27425:52:65"},"variableNames":[{"name":"value3","nativeSrc":"27415:6:65","nodeType":"YulIdentifier","src":"27415:6:65"}]}]},{"nativeSrc":"27497:118:65","nodeType":"YulBlock","src":"27497:118:65","statements":[{"nativeSrc":"27512:16:65","nodeType":"YulVariableDeclaration","src":"27512:16:65","value":{"kind":"number","nativeSrc":"27526:2:65","nodeType":"YulLiteral","src":"27526:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"27516:6:65","nodeType":"YulTypedName","src":"27516:6:65","type":""}]},{"nativeSrc":"27542:63:65","nodeType":"YulAssignment","src":"27542:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27577:9:65","nodeType":"YulIdentifier","src":"27577:9:65"},{"name":"offset","nativeSrc":"27588:6:65","nodeType":"YulIdentifier","src":"27588:6:65"}],"functionName":{"name":"add","nativeSrc":"27573:3:65","nodeType":"YulIdentifier","src":"27573:3:65"},"nativeSrc":"27573:22:65","nodeType":"YulFunctionCall","src":"27573:22:65"},{"name":"dataEnd","nativeSrc":"27597:7:65","nodeType":"YulIdentifier","src":"27597:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"27552:20:65","nodeType":"YulIdentifier","src":"27552:20:65"},"nativeSrc":"27552:53:65","nodeType":"YulFunctionCall","src":"27552:53:65"},"variableNames":[{"name":"value4","nativeSrc":"27542:6:65","nodeType":"YulIdentifier","src":"27542:6:65"}]}]},{"nativeSrc":"27625:119:65","nodeType":"YulBlock","src":"27625:119:65","statements":[{"nativeSrc":"27640:17:65","nodeType":"YulVariableDeclaration","src":"27640:17:65","value":{"kind":"number","nativeSrc":"27654:3:65","nodeType":"YulLiteral","src":"27654:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"27644:6:65","nodeType":"YulTypedName","src":"27644:6:65","type":""}]},{"nativeSrc":"27671:63:65","nodeType":"YulAssignment","src":"27671:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27706:9:65","nodeType":"YulIdentifier","src":"27706:9:65"},{"name":"offset","nativeSrc":"27717:6:65","nodeType":"YulIdentifier","src":"27717:6:65"}],"functionName":{"name":"add","nativeSrc":"27702:3:65","nodeType":"YulIdentifier","src":"27702:3:65"},"nativeSrc":"27702:22:65","nodeType":"YulFunctionCall","src":"27702:22:65"},{"name":"dataEnd","nativeSrc":"27726:7:65","nodeType":"YulIdentifier","src":"27726:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"27681:20:65","nodeType":"YulIdentifier","src":"27681:20:65"},"nativeSrc":"27681:53:65","nodeType":"YulFunctionCall","src":"27681:53:65"},"variableNames":[{"name":"value5","nativeSrc":"27671:6:65","nodeType":"YulIdentifier","src":"27671:6:65"}]}]},{"nativeSrc":"27754:119:65","nodeType":"YulBlock","src":"27754:119:65","statements":[{"nativeSrc":"27769:17:65","nodeType":"YulVariableDeclaration","src":"27769:17:65","value":{"kind":"number","nativeSrc":"27783:3:65","nodeType":"YulLiteral","src":"27783:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"27773:6:65","nodeType":"YulTypedName","src":"27773:6:65","type":""}]},{"nativeSrc":"27800:63:65","nodeType":"YulAssignment","src":"27800:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27835:9:65","nodeType":"YulIdentifier","src":"27835:9:65"},{"name":"offset","nativeSrc":"27846:6:65","nodeType":"YulIdentifier","src":"27846:6:65"}],"functionName":{"name":"add","nativeSrc":"27831:3:65","nodeType":"YulIdentifier","src":"27831:3:65"},"nativeSrc":"27831:22:65","nodeType":"YulFunctionCall","src":"27831:22:65"},{"name":"dataEnd","nativeSrc":"27855:7:65","nodeType":"YulIdentifier","src":"27855:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"27810:20:65","nodeType":"YulIdentifier","src":"27810:20:65"},"nativeSrc":"27810:53:65","nodeType":"YulFunctionCall","src":"27810:53:65"},"variableNames":[{"name":"value6","nativeSrc":"27800:6:65","nodeType":"YulIdentifier","src":"27800:6:65"}]}]},{"nativeSrc":"27883:298:65","nodeType":"YulBlock","src":"27883:298:65","statements":[{"nativeSrc":"27898:47:65","nodeType":"YulVariableDeclaration","src":"27898:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27929:9:65","nodeType":"YulIdentifier","src":"27929:9:65"},{"kind":"number","nativeSrc":"27940:3:65","nodeType":"YulLiteral","src":"27940:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"27925:3:65","nodeType":"YulIdentifier","src":"27925:3:65"},"nativeSrc":"27925:19:65","nodeType":"YulFunctionCall","src":"27925:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"27912:12:65","nodeType":"YulIdentifier","src":"27912:12:65"},"nativeSrc":"27912:33:65","nodeType":"YulFunctionCall","src":"27912:33:65"},"variables":[{"name":"offset","nativeSrc":"27902:6:65","nodeType":"YulTypedName","src":"27902:6:65","type":""}]},{"body":{"nativeSrc":"27992:83:65","nodeType":"YulBlock","src":"27992:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27994:77:65","nodeType":"YulIdentifier","src":"27994:77:65"},"nativeSrc":"27994:79:65","nodeType":"YulFunctionCall","src":"27994:79:65"},"nativeSrc":"27994:79:65","nodeType":"YulExpressionStatement","src":"27994:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27964:6:65","nodeType":"YulIdentifier","src":"27964:6:65"},{"kind":"number","nativeSrc":"27972:18:65","nodeType":"YulLiteral","src":"27972:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27961:2:65","nodeType":"YulIdentifier","src":"27961:2:65"},"nativeSrc":"27961:30:65","nodeType":"YulFunctionCall","src":"27961:30:65"},"nativeSrc":"27958:117:65","nodeType":"YulIf","src":"27958:117:65"},{"nativeSrc":"28089:82:65","nodeType":"YulAssignment","src":"28089:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28143:9:65","nodeType":"YulIdentifier","src":"28143:9:65"},{"name":"offset","nativeSrc":"28154:6:65","nodeType":"YulIdentifier","src":"28154:6:65"}],"functionName":{"name":"add","nativeSrc":"28139:3:65","nodeType":"YulIdentifier","src":"28139:3:65"},"nativeSrc":"28139:22:65","nodeType":"YulFunctionCall","src":"28139:22:65"},{"name":"dataEnd","nativeSrc":"28163:7:65","nodeType":"YulIdentifier","src":"28163:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"28107:31:65","nodeType":"YulIdentifier","src":"28107:31:65"},"nativeSrc":"28107:64:65","nodeType":"YulFunctionCall","src":"28107:64:65"},"variableNames":[{"name":"value7","nativeSrc":"28089:6:65","nodeType":"YulIdentifier","src":"28089:6:65"},{"name":"value8","nativeSrc":"28097:6:65","nodeType":"YulIdentifier","src":"28097:6:65"}]}]},{"nativeSrc":"28191:119:65","nodeType":"YulBlock","src":"28191:119:65","statements":[{"nativeSrc":"28206:17:65","nodeType":"YulVariableDeclaration","src":"28206:17:65","value":{"kind":"number","nativeSrc":"28220:3:65","nodeType":"YulLiteral","src":"28220:3:65","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"28210:6:65","nodeType":"YulTypedName","src":"28210:6:65","type":""}]},{"nativeSrc":"28237:63:65","nodeType":"YulAssignment","src":"28237:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28272:9:65","nodeType":"YulIdentifier","src":"28272:9:65"},{"name":"offset","nativeSrc":"28283:6:65","nodeType":"YulIdentifier","src":"28283:6:65"}],"functionName":{"name":"add","nativeSrc":"28268:3:65","nodeType":"YulIdentifier","src":"28268:3:65"},"nativeSrc":"28268:22:65","nodeType":"YulFunctionCall","src":"28268:22:65"},{"name":"dataEnd","nativeSrc":"28292:7:65","nodeType":"YulIdentifier","src":"28292:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"28247:20:65","nodeType":"YulIdentifier","src":"28247:20:65"},"nativeSrc":"28247:53:65","nodeType":"YulFunctionCall","src":"28247:53:65"},"variableNames":[{"name":"value9","nativeSrc":"28237:6:65","nodeType":"YulIdentifier","src":"28237:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256","nativeSrc":"26576:1741:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26695:9:65","nodeType":"YulTypedName","src":"26695:9:65","type":""},{"name":"dataEnd","nativeSrc":"26706:7:65","nodeType":"YulTypedName","src":"26706:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26718:6:65","nodeType":"YulTypedName","src":"26718:6:65","type":""},{"name":"value1","nativeSrc":"26726:6:65","nodeType":"YulTypedName","src":"26726:6:65","type":""},{"name":"value2","nativeSrc":"26734:6:65","nodeType":"YulTypedName","src":"26734:6:65","type":""},{"name":"value3","nativeSrc":"26742:6:65","nodeType":"YulTypedName","src":"26742:6:65","type":""},{"name":"value4","nativeSrc":"26750:6:65","nodeType":"YulTypedName","src":"26750:6:65","type":""},{"name":"value5","nativeSrc":"26758:6:65","nodeType":"YulTypedName","src":"26758:6:65","type":""},{"name":"value6","nativeSrc":"26766:6:65","nodeType":"YulTypedName","src":"26766:6:65","type":""},{"name":"value7","nativeSrc":"26774:6:65","nodeType":"YulTypedName","src":"26774:6:65","type":""},{"name":"value8","nativeSrc":"26782:6:65","nodeType":"YulTypedName","src":"26782:6:65","type":""},{"name":"value9","nativeSrc":"26790:6:65","nodeType":"YulTypedName","src":"26790:6:65","type":""}],"src":"26576:1741:65"},{"body":{"nativeSrc":"28438:646:65","nodeType":"YulBlock","src":"28438:646:65","statements":[{"body":{"nativeSrc":"28485:83:65","nodeType":"YulBlock","src":"28485:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"28487:77:65","nodeType":"YulIdentifier","src":"28487:77:65"},"nativeSrc":"28487:79:65","nodeType":"YulFunctionCall","src":"28487:79:65"},"nativeSrc":"28487:79:65","nodeType":"YulExpressionStatement","src":"28487:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28459:7:65","nodeType":"YulIdentifier","src":"28459:7:65"},{"name":"headStart","nativeSrc":"28468:9:65","nodeType":"YulIdentifier","src":"28468:9:65"}],"functionName":{"name":"sub","nativeSrc":"28455:3:65","nodeType":"YulIdentifier","src":"28455:3:65"},"nativeSrc":"28455:23:65","nodeType":"YulFunctionCall","src":"28455:23:65"},{"kind":"number","nativeSrc":"28480:3:65","nodeType":"YulLiteral","src":"28480:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"28451:3:65","nodeType":"YulIdentifier","src":"28451:3:65"},"nativeSrc":"28451:33:65","nodeType":"YulFunctionCall","src":"28451:33:65"},"nativeSrc":"28448:120:65","nodeType":"YulIf","src":"28448:120:65"},{"nativeSrc":"28578:116:65","nodeType":"YulBlock","src":"28578:116:65","statements":[{"nativeSrc":"28593:15:65","nodeType":"YulVariableDeclaration","src":"28593:15:65","value":{"kind":"number","nativeSrc":"28607:1:65","nodeType":"YulLiteral","src":"28607:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"28597:6:65","nodeType":"YulTypedName","src":"28597:6:65","type":""}]},{"nativeSrc":"28622:62:65","nodeType":"YulAssignment","src":"28622:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28656:9:65","nodeType":"YulIdentifier","src":"28656:9:65"},{"name":"offset","nativeSrc":"28667:6:65","nodeType":"YulIdentifier","src":"28667:6:65"}],"functionName":{"name":"add","nativeSrc":"28652:3:65","nodeType":"YulIdentifier","src":"28652:3:65"},"nativeSrc":"28652:22:65","nodeType":"YulFunctionCall","src":"28652:22:65"},{"name":"dataEnd","nativeSrc":"28676:7:65","nodeType":"YulIdentifier","src":"28676:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"28632:19:65","nodeType":"YulIdentifier","src":"28632:19:65"},"nativeSrc":"28632:52:65","nodeType":"YulFunctionCall","src":"28632:52:65"},"variableNames":[{"name":"value0","nativeSrc":"28622:6:65","nodeType":"YulIdentifier","src":"28622:6:65"}]}]},{"nativeSrc":"28704:117:65","nodeType":"YulBlock","src":"28704:117:65","statements":[{"nativeSrc":"28719:16:65","nodeType":"YulVariableDeclaration","src":"28719:16:65","value":{"kind":"number","nativeSrc":"28733:2:65","nodeType":"YulLiteral","src":"28733:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"28723:6:65","nodeType":"YulTypedName","src":"28723:6:65","type":""}]},{"nativeSrc":"28749:62:65","nodeType":"YulAssignment","src":"28749:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28783:9:65","nodeType":"YulIdentifier","src":"28783:9:65"},{"name":"offset","nativeSrc":"28794:6:65","nodeType":"YulIdentifier","src":"28794:6:65"}],"functionName":{"name":"add","nativeSrc":"28779:3:65","nodeType":"YulIdentifier","src":"28779:3:65"},"nativeSrc":"28779:22:65","nodeType":"YulFunctionCall","src":"28779:22:65"},{"name":"dataEnd","nativeSrc":"28803:7:65","nodeType":"YulIdentifier","src":"28803:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"28759:19:65","nodeType":"YulIdentifier","src":"28759:19:65"},"nativeSrc":"28759:52:65","nodeType":"YulFunctionCall","src":"28759:52:65"},"variableNames":[{"name":"value1","nativeSrc":"28749:6:65","nodeType":"YulIdentifier","src":"28749:6:65"}]}]},{"nativeSrc":"28831:118:65","nodeType":"YulBlock","src":"28831:118:65","statements":[{"nativeSrc":"28846:16:65","nodeType":"YulVariableDeclaration","src":"28846:16:65","value":{"kind":"number","nativeSrc":"28860:2:65","nodeType":"YulLiteral","src":"28860:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"28850:6:65","nodeType":"YulTypedName","src":"28850:6:65","type":""}]},{"nativeSrc":"28876:63:65","nodeType":"YulAssignment","src":"28876:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28911:9:65","nodeType":"YulIdentifier","src":"28911:9:65"},{"name":"offset","nativeSrc":"28922:6:65","nodeType":"YulIdentifier","src":"28922:6:65"}],"functionName":{"name":"add","nativeSrc":"28907:3:65","nodeType":"YulIdentifier","src":"28907:3:65"},"nativeSrc":"28907:22:65","nodeType":"YulFunctionCall","src":"28907:22:65"},{"name":"dataEnd","nativeSrc":"28931:7:65","nodeType":"YulIdentifier","src":"28931:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"28886:20:65","nodeType":"YulIdentifier","src":"28886:20:65"},"nativeSrc":"28886:53:65","nodeType":"YulFunctionCall","src":"28886:53:65"},"variableNames":[{"name":"value2","nativeSrc":"28876:6:65","nodeType":"YulIdentifier","src":"28876:6:65"}]}]},{"nativeSrc":"28959:118:65","nodeType":"YulBlock","src":"28959:118:65","statements":[{"nativeSrc":"28974:16:65","nodeType":"YulVariableDeclaration","src":"28974:16:65","value":{"kind":"number","nativeSrc":"28988:2:65","nodeType":"YulLiteral","src":"28988:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"28978:6:65","nodeType":"YulTypedName","src":"28978:6:65","type":""}]},{"nativeSrc":"29004:63:65","nodeType":"YulAssignment","src":"29004:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29039:9:65","nodeType":"YulIdentifier","src":"29039:9:65"},{"name":"offset","nativeSrc":"29050:6:65","nodeType":"YulIdentifier","src":"29050:6:65"}],"functionName":{"name":"add","nativeSrc":"29035:3:65","nodeType":"YulIdentifier","src":"29035:3:65"},"nativeSrc":"29035:22:65","nodeType":"YulFunctionCall","src":"29035:22:65"},{"name":"dataEnd","nativeSrc":"29059:7:65","nodeType":"YulIdentifier","src":"29059:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"29014:20:65","nodeType":"YulIdentifier","src":"29014:20:65"},"nativeSrc":"29014:53:65","nodeType":"YulFunctionCall","src":"29014:53:65"},"variableNames":[{"name":"value3","nativeSrc":"29004:6:65","nodeType":"YulIdentifier","src":"29004:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"28323:761:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28384:9:65","nodeType":"YulTypedName","src":"28384:9:65","type":""},{"name":"dataEnd","nativeSrc":"28395:7:65","nodeType":"YulTypedName","src":"28395:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28407:6:65","nodeType":"YulTypedName","src":"28407:6:65","type":""},{"name":"value1","nativeSrc":"28415:6:65","nodeType":"YulTypedName","src":"28415:6:65","type":""},{"name":"value2","nativeSrc":"28423:6:65","nodeType":"YulTypedName","src":"28423:6:65","type":""},{"name":"value3","nativeSrc":"28431:6:65","nodeType":"YulTypedName","src":"28431:6:65","type":""}],"src":"28323:761:65"},{"body":{"nativeSrc":"29186:73:65","nodeType":"YulBlock","src":"29186:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"29203:3:65","nodeType":"YulIdentifier","src":"29203:3:65"},{"name":"length","nativeSrc":"29208:6:65","nodeType":"YulIdentifier","src":"29208:6:65"}],"functionName":{"name":"mstore","nativeSrc":"29196:6:65","nodeType":"YulIdentifier","src":"29196:6:65"},"nativeSrc":"29196:19:65","nodeType":"YulFunctionCall","src":"29196:19:65"},"nativeSrc":"29196:19:65","nodeType":"YulExpressionStatement","src":"29196:19:65"},{"nativeSrc":"29224:29:65","nodeType":"YulAssignment","src":"29224:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"29243:3:65","nodeType":"YulIdentifier","src":"29243:3:65"},{"kind":"number","nativeSrc":"29248:4:65","nodeType":"YulLiteral","src":"29248:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29239:3:65","nodeType":"YulIdentifier","src":"29239:3:65"},"nativeSrc":"29239:14:65","nodeType":"YulFunctionCall","src":"29239:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"29224:11:65","nodeType":"YulIdentifier","src":"29224:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29090:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29158:3:65","nodeType":"YulTypedName","src":"29158:3:65","type":""},{"name":"length","nativeSrc":"29163:6:65","nodeType":"YulTypedName","src":"29163:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"29174:11:65","nodeType":"YulTypedName","src":"29174:11:65","type":""}],"src":"29090:169:65"},{"body":{"nativeSrc":"29371:74:65","nodeType":"YulBlock","src":"29371:74:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29393:6:65","nodeType":"YulIdentifier","src":"29393:6:65"},{"kind":"number","nativeSrc":"29401:1:65","nodeType":"YulLiteral","src":"29401:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29389:3:65","nodeType":"YulIdentifier","src":"29389:3:65"},"nativeSrc":"29389:14:65","nodeType":"YulFunctionCall","src":"29389:14:65"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nativeSrc":"29405:32:65","nodeType":"YulLiteral","src":"29405:32:65","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nativeSrc":"29382:6:65","nodeType":"YulIdentifier","src":"29382:6:65"},"nativeSrc":"29382:56:65","nodeType":"YulFunctionCall","src":"29382:56:65"},"nativeSrc":"29382:56:65","nodeType":"YulExpressionStatement","src":"29382:56:65"}]},"name":"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","nativeSrc":"29265:180:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29363:6:65","nodeType":"YulTypedName","src":"29363:6:65","type":""}],"src":"29265:180:65"},{"body":{"nativeSrc":"29597:220:65","nodeType":"YulBlock","src":"29597:220:65","statements":[{"nativeSrc":"29607:74:65","nodeType":"YulAssignment","src":"29607:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"29673:3:65","nodeType":"YulIdentifier","src":"29673:3:65"},{"kind":"number","nativeSrc":"29678:2:65","nodeType":"YulLiteral","src":"29678:2:65","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29614:58:65","nodeType":"YulIdentifier","src":"29614:58:65"},"nativeSrc":"29614:67:65","nodeType":"YulFunctionCall","src":"29614:67:65"},"variableNames":[{"name":"pos","nativeSrc":"29607:3:65","nodeType":"YulIdentifier","src":"29607:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29779:3:65","nodeType":"YulIdentifier","src":"29779:3:65"}],"functionName":{"name":"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","nativeSrc":"29690:88:65","nodeType":"YulIdentifier","src":"29690:88:65"},"nativeSrc":"29690:93:65","nodeType":"YulFunctionCall","src":"29690:93:65"},"nativeSrc":"29690:93:65","nodeType":"YulExpressionStatement","src":"29690:93:65"},{"nativeSrc":"29792:19:65","nodeType":"YulAssignment","src":"29792:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"29803:3:65","nodeType":"YulIdentifier","src":"29803:3:65"},{"kind":"number","nativeSrc":"29808:2:65","nodeType":"YulLiteral","src":"29808:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29799:3:65","nodeType":"YulIdentifier","src":"29799:3:65"},"nativeSrc":"29799:12:65","nodeType":"YulFunctionCall","src":"29799:12:65"},"variableNames":[{"name":"end","nativeSrc":"29792:3:65","nodeType":"YulIdentifier","src":"29792:3:65"}]}]},"name":"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack","nativeSrc":"29451:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29585:3:65","nodeType":"YulTypedName","src":"29585:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"29593:3:65","nodeType":"YulTypedName","src":"29593:3:65","type":""}],"src":"29451:366:65"},{"body":{"nativeSrc":"29994:248:65","nodeType":"YulBlock","src":"29994:248:65","statements":[{"nativeSrc":"30004:26:65","nodeType":"YulAssignment","src":"30004:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"30016:9:65","nodeType":"YulIdentifier","src":"30016:9:65"},{"kind":"number","nativeSrc":"30027:2:65","nodeType":"YulLiteral","src":"30027:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30012:3:65","nodeType":"YulIdentifier","src":"30012:3:65"},"nativeSrc":"30012:18:65","nodeType":"YulFunctionCall","src":"30012:18:65"},"variableNames":[{"name":"tail","nativeSrc":"30004:4:65","nodeType":"YulIdentifier","src":"30004:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30051:9:65","nodeType":"YulIdentifier","src":"30051:9:65"},{"kind":"number","nativeSrc":"30062:1:65","nodeType":"YulLiteral","src":"30062:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30047:3:65","nodeType":"YulIdentifier","src":"30047:3:65"},"nativeSrc":"30047:17:65","nodeType":"YulFunctionCall","src":"30047:17:65"},{"arguments":[{"name":"tail","nativeSrc":"30070:4:65","nodeType":"YulIdentifier","src":"30070:4:65"},{"name":"headStart","nativeSrc":"30076:9:65","nodeType":"YulIdentifier","src":"30076:9:65"}],"functionName":{"name":"sub","nativeSrc":"30066:3:65","nodeType":"YulIdentifier","src":"30066:3:65"},"nativeSrc":"30066:20:65","nodeType":"YulFunctionCall","src":"30066:20:65"}],"functionName":{"name":"mstore","nativeSrc":"30040:6:65","nodeType":"YulIdentifier","src":"30040:6:65"},"nativeSrc":"30040:47:65","nodeType":"YulFunctionCall","src":"30040:47:65"},"nativeSrc":"30040:47:65","nodeType":"YulExpressionStatement","src":"30040:47:65"},{"nativeSrc":"30096:139:65","nodeType":"YulAssignment","src":"30096:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"30230:4:65","nodeType":"YulIdentifier","src":"30230:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack","nativeSrc":"30104:124:65","nodeType":"YulIdentifier","src":"30104:124:65"},"nativeSrc":"30104:131:65","nodeType":"YulFunctionCall","src":"30104:131:65"},"variableNames":[{"name":"tail","nativeSrc":"30096:4:65","nodeType":"YulIdentifier","src":"30096:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"29823:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29974:9:65","nodeType":"YulTypedName","src":"29974:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29989:4:65","nodeType":"YulTypedName","src":"29989:4:65","type":""}],"src":"29823:419:65"},{"body":{"nativeSrc":"30276:152:65","nodeType":"YulBlock","src":"30276:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30293:1:65","nodeType":"YulLiteral","src":"30293:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"30296:77:65","nodeType":"YulLiteral","src":"30296:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"30286:6:65","nodeType":"YulIdentifier","src":"30286:6:65"},"nativeSrc":"30286:88:65","nodeType":"YulFunctionCall","src":"30286:88:65"},"nativeSrc":"30286:88:65","nodeType":"YulExpressionStatement","src":"30286:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30390:1:65","nodeType":"YulLiteral","src":"30390:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"30393:4:65","nodeType":"YulLiteral","src":"30393:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"30383:6:65","nodeType":"YulIdentifier","src":"30383:6:65"},"nativeSrc":"30383:15:65","nodeType":"YulFunctionCall","src":"30383:15:65"},"nativeSrc":"30383:15:65","nodeType":"YulExpressionStatement","src":"30383:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30414:1:65","nodeType":"YulLiteral","src":"30414:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"30417:4:65","nodeType":"YulLiteral","src":"30417:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30407:6:65","nodeType":"YulIdentifier","src":"30407:6:65"},"nativeSrc":"30407:15:65","nodeType":"YulFunctionCall","src":"30407:15:65"},"nativeSrc":"30407:15:65","nodeType":"YulExpressionStatement","src":"30407:15:65"}]},"name":"panic_error_0x22","nativeSrc":"30248:180:65","nodeType":"YulFunctionDefinition","src":"30248:180:65"},{"body":{"nativeSrc":"30485:269:65","nodeType":"YulBlock","src":"30485:269:65","statements":[{"nativeSrc":"30495:22:65","nodeType":"YulAssignment","src":"30495:22:65","value":{"arguments":[{"name":"data","nativeSrc":"30509:4:65","nodeType":"YulIdentifier","src":"30509:4:65"},{"kind":"number","nativeSrc":"30515:1:65","nodeType":"YulLiteral","src":"30515:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"30505:3:65","nodeType":"YulIdentifier","src":"30505:3:65"},"nativeSrc":"30505:12:65","nodeType":"YulFunctionCall","src":"30505:12:65"},"variableNames":[{"name":"length","nativeSrc":"30495:6:65","nodeType":"YulIdentifier","src":"30495:6:65"}]},{"nativeSrc":"30526:38:65","nodeType":"YulVariableDeclaration","src":"30526:38:65","value":{"arguments":[{"name":"data","nativeSrc":"30556:4:65","nodeType":"YulIdentifier","src":"30556:4:65"},{"kind":"number","nativeSrc":"30562:1:65","nodeType":"YulLiteral","src":"30562:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"30552:3:65","nodeType":"YulIdentifier","src":"30552:3:65"},"nativeSrc":"30552:12:65","nodeType":"YulFunctionCall","src":"30552:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"30530:18:65","nodeType":"YulTypedName","src":"30530:18:65","type":""}]},{"body":{"nativeSrc":"30603:51:65","nodeType":"YulBlock","src":"30603:51:65","statements":[{"nativeSrc":"30617:27:65","nodeType":"YulAssignment","src":"30617:27:65","value":{"arguments":[{"name":"length","nativeSrc":"30631:6:65","nodeType":"YulIdentifier","src":"30631:6:65"},{"kind":"number","nativeSrc":"30639:4:65","nodeType":"YulLiteral","src":"30639:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"30627:3:65","nodeType":"YulIdentifier","src":"30627:3:65"},"nativeSrc":"30627:17:65","nodeType":"YulFunctionCall","src":"30627:17:65"},"variableNames":[{"name":"length","nativeSrc":"30617:6:65","nodeType":"YulIdentifier","src":"30617:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"30583:18:65","nodeType":"YulIdentifier","src":"30583:18:65"}],"functionName":{"name":"iszero","nativeSrc":"30576:6:65","nodeType":"YulIdentifier","src":"30576:6:65"},"nativeSrc":"30576:26:65","nodeType":"YulFunctionCall","src":"30576:26:65"},"nativeSrc":"30573:81:65","nodeType":"YulIf","src":"30573:81:65"},{"body":{"nativeSrc":"30706:42:65","nodeType":"YulBlock","src":"30706:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"30720:16:65","nodeType":"YulIdentifier","src":"30720:16:65"},"nativeSrc":"30720:18:65","nodeType":"YulFunctionCall","src":"30720:18:65"},"nativeSrc":"30720:18:65","nodeType":"YulExpressionStatement","src":"30720:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"30670:18:65","nodeType":"YulIdentifier","src":"30670:18:65"},{"arguments":[{"name":"length","nativeSrc":"30693:6:65","nodeType":"YulIdentifier","src":"30693:6:65"},{"kind":"number","nativeSrc":"30701:2:65","nodeType":"YulLiteral","src":"30701:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"30690:2:65","nodeType":"YulIdentifier","src":"30690:2:65"},"nativeSrc":"30690:14:65","nodeType":"YulFunctionCall","src":"30690:14:65"}],"functionName":{"name":"eq","nativeSrc":"30667:2:65","nodeType":"YulIdentifier","src":"30667:2:65"},"nativeSrc":"30667:38:65","nodeType":"YulFunctionCall","src":"30667:38:65"},"nativeSrc":"30664:84:65","nodeType":"YulIf","src":"30664:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"30434:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"30469:4:65","nodeType":"YulTypedName","src":"30469:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"30478:6:65","nodeType":"YulTypedName","src":"30478:6:65","type":""}],"src":"30434:320:65"},{"body":{"nativeSrc":"30873:34:65","nodeType":"YulBlock","src":"30873:34:65","statements":[{"nativeSrc":"30883:18:65","nodeType":"YulAssignment","src":"30883:18:65","value":{"name":"pos","nativeSrc":"30898:3:65","nodeType":"YulIdentifier","src":"30898:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"30883:11:65","nodeType":"YulIdentifier","src":"30883:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30760:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30845:3:65","nodeType":"YulTypedName","src":"30845:3:65","type":""},{"name":"length","nativeSrc":"30850:6:65","nodeType":"YulTypedName","src":"30850:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"30861:11:65","nodeType":"YulTypedName","src":"30861:11:65","type":""}],"src":"30760:147:65"},{"body":{"nativeSrc":"31053:209:65","nodeType":"YulBlock","src":"31053:209:65","statements":[{"nativeSrc":"31063:95:65","nodeType":"YulAssignment","src":"31063:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"31146:3:65","nodeType":"YulIdentifier","src":"31146:3:65"},{"name":"length","nativeSrc":"31151:6:65","nodeType":"YulIdentifier","src":"31151:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31070:75:65","nodeType":"YulIdentifier","src":"31070:75:65"},"nativeSrc":"31070:88:65","nodeType":"YulFunctionCall","src":"31070:88:65"},"variableNames":[{"name":"pos","nativeSrc":"31063:3:65","nodeType":"YulIdentifier","src":"31063:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"31205:5:65","nodeType":"YulIdentifier","src":"31205:5:65"},{"name":"pos","nativeSrc":"31212:3:65","nodeType":"YulIdentifier","src":"31212:3:65"},{"name":"length","nativeSrc":"31217:6:65","nodeType":"YulIdentifier","src":"31217:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"31168:36:65","nodeType":"YulIdentifier","src":"31168:36:65"},"nativeSrc":"31168:56:65","nodeType":"YulFunctionCall","src":"31168:56:65"},"nativeSrc":"31168:56:65","nodeType":"YulExpressionStatement","src":"31168:56:65"},{"nativeSrc":"31233:23:65","nodeType":"YulAssignment","src":"31233:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"31244:3:65","nodeType":"YulIdentifier","src":"31244:3:65"},{"name":"length","nativeSrc":"31249:6:65","nodeType":"YulIdentifier","src":"31249:6:65"}],"functionName":{"name":"add","nativeSrc":"31240:3:65","nodeType":"YulIdentifier","src":"31240:3:65"},"nativeSrc":"31240:16:65","nodeType":"YulFunctionCall","src":"31240:16:65"},"variableNames":[{"name":"end","nativeSrc":"31233:3:65","nodeType":"YulIdentifier","src":"31233:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30935:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"31026:5:65","nodeType":"YulTypedName","src":"31026:5:65","type":""},{"name":"length","nativeSrc":"31033:6:65","nodeType":"YulTypedName","src":"31033:6:65","type":""},{"name":"pos","nativeSrc":"31041:3:65","nodeType":"YulTypedName","src":"31041:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31049:3:65","nodeType":"YulTypedName","src":"31049:3:65","type":""}],"src":"30935:327:65"},{"body":{"nativeSrc":"31412:147:65","nodeType":"YulBlock","src":"31412:147:65","statements":[{"nativeSrc":"31423:110:65","nodeType":"YulAssignment","src":"31423:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"31512:6:65","nodeType":"YulIdentifier","src":"31512:6:65"},{"name":"value1","nativeSrc":"31520:6:65","nodeType":"YulIdentifier","src":"31520:6:65"},{"name":"pos","nativeSrc":"31529:3:65","nodeType":"YulIdentifier","src":"31529:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31430:81:65","nodeType":"YulIdentifier","src":"31430:81:65"},"nativeSrc":"31430:103:65","nodeType":"YulFunctionCall","src":"31430:103:65"},"variableNames":[{"name":"pos","nativeSrc":"31423:3:65","nodeType":"YulIdentifier","src":"31423:3:65"}]},{"nativeSrc":"31543:10:65","nodeType":"YulAssignment","src":"31543:10:65","value":{"name":"pos","nativeSrc":"31550:3:65","nodeType":"YulIdentifier","src":"31550:3:65"},"variableNames":[{"name":"end","nativeSrc":"31543:3:65","nodeType":"YulIdentifier","src":"31543:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31268:291:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31383:3:65","nodeType":"YulTypedName","src":"31383:3:65","type":""},{"name":"value1","nativeSrc":"31389:6:65","nodeType":"YulTypedName","src":"31389:6:65","type":""},{"name":"value0","nativeSrc":"31397:6:65","nodeType":"YulTypedName","src":"31397:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31408:3:65","nodeType":"YulTypedName","src":"31408:3:65","type":""}],"src":"31268:291:65"},{"body":{"nativeSrc":"31671:119:65","nodeType":"YulBlock","src":"31671:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31693:6:65","nodeType":"YulIdentifier","src":"31693:6:65"},{"kind":"number","nativeSrc":"31701:1:65","nodeType":"YulLiteral","src":"31701:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31689:3:65","nodeType":"YulIdentifier","src":"31689:3:65"},"nativeSrc":"31689:14:65","nodeType":"YulFunctionCall","src":"31689:14:65"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nativeSrc":"31705:34:65","nodeType":"YulLiteral","src":"31705:34:65","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nativeSrc":"31682:6:65","nodeType":"YulIdentifier","src":"31682:6:65"},"nativeSrc":"31682:58:65","nodeType":"YulFunctionCall","src":"31682:58:65"},"nativeSrc":"31682:58:65","nodeType":"YulExpressionStatement","src":"31682:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"31761:6:65","nodeType":"YulIdentifier","src":"31761:6:65"},{"kind":"number","nativeSrc":"31769:2:65","nodeType":"YulLiteral","src":"31769:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31757:3:65","nodeType":"YulIdentifier","src":"31757:3:65"},"nativeSrc":"31757:15:65","nodeType":"YulFunctionCall","src":"31757:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"31774:8:65","nodeType":"YulLiteral","src":"31774:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"31750:6:65","nodeType":"YulIdentifier","src":"31750:6:65"},"nativeSrc":"31750:33:65","nodeType":"YulFunctionCall","src":"31750:33:65"},"nativeSrc":"31750:33:65","nodeType":"YulExpressionStatement","src":"31750:33:65"}]},"name":"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","nativeSrc":"31565:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"31663:6:65","nodeType":"YulTypedName","src":"31663:6:65","type":""}],"src":"31565:225:65"},{"body":{"nativeSrc":"31942:220:65","nodeType":"YulBlock","src":"31942:220:65","statements":[{"nativeSrc":"31952:74:65","nodeType":"YulAssignment","src":"31952:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"32018:3:65","nodeType":"YulIdentifier","src":"32018:3:65"},{"kind":"number","nativeSrc":"32023:2:65","nodeType":"YulLiteral","src":"32023:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"31959:58:65","nodeType":"YulIdentifier","src":"31959:58:65"},"nativeSrc":"31959:67:65","nodeType":"YulFunctionCall","src":"31959:67:65"},"variableNames":[{"name":"pos","nativeSrc":"31952:3:65","nodeType":"YulIdentifier","src":"31952:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"32124:3:65","nodeType":"YulIdentifier","src":"32124:3:65"}],"functionName":{"name":"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","nativeSrc":"32035:88:65","nodeType":"YulIdentifier","src":"32035:88:65"},"nativeSrc":"32035:93:65","nodeType":"YulFunctionCall","src":"32035:93:65"},"nativeSrc":"32035:93:65","nodeType":"YulExpressionStatement","src":"32035:93:65"},{"nativeSrc":"32137:19:65","nodeType":"YulAssignment","src":"32137:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"32148:3:65","nodeType":"YulIdentifier","src":"32148:3:65"},{"kind":"number","nativeSrc":"32153:2:65","nodeType":"YulLiteral","src":"32153:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32144:3:65","nodeType":"YulIdentifier","src":"32144:3:65"},"nativeSrc":"32144:12:65","nodeType":"YulFunctionCall","src":"32144:12:65"},"variableNames":[{"name":"end","nativeSrc":"32137:3:65","nodeType":"YulIdentifier","src":"32137:3:65"}]}]},"name":"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack","nativeSrc":"31796:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31930:3:65","nodeType":"YulTypedName","src":"31930:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31938:3:65","nodeType":"YulTypedName","src":"31938:3:65","type":""}],"src":"31796:366:65"},{"body":{"nativeSrc":"32339:248:65","nodeType":"YulBlock","src":"32339:248:65","statements":[{"nativeSrc":"32349:26:65","nodeType":"YulAssignment","src":"32349:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"32361:9:65","nodeType":"YulIdentifier","src":"32361:9:65"},{"kind":"number","nativeSrc":"32372:2:65","nodeType":"YulLiteral","src":"32372:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32357:3:65","nodeType":"YulIdentifier","src":"32357:3:65"},"nativeSrc":"32357:18:65","nodeType":"YulFunctionCall","src":"32357:18:65"},"variableNames":[{"name":"tail","nativeSrc":"32349:4:65","nodeType":"YulIdentifier","src":"32349:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32396:9:65","nodeType":"YulIdentifier","src":"32396:9:65"},{"kind":"number","nativeSrc":"32407:1:65","nodeType":"YulLiteral","src":"32407:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32392:3:65","nodeType":"YulIdentifier","src":"32392:3:65"},"nativeSrc":"32392:17:65","nodeType":"YulFunctionCall","src":"32392:17:65"},{"arguments":[{"name":"tail","nativeSrc":"32415:4:65","nodeType":"YulIdentifier","src":"32415:4:65"},{"name":"headStart","nativeSrc":"32421:9:65","nodeType":"YulIdentifier","src":"32421:9:65"}],"functionName":{"name":"sub","nativeSrc":"32411:3:65","nodeType":"YulIdentifier","src":"32411:3:65"},"nativeSrc":"32411:20:65","nodeType":"YulFunctionCall","src":"32411:20:65"}],"functionName":{"name":"mstore","nativeSrc":"32385:6:65","nodeType":"YulIdentifier","src":"32385:6:65"},"nativeSrc":"32385:47:65","nodeType":"YulFunctionCall","src":"32385:47:65"},"nativeSrc":"32385:47:65","nodeType":"YulExpressionStatement","src":"32385:47:65"},{"nativeSrc":"32441:139:65","nodeType":"YulAssignment","src":"32441:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"32575:4:65","nodeType":"YulIdentifier","src":"32575:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack","nativeSrc":"32449:124:65","nodeType":"YulIdentifier","src":"32449:124:65"},"nativeSrc":"32449:131:65","nodeType":"YulFunctionCall","src":"32449:131:65"},"variableNames":[{"name":"tail","nativeSrc":"32441:4:65","nodeType":"YulIdentifier","src":"32441:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32168:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32319:9:65","nodeType":"YulTypedName","src":"32319:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32334:4:65","nodeType":"YulTypedName","src":"32334:4:65","type":""}],"src":"32168:419:65"},{"body":{"nativeSrc":"32656:52:65","nodeType":"YulBlock","src":"32656:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"32673:3:65","nodeType":"YulIdentifier","src":"32673:3:65"},{"arguments":[{"name":"value","nativeSrc":"32695:5:65","nodeType":"YulIdentifier","src":"32695:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"32678:16:65","nodeType":"YulIdentifier","src":"32678:16:65"},"nativeSrc":"32678:23:65","nodeType":"YulFunctionCall","src":"32678:23:65"}],"functionName":{"name":"mstore","nativeSrc":"32666:6:65","nodeType":"YulIdentifier","src":"32666:6:65"},"nativeSrc":"32666:36:65","nodeType":"YulFunctionCall","src":"32666:36:65"},"nativeSrc":"32666:36:65","nodeType":"YulExpressionStatement","src":"32666:36:65"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"32593:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32644:5:65","nodeType":"YulTypedName","src":"32644:5:65","type":""},{"name":"pos","nativeSrc":"32651:3:65","nodeType":"YulTypedName","src":"32651:3:65","type":""}],"src":"32593:115:65"},{"body":{"nativeSrc":"32810:122:65","nodeType":"YulBlock","src":"32810:122:65","statements":[{"nativeSrc":"32820:26:65","nodeType":"YulAssignment","src":"32820:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"32832:9:65","nodeType":"YulIdentifier","src":"32832:9:65"},{"kind":"number","nativeSrc":"32843:2:65","nodeType":"YulLiteral","src":"32843:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32828:3:65","nodeType":"YulIdentifier","src":"32828:3:65"},"nativeSrc":"32828:18:65","nodeType":"YulFunctionCall","src":"32828:18:65"},"variableNames":[{"name":"tail","nativeSrc":"32820:4:65","nodeType":"YulIdentifier","src":"32820:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"32898:6:65","nodeType":"YulIdentifier","src":"32898:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"32911:9:65","nodeType":"YulIdentifier","src":"32911:9:65"},{"kind":"number","nativeSrc":"32922:1:65","nodeType":"YulLiteral","src":"32922:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32907:3:65","nodeType":"YulIdentifier","src":"32907:3:65"},"nativeSrc":"32907:17:65","nodeType":"YulFunctionCall","src":"32907:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"32856:41:65","nodeType":"YulIdentifier","src":"32856:41:65"},"nativeSrc":"32856:69:65","nodeType":"YulFunctionCall","src":"32856:69:65"},"nativeSrc":"32856:69:65","nodeType":"YulExpressionStatement","src":"32856:69:65"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"32714:218:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32782:9:65","nodeType":"YulTypedName","src":"32782:9:65","type":""},{"name":"value0","nativeSrc":"32794:6:65","nodeType":"YulTypedName","src":"32794:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32805:4:65","nodeType":"YulTypedName","src":"32805:4:65","type":""}],"src":"32714:218:65"},{"body":{"nativeSrc":"33001:80:65","nodeType":"YulBlock","src":"33001:80:65","statements":[{"nativeSrc":"33011:22:65","nodeType":"YulAssignment","src":"33011:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"33026:6:65","nodeType":"YulIdentifier","src":"33026:6:65"}],"functionName":{"name":"mload","nativeSrc":"33020:5:65","nodeType":"YulIdentifier","src":"33020:5:65"},"nativeSrc":"33020:13:65","nodeType":"YulFunctionCall","src":"33020:13:65"},"variableNames":[{"name":"value","nativeSrc":"33011:5:65","nodeType":"YulIdentifier","src":"33011:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33069:5:65","nodeType":"YulIdentifier","src":"33069:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"33042:26:65","nodeType":"YulIdentifier","src":"33042:26:65"},"nativeSrc":"33042:33:65","nodeType":"YulFunctionCall","src":"33042:33:65"},"nativeSrc":"33042:33:65","nodeType":"YulExpressionStatement","src":"33042:33:65"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"32938:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32979:6:65","nodeType":"YulTypedName","src":"32979:6:65","type":""},{"name":"end","nativeSrc":"32987:3:65","nodeType":"YulTypedName","src":"32987:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"32995:5:65","nodeType":"YulTypedName","src":"32995:5:65","type":""}],"src":"32938:143:65"},{"body":{"nativeSrc":"33164:274:65","nodeType":"YulBlock","src":"33164:274:65","statements":[{"body":{"nativeSrc":"33210:83:65","nodeType":"YulBlock","src":"33210:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"33212:77:65","nodeType":"YulIdentifier","src":"33212:77:65"},"nativeSrc":"33212:79:65","nodeType":"YulFunctionCall","src":"33212:79:65"},"nativeSrc":"33212:79:65","nodeType":"YulExpressionStatement","src":"33212:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33185:7:65","nodeType":"YulIdentifier","src":"33185:7:65"},{"name":"headStart","nativeSrc":"33194:9:65","nodeType":"YulIdentifier","src":"33194:9:65"}],"functionName":{"name":"sub","nativeSrc":"33181:3:65","nodeType":"YulIdentifier","src":"33181:3:65"},"nativeSrc":"33181:23:65","nodeType":"YulFunctionCall","src":"33181:23:65"},{"kind":"number","nativeSrc":"33206:2:65","nodeType":"YulLiteral","src":"33206:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33177:3:65","nodeType":"YulIdentifier","src":"33177:3:65"},"nativeSrc":"33177:32:65","nodeType":"YulFunctionCall","src":"33177:32:65"},"nativeSrc":"33174:119:65","nodeType":"YulIf","src":"33174:119:65"},{"nativeSrc":"33303:128:65","nodeType":"YulBlock","src":"33303:128:65","statements":[{"nativeSrc":"33318:15:65","nodeType":"YulVariableDeclaration","src":"33318:15:65","value":{"kind":"number","nativeSrc":"33332:1:65","nodeType":"YulLiteral","src":"33332:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"33322:6:65","nodeType":"YulTypedName","src":"33322:6:65","type":""}]},{"nativeSrc":"33347:74:65","nodeType":"YulAssignment","src":"33347:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33393:9:65","nodeType":"YulIdentifier","src":"33393:9:65"},{"name":"offset","nativeSrc":"33404:6:65","nodeType":"YulIdentifier","src":"33404:6:65"}],"functionName":{"name":"add","nativeSrc":"33389:3:65","nodeType":"YulIdentifier","src":"33389:3:65"},"nativeSrc":"33389:22:65","nodeType":"YulFunctionCall","src":"33389:22:65"},{"name":"dataEnd","nativeSrc":"33413:7:65","nodeType":"YulIdentifier","src":"33413:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"33357:31:65","nodeType":"YulIdentifier","src":"33357:31:65"},"nativeSrc":"33357:64:65","nodeType":"YulFunctionCall","src":"33357:64:65"},"variableNames":[{"name":"value0","nativeSrc":"33347:6:65","nodeType":"YulIdentifier","src":"33347:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"33087:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33134:9:65","nodeType":"YulTypedName","src":"33134:9:65","type":""},{"name":"dataEnd","nativeSrc":"33145:7:65","nodeType":"YulTypedName","src":"33145:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33157:6:65","nodeType":"YulTypedName","src":"33157:6:65","type":""}],"src":"33087:351:65"},{"body":{"nativeSrc":"33472:152:65","nodeType":"YulBlock","src":"33472:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33489:1:65","nodeType":"YulLiteral","src":"33489:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"33492:77:65","nodeType":"YulLiteral","src":"33492:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"33482:6:65","nodeType":"YulIdentifier","src":"33482:6:65"},"nativeSrc":"33482:88:65","nodeType":"YulFunctionCall","src":"33482:88:65"},"nativeSrc":"33482:88:65","nodeType":"YulExpressionStatement","src":"33482:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33586:1:65","nodeType":"YulLiteral","src":"33586:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"33589:4:65","nodeType":"YulLiteral","src":"33589:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"33579:6:65","nodeType":"YulIdentifier","src":"33579:6:65"},"nativeSrc":"33579:15:65","nodeType":"YulFunctionCall","src":"33579:15:65"},"nativeSrc":"33579:15:65","nodeType":"YulExpressionStatement","src":"33579:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33610:1:65","nodeType":"YulLiteral","src":"33610:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"33613:4:65","nodeType":"YulLiteral","src":"33613:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"33603:6:65","nodeType":"YulIdentifier","src":"33603:6:65"},"nativeSrc":"33603:15:65","nodeType":"YulFunctionCall","src":"33603:15:65"},"nativeSrc":"33603:15:65","nodeType":"YulExpressionStatement","src":"33603:15:65"}]},"name":"panic_error_0x11","nativeSrc":"33444:180:65","nodeType":"YulFunctionDefinition","src":"33444:180:65"},{"body":{"nativeSrc":"33675:149:65","nodeType":"YulBlock","src":"33675:149:65","statements":[{"nativeSrc":"33685:25:65","nodeType":"YulAssignment","src":"33685:25:65","value":{"arguments":[{"name":"x","nativeSrc":"33708:1:65","nodeType":"YulIdentifier","src":"33708:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33690:17:65","nodeType":"YulIdentifier","src":"33690:17:65"},"nativeSrc":"33690:20:65","nodeType":"YulFunctionCall","src":"33690:20:65"},"variableNames":[{"name":"x","nativeSrc":"33685:1:65","nodeType":"YulIdentifier","src":"33685:1:65"}]},{"nativeSrc":"33719:25:65","nodeType":"YulAssignment","src":"33719:25:65","value":{"arguments":[{"name":"y","nativeSrc":"33742:1:65","nodeType":"YulIdentifier","src":"33742:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33724:17:65","nodeType":"YulIdentifier","src":"33724:17:65"},"nativeSrc":"33724:20:65","nodeType":"YulFunctionCall","src":"33724:20:65"},"variableNames":[{"name":"y","nativeSrc":"33719:1:65","nodeType":"YulIdentifier","src":"33719:1:65"}]},{"nativeSrc":"33753:17:65","nodeType":"YulAssignment","src":"33753:17:65","value":{"arguments":[{"name":"x","nativeSrc":"33765:1:65","nodeType":"YulIdentifier","src":"33765:1:65"},{"name":"y","nativeSrc":"33768:1:65","nodeType":"YulIdentifier","src":"33768:1:65"}],"functionName":{"name":"sub","nativeSrc":"33761:3:65","nodeType":"YulIdentifier","src":"33761:3:65"},"nativeSrc":"33761:9:65","nodeType":"YulFunctionCall","src":"33761:9:65"},"variableNames":[{"name":"diff","nativeSrc":"33753:4:65","nodeType":"YulIdentifier","src":"33753:4:65"}]},{"body":{"nativeSrc":"33795:22:65","nodeType":"YulBlock","src":"33795:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33797:16:65","nodeType":"YulIdentifier","src":"33797:16:65"},"nativeSrc":"33797:18:65","nodeType":"YulFunctionCall","src":"33797:18:65"},"nativeSrc":"33797:18:65","nodeType":"YulExpressionStatement","src":"33797:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"33786:4:65","nodeType":"YulIdentifier","src":"33786:4:65"},{"name":"x","nativeSrc":"33792:1:65","nodeType":"YulIdentifier","src":"33792:1:65"}],"functionName":{"name":"gt","nativeSrc":"33783:2:65","nodeType":"YulIdentifier","src":"33783:2:65"},"nativeSrc":"33783:11:65","nodeType":"YulFunctionCall","src":"33783:11:65"},"nativeSrc":"33780:37:65","nodeType":"YulIf","src":"33780:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"33630:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33661:1:65","nodeType":"YulTypedName","src":"33661:1:65","type":""},{"name":"y","nativeSrc":"33664:1:65","nodeType":"YulTypedName","src":"33664:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"33670:4:65","nodeType":"YulTypedName","src":"33670:4:65","type":""}],"src":"33630:194:65"},{"body":{"nativeSrc":"33874:147:65","nodeType":"YulBlock","src":"33874:147:65","statements":[{"nativeSrc":"33884:25:65","nodeType":"YulAssignment","src":"33884:25:65","value":{"arguments":[{"name":"x","nativeSrc":"33907:1:65","nodeType":"YulIdentifier","src":"33907:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33889:17:65","nodeType":"YulIdentifier","src":"33889:17:65"},"nativeSrc":"33889:20:65","nodeType":"YulFunctionCall","src":"33889:20:65"},"variableNames":[{"name":"x","nativeSrc":"33884:1:65","nodeType":"YulIdentifier","src":"33884:1:65"}]},{"nativeSrc":"33918:25:65","nodeType":"YulAssignment","src":"33918:25:65","value":{"arguments":[{"name":"y","nativeSrc":"33941:1:65","nodeType":"YulIdentifier","src":"33941:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33923:17:65","nodeType":"YulIdentifier","src":"33923:17:65"},"nativeSrc":"33923:20:65","nodeType":"YulFunctionCall","src":"33923:20:65"},"variableNames":[{"name":"y","nativeSrc":"33918:1:65","nodeType":"YulIdentifier","src":"33918:1:65"}]},{"nativeSrc":"33952:16:65","nodeType":"YulAssignment","src":"33952:16:65","value":{"arguments":[{"name":"x","nativeSrc":"33963:1:65","nodeType":"YulIdentifier","src":"33963:1:65"},{"name":"y","nativeSrc":"33966:1:65","nodeType":"YulIdentifier","src":"33966:1:65"}],"functionName":{"name":"add","nativeSrc":"33959:3:65","nodeType":"YulIdentifier","src":"33959:3:65"},"nativeSrc":"33959:9:65","nodeType":"YulFunctionCall","src":"33959:9:65"},"variableNames":[{"name":"sum","nativeSrc":"33952:3:65","nodeType":"YulIdentifier","src":"33952:3:65"}]},{"body":{"nativeSrc":"33992:22:65","nodeType":"YulBlock","src":"33992:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33994:16:65","nodeType":"YulIdentifier","src":"33994:16:65"},"nativeSrc":"33994:18:65","nodeType":"YulFunctionCall","src":"33994:18:65"},"nativeSrc":"33994:18:65","nodeType":"YulExpressionStatement","src":"33994:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"33984:1:65","nodeType":"YulIdentifier","src":"33984:1:65"},{"name":"sum","nativeSrc":"33987:3:65","nodeType":"YulIdentifier","src":"33987:3:65"}],"functionName":{"name":"gt","nativeSrc":"33981:2:65","nodeType":"YulIdentifier","src":"33981:2:65"},"nativeSrc":"33981:10:65","nodeType":"YulFunctionCall","src":"33981:10:65"},"nativeSrc":"33978:36:65","nodeType":"YulIf","src":"33978:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"33830:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33861:1:65","nodeType":"YulTypedName","src":"33861:1:65","type":""},{"name":"y","nativeSrc":"33864:1:65","nodeType":"YulTypedName","src":"33864:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"33870:3:65","nodeType":"YulTypedName","src":"33870:3:65","type":""}],"src":"33830:191:65"},{"body":{"nativeSrc":"34133:119:65","nodeType":"YulBlock","src":"34133:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34155:6:65","nodeType":"YulIdentifier","src":"34155:6:65"},{"kind":"number","nativeSrc":"34163:1:65","nodeType":"YulLiteral","src":"34163:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34151:3:65","nodeType":"YulIdentifier","src":"34151:3:65"},"nativeSrc":"34151:14:65","nodeType":"YulFunctionCall","src":"34151:14:65"},{"hexValue":"4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e","kind":"string","nativeSrc":"34167:34:65","nodeType":"YulLiteral","src":"34167:34:65","type":"","value":"Daily limit < single transaction"}],"functionName":{"name":"mstore","nativeSrc":"34144:6:65","nodeType":"YulIdentifier","src":"34144:6:65"},"nativeSrc":"34144:58:65","nodeType":"YulFunctionCall","src":"34144:58:65"},"nativeSrc":"34144:58:65","nodeType":"YulExpressionStatement","src":"34144:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34223:6:65","nodeType":"YulIdentifier","src":"34223:6:65"},{"kind":"number","nativeSrc":"34231:2:65","nodeType":"YulLiteral","src":"34231:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34219:3:65","nodeType":"YulIdentifier","src":"34219:3:65"},"nativeSrc":"34219:15:65","nodeType":"YulFunctionCall","src":"34219:15:65"},{"hexValue":"206c696d6974","kind":"string","nativeSrc":"34236:8:65","nodeType":"YulLiteral","src":"34236:8:65","type":"","value":" limit"}],"functionName":{"name":"mstore","nativeSrc":"34212:6:65","nodeType":"YulIdentifier","src":"34212:6:65"},"nativeSrc":"34212:33:65","nodeType":"YulFunctionCall","src":"34212:33:65"},"nativeSrc":"34212:33:65","nodeType":"YulExpressionStatement","src":"34212:33:65"}]},"name":"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","nativeSrc":"34027:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"34125:6:65","nodeType":"YulTypedName","src":"34125:6:65","type":""}],"src":"34027:225:65"},{"body":{"nativeSrc":"34404:220:65","nodeType":"YulBlock","src":"34404:220:65","statements":[{"nativeSrc":"34414:74:65","nodeType":"YulAssignment","src":"34414:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"34480:3:65","nodeType":"YulIdentifier","src":"34480:3:65"},{"kind":"number","nativeSrc":"34485:2:65","nodeType":"YulLiteral","src":"34485:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"34421:58:65","nodeType":"YulIdentifier","src":"34421:58:65"},"nativeSrc":"34421:67:65","nodeType":"YulFunctionCall","src":"34421:67:65"},"variableNames":[{"name":"pos","nativeSrc":"34414:3:65","nodeType":"YulIdentifier","src":"34414:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"34586:3:65","nodeType":"YulIdentifier","src":"34586:3:65"}],"functionName":{"name":"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","nativeSrc":"34497:88:65","nodeType":"YulIdentifier","src":"34497:88:65"},"nativeSrc":"34497:93:65","nodeType":"YulFunctionCall","src":"34497:93:65"},"nativeSrc":"34497:93:65","nodeType":"YulExpressionStatement","src":"34497:93:65"},{"nativeSrc":"34599:19:65","nodeType":"YulAssignment","src":"34599:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"34610:3:65","nodeType":"YulIdentifier","src":"34610:3:65"},{"kind":"number","nativeSrc":"34615:2:65","nodeType":"YulLiteral","src":"34615:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34606:3:65","nodeType":"YulIdentifier","src":"34606:3:65"},"nativeSrc":"34606:12:65","nodeType":"YulFunctionCall","src":"34606:12:65"},"variableNames":[{"name":"end","nativeSrc":"34599:3:65","nodeType":"YulIdentifier","src":"34599:3:65"}]}]},"name":"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack","nativeSrc":"34258:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34392:3:65","nodeType":"YulTypedName","src":"34392:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34400:3:65","nodeType":"YulTypedName","src":"34400:3:65","type":""}],"src":"34258:366:65"},{"body":{"nativeSrc":"34801:248:65","nodeType":"YulBlock","src":"34801:248:65","statements":[{"nativeSrc":"34811:26:65","nodeType":"YulAssignment","src":"34811:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"34823:9:65","nodeType":"YulIdentifier","src":"34823:9:65"},{"kind":"number","nativeSrc":"34834:2:65","nodeType":"YulLiteral","src":"34834:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34819:3:65","nodeType":"YulIdentifier","src":"34819:3:65"},"nativeSrc":"34819:18:65","nodeType":"YulFunctionCall","src":"34819:18:65"},"variableNames":[{"name":"tail","nativeSrc":"34811:4:65","nodeType":"YulIdentifier","src":"34811:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34858:9:65","nodeType":"YulIdentifier","src":"34858:9:65"},{"kind":"number","nativeSrc":"34869:1:65","nodeType":"YulLiteral","src":"34869:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34854:3:65","nodeType":"YulIdentifier","src":"34854:3:65"},"nativeSrc":"34854:17:65","nodeType":"YulFunctionCall","src":"34854:17:65"},{"arguments":[{"name":"tail","nativeSrc":"34877:4:65","nodeType":"YulIdentifier","src":"34877:4:65"},{"name":"headStart","nativeSrc":"34883:9:65","nodeType":"YulIdentifier","src":"34883:9:65"}],"functionName":{"name":"sub","nativeSrc":"34873:3:65","nodeType":"YulIdentifier","src":"34873:3:65"},"nativeSrc":"34873:20:65","nodeType":"YulFunctionCall","src":"34873:20:65"}],"functionName":{"name":"mstore","nativeSrc":"34847:6:65","nodeType":"YulIdentifier","src":"34847:6:65"},"nativeSrc":"34847:47:65","nodeType":"YulFunctionCall","src":"34847:47:65"},"nativeSrc":"34847:47:65","nodeType":"YulExpressionStatement","src":"34847:47:65"},{"nativeSrc":"34903:139:65","nodeType":"YulAssignment","src":"34903:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"35037:4:65","nodeType":"YulIdentifier","src":"35037:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack","nativeSrc":"34911:124:65","nodeType":"YulIdentifier","src":"34911:124:65"},"nativeSrc":"34911:131:65","nodeType":"YulFunctionCall","src":"34911:131:65"},"variableNames":[{"name":"tail","nativeSrc":"34903:4:65","nodeType":"YulIdentifier","src":"34903:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"34630:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"34781:9:65","nodeType":"YulTypedName","src":"34781:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"34796:4:65","nodeType":"YulTypedName","src":"34796:4:65","type":""}],"src":"34630:419:65"},{"body":{"nativeSrc":"35207:286:65","nodeType":"YulBlock","src":"35207:286:65","statements":[{"nativeSrc":"35217:26:65","nodeType":"YulAssignment","src":"35217:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"35229:9:65","nodeType":"YulIdentifier","src":"35229:9:65"},{"kind":"number","nativeSrc":"35240:2:65","nodeType":"YulLiteral","src":"35240:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35225:3:65","nodeType":"YulIdentifier","src":"35225:3:65"},"nativeSrc":"35225:18:65","nodeType":"YulFunctionCall","src":"35225:18:65"},"variableNames":[{"name":"tail","nativeSrc":"35217:4:65","nodeType":"YulIdentifier","src":"35217:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"35295:6:65","nodeType":"YulIdentifier","src":"35295:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35308:9:65","nodeType":"YulIdentifier","src":"35308:9:65"},{"kind":"number","nativeSrc":"35319:1:65","nodeType":"YulLiteral","src":"35319:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35304:3:65","nodeType":"YulIdentifier","src":"35304:3:65"},"nativeSrc":"35304:17:65","nodeType":"YulFunctionCall","src":"35304:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"35253:41:65","nodeType":"YulIdentifier","src":"35253:41:65"},"nativeSrc":"35253:69:65","nodeType":"YulFunctionCall","src":"35253:69:65"},"nativeSrc":"35253:69:65","nodeType":"YulExpressionStatement","src":"35253:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"35376:6:65","nodeType":"YulIdentifier","src":"35376:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35389:9:65","nodeType":"YulIdentifier","src":"35389:9:65"},{"kind":"number","nativeSrc":"35400:2:65","nodeType":"YulLiteral","src":"35400:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35385:3:65","nodeType":"YulIdentifier","src":"35385:3:65"},"nativeSrc":"35385:18:65","nodeType":"YulFunctionCall","src":"35385:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"35332:43:65","nodeType":"YulIdentifier","src":"35332:43:65"},"nativeSrc":"35332:72:65","nodeType":"YulFunctionCall","src":"35332:72:65"},"nativeSrc":"35332:72:65","nodeType":"YulExpressionStatement","src":"35332:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"35458:6:65","nodeType":"YulIdentifier","src":"35458:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35471:9:65","nodeType":"YulIdentifier","src":"35471:9:65"},{"kind":"number","nativeSrc":"35482:2:65","nodeType":"YulLiteral","src":"35482:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35467:3:65","nodeType":"YulIdentifier","src":"35467:3:65"},"nativeSrc":"35467:18:65","nodeType":"YulFunctionCall","src":"35467:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"35414:43:65","nodeType":"YulIdentifier","src":"35414:43:65"},"nativeSrc":"35414:72:65","nodeType":"YulFunctionCall","src":"35414:72:65"},"nativeSrc":"35414:72:65","nodeType":"YulExpressionStatement","src":"35414:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"35055:438:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35163:9:65","nodeType":"YulTypedName","src":"35163:9:65","type":""},{"name":"value2","nativeSrc":"35175:6:65","nodeType":"YulTypedName","src":"35175:6:65","type":""},{"name":"value1","nativeSrc":"35183:6:65","nodeType":"YulTypedName","src":"35183:6:65","type":""},{"name":"value0","nativeSrc":"35191:6:65","nodeType":"YulTypedName","src":"35191:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35202:4:65","nodeType":"YulTypedName","src":"35202:4:65","type":""}],"src":"35055:438:65"},{"body":{"nativeSrc":"35621:214:65","nodeType":"YulBlock","src":"35621:214:65","statements":[{"nativeSrc":"35631:77:65","nodeType":"YulAssignment","src":"35631:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"35696:3:65","nodeType":"YulIdentifier","src":"35696:3:65"},{"name":"length","nativeSrc":"35701:6:65","nodeType":"YulIdentifier","src":"35701:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"35638:57:65","nodeType":"YulIdentifier","src":"35638:57:65"},"nativeSrc":"35638:70:65","nodeType":"YulFunctionCall","src":"35638:70:65"},"variableNames":[{"name":"pos","nativeSrc":"35631:3:65","nodeType":"YulIdentifier","src":"35631:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"35755:5:65","nodeType":"YulIdentifier","src":"35755:5:65"},{"name":"pos","nativeSrc":"35762:3:65","nodeType":"YulIdentifier","src":"35762:3:65"},{"name":"length","nativeSrc":"35767:6:65","nodeType":"YulIdentifier","src":"35767:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"35718:36:65","nodeType":"YulIdentifier","src":"35718:36:65"},"nativeSrc":"35718:56:65","nodeType":"YulFunctionCall","src":"35718:56:65"},"nativeSrc":"35718:56:65","nodeType":"YulExpressionStatement","src":"35718:56:65"},{"nativeSrc":"35783:46:65","nodeType":"YulAssignment","src":"35783:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"35794:3:65","nodeType":"YulIdentifier","src":"35794:3:65"},{"arguments":[{"name":"length","nativeSrc":"35821:6:65","nodeType":"YulIdentifier","src":"35821:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"35799:21:65","nodeType":"YulIdentifier","src":"35799:21:65"},"nativeSrc":"35799:29:65","nodeType":"YulFunctionCall","src":"35799:29:65"}],"functionName":{"name":"add","nativeSrc":"35790:3:65","nodeType":"YulIdentifier","src":"35790:3:65"},"nativeSrc":"35790:39:65","nodeType":"YulFunctionCall","src":"35790:39:65"},"variableNames":[{"name":"end","nativeSrc":"35783:3:65","nodeType":"YulIdentifier","src":"35783:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"35521:314:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"35594:5:65","nodeType":"YulTypedName","src":"35594:5:65","type":""},{"name":"length","nativeSrc":"35601:6:65","nodeType":"YulTypedName","src":"35601:6:65","type":""},{"name":"pos","nativeSrc":"35609:3:65","nodeType":"YulTypedName","src":"35609:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"35617:3:65","nodeType":"YulTypedName","src":"35617:3:65","type":""}],"src":"35521:314:65"},{"body":{"nativeSrc":"35993:283:65","nodeType":"YulBlock","src":"35993:283:65","statements":[{"nativeSrc":"36003:26:65","nodeType":"YulAssignment","src":"36003:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"36015:9:65","nodeType":"YulIdentifier","src":"36015:9:65"},{"kind":"number","nativeSrc":"36026:2:65","nodeType":"YulLiteral","src":"36026:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36011:3:65","nodeType":"YulIdentifier","src":"36011:3:65"},"nativeSrc":"36011:18:65","nodeType":"YulFunctionCall","src":"36011:18:65"},"variableNames":[{"name":"tail","nativeSrc":"36003:4:65","nodeType":"YulIdentifier","src":"36003:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"36081:6:65","nodeType":"YulIdentifier","src":"36081:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"36094:9:65","nodeType":"YulIdentifier","src":"36094:9:65"},{"kind":"number","nativeSrc":"36105:1:65","nodeType":"YulLiteral","src":"36105:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36090:3:65","nodeType":"YulIdentifier","src":"36090:3:65"},"nativeSrc":"36090:17:65","nodeType":"YulFunctionCall","src":"36090:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"36039:41:65","nodeType":"YulIdentifier","src":"36039:41:65"},"nativeSrc":"36039:69:65","nodeType":"YulFunctionCall","src":"36039:69:65"},"nativeSrc":"36039:69:65","nodeType":"YulExpressionStatement","src":"36039:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36129:9:65","nodeType":"YulIdentifier","src":"36129:9:65"},{"kind":"number","nativeSrc":"36140:2:65","nodeType":"YulLiteral","src":"36140:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36125:3:65","nodeType":"YulIdentifier","src":"36125:3:65"},"nativeSrc":"36125:18:65","nodeType":"YulFunctionCall","src":"36125:18:65"},{"arguments":[{"name":"tail","nativeSrc":"36149:4:65","nodeType":"YulIdentifier","src":"36149:4:65"},{"name":"headStart","nativeSrc":"36155:9:65","nodeType":"YulIdentifier","src":"36155:9:65"}],"functionName":{"name":"sub","nativeSrc":"36145:3:65","nodeType":"YulIdentifier","src":"36145:3:65"},"nativeSrc":"36145:20:65","nodeType":"YulFunctionCall","src":"36145:20:65"}],"functionName":{"name":"mstore","nativeSrc":"36118:6:65","nodeType":"YulIdentifier","src":"36118:6:65"},"nativeSrc":"36118:48:65","nodeType":"YulFunctionCall","src":"36118:48:65"},"nativeSrc":"36118:48:65","nodeType":"YulExpressionStatement","src":"36118:48:65"},{"nativeSrc":"36175:94:65","nodeType":"YulAssignment","src":"36175:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"36247:6:65","nodeType":"YulIdentifier","src":"36247:6:65"},{"name":"value2","nativeSrc":"36255:6:65","nodeType":"YulIdentifier","src":"36255:6:65"},{"name":"tail","nativeSrc":"36264:4:65","nodeType":"YulIdentifier","src":"36264:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"36183:63:65","nodeType":"YulIdentifier","src":"36183:63:65"},"nativeSrc":"36183:86:65","nodeType":"YulFunctionCall","src":"36183:86:65"},"variableNames":[{"name":"tail","nativeSrc":"36175:4:65","nodeType":"YulIdentifier","src":"36175:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"35841:435:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35949:9:65","nodeType":"YulTypedName","src":"35949:9:65","type":""},{"name":"value2","nativeSrc":"35961:6:65","nodeType":"YulTypedName","src":"35961:6:65","type":""},{"name":"value1","nativeSrc":"35969:6:65","nodeType":"YulTypedName","src":"35969:6:65","type":""},{"name":"value0","nativeSrc":"35977:6:65","nodeType":"YulTypedName","src":"35977:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35988:4:65","nodeType":"YulTypedName","src":"35988:4:65","type":""}],"src":"35841:435:65"},{"body":{"nativeSrc":"36388:119:65","nodeType":"YulBlock","src":"36388:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"36410:6:65","nodeType":"YulIdentifier","src":"36410:6:65"},{"kind":"number","nativeSrc":"36418:1:65","nodeType":"YulLiteral","src":"36418:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36406:3:65","nodeType":"YulIdentifier","src":"36406:3:65"},"nativeSrc":"36406:14:65","nodeType":"YulFunctionCall","src":"36406:14:65"},{"hexValue":"53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79","kind":"string","nativeSrc":"36422:34:65","nodeType":"YulLiteral","src":"36422:34:65","type":"","value":"Single transaction limit > Daily"}],"functionName":{"name":"mstore","nativeSrc":"36399:6:65","nodeType":"YulIdentifier","src":"36399:6:65"},"nativeSrc":"36399:58:65","nodeType":"YulFunctionCall","src":"36399:58:65"},"nativeSrc":"36399:58:65","nodeType":"YulExpressionStatement","src":"36399:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"36478:6:65","nodeType":"YulIdentifier","src":"36478:6:65"},{"kind":"number","nativeSrc":"36486:2:65","nodeType":"YulLiteral","src":"36486:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36474:3:65","nodeType":"YulIdentifier","src":"36474:3:65"},"nativeSrc":"36474:15:65","nodeType":"YulFunctionCall","src":"36474:15:65"},{"hexValue":"206c696d6974","kind":"string","nativeSrc":"36491:8:65","nodeType":"YulLiteral","src":"36491:8:65","type":"","value":" limit"}],"functionName":{"name":"mstore","nativeSrc":"36467:6:65","nodeType":"YulIdentifier","src":"36467:6:65"},"nativeSrc":"36467:33:65","nodeType":"YulFunctionCall","src":"36467:33:65"},"nativeSrc":"36467:33:65","nodeType":"YulExpressionStatement","src":"36467:33:65"}]},"name":"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","nativeSrc":"36282:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"36380:6:65","nodeType":"YulTypedName","src":"36380:6:65","type":""}],"src":"36282:225:65"},{"body":{"nativeSrc":"36659:220:65","nodeType":"YulBlock","src":"36659:220:65","statements":[{"nativeSrc":"36669:74:65","nodeType":"YulAssignment","src":"36669:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"36735:3:65","nodeType":"YulIdentifier","src":"36735:3:65"},{"kind":"number","nativeSrc":"36740:2:65","nodeType":"YulLiteral","src":"36740:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"36676:58:65","nodeType":"YulIdentifier","src":"36676:58:65"},"nativeSrc":"36676:67:65","nodeType":"YulFunctionCall","src":"36676:67:65"},"variableNames":[{"name":"pos","nativeSrc":"36669:3:65","nodeType":"YulIdentifier","src":"36669:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"36841:3:65","nodeType":"YulIdentifier","src":"36841:3:65"}],"functionName":{"name":"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","nativeSrc":"36752:88:65","nodeType":"YulIdentifier","src":"36752:88:65"},"nativeSrc":"36752:93:65","nodeType":"YulFunctionCall","src":"36752:93:65"},"nativeSrc":"36752:93:65","nodeType":"YulExpressionStatement","src":"36752:93:65"},{"nativeSrc":"36854:19:65","nodeType":"YulAssignment","src":"36854:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"36865:3:65","nodeType":"YulIdentifier","src":"36865:3:65"},{"kind":"number","nativeSrc":"36870:2:65","nodeType":"YulLiteral","src":"36870:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36861:3:65","nodeType":"YulIdentifier","src":"36861:3:65"},"nativeSrc":"36861:12:65","nodeType":"YulFunctionCall","src":"36861:12:65"},"variableNames":[{"name":"end","nativeSrc":"36854:3:65","nodeType":"YulIdentifier","src":"36854:3:65"}]}]},"name":"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack","nativeSrc":"36513:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"36647:3:65","nodeType":"YulTypedName","src":"36647:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36655:3:65","nodeType":"YulTypedName","src":"36655:3:65","type":""}],"src":"36513:366:65"},{"body":{"nativeSrc":"37056:248:65","nodeType":"YulBlock","src":"37056:248:65","statements":[{"nativeSrc":"37066:26:65","nodeType":"YulAssignment","src":"37066:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"37078:9:65","nodeType":"YulIdentifier","src":"37078:9:65"},{"kind":"number","nativeSrc":"37089:2:65","nodeType":"YulLiteral","src":"37089:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37074:3:65","nodeType":"YulIdentifier","src":"37074:3:65"},"nativeSrc":"37074:18:65","nodeType":"YulFunctionCall","src":"37074:18:65"},"variableNames":[{"name":"tail","nativeSrc":"37066:4:65","nodeType":"YulIdentifier","src":"37066:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37113:9:65","nodeType":"YulIdentifier","src":"37113:9:65"},{"kind":"number","nativeSrc":"37124:1:65","nodeType":"YulLiteral","src":"37124:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"37109:3:65","nodeType":"YulIdentifier","src":"37109:3:65"},"nativeSrc":"37109:17:65","nodeType":"YulFunctionCall","src":"37109:17:65"},{"arguments":[{"name":"tail","nativeSrc":"37132:4:65","nodeType":"YulIdentifier","src":"37132:4:65"},{"name":"headStart","nativeSrc":"37138:9:65","nodeType":"YulIdentifier","src":"37138:9:65"}],"functionName":{"name":"sub","nativeSrc":"37128:3:65","nodeType":"YulIdentifier","src":"37128:3:65"},"nativeSrc":"37128:20:65","nodeType":"YulFunctionCall","src":"37128:20:65"}],"functionName":{"name":"mstore","nativeSrc":"37102:6:65","nodeType":"YulIdentifier","src":"37102:6:65"},"nativeSrc":"37102:47:65","nodeType":"YulFunctionCall","src":"37102:47:65"},"nativeSrc":"37102:47:65","nodeType":"YulExpressionStatement","src":"37102:47:65"},{"nativeSrc":"37158:139:65","nodeType":"YulAssignment","src":"37158:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"37292:4:65","nodeType":"YulIdentifier","src":"37292:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack","nativeSrc":"37166:124:65","nodeType":"YulIdentifier","src":"37166:124:65"},"nativeSrc":"37166:131:65","nodeType":"YulFunctionCall","src":"37166:131:65"},"variableNames":[{"name":"tail","nativeSrc":"37158:4:65","nodeType":"YulIdentifier","src":"37158:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"36885:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37036:9:65","nodeType":"YulTypedName","src":"37036:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37051:4:65","nodeType":"YulTypedName","src":"37051:4:65","type":""}],"src":"36885:419:65"},{"body":{"nativeSrc":"37416:119:65","nodeType":"YulBlock","src":"37416:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"37438:6:65","nodeType":"YulIdentifier","src":"37438:6:65"},{"kind":"number","nativeSrc":"37446:1:65","nodeType":"YulLiteral","src":"37446:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"37434:3:65","nodeType":"YulIdentifier","src":"37434:3:65"},"nativeSrc":"37434:14:65","nodeType":"YulFunctionCall","src":"37434:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nativeSrc":"37450:34:65","nodeType":"YulLiteral","src":"37450:34:65","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nativeSrc":"37427:6:65","nodeType":"YulIdentifier","src":"37427:6:65"},"nativeSrc":"37427:58:65","nodeType":"YulFunctionCall","src":"37427:58:65"},"nativeSrc":"37427:58:65","nodeType":"YulExpressionStatement","src":"37427:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"37506:6:65","nodeType":"YulIdentifier","src":"37506:6:65"},{"kind":"number","nativeSrc":"37514:2:65","nodeType":"YulLiteral","src":"37514:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37502:3:65","nodeType":"YulIdentifier","src":"37502:3:65"},"nativeSrc":"37502:15:65","nodeType":"YulFunctionCall","src":"37502:15:65"},{"hexValue":"204c7a417070","kind":"string","nativeSrc":"37519:8:65","nodeType":"YulLiteral","src":"37519:8:65","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nativeSrc":"37495:6:65","nodeType":"YulIdentifier","src":"37495:6:65"},"nativeSrc":"37495:33:65","nodeType":"YulFunctionCall","src":"37495:33:65"},"nativeSrc":"37495:33:65","nodeType":"YulExpressionStatement","src":"37495:33:65"}]},"name":"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","nativeSrc":"37310:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"37408:6:65","nodeType":"YulTypedName","src":"37408:6:65","type":""}],"src":"37310:225:65"},{"body":{"nativeSrc":"37687:220:65","nodeType":"YulBlock","src":"37687:220:65","statements":[{"nativeSrc":"37697:74:65","nodeType":"YulAssignment","src":"37697:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"37763:3:65","nodeType":"YulIdentifier","src":"37763:3:65"},{"kind":"number","nativeSrc":"37768:2:65","nodeType":"YulLiteral","src":"37768:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"37704:58:65","nodeType":"YulIdentifier","src":"37704:58:65"},"nativeSrc":"37704:67:65","nodeType":"YulFunctionCall","src":"37704:67:65"},"variableNames":[{"name":"pos","nativeSrc":"37697:3:65","nodeType":"YulIdentifier","src":"37697:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"37869:3:65","nodeType":"YulIdentifier","src":"37869:3:65"}],"functionName":{"name":"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","nativeSrc":"37780:88:65","nodeType":"YulIdentifier","src":"37780:88:65"},"nativeSrc":"37780:93:65","nodeType":"YulFunctionCall","src":"37780:93:65"},"nativeSrc":"37780:93:65","nodeType":"YulExpressionStatement","src":"37780:93:65"},{"nativeSrc":"37882:19:65","nodeType":"YulAssignment","src":"37882:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"37893:3:65","nodeType":"YulIdentifier","src":"37893:3:65"},{"kind":"number","nativeSrc":"37898:2:65","nodeType":"YulLiteral","src":"37898:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37889:3:65","nodeType":"YulIdentifier","src":"37889:3:65"},"nativeSrc":"37889:12:65","nodeType":"YulFunctionCall","src":"37889:12:65"},"variableNames":[{"name":"end","nativeSrc":"37882:3:65","nodeType":"YulIdentifier","src":"37882:3:65"}]}]},"name":"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack","nativeSrc":"37541:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"37675:3:65","nodeType":"YulTypedName","src":"37675:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"37683:3:65","nodeType":"YulTypedName","src":"37683:3:65","type":""}],"src":"37541:366:65"},{"body":{"nativeSrc":"38084:248:65","nodeType":"YulBlock","src":"38084:248:65","statements":[{"nativeSrc":"38094:26:65","nodeType":"YulAssignment","src":"38094:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"38106:9:65","nodeType":"YulIdentifier","src":"38106:9:65"},{"kind":"number","nativeSrc":"38117:2:65","nodeType":"YulLiteral","src":"38117:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38102:3:65","nodeType":"YulIdentifier","src":"38102:3:65"},"nativeSrc":"38102:18:65","nodeType":"YulFunctionCall","src":"38102:18:65"},"variableNames":[{"name":"tail","nativeSrc":"38094:4:65","nodeType":"YulIdentifier","src":"38094:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38141:9:65","nodeType":"YulIdentifier","src":"38141:9:65"},{"kind":"number","nativeSrc":"38152:1:65","nodeType":"YulLiteral","src":"38152:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"38137:3:65","nodeType":"YulIdentifier","src":"38137:3:65"},"nativeSrc":"38137:17:65","nodeType":"YulFunctionCall","src":"38137:17:65"},{"arguments":[{"name":"tail","nativeSrc":"38160:4:65","nodeType":"YulIdentifier","src":"38160:4:65"},{"name":"headStart","nativeSrc":"38166:9:65","nodeType":"YulIdentifier","src":"38166:9:65"}],"functionName":{"name":"sub","nativeSrc":"38156:3:65","nodeType":"YulIdentifier","src":"38156:3:65"},"nativeSrc":"38156:20:65","nodeType":"YulFunctionCall","src":"38156:20:65"}],"functionName":{"name":"mstore","nativeSrc":"38130:6:65","nodeType":"YulIdentifier","src":"38130:6:65"},"nativeSrc":"38130:47:65","nodeType":"YulFunctionCall","src":"38130:47:65"},"nativeSrc":"38130:47:65","nodeType":"YulExpressionStatement","src":"38130:47:65"},{"nativeSrc":"38186:139:65","nodeType":"YulAssignment","src":"38186:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"38320:4:65","nodeType":"YulIdentifier","src":"38320:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack","nativeSrc":"38194:124:65","nodeType":"YulIdentifier","src":"38194:124:65"},"nativeSrc":"38194:131:65","nodeType":"YulFunctionCall","src":"38194:131:65"},"variableNames":[{"name":"tail","nativeSrc":"38186:4:65","nodeType":"YulIdentifier","src":"38186:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37913:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38064:9:65","nodeType":"YulTypedName","src":"38064:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38079:4:65","nodeType":"YulTypedName","src":"38079:4:65","type":""}],"src":"37913:419:65"},{"body":{"nativeSrc":"38391:51:65","nodeType":"YulBlock","src":"38391:51:65","statements":[{"nativeSrc":"38401:35:65","nodeType":"YulAssignment","src":"38401:35:65","value":{"arguments":[{"name":"value","nativeSrc":"38430:5:65","nodeType":"YulIdentifier","src":"38430:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"38412:17:65","nodeType":"YulIdentifier","src":"38412:17:65"},"nativeSrc":"38412:24:65","nodeType":"YulFunctionCall","src":"38412:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"38401:7:65","nodeType":"YulIdentifier","src":"38401:7:65"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"38338:104:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"38373:5:65","nodeType":"YulTypedName","src":"38373:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"38383:7:65","nodeType":"YulTypedName","src":"38383:7:65","type":""}],"src":"38338:104:65"},{"body":{"nativeSrc":"38499:87:65","nodeType":"YulBlock","src":"38499:87:65","statements":[{"body":{"nativeSrc":"38564:16:65","nodeType":"YulBlock","src":"38564:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38573:1:65","nodeType":"YulLiteral","src":"38573:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"38576:1:65","nodeType":"YulLiteral","src":"38576:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"38566:6:65","nodeType":"YulIdentifier","src":"38566:6:65"},"nativeSrc":"38566:12:65","nodeType":"YulFunctionCall","src":"38566:12:65"},"nativeSrc":"38566:12:65","nodeType":"YulExpressionStatement","src":"38566:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38522:5:65","nodeType":"YulIdentifier","src":"38522:5:65"},{"arguments":[{"name":"value","nativeSrc":"38555:5:65","nodeType":"YulIdentifier","src":"38555:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"38529:25:65","nodeType":"YulIdentifier","src":"38529:25:65"},"nativeSrc":"38529:32:65","nodeType":"YulFunctionCall","src":"38529:32:65"}],"functionName":{"name":"eq","nativeSrc":"38519:2:65","nodeType":"YulIdentifier","src":"38519:2:65"},"nativeSrc":"38519:43:65","nodeType":"YulFunctionCall","src":"38519:43:65"}],"functionName":{"name":"iszero","nativeSrc":"38512:6:65","nodeType":"YulIdentifier","src":"38512:6:65"},"nativeSrc":"38512:51:65","nodeType":"YulFunctionCall","src":"38512:51:65"},"nativeSrc":"38509:71:65","nodeType":"YulIf","src":"38509:71:65"}]},"name":"validator_revert_t_address_payable","nativeSrc":"38448:138:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"38492:5:65","nodeType":"YulTypedName","src":"38492:5:65","type":""}],"src":"38448:138:65"},{"body":{"nativeSrc":"38652:95:65","nodeType":"YulBlock","src":"38652:95:65","statements":[{"nativeSrc":"38662:29:65","nodeType":"YulAssignment","src":"38662:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"38684:6:65","nodeType":"YulIdentifier","src":"38684:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"38671:12:65","nodeType":"YulIdentifier","src":"38671:12:65"},"nativeSrc":"38671:20:65","nodeType":"YulFunctionCall","src":"38671:20:65"},"variableNames":[{"name":"value","nativeSrc":"38662:5:65","nodeType":"YulIdentifier","src":"38662:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"38735:5:65","nodeType":"YulIdentifier","src":"38735:5:65"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"38700:34:65","nodeType":"YulIdentifier","src":"38700:34:65"},"nativeSrc":"38700:41:65","nodeType":"YulFunctionCall","src":"38700:41:65"},"nativeSrc":"38700:41:65","nodeType":"YulExpressionStatement","src":"38700:41:65"}]},"name":"abi_decode_t_address_payable","nativeSrc":"38592:155:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"38630:6:65","nodeType":"YulTypedName","src":"38630:6:65","type":""},{"name":"end","nativeSrc":"38638:3:65","nodeType":"YulTypedName","src":"38638:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"38646:5:65","nodeType":"YulTypedName","src":"38646:5:65","type":""}],"src":"38592:155:65"},{"body":{"nativeSrc":"38827:271:65","nodeType":"YulBlock","src":"38827:271:65","statements":[{"body":{"nativeSrc":"38873:83:65","nodeType":"YulBlock","src":"38873:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"38875:77:65","nodeType":"YulIdentifier","src":"38875:77:65"},"nativeSrc":"38875:79:65","nodeType":"YulFunctionCall","src":"38875:79:65"},"nativeSrc":"38875:79:65","nodeType":"YulExpressionStatement","src":"38875:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"38848:7:65","nodeType":"YulIdentifier","src":"38848:7:65"},{"name":"headStart","nativeSrc":"38857:9:65","nodeType":"YulIdentifier","src":"38857:9:65"}],"functionName":{"name":"sub","nativeSrc":"38844:3:65","nodeType":"YulIdentifier","src":"38844:3:65"},"nativeSrc":"38844:23:65","nodeType":"YulFunctionCall","src":"38844:23:65"},{"kind":"number","nativeSrc":"38869:2:65","nodeType":"YulLiteral","src":"38869:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"38840:3:65","nodeType":"YulIdentifier","src":"38840:3:65"},"nativeSrc":"38840:32:65","nodeType":"YulFunctionCall","src":"38840:32:65"},"nativeSrc":"38837:119:65","nodeType":"YulIf","src":"38837:119:65"},{"nativeSrc":"38966:125:65","nodeType":"YulBlock","src":"38966:125:65","statements":[{"nativeSrc":"38981:15:65","nodeType":"YulVariableDeclaration","src":"38981:15:65","value":{"kind":"number","nativeSrc":"38995:1:65","nodeType":"YulLiteral","src":"38995:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"38985:6:65","nodeType":"YulTypedName","src":"38985:6:65","type":""}]},{"nativeSrc":"39010:71:65","nodeType":"YulAssignment","src":"39010:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39053:9:65","nodeType":"YulIdentifier","src":"39053:9:65"},{"name":"offset","nativeSrc":"39064:6:65","nodeType":"YulIdentifier","src":"39064:6:65"}],"functionName":{"name":"add","nativeSrc":"39049:3:65","nodeType":"YulIdentifier","src":"39049:3:65"},"nativeSrc":"39049:22:65","nodeType":"YulFunctionCall","src":"39049:22:65"},{"name":"dataEnd","nativeSrc":"39073:7:65","nodeType":"YulIdentifier","src":"39073:7:65"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"39020:28:65","nodeType":"YulIdentifier","src":"39020:28:65"},"nativeSrc":"39020:61:65","nodeType":"YulFunctionCall","src":"39020:61:65"},"variableNames":[{"name":"value0","nativeSrc":"39010:6:65","nodeType":"YulIdentifier","src":"39010:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_payable","nativeSrc":"38753:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38797:9:65","nodeType":"YulTypedName","src":"38797:9:65","type":""},{"name":"dataEnd","nativeSrc":"38808:7:65","nodeType":"YulTypedName","src":"38808:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"38820:6:65","nodeType":"YulTypedName","src":"38820:6:65","type":""}],"src":"38753:345:65"},{"body":{"nativeSrc":"39193:28:65","nodeType":"YulBlock","src":"39193:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39210:1:65","nodeType":"YulLiteral","src":"39210:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"39213:1:65","nodeType":"YulLiteral","src":"39213:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39203:6:65","nodeType":"YulIdentifier","src":"39203:6:65"},"nativeSrc":"39203:12:65","nodeType":"YulFunctionCall","src":"39203:12:65"},"nativeSrc":"39203:12:65","nodeType":"YulExpressionStatement","src":"39203:12:65"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"39104:117:65","nodeType":"YulFunctionDefinition","src":"39104:117:65"},{"body":{"nativeSrc":"39316:28:65","nodeType":"YulBlock","src":"39316:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39333:1:65","nodeType":"YulLiteral","src":"39333:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"39336:1:65","nodeType":"YulLiteral","src":"39336:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39326:6:65","nodeType":"YulIdentifier","src":"39326:6:65"},"nativeSrc":"39326:12:65","nodeType":"YulFunctionCall","src":"39326:12:65"},"nativeSrc":"39326:12:65","nodeType":"YulExpressionStatement","src":"39326:12:65"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"39227:117:65","nodeType":"YulFunctionDefinition","src":"39227:117:65"},{"body":{"nativeSrc":"39439:28:65","nodeType":"YulBlock","src":"39439:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39456:1:65","nodeType":"YulLiteral","src":"39456:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"39459:1:65","nodeType":"YulLiteral","src":"39459:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"39449:6:65","nodeType":"YulIdentifier","src":"39449:6:65"},"nativeSrc":"39449:12:65","nodeType":"YulFunctionCall","src":"39449:12:65"},"nativeSrc":"39449:12:65","nodeType":"YulExpressionStatement","src":"39449:12:65"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"39350:117:65","nodeType":"YulFunctionDefinition","src":"39350:117:65"},{"body":{"nativeSrc":"39563:634:65","nodeType":"YulBlock","src":"39563:634:65","statements":[{"nativeSrc":"39573:51:65","nodeType":"YulVariableDeclaration","src":"39573:51:65","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"39612:11:65","nodeType":"YulIdentifier","src":"39612:11:65"}],"functionName":{"name":"calldataload","nativeSrc":"39599:12:65","nodeType":"YulIdentifier","src":"39599:12:65"},"nativeSrc":"39599:25:65","nodeType":"YulFunctionCall","src":"39599:25:65"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"39577:18:65","nodeType":"YulTypedName","src":"39577:18:65","type":""}]},{"body":{"nativeSrc":"39718:83:65","nodeType":"YulBlock","src":"39718:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"39720:77:65","nodeType":"YulIdentifier","src":"39720:77:65"},"nativeSrc":"39720:79:65","nodeType":"YulFunctionCall","src":"39720:79:65"},"nativeSrc":"39720:79:65","nodeType":"YulExpressionStatement","src":"39720:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"39647:18:65","nodeType":"YulIdentifier","src":"39647:18:65"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"39675:12:65","nodeType":"YulIdentifier","src":"39675:12:65"},"nativeSrc":"39675:14:65","nodeType":"YulFunctionCall","src":"39675:14:65"},{"name":"base_ref","nativeSrc":"39691:8:65","nodeType":"YulIdentifier","src":"39691:8:65"}],"functionName":{"name":"sub","nativeSrc":"39671:3:65","nodeType":"YulIdentifier","src":"39671:3:65"},"nativeSrc":"39671:29:65","nodeType":"YulFunctionCall","src":"39671:29:65"},{"arguments":[{"kind":"number","nativeSrc":"39706:4:65","nodeType":"YulLiteral","src":"39706:4:65","type":"","value":"0x20"},{"kind":"number","nativeSrc":"39712:1:65","nodeType":"YulLiteral","src":"39712:1:65","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"39702:3:65","nodeType":"YulIdentifier","src":"39702:3:65"},"nativeSrc":"39702:12:65","nodeType":"YulFunctionCall","src":"39702:12:65"}],"functionName":{"name":"sub","nativeSrc":"39667:3:65","nodeType":"YulIdentifier","src":"39667:3:65"},"nativeSrc":"39667:48:65","nodeType":"YulFunctionCall","src":"39667:48:65"}],"functionName":{"name":"slt","nativeSrc":"39643:3:65","nodeType":"YulIdentifier","src":"39643:3:65"},"nativeSrc":"39643:73:65","nodeType":"YulFunctionCall","src":"39643:73:65"}],"functionName":{"name":"iszero","nativeSrc":"39636:6:65","nodeType":"YulIdentifier","src":"39636:6:65"},"nativeSrc":"39636:81:65","nodeType":"YulFunctionCall","src":"39636:81:65"},"nativeSrc":"39633:168:65","nodeType":"YulIf","src":"39633:168:65"},{"nativeSrc":"39810:41:65","nodeType":"YulAssignment","src":"39810:41:65","value":{"arguments":[{"name":"base_ref","nativeSrc":"39822:8:65","nodeType":"YulIdentifier","src":"39822:8:65"},{"name":"rel_offset_of_tail","nativeSrc":"39832:18:65","nodeType":"YulIdentifier","src":"39832:18:65"}],"functionName":{"name":"add","nativeSrc":"39818:3:65","nodeType":"YulIdentifier","src":"39818:3:65"},"nativeSrc":"39818:33:65","nodeType":"YulFunctionCall","src":"39818:33:65"},"variableNames":[{"name":"addr","nativeSrc":"39810:4:65","nodeType":"YulIdentifier","src":"39810:4:65"}]},{"nativeSrc":"39861:28:65","nodeType":"YulAssignment","src":"39861:28:65","value":{"arguments":[{"name":"addr","nativeSrc":"39884:4:65","nodeType":"YulIdentifier","src":"39884:4:65"}],"functionName":{"name":"calldataload","nativeSrc":"39871:12:65","nodeType":"YulIdentifier","src":"39871:12:65"},"nativeSrc":"39871:18:65","nodeType":"YulFunctionCall","src":"39871:18:65"},"variableNames":[{"name":"length","nativeSrc":"39861:6:65","nodeType":"YulIdentifier","src":"39861:6:65"}]},{"body":{"nativeSrc":"39932:83:65","nodeType":"YulBlock","src":"39932:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"39934:77:65","nodeType":"YulIdentifier","src":"39934:77:65"},"nativeSrc":"39934:79:65","nodeType":"YulFunctionCall","src":"39934:79:65"},"nativeSrc":"39934:79:65","nodeType":"YulExpressionStatement","src":"39934:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"39904:6:65","nodeType":"YulIdentifier","src":"39904:6:65"},{"kind":"number","nativeSrc":"39912:18:65","nodeType":"YulLiteral","src":"39912:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"39901:2:65","nodeType":"YulIdentifier","src":"39901:2:65"},"nativeSrc":"39901:30:65","nodeType":"YulFunctionCall","src":"39901:30:65"},"nativeSrc":"39898:117:65","nodeType":"YulIf","src":"39898:117:65"},{"nativeSrc":"40024:21:65","nodeType":"YulAssignment","src":"40024:21:65","value":{"arguments":[{"name":"addr","nativeSrc":"40036:4:65","nodeType":"YulIdentifier","src":"40036:4:65"},{"kind":"number","nativeSrc":"40042:2:65","nodeType":"YulLiteral","src":"40042:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40032:3:65","nodeType":"YulIdentifier","src":"40032:3:65"},"nativeSrc":"40032:13:65","nodeType":"YulFunctionCall","src":"40032:13:65"},"variableNames":[{"name":"addr","nativeSrc":"40024:4:65","nodeType":"YulIdentifier","src":"40024:4:65"}]},{"body":{"nativeSrc":"40107:83:65","nodeType":"YulBlock","src":"40107:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"40109:77:65","nodeType":"YulIdentifier","src":"40109:77:65"},"nativeSrc":"40109:79:65","nodeType":"YulFunctionCall","src":"40109:79:65"},"nativeSrc":"40109:79:65","nodeType":"YulExpressionStatement","src":"40109:79:65"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"40061:4:65","nodeType":"YulIdentifier","src":"40061:4:65"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"40071:12:65","nodeType":"YulIdentifier","src":"40071:12:65"},"nativeSrc":"40071:14:65","nodeType":"YulFunctionCall","src":"40071:14:65"},{"arguments":[{"name":"length","nativeSrc":"40091:6:65","nodeType":"YulIdentifier","src":"40091:6:65"},{"kind":"number","nativeSrc":"40099:4:65","nodeType":"YulLiteral","src":"40099:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"40087:3:65","nodeType":"YulIdentifier","src":"40087:3:65"},"nativeSrc":"40087:17:65","nodeType":"YulFunctionCall","src":"40087:17:65"}],"functionName":{"name":"sub","nativeSrc":"40067:3:65","nodeType":"YulIdentifier","src":"40067:3:65"},"nativeSrc":"40067:38:65","nodeType":"YulFunctionCall","src":"40067:38:65"}],"functionName":{"name":"sgt","nativeSrc":"40057:3:65","nodeType":"YulIdentifier","src":"40057:3:65"},"nativeSrc":"40057:49:65","nodeType":"YulFunctionCall","src":"40057:49:65"},"nativeSrc":"40054:136:65","nodeType":"YulIf","src":"40054:136:65"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"39473:724:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"39524:8:65","nodeType":"YulTypedName","src":"39524:8:65","type":""},{"name":"ptr_to_tail","nativeSrc":"39534:11:65","nodeType":"YulTypedName","src":"39534:11:65","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"39550:4:65","nodeType":"YulTypedName","src":"39550:4:65","type":""},{"name":"length","nativeSrc":"39556:6:65","nodeType":"YulTypedName","src":"39556:6:65","type":""}],"src":"39473:724:65"},{"body":{"nativeSrc":"40309:127:65","nodeType":"YulBlock","src":"40309:127:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"40331:6:65","nodeType":"YulIdentifier","src":"40331:6:65"},{"kind":"number","nativeSrc":"40339:1:65","nodeType":"YulLiteral","src":"40339:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"40327:3:65","nodeType":"YulIdentifier","src":"40327:3:65"},"nativeSrc":"40327:14:65","nodeType":"YulFunctionCall","src":"40327:14:65"},{"hexValue":"4461696c79206c696d6974203c2073696e676c65207265636569766520747261","kind":"string","nativeSrc":"40343:34:65","nodeType":"YulLiteral","src":"40343:34:65","type":"","value":"Daily limit < single receive tra"}],"functionName":{"name":"mstore","nativeSrc":"40320:6:65","nodeType":"YulIdentifier","src":"40320:6:65"},"nativeSrc":"40320:58:65","nodeType":"YulFunctionCall","src":"40320:58:65"},"nativeSrc":"40320:58:65","nodeType":"YulExpressionStatement","src":"40320:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"40399:6:65","nodeType":"YulIdentifier","src":"40399:6:65"},{"kind":"number","nativeSrc":"40407:2:65","nodeType":"YulLiteral","src":"40407:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40395:3:65","nodeType":"YulIdentifier","src":"40395:3:65"},"nativeSrc":"40395:15:65","nodeType":"YulFunctionCall","src":"40395:15:65"},{"hexValue":"6e73616374696f6e206c696d6974","kind":"string","nativeSrc":"40412:16:65","nodeType":"YulLiteral","src":"40412:16:65","type":"","value":"nsaction limit"}],"functionName":{"name":"mstore","nativeSrc":"40388:6:65","nodeType":"YulIdentifier","src":"40388:6:65"},"nativeSrc":"40388:41:65","nodeType":"YulFunctionCall","src":"40388:41:65"},"nativeSrc":"40388:41:65","nodeType":"YulExpressionStatement","src":"40388:41:65"}]},"name":"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","nativeSrc":"40203:233:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"40301:6:65","nodeType":"YulTypedName","src":"40301:6:65","type":""}],"src":"40203:233:65"},{"body":{"nativeSrc":"40588:220:65","nodeType":"YulBlock","src":"40588:220:65","statements":[{"nativeSrc":"40598:74:65","nodeType":"YulAssignment","src":"40598:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"40664:3:65","nodeType":"YulIdentifier","src":"40664:3:65"},{"kind":"number","nativeSrc":"40669:2:65","nodeType":"YulLiteral","src":"40669:2:65","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"40605:58:65","nodeType":"YulIdentifier","src":"40605:58:65"},"nativeSrc":"40605:67:65","nodeType":"YulFunctionCall","src":"40605:67:65"},"variableNames":[{"name":"pos","nativeSrc":"40598:3:65","nodeType":"YulIdentifier","src":"40598:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"40770:3:65","nodeType":"YulIdentifier","src":"40770:3:65"}],"functionName":{"name":"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","nativeSrc":"40681:88:65","nodeType":"YulIdentifier","src":"40681:88:65"},"nativeSrc":"40681:93:65","nodeType":"YulFunctionCall","src":"40681:93:65"},"nativeSrc":"40681:93:65","nodeType":"YulExpressionStatement","src":"40681:93:65"},{"nativeSrc":"40783:19:65","nodeType":"YulAssignment","src":"40783:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"40794:3:65","nodeType":"YulIdentifier","src":"40794:3:65"},{"kind":"number","nativeSrc":"40799:2:65","nodeType":"YulLiteral","src":"40799:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40790:3:65","nodeType":"YulIdentifier","src":"40790:3:65"},"nativeSrc":"40790:12:65","nodeType":"YulFunctionCall","src":"40790:12:65"},"variableNames":[{"name":"end","nativeSrc":"40783:3:65","nodeType":"YulIdentifier","src":"40783:3:65"}]}]},"name":"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack","nativeSrc":"40442:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"40576:3:65","nodeType":"YulTypedName","src":"40576:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"40584:3:65","nodeType":"YulTypedName","src":"40584:3:65","type":""}],"src":"40442:366:65"},{"body":{"nativeSrc":"40985:248:65","nodeType":"YulBlock","src":"40985:248:65","statements":[{"nativeSrc":"40995:26:65","nodeType":"YulAssignment","src":"40995:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"41007:9:65","nodeType":"YulIdentifier","src":"41007:9:65"},{"kind":"number","nativeSrc":"41018:2:65","nodeType":"YulLiteral","src":"41018:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41003:3:65","nodeType":"YulIdentifier","src":"41003:3:65"},"nativeSrc":"41003:18:65","nodeType":"YulFunctionCall","src":"41003:18:65"},"variableNames":[{"name":"tail","nativeSrc":"40995:4:65","nodeType":"YulIdentifier","src":"40995:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41042:9:65","nodeType":"YulIdentifier","src":"41042:9:65"},{"kind":"number","nativeSrc":"41053:1:65","nodeType":"YulLiteral","src":"41053:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41038:3:65","nodeType":"YulIdentifier","src":"41038:3:65"},"nativeSrc":"41038:17:65","nodeType":"YulFunctionCall","src":"41038:17:65"},{"arguments":[{"name":"tail","nativeSrc":"41061:4:65","nodeType":"YulIdentifier","src":"41061:4:65"},{"name":"headStart","nativeSrc":"41067:9:65","nodeType":"YulIdentifier","src":"41067:9:65"}],"functionName":{"name":"sub","nativeSrc":"41057:3:65","nodeType":"YulIdentifier","src":"41057:3:65"},"nativeSrc":"41057:20:65","nodeType":"YulFunctionCall","src":"41057:20:65"}],"functionName":{"name":"mstore","nativeSrc":"41031:6:65","nodeType":"YulIdentifier","src":"41031:6:65"},"nativeSrc":"41031:47:65","nodeType":"YulFunctionCall","src":"41031:47:65"},"nativeSrc":"41031:47:65","nodeType":"YulExpressionStatement","src":"41031:47:65"},{"nativeSrc":"41087:139:65","nodeType":"YulAssignment","src":"41087:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"41221:4:65","nodeType":"YulIdentifier","src":"41221:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack","nativeSrc":"41095:124:65","nodeType":"YulIdentifier","src":"41095:124:65"},"nativeSrc":"41095:131:65","nodeType":"YulFunctionCall","src":"41095:131:65"},"variableNames":[{"name":"tail","nativeSrc":"41087:4:65","nodeType":"YulIdentifier","src":"41087:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40814:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40965:9:65","nodeType":"YulTypedName","src":"40965:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40980:4:65","nodeType":"YulTypedName","src":"40980:4:65","type":""}],"src":"40814:419:65"},{"body":{"nativeSrc":"41345:67:65","nodeType":"YulBlock","src":"41345:67:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"41367:6:65","nodeType":"YulIdentifier","src":"41367:6:65"},{"kind":"number","nativeSrc":"41375:1:65","nodeType":"YulLiteral","src":"41375:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41363:3:65","nodeType":"YulIdentifier","src":"41363:3:65"},"nativeSrc":"41363:14:65","nodeType":"YulFunctionCall","src":"41363:14:65"},{"hexValue":"73656e64416e6443616c6c2069732064697361626c6564","kind":"string","nativeSrc":"41379:25:65","nodeType":"YulLiteral","src":"41379:25:65","type":"","value":"sendAndCall is disabled"}],"functionName":{"name":"mstore","nativeSrc":"41356:6:65","nodeType":"YulIdentifier","src":"41356:6:65"},"nativeSrc":"41356:49:65","nodeType":"YulFunctionCall","src":"41356:49:65"},"nativeSrc":"41356:49:65","nodeType":"YulExpressionStatement","src":"41356:49:65"}]},"name":"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","nativeSrc":"41239:173:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"41337:6:65","nodeType":"YulTypedName","src":"41337:6:65","type":""}],"src":"41239:173:65"},{"body":{"nativeSrc":"41564:220:65","nodeType":"YulBlock","src":"41564:220:65","statements":[{"nativeSrc":"41574:74:65","nodeType":"YulAssignment","src":"41574:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"41640:3:65","nodeType":"YulIdentifier","src":"41640:3:65"},{"kind":"number","nativeSrc":"41645:2:65","nodeType":"YulLiteral","src":"41645:2:65","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"41581:58:65","nodeType":"YulIdentifier","src":"41581:58:65"},"nativeSrc":"41581:67:65","nodeType":"YulFunctionCall","src":"41581:67:65"},"variableNames":[{"name":"pos","nativeSrc":"41574:3:65","nodeType":"YulIdentifier","src":"41574:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"41746:3:65","nodeType":"YulIdentifier","src":"41746:3:65"}],"functionName":{"name":"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","nativeSrc":"41657:88:65","nodeType":"YulIdentifier","src":"41657:88:65"},"nativeSrc":"41657:93:65","nodeType":"YulFunctionCall","src":"41657:93:65"},"nativeSrc":"41657:93:65","nodeType":"YulExpressionStatement","src":"41657:93:65"},{"nativeSrc":"41759:19:65","nodeType":"YulAssignment","src":"41759:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"41770:3:65","nodeType":"YulIdentifier","src":"41770:3:65"},{"kind":"number","nativeSrc":"41775:2:65","nodeType":"YulLiteral","src":"41775:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41766:3:65","nodeType":"YulIdentifier","src":"41766:3:65"},"nativeSrc":"41766:12:65","nodeType":"YulFunctionCall","src":"41766:12:65"},"variableNames":[{"name":"end","nativeSrc":"41759:3:65","nodeType":"YulIdentifier","src":"41759:3:65"}]}]},"name":"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack","nativeSrc":"41418:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"41552:3:65","nodeType":"YulTypedName","src":"41552:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"41560:3:65","nodeType":"YulTypedName","src":"41560:3:65","type":""}],"src":"41418:366:65"},{"body":{"nativeSrc":"41961:248:65","nodeType":"YulBlock","src":"41961:248:65","statements":[{"nativeSrc":"41971:26:65","nodeType":"YulAssignment","src":"41971:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"41983:9:65","nodeType":"YulIdentifier","src":"41983:9:65"},{"kind":"number","nativeSrc":"41994:2:65","nodeType":"YulLiteral","src":"41994:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"41979:3:65","nodeType":"YulIdentifier","src":"41979:3:65"},"nativeSrc":"41979:18:65","nodeType":"YulFunctionCall","src":"41979:18:65"},"variableNames":[{"name":"tail","nativeSrc":"41971:4:65","nodeType":"YulIdentifier","src":"41971:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42018:9:65","nodeType":"YulIdentifier","src":"42018:9:65"},{"kind":"number","nativeSrc":"42029:1:65","nodeType":"YulLiteral","src":"42029:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"42014:3:65","nodeType":"YulIdentifier","src":"42014:3:65"},"nativeSrc":"42014:17:65","nodeType":"YulFunctionCall","src":"42014:17:65"},{"arguments":[{"name":"tail","nativeSrc":"42037:4:65","nodeType":"YulIdentifier","src":"42037:4:65"},{"name":"headStart","nativeSrc":"42043:9:65","nodeType":"YulIdentifier","src":"42043:9:65"}],"functionName":{"name":"sub","nativeSrc":"42033:3:65","nodeType":"YulIdentifier","src":"42033:3:65"},"nativeSrc":"42033:20:65","nodeType":"YulFunctionCall","src":"42033:20:65"}],"functionName":{"name":"mstore","nativeSrc":"42007:6:65","nodeType":"YulIdentifier","src":"42007:6:65"},"nativeSrc":"42007:47:65","nodeType":"YulFunctionCall","src":"42007:47:65"},"nativeSrc":"42007:47:65","nodeType":"YulExpressionStatement","src":"42007:47:65"},{"nativeSrc":"42063:139:65","nodeType":"YulAssignment","src":"42063:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"42197:4:65","nodeType":"YulIdentifier","src":"42197:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack","nativeSrc":"42071:124:65","nodeType":"YulIdentifier","src":"42071:124:65"},"nativeSrc":"42071:131:65","nodeType":"YulFunctionCall","src":"42071:131:65"},"variableNames":[{"name":"tail","nativeSrc":"42063:4:65","nodeType":"YulIdentifier","src":"42063:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"41790:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41941:9:65","nodeType":"YulTypedName","src":"41941:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"41956:4:65","nodeType":"YulTypedName","src":"41956:4:65","type":""}],"src":"41790:419:65"},{"body":{"nativeSrc":"42323:278:65","nodeType":"YulBlock","src":"42323:278:65","statements":[{"nativeSrc":"42333:52:65","nodeType":"YulVariableDeclaration","src":"42333:52:65","value":{"arguments":[{"name":"value","nativeSrc":"42379:5:65","nodeType":"YulIdentifier","src":"42379:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"42347:31:65","nodeType":"YulIdentifier","src":"42347:31:65"},"nativeSrc":"42347:38:65","nodeType":"YulFunctionCall","src":"42347:38:65"},"variables":[{"name":"length","nativeSrc":"42337:6:65","nodeType":"YulTypedName","src":"42337:6:65","type":""}]},{"nativeSrc":"42394:95:65","nodeType":"YulAssignment","src":"42394:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"42477:3:65","nodeType":"YulIdentifier","src":"42477:3:65"},{"name":"length","nativeSrc":"42482:6:65","nodeType":"YulIdentifier","src":"42482:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"42401:75:65","nodeType":"YulIdentifier","src":"42401:75:65"},"nativeSrc":"42401:88:65","nodeType":"YulFunctionCall","src":"42401:88:65"},"variableNames":[{"name":"pos","nativeSrc":"42394:3:65","nodeType":"YulIdentifier","src":"42394:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"42537:5:65","nodeType":"YulIdentifier","src":"42537:5:65"},{"kind":"number","nativeSrc":"42544:4:65","nodeType":"YulLiteral","src":"42544:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42533:3:65","nodeType":"YulIdentifier","src":"42533:3:65"},"nativeSrc":"42533:16:65","nodeType":"YulFunctionCall","src":"42533:16:65"},{"name":"pos","nativeSrc":"42551:3:65","nodeType":"YulIdentifier","src":"42551:3:65"},{"name":"length","nativeSrc":"42556:6:65","nodeType":"YulIdentifier","src":"42556:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"42498:34:65","nodeType":"YulIdentifier","src":"42498:34:65"},"nativeSrc":"42498:65:65","nodeType":"YulFunctionCall","src":"42498:65:65"},"nativeSrc":"42498:65:65","nodeType":"YulExpressionStatement","src":"42498:65:65"},{"nativeSrc":"42572:23:65","nodeType":"YulAssignment","src":"42572:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"42583:3:65","nodeType":"YulIdentifier","src":"42583:3:65"},{"name":"length","nativeSrc":"42588:6:65","nodeType":"YulIdentifier","src":"42588:6:65"}],"functionName":{"name":"add","nativeSrc":"42579:3:65","nodeType":"YulIdentifier","src":"42579:3:65"},"nativeSrc":"42579:16:65","nodeType":"YulFunctionCall","src":"42579:16:65"},"variableNames":[{"name":"end","nativeSrc":"42572:3:65","nodeType":"YulIdentifier","src":"42572:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"42215:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42304:5:65","nodeType":"YulTypedName","src":"42304:5:65","type":""},{"name":"pos","nativeSrc":"42311:3:65","nodeType":"YulTypedName","src":"42311:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"42319:3:65","nodeType":"YulTypedName","src":"42319:3:65","type":""}],"src":"42215:386:65"},{"body":{"nativeSrc":"42741:137:65","nodeType":"YulBlock","src":"42741:137:65","statements":[{"nativeSrc":"42752:100:65","nodeType":"YulAssignment","src":"42752:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"42839:6:65","nodeType":"YulIdentifier","src":"42839:6:65"},{"name":"pos","nativeSrc":"42848:3:65","nodeType":"YulIdentifier","src":"42848:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"42759:79:65","nodeType":"YulIdentifier","src":"42759:79:65"},"nativeSrc":"42759:93:65","nodeType":"YulFunctionCall","src":"42759:93:65"},"variableNames":[{"name":"pos","nativeSrc":"42752:3:65","nodeType":"YulIdentifier","src":"42752:3:65"}]},{"nativeSrc":"42862:10:65","nodeType":"YulAssignment","src":"42862:10:65","value":{"name":"pos","nativeSrc":"42869:3:65","nodeType":"YulIdentifier","src":"42869:3:65"},"variableNames":[{"name":"end","nativeSrc":"42862:3:65","nodeType":"YulIdentifier","src":"42862:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"42607:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"42720:3:65","nodeType":"YulTypedName","src":"42720:3:65","type":""},{"name":"value0","nativeSrc":"42726:6:65","nodeType":"YulTypedName","src":"42726:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"42737:3:65","nodeType":"YulTypedName","src":"42737:3:65","type":""}],"src":"42607:271:65"},{"body":{"nativeSrc":"42947:52:65","nodeType":"YulBlock","src":"42947:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"42964:3:65","nodeType":"YulIdentifier","src":"42964:3:65"},{"arguments":[{"name":"value","nativeSrc":"42986:5:65","nodeType":"YulIdentifier","src":"42986:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"42969:16:65","nodeType":"YulIdentifier","src":"42969:16:65"},"nativeSrc":"42969:23:65","nodeType":"YulFunctionCall","src":"42969:23:65"}],"functionName":{"name":"mstore","nativeSrc":"42957:6:65","nodeType":"YulIdentifier","src":"42957:6:65"},"nativeSrc":"42957:36:65","nodeType":"YulFunctionCall","src":"42957:36:65"},"nativeSrc":"42957:36:65","nodeType":"YulExpressionStatement","src":"42957:36:65"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"42884:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42935:5:65","nodeType":"YulTypedName","src":"42935:5:65","type":""},{"name":"pos","nativeSrc":"42942:3:65","nodeType":"YulTypedName","src":"42942:3:65","type":""}],"src":"42884:115:65"},{"body":{"nativeSrc":"43127:202:65","nodeType":"YulBlock","src":"43127:202:65","statements":[{"nativeSrc":"43137:26:65","nodeType":"YulAssignment","src":"43137:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"43149:9:65","nodeType":"YulIdentifier","src":"43149:9:65"},{"kind":"number","nativeSrc":"43160:2:65","nodeType":"YulLiteral","src":"43160:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43145:3:65","nodeType":"YulIdentifier","src":"43145:3:65"},"nativeSrc":"43145:18:65","nodeType":"YulFunctionCall","src":"43145:18:65"},"variableNames":[{"name":"tail","nativeSrc":"43137:4:65","nodeType":"YulIdentifier","src":"43137:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"43215:6:65","nodeType":"YulIdentifier","src":"43215:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"43228:9:65","nodeType":"YulIdentifier","src":"43228:9:65"},{"kind":"number","nativeSrc":"43239:1:65","nodeType":"YulLiteral","src":"43239:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43224:3:65","nodeType":"YulIdentifier","src":"43224:3:65"},"nativeSrc":"43224:17:65","nodeType":"YulFunctionCall","src":"43224:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"43173:41:65","nodeType":"YulIdentifier","src":"43173:41:65"},"nativeSrc":"43173:69:65","nodeType":"YulFunctionCall","src":"43173:69:65"},"nativeSrc":"43173:69:65","nodeType":"YulExpressionStatement","src":"43173:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"43294:6:65","nodeType":"YulIdentifier","src":"43294:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"43307:9:65","nodeType":"YulIdentifier","src":"43307:9:65"},{"kind":"number","nativeSrc":"43318:2:65","nodeType":"YulLiteral","src":"43318:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43303:3:65","nodeType":"YulIdentifier","src":"43303:3:65"},"nativeSrc":"43303:18:65","nodeType":"YulFunctionCall","src":"43303:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"43252:41:65","nodeType":"YulIdentifier","src":"43252:41:65"},"nativeSrc":"43252:70:65","nodeType":"YulFunctionCall","src":"43252:70:65"},"nativeSrc":"43252:70:65","nodeType":"YulExpressionStatement","src":"43252:70:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed","nativeSrc":"43005:324:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43091:9:65","nodeType":"YulTypedName","src":"43091:9:65","type":""},{"name":"value1","nativeSrc":"43103:6:65","nodeType":"YulTypedName","src":"43103:6:65","type":""},{"name":"value0","nativeSrc":"43111:6:65","nodeType":"YulTypedName","src":"43111:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43122:4:65","nodeType":"YulTypedName","src":"43122:4:65","type":""}],"src":"43005:324:65"},{"body":{"nativeSrc":"43441:73:65","nodeType":"YulBlock","src":"43441:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"43463:6:65","nodeType":"YulIdentifier","src":"43463:6:65"},{"kind":"number","nativeSrc":"43471:1:65","nodeType":"YulLiteral","src":"43471:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43459:3:65","nodeType":"YulIdentifier","src":"43459:3:65"},"nativeSrc":"43459:14:65","nodeType":"YulFunctionCall","src":"43459:14:65"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nativeSrc":"43475:31:65","nodeType":"YulLiteral","src":"43475:31:65","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nativeSrc":"43452:6:65","nodeType":"YulIdentifier","src":"43452:6:65"},"nativeSrc":"43452:55:65","nodeType":"YulFunctionCall","src":"43452:55:65"},"nativeSrc":"43452:55:65","nodeType":"YulExpressionStatement","src":"43452:55:65"}]},"name":"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","nativeSrc":"43335:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"43433:6:65","nodeType":"YulTypedName","src":"43433:6:65","type":""}],"src":"43335:179:65"},{"body":{"nativeSrc":"43666:220:65","nodeType":"YulBlock","src":"43666:220:65","statements":[{"nativeSrc":"43676:74:65","nodeType":"YulAssignment","src":"43676:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"43742:3:65","nodeType":"YulIdentifier","src":"43742:3:65"},{"kind":"number","nativeSrc":"43747:2:65","nodeType":"YulLiteral","src":"43747:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"43683:58:65","nodeType":"YulIdentifier","src":"43683:58:65"},"nativeSrc":"43683:67:65","nodeType":"YulFunctionCall","src":"43683:67:65"},"variableNames":[{"name":"pos","nativeSrc":"43676:3:65","nodeType":"YulIdentifier","src":"43676:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"43848:3:65","nodeType":"YulIdentifier","src":"43848:3:65"}],"functionName":{"name":"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","nativeSrc":"43759:88:65","nodeType":"YulIdentifier","src":"43759:88:65"},"nativeSrc":"43759:93:65","nodeType":"YulFunctionCall","src":"43759:93:65"},"nativeSrc":"43759:93:65","nodeType":"YulExpressionStatement","src":"43759:93:65"},{"nativeSrc":"43861:19:65","nodeType":"YulAssignment","src":"43861:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"43872:3:65","nodeType":"YulIdentifier","src":"43872:3:65"},{"kind":"number","nativeSrc":"43877:2:65","nodeType":"YulLiteral","src":"43877:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43868:3:65","nodeType":"YulIdentifier","src":"43868:3:65"},"nativeSrc":"43868:12:65","nodeType":"YulFunctionCall","src":"43868:12:65"},"variableNames":[{"name":"end","nativeSrc":"43861:3:65","nodeType":"YulIdentifier","src":"43861:3:65"}]}]},"name":"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack","nativeSrc":"43520:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"43654:3:65","nodeType":"YulTypedName","src":"43654:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"43662:3:65","nodeType":"YulTypedName","src":"43662:3:65","type":""}],"src":"43520:366:65"},{"body":{"nativeSrc":"44063:248:65","nodeType":"YulBlock","src":"44063:248:65","statements":[{"nativeSrc":"44073:26:65","nodeType":"YulAssignment","src":"44073:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"44085:9:65","nodeType":"YulIdentifier","src":"44085:9:65"},{"kind":"number","nativeSrc":"44096:2:65","nodeType":"YulLiteral","src":"44096:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44081:3:65","nodeType":"YulIdentifier","src":"44081:3:65"},"nativeSrc":"44081:18:65","nodeType":"YulFunctionCall","src":"44081:18:65"},"variableNames":[{"name":"tail","nativeSrc":"44073:4:65","nodeType":"YulIdentifier","src":"44073:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44120:9:65","nodeType":"YulIdentifier","src":"44120:9:65"},{"kind":"number","nativeSrc":"44131:1:65","nodeType":"YulLiteral","src":"44131:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"44116:3:65","nodeType":"YulIdentifier","src":"44116:3:65"},"nativeSrc":"44116:17:65","nodeType":"YulFunctionCall","src":"44116:17:65"},{"arguments":[{"name":"tail","nativeSrc":"44139:4:65","nodeType":"YulIdentifier","src":"44139:4:65"},{"name":"headStart","nativeSrc":"44145:9:65","nodeType":"YulIdentifier","src":"44145:9:65"}],"functionName":{"name":"sub","nativeSrc":"44135:3:65","nodeType":"YulIdentifier","src":"44135:3:65"},"nativeSrc":"44135:20:65","nodeType":"YulFunctionCall","src":"44135:20:65"}],"functionName":{"name":"mstore","nativeSrc":"44109:6:65","nodeType":"YulIdentifier","src":"44109:6:65"},"nativeSrc":"44109:47:65","nodeType":"YulFunctionCall","src":"44109:47:65"},"nativeSrc":"44109:47:65","nodeType":"YulExpressionStatement","src":"44109:47:65"},{"nativeSrc":"44165:139:65","nodeType":"YulAssignment","src":"44165:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"44299:4:65","nodeType":"YulIdentifier","src":"44299:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack","nativeSrc":"44173:124:65","nodeType":"YulIdentifier","src":"44173:124:65"},"nativeSrc":"44173:131:65","nodeType":"YulFunctionCall","src":"44173:131:65"},"variableNames":[{"name":"tail","nativeSrc":"44165:4:65","nodeType":"YulIdentifier","src":"44165:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"43892:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44043:9:65","nodeType":"YulTypedName","src":"44043:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"44058:4:65","nodeType":"YulTypedName","src":"44058:4:65","type":""}],"src":"43892:419:65"},{"body":{"nativeSrc":"44359:52:65","nodeType":"YulBlock","src":"44359:52:65","statements":[{"nativeSrc":"44369:35:65","nodeType":"YulAssignment","src":"44369:35:65","value":{"arguments":[{"kind":"number","nativeSrc":"44394:2:65","nodeType":"YulLiteral","src":"44394:2:65","type":"","value":"96"},{"name":"value","nativeSrc":"44398:5:65","nodeType":"YulIdentifier","src":"44398:5:65"}],"functionName":{"name":"shl","nativeSrc":"44390:3:65","nodeType":"YulIdentifier","src":"44390:3:65"},"nativeSrc":"44390:14:65","nodeType":"YulFunctionCall","src":"44390:14:65"},"variableNames":[{"name":"newValue","nativeSrc":"44369:8:65","nodeType":"YulIdentifier","src":"44369:8:65"}]}]},"name":"shift_left_96","nativeSrc":"44317:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44340:5:65","nodeType":"YulTypedName","src":"44340:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"44350:8:65","nodeType":"YulTypedName","src":"44350:8:65","type":""}],"src":"44317:94:65"},{"body":{"nativeSrc":"44464:47:65","nodeType":"YulBlock","src":"44464:47:65","statements":[{"nativeSrc":"44474:31:65","nodeType":"YulAssignment","src":"44474:31:65","value":{"arguments":[{"name":"value","nativeSrc":"44499:5:65","nodeType":"YulIdentifier","src":"44499:5:65"}],"functionName":{"name":"shift_left_96","nativeSrc":"44485:13:65","nodeType":"YulIdentifier","src":"44485:13:65"},"nativeSrc":"44485:20:65","nodeType":"YulFunctionCall","src":"44485:20:65"},"variableNames":[{"name":"aligned","nativeSrc":"44474:7:65","nodeType":"YulIdentifier","src":"44474:7:65"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"44417:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44446:5:65","nodeType":"YulTypedName","src":"44446:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"44456:7:65","nodeType":"YulTypedName","src":"44456:7:65","type":""}],"src":"44417:94:65"},{"body":{"nativeSrc":"44564:53:65","nodeType":"YulBlock","src":"44564:53:65","statements":[{"nativeSrc":"44574:37:65","nodeType":"YulAssignment","src":"44574:37:65","value":{"arguments":[{"name":"value","nativeSrc":"44605:5:65","nodeType":"YulIdentifier","src":"44605:5:65"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"44585:19:65","nodeType":"YulIdentifier","src":"44585:19:65"},"nativeSrc":"44585:26:65","nodeType":"YulFunctionCall","src":"44585:26:65"},"variableNames":[{"name":"aligned","nativeSrc":"44574:7:65","nodeType":"YulIdentifier","src":"44574:7:65"}]}]},"name":"leftAlign_t_address","nativeSrc":"44517:100:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44546:5:65","nodeType":"YulTypedName","src":"44546:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"44556:7:65","nodeType":"YulTypedName","src":"44556:7:65","type":""}],"src":"44517:100:65"},{"body":{"nativeSrc":"44706:74:65","nodeType":"YulBlock","src":"44706:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"44723:3:65","nodeType":"YulIdentifier","src":"44723:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"44766:5:65","nodeType":"YulIdentifier","src":"44766:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"44748:17:65","nodeType":"YulIdentifier","src":"44748:17:65"},"nativeSrc":"44748:24:65","nodeType":"YulFunctionCall","src":"44748:24:65"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"44728:19:65","nodeType":"YulIdentifier","src":"44728:19:65"},"nativeSrc":"44728:45:65","nodeType":"YulFunctionCall","src":"44728:45:65"}],"functionName":{"name":"mstore","nativeSrc":"44716:6:65","nodeType":"YulIdentifier","src":"44716:6:65"},"nativeSrc":"44716:58:65","nodeType":"YulFunctionCall","src":"44716:58:65"},"nativeSrc":"44716:58:65","nodeType":"YulExpressionStatement","src":"44716:58:65"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"44623:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44694:5:65","nodeType":"YulTypedName","src":"44694:5:65","type":""},{"name":"pos","nativeSrc":"44701:3:65","nodeType":"YulTypedName","src":"44701:3:65","type":""}],"src":"44623:157:65"},{"body":{"nativeSrc":"44958:260:65","nodeType":"YulBlock","src":"44958:260:65","statements":[{"nativeSrc":"44969:110:65","nodeType":"YulAssignment","src":"44969:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"45058:6:65","nodeType":"YulIdentifier","src":"45058:6:65"},{"name":"value1","nativeSrc":"45066:6:65","nodeType":"YulIdentifier","src":"45066:6:65"},{"name":"pos","nativeSrc":"45075:3:65","nodeType":"YulIdentifier","src":"45075:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"44976:81:65","nodeType":"YulIdentifier","src":"44976:81:65"},"nativeSrc":"44976:103:65","nodeType":"YulFunctionCall","src":"44976:103:65"},"variableNames":[{"name":"pos","nativeSrc":"44969:3:65","nodeType":"YulIdentifier","src":"44969:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"45151:6:65","nodeType":"YulIdentifier","src":"45151:6:65"},{"name":"pos","nativeSrc":"45160:3:65","nodeType":"YulIdentifier","src":"45160:3:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"45089:61:65","nodeType":"YulIdentifier","src":"45089:61:65"},"nativeSrc":"45089:75:65","nodeType":"YulFunctionCall","src":"45089:75:65"},"nativeSrc":"45089:75:65","nodeType":"YulExpressionStatement","src":"45089:75:65"},{"nativeSrc":"45173:19:65","nodeType":"YulAssignment","src":"45173:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"45184:3:65","nodeType":"YulIdentifier","src":"45184:3:65"},{"kind":"number","nativeSrc":"45189:2:65","nodeType":"YulLiteral","src":"45189:2:65","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"45180:3:65","nodeType":"YulIdentifier","src":"45180:3:65"},"nativeSrc":"45180:12:65","nodeType":"YulFunctionCall","src":"45180:12:65"},"variableNames":[{"name":"pos","nativeSrc":"45173:3:65","nodeType":"YulIdentifier","src":"45173:3:65"}]},{"nativeSrc":"45202:10:65","nodeType":"YulAssignment","src":"45202:10:65","value":{"name":"pos","nativeSrc":"45209:3:65","nodeType":"YulIdentifier","src":"45209:3:65"},"variableNames":[{"name":"end","nativeSrc":"45202:3:65","nodeType":"YulIdentifier","src":"45202:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"44786:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"44921:3:65","nodeType":"YulTypedName","src":"44921:3:65","type":""},{"name":"value2","nativeSrc":"44927:6:65","nodeType":"YulTypedName","src":"44927:6:65","type":""},{"name":"value1","nativeSrc":"44935:6:65","nodeType":"YulTypedName","src":"44935:6:65","type":""},{"name":"value0","nativeSrc":"44943:6:65","nodeType":"YulTypedName","src":"44943:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"44954:3:65","nodeType":"YulTypedName","src":"44954:3:65","type":""}],"src":"44786:432:65"},{"body":{"nativeSrc":"45277:87:65","nodeType":"YulBlock","src":"45277:87:65","statements":[{"nativeSrc":"45287:11:65","nodeType":"YulAssignment","src":"45287:11:65","value":{"name":"ptr","nativeSrc":"45295:3:65","nodeType":"YulIdentifier","src":"45295:3:65"},"variableNames":[{"name":"data","nativeSrc":"45287:4:65","nodeType":"YulIdentifier","src":"45287:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45315:1:65","nodeType":"YulLiteral","src":"45315:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"45318:3:65","nodeType":"YulIdentifier","src":"45318:3:65"}],"functionName":{"name":"mstore","nativeSrc":"45308:6:65","nodeType":"YulIdentifier","src":"45308:6:65"},"nativeSrc":"45308:14:65","nodeType":"YulFunctionCall","src":"45308:14:65"},"nativeSrc":"45308:14:65","nodeType":"YulExpressionStatement","src":"45308:14:65"},{"nativeSrc":"45331:26:65","nodeType":"YulAssignment","src":"45331:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"45349:1:65","nodeType":"YulLiteral","src":"45349:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"45352:4:65","nodeType":"YulLiteral","src":"45352:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"45339:9:65","nodeType":"YulIdentifier","src":"45339:9:65"},"nativeSrc":"45339:18:65","nodeType":"YulFunctionCall","src":"45339:18:65"},"variableNames":[{"name":"data","nativeSrc":"45331:4:65","nodeType":"YulIdentifier","src":"45331:4:65"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"45224:140:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"45264:3:65","nodeType":"YulTypedName","src":"45264:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"45272:4:65","nodeType":"YulTypedName","src":"45272:4:65","type":""}],"src":"45224:140:65"},{"body":{"nativeSrc":"45414:49:65","nodeType":"YulBlock","src":"45414:49:65","statements":[{"nativeSrc":"45424:33:65","nodeType":"YulAssignment","src":"45424:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"45442:5:65","nodeType":"YulIdentifier","src":"45442:5:65"},{"kind":"number","nativeSrc":"45449:2:65","nodeType":"YulLiteral","src":"45449:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"45438:3:65","nodeType":"YulIdentifier","src":"45438:3:65"},"nativeSrc":"45438:14:65","nodeType":"YulFunctionCall","src":"45438:14:65"},{"kind":"number","nativeSrc":"45454:2:65","nodeType":"YulLiteral","src":"45454:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"45434:3:65","nodeType":"YulIdentifier","src":"45434:3:65"},"nativeSrc":"45434:23:65","nodeType":"YulFunctionCall","src":"45434:23:65"},"variableNames":[{"name":"result","nativeSrc":"45424:6:65","nodeType":"YulIdentifier","src":"45424:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"45370:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45397:5:65","nodeType":"YulTypedName","src":"45397:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"45407:6:65","nodeType":"YulTypedName","src":"45407:6:65","type":""}],"src":"45370:93:65"},{"body":{"nativeSrc":"45522:54:65","nodeType":"YulBlock","src":"45522:54:65","statements":[{"nativeSrc":"45532:37:65","nodeType":"YulAssignment","src":"45532:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"45557:4:65","nodeType":"YulIdentifier","src":"45557:4:65"},{"name":"value","nativeSrc":"45563:5:65","nodeType":"YulIdentifier","src":"45563:5:65"}],"functionName":{"name":"shl","nativeSrc":"45553:3:65","nodeType":"YulIdentifier","src":"45553:3:65"},"nativeSrc":"45553:16:65","nodeType":"YulFunctionCall","src":"45553:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"45532:8:65","nodeType":"YulIdentifier","src":"45532:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"45469:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"45497:4:65","nodeType":"YulTypedName","src":"45497:4:65","type":""},{"name":"value","nativeSrc":"45503:5:65","nodeType":"YulTypedName","src":"45503:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"45513:8:65","nodeType":"YulTypedName","src":"45513:8:65","type":""}],"src":"45469:107:65"},{"body":{"nativeSrc":"45658:317:65","nodeType":"YulBlock","src":"45658:317:65","statements":[{"nativeSrc":"45668:35:65","nodeType":"YulVariableDeclaration","src":"45668:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"45689:10:65","nodeType":"YulIdentifier","src":"45689:10:65"},{"kind":"number","nativeSrc":"45701:1:65","nodeType":"YulLiteral","src":"45701:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"45685:3:65","nodeType":"YulIdentifier","src":"45685:3:65"},"nativeSrc":"45685:18:65","nodeType":"YulFunctionCall","src":"45685:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"45672:9:65","nodeType":"YulTypedName","src":"45672:9:65","type":""}]},{"nativeSrc":"45712:109:65","nodeType":"YulVariableDeclaration","src":"45712:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"45743:9:65","nodeType":"YulIdentifier","src":"45743:9:65"},{"kind":"number","nativeSrc":"45754:66:65","nodeType":"YulLiteral","src":"45754:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"45724:18:65","nodeType":"YulIdentifier","src":"45724:18:65"},"nativeSrc":"45724:97:65","nodeType":"YulFunctionCall","src":"45724:97:65"},"variables":[{"name":"mask","nativeSrc":"45716:4:65","nodeType":"YulTypedName","src":"45716:4:65","type":""}]},{"nativeSrc":"45830:51:65","nodeType":"YulAssignment","src":"45830:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"45861:9:65","nodeType":"YulIdentifier","src":"45861:9:65"},{"name":"toInsert","nativeSrc":"45872:8:65","nodeType":"YulIdentifier","src":"45872:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"45842:18:65","nodeType":"YulIdentifier","src":"45842:18:65"},"nativeSrc":"45842:39:65","nodeType":"YulFunctionCall","src":"45842:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"45830:8:65","nodeType":"YulIdentifier","src":"45830:8:65"}]},{"nativeSrc":"45890:30:65","nodeType":"YulAssignment","src":"45890:30:65","value":{"arguments":[{"name":"value","nativeSrc":"45903:5:65","nodeType":"YulIdentifier","src":"45903:5:65"},{"arguments":[{"name":"mask","nativeSrc":"45914:4:65","nodeType":"YulIdentifier","src":"45914:4:65"}],"functionName":{"name":"not","nativeSrc":"45910:3:65","nodeType":"YulIdentifier","src":"45910:3:65"},"nativeSrc":"45910:9:65","nodeType":"YulFunctionCall","src":"45910:9:65"}],"functionName":{"name":"and","nativeSrc":"45899:3:65","nodeType":"YulIdentifier","src":"45899:3:65"},"nativeSrc":"45899:21:65","nodeType":"YulFunctionCall","src":"45899:21:65"},"variableNames":[{"name":"value","nativeSrc":"45890:5:65","nodeType":"YulIdentifier","src":"45890:5:65"}]},{"nativeSrc":"45929:40:65","nodeType":"YulAssignment","src":"45929:40:65","value":{"arguments":[{"name":"value","nativeSrc":"45942:5:65","nodeType":"YulIdentifier","src":"45942:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"45953:8:65","nodeType":"YulIdentifier","src":"45953:8:65"},{"name":"mask","nativeSrc":"45963:4:65","nodeType":"YulIdentifier","src":"45963:4:65"}],"functionName":{"name":"and","nativeSrc":"45949:3:65","nodeType":"YulIdentifier","src":"45949:3:65"},"nativeSrc":"45949:19:65","nodeType":"YulFunctionCall","src":"45949:19:65"}],"functionName":{"name":"or","nativeSrc":"45939:2:65","nodeType":"YulIdentifier","src":"45939:2:65"},"nativeSrc":"45939:30:65","nodeType":"YulFunctionCall","src":"45939:30:65"},"variableNames":[{"name":"result","nativeSrc":"45929:6:65","nodeType":"YulIdentifier","src":"45929:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"45582:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45619:5:65","nodeType":"YulTypedName","src":"45619:5:65","type":""},{"name":"shiftBytes","nativeSrc":"45626:10:65","nodeType":"YulTypedName","src":"45626:10:65","type":""},{"name":"toInsert","nativeSrc":"45638:8:65","nodeType":"YulTypedName","src":"45638:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"45651:6:65","nodeType":"YulTypedName","src":"45651:6:65","type":""}],"src":"45582:393:65"},{"body":{"nativeSrc":"46041:82:65","nodeType":"YulBlock","src":"46041:82:65","statements":[{"nativeSrc":"46051:66:65","nodeType":"YulAssignment","src":"46051:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"46109:5:65","nodeType":"YulIdentifier","src":"46109:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"46091:17:65","nodeType":"YulIdentifier","src":"46091:17:65"},"nativeSrc":"46091:24:65","nodeType":"YulFunctionCall","src":"46091:24:65"}],"functionName":{"name":"identity","nativeSrc":"46082:8:65","nodeType":"YulIdentifier","src":"46082:8:65"},"nativeSrc":"46082:34:65","nodeType":"YulFunctionCall","src":"46082:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"46064:17:65","nodeType":"YulIdentifier","src":"46064:17:65"},"nativeSrc":"46064:53:65","nodeType":"YulFunctionCall","src":"46064:53:65"},"variableNames":[{"name":"converted","nativeSrc":"46051:9:65","nodeType":"YulIdentifier","src":"46051:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"45981:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"46021:5:65","nodeType":"YulTypedName","src":"46021:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"46031:9:65","nodeType":"YulTypedName","src":"46031:9:65","type":""}],"src":"45981:142:65"},{"body":{"nativeSrc":"46176:28:65","nodeType":"YulBlock","src":"46176:28:65","statements":[{"nativeSrc":"46186:12:65","nodeType":"YulAssignment","src":"46186:12:65","value":{"name":"value","nativeSrc":"46193:5:65","nodeType":"YulIdentifier","src":"46193:5:65"},"variableNames":[{"name":"ret","nativeSrc":"46186:3:65","nodeType":"YulIdentifier","src":"46186:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"46129:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"46162:5:65","nodeType":"YulTypedName","src":"46162:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"46172:3:65","nodeType":"YulTypedName","src":"46172:3:65","type":""}],"src":"46129:75:65"},{"body":{"nativeSrc":"46286:193:65","nodeType":"YulBlock","src":"46286:193:65","statements":[{"nativeSrc":"46296:63:65","nodeType":"YulVariableDeclaration","src":"46296:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"46351:7:65","nodeType":"YulIdentifier","src":"46351:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"46320:30:65","nodeType":"YulIdentifier","src":"46320:30:65"},"nativeSrc":"46320:39:65","nodeType":"YulFunctionCall","src":"46320:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"46300:16:65","nodeType":"YulTypedName","src":"46300:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"46375:4:65","nodeType":"YulIdentifier","src":"46375:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"46415:4:65","nodeType":"YulIdentifier","src":"46415:4:65"}],"functionName":{"name":"sload","nativeSrc":"46409:5:65","nodeType":"YulIdentifier","src":"46409:5:65"},"nativeSrc":"46409:11:65","nodeType":"YulFunctionCall","src":"46409:11:65"},{"name":"offset","nativeSrc":"46422:6:65","nodeType":"YulIdentifier","src":"46422:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"46454:16:65","nodeType":"YulIdentifier","src":"46454:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"46430:23:65","nodeType":"YulIdentifier","src":"46430:23:65"},"nativeSrc":"46430:41:65","nodeType":"YulFunctionCall","src":"46430:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"46381:27:65","nodeType":"YulIdentifier","src":"46381:27:65"},"nativeSrc":"46381:91:65","nodeType":"YulFunctionCall","src":"46381:91:65"}],"functionName":{"name":"sstore","nativeSrc":"46368:6:65","nodeType":"YulIdentifier","src":"46368:6:65"},"nativeSrc":"46368:105:65","nodeType":"YulFunctionCall","src":"46368:105:65"},"nativeSrc":"46368:105:65","nodeType":"YulExpressionStatement","src":"46368:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"46210:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"46263:4:65","nodeType":"YulTypedName","src":"46263:4:65","type":""},{"name":"offset","nativeSrc":"46269:6:65","nodeType":"YulTypedName","src":"46269:6:65","type":""},{"name":"value_0","nativeSrc":"46277:7:65","nodeType":"YulTypedName","src":"46277:7:65","type":""}],"src":"46210:269:65"},{"body":{"nativeSrc":"46534:24:65","nodeType":"YulBlock","src":"46534:24:65","statements":[{"nativeSrc":"46544:8:65","nodeType":"YulAssignment","src":"46544:8:65","value":{"kind":"number","nativeSrc":"46551:1:65","nodeType":"YulLiteral","src":"46551:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"46544:3:65","nodeType":"YulIdentifier","src":"46544:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"46485:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"46530:3:65","nodeType":"YulTypedName","src":"46530:3:65","type":""}],"src":"46485:73:65"},{"body":{"nativeSrc":"46617:136:65","nodeType":"YulBlock","src":"46617:136:65","statements":[{"nativeSrc":"46627:46:65","nodeType":"YulVariableDeclaration","src":"46627:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"46641:30:65","nodeType":"YulIdentifier","src":"46641:30:65"},"nativeSrc":"46641:32:65","nodeType":"YulFunctionCall","src":"46641:32:65"},"variables":[{"name":"zero_0","nativeSrc":"46631:6:65","nodeType":"YulTypedName","src":"46631:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"46726:4:65","nodeType":"YulIdentifier","src":"46726:4:65"},{"name":"offset","nativeSrc":"46732:6:65","nodeType":"YulIdentifier","src":"46732:6:65"},{"name":"zero_0","nativeSrc":"46740:6:65","nodeType":"YulIdentifier","src":"46740:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"46682:43:65","nodeType":"YulIdentifier","src":"46682:43:65"},"nativeSrc":"46682:65:65","nodeType":"YulFunctionCall","src":"46682:65:65"},"nativeSrc":"46682:65:65","nodeType":"YulExpressionStatement","src":"46682:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"46564:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"46603:4:65","nodeType":"YulTypedName","src":"46603:4:65","type":""},{"name":"offset","nativeSrc":"46609:6:65","nodeType":"YulTypedName","src":"46609:6:65","type":""}],"src":"46564:189:65"},{"body":{"nativeSrc":"46809:136:65","nodeType":"YulBlock","src":"46809:136:65","statements":[{"body":{"nativeSrc":"46876:63:65","nodeType":"YulBlock","src":"46876:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"46920:5:65","nodeType":"YulIdentifier","src":"46920:5:65"},{"kind":"number","nativeSrc":"46927:1:65","nodeType":"YulLiteral","src":"46927:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"46890:29:65","nodeType":"YulIdentifier","src":"46890:29:65"},"nativeSrc":"46890:39:65","nodeType":"YulFunctionCall","src":"46890:39:65"},"nativeSrc":"46890:39:65","nodeType":"YulExpressionStatement","src":"46890:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"46829:5:65","nodeType":"YulIdentifier","src":"46829:5:65"},{"name":"end","nativeSrc":"46836:3:65","nodeType":"YulIdentifier","src":"46836:3:65"}],"functionName":{"name":"lt","nativeSrc":"46826:2:65","nodeType":"YulIdentifier","src":"46826:2:65"},"nativeSrc":"46826:14:65","nodeType":"YulFunctionCall","src":"46826:14:65"},"nativeSrc":"46819:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"46841:26:65","nodeType":"YulBlock","src":"46841:26:65","statements":[{"nativeSrc":"46843:22:65","nodeType":"YulAssignment","src":"46843:22:65","value":{"arguments":[{"name":"start","nativeSrc":"46856:5:65","nodeType":"YulIdentifier","src":"46856:5:65"},{"kind":"number","nativeSrc":"46863:1:65","nodeType":"YulLiteral","src":"46863:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"46852:3:65","nodeType":"YulIdentifier","src":"46852:3:65"},"nativeSrc":"46852:13:65","nodeType":"YulFunctionCall","src":"46852:13:65"},"variableNames":[{"name":"start","nativeSrc":"46843:5:65","nodeType":"YulIdentifier","src":"46843:5:65"}]}]},"pre":{"nativeSrc":"46823:2:65","nodeType":"YulBlock","src":"46823:2:65","statements":[]},"src":"46819:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"46759:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"46797:5:65","nodeType":"YulTypedName","src":"46797:5:65","type":""},{"name":"end","nativeSrc":"46804:3:65","nodeType":"YulTypedName","src":"46804:3:65","type":""}],"src":"46759:186:65"},{"body":{"nativeSrc":"47029:463:65","nodeType":"YulBlock","src":"47029:463:65","statements":[{"body":{"nativeSrc":"47055:430:65","nodeType":"YulBlock","src":"47055:430:65","statements":[{"nativeSrc":"47069:53:65","nodeType":"YulVariableDeclaration","src":"47069:53:65","value":{"arguments":[{"name":"array","nativeSrc":"47116:5:65","nodeType":"YulIdentifier","src":"47116:5:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"47085:30:65","nodeType":"YulIdentifier","src":"47085:30:65"},"nativeSrc":"47085:37:65","nodeType":"YulFunctionCall","src":"47085:37:65"},"variables":[{"name":"dataArea","nativeSrc":"47073:8:65","nodeType":"YulTypedName","src":"47073:8:65","type":""}]},{"nativeSrc":"47135:63:65","nodeType":"YulVariableDeclaration","src":"47135:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"47158:8:65","nodeType":"YulIdentifier","src":"47158:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"47186:10:65","nodeType":"YulIdentifier","src":"47186:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"47168:17:65","nodeType":"YulIdentifier","src":"47168:17:65"},"nativeSrc":"47168:29:65","nodeType":"YulFunctionCall","src":"47168:29:65"}],"functionName":{"name":"add","nativeSrc":"47154:3:65","nodeType":"YulIdentifier","src":"47154:3:65"},"nativeSrc":"47154:44:65","nodeType":"YulFunctionCall","src":"47154:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"47139:11:65","nodeType":"YulTypedName","src":"47139:11:65","type":""}]},{"body":{"nativeSrc":"47355:27:65","nodeType":"YulBlock","src":"47355:27:65","statements":[{"nativeSrc":"47357:23:65","nodeType":"YulAssignment","src":"47357:23:65","value":{"name":"dataArea","nativeSrc":"47372:8:65","nodeType":"YulIdentifier","src":"47372:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"47357:11:65","nodeType":"YulIdentifier","src":"47357:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"47339:10:65","nodeType":"YulIdentifier","src":"47339:10:65"},{"kind":"number","nativeSrc":"47351:2:65","nodeType":"YulLiteral","src":"47351:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"47336:2:65","nodeType":"YulIdentifier","src":"47336:2:65"},"nativeSrc":"47336:18:65","nodeType":"YulFunctionCall","src":"47336:18:65"},"nativeSrc":"47333:49:65","nodeType":"YulIf","src":"47333:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"47424:11:65","nodeType":"YulIdentifier","src":"47424:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"47441:8:65","nodeType":"YulIdentifier","src":"47441:8:65"},{"arguments":[{"name":"len","nativeSrc":"47469:3:65","nodeType":"YulIdentifier","src":"47469:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"47451:17:65","nodeType":"YulIdentifier","src":"47451:17:65"},"nativeSrc":"47451:22:65","nodeType":"YulFunctionCall","src":"47451:22:65"}],"functionName":{"name":"add","nativeSrc":"47437:3:65","nodeType":"YulIdentifier","src":"47437:3:65"},"nativeSrc":"47437:37:65","nodeType":"YulFunctionCall","src":"47437:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"47395:28:65","nodeType":"YulIdentifier","src":"47395:28:65"},"nativeSrc":"47395:80:65","nodeType":"YulFunctionCall","src":"47395:80:65"},"nativeSrc":"47395:80:65","nodeType":"YulExpressionStatement","src":"47395:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"47046:3:65","nodeType":"YulIdentifier","src":"47046:3:65"},{"kind":"number","nativeSrc":"47051:2:65","nodeType":"YulLiteral","src":"47051:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"47043:2:65","nodeType":"YulIdentifier","src":"47043:2:65"},"nativeSrc":"47043:11:65","nodeType":"YulFunctionCall","src":"47043:11:65"},"nativeSrc":"47040:445:65","nodeType":"YulIf","src":"47040:445:65"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"46951:541:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"47005:5:65","nodeType":"YulTypedName","src":"47005:5:65","type":""},{"name":"len","nativeSrc":"47012:3:65","nodeType":"YulTypedName","src":"47012:3:65","type":""},{"name":"startIndex","nativeSrc":"47017:10:65","nodeType":"YulTypedName","src":"47017:10:65","type":""}],"src":"46951:541:65"},{"body":{"nativeSrc":"47561:54:65","nodeType":"YulBlock","src":"47561:54:65","statements":[{"nativeSrc":"47571:37:65","nodeType":"YulAssignment","src":"47571:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"47596:4:65","nodeType":"YulIdentifier","src":"47596:4:65"},{"name":"value","nativeSrc":"47602:5:65","nodeType":"YulIdentifier","src":"47602:5:65"}],"functionName":{"name":"shr","nativeSrc":"47592:3:65","nodeType":"YulIdentifier","src":"47592:3:65"},"nativeSrc":"47592:16:65","nodeType":"YulFunctionCall","src":"47592:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"47571:8:65","nodeType":"YulIdentifier","src":"47571:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"47498:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"47536:4:65","nodeType":"YulTypedName","src":"47536:4:65","type":""},{"name":"value","nativeSrc":"47542:5:65","nodeType":"YulTypedName","src":"47542:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"47552:8:65","nodeType":"YulTypedName","src":"47552:8:65","type":""}],"src":"47498:117:65"},{"body":{"nativeSrc":"47672:118:65","nodeType":"YulBlock","src":"47672:118:65","statements":[{"nativeSrc":"47682:68:65","nodeType":"YulVariableDeclaration","src":"47682:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47731:1:65","nodeType":"YulLiteral","src":"47731:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"47734:5:65","nodeType":"YulIdentifier","src":"47734:5:65"}],"functionName":{"name":"mul","nativeSrc":"47727:3:65","nodeType":"YulIdentifier","src":"47727:3:65"},"nativeSrc":"47727:13:65","nodeType":"YulFunctionCall","src":"47727:13:65"},{"arguments":[{"kind":"number","nativeSrc":"47746:1:65","nodeType":"YulLiteral","src":"47746:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"47742:3:65","nodeType":"YulIdentifier","src":"47742:3:65"},"nativeSrc":"47742:6:65","nodeType":"YulFunctionCall","src":"47742:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"47698:28:65","nodeType":"YulIdentifier","src":"47698:28:65"},"nativeSrc":"47698:51:65","nodeType":"YulFunctionCall","src":"47698:51:65"}],"functionName":{"name":"not","nativeSrc":"47694:3:65","nodeType":"YulIdentifier","src":"47694:3:65"},"nativeSrc":"47694:56:65","nodeType":"YulFunctionCall","src":"47694:56:65"},"variables":[{"name":"mask","nativeSrc":"47686:4:65","nodeType":"YulTypedName","src":"47686:4:65","type":""}]},{"nativeSrc":"47759:25:65","nodeType":"YulAssignment","src":"47759:25:65","value":{"arguments":[{"name":"data","nativeSrc":"47773:4:65","nodeType":"YulIdentifier","src":"47773:4:65"},{"name":"mask","nativeSrc":"47779:4:65","nodeType":"YulIdentifier","src":"47779:4:65"}],"functionName":{"name":"and","nativeSrc":"47769:3:65","nodeType":"YulIdentifier","src":"47769:3:65"},"nativeSrc":"47769:15:65","nodeType":"YulFunctionCall","src":"47769:15:65"},"variableNames":[{"name":"result","nativeSrc":"47759:6:65","nodeType":"YulIdentifier","src":"47759:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"47621:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"47649:4:65","nodeType":"YulTypedName","src":"47649:4:65","type":""},{"name":"bytes","nativeSrc":"47655:5:65","nodeType":"YulTypedName","src":"47655:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"47665:6:65","nodeType":"YulTypedName","src":"47665:6:65","type":""}],"src":"47621:169:65"},{"body":{"nativeSrc":"47876:214:65","nodeType":"YulBlock","src":"47876:214:65","statements":[{"nativeSrc":"48009:37:65","nodeType":"YulAssignment","src":"48009:37:65","value":{"arguments":[{"name":"data","nativeSrc":"48036:4:65","nodeType":"YulIdentifier","src":"48036:4:65"},{"name":"len","nativeSrc":"48042:3:65","nodeType":"YulIdentifier","src":"48042:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"48017:18:65","nodeType":"YulIdentifier","src":"48017:18:65"},"nativeSrc":"48017:29:65","nodeType":"YulFunctionCall","src":"48017:29:65"},"variableNames":[{"name":"data","nativeSrc":"48009:4:65","nodeType":"YulIdentifier","src":"48009:4:65"}]},{"nativeSrc":"48055:29:65","nodeType":"YulAssignment","src":"48055:29:65","value":{"arguments":[{"name":"data","nativeSrc":"48066:4:65","nodeType":"YulIdentifier","src":"48066:4:65"},{"arguments":[{"kind":"number","nativeSrc":"48076:1:65","nodeType":"YulLiteral","src":"48076:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"48079:3:65","nodeType":"YulIdentifier","src":"48079:3:65"}],"functionName":{"name":"mul","nativeSrc":"48072:3:65","nodeType":"YulIdentifier","src":"48072:3:65"},"nativeSrc":"48072:11:65","nodeType":"YulFunctionCall","src":"48072:11:65"}],"functionName":{"name":"or","nativeSrc":"48063:2:65","nodeType":"YulIdentifier","src":"48063:2:65"},"nativeSrc":"48063:21:65","nodeType":"YulFunctionCall","src":"48063:21:65"},"variableNames":[{"name":"used","nativeSrc":"48055:4:65","nodeType":"YulIdentifier","src":"48055:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"47795:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"47857:4:65","nodeType":"YulTypedName","src":"47857:4:65","type":""},{"name":"len","nativeSrc":"47863:3:65","nodeType":"YulTypedName","src":"47863:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"47871:4:65","nodeType":"YulTypedName","src":"47871:4:65","type":""}],"src":"47795:295:65"},{"body":{"nativeSrc":"48185:1300:65","nodeType":"YulBlock","src":"48185:1300:65","statements":[{"nativeSrc":"48196:50:65","nodeType":"YulVariableDeclaration","src":"48196:50:65","value":{"arguments":[{"name":"src","nativeSrc":"48242:3:65","nodeType":"YulIdentifier","src":"48242:3:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"48210:31:65","nodeType":"YulIdentifier","src":"48210:31:65"},"nativeSrc":"48210:36:65","nodeType":"YulFunctionCall","src":"48210:36:65"},"variables":[{"name":"newLen","nativeSrc":"48200:6:65","nodeType":"YulTypedName","src":"48200:6:65","type":""}]},{"body":{"nativeSrc":"48331:22:65","nodeType":"YulBlock","src":"48331:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"48333:16:65","nodeType":"YulIdentifier","src":"48333:16:65"},"nativeSrc":"48333:18:65","nodeType":"YulFunctionCall","src":"48333:18:65"},"nativeSrc":"48333:18:65","nodeType":"YulExpressionStatement","src":"48333:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"48303:6:65","nodeType":"YulIdentifier","src":"48303:6:65"},{"kind":"number","nativeSrc":"48311:18:65","nodeType":"YulLiteral","src":"48311:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"48300:2:65","nodeType":"YulIdentifier","src":"48300:2:65"},"nativeSrc":"48300:30:65","nodeType":"YulFunctionCall","src":"48300:30:65"},"nativeSrc":"48297:56:65","nodeType":"YulIf","src":"48297:56:65"},{"nativeSrc":"48363:52:65","nodeType":"YulVariableDeclaration","src":"48363:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"48409:4:65","nodeType":"YulIdentifier","src":"48409:4:65"}],"functionName":{"name":"sload","nativeSrc":"48403:5:65","nodeType":"YulIdentifier","src":"48403:5:65"},"nativeSrc":"48403:11:65","nodeType":"YulFunctionCall","src":"48403:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"48377:25:65","nodeType":"YulIdentifier","src":"48377:25:65"},"nativeSrc":"48377:38:65","nodeType":"YulFunctionCall","src":"48377:38:65"},"variables":[{"name":"oldLen","nativeSrc":"48367:6:65","nodeType":"YulTypedName","src":"48367:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"48507:4:65","nodeType":"YulIdentifier","src":"48507:4:65"},{"name":"oldLen","nativeSrc":"48513:6:65","nodeType":"YulIdentifier","src":"48513:6:65"},{"name":"newLen","nativeSrc":"48521:6:65","nodeType":"YulIdentifier","src":"48521:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"48462:44:65","nodeType":"YulIdentifier","src":"48462:44:65"},"nativeSrc":"48462:66:65","nodeType":"YulFunctionCall","src":"48462:66:65"},"nativeSrc":"48462:66:65","nodeType":"YulExpressionStatement","src":"48462:66:65"},{"nativeSrc":"48538:18:65","nodeType":"YulVariableDeclaration","src":"48538:18:65","value":{"kind":"number","nativeSrc":"48555:1:65","nodeType":"YulLiteral","src":"48555:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"48542:9:65","nodeType":"YulTypedName","src":"48542:9:65","type":""}]},{"nativeSrc":"48566:17:65","nodeType":"YulAssignment","src":"48566:17:65","value":{"kind":"number","nativeSrc":"48579:4:65","nodeType":"YulLiteral","src":"48579:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"48566:9:65","nodeType":"YulIdentifier","src":"48566:9:65"}]},{"cases":[{"body":{"nativeSrc":"48630:610:65","nodeType":"YulBlock","src":"48630:610:65","statements":[{"nativeSrc":"48644:37:65","nodeType":"YulVariableDeclaration","src":"48644:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"48663:6:65","nodeType":"YulIdentifier","src":"48663:6:65"},{"arguments":[{"kind":"number","nativeSrc":"48675:4:65","nodeType":"YulLiteral","src":"48675:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"48671:3:65","nodeType":"YulIdentifier","src":"48671:3:65"},"nativeSrc":"48671:9:65","nodeType":"YulFunctionCall","src":"48671:9:65"}],"functionName":{"name":"and","nativeSrc":"48659:3:65","nodeType":"YulIdentifier","src":"48659:3:65"},"nativeSrc":"48659:22:65","nodeType":"YulFunctionCall","src":"48659:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"48648:7:65","nodeType":"YulTypedName","src":"48648:7:65","type":""}]},{"nativeSrc":"48695:50:65","nodeType":"YulVariableDeclaration","src":"48695:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"48740:4:65","nodeType":"YulIdentifier","src":"48740:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"48709:30:65","nodeType":"YulIdentifier","src":"48709:30:65"},"nativeSrc":"48709:36:65","nodeType":"YulFunctionCall","src":"48709:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"48699:6:65","nodeType":"YulTypedName","src":"48699:6:65","type":""}]},{"nativeSrc":"48758:10:65","nodeType":"YulVariableDeclaration","src":"48758:10:65","value":{"kind":"number","nativeSrc":"48767:1:65","nodeType":"YulLiteral","src":"48767:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"48762:1:65","nodeType":"YulTypedName","src":"48762:1:65","type":""}]},{"body":{"nativeSrc":"48826:163:65","nodeType":"YulBlock","src":"48826:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"48851:6:65","nodeType":"YulIdentifier","src":"48851:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"48869:3:65","nodeType":"YulIdentifier","src":"48869:3:65"},{"name":"srcOffset","nativeSrc":"48874:9:65","nodeType":"YulIdentifier","src":"48874:9:65"}],"functionName":{"name":"add","nativeSrc":"48865:3:65","nodeType":"YulIdentifier","src":"48865:3:65"},"nativeSrc":"48865:19:65","nodeType":"YulFunctionCall","src":"48865:19:65"}],"functionName":{"name":"mload","nativeSrc":"48859:5:65","nodeType":"YulIdentifier","src":"48859:5:65"},"nativeSrc":"48859:26:65","nodeType":"YulFunctionCall","src":"48859:26:65"}],"functionName":{"name":"sstore","nativeSrc":"48844:6:65","nodeType":"YulIdentifier","src":"48844:6:65"},"nativeSrc":"48844:42:65","nodeType":"YulFunctionCall","src":"48844:42:65"},"nativeSrc":"48844:42:65","nodeType":"YulExpressionStatement","src":"48844:42:65"},{"nativeSrc":"48903:24:65","nodeType":"YulAssignment","src":"48903:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"48917:6:65","nodeType":"YulIdentifier","src":"48917:6:65"},{"kind":"number","nativeSrc":"48925:1:65","nodeType":"YulLiteral","src":"48925:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"48913:3:65","nodeType":"YulIdentifier","src":"48913:3:65"},"nativeSrc":"48913:14:65","nodeType":"YulFunctionCall","src":"48913:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"48903:6:65","nodeType":"YulIdentifier","src":"48903:6:65"}]},{"nativeSrc":"48944:31:65","nodeType":"YulAssignment","src":"48944:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"48961:9:65","nodeType":"YulIdentifier","src":"48961:9:65"},{"kind":"number","nativeSrc":"48972:2:65","nodeType":"YulLiteral","src":"48972:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"48957:3:65","nodeType":"YulIdentifier","src":"48957:3:65"},"nativeSrc":"48957:18:65","nodeType":"YulFunctionCall","src":"48957:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"48944:9:65","nodeType":"YulIdentifier","src":"48944:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"48792:1:65","nodeType":"YulIdentifier","src":"48792:1:65"},{"name":"loopEnd","nativeSrc":"48795:7:65","nodeType":"YulIdentifier","src":"48795:7:65"}],"functionName":{"name":"lt","nativeSrc":"48789:2:65","nodeType":"YulIdentifier","src":"48789:2:65"},"nativeSrc":"48789:14:65","nodeType":"YulFunctionCall","src":"48789:14:65"},"nativeSrc":"48781:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"48804:21:65","nodeType":"YulBlock","src":"48804:21:65","statements":[{"nativeSrc":"48806:17:65","nodeType":"YulAssignment","src":"48806:17:65","value":{"arguments":[{"name":"i","nativeSrc":"48815:1:65","nodeType":"YulIdentifier","src":"48815:1:65"},{"kind":"number","nativeSrc":"48818:4:65","nodeType":"YulLiteral","src":"48818:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48811:3:65","nodeType":"YulIdentifier","src":"48811:3:65"},"nativeSrc":"48811:12:65","nodeType":"YulFunctionCall","src":"48811:12:65"},"variableNames":[{"name":"i","nativeSrc":"48806:1:65","nodeType":"YulIdentifier","src":"48806:1:65"}]}]},"pre":{"nativeSrc":"48785:3:65","nodeType":"YulBlock","src":"48785:3:65","statements":[]},"src":"48781:208:65"},{"body":{"nativeSrc":"49025:156:65","nodeType":"YulBlock","src":"49025:156:65","statements":[{"nativeSrc":"49043:43:65","nodeType":"YulVariableDeclaration","src":"49043:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"49070:3:65","nodeType":"YulIdentifier","src":"49070:3:65"},{"name":"srcOffset","nativeSrc":"49075:9:65","nodeType":"YulIdentifier","src":"49075:9:65"}],"functionName":{"name":"add","nativeSrc":"49066:3:65","nodeType":"YulIdentifier","src":"49066:3:65"},"nativeSrc":"49066:19:65","nodeType":"YulFunctionCall","src":"49066:19:65"}],"functionName":{"name":"mload","nativeSrc":"49060:5:65","nodeType":"YulIdentifier","src":"49060:5:65"},"nativeSrc":"49060:26:65","nodeType":"YulFunctionCall","src":"49060:26:65"},"variables":[{"name":"lastValue","nativeSrc":"49047:9:65","nodeType":"YulTypedName","src":"49047:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"49110:6:65","nodeType":"YulIdentifier","src":"49110:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"49137:9:65","nodeType":"YulIdentifier","src":"49137:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"49152:6:65","nodeType":"YulIdentifier","src":"49152:6:65"},{"kind":"number","nativeSrc":"49160:4:65","nodeType":"YulLiteral","src":"49160:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"49148:3:65","nodeType":"YulIdentifier","src":"49148:3:65"},"nativeSrc":"49148:17:65","nodeType":"YulFunctionCall","src":"49148:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"49118:18:65","nodeType":"YulIdentifier","src":"49118:18:65"},"nativeSrc":"49118:48:65","nodeType":"YulFunctionCall","src":"49118:48:65"}],"functionName":{"name":"sstore","nativeSrc":"49103:6:65","nodeType":"YulIdentifier","src":"49103:6:65"},"nativeSrc":"49103:64:65","nodeType":"YulFunctionCall","src":"49103:64:65"},"nativeSrc":"49103:64:65","nodeType":"YulExpressionStatement","src":"49103:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"49008:7:65","nodeType":"YulIdentifier","src":"49008:7:65"},{"name":"newLen","nativeSrc":"49017:6:65","nodeType":"YulIdentifier","src":"49017:6:65"}],"functionName":{"name":"lt","nativeSrc":"49005:2:65","nodeType":"YulIdentifier","src":"49005:2:65"},"nativeSrc":"49005:19:65","nodeType":"YulFunctionCall","src":"49005:19:65"},"nativeSrc":"49002:179:65","nodeType":"YulIf","src":"49002:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"49201:4:65","nodeType":"YulIdentifier","src":"49201:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"49215:6:65","nodeType":"YulIdentifier","src":"49215:6:65"},{"kind":"number","nativeSrc":"49223:1:65","nodeType":"YulLiteral","src":"49223:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"49211:3:65","nodeType":"YulIdentifier","src":"49211:3:65"},"nativeSrc":"49211:14:65","nodeType":"YulFunctionCall","src":"49211:14:65"},{"kind":"number","nativeSrc":"49227:1:65","nodeType":"YulLiteral","src":"49227:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"49207:3:65","nodeType":"YulIdentifier","src":"49207:3:65"},"nativeSrc":"49207:22:65","nodeType":"YulFunctionCall","src":"49207:22:65"}],"functionName":{"name":"sstore","nativeSrc":"49194:6:65","nodeType":"YulIdentifier","src":"49194:6:65"},"nativeSrc":"49194:36:65","nodeType":"YulFunctionCall","src":"49194:36:65"},"nativeSrc":"49194:36:65","nodeType":"YulExpressionStatement","src":"49194:36:65"}]},"nativeSrc":"48623:617:65","nodeType":"YulCase","src":"48623:617:65","value":{"kind":"number","nativeSrc":"48628:1:65","nodeType":"YulLiteral","src":"48628:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"49257:222:65","nodeType":"YulBlock","src":"49257:222:65","statements":[{"nativeSrc":"49271:14:65","nodeType":"YulVariableDeclaration","src":"49271:14:65","value":{"kind":"number","nativeSrc":"49284:1:65","nodeType":"YulLiteral","src":"49284:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"49275:5:65","nodeType":"YulTypedName","src":"49275:5:65","type":""}]},{"body":{"nativeSrc":"49308:67:65","nodeType":"YulBlock","src":"49308:67:65","statements":[{"nativeSrc":"49326:35:65","nodeType":"YulAssignment","src":"49326:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"49345:3:65","nodeType":"YulIdentifier","src":"49345:3:65"},{"name":"srcOffset","nativeSrc":"49350:9:65","nodeType":"YulIdentifier","src":"49350:9:65"}],"functionName":{"name":"add","nativeSrc":"49341:3:65","nodeType":"YulIdentifier","src":"49341:3:65"},"nativeSrc":"49341:19:65","nodeType":"YulFunctionCall","src":"49341:19:65"}],"functionName":{"name":"mload","nativeSrc":"49335:5:65","nodeType":"YulIdentifier","src":"49335:5:65"},"nativeSrc":"49335:26:65","nodeType":"YulFunctionCall","src":"49335:26:65"},"variableNames":[{"name":"value","nativeSrc":"49326:5:65","nodeType":"YulIdentifier","src":"49326:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"49301:6:65","nodeType":"YulIdentifier","src":"49301:6:65"},"nativeSrc":"49298:77:65","nodeType":"YulIf","src":"49298:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"49395:4:65","nodeType":"YulIdentifier","src":"49395:4:65"},{"arguments":[{"name":"value","nativeSrc":"49454:5:65","nodeType":"YulIdentifier","src":"49454:5:65"},{"name":"newLen","nativeSrc":"49461:6:65","nodeType":"YulIdentifier","src":"49461:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"49401:52:65","nodeType":"YulIdentifier","src":"49401:52:65"},"nativeSrc":"49401:67:65","nodeType":"YulFunctionCall","src":"49401:67:65"}],"functionName":{"name":"sstore","nativeSrc":"49388:6:65","nodeType":"YulIdentifier","src":"49388:6:65"},"nativeSrc":"49388:81:65","nodeType":"YulFunctionCall","src":"49388:81:65"},"nativeSrc":"49388:81:65","nodeType":"YulExpressionStatement","src":"49388:81:65"}]},"nativeSrc":"49249:230:65","nodeType":"YulCase","src":"49249:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"48603:6:65","nodeType":"YulIdentifier","src":"48603:6:65"},{"kind":"number","nativeSrc":"48611:2:65","nodeType":"YulLiteral","src":"48611:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"48600:2:65","nodeType":"YulIdentifier","src":"48600:2:65"},"nativeSrc":"48600:14:65","nodeType":"YulFunctionCall","src":"48600:14:65"},"nativeSrc":"48593:886:65","nodeType":"YulSwitch","src":"48593:886:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"48095:1390:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"48174:4:65","nodeType":"YulTypedName","src":"48174:4:65","type":""},{"name":"src","nativeSrc":"48180:3:65","nodeType":"YulTypedName","src":"48180:3:65","type":""}],"src":"48095:1390:65"},{"body":{"nativeSrc":"49697:446:65","nodeType":"YulBlock","src":"49697:446:65","statements":[{"nativeSrc":"49707:27:65","nodeType":"YulAssignment","src":"49707:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"49719:9:65","nodeType":"YulIdentifier","src":"49719:9:65"},{"kind":"number","nativeSrc":"49730:3:65","nodeType":"YulLiteral","src":"49730:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"49715:3:65","nodeType":"YulIdentifier","src":"49715:3:65"},"nativeSrc":"49715:19:65","nodeType":"YulFunctionCall","src":"49715:19:65"},"variableNames":[{"name":"tail","nativeSrc":"49707:4:65","nodeType":"YulIdentifier","src":"49707:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"49786:6:65","nodeType":"YulIdentifier","src":"49786:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"49799:9:65","nodeType":"YulIdentifier","src":"49799:9:65"},{"kind":"number","nativeSrc":"49810:1:65","nodeType":"YulLiteral","src":"49810:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"49795:3:65","nodeType":"YulIdentifier","src":"49795:3:65"},"nativeSrc":"49795:17:65","nodeType":"YulFunctionCall","src":"49795:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"49744:41:65","nodeType":"YulIdentifier","src":"49744:41:65"},"nativeSrc":"49744:69:65","nodeType":"YulFunctionCall","src":"49744:69:65"},"nativeSrc":"49744:69:65","nodeType":"YulExpressionStatement","src":"49744:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"49865:6:65","nodeType":"YulIdentifier","src":"49865:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"49878:9:65","nodeType":"YulIdentifier","src":"49878:9:65"},{"kind":"number","nativeSrc":"49889:2:65","nodeType":"YulLiteral","src":"49889:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"49874:3:65","nodeType":"YulIdentifier","src":"49874:3:65"},"nativeSrc":"49874:18:65","nodeType":"YulFunctionCall","src":"49874:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"49823:41:65","nodeType":"YulIdentifier","src":"49823:41:65"},"nativeSrc":"49823:70:65","nodeType":"YulFunctionCall","src":"49823:70:65"},"nativeSrc":"49823:70:65","nodeType":"YulExpressionStatement","src":"49823:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"49947:6:65","nodeType":"YulIdentifier","src":"49947:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"49960:9:65","nodeType":"YulIdentifier","src":"49960:9:65"},{"kind":"number","nativeSrc":"49971:2:65","nodeType":"YulLiteral","src":"49971:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"49956:3:65","nodeType":"YulIdentifier","src":"49956:3:65"},"nativeSrc":"49956:18:65","nodeType":"YulFunctionCall","src":"49956:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"49903:43:65","nodeType":"YulIdentifier","src":"49903:43:65"},"nativeSrc":"49903:72:65","nodeType":"YulFunctionCall","src":"49903:72:65"},"nativeSrc":"49903:72:65","nodeType":"YulExpressionStatement","src":"49903:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"49996:9:65","nodeType":"YulIdentifier","src":"49996:9:65"},{"kind":"number","nativeSrc":"50007:2:65","nodeType":"YulLiteral","src":"50007:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"49992:3:65","nodeType":"YulIdentifier","src":"49992:3:65"},"nativeSrc":"49992:18:65","nodeType":"YulFunctionCall","src":"49992:18:65"},{"arguments":[{"name":"tail","nativeSrc":"50016:4:65","nodeType":"YulIdentifier","src":"50016:4:65"},{"name":"headStart","nativeSrc":"50022:9:65","nodeType":"YulIdentifier","src":"50022:9:65"}],"functionName":{"name":"sub","nativeSrc":"50012:3:65","nodeType":"YulIdentifier","src":"50012:3:65"},"nativeSrc":"50012:20:65","nodeType":"YulFunctionCall","src":"50012:20:65"}],"functionName":{"name":"mstore","nativeSrc":"49985:6:65","nodeType":"YulIdentifier","src":"49985:6:65"},"nativeSrc":"49985:48:65","nodeType":"YulFunctionCall","src":"49985:48:65"},"nativeSrc":"49985:48:65","nodeType":"YulExpressionStatement","src":"49985:48:65"},{"nativeSrc":"50042:94:65","nodeType":"YulAssignment","src":"50042:94:65","value":{"arguments":[{"name":"value3","nativeSrc":"50114:6:65","nodeType":"YulIdentifier","src":"50114:6:65"},{"name":"value4","nativeSrc":"50122:6:65","nodeType":"YulIdentifier","src":"50122:6:65"},{"name":"tail","nativeSrc":"50131:4:65","nodeType":"YulIdentifier","src":"50131:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"50050:63:65","nodeType":"YulIdentifier","src":"50050:63:65"},"nativeSrc":"50050:86:65","nodeType":"YulFunctionCall","src":"50050:86:65"},"variableNames":[{"name":"tail","nativeSrc":"50042:4:65","nodeType":"YulIdentifier","src":"50042:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"49491:652:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49637:9:65","nodeType":"YulTypedName","src":"49637:9:65","type":""},{"name":"value4","nativeSrc":"49649:6:65","nodeType":"YulTypedName","src":"49649:6:65","type":""},{"name":"value3","nativeSrc":"49657:6:65","nodeType":"YulTypedName","src":"49657:6:65","type":""},{"name":"value2","nativeSrc":"49665:6:65","nodeType":"YulTypedName","src":"49665:6:65","type":""},{"name":"value1","nativeSrc":"49673:6:65","nodeType":"YulTypedName","src":"49673:6:65","type":""},{"name":"value0","nativeSrc":"49681:6:65","nodeType":"YulTypedName","src":"49681:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"49692:4:65","nodeType":"YulTypedName","src":"49692:4:65","type":""}],"src":"49491:652:65"},{"body":{"nativeSrc":"50255:127:65","nodeType":"YulBlock","src":"50255:127:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"50277:6:65","nodeType":"YulIdentifier","src":"50277:6:65"},{"kind":"number","nativeSrc":"50285:1:65","nodeType":"YulLiteral","src":"50285:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"50273:3:65","nodeType":"YulIdentifier","src":"50273:3:65"},"nativeSrc":"50273:14:65","nodeType":"YulFunctionCall","src":"50273:14:65"},{"hexValue":"73696e676c652072656365697665207472616e73616374696f6e206c696d6974","kind":"string","nativeSrc":"50289:34:65","nodeType":"YulLiteral","src":"50289:34:65","type":"","value":"single receive transaction limit"}],"functionName":{"name":"mstore","nativeSrc":"50266:6:65","nodeType":"YulIdentifier","src":"50266:6:65"},"nativeSrc":"50266:58:65","nodeType":"YulFunctionCall","src":"50266:58:65"},"nativeSrc":"50266:58:65","nodeType":"YulExpressionStatement","src":"50266:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"50345:6:65","nodeType":"YulIdentifier","src":"50345:6:65"},{"kind":"number","nativeSrc":"50353:2:65","nodeType":"YulLiteral","src":"50353:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"50341:3:65","nodeType":"YulIdentifier","src":"50341:3:65"},"nativeSrc":"50341:15:65","nodeType":"YulFunctionCall","src":"50341:15:65"},{"hexValue":"203e204461696c79206c696d6974","kind":"string","nativeSrc":"50358:16:65","nodeType":"YulLiteral","src":"50358:16:65","type":"","value":" > Daily limit"}],"functionName":{"name":"mstore","nativeSrc":"50334:6:65","nodeType":"YulIdentifier","src":"50334:6:65"},"nativeSrc":"50334:41:65","nodeType":"YulFunctionCall","src":"50334:41:65"},"nativeSrc":"50334:41:65","nodeType":"YulExpressionStatement","src":"50334:41:65"}]},"name":"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","nativeSrc":"50149:233:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"50247:6:65","nodeType":"YulTypedName","src":"50247:6:65","type":""}],"src":"50149:233:65"},{"body":{"nativeSrc":"50534:220:65","nodeType":"YulBlock","src":"50534:220:65","statements":[{"nativeSrc":"50544:74:65","nodeType":"YulAssignment","src":"50544:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"50610:3:65","nodeType":"YulIdentifier","src":"50610:3:65"},{"kind":"number","nativeSrc":"50615:2:65","nodeType":"YulLiteral","src":"50615:2:65","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"50551:58:65","nodeType":"YulIdentifier","src":"50551:58:65"},"nativeSrc":"50551:67:65","nodeType":"YulFunctionCall","src":"50551:67:65"},"variableNames":[{"name":"pos","nativeSrc":"50544:3:65","nodeType":"YulIdentifier","src":"50544:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"50716:3:65","nodeType":"YulIdentifier","src":"50716:3:65"}],"functionName":{"name":"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","nativeSrc":"50627:88:65","nodeType":"YulIdentifier","src":"50627:88:65"},"nativeSrc":"50627:93:65","nodeType":"YulFunctionCall","src":"50627:93:65"},"nativeSrc":"50627:93:65","nodeType":"YulExpressionStatement","src":"50627:93:65"},{"nativeSrc":"50729:19:65","nodeType":"YulAssignment","src":"50729:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"50740:3:65","nodeType":"YulIdentifier","src":"50740:3:65"},{"kind":"number","nativeSrc":"50745:2:65","nodeType":"YulLiteral","src":"50745:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"50736:3:65","nodeType":"YulIdentifier","src":"50736:3:65"},"nativeSrc":"50736:12:65","nodeType":"YulFunctionCall","src":"50736:12:65"},"variableNames":[{"name":"end","nativeSrc":"50729:3:65","nodeType":"YulIdentifier","src":"50729:3:65"}]}]},"name":"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack","nativeSrc":"50388:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"50522:3:65","nodeType":"YulTypedName","src":"50522:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"50530:3:65","nodeType":"YulTypedName","src":"50530:3:65","type":""}],"src":"50388:366:65"},{"body":{"nativeSrc":"50931:248:65","nodeType":"YulBlock","src":"50931:248:65","statements":[{"nativeSrc":"50941:26:65","nodeType":"YulAssignment","src":"50941:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"50953:9:65","nodeType":"YulIdentifier","src":"50953:9:65"},{"kind":"number","nativeSrc":"50964:2:65","nodeType":"YulLiteral","src":"50964:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"50949:3:65","nodeType":"YulIdentifier","src":"50949:3:65"},"nativeSrc":"50949:18:65","nodeType":"YulFunctionCall","src":"50949:18:65"},"variableNames":[{"name":"tail","nativeSrc":"50941:4:65","nodeType":"YulIdentifier","src":"50941:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"50988:9:65","nodeType":"YulIdentifier","src":"50988:9:65"},{"kind":"number","nativeSrc":"50999:1:65","nodeType":"YulLiteral","src":"50999:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"50984:3:65","nodeType":"YulIdentifier","src":"50984:3:65"},"nativeSrc":"50984:17:65","nodeType":"YulFunctionCall","src":"50984:17:65"},{"arguments":[{"name":"tail","nativeSrc":"51007:4:65","nodeType":"YulIdentifier","src":"51007:4:65"},{"name":"headStart","nativeSrc":"51013:9:65","nodeType":"YulIdentifier","src":"51013:9:65"}],"functionName":{"name":"sub","nativeSrc":"51003:3:65","nodeType":"YulIdentifier","src":"51003:3:65"},"nativeSrc":"51003:20:65","nodeType":"YulFunctionCall","src":"51003:20:65"}],"functionName":{"name":"mstore","nativeSrc":"50977:6:65","nodeType":"YulIdentifier","src":"50977:6:65"},"nativeSrc":"50977:47:65","nodeType":"YulFunctionCall","src":"50977:47:65"},"nativeSrc":"50977:47:65","nodeType":"YulExpressionStatement","src":"50977:47:65"},{"nativeSrc":"51033:139:65","nodeType":"YulAssignment","src":"51033:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"51167:4:65","nodeType":"YulIdentifier","src":"51167:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack","nativeSrc":"51041:124:65","nodeType":"YulIdentifier","src":"51041:124:65"},"nativeSrc":"51041:131:65","nodeType":"YulFunctionCall","src":"51041:131:65"},"variableNames":[{"name":"tail","nativeSrc":"51033:4:65","nodeType":"YulIdentifier","src":"51033:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"50760:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50911:9:65","nodeType":"YulTypedName","src":"50911:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"50926:4:65","nodeType":"YulTypedName","src":"50926:4:65","type":""}],"src":"50760:419:65"},{"body":{"nativeSrc":"51335:284:65","nodeType":"YulBlock","src":"51335:284:65","statements":[{"nativeSrc":"51345:26:65","nodeType":"YulAssignment","src":"51345:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"51357:9:65","nodeType":"YulIdentifier","src":"51357:9:65"},{"kind":"number","nativeSrc":"51368:2:65","nodeType":"YulLiteral","src":"51368:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"51353:3:65","nodeType":"YulIdentifier","src":"51353:3:65"},"nativeSrc":"51353:18:65","nodeType":"YulFunctionCall","src":"51353:18:65"},"variableNames":[{"name":"tail","nativeSrc":"51345:4:65","nodeType":"YulIdentifier","src":"51345:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"51423:6:65","nodeType":"YulIdentifier","src":"51423:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"51436:9:65","nodeType":"YulIdentifier","src":"51436:9:65"},{"kind":"number","nativeSrc":"51447:1:65","nodeType":"YulLiteral","src":"51447:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"51432:3:65","nodeType":"YulIdentifier","src":"51432:3:65"},"nativeSrc":"51432:17:65","nodeType":"YulFunctionCall","src":"51432:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"51381:41:65","nodeType":"YulIdentifier","src":"51381:41:65"},"nativeSrc":"51381:69:65","nodeType":"YulFunctionCall","src":"51381:69:65"},"nativeSrc":"51381:69:65","nodeType":"YulExpressionStatement","src":"51381:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"51502:6:65","nodeType":"YulIdentifier","src":"51502:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"51515:9:65","nodeType":"YulIdentifier","src":"51515:9:65"},{"kind":"number","nativeSrc":"51526:2:65","nodeType":"YulLiteral","src":"51526:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"51511:3:65","nodeType":"YulIdentifier","src":"51511:3:65"},"nativeSrc":"51511:18:65","nodeType":"YulFunctionCall","src":"51511:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"51460:41:65","nodeType":"YulIdentifier","src":"51460:41:65"},"nativeSrc":"51460:70:65","nodeType":"YulFunctionCall","src":"51460:70:65"},"nativeSrc":"51460:70:65","nodeType":"YulExpressionStatement","src":"51460:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"51584:6:65","nodeType":"YulIdentifier","src":"51584:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"51597:9:65","nodeType":"YulIdentifier","src":"51597:9:65"},{"kind":"number","nativeSrc":"51608:2:65","nodeType":"YulLiteral","src":"51608:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"51593:3:65","nodeType":"YulIdentifier","src":"51593:3:65"},"nativeSrc":"51593:18:65","nodeType":"YulFunctionCall","src":"51593:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"51540:43:65","nodeType":"YulIdentifier","src":"51540:43:65"},"nativeSrc":"51540:72:65","nodeType":"YulFunctionCall","src":"51540:72:65"},"nativeSrc":"51540:72:65","nodeType":"YulExpressionStatement","src":"51540:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nativeSrc":"51185:434:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"51291:9:65","nodeType":"YulTypedName","src":"51291:9:65","type":""},{"name":"value2","nativeSrc":"51303:6:65","nodeType":"YulTypedName","src":"51303:6:65","type":""},{"name":"value1","nativeSrc":"51311:6:65","nodeType":"YulTypedName","src":"51311:6:65","type":""},{"name":"value0","nativeSrc":"51319:6:65","nodeType":"YulTypedName","src":"51319:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"51330:4:65","nodeType":"YulTypedName","src":"51330:4:65","type":""}],"src":"51185:434:65"},{"body":{"nativeSrc":"51731:75:65","nodeType":"YulBlock","src":"51731:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"51753:6:65","nodeType":"YulIdentifier","src":"51753:6:65"},{"kind":"number","nativeSrc":"51761:1:65","nodeType":"YulLiteral","src":"51761:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"51749:3:65","nodeType":"YulIdentifier","src":"51749:3:65"},"nativeSrc":"51749:14:65","nodeType":"YulFunctionCall","src":"51749:14:65"},{"hexValue":"4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265","kind":"string","nativeSrc":"51765:33:65","nodeType":"YulLiteral","src":"51765:33:65","type":"","value":"OFTCore: caller must be OFTCore"}],"functionName":{"name":"mstore","nativeSrc":"51742:6:65","nodeType":"YulIdentifier","src":"51742:6:65"},"nativeSrc":"51742:57:65","nodeType":"YulFunctionCall","src":"51742:57:65"},"nativeSrc":"51742:57:65","nodeType":"YulExpressionStatement","src":"51742:57:65"}]},"name":"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","nativeSrc":"51625:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"51723:6:65","nodeType":"YulTypedName","src":"51723:6:65","type":""}],"src":"51625:181:65"},{"body":{"nativeSrc":"51958:220:65","nodeType":"YulBlock","src":"51958:220:65","statements":[{"nativeSrc":"51968:74:65","nodeType":"YulAssignment","src":"51968:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"52034:3:65","nodeType":"YulIdentifier","src":"52034:3:65"},{"kind":"number","nativeSrc":"52039:2:65","nodeType":"YulLiteral","src":"52039:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"51975:58:65","nodeType":"YulIdentifier","src":"51975:58:65"},"nativeSrc":"51975:67:65","nodeType":"YulFunctionCall","src":"51975:67:65"},"variableNames":[{"name":"pos","nativeSrc":"51968:3:65","nodeType":"YulIdentifier","src":"51968:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"52140:3:65","nodeType":"YulIdentifier","src":"52140:3:65"}],"functionName":{"name":"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","nativeSrc":"52051:88:65","nodeType":"YulIdentifier","src":"52051:88:65"},"nativeSrc":"52051:93:65","nodeType":"YulFunctionCall","src":"52051:93:65"},"nativeSrc":"52051:93:65","nodeType":"YulExpressionStatement","src":"52051:93:65"},{"nativeSrc":"52153:19:65","nodeType":"YulAssignment","src":"52153:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"52164:3:65","nodeType":"YulIdentifier","src":"52164:3:65"},{"kind":"number","nativeSrc":"52169:2:65","nodeType":"YulLiteral","src":"52169:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52160:3:65","nodeType":"YulIdentifier","src":"52160:3:65"},"nativeSrc":"52160:12:65","nodeType":"YulFunctionCall","src":"52160:12:65"},"variableNames":[{"name":"end","nativeSrc":"52153:3:65","nodeType":"YulIdentifier","src":"52153:3:65"}]}]},"name":"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack","nativeSrc":"51812:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"51946:3:65","nodeType":"YulTypedName","src":"51946:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"51954:3:65","nodeType":"YulTypedName","src":"51954:3:65","type":""}],"src":"51812:366:65"},{"body":{"nativeSrc":"52355:248:65","nodeType":"YulBlock","src":"52355:248:65","statements":[{"nativeSrc":"52365:26:65","nodeType":"YulAssignment","src":"52365:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"52377:9:65","nodeType":"YulIdentifier","src":"52377:9:65"},{"kind":"number","nativeSrc":"52388:2:65","nodeType":"YulLiteral","src":"52388:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52373:3:65","nodeType":"YulIdentifier","src":"52373:3:65"},"nativeSrc":"52373:18:65","nodeType":"YulFunctionCall","src":"52373:18:65"},"variableNames":[{"name":"tail","nativeSrc":"52365:4:65","nodeType":"YulIdentifier","src":"52365:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52412:9:65","nodeType":"YulIdentifier","src":"52412:9:65"},{"kind":"number","nativeSrc":"52423:1:65","nodeType":"YulLiteral","src":"52423:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52408:3:65","nodeType":"YulIdentifier","src":"52408:3:65"},"nativeSrc":"52408:17:65","nodeType":"YulFunctionCall","src":"52408:17:65"},{"arguments":[{"name":"tail","nativeSrc":"52431:4:65","nodeType":"YulIdentifier","src":"52431:4:65"},{"name":"headStart","nativeSrc":"52437:9:65","nodeType":"YulIdentifier","src":"52437:9:65"}],"functionName":{"name":"sub","nativeSrc":"52427:3:65","nodeType":"YulIdentifier","src":"52427:3:65"},"nativeSrc":"52427:20:65","nodeType":"YulFunctionCall","src":"52427:20:65"}],"functionName":{"name":"mstore","nativeSrc":"52401:6:65","nodeType":"YulIdentifier","src":"52401:6:65"},"nativeSrc":"52401:47:65","nodeType":"YulFunctionCall","src":"52401:47:65"},"nativeSrc":"52401:47:65","nodeType":"YulExpressionStatement","src":"52401:47:65"},{"nativeSrc":"52457:139:65","nodeType":"YulAssignment","src":"52457:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"52591:4:65","nodeType":"YulIdentifier","src":"52591:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack","nativeSrc":"52465:124:65","nodeType":"YulIdentifier","src":"52465:124:65"},"nativeSrc":"52465:131:65","nodeType":"YulFunctionCall","src":"52465:131:65"},"variableNames":[{"name":"tail","nativeSrc":"52457:4:65","nodeType":"YulIdentifier","src":"52457:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"52184:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"52335:9:65","nodeType":"YulTypedName","src":"52335:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"52350:4:65","nodeType":"YulTypedName","src":"52350:4:65","type":""}],"src":"52184:419:65"},{"body":{"nativeSrc":"52899:691:65","nodeType":"YulBlock","src":"52899:691:65","statements":[{"nativeSrc":"52909:27:65","nodeType":"YulAssignment","src":"52909:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"52921:9:65","nodeType":"YulIdentifier","src":"52921:9:65"},{"kind":"number","nativeSrc":"52932:3:65","nodeType":"YulLiteral","src":"52932:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"52917:3:65","nodeType":"YulIdentifier","src":"52917:3:65"},"nativeSrc":"52917:19:65","nodeType":"YulFunctionCall","src":"52917:19:65"},"variableNames":[{"name":"tail","nativeSrc":"52909:4:65","nodeType":"YulIdentifier","src":"52909:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"52988:6:65","nodeType":"YulIdentifier","src":"52988:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"53001:9:65","nodeType":"YulIdentifier","src":"53001:9:65"},{"kind":"number","nativeSrc":"53012:1:65","nodeType":"YulLiteral","src":"53012:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52997:3:65","nodeType":"YulIdentifier","src":"52997:3:65"},"nativeSrc":"52997:17:65","nodeType":"YulFunctionCall","src":"52997:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"52946:41:65","nodeType":"YulIdentifier","src":"52946:41:65"},"nativeSrc":"52946:69:65","nodeType":"YulFunctionCall","src":"52946:69:65"},"nativeSrc":"52946:69:65","nodeType":"YulExpressionStatement","src":"52946:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53036:9:65","nodeType":"YulIdentifier","src":"53036:9:65"},{"kind":"number","nativeSrc":"53047:2:65","nodeType":"YulLiteral","src":"53047:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"53032:3:65","nodeType":"YulIdentifier","src":"53032:3:65"},"nativeSrc":"53032:18:65","nodeType":"YulFunctionCall","src":"53032:18:65"},{"arguments":[{"name":"tail","nativeSrc":"53056:4:65","nodeType":"YulIdentifier","src":"53056:4:65"},{"name":"headStart","nativeSrc":"53062:9:65","nodeType":"YulIdentifier","src":"53062:9:65"}],"functionName":{"name":"sub","nativeSrc":"53052:3:65","nodeType":"YulIdentifier","src":"53052:3:65"},"nativeSrc":"53052:20:65","nodeType":"YulFunctionCall","src":"53052:20:65"}],"functionName":{"name":"mstore","nativeSrc":"53025:6:65","nodeType":"YulIdentifier","src":"53025:6:65"},"nativeSrc":"53025:48:65","nodeType":"YulFunctionCall","src":"53025:48:65"},"nativeSrc":"53025:48:65","nodeType":"YulExpressionStatement","src":"53025:48:65"},{"nativeSrc":"53082:94:65","nodeType":"YulAssignment","src":"53082:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"53154:6:65","nodeType":"YulIdentifier","src":"53154:6:65"},{"name":"value2","nativeSrc":"53162:6:65","nodeType":"YulIdentifier","src":"53162:6:65"},{"name":"tail","nativeSrc":"53171:4:65","nodeType":"YulIdentifier","src":"53171:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"53090:63:65","nodeType":"YulIdentifier","src":"53090:63:65"},"nativeSrc":"53090:86:65","nodeType":"YulFunctionCall","src":"53090:86:65"},"variableNames":[{"name":"tail","nativeSrc":"53082:4:65","nodeType":"YulIdentifier","src":"53082:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"53228:6:65","nodeType":"YulIdentifier","src":"53228:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"53241:9:65","nodeType":"YulIdentifier","src":"53241:9:65"},{"kind":"number","nativeSrc":"53252:2:65","nodeType":"YulLiteral","src":"53252:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"53237:3:65","nodeType":"YulIdentifier","src":"53237:3:65"},"nativeSrc":"53237:18:65","nodeType":"YulFunctionCall","src":"53237:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"53186:41:65","nodeType":"YulIdentifier","src":"53186:41:65"},"nativeSrc":"53186:70:65","nodeType":"YulFunctionCall","src":"53186:70:65"},"nativeSrc":"53186:70:65","nodeType":"YulExpressionStatement","src":"53186:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"53310:6:65","nodeType":"YulIdentifier","src":"53310:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"53323:9:65","nodeType":"YulIdentifier","src":"53323:9:65"},{"kind":"number","nativeSrc":"53334:2:65","nodeType":"YulLiteral","src":"53334:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"53319:3:65","nodeType":"YulIdentifier","src":"53319:3:65"},"nativeSrc":"53319:18:65","nodeType":"YulFunctionCall","src":"53319:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"53266:43:65","nodeType":"YulIdentifier","src":"53266:43:65"},"nativeSrc":"53266:72:65","nodeType":"YulFunctionCall","src":"53266:72:65"},"nativeSrc":"53266:72:65","nodeType":"YulExpressionStatement","src":"53266:72:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"53392:6:65","nodeType":"YulIdentifier","src":"53392:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"53405:9:65","nodeType":"YulIdentifier","src":"53405:9:65"},{"kind":"number","nativeSrc":"53416:3:65","nodeType":"YulLiteral","src":"53416:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"53401:3:65","nodeType":"YulIdentifier","src":"53401:3:65"},"nativeSrc":"53401:19:65","nodeType":"YulFunctionCall","src":"53401:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"53348:43:65","nodeType":"YulIdentifier","src":"53348:43:65"},"nativeSrc":"53348:73:65","nodeType":"YulFunctionCall","src":"53348:73:65"},"nativeSrc":"53348:73:65","nodeType":"YulExpressionStatement","src":"53348:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53442:9:65","nodeType":"YulIdentifier","src":"53442:9:65"},{"kind":"number","nativeSrc":"53453:3:65","nodeType":"YulLiteral","src":"53453:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"53438:3:65","nodeType":"YulIdentifier","src":"53438:3:65"},"nativeSrc":"53438:19:65","nodeType":"YulFunctionCall","src":"53438:19:65"},{"arguments":[{"name":"tail","nativeSrc":"53463:4:65","nodeType":"YulIdentifier","src":"53463:4:65"},{"name":"headStart","nativeSrc":"53469:9:65","nodeType":"YulIdentifier","src":"53469:9:65"}],"functionName":{"name":"sub","nativeSrc":"53459:3:65","nodeType":"YulIdentifier","src":"53459:3:65"},"nativeSrc":"53459:20:65","nodeType":"YulFunctionCall","src":"53459:20:65"}],"functionName":{"name":"mstore","nativeSrc":"53431:6:65","nodeType":"YulIdentifier","src":"53431:6:65"},"nativeSrc":"53431:49:65","nodeType":"YulFunctionCall","src":"53431:49:65"},"nativeSrc":"53431:49:65","nodeType":"YulExpressionStatement","src":"53431:49:65"},{"nativeSrc":"53489:94:65","nodeType":"YulAssignment","src":"53489:94:65","value":{"arguments":[{"name":"value6","nativeSrc":"53561:6:65","nodeType":"YulIdentifier","src":"53561:6:65"},{"name":"value7","nativeSrc":"53569:6:65","nodeType":"YulIdentifier","src":"53569:6:65"},{"name":"tail","nativeSrc":"53578:4:65","nodeType":"YulIdentifier","src":"53578:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"53497:63:65","nodeType":"YulIdentifier","src":"53497:63:65"},"nativeSrc":"53497:86:65","nodeType":"YulFunctionCall","src":"53497:86:65"},"variableNames":[{"name":"tail","nativeSrc":"53489:4:65","nodeType":"YulIdentifier","src":"53489:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"52609:981:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"52815:9:65","nodeType":"YulTypedName","src":"52815:9:65","type":""},{"name":"value7","nativeSrc":"52827:6:65","nodeType":"YulTypedName","src":"52827:6:65","type":""},{"name":"value6","nativeSrc":"52835:6:65","nodeType":"YulTypedName","src":"52835:6:65","type":""},{"name":"value5","nativeSrc":"52843:6:65","nodeType":"YulTypedName","src":"52843:6:65","type":""},{"name":"value4","nativeSrc":"52851:6:65","nodeType":"YulTypedName","src":"52851:6:65","type":""},{"name":"value3","nativeSrc":"52859:6:65","nodeType":"YulTypedName","src":"52859:6:65","type":""},{"name":"value2","nativeSrc":"52867:6:65","nodeType":"YulTypedName","src":"52867:6:65","type":""},{"name":"value1","nativeSrc":"52875:6:65","nodeType":"YulTypedName","src":"52875:6:65","type":""},{"name":"value0","nativeSrc":"52883:6:65","nodeType":"YulTypedName","src":"52883:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"52894:4:65","nodeType":"YulTypedName","src":"52894:4:65","type":""}],"src":"52609:981:65"},{"body":{"nativeSrc":"53661:31:65","nodeType":"YulBlock","src":"53661:31:65","statements":[{"nativeSrc":"53672:13:65","nodeType":"YulAssignment","src":"53672:13:65","value":{"name":"len","nativeSrc":"53682:3:65","nodeType":"YulIdentifier","src":"53682:3:65"},"variableNames":[{"name":"length","nativeSrc":"53672:6:65","nodeType":"YulIdentifier","src":"53672:6:65"}]}]},"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"53596:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"53639:5:65","nodeType":"YulTypedName","src":"53639:5:65","type":""},{"name":"len","nativeSrc":"53646:3:65","nodeType":"YulTypedName","src":"53646:3:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"53654:6:65","nodeType":"YulTypedName","src":"53654:6:65","type":""}],"src":"53596:96:65"},{"body":{"nativeSrc":"53795:1301:65","nodeType":"YulBlock","src":"53795:1301:65","statements":[{"nativeSrc":"53806:57:65","nodeType":"YulVariableDeclaration","src":"53806:57:65","value":{"arguments":[{"name":"src","nativeSrc":"53854:3:65","nodeType":"YulIdentifier","src":"53854:3:65"},{"name":"len","nativeSrc":"53859:3:65","nodeType":"YulIdentifier","src":"53859:3:65"}],"functionName":{"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"53820:33:65","nodeType":"YulIdentifier","src":"53820:33:65"},"nativeSrc":"53820:43:65","nodeType":"YulFunctionCall","src":"53820:43:65"},"variables":[{"name":"newLen","nativeSrc":"53810:6:65","nodeType":"YulTypedName","src":"53810:6:65","type":""}]},{"body":{"nativeSrc":"53948:22:65","nodeType":"YulBlock","src":"53948:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"53950:16:65","nodeType":"YulIdentifier","src":"53950:16:65"},"nativeSrc":"53950:18:65","nodeType":"YulFunctionCall","src":"53950:18:65"},"nativeSrc":"53950:18:65","nodeType":"YulExpressionStatement","src":"53950:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"53920:6:65","nodeType":"YulIdentifier","src":"53920:6:65"},{"kind":"number","nativeSrc":"53928:18:65","nodeType":"YulLiteral","src":"53928:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"53917:2:65","nodeType":"YulIdentifier","src":"53917:2:65"},"nativeSrc":"53917:30:65","nodeType":"YulFunctionCall","src":"53917:30:65"},"nativeSrc":"53914:56:65","nodeType":"YulIf","src":"53914:56:65"},{"nativeSrc":"53980:52:65","nodeType":"YulVariableDeclaration","src":"53980:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"54026:4:65","nodeType":"YulIdentifier","src":"54026:4:65"}],"functionName":{"name":"sload","nativeSrc":"54020:5:65","nodeType":"YulIdentifier","src":"54020:5:65"},"nativeSrc":"54020:11:65","nodeType":"YulFunctionCall","src":"54020:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"53994:25:65","nodeType":"YulIdentifier","src":"53994:25:65"},"nativeSrc":"53994:38:65","nodeType":"YulFunctionCall","src":"53994:38:65"},"variables":[{"name":"oldLen","nativeSrc":"53984:6:65","nodeType":"YulTypedName","src":"53984:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"54124:4:65","nodeType":"YulIdentifier","src":"54124:4:65"},{"name":"oldLen","nativeSrc":"54130:6:65","nodeType":"YulIdentifier","src":"54130:6:65"},{"name":"newLen","nativeSrc":"54138:6:65","nodeType":"YulIdentifier","src":"54138:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"54079:44:65","nodeType":"YulIdentifier","src":"54079:44:65"},"nativeSrc":"54079:66:65","nodeType":"YulFunctionCall","src":"54079:66:65"},"nativeSrc":"54079:66:65","nodeType":"YulExpressionStatement","src":"54079:66:65"},{"nativeSrc":"54155:18:65","nodeType":"YulVariableDeclaration","src":"54155:18:65","value":{"kind":"number","nativeSrc":"54172:1:65","nodeType":"YulLiteral","src":"54172:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"54159:9:65","nodeType":"YulTypedName","src":"54159:9:65","type":""}]},{"cases":[{"body":{"nativeSrc":"54220:624:65","nodeType":"YulBlock","src":"54220:624:65","statements":[{"nativeSrc":"54234:37:65","nodeType":"YulVariableDeclaration","src":"54234:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"54253:6:65","nodeType":"YulIdentifier","src":"54253:6:65"},{"arguments":[{"kind":"number","nativeSrc":"54265:4:65","nodeType":"YulLiteral","src":"54265:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"54261:3:65","nodeType":"YulIdentifier","src":"54261:3:65"},"nativeSrc":"54261:9:65","nodeType":"YulFunctionCall","src":"54261:9:65"}],"functionName":{"name":"and","nativeSrc":"54249:3:65","nodeType":"YulIdentifier","src":"54249:3:65"},"nativeSrc":"54249:22:65","nodeType":"YulFunctionCall","src":"54249:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"54238:7:65","nodeType":"YulTypedName","src":"54238:7:65","type":""}]},{"nativeSrc":"54285:50:65","nodeType":"YulVariableDeclaration","src":"54285:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"54330:4:65","nodeType":"YulIdentifier","src":"54330:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"54299:30:65","nodeType":"YulIdentifier","src":"54299:30:65"},"nativeSrc":"54299:36:65","nodeType":"YulFunctionCall","src":"54299:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"54289:6:65","nodeType":"YulTypedName","src":"54289:6:65","type":""}]},{"nativeSrc":"54348:10:65","nodeType":"YulVariableDeclaration","src":"54348:10:65","value":{"kind":"number","nativeSrc":"54357:1:65","nodeType":"YulLiteral","src":"54357:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"54352:1:65","nodeType":"YulTypedName","src":"54352:1:65","type":""}]},{"body":{"nativeSrc":"54416:170:65","nodeType":"YulBlock","src":"54416:170:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"54441:6:65","nodeType":"YulIdentifier","src":"54441:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"54466:3:65","nodeType":"YulIdentifier","src":"54466:3:65"},{"name":"srcOffset","nativeSrc":"54471:9:65","nodeType":"YulIdentifier","src":"54471:9:65"}],"functionName":{"name":"add","nativeSrc":"54462:3:65","nodeType":"YulIdentifier","src":"54462:3:65"},"nativeSrc":"54462:19:65","nodeType":"YulFunctionCall","src":"54462:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"54449:12:65","nodeType":"YulIdentifier","src":"54449:12:65"},"nativeSrc":"54449:33:65","nodeType":"YulFunctionCall","src":"54449:33:65"}],"functionName":{"name":"sstore","nativeSrc":"54434:6:65","nodeType":"YulIdentifier","src":"54434:6:65"},"nativeSrc":"54434:49:65","nodeType":"YulFunctionCall","src":"54434:49:65"},"nativeSrc":"54434:49:65","nodeType":"YulExpressionStatement","src":"54434:49:65"},{"nativeSrc":"54500:24:65","nodeType":"YulAssignment","src":"54500:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"54514:6:65","nodeType":"YulIdentifier","src":"54514:6:65"},{"kind":"number","nativeSrc":"54522:1:65","nodeType":"YulLiteral","src":"54522:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"54510:3:65","nodeType":"YulIdentifier","src":"54510:3:65"},"nativeSrc":"54510:14:65","nodeType":"YulFunctionCall","src":"54510:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"54500:6:65","nodeType":"YulIdentifier","src":"54500:6:65"}]},{"nativeSrc":"54541:31:65","nodeType":"YulAssignment","src":"54541:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"54558:9:65","nodeType":"YulIdentifier","src":"54558:9:65"},{"kind":"number","nativeSrc":"54569:2:65","nodeType":"YulLiteral","src":"54569:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54554:3:65","nodeType":"YulIdentifier","src":"54554:3:65"},"nativeSrc":"54554:18:65","nodeType":"YulFunctionCall","src":"54554:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"54541:9:65","nodeType":"YulIdentifier","src":"54541:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"54382:1:65","nodeType":"YulIdentifier","src":"54382:1:65"},{"name":"loopEnd","nativeSrc":"54385:7:65","nodeType":"YulIdentifier","src":"54385:7:65"}],"functionName":{"name":"lt","nativeSrc":"54379:2:65","nodeType":"YulIdentifier","src":"54379:2:65"},"nativeSrc":"54379:14:65","nodeType":"YulFunctionCall","src":"54379:14:65"},"nativeSrc":"54371:215:65","nodeType":"YulForLoop","post":{"nativeSrc":"54394:21:65","nodeType":"YulBlock","src":"54394:21:65","statements":[{"nativeSrc":"54396:17:65","nodeType":"YulAssignment","src":"54396:17:65","value":{"arguments":[{"name":"i","nativeSrc":"54405:1:65","nodeType":"YulIdentifier","src":"54405:1:65"},{"kind":"number","nativeSrc":"54408:4:65","nodeType":"YulLiteral","src":"54408:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"54401:3:65","nodeType":"YulIdentifier","src":"54401:3:65"},"nativeSrc":"54401:12:65","nodeType":"YulFunctionCall","src":"54401:12:65"},"variableNames":[{"name":"i","nativeSrc":"54396:1:65","nodeType":"YulIdentifier","src":"54396:1:65"}]}]},"pre":{"nativeSrc":"54375:3:65","nodeType":"YulBlock","src":"54375:3:65","statements":[]},"src":"54371:215:65"},{"body":{"nativeSrc":"54622:163:65","nodeType":"YulBlock","src":"54622:163:65","statements":[{"nativeSrc":"54640:50:65","nodeType":"YulVariableDeclaration","src":"54640:50:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"54674:3:65","nodeType":"YulIdentifier","src":"54674:3:65"},{"name":"srcOffset","nativeSrc":"54679:9:65","nodeType":"YulIdentifier","src":"54679:9:65"}],"functionName":{"name":"add","nativeSrc":"54670:3:65","nodeType":"YulIdentifier","src":"54670:3:65"},"nativeSrc":"54670:19:65","nodeType":"YulFunctionCall","src":"54670:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"54657:12:65","nodeType":"YulIdentifier","src":"54657:12:65"},"nativeSrc":"54657:33:65","nodeType":"YulFunctionCall","src":"54657:33:65"},"variables":[{"name":"lastValue","nativeSrc":"54644:9:65","nodeType":"YulTypedName","src":"54644:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"54714:6:65","nodeType":"YulIdentifier","src":"54714:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"54741:9:65","nodeType":"YulIdentifier","src":"54741:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"54756:6:65","nodeType":"YulIdentifier","src":"54756:6:65"},{"kind":"number","nativeSrc":"54764:4:65","nodeType":"YulLiteral","src":"54764:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"54752:3:65","nodeType":"YulIdentifier","src":"54752:3:65"},"nativeSrc":"54752:17:65","nodeType":"YulFunctionCall","src":"54752:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"54722:18:65","nodeType":"YulIdentifier","src":"54722:18:65"},"nativeSrc":"54722:48:65","nodeType":"YulFunctionCall","src":"54722:48:65"}],"functionName":{"name":"sstore","nativeSrc":"54707:6:65","nodeType":"YulIdentifier","src":"54707:6:65"},"nativeSrc":"54707:64:65","nodeType":"YulFunctionCall","src":"54707:64:65"},"nativeSrc":"54707:64:65","nodeType":"YulExpressionStatement","src":"54707:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"54605:7:65","nodeType":"YulIdentifier","src":"54605:7:65"},{"name":"newLen","nativeSrc":"54614:6:65","nodeType":"YulIdentifier","src":"54614:6:65"}],"functionName":{"name":"lt","nativeSrc":"54602:2:65","nodeType":"YulIdentifier","src":"54602:2:65"},"nativeSrc":"54602:19:65","nodeType":"YulFunctionCall","src":"54602:19:65"},"nativeSrc":"54599:186:65","nodeType":"YulIf","src":"54599:186:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"54805:4:65","nodeType":"YulIdentifier","src":"54805:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"54819:6:65","nodeType":"YulIdentifier","src":"54819:6:65"},{"kind":"number","nativeSrc":"54827:1:65","nodeType":"YulLiteral","src":"54827:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"54815:3:65","nodeType":"YulIdentifier","src":"54815:3:65"},"nativeSrc":"54815:14:65","nodeType":"YulFunctionCall","src":"54815:14:65"},{"kind":"number","nativeSrc":"54831:1:65","nodeType":"YulLiteral","src":"54831:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"54811:3:65","nodeType":"YulIdentifier","src":"54811:3:65"},"nativeSrc":"54811:22:65","nodeType":"YulFunctionCall","src":"54811:22:65"}],"functionName":{"name":"sstore","nativeSrc":"54798:6:65","nodeType":"YulIdentifier","src":"54798:6:65"},"nativeSrc":"54798:36:65","nodeType":"YulFunctionCall","src":"54798:36:65"},"nativeSrc":"54798:36:65","nodeType":"YulExpressionStatement","src":"54798:36:65"}]},"nativeSrc":"54213:631:65","nodeType":"YulCase","src":"54213:631:65","value":{"kind":"number","nativeSrc":"54218:1:65","nodeType":"YulLiteral","src":"54218:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"54861:229:65","nodeType":"YulBlock","src":"54861:229:65","statements":[{"nativeSrc":"54875:14:65","nodeType":"YulVariableDeclaration","src":"54875:14:65","value":{"kind":"number","nativeSrc":"54888:1:65","nodeType":"YulLiteral","src":"54888:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"54879:5:65","nodeType":"YulTypedName","src":"54879:5:65","type":""}]},{"body":{"nativeSrc":"54912:74:65","nodeType":"YulBlock","src":"54912:74:65","statements":[{"nativeSrc":"54930:42:65","nodeType":"YulAssignment","src":"54930:42:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"54956:3:65","nodeType":"YulIdentifier","src":"54956:3:65"},{"name":"srcOffset","nativeSrc":"54961:9:65","nodeType":"YulIdentifier","src":"54961:9:65"}],"functionName":{"name":"add","nativeSrc":"54952:3:65","nodeType":"YulIdentifier","src":"54952:3:65"},"nativeSrc":"54952:19:65","nodeType":"YulFunctionCall","src":"54952:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"54939:12:65","nodeType":"YulIdentifier","src":"54939:12:65"},"nativeSrc":"54939:33:65","nodeType":"YulFunctionCall","src":"54939:33:65"},"variableNames":[{"name":"value","nativeSrc":"54930:5:65","nodeType":"YulIdentifier","src":"54930:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"54905:6:65","nodeType":"YulIdentifier","src":"54905:6:65"},"nativeSrc":"54902:84:65","nodeType":"YulIf","src":"54902:84:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"55006:4:65","nodeType":"YulIdentifier","src":"55006:4:65"},{"arguments":[{"name":"value","nativeSrc":"55065:5:65","nodeType":"YulIdentifier","src":"55065:5:65"},{"name":"newLen","nativeSrc":"55072:6:65","nodeType":"YulIdentifier","src":"55072:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"55012:52:65","nodeType":"YulIdentifier","src":"55012:52:65"},"nativeSrc":"55012:67:65","nodeType":"YulFunctionCall","src":"55012:67:65"}],"functionName":{"name":"sstore","nativeSrc":"54999:6:65","nodeType":"YulIdentifier","src":"54999:6:65"},"nativeSrc":"54999:81:65","nodeType":"YulFunctionCall","src":"54999:81:65"},"nativeSrc":"54999:81:65","nodeType":"YulExpressionStatement","src":"54999:81:65"}]},"nativeSrc":"54853:237:65","nodeType":"YulCase","src":"54853:237:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"54193:6:65","nodeType":"YulIdentifier","src":"54193:6:65"},{"kind":"number","nativeSrc":"54201:2:65","nodeType":"YulLiteral","src":"54201:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"54190:2:65","nodeType":"YulIdentifier","src":"54190:2:65"},"nativeSrc":"54190:14:65","nodeType":"YulFunctionCall","src":"54190:14:65"},"nativeSrc":"54183:907:65","nodeType":"YulSwitch","src":"54183:907:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage","nativeSrc":"53698:1398:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"53779:4:65","nodeType":"YulTypedName","src":"53779:4:65","type":""},{"name":"src","nativeSrc":"53785:3:65","nodeType":"YulTypedName","src":"53785:3:65","type":""},{"name":"len","nativeSrc":"53790:3:65","nodeType":"YulTypedName","src":"53790:3:65","type":""}],"src":"53698:1398:65"},{"body":{"nativeSrc":"55208:119:65","nodeType":"YulBlock","src":"55208:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"55230:6:65","nodeType":"YulIdentifier","src":"55230:6:65"},{"kind":"number","nativeSrc":"55238:1:65","nodeType":"YulLiteral","src":"55238:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"55226:3:65","nodeType":"YulIdentifier","src":"55226:3:65"},"nativeSrc":"55226:14:65","nodeType":"YulFunctionCall","src":"55226:14:65"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"55242:34:65","nodeType":"YulLiteral","src":"55242:34:65","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"55219:6:65","nodeType":"YulIdentifier","src":"55219:6:65"},"nativeSrc":"55219:58:65","nodeType":"YulFunctionCall","src":"55219:58:65"},"nativeSrc":"55219:58:65","nodeType":"YulExpressionStatement","src":"55219:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"55298:6:65","nodeType":"YulIdentifier","src":"55298:6:65"},{"kind":"number","nativeSrc":"55306:2:65","nodeType":"YulLiteral","src":"55306:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"55294:3:65","nodeType":"YulIdentifier","src":"55294:3:65"},"nativeSrc":"55294:15:65","nodeType":"YulFunctionCall","src":"55294:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"55311:8:65","nodeType":"YulLiteral","src":"55311:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"55287:6:65","nodeType":"YulIdentifier","src":"55287:6:65"},"nativeSrc":"55287:33:65","nodeType":"YulFunctionCall","src":"55287:33:65"},"nativeSrc":"55287:33:65","nodeType":"YulExpressionStatement","src":"55287:33:65"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"55102:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"55200:6:65","nodeType":"YulTypedName","src":"55200:6:65","type":""}],"src":"55102:225:65"},{"body":{"nativeSrc":"55479:220:65","nodeType":"YulBlock","src":"55479:220:65","statements":[{"nativeSrc":"55489:74:65","nodeType":"YulAssignment","src":"55489:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"55555:3:65","nodeType":"YulIdentifier","src":"55555:3:65"},{"kind":"number","nativeSrc":"55560:2:65","nodeType":"YulLiteral","src":"55560:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"55496:58:65","nodeType":"YulIdentifier","src":"55496:58:65"},"nativeSrc":"55496:67:65","nodeType":"YulFunctionCall","src":"55496:67:65"},"variableNames":[{"name":"pos","nativeSrc":"55489:3:65","nodeType":"YulIdentifier","src":"55489:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"55661:3:65","nodeType":"YulIdentifier","src":"55661:3:65"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"55572:88:65","nodeType":"YulIdentifier","src":"55572:88:65"},"nativeSrc":"55572:93:65","nodeType":"YulFunctionCall","src":"55572:93:65"},"nativeSrc":"55572:93:65","nodeType":"YulExpressionStatement","src":"55572:93:65"},{"nativeSrc":"55674:19:65","nodeType":"YulAssignment","src":"55674:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"55685:3:65","nodeType":"YulIdentifier","src":"55685:3:65"},{"kind":"number","nativeSrc":"55690:2:65","nodeType":"YulLiteral","src":"55690:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"55681:3:65","nodeType":"YulIdentifier","src":"55681:3:65"},"nativeSrc":"55681:12:65","nodeType":"YulFunctionCall","src":"55681:12:65"},"variableNames":[{"name":"end","nativeSrc":"55674:3:65","nodeType":"YulIdentifier","src":"55674:3:65"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"55333:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"55467:3:65","nodeType":"YulTypedName","src":"55467:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"55475:3:65","nodeType":"YulTypedName","src":"55475:3:65","type":""}],"src":"55333:366:65"},{"body":{"nativeSrc":"55876:248:65","nodeType":"YulBlock","src":"55876:248:65","statements":[{"nativeSrc":"55886:26:65","nodeType":"YulAssignment","src":"55886:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"55898:9:65","nodeType":"YulIdentifier","src":"55898:9:65"},{"kind":"number","nativeSrc":"55909:2:65","nodeType":"YulLiteral","src":"55909:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"55894:3:65","nodeType":"YulIdentifier","src":"55894:3:65"},"nativeSrc":"55894:18:65","nodeType":"YulFunctionCall","src":"55894:18:65"},"variableNames":[{"name":"tail","nativeSrc":"55886:4:65","nodeType":"YulIdentifier","src":"55886:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"55933:9:65","nodeType":"YulIdentifier","src":"55933:9:65"},{"kind":"number","nativeSrc":"55944:1:65","nodeType":"YulLiteral","src":"55944:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"55929:3:65","nodeType":"YulIdentifier","src":"55929:3:65"},"nativeSrc":"55929:17:65","nodeType":"YulFunctionCall","src":"55929:17:65"},{"arguments":[{"name":"tail","nativeSrc":"55952:4:65","nodeType":"YulIdentifier","src":"55952:4:65"},{"name":"headStart","nativeSrc":"55958:9:65","nodeType":"YulIdentifier","src":"55958:9:65"}],"functionName":{"name":"sub","nativeSrc":"55948:3:65","nodeType":"YulIdentifier","src":"55948:3:65"},"nativeSrc":"55948:20:65","nodeType":"YulFunctionCall","src":"55948:20:65"}],"functionName":{"name":"mstore","nativeSrc":"55922:6:65","nodeType":"YulIdentifier","src":"55922:6:65"},"nativeSrc":"55922:47:65","nodeType":"YulFunctionCall","src":"55922:47:65"},"nativeSrc":"55922:47:65","nodeType":"YulExpressionStatement","src":"55922:47:65"},{"nativeSrc":"55978:139:65","nodeType":"YulAssignment","src":"55978:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"56112:4:65","nodeType":"YulIdentifier","src":"56112:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"55986:124:65","nodeType":"YulIdentifier","src":"55986:124:65"},"nativeSrc":"55986:131:65","nodeType":"YulFunctionCall","src":"55986:131:65"},"variableNames":[{"name":"tail","nativeSrc":"55978:4:65","nodeType":"YulIdentifier","src":"55978:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"55705:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"55856:9:65","nodeType":"YulTypedName","src":"55856:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"55871:4:65","nodeType":"YulTypedName","src":"55871:4:65","type":""}],"src":"55705:419:65"},{"body":{"nativeSrc":"56308:367:65","nodeType":"YulBlock","src":"56308:367:65","statements":[{"nativeSrc":"56318:27:65","nodeType":"YulAssignment","src":"56318:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"56330:9:65","nodeType":"YulIdentifier","src":"56330:9:65"},{"kind":"number","nativeSrc":"56341:3:65","nodeType":"YulLiteral","src":"56341:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"56326:3:65","nodeType":"YulIdentifier","src":"56326:3:65"},"nativeSrc":"56326:19:65","nodeType":"YulFunctionCall","src":"56326:19:65"},"variableNames":[{"name":"tail","nativeSrc":"56318:4:65","nodeType":"YulIdentifier","src":"56318:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"56397:6:65","nodeType":"YulIdentifier","src":"56397:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"56410:9:65","nodeType":"YulIdentifier","src":"56410:9:65"},{"kind":"number","nativeSrc":"56421:1:65","nodeType":"YulLiteral","src":"56421:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"56406:3:65","nodeType":"YulIdentifier","src":"56406:3:65"},"nativeSrc":"56406:17:65","nodeType":"YulFunctionCall","src":"56406:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"56355:41:65","nodeType":"YulIdentifier","src":"56355:41:65"},"nativeSrc":"56355:69:65","nodeType":"YulFunctionCall","src":"56355:69:65"},"nativeSrc":"56355:69:65","nodeType":"YulExpressionStatement","src":"56355:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"56476:6:65","nodeType":"YulIdentifier","src":"56476:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"56489:9:65","nodeType":"YulIdentifier","src":"56489:9:65"},{"kind":"number","nativeSrc":"56500:2:65","nodeType":"YulLiteral","src":"56500:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"56485:3:65","nodeType":"YulIdentifier","src":"56485:3:65"},"nativeSrc":"56485:18:65","nodeType":"YulFunctionCall","src":"56485:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"56434:41:65","nodeType":"YulIdentifier","src":"56434:41:65"},"nativeSrc":"56434:70:65","nodeType":"YulFunctionCall","src":"56434:70:65"},"nativeSrc":"56434:70:65","nodeType":"YulExpressionStatement","src":"56434:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"56558:6:65","nodeType":"YulIdentifier","src":"56558:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"56571:9:65","nodeType":"YulIdentifier","src":"56571:9:65"},{"kind":"number","nativeSrc":"56582:2:65","nodeType":"YulLiteral","src":"56582:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"56567:3:65","nodeType":"YulIdentifier","src":"56567:3:65"},"nativeSrc":"56567:18:65","nodeType":"YulFunctionCall","src":"56567:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"56514:43:65","nodeType":"YulIdentifier","src":"56514:43:65"},"nativeSrc":"56514:72:65","nodeType":"YulFunctionCall","src":"56514:72:65"},"nativeSrc":"56514:72:65","nodeType":"YulExpressionStatement","src":"56514:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"56640:6:65","nodeType":"YulIdentifier","src":"56640:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"56653:9:65","nodeType":"YulIdentifier","src":"56653:9:65"},{"kind":"number","nativeSrc":"56664:2:65","nodeType":"YulLiteral","src":"56664:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"56649:3:65","nodeType":"YulIdentifier","src":"56649:3:65"},"nativeSrc":"56649:18:65","nodeType":"YulFunctionCall","src":"56649:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"56596:43:65","nodeType":"YulIdentifier","src":"56596:43:65"},"nativeSrc":"56596:72:65","nodeType":"YulFunctionCall","src":"56596:72:65"},"nativeSrc":"56596:72:65","nodeType":"YulExpressionStatement","src":"56596:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"56130:545:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"56256:9:65","nodeType":"YulTypedName","src":"56256:9:65","type":""},{"name":"value3","nativeSrc":"56268:6:65","nodeType":"YulTypedName","src":"56268:6:65","type":""},{"name":"value2","nativeSrc":"56276:6:65","nodeType":"YulTypedName","src":"56276:6:65","type":""},{"name":"value1","nativeSrc":"56284:6:65","nodeType":"YulTypedName","src":"56284:6:65","type":""},{"name":"value0","nativeSrc":"56292:6:65","nodeType":"YulTypedName","src":"56292:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"56303:4:65","nodeType":"YulTypedName","src":"56303:4:65","type":""}],"src":"56130:545:65"},{"body":{"nativeSrc":"56775:338:65","nodeType":"YulBlock","src":"56775:338:65","statements":[{"nativeSrc":"56785:74:65","nodeType":"YulAssignment","src":"56785:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"56851:6:65","nodeType":"YulIdentifier","src":"56851:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"56810:40:65","nodeType":"YulIdentifier","src":"56810:40:65"},"nativeSrc":"56810:48:65","nodeType":"YulFunctionCall","src":"56810:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"56794:15:65","nodeType":"YulIdentifier","src":"56794:15:65"},"nativeSrc":"56794:65:65","nodeType":"YulFunctionCall","src":"56794:65:65"},"variableNames":[{"name":"array","nativeSrc":"56785:5:65","nodeType":"YulIdentifier","src":"56785:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"56875:5:65","nodeType":"YulIdentifier","src":"56875:5:65"},{"name":"length","nativeSrc":"56882:6:65","nodeType":"YulIdentifier","src":"56882:6:65"}],"functionName":{"name":"mstore","nativeSrc":"56868:6:65","nodeType":"YulIdentifier","src":"56868:6:65"},"nativeSrc":"56868:21:65","nodeType":"YulFunctionCall","src":"56868:21:65"},"nativeSrc":"56868:21:65","nodeType":"YulExpressionStatement","src":"56868:21:65"},{"nativeSrc":"56898:27:65","nodeType":"YulVariableDeclaration","src":"56898:27:65","value":{"arguments":[{"name":"array","nativeSrc":"56913:5:65","nodeType":"YulIdentifier","src":"56913:5:65"},{"kind":"number","nativeSrc":"56920:4:65","nodeType":"YulLiteral","src":"56920:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56909:3:65","nodeType":"YulIdentifier","src":"56909:3:65"},"nativeSrc":"56909:16:65","nodeType":"YulFunctionCall","src":"56909:16:65"},"variables":[{"name":"dst","nativeSrc":"56902:3:65","nodeType":"YulTypedName","src":"56902:3:65","type":""}]},{"body":{"nativeSrc":"56963:83:65","nodeType":"YulBlock","src":"56963:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"56965:77:65","nodeType":"YulIdentifier","src":"56965:77:65"},"nativeSrc":"56965:79:65","nodeType":"YulFunctionCall","src":"56965:79:65"},"nativeSrc":"56965:79:65","nodeType":"YulExpressionStatement","src":"56965:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"56944:3:65","nodeType":"YulIdentifier","src":"56944:3:65"},{"name":"length","nativeSrc":"56949:6:65","nodeType":"YulIdentifier","src":"56949:6:65"}],"functionName":{"name":"add","nativeSrc":"56940:3:65","nodeType":"YulIdentifier","src":"56940:3:65"},"nativeSrc":"56940:16:65","nodeType":"YulFunctionCall","src":"56940:16:65"},{"name":"end","nativeSrc":"56958:3:65","nodeType":"YulIdentifier","src":"56958:3:65"}],"functionName":{"name":"gt","nativeSrc":"56937:2:65","nodeType":"YulIdentifier","src":"56937:2:65"},"nativeSrc":"56937:25:65","nodeType":"YulFunctionCall","src":"56937:25:65"},"nativeSrc":"56934:112:65","nodeType":"YulIf","src":"56934:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"57090:3:65","nodeType":"YulIdentifier","src":"57090:3:65"},{"name":"dst","nativeSrc":"57095:3:65","nodeType":"YulIdentifier","src":"57095:3:65"},{"name":"length","nativeSrc":"57100:6:65","nodeType":"YulIdentifier","src":"57100:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"57055:34:65","nodeType":"YulIdentifier","src":"57055:34:65"},"nativeSrc":"57055:52:65","nodeType":"YulFunctionCall","src":"57055:52:65"},"nativeSrc":"57055:52:65","nodeType":"YulExpressionStatement","src":"57055:52:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"56681:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"56748:3:65","nodeType":"YulTypedName","src":"56748:3:65","type":""},{"name":"length","nativeSrc":"56753:6:65","nodeType":"YulTypedName","src":"56753:6:65","type":""},{"name":"end","nativeSrc":"56761:3:65","nodeType":"YulTypedName","src":"56761:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"56769:5:65","nodeType":"YulTypedName","src":"56769:5:65","type":""}],"src":"56681:432:65"},{"body":{"nativeSrc":"57204:281:65","nodeType":"YulBlock","src":"57204:281:65","statements":[{"body":{"nativeSrc":"57253:83:65","nodeType":"YulBlock","src":"57253:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"57255:77:65","nodeType":"YulIdentifier","src":"57255:77:65"},"nativeSrc":"57255:79:65","nodeType":"YulFunctionCall","src":"57255:79:65"},"nativeSrc":"57255:79:65","nodeType":"YulExpressionStatement","src":"57255:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"57232:6:65","nodeType":"YulIdentifier","src":"57232:6:65"},{"kind":"number","nativeSrc":"57240:4:65","nodeType":"YulLiteral","src":"57240:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"57228:3:65","nodeType":"YulIdentifier","src":"57228:3:65"},"nativeSrc":"57228:17:65","nodeType":"YulFunctionCall","src":"57228:17:65"},{"name":"end","nativeSrc":"57247:3:65","nodeType":"YulIdentifier","src":"57247:3:65"}],"functionName":{"name":"slt","nativeSrc":"57224:3:65","nodeType":"YulIdentifier","src":"57224:3:65"},"nativeSrc":"57224:27:65","nodeType":"YulFunctionCall","src":"57224:27:65"}],"functionName":{"name":"iszero","nativeSrc":"57217:6:65","nodeType":"YulIdentifier","src":"57217:6:65"},"nativeSrc":"57217:35:65","nodeType":"YulFunctionCall","src":"57217:35:65"},"nativeSrc":"57214:122:65","nodeType":"YulIf","src":"57214:122:65"},{"nativeSrc":"57345:27:65","nodeType":"YulVariableDeclaration","src":"57345:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"57365:6:65","nodeType":"YulIdentifier","src":"57365:6:65"}],"functionName":{"name":"mload","nativeSrc":"57359:5:65","nodeType":"YulIdentifier","src":"57359:5:65"},"nativeSrc":"57359:13:65","nodeType":"YulFunctionCall","src":"57359:13:65"},"variables":[{"name":"length","nativeSrc":"57349:6:65","nodeType":"YulTypedName","src":"57349:6:65","type":""}]},{"nativeSrc":"57381:98:65","nodeType":"YulAssignment","src":"57381:98:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"57452:6:65","nodeType":"YulIdentifier","src":"57452:6:65"},{"kind":"number","nativeSrc":"57460:4:65","nodeType":"YulLiteral","src":"57460:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"57448:3:65","nodeType":"YulIdentifier","src":"57448:3:65"},"nativeSrc":"57448:17:65","nodeType":"YulFunctionCall","src":"57448:17:65"},{"name":"length","nativeSrc":"57467:6:65","nodeType":"YulIdentifier","src":"57467:6:65"},{"name":"end","nativeSrc":"57475:3:65","nodeType":"YulIdentifier","src":"57475:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"57390:57:65","nodeType":"YulIdentifier","src":"57390:57:65"},"nativeSrc":"57390:89:65","nodeType":"YulFunctionCall","src":"57390:89:65"},"variableNames":[{"name":"array","nativeSrc":"57381:5:65","nodeType":"YulIdentifier","src":"57381:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"57132:353:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"57182:6:65","nodeType":"YulTypedName","src":"57182:6:65","type":""},{"name":"end","nativeSrc":"57190:3:65","nodeType":"YulTypedName","src":"57190:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"57198:5:65","nodeType":"YulTypedName","src":"57198:5:65","type":""}],"src":"57132:353:65"},{"body":{"nativeSrc":"57577:436:65","nodeType":"YulBlock","src":"57577:436:65","statements":[{"body":{"nativeSrc":"57623:83:65","nodeType":"YulBlock","src":"57623:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"57625:77:65","nodeType":"YulIdentifier","src":"57625:77:65"},"nativeSrc":"57625:79:65","nodeType":"YulFunctionCall","src":"57625:79:65"},"nativeSrc":"57625:79:65","nodeType":"YulExpressionStatement","src":"57625:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"57598:7:65","nodeType":"YulIdentifier","src":"57598:7:65"},{"name":"headStart","nativeSrc":"57607:9:65","nodeType":"YulIdentifier","src":"57607:9:65"}],"functionName":{"name":"sub","nativeSrc":"57594:3:65","nodeType":"YulIdentifier","src":"57594:3:65"},"nativeSrc":"57594:23:65","nodeType":"YulFunctionCall","src":"57594:23:65"},{"kind":"number","nativeSrc":"57619:2:65","nodeType":"YulLiteral","src":"57619:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"57590:3:65","nodeType":"YulIdentifier","src":"57590:3:65"},"nativeSrc":"57590:32:65","nodeType":"YulFunctionCall","src":"57590:32:65"},"nativeSrc":"57587:119:65","nodeType":"YulIf","src":"57587:119:65"},{"nativeSrc":"57716:290:65","nodeType":"YulBlock","src":"57716:290:65","statements":[{"nativeSrc":"57731:38:65","nodeType":"YulVariableDeclaration","src":"57731:38:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"57755:9:65","nodeType":"YulIdentifier","src":"57755:9:65"},{"kind":"number","nativeSrc":"57766:1:65","nodeType":"YulLiteral","src":"57766:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"57751:3:65","nodeType":"YulIdentifier","src":"57751:3:65"},"nativeSrc":"57751:17:65","nodeType":"YulFunctionCall","src":"57751:17:65"}],"functionName":{"name":"mload","nativeSrc":"57745:5:65","nodeType":"YulIdentifier","src":"57745:5:65"},"nativeSrc":"57745:24:65","nodeType":"YulFunctionCall","src":"57745:24:65"},"variables":[{"name":"offset","nativeSrc":"57735:6:65","nodeType":"YulTypedName","src":"57735:6:65","type":""}]},{"body":{"nativeSrc":"57816:83:65","nodeType":"YulBlock","src":"57816:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"57818:77:65","nodeType":"YulIdentifier","src":"57818:77:65"},"nativeSrc":"57818:79:65","nodeType":"YulFunctionCall","src":"57818:79:65"},"nativeSrc":"57818:79:65","nodeType":"YulExpressionStatement","src":"57818:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"57788:6:65","nodeType":"YulIdentifier","src":"57788:6:65"},{"kind":"number","nativeSrc":"57796:18:65","nodeType":"YulLiteral","src":"57796:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"57785:2:65","nodeType":"YulIdentifier","src":"57785:2:65"},"nativeSrc":"57785:30:65","nodeType":"YulFunctionCall","src":"57785:30:65"},"nativeSrc":"57782:117:65","nodeType":"YulIf","src":"57782:117:65"},{"nativeSrc":"57913:83:65","nodeType":"YulAssignment","src":"57913:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"57968:9:65","nodeType":"YulIdentifier","src":"57968:9:65"},{"name":"offset","nativeSrc":"57979:6:65","nodeType":"YulIdentifier","src":"57979:6:65"}],"functionName":{"name":"add","nativeSrc":"57964:3:65","nodeType":"YulIdentifier","src":"57964:3:65"},"nativeSrc":"57964:22:65","nodeType":"YulFunctionCall","src":"57964:22:65"},{"name":"dataEnd","nativeSrc":"57988:7:65","nodeType":"YulIdentifier","src":"57988:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"57923:40:65","nodeType":"YulIdentifier","src":"57923:40:65"},"nativeSrc":"57923:73:65","nodeType":"YulFunctionCall","src":"57923:73:65"},"variableNames":[{"name":"value0","nativeSrc":"57913:6:65","nodeType":"YulIdentifier","src":"57913:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"57491:522:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"57547:9:65","nodeType":"YulTypedName","src":"57547:9:65","type":""},{"name":"dataEnd","nativeSrc":"57558:7:65","nodeType":"YulTypedName","src":"57558:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"57570:6:65","nodeType":"YulTypedName","src":"57570:6:65","type":""}],"src":"57491:522:65"},{"body":{"nativeSrc":"58233:505:65","nodeType":"YulBlock","src":"58233:505:65","statements":[{"nativeSrc":"58243:27:65","nodeType":"YulAssignment","src":"58243:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"58255:9:65","nodeType":"YulIdentifier","src":"58255:9:65"},{"kind":"number","nativeSrc":"58266:3:65","nodeType":"YulLiteral","src":"58266:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"58251:3:65","nodeType":"YulIdentifier","src":"58251:3:65"},"nativeSrc":"58251:19:65","nodeType":"YulFunctionCall","src":"58251:19:65"},"variableNames":[{"name":"tail","nativeSrc":"58243:4:65","nodeType":"YulIdentifier","src":"58243:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"58322:6:65","nodeType":"YulIdentifier","src":"58322:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"58335:9:65","nodeType":"YulIdentifier","src":"58335:9:65"},{"kind":"number","nativeSrc":"58346:1:65","nodeType":"YulLiteral","src":"58346:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"58331:3:65","nodeType":"YulIdentifier","src":"58331:3:65"},"nativeSrc":"58331:17:65","nodeType":"YulFunctionCall","src":"58331:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"58280:41:65","nodeType":"YulIdentifier","src":"58280:41:65"},"nativeSrc":"58280:69:65","nodeType":"YulFunctionCall","src":"58280:69:65"},"nativeSrc":"58280:69:65","nodeType":"YulExpressionStatement","src":"58280:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"58370:9:65","nodeType":"YulIdentifier","src":"58370:9:65"},{"kind":"number","nativeSrc":"58381:2:65","nodeType":"YulLiteral","src":"58381:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"58366:3:65","nodeType":"YulIdentifier","src":"58366:3:65"},"nativeSrc":"58366:18:65","nodeType":"YulFunctionCall","src":"58366:18:65"},{"arguments":[{"name":"tail","nativeSrc":"58390:4:65","nodeType":"YulIdentifier","src":"58390:4:65"},{"name":"headStart","nativeSrc":"58396:9:65","nodeType":"YulIdentifier","src":"58396:9:65"}],"functionName":{"name":"sub","nativeSrc":"58386:3:65","nodeType":"YulIdentifier","src":"58386:3:65"},"nativeSrc":"58386:20:65","nodeType":"YulFunctionCall","src":"58386:20:65"}],"functionName":{"name":"mstore","nativeSrc":"58359:6:65","nodeType":"YulIdentifier","src":"58359:6:65"},"nativeSrc":"58359:48:65","nodeType":"YulFunctionCall","src":"58359:48:65"},"nativeSrc":"58359:48:65","nodeType":"YulExpressionStatement","src":"58359:48:65"},{"nativeSrc":"58416:84:65","nodeType":"YulAssignment","src":"58416:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"58486:6:65","nodeType":"YulIdentifier","src":"58486:6:65"},{"name":"tail","nativeSrc":"58495:4:65","nodeType":"YulIdentifier","src":"58495:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"58424:61:65","nodeType":"YulIdentifier","src":"58424:61:65"},"nativeSrc":"58424:76:65","nodeType":"YulFunctionCall","src":"58424:76:65"},"variableNames":[{"name":"tail","nativeSrc":"58416:4:65","nodeType":"YulIdentifier","src":"58416:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"58552:6:65","nodeType":"YulIdentifier","src":"58552:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"58565:9:65","nodeType":"YulIdentifier","src":"58565:9:65"},{"kind":"number","nativeSrc":"58576:2:65","nodeType":"YulLiteral","src":"58576:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"58561:3:65","nodeType":"YulIdentifier","src":"58561:3:65"},"nativeSrc":"58561:18:65","nodeType":"YulFunctionCall","src":"58561:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"58510:41:65","nodeType":"YulIdentifier","src":"58510:41:65"},"nativeSrc":"58510:70:65","nodeType":"YulFunctionCall","src":"58510:70:65"},"nativeSrc":"58510:70:65","nodeType":"YulExpressionStatement","src":"58510:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"58601:9:65","nodeType":"YulIdentifier","src":"58601:9:65"},{"kind":"number","nativeSrc":"58612:2:65","nodeType":"YulLiteral","src":"58612:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"58597:3:65","nodeType":"YulIdentifier","src":"58597:3:65"},"nativeSrc":"58597:18:65","nodeType":"YulFunctionCall","src":"58597:18:65"},{"arguments":[{"name":"tail","nativeSrc":"58621:4:65","nodeType":"YulIdentifier","src":"58621:4:65"},{"name":"headStart","nativeSrc":"58627:9:65","nodeType":"YulIdentifier","src":"58627:9:65"}],"functionName":{"name":"sub","nativeSrc":"58617:3:65","nodeType":"YulIdentifier","src":"58617:3:65"},"nativeSrc":"58617:20:65","nodeType":"YulFunctionCall","src":"58617:20:65"}],"functionName":{"name":"mstore","nativeSrc":"58590:6:65","nodeType":"YulIdentifier","src":"58590:6:65"},"nativeSrc":"58590:48:65","nodeType":"YulFunctionCall","src":"58590:48:65"},"nativeSrc":"58590:48:65","nodeType":"YulExpressionStatement","src":"58590:48:65"},{"nativeSrc":"58647:84:65","nodeType":"YulAssignment","src":"58647:84:65","value":{"arguments":[{"name":"value3","nativeSrc":"58717:6:65","nodeType":"YulIdentifier","src":"58717:6:65"},{"name":"tail","nativeSrc":"58726:4:65","nodeType":"YulIdentifier","src":"58726:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"58655:61:65","nodeType":"YulIdentifier","src":"58655:61:65"},"nativeSrc":"58655:76:65","nodeType":"YulFunctionCall","src":"58655:76:65"},"variableNames":[{"name":"tail","nativeSrc":"58647:4:65","nodeType":"YulIdentifier","src":"58647:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"58019:719:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"58181:9:65","nodeType":"YulTypedName","src":"58181:9:65","type":""},{"name":"value3","nativeSrc":"58193:6:65","nodeType":"YulTypedName","src":"58193:6:65","type":""},{"name":"value2","nativeSrc":"58201:6:65","nodeType":"YulTypedName","src":"58201:6:65","type":""},{"name":"value1","nativeSrc":"58209:6:65","nodeType":"YulTypedName","src":"58209:6:65","type":""},{"name":"value0","nativeSrc":"58217:6:65","nodeType":"YulTypedName","src":"58217:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"58228:4:65","nodeType":"YulTypedName","src":"58228:4:65","type":""}],"src":"58019:719:65"},{"body":{"nativeSrc":"58850:76:65","nodeType":"YulBlock","src":"58850:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"58872:6:65","nodeType":"YulIdentifier","src":"58872:6:65"},{"kind":"number","nativeSrc":"58880:1:65","nodeType":"YulLiteral","src":"58880:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"58868:3:65","nodeType":"YulIdentifier","src":"58868:3:65"},"nativeSrc":"58868:14:65","nodeType":"YulFunctionCall","src":"58868:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"58884:34:65","nodeType":"YulLiteral","src":"58884:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"58861:6:65","nodeType":"YulIdentifier","src":"58861:6:65"},"nativeSrc":"58861:58:65","nodeType":"YulFunctionCall","src":"58861:58:65"},"nativeSrc":"58861:58:65","nodeType":"YulExpressionStatement","src":"58861:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"58744:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"58842:6:65","nodeType":"YulTypedName","src":"58842:6:65","type":""}],"src":"58744:182:65"},{"body":{"nativeSrc":"59078:220:65","nodeType":"YulBlock","src":"59078:220:65","statements":[{"nativeSrc":"59088:74:65","nodeType":"YulAssignment","src":"59088:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"59154:3:65","nodeType":"YulIdentifier","src":"59154:3:65"},{"kind":"number","nativeSrc":"59159:2:65","nodeType":"YulLiteral","src":"59159:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"59095:58:65","nodeType":"YulIdentifier","src":"59095:58:65"},"nativeSrc":"59095:67:65","nodeType":"YulFunctionCall","src":"59095:67:65"},"variableNames":[{"name":"pos","nativeSrc":"59088:3:65","nodeType":"YulIdentifier","src":"59088:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"59260:3:65","nodeType":"YulIdentifier","src":"59260:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"59171:88:65","nodeType":"YulIdentifier","src":"59171:88:65"},"nativeSrc":"59171:93:65","nodeType":"YulFunctionCall","src":"59171:93:65"},"nativeSrc":"59171:93:65","nodeType":"YulExpressionStatement","src":"59171:93:65"},{"nativeSrc":"59273:19:65","nodeType":"YulAssignment","src":"59273:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"59284:3:65","nodeType":"YulIdentifier","src":"59284:3:65"},{"kind":"number","nativeSrc":"59289:2:65","nodeType":"YulLiteral","src":"59289:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"59280:3:65","nodeType":"YulIdentifier","src":"59280:3:65"},"nativeSrc":"59280:12:65","nodeType":"YulFunctionCall","src":"59280:12:65"},"variableNames":[{"name":"end","nativeSrc":"59273:3:65","nodeType":"YulIdentifier","src":"59273:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"58932:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"59066:3:65","nodeType":"YulTypedName","src":"59066:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"59074:3:65","nodeType":"YulTypedName","src":"59074:3:65","type":""}],"src":"58932:366:65"},{"body":{"nativeSrc":"59475:248:65","nodeType":"YulBlock","src":"59475:248:65","statements":[{"nativeSrc":"59485:26:65","nodeType":"YulAssignment","src":"59485:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"59497:9:65","nodeType":"YulIdentifier","src":"59497:9:65"},{"kind":"number","nativeSrc":"59508:2:65","nodeType":"YulLiteral","src":"59508:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"59493:3:65","nodeType":"YulIdentifier","src":"59493:3:65"},"nativeSrc":"59493:18:65","nodeType":"YulFunctionCall","src":"59493:18:65"},"variableNames":[{"name":"tail","nativeSrc":"59485:4:65","nodeType":"YulIdentifier","src":"59485:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"59532:9:65","nodeType":"YulIdentifier","src":"59532:9:65"},{"kind":"number","nativeSrc":"59543:1:65","nodeType":"YulLiteral","src":"59543:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"59528:3:65","nodeType":"YulIdentifier","src":"59528:3:65"},"nativeSrc":"59528:17:65","nodeType":"YulFunctionCall","src":"59528:17:65"},{"arguments":[{"name":"tail","nativeSrc":"59551:4:65","nodeType":"YulIdentifier","src":"59551:4:65"},{"name":"headStart","nativeSrc":"59557:9:65","nodeType":"YulIdentifier","src":"59557:9:65"}],"functionName":{"name":"sub","nativeSrc":"59547:3:65","nodeType":"YulIdentifier","src":"59547:3:65"},"nativeSrc":"59547:20:65","nodeType":"YulFunctionCall","src":"59547:20:65"}],"functionName":{"name":"mstore","nativeSrc":"59521:6:65","nodeType":"YulIdentifier","src":"59521:6:65"},"nativeSrc":"59521:47:65","nodeType":"YulFunctionCall","src":"59521:47:65"},"nativeSrc":"59521:47:65","nodeType":"YulExpressionStatement","src":"59521:47:65"},{"nativeSrc":"59577:139:65","nodeType":"YulAssignment","src":"59577:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"59711:4:65","nodeType":"YulIdentifier","src":"59711:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"59585:124:65","nodeType":"YulIdentifier","src":"59585:124:65"},"nativeSrc":"59585:131:65","nodeType":"YulFunctionCall","src":"59585:131:65"},"variableNames":[{"name":"tail","nativeSrc":"59577:4:65","nodeType":"YulIdentifier","src":"59577:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"59304:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"59455:9:65","nodeType":"YulTypedName","src":"59455:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"59470:4:65","nodeType":"YulTypedName","src":"59470:4:65","type":""}],"src":"59304:419:65"},{"body":{"nativeSrc":"59967:584:65","nodeType":"YulBlock","src":"59967:584:65","statements":[{"nativeSrc":"59977:27:65","nodeType":"YulAssignment","src":"59977:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"59989:9:65","nodeType":"YulIdentifier","src":"59989:9:65"},{"kind":"number","nativeSrc":"60000:3:65","nodeType":"YulLiteral","src":"60000:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"59985:3:65","nodeType":"YulIdentifier","src":"59985:3:65"},"nativeSrc":"59985:19:65","nodeType":"YulFunctionCall","src":"59985:19:65"},"variableNames":[{"name":"tail","nativeSrc":"59977:4:65","nodeType":"YulIdentifier","src":"59977:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"60056:6:65","nodeType":"YulIdentifier","src":"60056:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"60069:9:65","nodeType":"YulIdentifier","src":"60069:9:65"},{"kind":"number","nativeSrc":"60080:1:65","nodeType":"YulLiteral","src":"60080:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"60065:3:65","nodeType":"YulIdentifier","src":"60065:3:65"},"nativeSrc":"60065:17:65","nodeType":"YulFunctionCall","src":"60065:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"60014:41:65","nodeType":"YulIdentifier","src":"60014:41:65"},"nativeSrc":"60014:69:65","nodeType":"YulFunctionCall","src":"60014:69:65"},"nativeSrc":"60014:69:65","nodeType":"YulExpressionStatement","src":"60014:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"60137:6:65","nodeType":"YulIdentifier","src":"60137:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"60150:9:65","nodeType":"YulIdentifier","src":"60150:9:65"},{"kind":"number","nativeSrc":"60161:2:65","nodeType":"YulLiteral","src":"60161:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"60146:3:65","nodeType":"YulIdentifier","src":"60146:3:65"},"nativeSrc":"60146:18:65","nodeType":"YulFunctionCall","src":"60146:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"60093:43:65","nodeType":"YulIdentifier","src":"60093:43:65"},"nativeSrc":"60093:72:65","nodeType":"YulFunctionCall","src":"60093:72:65"},"nativeSrc":"60093:72:65","nodeType":"YulExpressionStatement","src":"60093:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60186:9:65","nodeType":"YulIdentifier","src":"60186:9:65"},{"kind":"number","nativeSrc":"60197:2:65","nodeType":"YulLiteral","src":"60197:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"60182:3:65","nodeType":"YulIdentifier","src":"60182:3:65"},"nativeSrc":"60182:18:65","nodeType":"YulFunctionCall","src":"60182:18:65"},{"arguments":[{"name":"tail","nativeSrc":"60206:4:65","nodeType":"YulIdentifier","src":"60206:4:65"},{"name":"headStart","nativeSrc":"60212:9:65","nodeType":"YulIdentifier","src":"60212:9:65"}],"functionName":{"name":"sub","nativeSrc":"60202:3:65","nodeType":"YulIdentifier","src":"60202:3:65"},"nativeSrc":"60202:20:65","nodeType":"YulFunctionCall","src":"60202:20:65"}],"functionName":{"name":"mstore","nativeSrc":"60175:6:65","nodeType":"YulIdentifier","src":"60175:6:65"},"nativeSrc":"60175:48:65","nodeType":"YulFunctionCall","src":"60175:48:65"},"nativeSrc":"60175:48:65","nodeType":"YulExpressionStatement","src":"60175:48:65"},{"nativeSrc":"60232:84:65","nodeType":"YulAssignment","src":"60232:84:65","value":{"arguments":[{"name":"value2","nativeSrc":"60302:6:65","nodeType":"YulIdentifier","src":"60302:6:65"},{"name":"tail","nativeSrc":"60311:4:65","nodeType":"YulIdentifier","src":"60311:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"60240:61:65","nodeType":"YulIdentifier","src":"60240:61:65"},"nativeSrc":"60240:76:65","nodeType":"YulFunctionCall","src":"60240:76:65"},"variableNames":[{"name":"tail","nativeSrc":"60232:4:65","nodeType":"YulIdentifier","src":"60232:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"60364:6:65","nodeType":"YulIdentifier","src":"60364:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"60377:9:65","nodeType":"YulIdentifier","src":"60377:9:65"},{"kind":"number","nativeSrc":"60388:2:65","nodeType":"YulLiteral","src":"60388:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"60373:3:65","nodeType":"YulIdentifier","src":"60373:3:65"},"nativeSrc":"60373:18:65","nodeType":"YulFunctionCall","src":"60373:18:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"60326:37:65","nodeType":"YulIdentifier","src":"60326:37:65"},"nativeSrc":"60326:66:65","nodeType":"YulFunctionCall","src":"60326:66:65"},"nativeSrc":"60326:66:65","nodeType":"YulExpressionStatement","src":"60326:66:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60413:9:65","nodeType":"YulIdentifier","src":"60413:9:65"},{"kind":"number","nativeSrc":"60424:3:65","nodeType":"YulLiteral","src":"60424:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"60409:3:65","nodeType":"YulIdentifier","src":"60409:3:65"},"nativeSrc":"60409:19:65","nodeType":"YulFunctionCall","src":"60409:19:65"},{"arguments":[{"name":"tail","nativeSrc":"60434:4:65","nodeType":"YulIdentifier","src":"60434:4:65"},{"name":"headStart","nativeSrc":"60440:9:65","nodeType":"YulIdentifier","src":"60440:9:65"}],"functionName":{"name":"sub","nativeSrc":"60430:3:65","nodeType":"YulIdentifier","src":"60430:3:65"},"nativeSrc":"60430:20:65","nodeType":"YulFunctionCall","src":"60430:20:65"}],"functionName":{"name":"mstore","nativeSrc":"60402:6:65","nodeType":"YulIdentifier","src":"60402:6:65"},"nativeSrc":"60402:49:65","nodeType":"YulFunctionCall","src":"60402:49:65"},"nativeSrc":"60402:49:65","nodeType":"YulExpressionStatement","src":"60402:49:65"},{"nativeSrc":"60460:84:65","nodeType":"YulAssignment","src":"60460:84:65","value":{"arguments":[{"name":"value4","nativeSrc":"60530:6:65","nodeType":"YulIdentifier","src":"60530:6:65"},{"name":"tail","nativeSrc":"60539:4:65","nodeType":"YulIdentifier","src":"60539:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"60468:61:65","nodeType":"YulIdentifier","src":"60468:61:65"},"nativeSrc":"60468:76:65","nodeType":"YulFunctionCall","src":"60468:76:65"},"variableNames":[{"name":"tail","nativeSrc":"60460:4:65","nodeType":"YulIdentifier","src":"60460:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"59729:822:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"59907:9:65","nodeType":"YulTypedName","src":"59907:9:65","type":""},{"name":"value4","nativeSrc":"59919:6:65","nodeType":"YulTypedName","src":"59919:6:65","type":""},{"name":"value3","nativeSrc":"59927:6:65","nodeType":"YulTypedName","src":"59927:6:65","type":""},{"name":"value2","nativeSrc":"59935:6:65","nodeType":"YulTypedName","src":"59935:6:65","type":""},{"name":"value1","nativeSrc":"59943:6:65","nodeType":"YulTypedName","src":"59943:6:65","type":""},{"name":"value0","nativeSrc":"59951:6:65","nodeType":"YulTypedName","src":"59951:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"59962:4:65","nodeType":"YulTypedName","src":"59962:4:65","type":""}],"src":"59729:822:65"},{"body":{"nativeSrc":"60651:413:65","nodeType":"YulBlock","src":"60651:413:65","statements":[{"body":{"nativeSrc":"60697:83:65","nodeType":"YulBlock","src":"60697:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"60699:77:65","nodeType":"YulIdentifier","src":"60699:77:65"},"nativeSrc":"60699:79:65","nodeType":"YulFunctionCall","src":"60699:79:65"},"nativeSrc":"60699:79:65","nodeType":"YulExpressionStatement","src":"60699:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"60672:7:65","nodeType":"YulIdentifier","src":"60672:7:65"},{"name":"headStart","nativeSrc":"60681:9:65","nodeType":"YulIdentifier","src":"60681:9:65"}],"functionName":{"name":"sub","nativeSrc":"60668:3:65","nodeType":"YulIdentifier","src":"60668:3:65"},"nativeSrc":"60668:23:65","nodeType":"YulFunctionCall","src":"60668:23:65"},{"kind":"number","nativeSrc":"60693:2:65","nodeType":"YulLiteral","src":"60693:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"60664:3:65","nodeType":"YulIdentifier","src":"60664:3:65"},"nativeSrc":"60664:32:65","nodeType":"YulFunctionCall","src":"60664:32:65"},"nativeSrc":"60661:119:65","nodeType":"YulIf","src":"60661:119:65"},{"nativeSrc":"60790:128:65","nodeType":"YulBlock","src":"60790:128:65","statements":[{"nativeSrc":"60805:15:65","nodeType":"YulVariableDeclaration","src":"60805:15:65","value":{"kind":"number","nativeSrc":"60819:1:65","nodeType":"YulLiteral","src":"60819:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"60809:6:65","nodeType":"YulTypedName","src":"60809:6:65","type":""}]},{"nativeSrc":"60834:74:65","nodeType":"YulAssignment","src":"60834:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60880:9:65","nodeType":"YulIdentifier","src":"60880:9:65"},{"name":"offset","nativeSrc":"60891:6:65","nodeType":"YulIdentifier","src":"60891:6:65"}],"functionName":{"name":"add","nativeSrc":"60876:3:65","nodeType":"YulIdentifier","src":"60876:3:65"},"nativeSrc":"60876:22:65","nodeType":"YulFunctionCall","src":"60876:22:65"},{"name":"dataEnd","nativeSrc":"60900:7:65","nodeType":"YulIdentifier","src":"60900:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"60844:31:65","nodeType":"YulIdentifier","src":"60844:31:65"},"nativeSrc":"60844:64:65","nodeType":"YulFunctionCall","src":"60844:64:65"},"variableNames":[{"name":"value0","nativeSrc":"60834:6:65","nodeType":"YulIdentifier","src":"60834:6:65"}]}]},{"nativeSrc":"60928:129:65","nodeType":"YulBlock","src":"60928:129:65","statements":[{"nativeSrc":"60943:16:65","nodeType":"YulVariableDeclaration","src":"60943:16:65","value":{"kind":"number","nativeSrc":"60957:2:65","nodeType":"YulLiteral","src":"60957:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"60947:6:65","nodeType":"YulTypedName","src":"60947:6:65","type":""}]},{"nativeSrc":"60973:74:65","nodeType":"YulAssignment","src":"60973:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"61019:9:65","nodeType":"YulIdentifier","src":"61019:9:65"},{"name":"offset","nativeSrc":"61030:6:65","nodeType":"YulIdentifier","src":"61030:6:65"}],"functionName":{"name":"add","nativeSrc":"61015:3:65","nodeType":"YulIdentifier","src":"61015:3:65"},"nativeSrc":"61015:22:65","nodeType":"YulFunctionCall","src":"61015:22:65"},{"name":"dataEnd","nativeSrc":"61039:7:65","nodeType":"YulIdentifier","src":"61039:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"60983:31:65","nodeType":"YulIdentifier","src":"60983:31:65"},"nativeSrc":"60983:64:65","nodeType":"YulFunctionCall","src":"60983:64:65"},"variableNames":[{"name":"value1","nativeSrc":"60973:6:65","nodeType":"YulIdentifier","src":"60973:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nativeSrc":"60557:507:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60613:9:65","nodeType":"YulTypedName","src":"60613:9:65","type":""},{"name":"dataEnd","nativeSrc":"60624:7:65","nodeType":"YulTypedName","src":"60624:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"60636:6:65","nodeType":"YulTypedName","src":"60636:6:65","type":""},{"name":"value1","nativeSrc":"60644:6:65","nodeType":"YulTypedName","src":"60644:6:65","type":""}],"src":"60557:507:65"},{"body":{"nativeSrc":"61196:206:65","nodeType":"YulBlock","src":"61196:206:65","statements":[{"nativeSrc":"61206:26:65","nodeType":"YulAssignment","src":"61206:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"61218:9:65","nodeType":"YulIdentifier","src":"61218:9:65"},{"kind":"number","nativeSrc":"61229:2:65","nodeType":"YulLiteral","src":"61229:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"61214:3:65","nodeType":"YulIdentifier","src":"61214:3:65"},"nativeSrc":"61214:18:65","nodeType":"YulFunctionCall","src":"61214:18:65"},"variableNames":[{"name":"tail","nativeSrc":"61206:4:65","nodeType":"YulIdentifier","src":"61206:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"61286:6:65","nodeType":"YulIdentifier","src":"61286:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"61299:9:65","nodeType":"YulIdentifier","src":"61299:9:65"},{"kind":"number","nativeSrc":"61310:1:65","nodeType":"YulLiteral","src":"61310:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"61295:3:65","nodeType":"YulIdentifier","src":"61295:3:65"},"nativeSrc":"61295:17:65","nodeType":"YulFunctionCall","src":"61295:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"61242:43:65","nodeType":"YulIdentifier","src":"61242:43:65"},"nativeSrc":"61242:71:65","nodeType":"YulFunctionCall","src":"61242:71:65"},"nativeSrc":"61242:71:65","nodeType":"YulExpressionStatement","src":"61242:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"61367:6:65","nodeType":"YulIdentifier","src":"61367:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"61380:9:65","nodeType":"YulIdentifier","src":"61380:9:65"},{"kind":"number","nativeSrc":"61391:2:65","nodeType":"YulLiteral","src":"61391:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"61376:3:65","nodeType":"YulIdentifier","src":"61376:3:65"},"nativeSrc":"61376:18:65","nodeType":"YulFunctionCall","src":"61376:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"61323:43:65","nodeType":"YulIdentifier","src":"61323:43:65"},"nativeSrc":"61323:72:65","nodeType":"YulFunctionCall","src":"61323:72:65"},"nativeSrc":"61323:72:65","nodeType":"YulExpressionStatement","src":"61323:72:65"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"61070:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61160:9:65","nodeType":"YulTypedName","src":"61160:9:65","type":""},{"name":"value1","nativeSrc":"61172:6:65","nodeType":"YulTypedName","src":"61172:6:65","type":""},{"name":"value0","nativeSrc":"61180:6:65","nodeType":"YulTypedName","src":"61180:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"61191:4:65","nodeType":"YulTypedName","src":"61191:4:65","type":""}],"src":"61070:332:65"},{"body":{"nativeSrc":"61514:72:65","nodeType":"YulBlock","src":"61514:72:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"61536:6:65","nodeType":"YulIdentifier","src":"61536:6:65"},{"kind":"number","nativeSrc":"61544:1:65","nodeType":"YulLiteral","src":"61544:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"61532:3:65","nodeType":"YulIdentifier","src":"61532:3:65"},"nativeSrc":"61532:14:65","nodeType":"YulFunctionCall","src":"61532:14:65"},{"hexValue":"4f4654436f72653a20756e6b6e6f776e207061636b65742074797065","kind":"string","nativeSrc":"61548:30:65","nodeType":"YulLiteral","src":"61548:30:65","type":"","value":"OFTCore: unknown packet type"}],"functionName":{"name":"mstore","nativeSrc":"61525:6:65","nodeType":"YulIdentifier","src":"61525:6:65"},"nativeSrc":"61525:54:65","nodeType":"YulFunctionCall","src":"61525:54:65"},"nativeSrc":"61525:54:65","nodeType":"YulExpressionStatement","src":"61525:54:65"}]},"name":"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","nativeSrc":"61408:178:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"61506:6:65","nodeType":"YulTypedName","src":"61506:6:65","type":""}],"src":"61408:178:65"},{"body":{"nativeSrc":"61738:220:65","nodeType":"YulBlock","src":"61738:220:65","statements":[{"nativeSrc":"61748:74:65","nodeType":"YulAssignment","src":"61748:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"61814:3:65","nodeType":"YulIdentifier","src":"61814:3:65"},{"kind":"number","nativeSrc":"61819:2:65","nodeType":"YulLiteral","src":"61819:2:65","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"61755:58:65","nodeType":"YulIdentifier","src":"61755:58:65"},"nativeSrc":"61755:67:65","nodeType":"YulFunctionCall","src":"61755:67:65"},"variableNames":[{"name":"pos","nativeSrc":"61748:3:65","nodeType":"YulIdentifier","src":"61748:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"61920:3:65","nodeType":"YulIdentifier","src":"61920:3:65"}],"functionName":{"name":"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","nativeSrc":"61831:88:65","nodeType":"YulIdentifier","src":"61831:88:65"},"nativeSrc":"61831:93:65","nodeType":"YulFunctionCall","src":"61831:93:65"},"nativeSrc":"61831:93:65","nodeType":"YulExpressionStatement","src":"61831:93:65"},{"nativeSrc":"61933:19:65","nodeType":"YulAssignment","src":"61933:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"61944:3:65","nodeType":"YulIdentifier","src":"61944:3:65"},{"kind":"number","nativeSrc":"61949:2:65","nodeType":"YulLiteral","src":"61949:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"61940:3:65","nodeType":"YulIdentifier","src":"61940:3:65"},"nativeSrc":"61940:12:65","nodeType":"YulFunctionCall","src":"61940:12:65"},"variableNames":[{"name":"end","nativeSrc":"61933:3:65","nodeType":"YulIdentifier","src":"61933:3:65"}]}]},"name":"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack","nativeSrc":"61592:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"61726:3:65","nodeType":"YulTypedName","src":"61726:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"61734:3:65","nodeType":"YulTypedName","src":"61734:3:65","type":""}],"src":"61592:366:65"},{"body":{"nativeSrc":"62135:248:65","nodeType":"YulBlock","src":"62135:248:65","statements":[{"nativeSrc":"62145:26:65","nodeType":"YulAssignment","src":"62145:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"62157:9:65","nodeType":"YulIdentifier","src":"62157:9:65"},{"kind":"number","nativeSrc":"62168:2:65","nodeType":"YulLiteral","src":"62168:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62153:3:65","nodeType":"YulIdentifier","src":"62153:3:65"},"nativeSrc":"62153:18:65","nodeType":"YulFunctionCall","src":"62153:18:65"},"variableNames":[{"name":"tail","nativeSrc":"62145:4:65","nodeType":"YulIdentifier","src":"62145:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62192:9:65","nodeType":"YulIdentifier","src":"62192:9:65"},{"kind":"number","nativeSrc":"62203:1:65","nodeType":"YulLiteral","src":"62203:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"62188:3:65","nodeType":"YulIdentifier","src":"62188:3:65"},"nativeSrc":"62188:17:65","nodeType":"YulFunctionCall","src":"62188:17:65"},{"arguments":[{"name":"tail","nativeSrc":"62211:4:65","nodeType":"YulIdentifier","src":"62211:4:65"},{"name":"headStart","nativeSrc":"62217:9:65","nodeType":"YulIdentifier","src":"62217:9:65"}],"functionName":{"name":"sub","nativeSrc":"62207:3:65","nodeType":"YulIdentifier","src":"62207:3:65"},"nativeSrc":"62207:20:65","nodeType":"YulFunctionCall","src":"62207:20:65"}],"functionName":{"name":"mstore","nativeSrc":"62181:6:65","nodeType":"YulIdentifier","src":"62181:6:65"},"nativeSrc":"62181:47:65","nodeType":"YulFunctionCall","src":"62181:47:65"},"nativeSrc":"62181:47:65","nodeType":"YulExpressionStatement","src":"62181:47:65"},{"nativeSrc":"62237:139:65","nodeType":"YulAssignment","src":"62237:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"62371:4:65","nodeType":"YulIdentifier","src":"62371:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack","nativeSrc":"62245:124:65","nodeType":"YulIdentifier","src":"62245:124:65"},"nativeSrc":"62245:131:65","nodeType":"YulFunctionCall","src":"62245:131:65"},"variableNames":[{"name":"tail","nativeSrc":"62237:4:65","nodeType":"YulIdentifier","src":"62237:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"61964:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"62115:9:65","nodeType":"YulTypedName","src":"62115:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62130:4:65","nodeType":"YulTypedName","src":"62130:4:65","type":""}],"src":"61964:419:65"},{"body":{"nativeSrc":"62495:69:65","nodeType":"YulBlock","src":"62495:69:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"62517:6:65","nodeType":"YulIdentifier","src":"62517:6:65"},{"kind":"number","nativeSrc":"62525:1:65","nodeType":"YulLiteral","src":"62525:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"62513:3:65","nodeType":"YulIdentifier","src":"62513:3:65"},"nativeSrc":"62513:14:65","nodeType":"YulFunctionCall","src":"62513:14:65"},{"hexValue":"4f4654436f72653a20616d6f756e7420746f6f20736d616c6c","kind":"string","nativeSrc":"62529:27:65","nodeType":"YulLiteral","src":"62529:27:65","type":"","value":"OFTCore: amount too small"}],"functionName":{"name":"mstore","nativeSrc":"62506:6:65","nodeType":"YulIdentifier","src":"62506:6:65"},"nativeSrc":"62506:51:65","nodeType":"YulFunctionCall","src":"62506:51:65"},"nativeSrc":"62506:51:65","nodeType":"YulExpressionStatement","src":"62506:51:65"}]},"name":"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","nativeSrc":"62389:175:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"62487:6:65","nodeType":"YulTypedName","src":"62487:6:65","type":""}],"src":"62389:175:65"},{"body":{"nativeSrc":"62716:220:65","nodeType":"YulBlock","src":"62716:220:65","statements":[{"nativeSrc":"62726:74:65","nodeType":"YulAssignment","src":"62726:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"62792:3:65","nodeType":"YulIdentifier","src":"62792:3:65"},{"kind":"number","nativeSrc":"62797:2:65","nodeType":"YulLiteral","src":"62797:2:65","type":"","value":"25"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"62733:58:65","nodeType":"YulIdentifier","src":"62733:58:65"},"nativeSrc":"62733:67:65","nodeType":"YulFunctionCall","src":"62733:67:65"},"variableNames":[{"name":"pos","nativeSrc":"62726:3:65","nodeType":"YulIdentifier","src":"62726:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"62898:3:65","nodeType":"YulIdentifier","src":"62898:3:65"}],"functionName":{"name":"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","nativeSrc":"62809:88:65","nodeType":"YulIdentifier","src":"62809:88:65"},"nativeSrc":"62809:93:65","nodeType":"YulFunctionCall","src":"62809:93:65"},"nativeSrc":"62809:93:65","nodeType":"YulExpressionStatement","src":"62809:93:65"},{"nativeSrc":"62911:19:65","nodeType":"YulAssignment","src":"62911:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"62922:3:65","nodeType":"YulIdentifier","src":"62922:3:65"},{"kind":"number","nativeSrc":"62927:2:65","nodeType":"YulLiteral","src":"62927:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62918:3:65","nodeType":"YulIdentifier","src":"62918:3:65"},"nativeSrc":"62918:12:65","nodeType":"YulFunctionCall","src":"62918:12:65"},"variableNames":[{"name":"end","nativeSrc":"62911:3:65","nodeType":"YulIdentifier","src":"62911:3:65"}]}]},"name":"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack","nativeSrc":"62570:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"62704:3:65","nodeType":"YulTypedName","src":"62704:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"62712:3:65","nodeType":"YulTypedName","src":"62712:3:65","type":""}],"src":"62570:366:65"},{"body":{"nativeSrc":"63113:248:65","nodeType":"YulBlock","src":"63113:248:65","statements":[{"nativeSrc":"63123:26:65","nodeType":"YulAssignment","src":"63123:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"63135:9:65","nodeType":"YulIdentifier","src":"63135:9:65"},{"kind":"number","nativeSrc":"63146:2:65","nodeType":"YulLiteral","src":"63146:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"63131:3:65","nodeType":"YulIdentifier","src":"63131:3:65"},"nativeSrc":"63131:18:65","nodeType":"YulFunctionCall","src":"63131:18:65"},"variableNames":[{"name":"tail","nativeSrc":"63123:4:65","nodeType":"YulIdentifier","src":"63123:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"63170:9:65","nodeType":"YulIdentifier","src":"63170:9:65"},{"kind":"number","nativeSrc":"63181:1:65","nodeType":"YulLiteral","src":"63181:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"63166:3:65","nodeType":"YulIdentifier","src":"63166:3:65"},"nativeSrc":"63166:17:65","nodeType":"YulFunctionCall","src":"63166:17:65"},{"arguments":[{"name":"tail","nativeSrc":"63189:4:65","nodeType":"YulIdentifier","src":"63189:4:65"},{"name":"headStart","nativeSrc":"63195:9:65","nodeType":"YulIdentifier","src":"63195:9:65"}],"functionName":{"name":"sub","nativeSrc":"63185:3:65","nodeType":"YulIdentifier","src":"63185:3:65"},"nativeSrc":"63185:20:65","nodeType":"YulFunctionCall","src":"63185:20:65"}],"functionName":{"name":"mstore","nativeSrc":"63159:6:65","nodeType":"YulIdentifier","src":"63159:6:65"},"nativeSrc":"63159:47:65","nodeType":"YulFunctionCall","src":"63159:47:65"},"nativeSrc":"63159:47:65","nodeType":"YulExpressionStatement","src":"63159:47:65"},{"nativeSrc":"63215:139:65","nodeType":"YulAssignment","src":"63215:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"63349:4:65","nodeType":"YulIdentifier","src":"63349:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack","nativeSrc":"63223:124:65","nodeType":"YulIdentifier","src":"63223:124:65"},"nativeSrc":"63223:131:65","nodeType":"YulFunctionCall","src":"63223:131:65"},"variableNames":[{"name":"tail","nativeSrc":"63215:4:65","nodeType":"YulIdentifier","src":"63215:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"62942:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"63093:9:65","nodeType":"YulTypedName","src":"63093:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"63108:4:65","nodeType":"YulTypedName","src":"63108:4:65","type":""}],"src":"62942:419:65"},{"body":{"nativeSrc":"63473:58:65","nodeType":"YulBlock","src":"63473:58:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"63495:6:65","nodeType":"YulIdentifier","src":"63495:6:65"},{"kind":"number","nativeSrc":"63503:1:65","nodeType":"YulLiteral","src":"63503:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"63491:3:65","nodeType":"YulIdentifier","src":"63491:3:65"},"nativeSrc":"63491:14:65","nodeType":"YulFunctionCall","src":"63491:14:65"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nativeSrc":"63507:16:65","nodeType":"YulLiteral","src":"63507:16:65","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nativeSrc":"63484:6:65","nodeType":"YulIdentifier","src":"63484:6:65"},"nativeSrc":"63484:40:65","nodeType":"YulFunctionCall","src":"63484:40:65"},"nativeSrc":"63484:40:65","nodeType":"YulExpressionStatement","src":"63484:40:65"}]},"name":"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","nativeSrc":"63367:164:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"63465:6:65","nodeType":"YulTypedName","src":"63465:6:65","type":""}],"src":"63367:164:65"},{"body":{"nativeSrc":"63683:220:65","nodeType":"YulBlock","src":"63683:220:65","statements":[{"nativeSrc":"63693:74:65","nodeType":"YulAssignment","src":"63693:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"63759:3:65","nodeType":"YulIdentifier","src":"63759:3:65"},{"kind":"number","nativeSrc":"63764:2:65","nodeType":"YulLiteral","src":"63764:2:65","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"63700:58:65","nodeType":"YulIdentifier","src":"63700:58:65"},"nativeSrc":"63700:67:65","nodeType":"YulFunctionCall","src":"63700:67:65"},"variableNames":[{"name":"pos","nativeSrc":"63693:3:65","nodeType":"YulIdentifier","src":"63693:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"63865:3:65","nodeType":"YulIdentifier","src":"63865:3:65"}],"functionName":{"name":"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","nativeSrc":"63776:88:65","nodeType":"YulIdentifier","src":"63776:88:65"},"nativeSrc":"63776:93:65","nodeType":"YulFunctionCall","src":"63776:93:65"},"nativeSrc":"63776:93:65","nodeType":"YulExpressionStatement","src":"63776:93:65"},{"nativeSrc":"63878:19:65","nodeType":"YulAssignment","src":"63878:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"63889:3:65","nodeType":"YulIdentifier","src":"63889:3:65"},{"kind":"number","nativeSrc":"63894:2:65","nodeType":"YulLiteral","src":"63894:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"63885:3:65","nodeType":"YulIdentifier","src":"63885:3:65"},"nativeSrc":"63885:12:65","nodeType":"YulFunctionCall","src":"63885:12:65"},"variableNames":[{"name":"end","nativeSrc":"63878:3:65","nodeType":"YulIdentifier","src":"63878:3:65"}]}]},"name":"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack","nativeSrc":"63537:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"63671:3:65","nodeType":"YulTypedName","src":"63671:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"63679:3:65","nodeType":"YulTypedName","src":"63679:3:65","type":""}],"src":"63537:366:65"},{"body":{"nativeSrc":"64080:248:65","nodeType":"YulBlock","src":"64080:248:65","statements":[{"nativeSrc":"64090:26:65","nodeType":"YulAssignment","src":"64090:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"64102:9:65","nodeType":"YulIdentifier","src":"64102:9:65"},{"kind":"number","nativeSrc":"64113:2:65","nodeType":"YulLiteral","src":"64113:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"64098:3:65","nodeType":"YulIdentifier","src":"64098:3:65"},"nativeSrc":"64098:18:65","nodeType":"YulFunctionCall","src":"64098:18:65"},"variableNames":[{"name":"tail","nativeSrc":"64090:4:65","nodeType":"YulIdentifier","src":"64090:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"64137:9:65","nodeType":"YulIdentifier","src":"64137:9:65"},{"kind":"number","nativeSrc":"64148:1:65","nodeType":"YulLiteral","src":"64148:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"64133:3:65","nodeType":"YulIdentifier","src":"64133:3:65"},"nativeSrc":"64133:17:65","nodeType":"YulFunctionCall","src":"64133:17:65"},{"arguments":[{"name":"tail","nativeSrc":"64156:4:65","nodeType":"YulIdentifier","src":"64156:4:65"},{"name":"headStart","nativeSrc":"64162:9:65","nodeType":"YulIdentifier","src":"64162:9:65"}],"functionName":{"name":"sub","nativeSrc":"64152:3:65","nodeType":"YulIdentifier","src":"64152:3:65"},"nativeSrc":"64152:20:65","nodeType":"YulFunctionCall","src":"64152:20:65"}],"functionName":{"name":"mstore","nativeSrc":"64126:6:65","nodeType":"YulIdentifier","src":"64126:6:65"},"nativeSrc":"64126:47:65","nodeType":"YulFunctionCall","src":"64126:47:65"},"nativeSrc":"64126:47:65","nodeType":"YulExpressionStatement","src":"64126:47:65"},{"nativeSrc":"64182:139:65","nodeType":"YulAssignment","src":"64182:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"64316:4:65","nodeType":"YulIdentifier","src":"64316:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack","nativeSrc":"64190:124:65","nodeType":"YulIdentifier","src":"64190:124:65"},"nativeSrc":"64190:131:65","nodeType":"YulFunctionCall","src":"64190:131:65"},"variableNames":[{"name":"tail","nativeSrc":"64182:4:65","nodeType":"YulIdentifier","src":"64182:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"63909:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"64060:9:65","nodeType":"YulTypedName","src":"64060:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"64075:4:65","nodeType":"YulTypedName","src":"64075:4:65","type":""}],"src":"63909:419:65"},{"body":{"nativeSrc":"64440:61:65","nodeType":"YulBlock","src":"64440:61:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"64462:6:65","nodeType":"YulIdentifier","src":"64462:6:65"},{"kind":"number","nativeSrc":"64470:1:65","nodeType":"YulLiteral","src":"64470:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"64458:3:65","nodeType":"YulIdentifier","src":"64458:3:65"},"nativeSrc":"64458:14:65","nodeType":"YulFunctionCall","src":"64458:14:65"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nativeSrc":"64474:19:65","nodeType":"YulLiteral","src":"64474:19:65","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"64451:6:65","nodeType":"YulIdentifier","src":"64451:6:65"},"nativeSrc":"64451:43:65","nodeType":"YulFunctionCall","src":"64451:43:65"},"nativeSrc":"64451:43:65","nodeType":"YulExpressionStatement","src":"64451:43:65"}]},"name":"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","nativeSrc":"64334:167:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"64432:6:65","nodeType":"YulTypedName","src":"64432:6:65","type":""}],"src":"64334:167:65"},{"body":{"nativeSrc":"64653:220:65","nodeType":"YulBlock","src":"64653:220:65","statements":[{"nativeSrc":"64663:74:65","nodeType":"YulAssignment","src":"64663:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"64729:3:65","nodeType":"YulIdentifier","src":"64729:3:65"},{"kind":"number","nativeSrc":"64734:2:65","nodeType":"YulLiteral","src":"64734:2:65","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"64670:58:65","nodeType":"YulIdentifier","src":"64670:58:65"},"nativeSrc":"64670:67:65","nodeType":"YulFunctionCall","src":"64670:67:65"},"variableNames":[{"name":"pos","nativeSrc":"64663:3:65","nodeType":"YulIdentifier","src":"64663:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"64835:3:65","nodeType":"YulIdentifier","src":"64835:3:65"}],"functionName":{"name":"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","nativeSrc":"64746:88:65","nodeType":"YulIdentifier","src":"64746:88:65"},"nativeSrc":"64746:93:65","nodeType":"YulFunctionCall","src":"64746:93:65"},"nativeSrc":"64746:93:65","nodeType":"YulExpressionStatement","src":"64746:93:65"},{"nativeSrc":"64848:19:65","nodeType":"YulAssignment","src":"64848:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"64859:3:65","nodeType":"YulIdentifier","src":"64859:3:65"},{"kind":"number","nativeSrc":"64864:2:65","nodeType":"YulLiteral","src":"64864:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"64855:3:65","nodeType":"YulIdentifier","src":"64855:3:65"},"nativeSrc":"64855:12:65","nodeType":"YulFunctionCall","src":"64855:12:65"},"variableNames":[{"name":"end","nativeSrc":"64848:3:65","nodeType":"YulIdentifier","src":"64848:3:65"}]}]},"name":"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack","nativeSrc":"64507:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"64641:3:65","nodeType":"YulTypedName","src":"64641:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"64649:3:65","nodeType":"YulTypedName","src":"64649:3:65","type":""}],"src":"64507:366:65"},{"body":{"nativeSrc":"65050:248:65","nodeType":"YulBlock","src":"65050:248:65","statements":[{"nativeSrc":"65060:26:65","nodeType":"YulAssignment","src":"65060:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"65072:9:65","nodeType":"YulIdentifier","src":"65072:9:65"},{"kind":"number","nativeSrc":"65083:2:65","nodeType":"YulLiteral","src":"65083:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"65068:3:65","nodeType":"YulIdentifier","src":"65068:3:65"},"nativeSrc":"65068:18:65","nodeType":"YulFunctionCall","src":"65068:18:65"},"variableNames":[{"name":"tail","nativeSrc":"65060:4:65","nodeType":"YulIdentifier","src":"65060:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"65107:9:65","nodeType":"YulIdentifier","src":"65107:9:65"},{"kind":"number","nativeSrc":"65118:1:65","nodeType":"YulLiteral","src":"65118:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"65103:3:65","nodeType":"YulIdentifier","src":"65103:3:65"},"nativeSrc":"65103:17:65","nodeType":"YulFunctionCall","src":"65103:17:65"},{"arguments":[{"name":"tail","nativeSrc":"65126:4:65","nodeType":"YulIdentifier","src":"65126:4:65"},{"name":"headStart","nativeSrc":"65132:9:65","nodeType":"YulIdentifier","src":"65132:9:65"}],"functionName":{"name":"sub","nativeSrc":"65122:3:65","nodeType":"YulIdentifier","src":"65122:3:65"},"nativeSrc":"65122:20:65","nodeType":"YulFunctionCall","src":"65122:20:65"}],"functionName":{"name":"mstore","nativeSrc":"65096:6:65","nodeType":"YulIdentifier","src":"65096:6:65"},"nativeSrc":"65096:47:65","nodeType":"YulFunctionCall","src":"65096:47:65"},"nativeSrc":"65096:47:65","nodeType":"YulExpressionStatement","src":"65096:47:65"},{"nativeSrc":"65152:139:65","nodeType":"YulAssignment","src":"65152:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"65286:4:65","nodeType":"YulIdentifier","src":"65286:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack","nativeSrc":"65160:124:65","nodeType":"YulIdentifier","src":"65160:124:65"},"nativeSrc":"65160:131:65","nodeType":"YulFunctionCall","src":"65160:131:65"},"variableNames":[{"name":"tail","nativeSrc":"65152:4:65","nodeType":"YulIdentifier","src":"65152:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"64879:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"65030:9:65","nodeType":"YulTypedName","src":"65030:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"65045:4:65","nodeType":"YulTypedName","src":"65045:4:65","type":""}],"src":"64879:419:65"},{"body":{"nativeSrc":"65410:116:65","nodeType":"YulBlock","src":"65410:116:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"65432:6:65","nodeType":"YulIdentifier","src":"65432:6:65"},{"kind":"number","nativeSrc":"65440:1:65","nodeType":"YulLiteral","src":"65440:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"65428:3:65","nodeType":"YulIdentifier","src":"65428:3:65"},"nativeSrc":"65428:14:65","nodeType":"YulFunctionCall","src":"65428:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nativeSrc":"65444:34:65","nodeType":"YulLiteral","src":"65444:34:65","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nativeSrc":"65421:6:65","nodeType":"YulIdentifier","src":"65421:6:65"},"nativeSrc":"65421:58:65","nodeType":"YulFunctionCall","src":"65421:58:65"},"nativeSrc":"65421:58:65","nodeType":"YulExpressionStatement","src":"65421:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"65500:6:65","nodeType":"YulIdentifier","src":"65500:6:65"},{"kind":"number","nativeSrc":"65508:2:65","nodeType":"YulLiteral","src":"65508:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"65496:3:65","nodeType":"YulIdentifier","src":"65496:3:65"},"nativeSrc":"65496:15:65","nodeType":"YulFunctionCall","src":"65496:15:65"},{"hexValue":"616765","kind":"string","nativeSrc":"65513:5:65","nodeType":"YulLiteral","src":"65513:5:65","type":"","value":"age"}],"functionName":{"name":"mstore","nativeSrc":"65489:6:65","nodeType":"YulIdentifier","src":"65489:6:65"},"nativeSrc":"65489:30:65","nodeType":"YulFunctionCall","src":"65489:30:65"},"nativeSrc":"65489:30:65","nodeType":"YulExpressionStatement","src":"65489:30:65"}]},"name":"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","nativeSrc":"65304:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"65402:6:65","nodeType":"YulTypedName","src":"65402:6:65","type":""}],"src":"65304:222:65"},{"body":{"nativeSrc":"65678:220:65","nodeType":"YulBlock","src":"65678:220:65","statements":[{"nativeSrc":"65688:74:65","nodeType":"YulAssignment","src":"65688:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"65754:3:65","nodeType":"YulIdentifier","src":"65754:3:65"},{"kind":"number","nativeSrc":"65759:2:65","nodeType":"YulLiteral","src":"65759:2:65","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"65695:58:65","nodeType":"YulIdentifier","src":"65695:58:65"},"nativeSrc":"65695:67:65","nodeType":"YulFunctionCall","src":"65695:67:65"},"variableNames":[{"name":"pos","nativeSrc":"65688:3:65","nodeType":"YulIdentifier","src":"65688:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"65860:3:65","nodeType":"YulIdentifier","src":"65860:3:65"}],"functionName":{"name":"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","nativeSrc":"65771:88:65","nodeType":"YulIdentifier","src":"65771:88:65"},"nativeSrc":"65771:93:65","nodeType":"YulFunctionCall","src":"65771:93:65"},"nativeSrc":"65771:93:65","nodeType":"YulExpressionStatement","src":"65771:93:65"},{"nativeSrc":"65873:19:65","nodeType":"YulAssignment","src":"65873:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"65884:3:65","nodeType":"YulIdentifier","src":"65884:3:65"},{"kind":"number","nativeSrc":"65889:2:65","nodeType":"YulLiteral","src":"65889:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"65880:3:65","nodeType":"YulIdentifier","src":"65880:3:65"},"nativeSrc":"65880:12:65","nodeType":"YulFunctionCall","src":"65880:12:65"},"variableNames":[{"name":"end","nativeSrc":"65873:3:65","nodeType":"YulIdentifier","src":"65873:3:65"}]}]},"name":"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack","nativeSrc":"65532:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"65666:3:65","nodeType":"YulTypedName","src":"65666:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"65674:3:65","nodeType":"YulTypedName","src":"65674:3:65","type":""}],"src":"65532:366:65"},{"body":{"nativeSrc":"66075:248:65","nodeType":"YulBlock","src":"66075:248:65","statements":[{"nativeSrc":"66085:26:65","nodeType":"YulAssignment","src":"66085:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"66097:9:65","nodeType":"YulIdentifier","src":"66097:9:65"},{"kind":"number","nativeSrc":"66108:2:65","nodeType":"YulLiteral","src":"66108:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"66093:3:65","nodeType":"YulIdentifier","src":"66093:3:65"},"nativeSrc":"66093:18:65","nodeType":"YulFunctionCall","src":"66093:18:65"},"variableNames":[{"name":"tail","nativeSrc":"66085:4:65","nodeType":"YulIdentifier","src":"66085:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66132:9:65","nodeType":"YulIdentifier","src":"66132:9:65"},{"kind":"number","nativeSrc":"66143:1:65","nodeType":"YulLiteral","src":"66143:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"66128:3:65","nodeType":"YulIdentifier","src":"66128:3:65"},"nativeSrc":"66128:17:65","nodeType":"YulFunctionCall","src":"66128:17:65"},{"arguments":[{"name":"tail","nativeSrc":"66151:4:65","nodeType":"YulIdentifier","src":"66151:4:65"},{"name":"headStart","nativeSrc":"66157:9:65","nodeType":"YulIdentifier","src":"66157:9:65"}],"functionName":{"name":"sub","nativeSrc":"66147:3:65","nodeType":"YulIdentifier","src":"66147:3:65"},"nativeSrc":"66147:20:65","nodeType":"YulFunctionCall","src":"66147:20:65"}],"functionName":{"name":"mstore","nativeSrc":"66121:6:65","nodeType":"YulIdentifier","src":"66121:6:65"},"nativeSrc":"66121:47:65","nodeType":"YulFunctionCall","src":"66121:47:65"},"nativeSrc":"66121:47:65","nodeType":"YulExpressionStatement","src":"66121:47:65"},{"nativeSrc":"66177:139:65","nodeType":"YulAssignment","src":"66177:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"66311:4:65","nodeType":"YulIdentifier","src":"66311:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack","nativeSrc":"66185:124:65","nodeType":"YulIdentifier","src":"66185:124:65"},"nativeSrc":"66185:131:65","nodeType":"YulFunctionCall","src":"66185:131:65"},"variableNames":[{"name":"tail","nativeSrc":"66177:4:65","nodeType":"YulIdentifier","src":"66177:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"65904:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"66055:9:65","nodeType":"YulTypedName","src":"66055:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"66070:4:65","nodeType":"YulTypedName","src":"66070:4:65","type":""}],"src":"65904:419:65"},{"body":{"nativeSrc":"66435:114:65","nodeType":"YulBlock","src":"66435:114:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"66457:6:65","nodeType":"YulIdentifier","src":"66457:6:65"},{"kind":"number","nativeSrc":"66465:1:65","nodeType":"YulLiteral","src":"66465:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"66453:3:65","nodeType":"YulIdentifier","src":"66453:3:65"},"nativeSrc":"66453:14:65","nodeType":"YulFunctionCall","src":"66453:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nativeSrc":"66469:34:65","nodeType":"YulLiteral","src":"66469:34:65","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nativeSrc":"66446:6:65","nodeType":"YulIdentifier","src":"66446:6:65"},"nativeSrc":"66446:58:65","nodeType":"YulFunctionCall","src":"66446:58:65"},"nativeSrc":"66446:58:65","nodeType":"YulExpressionStatement","src":"66446:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"66525:6:65","nodeType":"YulIdentifier","src":"66525:6:65"},{"kind":"number","nativeSrc":"66533:2:65","nodeType":"YulLiteral","src":"66533:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"66521:3:65","nodeType":"YulIdentifier","src":"66521:3:65"},"nativeSrc":"66521:15:65","nodeType":"YulFunctionCall","src":"66521:15:65"},{"hexValue":"64","kind":"string","nativeSrc":"66538:3:65","nodeType":"YulLiteral","src":"66538:3:65","type":"","value":"d"}],"functionName":{"name":"mstore","nativeSrc":"66514:6:65","nodeType":"YulIdentifier","src":"66514:6:65"},"nativeSrc":"66514:28:65","nodeType":"YulFunctionCall","src":"66514:28:65"},"nativeSrc":"66514:28:65","nodeType":"YulExpressionStatement","src":"66514:28:65"}]},"name":"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","nativeSrc":"66329:220:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"66427:6:65","nodeType":"YulTypedName","src":"66427:6:65","type":""}],"src":"66329:220:65"},{"body":{"nativeSrc":"66701:220:65","nodeType":"YulBlock","src":"66701:220:65","statements":[{"nativeSrc":"66711:74:65","nodeType":"YulAssignment","src":"66711:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"66777:3:65","nodeType":"YulIdentifier","src":"66777:3:65"},{"kind":"number","nativeSrc":"66782:2:65","nodeType":"YulLiteral","src":"66782:2:65","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"66718:58:65","nodeType":"YulIdentifier","src":"66718:58:65"},"nativeSrc":"66718:67:65","nodeType":"YulFunctionCall","src":"66718:67:65"},"variableNames":[{"name":"pos","nativeSrc":"66711:3:65","nodeType":"YulIdentifier","src":"66711:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"66883:3:65","nodeType":"YulIdentifier","src":"66883:3:65"}],"functionName":{"name":"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","nativeSrc":"66794:88:65","nodeType":"YulIdentifier","src":"66794:88:65"},"nativeSrc":"66794:93:65","nodeType":"YulFunctionCall","src":"66794:93:65"},"nativeSrc":"66794:93:65","nodeType":"YulExpressionStatement","src":"66794:93:65"},{"nativeSrc":"66896:19:65","nodeType":"YulAssignment","src":"66896:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"66907:3:65","nodeType":"YulIdentifier","src":"66907:3:65"},{"kind":"number","nativeSrc":"66912:2:65","nodeType":"YulLiteral","src":"66912:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"66903:3:65","nodeType":"YulIdentifier","src":"66903:3:65"},"nativeSrc":"66903:12:65","nodeType":"YulFunctionCall","src":"66903:12:65"},"variableNames":[{"name":"end","nativeSrc":"66896:3:65","nodeType":"YulIdentifier","src":"66896:3:65"}]}]},"name":"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack","nativeSrc":"66555:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"66689:3:65","nodeType":"YulTypedName","src":"66689:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"66697:3:65","nodeType":"YulTypedName","src":"66697:3:65","type":""}],"src":"66555:366:65"},{"body":{"nativeSrc":"67098:248:65","nodeType":"YulBlock","src":"67098:248:65","statements":[{"nativeSrc":"67108:26:65","nodeType":"YulAssignment","src":"67108:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"67120:9:65","nodeType":"YulIdentifier","src":"67120:9:65"},{"kind":"number","nativeSrc":"67131:2:65","nodeType":"YulLiteral","src":"67131:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67116:3:65","nodeType":"YulIdentifier","src":"67116:3:65"},"nativeSrc":"67116:18:65","nodeType":"YulFunctionCall","src":"67116:18:65"},"variableNames":[{"name":"tail","nativeSrc":"67108:4:65","nodeType":"YulIdentifier","src":"67108:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"67155:9:65","nodeType":"YulIdentifier","src":"67155:9:65"},{"kind":"number","nativeSrc":"67166:1:65","nodeType":"YulLiteral","src":"67166:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"67151:3:65","nodeType":"YulIdentifier","src":"67151:3:65"},"nativeSrc":"67151:17:65","nodeType":"YulFunctionCall","src":"67151:17:65"},{"arguments":[{"name":"tail","nativeSrc":"67174:4:65","nodeType":"YulIdentifier","src":"67174:4:65"},{"name":"headStart","nativeSrc":"67180:9:65","nodeType":"YulIdentifier","src":"67180:9:65"}],"functionName":{"name":"sub","nativeSrc":"67170:3:65","nodeType":"YulIdentifier","src":"67170:3:65"},"nativeSrc":"67170:20:65","nodeType":"YulFunctionCall","src":"67170:20:65"}],"functionName":{"name":"mstore","nativeSrc":"67144:6:65","nodeType":"YulIdentifier","src":"67144:6:65"},"nativeSrc":"67144:47:65","nodeType":"YulFunctionCall","src":"67144:47:65"},"nativeSrc":"67144:47:65","nodeType":"YulExpressionStatement","src":"67144:47:65"},{"nativeSrc":"67200:139:65","nodeType":"YulAssignment","src":"67200:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"67334:4:65","nodeType":"YulIdentifier","src":"67334:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack","nativeSrc":"67208:124:65","nodeType":"YulIdentifier","src":"67208:124:65"},"nativeSrc":"67208:131:65","nodeType":"YulFunctionCall","src":"67208:131:65"},"variableNames":[{"name":"tail","nativeSrc":"67200:4:65","nodeType":"YulIdentifier","src":"67200:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"66927:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"67078:9:65","nodeType":"YulTypedName","src":"67078:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"67093:4:65","nodeType":"YulTypedName","src":"67093:4:65","type":""}],"src":"66927:419:65"},{"body":{"nativeSrc":"67558:446:65","nodeType":"YulBlock","src":"67558:446:65","statements":[{"nativeSrc":"67568:27:65","nodeType":"YulAssignment","src":"67568:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"67580:9:65","nodeType":"YulIdentifier","src":"67580:9:65"},{"kind":"number","nativeSrc":"67591:3:65","nodeType":"YulLiteral","src":"67591:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"67576:3:65","nodeType":"YulIdentifier","src":"67576:3:65"},"nativeSrc":"67576:19:65","nodeType":"YulFunctionCall","src":"67576:19:65"},"variableNames":[{"name":"tail","nativeSrc":"67568:4:65","nodeType":"YulIdentifier","src":"67568:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"67647:6:65","nodeType":"YulIdentifier","src":"67647:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"67660:9:65","nodeType":"YulIdentifier","src":"67660:9:65"},{"kind":"number","nativeSrc":"67671:1:65","nodeType":"YulLiteral","src":"67671:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"67656:3:65","nodeType":"YulIdentifier","src":"67656:3:65"},"nativeSrc":"67656:17:65","nodeType":"YulFunctionCall","src":"67656:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"67605:41:65","nodeType":"YulIdentifier","src":"67605:41:65"},"nativeSrc":"67605:69:65","nodeType":"YulFunctionCall","src":"67605:69:65"},"nativeSrc":"67605:69:65","nodeType":"YulExpressionStatement","src":"67605:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"67695:9:65","nodeType":"YulIdentifier","src":"67695:9:65"},{"kind":"number","nativeSrc":"67706:2:65","nodeType":"YulLiteral","src":"67706:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67691:3:65","nodeType":"YulIdentifier","src":"67691:3:65"},"nativeSrc":"67691:18:65","nodeType":"YulFunctionCall","src":"67691:18:65"},{"arguments":[{"name":"tail","nativeSrc":"67715:4:65","nodeType":"YulIdentifier","src":"67715:4:65"},{"name":"headStart","nativeSrc":"67721:9:65","nodeType":"YulIdentifier","src":"67721:9:65"}],"functionName":{"name":"sub","nativeSrc":"67711:3:65","nodeType":"YulIdentifier","src":"67711:3:65"},"nativeSrc":"67711:20:65","nodeType":"YulFunctionCall","src":"67711:20:65"}],"functionName":{"name":"mstore","nativeSrc":"67684:6:65","nodeType":"YulIdentifier","src":"67684:6:65"},"nativeSrc":"67684:48:65","nodeType":"YulFunctionCall","src":"67684:48:65"},"nativeSrc":"67684:48:65","nodeType":"YulExpressionStatement","src":"67684:48:65"},{"nativeSrc":"67741:94:65","nodeType":"YulAssignment","src":"67741:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"67813:6:65","nodeType":"YulIdentifier","src":"67813:6:65"},{"name":"value2","nativeSrc":"67821:6:65","nodeType":"YulIdentifier","src":"67821:6:65"},{"name":"tail","nativeSrc":"67830:4:65","nodeType":"YulIdentifier","src":"67830:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"67749:63:65","nodeType":"YulIdentifier","src":"67749:63:65"},"nativeSrc":"67749:86:65","nodeType":"YulFunctionCall","src":"67749:86:65"},"variableNames":[{"name":"tail","nativeSrc":"67741:4:65","nodeType":"YulIdentifier","src":"67741:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"67887:6:65","nodeType":"YulIdentifier","src":"67887:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"67900:9:65","nodeType":"YulIdentifier","src":"67900:9:65"},{"kind":"number","nativeSrc":"67911:2:65","nodeType":"YulLiteral","src":"67911:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"67896:3:65","nodeType":"YulIdentifier","src":"67896:3:65"},"nativeSrc":"67896:18:65","nodeType":"YulFunctionCall","src":"67896:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"67845:41:65","nodeType":"YulIdentifier","src":"67845:41:65"},"nativeSrc":"67845:70:65","nodeType":"YulFunctionCall","src":"67845:70:65"},"nativeSrc":"67845:70:65","nodeType":"YulExpressionStatement","src":"67845:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"67969:6:65","nodeType":"YulIdentifier","src":"67969:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"67982:9:65","nodeType":"YulIdentifier","src":"67982:9:65"},{"kind":"number","nativeSrc":"67993:2:65","nodeType":"YulLiteral","src":"67993:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"67978:3:65","nodeType":"YulIdentifier","src":"67978:3:65"},"nativeSrc":"67978:18:65","nodeType":"YulFunctionCall","src":"67978:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"67925:43:65","nodeType":"YulIdentifier","src":"67925:43:65"},"nativeSrc":"67925:72:65","nodeType":"YulFunctionCall","src":"67925:72:65"},"nativeSrc":"67925:72:65","nodeType":"YulExpressionStatement","src":"67925:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"67352:652:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"67498:9:65","nodeType":"YulTypedName","src":"67498:9:65","type":""},{"name":"value4","nativeSrc":"67510:6:65","nodeType":"YulTypedName","src":"67510:6:65","type":""},{"name":"value3","nativeSrc":"67518:6:65","nodeType":"YulTypedName","src":"67518:6:65","type":""},{"name":"value2","nativeSrc":"67526:6:65","nodeType":"YulTypedName","src":"67526:6:65","type":""},{"name":"value1","nativeSrc":"67534:6:65","nodeType":"YulTypedName","src":"67534:6:65","type":""},{"name":"value0","nativeSrc":"67542:6:65","nodeType":"YulTypedName","src":"67542:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"67553:4:65","nodeType":"YulTypedName","src":"67553:4:65","type":""}],"src":"67352:652:65"},{"body":{"nativeSrc":"68270:657:65","nodeType":"YulBlock","src":"68270:657:65","statements":[{"nativeSrc":"68280:27:65","nodeType":"YulAssignment","src":"68280:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"68292:9:65","nodeType":"YulIdentifier","src":"68292:9:65"},{"kind":"number","nativeSrc":"68303:3:65","nodeType":"YulLiteral","src":"68303:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"68288:3:65","nodeType":"YulIdentifier","src":"68288:3:65"},"nativeSrc":"68288:19:65","nodeType":"YulFunctionCall","src":"68288:19:65"},"variableNames":[{"name":"tail","nativeSrc":"68280:4:65","nodeType":"YulIdentifier","src":"68280:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"68359:6:65","nodeType":"YulIdentifier","src":"68359:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"68372:9:65","nodeType":"YulIdentifier","src":"68372:9:65"},{"kind":"number","nativeSrc":"68383:1:65","nodeType":"YulLiteral","src":"68383:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"68368:3:65","nodeType":"YulIdentifier","src":"68368:3:65"},"nativeSrc":"68368:17:65","nodeType":"YulFunctionCall","src":"68368:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"68317:41:65","nodeType":"YulIdentifier","src":"68317:41:65"},"nativeSrc":"68317:69:65","nodeType":"YulFunctionCall","src":"68317:69:65"},"nativeSrc":"68317:69:65","nodeType":"YulExpressionStatement","src":"68317:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68407:9:65","nodeType":"YulIdentifier","src":"68407:9:65"},{"kind":"number","nativeSrc":"68418:2:65","nodeType":"YulLiteral","src":"68418:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68403:3:65","nodeType":"YulIdentifier","src":"68403:3:65"},"nativeSrc":"68403:18:65","nodeType":"YulFunctionCall","src":"68403:18:65"},{"arguments":[{"name":"tail","nativeSrc":"68427:4:65","nodeType":"YulIdentifier","src":"68427:4:65"},{"name":"headStart","nativeSrc":"68433:9:65","nodeType":"YulIdentifier","src":"68433:9:65"}],"functionName":{"name":"sub","nativeSrc":"68423:3:65","nodeType":"YulIdentifier","src":"68423:3:65"},"nativeSrc":"68423:20:65","nodeType":"YulFunctionCall","src":"68423:20:65"}],"functionName":{"name":"mstore","nativeSrc":"68396:6:65","nodeType":"YulIdentifier","src":"68396:6:65"},"nativeSrc":"68396:48:65","nodeType":"YulFunctionCall","src":"68396:48:65"},"nativeSrc":"68396:48:65","nodeType":"YulExpressionStatement","src":"68396:48:65"},{"nativeSrc":"68453:84:65","nodeType":"YulAssignment","src":"68453:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"68523:6:65","nodeType":"YulIdentifier","src":"68523:6:65"},{"name":"tail","nativeSrc":"68532:4:65","nodeType":"YulIdentifier","src":"68532:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"68461:61:65","nodeType":"YulIdentifier","src":"68461:61:65"},"nativeSrc":"68461:76:65","nodeType":"YulFunctionCall","src":"68461:76:65"},"variableNames":[{"name":"tail","nativeSrc":"68453:4:65","nodeType":"YulIdentifier","src":"68453:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"68589:6:65","nodeType":"YulIdentifier","src":"68589:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"68602:9:65","nodeType":"YulIdentifier","src":"68602:9:65"},{"kind":"number","nativeSrc":"68613:2:65","nodeType":"YulLiteral","src":"68613:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"68598:3:65","nodeType":"YulIdentifier","src":"68598:3:65"},"nativeSrc":"68598:18:65","nodeType":"YulFunctionCall","src":"68598:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"68547:41:65","nodeType":"YulIdentifier","src":"68547:41:65"},"nativeSrc":"68547:70:65","nodeType":"YulFunctionCall","src":"68547:70:65"},"nativeSrc":"68547:70:65","nodeType":"YulExpressionStatement","src":"68547:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68638:9:65","nodeType":"YulIdentifier","src":"68638:9:65"},{"kind":"number","nativeSrc":"68649:2:65","nodeType":"YulLiteral","src":"68649:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"68634:3:65","nodeType":"YulIdentifier","src":"68634:3:65"},"nativeSrc":"68634:18:65","nodeType":"YulFunctionCall","src":"68634:18:65"},{"arguments":[{"name":"tail","nativeSrc":"68658:4:65","nodeType":"YulIdentifier","src":"68658:4:65"},{"name":"headStart","nativeSrc":"68664:9:65","nodeType":"YulIdentifier","src":"68664:9:65"}],"functionName":{"name":"sub","nativeSrc":"68654:3:65","nodeType":"YulIdentifier","src":"68654:3:65"},"nativeSrc":"68654:20:65","nodeType":"YulFunctionCall","src":"68654:20:65"}],"functionName":{"name":"mstore","nativeSrc":"68627:6:65","nodeType":"YulIdentifier","src":"68627:6:65"},"nativeSrc":"68627:48:65","nodeType":"YulFunctionCall","src":"68627:48:65"},"nativeSrc":"68627:48:65","nodeType":"YulExpressionStatement","src":"68627:48:65"},{"nativeSrc":"68684:84:65","nodeType":"YulAssignment","src":"68684:84:65","value":{"arguments":[{"name":"value3","nativeSrc":"68754:6:65","nodeType":"YulIdentifier","src":"68754:6:65"},{"name":"tail","nativeSrc":"68763:4:65","nodeType":"YulIdentifier","src":"68763:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"68692:61:65","nodeType":"YulIdentifier","src":"68692:61:65"},"nativeSrc":"68692:76:65","nodeType":"YulFunctionCall","src":"68692:76:65"},"variableNames":[{"name":"tail","nativeSrc":"68684:4:65","nodeType":"YulIdentifier","src":"68684:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68789:9:65","nodeType":"YulIdentifier","src":"68789:9:65"},{"kind":"number","nativeSrc":"68800:3:65","nodeType":"YulLiteral","src":"68800:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"68785:3:65","nodeType":"YulIdentifier","src":"68785:3:65"},"nativeSrc":"68785:19:65","nodeType":"YulFunctionCall","src":"68785:19:65"},{"arguments":[{"name":"tail","nativeSrc":"68810:4:65","nodeType":"YulIdentifier","src":"68810:4:65"},{"name":"headStart","nativeSrc":"68816:9:65","nodeType":"YulIdentifier","src":"68816:9:65"}],"functionName":{"name":"sub","nativeSrc":"68806:3:65","nodeType":"YulIdentifier","src":"68806:3:65"},"nativeSrc":"68806:20:65","nodeType":"YulFunctionCall","src":"68806:20:65"}],"functionName":{"name":"mstore","nativeSrc":"68778:6:65","nodeType":"YulIdentifier","src":"68778:6:65"},"nativeSrc":"68778:49:65","nodeType":"YulFunctionCall","src":"68778:49:65"},"nativeSrc":"68778:49:65","nodeType":"YulExpressionStatement","src":"68778:49:65"},{"nativeSrc":"68836:84:65","nodeType":"YulAssignment","src":"68836:84:65","value":{"arguments":[{"name":"value4","nativeSrc":"68906:6:65","nodeType":"YulIdentifier","src":"68906:6:65"},{"name":"tail","nativeSrc":"68915:4:65","nodeType":"YulIdentifier","src":"68915:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"68844:61:65","nodeType":"YulIdentifier","src":"68844:61:65"},"nativeSrc":"68844:76:65","nodeType":"YulFunctionCall","src":"68844:76:65"},"variableNames":[{"name":"tail","nativeSrc":"68836:4:65","nodeType":"YulIdentifier","src":"68836:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"68010:917:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"68210:9:65","nodeType":"YulTypedName","src":"68210:9:65","type":""},{"name":"value4","nativeSrc":"68222:6:65","nodeType":"YulTypedName","src":"68222:6:65","type":""},{"name":"value3","nativeSrc":"68230:6:65","nodeType":"YulTypedName","src":"68230:6:65","type":""},{"name":"value2","nativeSrc":"68238:6:65","nodeType":"YulTypedName","src":"68238:6:65","type":""},{"name":"value1","nativeSrc":"68246:6:65","nodeType":"YulTypedName","src":"68246:6:65","type":""},{"name":"value0","nativeSrc":"68254:6:65","nodeType":"YulTypedName","src":"68254:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"68265:4:65","nodeType":"YulTypedName","src":"68265:4:65","type":""}],"src":"68010:917:65"},{"body":{"nativeSrc":"68961:152:65","nodeType":"YulBlock","src":"68961:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68978:1:65","nodeType":"YulLiteral","src":"68978:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"68981:77:65","nodeType":"YulLiteral","src":"68981:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"68971:6:65","nodeType":"YulIdentifier","src":"68971:6:65"},"nativeSrc":"68971:88:65","nodeType":"YulFunctionCall","src":"68971:88:65"},"nativeSrc":"68971:88:65","nodeType":"YulExpressionStatement","src":"68971:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69075:1:65","nodeType":"YulLiteral","src":"69075:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"69078:4:65","nodeType":"YulLiteral","src":"69078:4:65","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"69068:6:65","nodeType":"YulIdentifier","src":"69068:6:65"},"nativeSrc":"69068:15:65","nodeType":"YulFunctionCall","src":"69068:15:65"},"nativeSrc":"69068:15:65","nodeType":"YulExpressionStatement","src":"69068:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69099:1:65","nodeType":"YulLiteral","src":"69099:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"69102:4:65","nodeType":"YulLiteral","src":"69102:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"69092:6:65","nodeType":"YulIdentifier","src":"69092:6:65"},"nativeSrc":"69092:15:65","nodeType":"YulFunctionCall","src":"69092:15:65"},"nativeSrc":"69092:15:65","nodeType":"YulExpressionStatement","src":"69092:15:65"}]},"name":"panic_error_0x12","nativeSrc":"68933:180:65","nodeType":"YulFunctionDefinition","src":"68933:180:65"},{"body":{"nativeSrc":"69161:143:65","nodeType":"YulBlock","src":"69161:143:65","statements":[{"nativeSrc":"69171:25:65","nodeType":"YulAssignment","src":"69171:25:65","value":{"arguments":[{"name":"x","nativeSrc":"69194:1:65","nodeType":"YulIdentifier","src":"69194:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"69176:17:65","nodeType":"YulIdentifier","src":"69176:17:65"},"nativeSrc":"69176:20:65","nodeType":"YulFunctionCall","src":"69176:20:65"},"variableNames":[{"name":"x","nativeSrc":"69171:1:65","nodeType":"YulIdentifier","src":"69171:1:65"}]},{"nativeSrc":"69205:25:65","nodeType":"YulAssignment","src":"69205:25:65","value":{"arguments":[{"name":"y","nativeSrc":"69228:1:65","nodeType":"YulIdentifier","src":"69228:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"69210:17:65","nodeType":"YulIdentifier","src":"69210:17:65"},"nativeSrc":"69210:20:65","nodeType":"YulFunctionCall","src":"69210:20:65"},"variableNames":[{"name":"y","nativeSrc":"69205:1:65","nodeType":"YulIdentifier","src":"69205:1:65"}]},{"body":{"nativeSrc":"69252:22:65","nodeType":"YulBlock","src":"69252:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"69254:16:65","nodeType":"YulIdentifier","src":"69254:16:65"},"nativeSrc":"69254:18:65","nodeType":"YulFunctionCall","src":"69254:18:65"},"nativeSrc":"69254:18:65","nodeType":"YulExpressionStatement","src":"69254:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"69249:1:65","nodeType":"YulIdentifier","src":"69249:1:65"}],"functionName":{"name":"iszero","nativeSrc":"69242:6:65","nodeType":"YulIdentifier","src":"69242:6:65"},"nativeSrc":"69242:9:65","nodeType":"YulFunctionCall","src":"69242:9:65"},"nativeSrc":"69239:35:65","nodeType":"YulIf","src":"69239:35:65"},{"nativeSrc":"69284:14:65","nodeType":"YulAssignment","src":"69284:14:65","value":{"arguments":[{"name":"x","nativeSrc":"69293:1:65","nodeType":"YulIdentifier","src":"69293:1:65"},{"name":"y","nativeSrc":"69296:1:65","nodeType":"YulIdentifier","src":"69296:1:65"}],"functionName":{"name":"div","nativeSrc":"69289:3:65","nodeType":"YulIdentifier","src":"69289:3:65"},"nativeSrc":"69289:9:65","nodeType":"YulFunctionCall","src":"69289:9:65"},"variableNames":[{"name":"r","nativeSrc":"69284:1:65","nodeType":"YulIdentifier","src":"69284:1:65"}]}]},"name":"checked_div_t_uint256","nativeSrc":"69119:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"69150:1:65","nodeType":"YulTypedName","src":"69150:1:65","type":""},{"name":"y","nativeSrc":"69153:1:65","nodeType":"YulTypedName","src":"69153:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"69159:1:65","nodeType":"YulTypedName","src":"69159:1:65","type":""}],"src":"69119:185:65"},{"body":{"nativeSrc":"69416:70:65","nodeType":"YulBlock","src":"69416:70:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"69438:6:65","nodeType":"YulIdentifier","src":"69438:6:65"},{"kind":"number","nativeSrc":"69446:1:65","nodeType":"YulLiteral","src":"69446:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"69434:3:65","nodeType":"YulIdentifier","src":"69434:3:65"},"nativeSrc":"69434:14:65","nodeType":"YulFunctionCall","src":"69434:14:65"},{"hexValue":"4f4654436f72653a20616d6f756e745344206f766572666c6f77","kind":"string","nativeSrc":"69450:28:65","nodeType":"YulLiteral","src":"69450:28:65","type":"","value":"OFTCore: amountSD overflow"}],"functionName":{"name":"mstore","nativeSrc":"69427:6:65","nodeType":"YulIdentifier","src":"69427:6:65"},"nativeSrc":"69427:52:65","nodeType":"YulFunctionCall","src":"69427:52:65"},"nativeSrc":"69427:52:65","nodeType":"YulExpressionStatement","src":"69427:52:65"}]},"name":"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","nativeSrc":"69310:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"69408:6:65","nodeType":"YulTypedName","src":"69408:6:65","type":""}],"src":"69310:176:65"},{"body":{"nativeSrc":"69638:220:65","nodeType":"YulBlock","src":"69638:220:65","statements":[{"nativeSrc":"69648:74:65","nodeType":"YulAssignment","src":"69648:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"69714:3:65","nodeType":"YulIdentifier","src":"69714:3:65"},{"kind":"number","nativeSrc":"69719:2:65","nodeType":"YulLiteral","src":"69719:2:65","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"69655:58:65","nodeType":"YulIdentifier","src":"69655:58:65"},"nativeSrc":"69655:67:65","nodeType":"YulFunctionCall","src":"69655:67:65"},"variableNames":[{"name":"pos","nativeSrc":"69648:3:65","nodeType":"YulIdentifier","src":"69648:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"69820:3:65","nodeType":"YulIdentifier","src":"69820:3:65"}],"functionName":{"name":"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","nativeSrc":"69731:88:65","nodeType":"YulIdentifier","src":"69731:88:65"},"nativeSrc":"69731:93:65","nodeType":"YulFunctionCall","src":"69731:93:65"},"nativeSrc":"69731:93:65","nodeType":"YulExpressionStatement","src":"69731:93:65"},{"nativeSrc":"69833:19:65","nodeType":"YulAssignment","src":"69833:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"69844:3:65","nodeType":"YulIdentifier","src":"69844:3:65"},{"kind":"number","nativeSrc":"69849:2:65","nodeType":"YulLiteral","src":"69849:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"69840:3:65","nodeType":"YulIdentifier","src":"69840:3:65"},"nativeSrc":"69840:12:65","nodeType":"YulFunctionCall","src":"69840:12:65"},"variableNames":[{"name":"end","nativeSrc":"69833:3:65","nodeType":"YulIdentifier","src":"69833:3:65"}]}]},"name":"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack","nativeSrc":"69492:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"69626:3:65","nodeType":"YulTypedName","src":"69626:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"69634:3:65","nodeType":"YulTypedName","src":"69634:3:65","type":""}],"src":"69492:366:65"},{"body":{"nativeSrc":"70035:248:65","nodeType":"YulBlock","src":"70035:248:65","statements":[{"nativeSrc":"70045:26:65","nodeType":"YulAssignment","src":"70045:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"70057:9:65","nodeType":"YulIdentifier","src":"70057:9:65"},{"kind":"number","nativeSrc":"70068:2:65","nodeType":"YulLiteral","src":"70068:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70053:3:65","nodeType":"YulIdentifier","src":"70053:3:65"},"nativeSrc":"70053:18:65","nodeType":"YulFunctionCall","src":"70053:18:65"},"variableNames":[{"name":"tail","nativeSrc":"70045:4:65","nodeType":"YulIdentifier","src":"70045:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"70092:9:65","nodeType":"YulIdentifier","src":"70092:9:65"},{"kind":"number","nativeSrc":"70103:1:65","nodeType":"YulLiteral","src":"70103:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"70088:3:65","nodeType":"YulIdentifier","src":"70088:3:65"},"nativeSrc":"70088:17:65","nodeType":"YulFunctionCall","src":"70088:17:65"},{"arguments":[{"name":"tail","nativeSrc":"70111:4:65","nodeType":"YulIdentifier","src":"70111:4:65"},{"name":"headStart","nativeSrc":"70117:9:65","nodeType":"YulIdentifier","src":"70117:9:65"}],"functionName":{"name":"sub","nativeSrc":"70107:3:65","nodeType":"YulIdentifier","src":"70107:3:65"},"nativeSrc":"70107:20:65","nodeType":"YulFunctionCall","src":"70107:20:65"}],"functionName":{"name":"mstore","nativeSrc":"70081:6:65","nodeType":"YulIdentifier","src":"70081:6:65"},"nativeSrc":"70081:47:65","nodeType":"YulFunctionCall","src":"70081:47:65"},"nativeSrc":"70081:47:65","nodeType":"YulExpressionStatement","src":"70081:47:65"},{"nativeSrc":"70137:139:65","nodeType":"YulAssignment","src":"70137:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"70271:4:65","nodeType":"YulIdentifier","src":"70271:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack","nativeSrc":"70145:124:65","nodeType":"YulIdentifier","src":"70145:124:65"},"nativeSrc":"70145:131:65","nodeType":"YulFunctionCall","src":"70145:131:65"},"variableNames":[{"name":"tail","nativeSrc":"70137:4:65","nodeType":"YulIdentifier","src":"70137:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"69864:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70015:9:65","nodeType":"YulTypedName","src":"70015:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70030:4:65","nodeType":"YulTypedName","src":"70030:4:65","type":""}],"src":"69864:419:65"},{"body":{"nativeSrc":"70332:53:65","nodeType":"YulBlock","src":"70332:53:65","statements":[{"nativeSrc":"70342:36:65","nodeType":"YulAssignment","src":"70342:36:65","value":{"arguments":[{"kind":"number","nativeSrc":"70367:3:65","nodeType":"YulLiteral","src":"70367:3:65","type":"","value":"248"},{"name":"value","nativeSrc":"70372:5:65","nodeType":"YulIdentifier","src":"70372:5:65"}],"functionName":{"name":"shl","nativeSrc":"70363:3:65","nodeType":"YulIdentifier","src":"70363:3:65"},"nativeSrc":"70363:15:65","nodeType":"YulFunctionCall","src":"70363:15:65"},"variableNames":[{"name":"newValue","nativeSrc":"70342:8:65","nodeType":"YulIdentifier","src":"70342:8:65"}]}]},"name":"shift_left_248","nativeSrc":"70289:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70313:5:65","nodeType":"YulTypedName","src":"70313:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"70323:8:65","nodeType":"YulTypedName","src":"70323:8:65","type":""}],"src":"70289:96:65"},{"body":{"nativeSrc":"70436:48:65","nodeType":"YulBlock","src":"70436:48:65","statements":[{"nativeSrc":"70446:32:65","nodeType":"YulAssignment","src":"70446:32:65","value":{"arguments":[{"name":"value","nativeSrc":"70472:5:65","nodeType":"YulIdentifier","src":"70472:5:65"}],"functionName":{"name":"shift_left_248","nativeSrc":"70457:14:65","nodeType":"YulIdentifier","src":"70457:14:65"},"nativeSrc":"70457:21:65","nodeType":"YulFunctionCall","src":"70457:21:65"},"variableNames":[{"name":"aligned","nativeSrc":"70446:7:65","nodeType":"YulIdentifier","src":"70446:7:65"}]}]},"name":"leftAlign_t_uint8","nativeSrc":"70391:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70418:5:65","nodeType":"YulTypedName","src":"70418:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"70428:7:65","nodeType":"YulTypedName","src":"70428:7:65","type":""}],"src":"70391:93:65"},{"body":{"nativeSrc":"70569:70:65","nodeType":"YulBlock","src":"70569:70:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"70586:3:65","nodeType":"YulIdentifier","src":"70586:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"70625:5:65","nodeType":"YulIdentifier","src":"70625:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"70609:15:65","nodeType":"YulIdentifier","src":"70609:15:65"},"nativeSrc":"70609:22:65","nodeType":"YulFunctionCall","src":"70609:22:65"}],"functionName":{"name":"leftAlign_t_uint8","nativeSrc":"70591:17:65","nodeType":"YulIdentifier","src":"70591:17:65"},"nativeSrc":"70591:41:65","nodeType":"YulFunctionCall","src":"70591:41:65"}],"functionName":{"name":"mstore","nativeSrc":"70579:6:65","nodeType":"YulIdentifier","src":"70579:6:65"},"nativeSrc":"70579:54:65","nodeType":"YulFunctionCall","src":"70579:54:65"},"nativeSrc":"70579:54:65","nodeType":"YulExpressionStatement","src":"70579:54:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"70490:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70557:5:65","nodeType":"YulTypedName","src":"70557:5:65","type":""},{"name":"pos","nativeSrc":"70564:3:65","nodeType":"YulTypedName","src":"70564:3:65","type":""}],"src":"70490:149:65"},{"body":{"nativeSrc":"70692:32:65","nodeType":"YulBlock","src":"70692:32:65","statements":[{"nativeSrc":"70702:16:65","nodeType":"YulAssignment","src":"70702:16:65","value":{"name":"value","nativeSrc":"70713:5:65","nodeType":"YulIdentifier","src":"70713:5:65"},"variableNames":[{"name":"aligned","nativeSrc":"70702:7:65","nodeType":"YulIdentifier","src":"70702:7:65"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"70645:79:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70674:5:65","nodeType":"YulTypedName","src":"70674:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"70684:7:65","nodeType":"YulTypedName","src":"70684:7:65","type":""}],"src":"70645:79:65"},{"body":{"nativeSrc":"70813:74:65","nodeType":"YulBlock","src":"70813:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"70830:3:65","nodeType":"YulIdentifier","src":"70830:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"70873:5:65","nodeType":"YulIdentifier","src":"70873:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"70855:17:65","nodeType":"YulIdentifier","src":"70855:17:65"},"nativeSrc":"70855:24:65","nodeType":"YulFunctionCall","src":"70855:24:65"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"70835:19:65","nodeType":"YulIdentifier","src":"70835:19:65"},"nativeSrc":"70835:45:65","nodeType":"YulFunctionCall","src":"70835:45:65"}],"functionName":{"name":"mstore","nativeSrc":"70823:6:65","nodeType":"YulIdentifier","src":"70823:6:65"},"nativeSrc":"70823:58:65","nodeType":"YulFunctionCall","src":"70823:58:65"},"nativeSrc":"70823:58:65","nodeType":"YulExpressionStatement","src":"70823:58:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"70730:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70801:5:65","nodeType":"YulTypedName","src":"70801:5:65","type":""},{"name":"pos","nativeSrc":"70808:3:65","nodeType":"YulTypedName","src":"70808:3:65","type":""}],"src":"70730:157:65"},{"body":{"nativeSrc":"70936:53:65","nodeType":"YulBlock","src":"70936:53:65","statements":[{"nativeSrc":"70946:36:65","nodeType":"YulAssignment","src":"70946:36:65","value":{"arguments":[{"kind":"number","nativeSrc":"70971:3:65","nodeType":"YulLiteral","src":"70971:3:65","type":"","value":"192"},{"name":"value","nativeSrc":"70976:5:65","nodeType":"YulIdentifier","src":"70976:5:65"}],"functionName":{"name":"shl","nativeSrc":"70967:3:65","nodeType":"YulIdentifier","src":"70967:3:65"},"nativeSrc":"70967:15:65","nodeType":"YulFunctionCall","src":"70967:15:65"},"variableNames":[{"name":"newValue","nativeSrc":"70946:8:65","nodeType":"YulIdentifier","src":"70946:8:65"}]}]},"name":"shift_left_192","nativeSrc":"70893:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70917:5:65","nodeType":"YulTypedName","src":"70917:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"70927:8:65","nodeType":"YulTypedName","src":"70927:8:65","type":""}],"src":"70893:96:65"},{"body":{"nativeSrc":"71041:48:65","nodeType":"YulBlock","src":"71041:48:65","statements":[{"nativeSrc":"71051:32:65","nodeType":"YulAssignment","src":"71051:32:65","value":{"arguments":[{"name":"value","nativeSrc":"71077:5:65","nodeType":"YulIdentifier","src":"71077:5:65"}],"functionName":{"name":"shift_left_192","nativeSrc":"71062:14:65","nodeType":"YulIdentifier","src":"71062:14:65"},"nativeSrc":"71062:21:65","nodeType":"YulFunctionCall","src":"71062:21:65"},"variableNames":[{"name":"aligned","nativeSrc":"71051:7:65","nodeType":"YulIdentifier","src":"71051:7:65"}]}]},"name":"leftAlign_t_uint64","nativeSrc":"70995:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"71023:5:65","nodeType":"YulTypedName","src":"71023:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"71033:7:65","nodeType":"YulTypedName","src":"71033:7:65","type":""}],"src":"70995:94:65"},{"body":{"nativeSrc":"71176:72:65","nodeType":"YulBlock","src":"71176:72:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"71193:3:65","nodeType":"YulIdentifier","src":"71193:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"71234:5:65","nodeType":"YulIdentifier","src":"71234:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"71217:16:65","nodeType":"YulIdentifier","src":"71217:16:65"},"nativeSrc":"71217:23:65","nodeType":"YulFunctionCall","src":"71217:23:65"}],"functionName":{"name":"leftAlign_t_uint64","nativeSrc":"71198:18:65","nodeType":"YulIdentifier","src":"71198:18:65"},"nativeSrc":"71198:43:65","nodeType":"YulFunctionCall","src":"71198:43:65"}],"functionName":{"name":"mstore","nativeSrc":"71186:6:65","nodeType":"YulIdentifier","src":"71186:6:65"},"nativeSrc":"71186:56:65","nodeType":"YulFunctionCall","src":"71186:56:65"},"nativeSrc":"71186:56:65","nodeType":"YulExpressionStatement","src":"71186:56:65"}]},"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"71095:153:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"71164:5:65","nodeType":"YulTypedName","src":"71164:5:65","type":""},{"name":"pos","nativeSrc":"71171:3:65","nodeType":"YulTypedName","src":"71171:3:65","type":""}],"src":"71095:153:65"},{"body":{"nativeSrc":"71420:358:65","nodeType":"YulBlock","src":"71420:358:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"71489:6:65","nodeType":"YulIdentifier","src":"71489:6:65"},{"name":"pos","nativeSrc":"71498:3:65","nodeType":"YulIdentifier","src":"71498:3:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"71431:57:65","nodeType":"YulIdentifier","src":"71431:57:65"},"nativeSrc":"71431:71:65","nodeType":"YulFunctionCall","src":"71431:71:65"},"nativeSrc":"71431:71:65","nodeType":"YulExpressionStatement","src":"71431:71:65"},{"nativeSrc":"71511:18:65","nodeType":"YulAssignment","src":"71511:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"71522:3:65","nodeType":"YulIdentifier","src":"71522:3:65"},{"kind":"number","nativeSrc":"71527:1:65","nodeType":"YulLiteral","src":"71527:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"71518:3:65","nodeType":"YulIdentifier","src":"71518:3:65"},"nativeSrc":"71518:11:65","nodeType":"YulFunctionCall","src":"71518:11:65"},"variableNames":[{"name":"pos","nativeSrc":"71511:3:65","nodeType":"YulIdentifier","src":"71511:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"71601:6:65","nodeType":"YulIdentifier","src":"71601:6:65"},{"name":"pos","nativeSrc":"71610:3:65","nodeType":"YulIdentifier","src":"71610:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"71539:61:65","nodeType":"YulIdentifier","src":"71539:61:65"},"nativeSrc":"71539:75:65","nodeType":"YulFunctionCall","src":"71539:75:65"},"nativeSrc":"71539:75:65","nodeType":"YulExpressionStatement","src":"71539:75:65"},{"nativeSrc":"71623:19:65","nodeType":"YulAssignment","src":"71623:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"71634:3:65","nodeType":"YulIdentifier","src":"71634:3:65"},{"kind":"number","nativeSrc":"71639:2:65","nodeType":"YulLiteral","src":"71639:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"71630:3:65","nodeType":"YulIdentifier","src":"71630:3:65"},"nativeSrc":"71630:12:65","nodeType":"YulFunctionCall","src":"71630:12:65"},"variableNames":[{"name":"pos","nativeSrc":"71623:3:65","nodeType":"YulIdentifier","src":"71623:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"71712:6:65","nodeType":"YulIdentifier","src":"71712:6:65"},{"name":"pos","nativeSrc":"71721:3:65","nodeType":"YulIdentifier","src":"71721:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"71652:59:65","nodeType":"YulIdentifier","src":"71652:59:65"},"nativeSrc":"71652:73:65","nodeType":"YulFunctionCall","src":"71652:73:65"},"nativeSrc":"71652:73:65","nodeType":"YulExpressionStatement","src":"71652:73:65"},{"nativeSrc":"71734:18:65","nodeType":"YulAssignment","src":"71734:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"71745:3:65","nodeType":"YulIdentifier","src":"71745:3:65"},{"kind":"number","nativeSrc":"71750:1:65","nodeType":"YulLiteral","src":"71750:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"71741:3:65","nodeType":"YulIdentifier","src":"71741:3:65"},"nativeSrc":"71741:11:65","nodeType":"YulFunctionCall","src":"71741:11:65"},"variableNames":[{"name":"pos","nativeSrc":"71734:3:65","nodeType":"YulIdentifier","src":"71734:3:65"}]},{"nativeSrc":"71762:10:65","nodeType":"YulAssignment","src":"71762:10:65","value":{"name":"pos","nativeSrc":"71769:3:65","nodeType":"YulIdentifier","src":"71769:3:65"},"variableNames":[{"name":"end","nativeSrc":"71762:3:65","nodeType":"YulIdentifier","src":"71762:3:65"}]}]},"name":"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed","nativeSrc":"71254:524:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"71383:3:65","nodeType":"YulTypedName","src":"71383:3:65","type":""},{"name":"value2","nativeSrc":"71389:6:65","nodeType":"YulTypedName","src":"71389:6:65","type":""},{"name":"value1","nativeSrc":"71397:6:65","nodeType":"YulTypedName","src":"71397:6:65","type":""},{"name":"value0","nativeSrc":"71405:6:65","nodeType":"YulTypedName","src":"71405:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"71416:3:65","nodeType":"YulTypedName","src":"71416:3:65","type":""}],"src":"71254:524:65"},{"body":{"nativeSrc":"71890:64:65","nodeType":"YulBlock","src":"71890:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"71912:6:65","nodeType":"YulIdentifier","src":"71912:6:65"},{"kind":"number","nativeSrc":"71920:1:65","nodeType":"YulLiteral","src":"71920:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"71908:3:65","nodeType":"YulIdentifier","src":"71908:3:65"},"nativeSrc":"71908:14:65","nodeType":"YulFunctionCall","src":"71908:14:65"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"71924:22:65","nodeType":"YulLiteral","src":"71924:22:65","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"71901:6:65","nodeType":"YulIdentifier","src":"71901:6:65"},"nativeSrc":"71901:46:65","nodeType":"YulFunctionCall","src":"71901:46:65"},"nativeSrc":"71901:46:65","nodeType":"YulExpressionStatement","src":"71901:46:65"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"71784:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"71882:6:65","nodeType":"YulTypedName","src":"71882:6:65","type":""}],"src":"71784:170:65"},{"body":{"nativeSrc":"72106:220:65","nodeType":"YulBlock","src":"72106:220:65","statements":[{"nativeSrc":"72116:74:65","nodeType":"YulAssignment","src":"72116:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"72182:3:65","nodeType":"YulIdentifier","src":"72182:3:65"},{"kind":"number","nativeSrc":"72187:2:65","nodeType":"YulLiteral","src":"72187:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"72123:58:65","nodeType":"YulIdentifier","src":"72123:58:65"},"nativeSrc":"72123:67:65","nodeType":"YulFunctionCall","src":"72123:67:65"},"variableNames":[{"name":"pos","nativeSrc":"72116:3:65","nodeType":"YulIdentifier","src":"72116:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"72288:3:65","nodeType":"YulIdentifier","src":"72288:3:65"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"72199:88:65","nodeType":"YulIdentifier","src":"72199:88:65"},"nativeSrc":"72199:93:65","nodeType":"YulFunctionCall","src":"72199:93:65"},"nativeSrc":"72199:93:65","nodeType":"YulExpressionStatement","src":"72199:93:65"},{"nativeSrc":"72301:19:65","nodeType":"YulAssignment","src":"72301:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"72312:3:65","nodeType":"YulIdentifier","src":"72312:3:65"},{"kind":"number","nativeSrc":"72317:2:65","nodeType":"YulLiteral","src":"72317:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"72308:3:65","nodeType":"YulIdentifier","src":"72308:3:65"},"nativeSrc":"72308:12:65","nodeType":"YulFunctionCall","src":"72308:12:65"},"variableNames":[{"name":"end","nativeSrc":"72301:3:65","nodeType":"YulIdentifier","src":"72301:3:65"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"71960:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"72094:3:65","nodeType":"YulTypedName","src":"72094:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"72102:3:65","nodeType":"YulTypedName","src":"72102:3:65","type":""}],"src":"71960:366:65"},{"body":{"nativeSrc":"72503:248:65","nodeType":"YulBlock","src":"72503:248:65","statements":[{"nativeSrc":"72513:26:65","nodeType":"YulAssignment","src":"72513:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"72525:9:65","nodeType":"YulIdentifier","src":"72525:9:65"},{"kind":"number","nativeSrc":"72536:2:65","nodeType":"YulLiteral","src":"72536:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"72521:3:65","nodeType":"YulIdentifier","src":"72521:3:65"},"nativeSrc":"72521:18:65","nodeType":"YulFunctionCall","src":"72521:18:65"},"variableNames":[{"name":"tail","nativeSrc":"72513:4:65","nodeType":"YulIdentifier","src":"72513:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"72560:9:65","nodeType":"YulIdentifier","src":"72560:9:65"},{"kind":"number","nativeSrc":"72571:1:65","nodeType":"YulLiteral","src":"72571:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"72556:3:65","nodeType":"YulIdentifier","src":"72556:3:65"},"nativeSrc":"72556:17:65","nodeType":"YulFunctionCall","src":"72556:17:65"},{"arguments":[{"name":"tail","nativeSrc":"72579:4:65","nodeType":"YulIdentifier","src":"72579:4:65"},{"name":"headStart","nativeSrc":"72585:9:65","nodeType":"YulIdentifier","src":"72585:9:65"}],"functionName":{"name":"sub","nativeSrc":"72575:3:65","nodeType":"YulIdentifier","src":"72575:3:65"},"nativeSrc":"72575:20:65","nodeType":"YulFunctionCall","src":"72575:20:65"}],"functionName":{"name":"mstore","nativeSrc":"72549:6:65","nodeType":"YulIdentifier","src":"72549:6:65"},"nativeSrc":"72549:47:65","nodeType":"YulFunctionCall","src":"72549:47:65"},"nativeSrc":"72549:47:65","nodeType":"YulExpressionStatement","src":"72549:47:65"},{"nativeSrc":"72605:139:65","nodeType":"YulAssignment","src":"72605:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"72739:4:65","nodeType":"YulIdentifier","src":"72739:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"72613:124:65","nodeType":"YulIdentifier","src":"72613:124:65"},"nativeSrc":"72613:131:65","nodeType":"YulFunctionCall","src":"72613:131:65"},"variableNames":[{"name":"tail","nativeSrc":"72605:4:65","nodeType":"YulIdentifier","src":"72605:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"72332:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"72483:9:65","nodeType":"YulTypedName","src":"72483:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"72498:4:65","nodeType":"YulTypedName","src":"72498:4:65","type":""}],"src":"72332:419:65"},{"body":{"nativeSrc":"72817:77:65","nodeType":"YulBlock","src":"72817:77:65","statements":[{"nativeSrc":"72827:22:65","nodeType":"YulAssignment","src":"72827:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"72842:6:65","nodeType":"YulIdentifier","src":"72842:6:65"}],"functionName":{"name":"mload","nativeSrc":"72836:5:65","nodeType":"YulIdentifier","src":"72836:5:65"},"nativeSrc":"72836:13:65","nodeType":"YulFunctionCall","src":"72836:13:65"},"variableNames":[{"name":"value","nativeSrc":"72827:5:65","nodeType":"YulIdentifier","src":"72827:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"72882:5:65","nodeType":"YulIdentifier","src":"72882:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"72858:23:65","nodeType":"YulIdentifier","src":"72858:23:65"},"nativeSrc":"72858:30:65","nodeType":"YulFunctionCall","src":"72858:30:65"},"nativeSrc":"72858:30:65","nodeType":"YulExpressionStatement","src":"72858:30:65"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"72757:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"72795:6:65","nodeType":"YulTypedName","src":"72795:6:65","type":""},{"name":"end","nativeSrc":"72803:3:65","nodeType":"YulTypedName","src":"72803:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"72811:5:65","nodeType":"YulTypedName","src":"72811:5:65","type":""}],"src":"72757:137:65"},{"body":{"nativeSrc":"72974:271:65","nodeType":"YulBlock","src":"72974:271:65","statements":[{"body":{"nativeSrc":"73020:83:65","nodeType":"YulBlock","src":"73020:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"73022:77:65","nodeType":"YulIdentifier","src":"73022:77:65"},"nativeSrc":"73022:79:65","nodeType":"YulFunctionCall","src":"73022:79:65"},"nativeSrc":"73022:79:65","nodeType":"YulExpressionStatement","src":"73022:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"72995:7:65","nodeType":"YulIdentifier","src":"72995:7:65"},{"name":"headStart","nativeSrc":"73004:9:65","nodeType":"YulIdentifier","src":"73004:9:65"}],"functionName":{"name":"sub","nativeSrc":"72991:3:65","nodeType":"YulIdentifier","src":"72991:3:65"},"nativeSrc":"72991:23:65","nodeType":"YulFunctionCall","src":"72991:23:65"},{"kind":"number","nativeSrc":"73016:2:65","nodeType":"YulLiteral","src":"73016:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"72987:3:65","nodeType":"YulIdentifier","src":"72987:3:65"},"nativeSrc":"72987:32:65","nodeType":"YulFunctionCall","src":"72987:32:65"},"nativeSrc":"72984:119:65","nodeType":"YulIf","src":"72984:119:65"},{"nativeSrc":"73113:125:65","nodeType":"YulBlock","src":"73113:125:65","statements":[{"nativeSrc":"73128:15:65","nodeType":"YulVariableDeclaration","src":"73128:15:65","value":{"kind":"number","nativeSrc":"73142:1:65","nodeType":"YulLiteral","src":"73142:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"73132:6:65","nodeType":"YulTypedName","src":"73132:6:65","type":""}]},{"nativeSrc":"73157:71:65","nodeType":"YulAssignment","src":"73157:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73200:9:65","nodeType":"YulIdentifier","src":"73200:9:65"},{"name":"offset","nativeSrc":"73211:6:65","nodeType":"YulIdentifier","src":"73211:6:65"}],"functionName":{"name":"add","nativeSrc":"73196:3:65","nodeType":"YulIdentifier","src":"73196:3:65"},"nativeSrc":"73196:22:65","nodeType":"YulFunctionCall","src":"73196:22:65"},{"name":"dataEnd","nativeSrc":"73220:7:65","nodeType":"YulIdentifier","src":"73220:7:65"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"73167:28:65","nodeType":"YulIdentifier","src":"73167:28:65"},"nativeSrc":"73167:61:65","nodeType":"YulFunctionCall","src":"73167:61:65"},"variableNames":[{"name":"value0","nativeSrc":"73157:6:65","nodeType":"YulIdentifier","src":"73157:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"72900:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"72944:9:65","nodeType":"YulTypedName","src":"72944:9:65","type":""},{"name":"dataEnd","nativeSrc":"72955:7:65","nodeType":"YulTypedName","src":"72955:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"72967:6:65","nodeType":"YulTypedName","src":"72967:6:65","type":""}],"src":"72900:345:65"},{"body":{"nativeSrc":"73357:123:65","nodeType":"YulBlock","src":"73357:123:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"73379:6:65","nodeType":"YulIdentifier","src":"73379:6:65"},{"kind":"number","nativeSrc":"73387:1:65","nodeType":"YulLiteral","src":"73387:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"73375:3:65","nodeType":"YulIdentifier","src":"73375:3:65"},"nativeSrc":"73375:14:65","nodeType":"YulFunctionCall","src":"73375:14:65"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"73391:34:65","nodeType":"YulLiteral","src":"73391:34:65","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"73368:6:65","nodeType":"YulIdentifier","src":"73368:6:65"},"nativeSrc":"73368:58:65","nodeType":"YulFunctionCall","src":"73368:58:65"},"nativeSrc":"73368:58:65","nodeType":"YulExpressionStatement","src":"73368:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"73447:6:65","nodeType":"YulIdentifier","src":"73447:6:65"},{"kind":"number","nativeSrc":"73455:2:65","nodeType":"YulLiteral","src":"73455:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"73443:3:65","nodeType":"YulIdentifier","src":"73443:3:65"},"nativeSrc":"73443:15:65","nodeType":"YulFunctionCall","src":"73443:15:65"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"73460:12:65","nodeType":"YulLiteral","src":"73460:12:65","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"73436:6:65","nodeType":"YulIdentifier","src":"73436:6:65"},"nativeSrc":"73436:37:65","nodeType":"YulFunctionCall","src":"73436:37:65"},"nativeSrc":"73436:37:65","nodeType":"YulExpressionStatement","src":"73436:37:65"}]},"name":"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","nativeSrc":"73251:229:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"73349:6:65","nodeType":"YulTypedName","src":"73349:6:65","type":""}],"src":"73251:229:65"},{"body":{"nativeSrc":"73632:220:65","nodeType":"YulBlock","src":"73632:220:65","statements":[{"nativeSrc":"73642:74:65","nodeType":"YulAssignment","src":"73642:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"73708:3:65","nodeType":"YulIdentifier","src":"73708:3:65"},{"kind":"number","nativeSrc":"73713:2:65","nodeType":"YulLiteral","src":"73713:2:65","type":"","value":"42"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"73649:58:65","nodeType":"YulIdentifier","src":"73649:58:65"},"nativeSrc":"73649:67:65","nodeType":"YulFunctionCall","src":"73649:67:65"},"variableNames":[{"name":"pos","nativeSrc":"73642:3:65","nodeType":"YulIdentifier","src":"73642:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"73814:3:65","nodeType":"YulIdentifier","src":"73814:3:65"}],"functionName":{"name":"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","nativeSrc":"73725:88:65","nodeType":"YulIdentifier","src":"73725:88:65"},"nativeSrc":"73725:93:65","nodeType":"YulFunctionCall","src":"73725:93:65"},"nativeSrc":"73725:93:65","nodeType":"YulExpressionStatement","src":"73725:93:65"},{"nativeSrc":"73827:19:65","nodeType":"YulAssignment","src":"73827:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"73838:3:65","nodeType":"YulIdentifier","src":"73838:3:65"},{"kind":"number","nativeSrc":"73843:2:65","nodeType":"YulLiteral","src":"73843:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"73834:3:65","nodeType":"YulIdentifier","src":"73834:3:65"},"nativeSrc":"73834:12:65","nodeType":"YulFunctionCall","src":"73834:12:65"},"variableNames":[{"name":"end","nativeSrc":"73827:3:65","nodeType":"YulIdentifier","src":"73827:3:65"}]}]},"name":"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack","nativeSrc":"73486:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"73620:3:65","nodeType":"YulTypedName","src":"73620:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"73628:3:65","nodeType":"YulTypedName","src":"73628:3:65","type":""}],"src":"73486:366:65"},{"body":{"nativeSrc":"74029:248:65","nodeType":"YulBlock","src":"74029:248:65","statements":[{"nativeSrc":"74039:26:65","nodeType":"YulAssignment","src":"74039:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"74051:9:65","nodeType":"YulIdentifier","src":"74051:9:65"},{"kind":"number","nativeSrc":"74062:2:65","nodeType":"YulLiteral","src":"74062:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"74047:3:65","nodeType":"YulIdentifier","src":"74047:3:65"},"nativeSrc":"74047:18:65","nodeType":"YulFunctionCall","src":"74047:18:65"},"variableNames":[{"name":"tail","nativeSrc":"74039:4:65","nodeType":"YulIdentifier","src":"74039:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"74086:9:65","nodeType":"YulIdentifier","src":"74086:9:65"},{"kind":"number","nativeSrc":"74097:1:65","nodeType":"YulLiteral","src":"74097:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"74082:3:65","nodeType":"YulIdentifier","src":"74082:3:65"},"nativeSrc":"74082:17:65","nodeType":"YulFunctionCall","src":"74082:17:65"},{"arguments":[{"name":"tail","nativeSrc":"74105:4:65","nodeType":"YulIdentifier","src":"74105:4:65"},{"name":"headStart","nativeSrc":"74111:9:65","nodeType":"YulIdentifier","src":"74111:9:65"}],"functionName":{"name":"sub","nativeSrc":"74101:3:65","nodeType":"YulIdentifier","src":"74101:3:65"},"nativeSrc":"74101:20:65","nodeType":"YulFunctionCall","src":"74101:20:65"}],"functionName":{"name":"mstore","nativeSrc":"74075:6:65","nodeType":"YulIdentifier","src":"74075:6:65"},"nativeSrc":"74075:47:65","nodeType":"YulFunctionCall","src":"74075:47:65"},"nativeSrc":"74075:47:65","nodeType":"YulExpressionStatement","src":"74075:47:65"},{"nativeSrc":"74131:139:65","nodeType":"YulAssignment","src":"74131:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"74265:4:65","nodeType":"YulIdentifier","src":"74265:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack","nativeSrc":"74139:124:65","nodeType":"YulIdentifier","src":"74139:124:65"},"nativeSrc":"74139:131:65","nodeType":"YulFunctionCall","src":"74139:131:65"},"variableNames":[{"name":"tail","nativeSrc":"74131:4:65","nodeType":"YulIdentifier","src":"74131:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"73858:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"74009:9:65","nodeType":"YulTypedName","src":"74009:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"74024:4:65","nodeType":"YulTypedName","src":"74024:4:65","type":""}],"src":"73858:419:65"},{"body":{"nativeSrc":"74389:63:65","nodeType":"YulBlock","src":"74389:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"74411:6:65","nodeType":"YulIdentifier","src":"74411:6:65"},{"kind":"number","nativeSrc":"74419:1:65","nodeType":"YulLiteral","src":"74419:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"74407:3:65","nodeType":"YulIdentifier","src":"74407:3:65"},"nativeSrc":"74407:14:65","nodeType":"YulFunctionCall","src":"74407:14:65"},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","kind":"string","nativeSrc":"74423:21:65","nodeType":"YulLiteral","src":"74423:21:65","type":"","value":"toUint8_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"74400:6:65","nodeType":"YulIdentifier","src":"74400:6:65"},"nativeSrc":"74400:45:65","nodeType":"YulFunctionCall","src":"74400:45:65"},"nativeSrc":"74400:45:65","nodeType":"YulExpressionStatement","src":"74400:45:65"}]},"name":"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","nativeSrc":"74283:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"74381:6:65","nodeType":"YulTypedName","src":"74381:6:65","type":""}],"src":"74283:169:65"},{"body":{"nativeSrc":"74604:220:65","nodeType":"YulBlock","src":"74604:220:65","statements":[{"nativeSrc":"74614:74:65","nodeType":"YulAssignment","src":"74614:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"74680:3:65","nodeType":"YulIdentifier","src":"74680:3:65"},{"kind":"number","nativeSrc":"74685:2:65","nodeType":"YulLiteral","src":"74685:2:65","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"74621:58:65","nodeType":"YulIdentifier","src":"74621:58:65"},"nativeSrc":"74621:67:65","nodeType":"YulFunctionCall","src":"74621:67:65"},"variableNames":[{"name":"pos","nativeSrc":"74614:3:65","nodeType":"YulIdentifier","src":"74614:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"74786:3:65","nodeType":"YulIdentifier","src":"74786:3:65"}],"functionName":{"name":"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","nativeSrc":"74697:88:65","nodeType":"YulIdentifier","src":"74697:88:65"},"nativeSrc":"74697:93:65","nodeType":"YulFunctionCall","src":"74697:93:65"},"nativeSrc":"74697:93:65","nodeType":"YulExpressionStatement","src":"74697:93:65"},{"nativeSrc":"74799:19:65","nodeType":"YulAssignment","src":"74799:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"74810:3:65","nodeType":"YulIdentifier","src":"74810:3:65"},{"kind":"number","nativeSrc":"74815:2:65","nodeType":"YulLiteral","src":"74815:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"74806:3:65","nodeType":"YulIdentifier","src":"74806:3:65"},"nativeSrc":"74806:12:65","nodeType":"YulFunctionCall","src":"74806:12:65"},"variableNames":[{"name":"end","nativeSrc":"74799:3:65","nodeType":"YulIdentifier","src":"74799:3:65"}]}]},"name":"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack","nativeSrc":"74458:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"74592:3:65","nodeType":"YulTypedName","src":"74592:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"74600:3:65","nodeType":"YulTypedName","src":"74600:3:65","type":""}],"src":"74458:366:65"},{"body":{"nativeSrc":"75001:248:65","nodeType":"YulBlock","src":"75001:248:65","statements":[{"nativeSrc":"75011:26:65","nodeType":"YulAssignment","src":"75011:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"75023:9:65","nodeType":"YulIdentifier","src":"75023:9:65"},{"kind":"number","nativeSrc":"75034:2:65","nodeType":"YulLiteral","src":"75034:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75019:3:65","nodeType":"YulIdentifier","src":"75019:3:65"},"nativeSrc":"75019:18:65","nodeType":"YulFunctionCall","src":"75019:18:65"},"variableNames":[{"name":"tail","nativeSrc":"75011:4:65","nodeType":"YulIdentifier","src":"75011:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"75058:9:65","nodeType":"YulIdentifier","src":"75058:9:65"},{"kind":"number","nativeSrc":"75069:1:65","nodeType":"YulLiteral","src":"75069:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"75054:3:65","nodeType":"YulIdentifier","src":"75054:3:65"},"nativeSrc":"75054:17:65","nodeType":"YulFunctionCall","src":"75054:17:65"},{"arguments":[{"name":"tail","nativeSrc":"75077:4:65","nodeType":"YulIdentifier","src":"75077:4:65"},{"name":"headStart","nativeSrc":"75083:9:65","nodeType":"YulIdentifier","src":"75083:9:65"}],"functionName":{"name":"sub","nativeSrc":"75073:3:65","nodeType":"YulIdentifier","src":"75073:3:65"},"nativeSrc":"75073:20:65","nodeType":"YulFunctionCall","src":"75073:20:65"}],"functionName":{"name":"mstore","nativeSrc":"75047:6:65","nodeType":"YulIdentifier","src":"75047:6:65"},"nativeSrc":"75047:47:65","nodeType":"YulFunctionCall","src":"75047:47:65"},"nativeSrc":"75047:47:65","nodeType":"YulExpressionStatement","src":"75047:47:65"},{"nativeSrc":"75103:139:65","nodeType":"YulAssignment","src":"75103:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"75237:4:65","nodeType":"YulIdentifier","src":"75237:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack","nativeSrc":"75111:124:65","nodeType":"YulIdentifier","src":"75111:124:65"},"nativeSrc":"75111:131:65","nodeType":"YulFunctionCall","src":"75111:131:65"},"variableNames":[{"name":"tail","nativeSrc":"75103:4:65","nodeType":"YulIdentifier","src":"75103:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"74830:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"74981:9:65","nodeType":"YulTypedName","src":"74981:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"74996:4:65","nodeType":"YulTypedName","src":"74996:4:65","type":""}],"src":"74830:419:65"},{"body":{"nativeSrc":"75581:837:65","nodeType":"YulBlock","src":"75581:837:65","statements":[{"nativeSrc":"75591:27:65","nodeType":"YulAssignment","src":"75591:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"75603:9:65","nodeType":"YulIdentifier","src":"75603:9:65"},{"kind":"number","nativeSrc":"75614:3:65","nodeType":"YulLiteral","src":"75614:3:65","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"75599:3:65","nodeType":"YulIdentifier","src":"75599:3:65"},"nativeSrc":"75599:19:65","nodeType":"YulFunctionCall","src":"75599:19:65"},"variableNames":[{"name":"tail","nativeSrc":"75591:4:65","nodeType":"YulIdentifier","src":"75591:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"75670:6:65","nodeType":"YulIdentifier","src":"75670:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"75683:9:65","nodeType":"YulIdentifier","src":"75683:9:65"},{"kind":"number","nativeSrc":"75694:1:65","nodeType":"YulLiteral","src":"75694:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"75679:3:65","nodeType":"YulIdentifier","src":"75679:3:65"},"nativeSrc":"75679:17:65","nodeType":"YulFunctionCall","src":"75679:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"75628:41:65","nodeType":"YulIdentifier","src":"75628:41:65"},"nativeSrc":"75628:69:65","nodeType":"YulFunctionCall","src":"75628:69:65"},"nativeSrc":"75628:69:65","nodeType":"YulExpressionStatement","src":"75628:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"75718:9:65","nodeType":"YulIdentifier","src":"75718:9:65"},{"kind":"number","nativeSrc":"75729:2:65","nodeType":"YulLiteral","src":"75729:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75714:3:65","nodeType":"YulIdentifier","src":"75714:3:65"},"nativeSrc":"75714:18:65","nodeType":"YulFunctionCall","src":"75714:18:65"},{"arguments":[{"name":"tail","nativeSrc":"75738:4:65","nodeType":"YulIdentifier","src":"75738:4:65"},{"name":"headStart","nativeSrc":"75744:9:65","nodeType":"YulIdentifier","src":"75744:9:65"}],"functionName":{"name":"sub","nativeSrc":"75734:3:65","nodeType":"YulIdentifier","src":"75734:3:65"},"nativeSrc":"75734:20:65","nodeType":"YulFunctionCall","src":"75734:20:65"}],"functionName":{"name":"mstore","nativeSrc":"75707:6:65","nodeType":"YulIdentifier","src":"75707:6:65"},"nativeSrc":"75707:48:65","nodeType":"YulFunctionCall","src":"75707:48:65"},"nativeSrc":"75707:48:65","nodeType":"YulExpressionStatement","src":"75707:48:65"},{"nativeSrc":"75764:84:65","nodeType":"YulAssignment","src":"75764:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"75834:6:65","nodeType":"YulIdentifier","src":"75834:6:65"},{"name":"tail","nativeSrc":"75843:4:65","nodeType":"YulIdentifier","src":"75843:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"75772:61:65","nodeType":"YulIdentifier","src":"75772:61:65"},"nativeSrc":"75772:76:65","nodeType":"YulFunctionCall","src":"75772:76:65"},"variableNames":[{"name":"tail","nativeSrc":"75764:4:65","nodeType":"YulIdentifier","src":"75764:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"75900:6:65","nodeType":"YulIdentifier","src":"75900:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"75913:9:65","nodeType":"YulIdentifier","src":"75913:9:65"},{"kind":"number","nativeSrc":"75924:2:65","nodeType":"YulLiteral","src":"75924:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"75909:3:65","nodeType":"YulIdentifier","src":"75909:3:65"},"nativeSrc":"75909:18:65","nodeType":"YulFunctionCall","src":"75909:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"75858:41:65","nodeType":"YulIdentifier","src":"75858:41:65"},"nativeSrc":"75858:70:65","nodeType":"YulFunctionCall","src":"75858:70:65"},"nativeSrc":"75858:70:65","nodeType":"YulExpressionStatement","src":"75858:70:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"75982:6:65","nodeType":"YulIdentifier","src":"75982:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"75995:9:65","nodeType":"YulIdentifier","src":"75995:9:65"},{"kind":"number","nativeSrc":"76006:2:65","nodeType":"YulLiteral","src":"76006:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"75991:3:65","nodeType":"YulIdentifier","src":"75991:3:65"},"nativeSrc":"75991:18:65","nodeType":"YulFunctionCall","src":"75991:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"75938:43:65","nodeType":"YulIdentifier","src":"75938:43:65"},"nativeSrc":"75938:72:65","nodeType":"YulFunctionCall","src":"75938:72:65"},"nativeSrc":"75938:72:65","nodeType":"YulExpressionStatement","src":"75938:72:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"76064:6:65","nodeType":"YulIdentifier","src":"76064:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"76077:9:65","nodeType":"YulIdentifier","src":"76077:9:65"},{"kind":"number","nativeSrc":"76088:3:65","nodeType":"YulLiteral","src":"76088:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"76073:3:65","nodeType":"YulIdentifier","src":"76073:3:65"},"nativeSrc":"76073:19:65","nodeType":"YulFunctionCall","src":"76073:19:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"76020:43:65","nodeType":"YulIdentifier","src":"76020:43:65"},"nativeSrc":"76020:73:65","nodeType":"YulFunctionCall","src":"76020:73:65"},"nativeSrc":"76020:73:65","nodeType":"YulExpressionStatement","src":"76020:73:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"76147:6:65","nodeType":"YulIdentifier","src":"76147:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"76160:9:65","nodeType":"YulIdentifier","src":"76160:9:65"},{"kind":"number","nativeSrc":"76171:3:65","nodeType":"YulLiteral","src":"76171:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"76156:3:65","nodeType":"YulIdentifier","src":"76156:3:65"},"nativeSrc":"76156:19:65","nodeType":"YulFunctionCall","src":"76156:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"76103:43:65","nodeType":"YulIdentifier","src":"76103:43:65"},"nativeSrc":"76103:73:65","nodeType":"YulFunctionCall","src":"76103:73:65"},"nativeSrc":"76103:73:65","nodeType":"YulExpressionStatement","src":"76103:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"76197:9:65","nodeType":"YulIdentifier","src":"76197:9:65"},{"kind":"number","nativeSrc":"76208:3:65","nodeType":"YulLiteral","src":"76208:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"76193:3:65","nodeType":"YulIdentifier","src":"76193:3:65"},"nativeSrc":"76193:19:65","nodeType":"YulFunctionCall","src":"76193:19:65"},{"arguments":[{"name":"tail","nativeSrc":"76218:4:65","nodeType":"YulIdentifier","src":"76218:4:65"},{"name":"headStart","nativeSrc":"76224:9:65","nodeType":"YulIdentifier","src":"76224:9:65"}],"functionName":{"name":"sub","nativeSrc":"76214:3:65","nodeType":"YulIdentifier","src":"76214:3:65"},"nativeSrc":"76214:20:65","nodeType":"YulFunctionCall","src":"76214:20:65"}],"functionName":{"name":"mstore","nativeSrc":"76186:6:65","nodeType":"YulIdentifier","src":"76186:6:65"},"nativeSrc":"76186:49:65","nodeType":"YulFunctionCall","src":"76186:49:65"},"nativeSrc":"76186:49:65","nodeType":"YulExpressionStatement","src":"76186:49:65"},{"nativeSrc":"76244:84:65","nodeType":"YulAssignment","src":"76244:84:65","value":{"arguments":[{"name":"value6","nativeSrc":"76314:6:65","nodeType":"YulIdentifier","src":"76314:6:65"},{"name":"tail","nativeSrc":"76323:4:65","nodeType":"YulIdentifier","src":"76323:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"76252:61:65","nodeType":"YulIdentifier","src":"76252:61:65"},"nativeSrc":"76252:76:65","nodeType":"YulFunctionCall","src":"76252:76:65"},"variableNames":[{"name":"tail","nativeSrc":"76244:4:65","nodeType":"YulIdentifier","src":"76244:4:65"}]},{"expression":{"arguments":[{"name":"value7","nativeSrc":"76382:6:65","nodeType":"YulIdentifier","src":"76382:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"76395:9:65","nodeType":"YulIdentifier","src":"76395:9:65"},{"kind":"number","nativeSrc":"76406:3:65","nodeType":"YulLiteral","src":"76406:3:65","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"76391:3:65","nodeType":"YulIdentifier","src":"76391:3:65"},"nativeSrc":"76391:19:65","nodeType":"YulFunctionCall","src":"76391:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"76338:43:65","nodeType":"YulIdentifier","src":"76338:43:65"},"nativeSrc":"76338:73:65","nodeType":"YulFunctionCall","src":"76338:73:65"},"nativeSrc":"76338:73:65","nodeType":"YulExpressionStatement","src":"76338:73:65"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"75255:1163:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75497:9:65","nodeType":"YulTypedName","src":"75497:9:65","type":""},{"name":"value7","nativeSrc":"75509:6:65","nodeType":"YulTypedName","src":"75509:6:65","type":""},{"name":"value6","nativeSrc":"75517:6:65","nodeType":"YulTypedName","src":"75517:6:65","type":""},{"name":"value5","nativeSrc":"75525:6:65","nodeType":"YulTypedName","src":"75525:6:65","type":""},{"name":"value4","nativeSrc":"75533:6:65","nodeType":"YulTypedName","src":"75533:6:65","type":""},{"name":"value3","nativeSrc":"75541:6:65","nodeType":"YulTypedName","src":"75541:6:65","type":""},{"name":"value2","nativeSrc":"75549:6:65","nodeType":"YulTypedName","src":"75549:6:65","type":""},{"name":"value1","nativeSrc":"75557:6:65","nodeType":"YulTypedName","src":"75557:6:65","type":""},{"name":"value0","nativeSrc":"75565:6:65","nodeType":"YulTypedName","src":"75565:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"75576:4:65","nodeType":"YulTypedName","src":"75576:4:65","type":""}],"src":"75255:1163:65"},{"body":{"nativeSrc":"76594:355:65","nodeType":"YulBlock","src":"76594:355:65","statements":[{"nativeSrc":"76604:26:65","nodeType":"YulAssignment","src":"76604:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"76616:9:65","nodeType":"YulIdentifier","src":"76616:9:65"},{"kind":"number","nativeSrc":"76627:2:65","nodeType":"YulLiteral","src":"76627:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"76612:3:65","nodeType":"YulIdentifier","src":"76612:3:65"},"nativeSrc":"76612:18:65","nodeType":"YulFunctionCall","src":"76612:18:65"},"variableNames":[{"name":"tail","nativeSrc":"76604:4:65","nodeType":"YulIdentifier","src":"76604:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"76651:9:65","nodeType":"YulIdentifier","src":"76651:9:65"},{"kind":"number","nativeSrc":"76662:1:65","nodeType":"YulLiteral","src":"76662:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"76647:3:65","nodeType":"YulIdentifier","src":"76647:3:65"},"nativeSrc":"76647:17:65","nodeType":"YulFunctionCall","src":"76647:17:65"},{"arguments":[{"name":"tail","nativeSrc":"76670:4:65","nodeType":"YulIdentifier","src":"76670:4:65"},{"name":"headStart","nativeSrc":"76676:9:65","nodeType":"YulIdentifier","src":"76676:9:65"}],"functionName":{"name":"sub","nativeSrc":"76666:3:65","nodeType":"YulIdentifier","src":"76666:3:65"},"nativeSrc":"76666:20:65","nodeType":"YulFunctionCall","src":"76666:20:65"}],"functionName":{"name":"mstore","nativeSrc":"76640:6:65","nodeType":"YulIdentifier","src":"76640:6:65"},"nativeSrc":"76640:47:65","nodeType":"YulFunctionCall","src":"76640:47:65"},"nativeSrc":"76640:47:65","nodeType":"YulExpressionStatement","src":"76640:47:65"},{"nativeSrc":"76696:84:65","nodeType":"YulAssignment","src":"76696:84:65","value":{"arguments":[{"name":"value0","nativeSrc":"76766:6:65","nodeType":"YulIdentifier","src":"76766:6:65"},{"name":"tail","nativeSrc":"76775:4:65","nodeType":"YulIdentifier","src":"76775:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"76704:61:65","nodeType":"YulIdentifier","src":"76704:61:65"},"nativeSrc":"76704:76:65","nodeType":"YulFunctionCall","src":"76704:76:65"},"variableNames":[{"name":"tail","nativeSrc":"76696:4:65","nodeType":"YulIdentifier","src":"76696:4:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"76832:6:65","nodeType":"YulIdentifier","src":"76832:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"76845:9:65","nodeType":"YulIdentifier","src":"76845:9:65"},{"kind":"number","nativeSrc":"76856:2:65","nodeType":"YulLiteral","src":"76856:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"76841:3:65","nodeType":"YulIdentifier","src":"76841:3:65"},"nativeSrc":"76841:18:65","nodeType":"YulFunctionCall","src":"76841:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"76790:41:65","nodeType":"YulIdentifier","src":"76790:41:65"},"nativeSrc":"76790:70:65","nodeType":"YulFunctionCall","src":"76790:70:65"},"nativeSrc":"76790:70:65","nodeType":"YulExpressionStatement","src":"76790:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"76914:6:65","nodeType":"YulIdentifier","src":"76914:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"76927:9:65","nodeType":"YulIdentifier","src":"76927:9:65"},{"kind":"number","nativeSrc":"76938:2:65","nodeType":"YulLiteral","src":"76938:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"76923:3:65","nodeType":"YulIdentifier","src":"76923:3:65"},"nativeSrc":"76923:18:65","nodeType":"YulFunctionCall","src":"76923:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"76870:43:65","nodeType":"YulIdentifier","src":"76870:43:65"},"nativeSrc":"76870:72:65","nodeType":"YulFunctionCall","src":"76870:72:65"},"nativeSrc":"76870:72:65","nodeType":"YulExpressionStatement","src":"76870:72:65"}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"76424:525:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"76550:9:65","nodeType":"YulTypedName","src":"76550:9:65","type":""},{"name":"value2","nativeSrc":"76562:6:65","nodeType":"YulTypedName","src":"76562:6:65","type":""},{"name":"value1","nativeSrc":"76570:6:65","nodeType":"YulTypedName","src":"76570:6:65","type":""},{"name":"value0","nativeSrc":"76578:6:65","nodeType":"YulTypedName","src":"76578:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"76589:4:65","nodeType":"YulTypedName","src":"76589:4:65","type":""}],"src":"76424:525:65"},{"body":{"nativeSrc":"77061:70:65","nodeType":"YulBlock","src":"77061:70:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"77083:6:65","nodeType":"YulIdentifier","src":"77083:6:65"},{"kind":"number","nativeSrc":"77091:1:65","nodeType":"YulLiteral","src":"77091:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"77079:3:65","nodeType":"YulIdentifier","src":"77079:3:65"},"nativeSrc":"77079:14:65","nodeType":"YulFunctionCall","src":"77079:14:65"},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","kind":"string","nativeSrc":"77095:28:65","nodeType":"YulLiteral","src":"77095:28:65","type":"","value":"LzApp: minGasLimit not set"}],"functionName":{"name":"mstore","nativeSrc":"77072:6:65","nodeType":"YulIdentifier","src":"77072:6:65"},"nativeSrc":"77072:52:65","nodeType":"YulFunctionCall","src":"77072:52:65"},"nativeSrc":"77072:52:65","nodeType":"YulExpressionStatement","src":"77072:52:65"}]},"name":"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","nativeSrc":"76955:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"77053:6:65","nodeType":"YulTypedName","src":"77053:6:65","type":""}],"src":"76955:176:65"},{"body":{"nativeSrc":"77283:220:65","nodeType":"YulBlock","src":"77283:220:65","statements":[{"nativeSrc":"77293:74:65","nodeType":"YulAssignment","src":"77293:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"77359:3:65","nodeType":"YulIdentifier","src":"77359:3:65"},{"kind":"number","nativeSrc":"77364:2:65","nodeType":"YulLiteral","src":"77364:2:65","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"77300:58:65","nodeType":"YulIdentifier","src":"77300:58:65"},"nativeSrc":"77300:67:65","nodeType":"YulFunctionCall","src":"77300:67:65"},"variableNames":[{"name":"pos","nativeSrc":"77293:3:65","nodeType":"YulIdentifier","src":"77293:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"77465:3:65","nodeType":"YulIdentifier","src":"77465:3:65"}],"functionName":{"name":"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","nativeSrc":"77376:88:65","nodeType":"YulIdentifier","src":"77376:88:65"},"nativeSrc":"77376:93:65","nodeType":"YulFunctionCall","src":"77376:93:65"},"nativeSrc":"77376:93:65","nodeType":"YulExpressionStatement","src":"77376:93:65"},{"nativeSrc":"77478:19:65","nodeType":"YulAssignment","src":"77478:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"77489:3:65","nodeType":"YulIdentifier","src":"77489:3:65"},{"kind":"number","nativeSrc":"77494:2:65","nodeType":"YulLiteral","src":"77494:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"77485:3:65","nodeType":"YulIdentifier","src":"77485:3:65"},"nativeSrc":"77485:12:65","nodeType":"YulFunctionCall","src":"77485:12:65"},"variableNames":[{"name":"end","nativeSrc":"77478:3:65","nodeType":"YulIdentifier","src":"77478:3:65"}]}]},"name":"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack","nativeSrc":"77137:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"77271:3:65","nodeType":"YulTypedName","src":"77271:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"77279:3:65","nodeType":"YulTypedName","src":"77279:3:65","type":""}],"src":"77137:366:65"},{"body":{"nativeSrc":"77680:248:65","nodeType":"YulBlock","src":"77680:248:65","statements":[{"nativeSrc":"77690:26:65","nodeType":"YulAssignment","src":"77690:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"77702:9:65","nodeType":"YulIdentifier","src":"77702:9:65"},{"kind":"number","nativeSrc":"77713:2:65","nodeType":"YulLiteral","src":"77713:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"77698:3:65","nodeType":"YulIdentifier","src":"77698:3:65"},"nativeSrc":"77698:18:65","nodeType":"YulFunctionCall","src":"77698:18:65"},"variableNames":[{"name":"tail","nativeSrc":"77690:4:65","nodeType":"YulIdentifier","src":"77690:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77737:9:65","nodeType":"YulIdentifier","src":"77737:9:65"},{"kind":"number","nativeSrc":"77748:1:65","nodeType":"YulLiteral","src":"77748:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"77733:3:65","nodeType":"YulIdentifier","src":"77733:3:65"},"nativeSrc":"77733:17:65","nodeType":"YulFunctionCall","src":"77733:17:65"},{"arguments":[{"name":"tail","nativeSrc":"77756:4:65","nodeType":"YulIdentifier","src":"77756:4:65"},{"name":"headStart","nativeSrc":"77762:9:65","nodeType":"YulIdentifier","src":"77762:9:65"}],"functionName":{"name":"sub","nativeSrc":"77752:3:65","nodeType":"YulIdentifier","src":"77752:3:65"},"nativeSrc":"77752:20:65","nodeType":"YulFunctionCall","src":"77752:20:65"}],"functionName":{"name":"mstore","nativeSrc":"77726:6:65","nodeType":"YulIdentifier","src":"77726:6:65"},"nativeSrc":"77726:47:65","nodeType":"YulFunctionCall","src":"77726:47:65"},"nativeSrc":"77726:47:65","nodeType":"YulExpressionStatement","src":"77726:47:65"},{"nativeSrc":"77782:139:65","nodeType":"YulAssignment","src":"77782:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"77916:4:65","nodeType":"YulIdentifier","src":"77916:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack","nativeSrc":"77790:124:65","nodeType":"YulIdentifier","src":"77790:124:65"},"nativeSrc":"77790:131:65","nodeType":"YulFunctionCall","src":"77790:131:65"},"variableNames":[{"name":"tail","nativeSrc":"77782:4:65","nodeType":"YulIdentifier","src":"77782:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"77509:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"77660:9:65","nodeType":"YulTypedName","src":"77660:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"77675:4:65","nodeType":"YulTypedName","src":"77675:4:65","type":""}],"src":"77509:419:65"},{"body":{"nativeSrc":"78040:71:65","nodeType":"YulBlock","src":"78040:71:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"78062:6:65","nodeType":"YulIdentifier","src":"78062:6:65"},{"kind":"number","nativeSrc":"78070:1:65","nodeType":"YulLiteral","src":"78070:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"78058:3:65","nodeType":"YulIdentifier","src":"78058:3:65"},"nativeSrc":"78058:14:65","nodeType":"YulFunctionCall","src":"78058:14:65"},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","kind":"string","nativeSrc":"78074:29:65","nodeType":"YulLiteral","src":"78074:29:65","type":"","value":"LzApp: gas limit is too low"}],"functionName":{"name":"mstore","nativeSrc":"78051:6:65","nodeType":"YulIdentifier","src":"78051:6:65"},"nativeSrc":"78051:53:65","nodeType":"YulFunctionCall","src":"78051:53:65"},"nativeSrc":"78051:53:65","nodeType":"YulExpressionStatement","src":"78051:53:65"}]},"name":"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","nativeSrc":"77934:177:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"78032:6:65","nodeType":"YulTypedName","src":"78032:6:65","type":""}],"src":"77934:177:65"},{"body":{"nativeSrc":"78263:220:65","nodeType":"YulBlock","src":"78263:220:65","statements":[{"nativeSrc":"78273:74:65","nodeType":"YulAssignment","src":"78273:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"78339:3:65","nodeType":"YulIdentifier","src":"78339:3:65"},{"kind":"number","nativeSrc":"78344:2:65","nodeType":"YulLiteral","src":"78344:2:65","type":"","value":"27"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"78280:58:65","nodeType":"YulIdentifier","src":"78280:58:65"},"nativeSrc":"78280:67:65","nodeType":"YulFunctionCall","src":"78280:67:65"},"variableNames":[{"name":"pos","nativeSrc":"78273:3:65","nodeType":"YulIdentifier","src":"78273:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"78445:3:65","nodeType":"YulIdentifier","src":"78445:3:65"}],"functionName":{"name":"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","nativeSrc":"78356:88:65","nodeType":"YulIdentifier","src":"78356:88:65"},"nativeSrc":"78356:93:65","nodeType":"YulFunctionCall","src":"78356:93:65"},"nativeSrc":"78356:93:65","nodeType":"YulExpressionStatement","src":"78356:93:65"},{"nativeSrc":"78458:19:65","nodeType":"YulAssignment","src":"78458:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"78469:3:65","nodeType":"YulIdentifier","src":"78469:3:65"},{"kind":"number","nativeSrc":"78474:2:65","nodeType":"YulLiteral","src":"78474:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"78465:3:65","nodeType":"YulIdentifier","src":"78465:3:65"},"nativeSrc":"78465:12:65","nodeType":"YulFunctionCall","src":"78465:12:65"},"variableNames":[{"name":"end","nativeSrc":"78458:3:65","nodeType":"YulIdentifier","src":"78458:3:65"}]}]},"name":"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack","nativeSrc":"78117:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"78251:3:65","nodeType":"YulTypedName","src":"78251:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"78259:3:65","nodeType":"YulTypedName","src":"78259:3:65","type":""}],"src":"78117:366:65"},{"body":{"nativeSrc":"78660:248:65","nodeType":"YulBlock","src":"78660:248:65","statements":[{"nativeSrc":"78670:26:65","nodeType":"YulAssignment","src":"78670:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"78682:9:65","nodeType":"YulIdentifier","src":"78682:9:65"},{"kind":"number","nativeSrc":"78693:2:65","nodeType":"YulLiteral","src":"78693:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"78678:3:65","nodeType":"YulIdentifier","src":"78678:3:65"},"nativeSrc":"78678:18:65","nodeType":"YulFunctionCall","src":"78678:18:65"},"variableNames":[{"name":"tail","nativeSrc":"78670:4:65","nodeType":"YulIdentifier","src":"78670:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"78717:9:65","nodeType":"YulIdentifier","src":"78717:9:65"},{"kind":"number","nativeSrc":"78728:1:65","nodeType":"YulLiteral","src":"78728:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"78713:3:65","nodeType":"YulIdentifier","src":"78713:3:65"},"nativeSrc":"78713:17:65","nodeType":"YulFunctionCall","src":"78713:17:65"},{"arguments":[{"name":"tail","nativeSrc":"78736:4:65","nodeType":"YulIdentifier","src":"78736:4:65"},{"name":"headStart","nativeSrc":"78742:9:65","nodeType":"YulIdentifier","src":"78742:9:65"}],"functionName":{"name":"sub","nativeSrc":"78732:3:65","nodeType":"YulIdentifier","src":"78732:3:65"},"nativeSrc":"78732:20:65","nodeType":"YulFunctionCall","src":"78732:20:65"}],"functionName":{"name":"mstore","nativeSrc":"78706:6:65","nodeType":"YulIdentifier","src":"78706:6:65"},"nativeSrc":"78706:47:65","nodeType":"YulFunctionCall","src":"78706:47:65"},"nativeSrc":"78706:47:65","nodeType":"YulExpressionStatement","src":"78706:47:65"},{"nativeSrc":"78762:139:65","nodeType":"YulAssignment","src":"78762:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"78896:4:65","nodeType":"YulIdentifier","src":"78896:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack","nativeSrc":"78770:124:65","nodeType":"YulIdentifier","src":"78770:124:65"},"nativeSrc":"78770:131:65","nodeType":"YulFunctionCall","src":"78770:131:65"},"variableNames":[{"name":"tail","nativeSrc":"78762:4:65","nodeType":"YulIdentifier","src":"78762:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"78489:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"78640:9:65","nodeType":"YulTypedName","src":"78640:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"78655:4:65","nodeType":"YulTypedName","src":"78655:4:65","type":""}],"src":"78489:419:65"},{"body":{"nativeSrc":"78948:142:65","nodeType":"YulBlock","src":"78948:142:65","statements":[{"nativeSrc":"78958:25:65","nodeType":"YulAssignment","src":"78958:25:65","value":{"arguments":[{"name":"x","nativeSrc":"78981:1:65","nodeType":"YulIdentifier","src":"78981:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"78963:17:65","nodeType":"YulIdentifier","src":"78963:17:65"},"nativeSrc":"78963:20:65","nodeType":"YulFunctionCall","src":"78963:20:65"},"variableNames":[{"name":"x","nativeSrc":"78958:1:65","nodeType":"YulIdentifier","src":"78958:1:65"}]},{"nativeSrc":"78992:25:65","nodeType":"YulAssignment","src":"78992:25:65","value":{"arguments":[{"name":"y","nativeSrc":"79015:1:65","nodeType":"YulIdentifier","src":"79015:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"78997:17:65","nodeType":"YulIdentifier","src":"78997:17:65"},"nativeSrc":"78997:20:65","nodeType":"YulFunctionCall","src":"78997:20:65"},"variableNames":[{"name":"y","nativeSrc":"78992:1:65","nodeType":"YulIdentifier","src":"78992:1:65"}]},{"body":{"nativeSrc":"79039:22:65","nodeType":"YulBlock","src":"79039:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"79041:16:65","nodeType":"YulIdentifier","src":"79041:16:65"},"nativeSrc":"79041:18:65","nodeType":"YulFunctionCall","src":"79041:18:65"},"nativeSrc":"79041:18:65","nodeType":"YulExpressionStatement","src":"79041:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"79036:1:65","nodeType":"YulIdentifier","src":"79036:1:65"}],"functionName":{"name":"iszero","nativeSrc":"79029:6:65","nodeType":"YulIdentifier","src":"79029:6:65"},"nativeSrc":"79029:9:65","nodeType":"YulFunctionCall","src":"79029:9:65"},"nativeSrc":"79026:35:65","nodeType":"YulIf","src":"79026:35:65"},{"nativeSrc":"79070:14:65","nodeType":"YulAssignment","src":"79070:14:65","value":{"arguments":[{"name":"x","nativeSrc":"79079:1:65","nodeType":"YulIdentifier","src":"79079:1:65"},{"name":"y","nativeSrc":"79082:1:65","nodeType":"YulIdentifier","src":"79082:1:65"}],"functionName":{"name":"mod","nativeSrc":"79075:3:65","nodeType":"YulIdentifier","src":"79075:3:65"},"nativeSrc":"79075:9:65","nodeType":"YulFunctionCall","src":"79075:9:65"},"variableNames":[{"name":"r","nativeSrc":"79070:1:65","nodeType":"YulIdentifier","src":"79070:1:65"}]}]},"name":"mod_t_uint256","nativeSrc":"78914:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"78937:1:65","nodeType":"YulTypedName","src":"78937:1:65","type":""},{"name":"y","nativeSrc":"78940:1:65","nodeType":"YulTypedName","src":"78940:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"78946:1:65","nodeType":"YulTypedName","src":"78946:1:65","type":""}],"src":"78914:176:65"},{"body":{"nativeSrc":"79202:115:65","nodeType":"YulBlock","src":"79202:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"79224:6:65","nodeType":"YulIdentifier","src":"79224:6:65"},{"kind":"number","nativeSrc":"79232:1:65","nodeType":"YulLiteral","src":"79232:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"79220:3:65","nodeType":"YulIdentifier","src":"79220:3:65"},"nativeSrc":"79220:14:65","nodeType":"YulFunctionCall","src":"79220:14:65"},{"hexValue":"50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c","kind":"string","nativeSrc":"79236:34:65","nodeType":"YulLiteral","src":"79236:34:65","type":"","value":"ProxyOFT: owner is not send call"}],"functionName":{"name":"mstore","nativeSrc":"79213:6:65","nodeType":"YulIdentifier","src":"79213:6:65"},"nativeSrc":"79213:58:65","nodeType":"YulFunctionCall","src":"79213:58:65"},"nativeSrc":"79213:58:65","nodeType":"YulExpressionStatement","src":"79213:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"79292:6:65","nodeType":"YulIdentifier","src":"79292:6:65"},{"kind":"number","nativeSrc":"79300:2:65","nodeType":"YulLiteral","src":"79300:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"79288:3:65","nodeType":"YulIdentifier","src":"79288:3:65"},"nativeSrc":"79288:15:65","nodeType":"YulFunctionCall","src":"79288:15:65"},{"hexValue":"6572","kind":"string","nativeSrc":"79305:4:65","nodeType":"YulLiteral","src":"79305:4:65","type":"","value":"er"}],"functionName":{"name":"mstore","nativeSrc":"79281:6:65","nodeType":"YulIdentifier","src":"79281:6:65"},"nativeSrc":"79281:29:65","nodeType":"YulFunctionCall","src":"79281:29:65"},"nativeSrc":"79281:29:65","nodeType":"YulExpressionStatement","src":"79281:29:65"}]},"name":"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","nativeSrc":"79096:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"79194:6:65","nodeType":"YulTypedName","src":"79194:6:65","type":""}],"src":"79096:221:65"},{"body":{"nativeSrc":"79469:220:65","nodeType":"YulBlock","src":"79469:220:65","statements":[{"nativeSrc":"79479:74:65","nodeType":"YulAssignment","src":"79479:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"79545:3:65","nodeType":"YulIdentifier","src":"79545:3:65"},{"kind":"number","nativeSrc":"79550:2:65","nodeType":"YulLiteral","src":"79550:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"79486:58:65","nodeType":"YulIdentifier","src":"79486:58:65"},"nativeSrc":"79486:67:65","nodeType":"YulFunctionCall","src":"79486:67:65"},"variableNames":[{"name":"pos","nativeSrc":"79479:3:65","nodeType":"YulIdentifier","src":"79479:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"79651:3:65","nodeType":"YulIdentifier","src":"79651:3:65"}],"functionName":{"name":"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","nativeSrc":"79562:88:65","nodeType":"YulIdentifier","src":"79562:88:65"},"nativeSrc":"79562:93:65","nodeType":"YulFunctionCall","src":"79562:93:65"},"nativeSrc":"79562:93:65","nodeType":"YulExpressionStatement","src":"79562:93:65"},{"nativeSrc":"79664:19:65","nodeType":"YulAssignment","src":"79664:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"79675:3:65","nodeType":"YulIdentifier","src":"79675:3:65"},{"kind":"number","nativeSrc":"79680:2:65","nodeType":"YulLiteral","src":"79680:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"79671:3:65","nodeType":"YulIdentifier","src":"79671:3:65"},"nativeSrc":"79671:12:65","nodeType":"YulFunctionCall","src":"79671:12:65"},"variableNames":[{"name":"end","nativeSrc":"79664:3:65","nodeType":"YulIdentifier","src":"79664:3:65"}]}]},"name":"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack","nativeSrc":"79323:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"79457:3:65","nodeType":"YulTypedName","src":"79457:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"79465:3:65","nodeType":"YulTypedName","src":"79465:3:65","type":""}],"src":"79323:366:65"},{"body":{"nativeSrc":"79866:248:65","nodeType":"YulBlock","src":"79866:248:65","statements":[{"nativeSrc":"79876:26:65","nodeType":"YulAssignment","src":"79876:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"79888:9:65","nodeType":"YulIdentifier","src":"79888:9:65"},{"kind":"number","nativeSrc":"79899:2:65","nodeType":"YulLiteral","src":"79899:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"79884:3:65","nodeType":"YulIdentifier","src":"79884:3:65"},"nativeSrc":"79884:18:65","nodeType":"YulFunctionCall","src":"79884:18:65"},"variableNames":[{"name":"tail","nativeSrc":"79876:4:65","nodeType":"YulIdentifier","src":"79876:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"79923:9:65","nodeType":"YulIdentifier","src":"79923:9:65"},{"kind":"number","nativeSrc":"79934:1:65","nodeType":"YulLiteral","src":"79934:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"79919:3:65","nodeType":"YulIdentifier","src":"79919:3:65"},"nativeSrc":"79919:17:65","nodeType":"YulFunctionCall","src":"79919:17:65"},{"arguments":[{"name":"tail","nativeSrc":"79942:4:65","nodeType":"YulIdentifier","src":"79942:4:65"},{"name":"headStart","nativeSrc":"79948:9:65","nodeType":"YulIdentifier","src":"79948:9:65"}],"functionName":{"name":"sub","nativeSrc":"79938:3:65","nodeType":"YulIdentifier","src":"79938:3:65"},"nativeSrc":"79938:20:65","nodeType":"YulFunctionCall","src":"79938:20:65"}],"functionName":{"name":"mstore","nativeSrc":"79912:6:65","nodeType":"YulIdentifier","src":"79912:6:65"},"nativeSrc":"79912:47:65","nodeType":"YulFunctionCall","src":"79912:47:65"},"nativeSrc":"79912:47:65","nodeType":"YulExpressionStatement","src":"79912:47:65"},{"nativeSrc":"79968:139:65","nodeType":"YulAssignment","src":"79968:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"80102:4:65","nodeType":"YulIdentifier","src":"80102:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack","nativeSrc":"79976:124:65","nodeType":"YulIdentifier","src":"79976:124:65"},"nativeSrc":"79976:131:65","nodeType":"YulFunctionCall","src":"79976:131:65"},"variableNames":[{"name":"tail","nativeSrc":"79968:4:65","nodeType":"YulIdentifier","src":"79968:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"79695:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"79846:9:65","nodeType":"YulTypedName","src":"79846:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"79861:4:65","nodeType":"YulTypedName","src":"79861:4:65","type":""}],"src":"79695:419:65"},{"body":{"nativeSrc":"80226:129:65","nodeType":"YulBlock","src":"80226:129:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"80248:6:65","nodeType":"YulIdentifier","src":"80248:6:65"},{"kind":"number","nativeSrc":"80256:1:65","nodeType":"YulLiteral","src":"80256:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"80244:3:65","nodeType":"YulIdentifier","src":"80244:3:65"},"nativeSrc":"80244:14:65","nodeType":"YulFunctionCall","src":"80244:14:65"},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420","kind":"string","nativeSrc":"80260:34:65","nodeType":"YulLiteral","src":"80260:34:65","type":"","value":"LzApp: destination chain is not "}],"functionName":{"name":"mstore","nativeSrc":"80237:6:65","nodeType":"YulIdentifier","src":"80237:6:65"},"nativeSrc":"80237:58:65","nodeType":"YulFunctionCall","src":"80237:58:65"},"nativeSrc":"80237:58:65","nodeType":"YulExpressionStatement","src":"80237:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"80316:6:65","nodeType":"YulIdentifier","src":"80316:6:65"},{"kind":"number","nativeSrc":"80324:2:65","nodeType":"YulLiteral","src":"80324:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"80312:3:65","nodeType":"YulIdentifier","src":"80312:3:65"},"nativeSrc":"80312:15:65","nodeType":"YulFunctionCall","src":"80312:15:65"},{"hexValue":"61207472757374656420736f75726365","kind":"string","nativeSrc":"80329:18:65","nodeType":"YulLiteral","src":"80329:18:65","type":"","value":"a trusted source"}],"functionName":{"name":"mstore","nativeSrc":"80305:6:65","nodeType":"YulIdentifier","src":"80305:6:65"},"nativeSrc":"80305:43:65","nodeType":"YulFunctionCall","src":"80305:43:65"},"nativeSrc":"80305:43:65","nodeType":"YulExpressionStatement","src":"80305:43:65"}]},"name":"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","nativeSrc":"80120:235:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"80218:6:65","nodeType":"YulTypedName","src":"80218:6:65","type":""}],"src":"80120:235:65"},{"body":{"nativeSrc":"80507:220:65","nodeType":"YulBlock","src":"80507:220:65","statements":[{"nativeSrc":"80517:74:65","nodeType":"YulAssignment","src":"80517:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"80583:3:65","nodeType":"YulIdentifier","src":"80583:3:65"},{"kind":"number","nativeSrc":"80588:2:65","nodeType":"YulLiteral","src":"80588:2:65","type":"","value":"48"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"80524:58:65","nodeType":"YulIdentifier","src":"80524:58:65"},"nativeSrc":"80524:67:65","nodeType":"YulFunctionCall","src":"80524:67:65"},"variableNames":[{"name":"pos","nativeSrc":"80517:3:65","nodeType":"YulIdentifier","src":"80517:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"80689:3:65","nodeType":"YulIdentifier","src":"80689:3:65"}],"functionName":{"name":"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","nativeSrc":"80600:88:65","nodeType":"YulIdentifier","src":"80600:88:65"},"nativeSrc":"80600:93:65","nodeType":"YulFunctionCall","src":"80600:93:65"},"nativeSrc":"80600:93:65","nodeType":"YulExpressionStatement","src":"80600:93:65"},{"nativeSrc":"80702:19:65","nodeType":"YulAssignment","src":"80702:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"80713:3:65","nodeType":"YulIdentifier","src":"80713:3:65"},{"kind":"number","nativeSrc":"80718:2:65","nodeType":"YulLiteral","src":"80718:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"80709:3:65","nodeType":"YulIdentifier","src":"80709:3:65"},"nativeSrc":"80709:12:65","nodeType":"YulFunctionCall","src":"80709:12:65"},"variableNames":[{"name":"end","nativeSrc":"80702:3:65","nodeType":"YulIdentifier","src":"80702:3:65"}]}]},"name":"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack","nativeSrc":"80361:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"80495:3:65","nodeType":"YulTypedName","src":"80495:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"80503:3:65","nodeType":"YulTypedName","src":"80503:3:65","type":""}],"src":"80361:366:65"},{"body":{"nativeSrc":"80904:248:65","nodeType":"YulBlock","src":"80904:248:65","statements":[{"nativeSrc":"80914:26:65","nodeType":"YulAssignment","src":"80914:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"80926:9:65","nodeType":"YulIdentifier","src":"80926:9:65"},{"kind":"number","nativeSrc":"80937:2:65","nodeType":"YulLiteral","src":"80937:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"80922:3:65","nodeType":"YulIdentifier","src":"80922:3:65"},"nativeSrc":"80922:18:65","nodeType":"YulFunctionCall","src":"80922:18:65"},"variableNames":[{"name":"tail","nativeSrc":"80914:4:65","nodeType":"YulIdentifier","src":"80914:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"80961:9:65","nodeType":"YulIdentifier","src":"80961:9:65"},{"kind":"number","nativeSrc":"80972:1:65","nodeType":"YulLiteral","src":"80972:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"80957:3:65","nodeType":"YulIdentifier","src":"80957:3:65"},"nativeSrc":"80957:17:65","nodeType":"YulFunctionCall","src":"80957:17:65"},{"arguments":[{"name":"tail","nativeSrc":"80980:4:65","nodeType":"YulIdentifier","src":"80980:4:65"},{"name":"headStart","nativeSrc":"80986:9:65","nodeType":"YulIdentifier","src":"80986:9:65"}],"functionName":{"name":"sub","nativeSrc":"80976:3:65","nodeType":"YulIdentifier","src":"80976:3:65"},"nativeSrc":"80976:20:65","nodeType":"YulFunctionCall","src":"80976:20:65"}],"functionName":{"name":"mstore","nativeSrc":"80950:6:65","nodeType":"YulIdentifier","src":"80950:6:65"},"nativeSrc":"80950:47:65","nodeType":"YulFunctionCall","src":"80950:47:65"},"nativeSrc":"80950:47:65","nodeType":"YulExpressionStatement","src":"80950:47:65"},{"nativeSrc":"81006:139:65","nodeType":"YulAssignment","src":"81006:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"81140:4:65","nodeType":"YulIdentifier","src":"81140:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack","nativeSrc":"81014:124:65","nodeType":"YulIdentifier","src":"81014:124:65"},"nativeSrc":"81014:131:65","nodeType":"YulFunctionCall","src":"81014:131:65"},"variableNames":[{"name":"tail","nativeSrc":"81006:4:65","nodeType":"YulIdentifier","src":"81006:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"80733:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"80884:9:65","nodeType":"YulTypedName","src":"80884:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"80899:4:65","nodeType":"YulTypedName","src":"80899:4:65","type":""}],"src":"80733:419:65"},{"body":{"nativeSrc":"81239:61:65","nodeType":"YulBlock","src":"81239:61:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"81256:3:65","nodeType":"YulIdentifier","src":"81256:3:65"},{"arguments":[{"name":"value","nativeSrc":"81287:5:65","nodeType":"YulIdentifier","src":"81287:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"81261:25:65","nodeType":"YulIdentifier","src":"81261:25:65"},"nativeSrc":"81261:32:65","nodeType":"YulFunctionCall","src":"81261:32:65"}],"functionName":{"name":"mstore","nativeSrc":"81249:6:65","nodeType":"YulIdentifier","src":"81249:6:65"},"nativeSrc":"81249:45:65","nodeType":"YulFunctionCall","src":"81249:45:65"},"nativeSrc":"81249:45:65","nodeType":"YulExpressionStatement","src":"81249:45:65"}]},"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"81158:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"81227:5:65","nodeType":"YulTypedName","src":"81227:5:65","type":""},{"name":"pos","nativeSrc":"81234:3:65","nodeType":"YulTypedName","src":"81234:3:65","type":""}],"src":"81158:142:65"},{"body":{"nativeSrc":"81612:758:65","nodeType":"YulBlock","src":"81612:758:65","statements":[{"nativeSrc":"81622:27:65","nodeType":"YulAssignment","src":"81622:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"81634:9:65","nodeType":"YulIdentifier","src":"81634:9:65"},{"kind":"number","nativeSrc":"81645:3:65","nodeType":"YulLiteral","src":"81645:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"81630:3:65","nodeType":"YulIdentifier","src":"81630:3:65"},"nativeSrc":"81630:19:65","nodeType":"YulFunctionCall","src":"81630:19:65"},"variableNames":[{"name":"tail","nativeSrc":"81622:4:65","nodeType":"YulIdentifier","src":"81622:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"81701:6:65","nodeType":"YulIdentifier","src":"81701:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"81714:9:65","nodeType":"YulIdentifier","src":"81714:9:65"},{"kind":"number","nativeSrc":"81725:1:65","nodeType":"YulLiteral","src":"81725:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"81710:3:65","nodeType":"YulIdentifier","src":"81710:3:65"},"nativeSrc":"81710:17:65","nodeType":"YulFunctionCall","src":"81710:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"81659:41:65","nodeType":"YulIdentifier","src":"81659:41:65"},"nativeSrc":"81659:69:65","nodeType":"YulFunctionCall","src":"81659:69:65"},"nativeSrc":"81659:69:65","nodeType":"YulExpressionStatement","src":"81659:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"81749:9:65","nodeType":"YulIdentifier","src":"81749:9:65"},{"kind":"number","nativeSrc":"81760:2:65","nodeType":"YulLiteral","src":"81760:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"81745:3:65","nodeType":"YulIdentifier","src":"81745:3:65"},"nativeSrc":"81745:18:65","nodeType":"YulFunctionCall","src":"81745:18:65"},{"arguments":[{"name":"tail","nativeSrc":"81769:4:65","nodeType":"YulIdentifier","src":"81769:4:65"},{"name":"headStart","nativeSrc":"81775:9:65","nodeType":"YulIdentifier","src":"81775:9:65"}],"functionName":{"name":"sub","nativeSrc":"81765:3:65","nodeType":"YulIdentifier","src":"81765:3:65"},"nativeSrc":"81765:20:65","nodeType":"YulFunctionCall","src":"81765:20:65"}],"functionName":{"name":"mstore","nativeSrc":"81738:6:65","nodeType":"YulIdentifier","src":"81738:6:65"},"nativeSrc":"81738:48:65","nodeType":"YulFunctionCall","src":"81738:48:65"},"nativeSrc":"81738:48:65","nodeType":"YulExpressionStatement","src":"81738:48:65"},{"nativeSrc":"81795:84:65","nodeType":"YulAssignment","src":"81795:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"81865:6:65","nodeType":"YulIdentifier","src":"81865:6:65"},{"name":"tail","nativeSrc":"81874:4:65","nodeType":"YulIdentifier","src":"81874:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"81803:61:65","nodeType":"YulIdentifier","src":"81803:61:65"},"nativeSrc":"81803:76:65","nodeType":"YulFunctionCall","src":"81803:76:65"},"variableNames":[{"name":"tail","nativeSrc":"81795:4:65","nodeType":"YulIdentifier","src":"81795:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"81900:9:65","nodeType":"YulIdentifier","src":"81900:9:65"},{"kind":"number","nativeSrc":"81911:2:65","nodeType":"YulLiteral","src":"81911:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"81896:3:65","nodeType":"YulIdentifier","src":"81896:3:65"},"nativeSrc":"81896:18:65","nodeType":"YulFunctionCall","src":"81896:18:65"},{"arguments":[{"name":"tail","nativeSrc":"81920:4:65","nodeType":"YulIdentifier","src":"81920:4:65"},{"name":"headStart","nativeSrc":"81926:9:65","nodeType":"YulIdentifier","src":"81926:9:65"}],"functionName":{"name":"sub","nativeSrc":"81916:3:65","nodeType":"YulIdentifier","src":"81916:3:65"},"nativeSrc":"81916:20:65","nodeType":"YulFunctionCall","src":"81916:20:65"}],"functionName":{"name":"mstore","nativeSrc":"81889:6:65","nodeType":"YulIdentifier","src":"81889:6:65"},"nativeSrc":"81889:48:65","nodeType":"YulFunctionCall","src":"81889:48:65"},"nativeSrc":"81889:48:65","nodeType":"YulExpressionStatement","src":"81889:48:65"},{"nativeSrc":"81946:84:65","nodeType":"YulAssignment","src":"81946:84:65","value":{"arguments":[{"name":"value2","nativeSrc":"82016:6:65","nodeType":"YulIdentifier","src":"82016:6:65"},{"name":"tail","nativeSrc":"82025:4:65","nodeType":"YulIdentifier","src":"82025:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"81954:61:65","nodeType":"YulIdentifier","src":"81954:61:65"},"nativeSrc":"81954:76:65","nodeType":"YulFunctionCall","src":"81954:76:65"},"variableNames":[{"name":"tail","nativeSrc":"81946:4:65","nodeType":"YulIdentifier","src":"81946:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"82100:6:65","nodeType":"YulIdentifier","src":"82100:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"82113:9:65","nodeType":"YulIdentifier","src":"82113:9:65"},{"kind":"number","nativeSrc":"82124:2:65","nodeType":"YulLiteral","src":"82124:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"82109:3:65","nodeType":"YulIdentifier","src":"82109:3:65"},"nativeSrc":"82109:18:65","nodeType":"YulFunctionCall","src":"82109:18:65"}],"functionName":{"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"82040:59:65","nodeType":"YulIdentifier","src":"82040:59:65"},"nativeSrc":"82040:88:65","nodeType":"YulFunctionCall","src":"82040:88:65"},"nativeSrc":"82040:88:65","nodeType":"YulExpressionStatement","src":"82040:88:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"82182:6:65","nodeType":"YulIdentifier","src":"82182:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"82195:9:65","nodeType":"YulIdentifier","src":"82195:9:65"},{"kind":"number","nativeSrc":"82206:3:65","nodeType":"YulLiteral","src":"82206:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"82191:3:65","nodeType":"YulIdentifier","src":"82191:3:65"},"nativeSrc":"82191:19:65","nodeType":"YulFunctionCall","src":"82191:19:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"82138:43:65","nodeType":"YulIdentifier","src":"82138:43:65"},"nativeSrc":"82138:73:65","nodeType":"YulFunctionCall","src":"82138:73:65"},"nativeSrc":"82138:73:65","nodeType":"YulExpressionStatement","src":"82138:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"82232:9:65","nodeType":"YulIdentifier","src":"82232:9:65"},{"kind":"number","nativeSrc":"82243:3:65","nodeType":"YulLiteral","src":"82243:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"82228:3:65","nodeType":"YulIdentifier","src":"82228:3:65"},"nativeSrc":"82228:19:65","nodeType":"YulFunctionCall","src":"82228:19:65"},{"arguments":[{"name":"tail","nativeSrc":"82253:4:65","nodeType":"YulIdentifier","src":"82253:4:65"},{"name":"headStart","nativeSrc":"82259:9:65","nodeType":"YulIdentifier","src":"82259:9:65"}],"functionName":{"name":"sub","nativeSrc":"82249:3:65","nodeType":"YulIdentifier","src":"82249:3:65"},"nativeSrc":"82249:20:65","nodeType":"YulFunctionCall","src":"82249:20:65"}],"functionName":{"name":"mstore","nativeSrc":"82221:6:65","nodeType":"YulIdentifier","src":"82221:6:65"},"nativeSrc":"82221:49:65","nodeType":"YulFunctionCall","src":"82221:49:65"},"nativeSrc":"82221:49:65","nodeType":"YulExpressionStatement","src":"82221:49:65"},{"nativeSrc":"82279:84:65","nodeType":"YulAssignment","src":"82279:84:65","value":{"arguments":[{"name":"value5","nativeSrc":"82349:6:65","nodeType":"YulIdentifier","src":"82349:6:65"},{"name":"tail","nativeSrc":"82358:4:65","nodeType":"YulIdentifier","src":"82358:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"82287:61:65","nodeType":"YulIdentifier","src":"82287:61:65"},"nativeSrc":"82287:76:65","nodeType":"YulFunctionCall","src":"82287:76:65"},"variableNames":[{"name":"tail","nativeSrc":"82279:4:65","nodeType":"YulIdentifier","src":"82279:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"81306:1064:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"81544:9:65","nodeType":"YulTypedName","src":"81544:9:65","type":""},{"name":"value5","nativeSrc":"81556:6:65","nodeType":"YulTypedName","src":"81556:6:65","type":""},{"name":"value4","nativeSrc":"81564:6:65","nodeType":"YulTypedName","src":"81564:6:65","type":""},{"name":"value3","nativeSrc":"81572:6:65","nodeType":"YulTypedName","src":"81572:6:65","type":""},{"name":"value2","nativeSrc":"81580:6:65","nodeType":"YulTypedName","src":"81580:6:65","type":""},{"name":"value1","nativeSrc":"81588:6:65","nodeType":"YulTypedName","src":"81588:6:65","type":""},{"name":"value0","nativeSrc":"81596:6:65","nodeType":"YulTypedName","src":"81596:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"81607:4:65","nodeType":"YulTypedName","src":"81607:4:65","type":""}],"src":"81306:1064:65"},{"body":{"nativeSrc":"82482:60:65","nodeType":"YulBlock","src":"82482:60:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"82504:6:65","nodeType":"YulIdentifier","src":"82504:6:65"},{"kind":"number","nativeSrc":"82512:1:65","nodeType":"YulLiteral","src":"82512:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"82500:3:65","nodeType":"YulIdentifier","src":"82500:3:65"},"nativeSrc":"82500:14:65","nodeType":"YulFunctionCall","src":"82500:14:65"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"82516:18:65","nodeType":"YulLiteral","src":"82516:18:65","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"82493:6:65","nodeType":"YulIdentifier","src":"82493:6:65"},"nativeSrc":"82493:42:65","nodeType":"YulFunctionCall","src":"82493:42:65"},"nativeSrc":"82493:42:65","nodeType":"YulExpressionStatement","src":"82493:42:65"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"82376:166:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"82474:6:65","nodeType":"YulTypedName","src":"82474:6:65","type":""}],"src":"82376:166:65"},{"body":{"nativeSrc":"82694:220:65","nodeType":"YulBlock","src":"82694:220:65","statements":[{"nativeSrc":"82704:74:65","nodeType":"YulAssignment","src":"82704:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"82770:3:65","nodeType":"YulIdentifier","src":"82770:3:65"},{"kind":"number","nativeSrc":"82775:2:65","nodeType":"YulLiteral","src":"82775:2:65","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"82711:58:65","nodeType":"YulIdentifier","src":"82711:58:65"},"nativeSrc":"82711:67:65","nodeType":"YulFunctionCall","src":"82711:67:65"},"variableNames":[{"name":"pos","nativeSrc":"82704:3:65","nodeType":"YulIdentifier","src":"82704:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"82876:3:65","nodeType":"YulIdentifier","src":"82876:3:65"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"82787:88:65","nodeType":"YulIdentifier","src":"82787:88:65"},"nativeSrc":"82787:93:65","nodeType":"YulFunctionCall","src":"82787:93:65"},"nativeSrc":"82787:93:65","nodeType":"YulExpressionStatement","src":"82787:93:65"},{"nativeSrc":"82889:19:65","nodeType":"YulAssignment","src":"82889:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"82900:3:65","nodeType":"YulIdentifier","src":"82900:3:65"},{"kind":"number","nativeSrc":"82905:2:65","nodeType":"YulLiteral","src":"82905:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"82896:3:65","nodeType":"YulIdentifier","src":"82896:3:65"},"nativeSrc":"82896:12:65","nodeType":"YulFunctionCall","src":"82896:12:65"},"variableNames":[{"name":"end","nativeSrc":"82889:3:65","nodeType":"YulIdentifier","src":"82889:3:65"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"82548:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"82682:3:65","nodeType":"YulTypedName","src":"82682:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"82690:3:65","nodeType":"YulTypedName","src":"82690:3:65","type":""}],"src":"82548:366:65"},{"body":{"nativeSrc":"83091:248:65","nodeType":"YulBlock","src":"83091:248:65","statements":[{"nativeSrc":"83101:26:65","nodeType":"YulAssignment","src":"83101:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"83113:9:65","nodeType":"YulIdentifier","src":"83113:9:65"},{"kind":"number","nativeSrc":"83124:2:65","nodeType":"YulLiteral","src":"83124:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"83109:3:65","nodeType":"YulIdentifier","src":"83109:3:65"},"nativeSrc":"83109:18:65","nodeType":"YulFunctionCall","src":"83109:18:65"},"variableNames":[{"name":"tail","nativeSrc":"83101:4:65","nodeType":"YulIdentifier","src":"83101:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"83148:9:65","nodeType":"YulIdentifier","src":"83148:9:65"},{"kind":"number","nativeSrc":"83159:1:65","nodeType":"YulLiteral","src":"83159:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"83144:3:65","nodeType":"YulIdentifier","src":"83144:3:65"},"nativeSrc":"83144:17:65","nodeType":"YulFunctionCall","src":"83144:17:65"},{"arguments":[{"name":"tail","nativeSrc":"83167:4:65","nodeType":"YulIdentifier","src":"83167:4:65"},{"name":"headStart","nativeSrc":"83173:9:65","nodeType":"YulIdentifier","src":"83173:9:65"}],"functionName":{"name":"sub","nativeSrc":"83163:3:65","nodeType":"YulIdentifier","src":"83163:3:65"},"nativeSrc":"83163:20:65","nodeType":"YulFunctionCall","src":"83163:20:65"}],"functionName":{"name":"mstore","nativeSrc":"83137:6:65","nodeType":"YulIdentifier","src":"83137:6:65"},"nativeSrc":"83137:47:65","nodeType":"YulFunctionCall","src":"83137:47:65"},"nativeSrc":"83137:47:65","nodeType":"YulExpressionStatement","src":"83137:47:65"},{"nativeSrc":"83193:139:65","nodeType":"YulAssignment","src":"83193:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"83327:4:65","nodeType":"YulIdentifier","src":"83327:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"83201:124:65","nodeType":"YulIdentifier","src":"83201:124:65"},"nativeSrc":"83201:131:65","nodeType":"YulFunctionCall","src":"83201:131:65"},"variableNames":[{"name":"tail","nativeSrc":"83193:4:65","nodeType":"YulIdentifier","src":"83193:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"82920:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"83071:9:65","nodeType":"YulTypedName","src":"83071:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"83086:4:65","nodeType":"YulTypedName","src":"83086:4:65","type":""}],"src":"82920:419:65"},{"body":{"nativeSrc":"83611:691:65","nodeType":"YulBlock","src":"83611:691:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"83680:6:65","nodeType":"YulIdentifier","src":"83680:6:65"},{"name":"pos","nativeSrc":"83689:3:65","nodeType":"YulIdentifier","src":"83689:3:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"83622:57:65","nodeType":"YulIdentifier","src":"83622:57:65"},"nativeSrc":"83622:71:65","nodeType":"YulFunctionCall","src":"83622:71:65"},"nativeSrc":"83622:71:65","nodeType":"YulExpressionStatement","src":"83622:71:65"},{"nativeSrc":"83702:18:65","nodeType":"YulAssignment","src":"83702:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"83713:3:65","nodeType":"YulIdentifier","src":"83713:3:65"},{"kind":"number","nativeSrc":"83718:1:65","nodeType":"YulLiteral","src":"83718:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"83709:3:65","nodeType":"YulIdentifier","src":"83709:3:65"},"nativeSrc":"83709:11:65","nodeType":"YulFunctionCall","src":"83709:11:65"},"variableNames":[{"name":"pos","nativeSrc":"83702:3:65","nodeType":"YulIdentifier","src":"83702:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"83792:6:65","nodeType":"YulIdentifier","src":"83792:6:65"},{"name":"pos","nativeSrc":"83801:3:65","nodeType":"YulIdentifier","src":"83801:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"83730:61:65","nodeType":"YulIdentifier","src":"83730:61:65"},"nativeSrc":"83730:75:65","nodeType":"YulFunctionCall","src":"83730:75:65"},"nativeSrc":"83730:75:65","nodeType":"YulExpressionStatement","src":"83730:75:65"},{"nativeSrc":"83814:19:65","nodeType":"YulAssignment","src":"83814:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"83825:3:65","nodeType":"YulIdentifier","src":"83825:3:65"},{"kind":"number","nativeSrc":"83830:2:65","nodeType":"YulLiteral","src":"83830:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"83821:3:65","nodeType":"YulIdentifier","src":"83821:3:65"},"nativeSrc":"83821:12:65","nodeType":"YulFunctionCall","src":"83821:12:65"},"variableNames":[{"name":"pos","nativeSrc":"83814:3:65","nodeType":"YulIdentifier","src":"83814:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"83903:6:65","nodeType":"YulIdentifier","src":"83903:6:65"},{"name":"pos","nativeSrc":"83912:3:65","nodeType":"YulIdentifier","src":"83912:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"83843:59:65","nodeType":"YulIdentifier","src":"83843:59:65"},"nativeSrc":"83843:73:65","nodeType":"YulFunctionCall","src":"83843:73:65"},"nativeSrc":"83843:73:65","nodeType":"YulExpressionStatement","src":"83843:73:65"},{"nativeSrc":"83925:18:65","nodeType":"YulAssignment","src":"83925:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"83936:3:65","nodeType":"YulIdentifier","src":"83936:3:65"},{"kind":"number","nativeSrc":"83941:1:65","nodeType":"YulLiteral","src":"83941:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"83932:3:65","nodeType":"YulIdentifier","src":"83932:3:65"},"nativeSrc":"83932:11:65","nodeType":"YulFunctionCall","src":"83932:11:65"},"variableNames":[{"name":"pos","nativeSrc":"83925:3:65","nodeType":"YulIdentifier","src":"83925:3:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"84015:6:65","nodeType":"YulIdentifier","src":"84015:6:65"},{"name":"pos","nativeSrc":"84024:3:65","nodeType":"YulIdentifier","src":"84024:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"83953:61:65","nodeType":"YulIdentifier","src":"83953:61:65"},"nativeSrc":"83953:75:65","nodeType":"YulFunctionCall","src":"83953:75:65"},"nativeSrc":"83953:75:65","nodeType":"YulExpressionStatement","src":"83953:75:65"},{"nativeSrc":"84037:19:65","nodeType":"YulAssignment","src":"84037:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"84048:3:65","nodeType":"YulIdentifier","src":"84048:3:65"},{"kind":"number","nativeSrc":"84053:2:65","nodeType":"YulLiteral","src":"84053:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"84044:3:65","nodeType":"YulIdentifier","src":"84044:3:65"},"nativeSrc":"84044:12:65","nodeType":"YulFunctionCall","src":"84044:12:65"},"variableNames":[{"name":"pos","nativeSrc":"84037:3:65","nodeType":"YulIdentifier","src":"84037:3:65"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"84126:6:65","nodeType":"YulIdentifier","src":"84126:6:65"},{"name":"pos","nativeSrc":"84135:3:65","nodeType":"YulIdentifier","src":"84135:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"84066:59:65","nodeType":"YulIdentifier","src":"84066:59:65"},"nativeSrc":"84066:73:65","nodeType":"YulFunctionCall","src":"84066:73:65"},"nativeSrc":"84066:73:65","nodeType":"YulExpressionStatement","src":"84066:73:65"},{"nativeSrc":"84148:18:65","nodeType":"YulAssignment","src":"84148:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"84159:3:65","nodeType":"YulIdentifier","src":"84159:3:65"},{"kind":"number","nativeSrc":"84164:1:65","nodeType":"YulLiteral","src":"84164:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"84155:3:65","nodeType":"YulIdentifier","src":"84155:3:65"},"nativeSrc":"84155:11:65","nodeType":"YulFunctionCall","src":"84155:11:65"},"variableNames":[{"name":"pos","nativeSrc":"84148:3:65","nodeType":"YulIdentifier","src":"84148:3:65"}]},{"nativeSrc":"84176:100:65","nodeType":"YulAssignment","src":"84176:100:65","value":{"arguments":[{"name":"value5","nativeSrc":"84263:6:65","nodeType":"YulIdentifier","src":"84263:6:65"},{"name":"pos","nativeSrc":"84272:3:65","nodeType":"YulIdentifier","src":"84272:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"84183:79:65","nodeType":"YulIdentifier","src":"84183:79:65"},"nativeSrc":"84183:93:65","nodeType":"YulFunctionCall","src":"84183:93:65"},"variableNames":[{"name":"pos","nativeSrc":"84176:3:65","nodeType":"YulIdentifier","src":"84176:3:65"}]},{"nativeSrc":"84286:10:65","nodeType":"YulAssignment","src":"84286:10:65","value":{"name":"pos","nativeSrc":"84293:3:65","nodeType":"YulIdentifier","src":"84293:3:65"},"variableNames":[{"name":"end","nativeSrc":"84286:3:65","nodeType":"YulIdentifier","src":"84286:3:65"}]}]},"name":"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"83345:957:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"83550:3:65","nodeType":"YulTypedName","src":"83550:3:65","type":""},{"name":"value5","nativeSrc":"83556:6:65","nodeType":"YulTypedName","src":"83556:6:65","type":""},{"name":"value4","nativeSrc":"83564:6:65","nodeType":"YulTypedName","src":"83564:6:65","type":""},{"name":"value3","nativeSrc":"83572:6:65","nodeType":"YulTypedName","src":"83572:6:65","type":""},{"name":"value2","nativeSrc":"83580:6:65","nodeType":"YulTypedName","src":"83580:6:65","type":""},{"name":"value1","nativeSrc":"83588:6:65","nodeType":"YulTypedName","src":"83588:6:65","type":""},{"name":"value0","nativeSrc":"83596:6:65","nodeType":"YulTypedName","src":"83596:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"83607:3:65","nodeType":"YulTypedName","src":"83607:3:65","type":""}],"src":"83345:957:65"},{"body":{"nativeSrc":"84462:288:65","nodeType":"YulBlock","src":"84462:288:65","statements":[{"nativeSrc":"84472:26:65","nodeType":"YulAssignment","src":"84472:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"84484:9:65","nodeType":"YulIdentifier","src":"84484:9:65"},{"kind":"number","nativeSrc":"84495:2:65","nodeType":"YulLiteral","src":"84495:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"84480:3:65","nodeType":"YulIdentifier","src":"84480:3:65"},"nativeSrc":"84480:18:65","nodeType":"YulFunctionCall","src":"84480:18:65"},"variableNames":[{"name":"tail","nativeSrc":"84472:4:65","nodeType":"YulIdentifier","src":"84472:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"84552:6:65","nodeType":"YulIdentifier","src":"84552:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"84565:9:65","nodeType":"YulIdentifier","src":"84565:9:65"},{"kind":"number","nativeSrc":"84576:1:65","nodeType":"YulLiteral","src":"84576:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"84561:3:65","nodeType":"YulIdentifier","src":"84561:3:65"},"nativeSrc":"84561:17:65","nodeType":"YulFunctionCall","src":"84561:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"84508:43:65","nodeType":"YulIdentifier","src":"84508:43:65"},"nativeSrc":"84508:71:65","nodeType":"YulFunctionCall","src":"84508:71:65"},"nativeSrc":"84508:71:65","nodeType":"YulExpressionStatement","src":"84508:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"84633:6:65","nodeType":"YulIdentifier","src":"84633:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"84646:9:65","nodeType":"YulIdentifier","src":"84646:9:65"},{"kind":"number","nativeSrc":"84657:2:65","nodeType":"YulLiteral","src":"84657:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"84642:3:65","nodeType":"YulIdentifier","src":"84642:3:65"},"nativeSrc":"84642:18:65","nodeType":"YulFunctionCall","src":"84642:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"84589:43:65","nodeType":"YulIdentifier","src":"84589:43:65"},"nativeSrc":"84589:72:65","nodeType":"YulFunctionCall","src":"84589:72:65"},"nativeSrc":"84589:72:65","nodeType":"YulExpressionStatement","src":"84589:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"84715:6:65","nodeType":"YulIdentifier","src":"84715:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"84728:9:65","nodeType":"YulIdentifier","src":"84728:9:65"},{"kind":"number","nativeSrc":"84739:2:65","nodeType":"YulLiteral","src":"84739:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"84724:3:65","nodeType":"YulIdentifier","src":"84724:3:65"},"nativeSrc":"84724:18:65","nodeType":"YulFunctionCall","src":"84724:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"84671:43:65","nodeType":"YulIdentifier","src":"84671:43:65"},"nativeSrc":"84671:72:65","nodeType":"YulFunctionCall","src":"84671:72:65"},"nativeSrc":"84671:72:65","nodeType":"YulExpressionStatement","src":"84671:72:65"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"84308:442:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84418:9:65","nodeType":"YulTypedName","src":"84418:9:65","type":""},{"name":"value2","nativeSrc":"84430:6:65","nodeType":"YulTypedName","src":"84430:6:65","type":""},{"name":"value1","nativeSrc":"84438:6:65","nodeType":"YulTypedName","src":"84438:6:65","type":""},{"name":"value0","nativeSrc":"84446:6:65","nodeType":"YulTypedName","src":"84446:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"84457:4:65","nodeType":"YulTypedName","src":"84457:4:65","type":""}],"src":"84308:442:65"},{"body":{"nativeSrc":"84804:362:65","nodeType":"YulBlock","src":"84804:362:65","statements":[{"nativeSrc":"84814:25:65","nodeType":"YulAssignment","src":"84814:25:65","value":{"arguments":[{"name":"x","nativeSrc":"84837:1:65","nodeType":"YulIdentifier","src":"84837:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"84819:17:65","nodeType":"YulIdentifier","src":"84819:17:65"},"nativeSrc":"84819:20:65","nodeType":"YulFunctionCall","src":"84819:20:65"},"variableNames":[{"name":"x","nativeSrc":"84814:1:65","nodeType":"YulIdentifier","src":"84814:1:65"}]},{"nativeSrc":"84848:25:65","nodeType":"YulAssignment","src":"84848:25:65","value":{"arguments":[{"name":"y","nativeSrc":"84871:1:65","nodeType":"YulIdentifier","src":"84871:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"84853:17:65","nodeType":"YulIdentifier","src":"84853:17:65"},"nativeSrc":"84853:20:65","nodeType":"YulFunctionCall","src":"84853:20:65"},"variableNames":[{"name":"y","nativeSrc":"84848:1:65","nodeType":"YulIdentifier","src":"84848:1:65"}]},{"nativeSrc":"84882:28:65","nodeType":"YulVariableDeclaration","src":"84882:28:65","value":{"arguments":[{"name":"x","nativeSrc":"84905:1:65","nodeType":"YulIdentifier","src":"84905:1:65"},{"name":"y","nativeSrc":"84908:1:65","nodeType":"YulIdentifier","src":"84908:1:65"}],"functionName":{"name":"mul","nativeSrc":"84901:3:65","nodeType":"YulIdentifier","src":"84901:3:65"},"nativeSrc":"84901:9:65","nodeType":"YulFunctionCall","src":"84901:9:65"},"variables":[{"name":"product_raw","nativeSrc":"84886:11:65","nodeType":"YulTypedName","src":"84886:11:65","type":""}]},{"nativeSrc":"84919:41:65","nodeType":"YulAssignment","src":"84919:41:65","value":{"arguments":[{"name":"product_raw","nativeSrc":"84948:11:65","nodeType":"YulIdentifier","src":"84948:11:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"84930:17:65","nodeType":"YulIdentifier","src":"84930:17:65"},"nativeSrc":"84930:30:65","nodeType":"YulFunctionCall","src":"84930:30:65"},"variableNames":[{"name":"product","nativeSrc":"84919:7:65","nodeType":"YulIdentifier","src":"84919:7:65"}]},{"body":{"nativeSrc":"85137:22:65","nodeType":"YulBlock","src":"85137:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"85139:16:65","nodeType":"YulIdentifier","src":"85139:16:65"},"nativeSrc":"85139:18:65","nodeType":"YulFunctionCall","src":"85139:18:65"},"nativeSrc":"85139:18:65","nodeType":"YulExpressionStatement","src":"85139:18:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"85070:1:65","nodeType":"YulIdentifier","src":"85070:1:65"}],"functionName":{"name":"iszero","nativeSrc":"85063:6:65","nodeType":"YulIdentifier","src":"85063:6:65"},"nativeSrc":"85063:9:65","nodeType":"YulFunctionCall","src":"85063:9:65"},{"arguments":[{"name":"y","nativeSrc":"85093:1:65","nodeType":"YulIdentifier","src":"85093:1:65"},{"arguments":[{"name":"product","nativeSrc":"85100:7:65","nodeType":"YulIdentifier","src":"85100:7:65"},{"name":"x","nativeSrc":"85109:1:65","nodeType":"YulIdentifier","src":"85109:1:65"}],"functionName":{"name":"div","nativeSrc":"85096:3:65","nodeType":"YulIdentifier","src":"85096:3:65"},"nativeSrc":"85096:15:65","nodeType":"YulFunctionCall","src":"85096:15:65"}],"functionName":{"name":"eq","nativeSrc":"85090:2:65","nodeType":"YulIdentifier","src":"85090:2:65"},"nativeSrc":"85090:22:65","nodeType":"YulFunctionCall","src":"85090:22:65"}],"functionName":{"name":"or","nativeSrc":"85043:2:65","nodeType":"YulIdentifier","src":"85043:2:65"},"nativeSrc":"85043:83:65","nodeType":"YulFunctionCall","src":"85043:83:65"}],"functionName":{"name":"iszero","nativeSrc":"85023:6:65","nodeType":"YulIdentifier","src":"85023:6:65"},"nativeSrc":"85023:113:65","nodeType":"YulFunctionCall","src":"85023:113:65"},"nativeSrc":"85020:139:65","nodeType":"YulIf","src":"85020:139:65"}]},"name":"checked_mul_t_uint256","nativeSrc":"84756:410:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"84787:1:65","nodeType":"YulTypedName","src":"84787:1:65","type":""},{"name":"y","nativeSrc":"84790:1:65","nodeType":"YulTypedName","src":"84790:1:65","type":""}],"returnVariables":[{"name":"product","nativeSrc":"84796:7:65","nodeType":"YulTypedName","src":"84796:7:65","type":""}],"src":"84756:410:65"},{"body":{"nativeSrc":"85278:68:65","nodeType":"YulBlock","src":"85278:68:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"85300:6:65","nodeType":"YulIdentifier","src":"85300:6:65"},{"kind":"number","nativeSrc":"85308:1:65","nodeType":"YulLiteral","src":"85308:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"85296:3:65","nodeType":"YulIdentifier","src":"85296:3:65"},"nativeSrc":"85296:14:65","nodeType":"YulFunctionCall","src":"85296:14:65"},{"hexValue":"4f4654436f72653a20696e76616c6964207061796c6f6164","kind":"string","nativeSrc":"85312:26:65","nodeType":"YulLiteral","src":"85312:26:65","type":"","value":"OFTCore: invalid payload"}],"functionName":{"name":"mstore","nativeSrc":"85289:6:65","nodeType":"YulIdentifier","src":"85289:6:65"},"nativeSrc":"85289:50:65","nodeType":"YulFunctionCall","src":"85289:50:65"},"nativeSrc":"85289:50:65","nodeType":"YulExpressionStatement","src":"85289:50:65"}]},"name":"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","nativeSrc":"85172:174:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"85270:6:65","nodeType":"YulTypedName","src":"85270:6:65","type":""}],"src":"85172:174:65"},{"body":{"nativeSrc":"85498:220:65","nodeType":"YulBlock","src":"85498:220:65","statements":[{"nativeSrc":"85508:74:65","nodeType":"YulAssignment","src":"85508:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"85574:3:65","nodeType":"YulIdentifier","src":"85574:3:65"},{"kind":"number","nativeSrc":"85579:2:65","nodeType":"YulLiteral","src":"85579:2:65","type":"","value":"24"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"85515:58:65","nodeType":"YulIdentifier","src":"85515:58:65"},"nativeSrc":"85515:67:65","nodeType":"YulFunctionCall","src":"85515:67:65"},"variableNames":[{"name":"pos","nativeSrc":"85508:3:65","nodeType":"YulIdentifier","src":"85508:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"85680:3:65","nodeType":"YulIdentifier","src":"85680:3:65"}],"functionName":{"name":"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","nativeSrc":"85591:88:65","nodeType":"YulIdentifier","src":"85591:88:65"},"nativeSrc":"85591:93:65","nodeType":"YulFunctionCall","src":"85591:93:65"},"nativeSrc":"85591:93:65","nodeType":"YulExpressionStatement","src":"85591:93:65"},{"nativeSrc":"85693:19:65","nodeType":"YulAssignment","src":"85693:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"85704:3:65","nodeType":"YulIdentifier","src":"85704:3:65"},{"kind":"number","nativeSrc":"85709:2:65","nodeType":"YulLiteral","src":"85709:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"85700:3:65","nodeType":"YulIdentifier","src":"85700:3:65"},"nativeSrc":"85700:12:65","nodeType":"YulFunctionCall","src":"85700:12:65"},"variableNames":[{"name":"end","nativeSrc":"85693:3:65","nodeType":"YulIdentifier","src":"85693:3:65"}]}]},"name":"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack","nativeSrc":"85352:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"85486:3:65","nodeType":"YulTypedName","src":"85486:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"85494:3:65","nodeType":"YulTypedName","src":"85494:3:65","type":""}],"src":"85352:366:65"},{"body":{"nativeSrc":"85895:248:65","nodeType":"YulBlock","src":"85895:248:65","statements":[{"nativeSrc":"85905:26:65","nodeType":"YulAssignment","src":"85905:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"85917:9:65","nodeType":"YulIdentifier","src":"85917:9:65"},{"kind":"number","nativeSrc":"85928:2:65","nodeType":"YulLiteral","src":"85928:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"85913:3:65","nodeType":"YulIdentifier","src":"85913:3:65"},"nativeSrc":"85913:18:65","nodeType":"YulFunctionCall","src":"85913:18:65"},"variableNames":[{"name":"tail","nativeSrc":"85905:4:65","nodeType":"YulIdentifier","src":"85905:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"85952:9:65","nodeType":"YulIdentifier","src":"85952:9:65"},{"kind":"number","nativeSrc":"85963:1:65","nodeType":"YulLiteral","src":"85963:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"85948:3:65","nodeType":"YulIdentifier","src":"85948:3:65"},"nativeSrc":"85948:17:65","nodeType":"YulFunctionCall","src":"85948:17:65"},{"arguments":[{"name":"tail","nativeSrc":"85971:4:65","nodeType":"YulIdentifier","src":"85971:4:65"},{"name":"headStart","nativeSrc":"85977:9:65","nodeType":"YulIdentifier","src":"85977:9:65"}],"functionName":{"name":"sub","nativeSrc":"85967:3:65","nodeType":"YulIdentifier","src":"85967:3:65"},"nativeSrc":"85967:20:65","nodeType":"YulFunctionCall","src":"85967:20:65"}],"functionName":{"name":"mstore","nativeSrc":"85941:6:65","nodeType":"YulIdentifier","src":"85941:6:65"},"nativeSrc":"85941:47:65","nodeType":"YulFunctionCall","src":"85941:47:65"},"nativeSrc":"85941:47:65","nodeType":"YulExpressionStatement","src":"85941:47:65"},{"nativeSrc":"85997:139:65","nodeType":"YulAssignment","src":"85997:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"86131:4:65","nodeType":"YulIdentifier","src":"86131:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack","nativeSrc":"86005:124:65","nodeType":"YulIdentifier","src":"86005:124:65"},"nativeSrc":"86005:131:65","nodeType":"YulFunctionCall","src":"86005:131:65"},"variableNames":[{"name":"tail","nativeSrc":"85997:4:65","nodeType":"YulIdentifier","src":"85997:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"85724:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"85875:9:65","nodeType":"YulTypedName","src":"85875:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"85890:4:65","nodeType":"YulTypedName","src":"85890:4:65","type":""}],"src":"85724:419:65"},{"body":{"nativeSrc":"86255:72:65","nodeType":"YulBlock","src":"86255:72:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"86277:6:65","nodeType":"YulIdentifier","src":"86277:6:65"},{"kind":"number","nativeSrc":"86285:1:65","nodeType":"YulLiteral","src":"86285:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"86273:3:65","nodeType":"YulIdentifier","src":"86273:3:65"},"nativeSrc":"86273:14:65","nodeType":"YulFunctionCall","src":"86273:14:65"},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","kind":"string","nativeSrc":"86289:30:65","nodeType":"YulLiteral","src":"86289:30:65","type":"","value":"LzApp: invalid adapterParams"}],"functionName":{"name":"mstore","nativeSrc":"86266:6:65","nodeType":"YulIdentifier","src":"86266:6:65"},"nativeSrc":"86266:54:65","nodeType":"YulFunctionCall","src":"86266:54:65"},"nativeSrc":"86266:54:65","nodeType":"YulExpressionStatement","src":"86266:54:65"}]},"name":"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","nativeSrc":"86149:178:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"86247:6:65","nodeType":"YulTypedName","src":"86247:6:65","type":""}],"src":"86149:178:65"},{"body":{"nativeSrc":"86479:220:65","nodeType":"YulBlock","src":"86479:220:65","statements":[{"nativeSrc":"86489:74:65","nodeType":"YulAssignment","src":"86489:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"86555:3:65","nodeType":"YulIdentifier","src":"86555:3:65"},{"kind":"number","nativeSrc":"86560:2:65","nodeType":"YulLiteral","src":"86560:2:65","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"86496:58:65","nodeType":"YulIdentifier","src":"86496:58:65"},"nativeSrc":"86496:67:65","nodeType":"YulFunctionCall","src":"86496:67:65"},"variableNames":[{"name":"pos","nativeSrc":"86489:3:65","nodeType":"YulIdentifier","src":"86489:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"86661:3:65","nodeType":"YulIdentifier","src":"86661:3:65"}],"functionName":{"name":"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","nativeSrc":"86572:88:65","nodeType":"YulIdentifier","src":"86572:88:65"},"nativeSrc":"86572:93:65","nodeType":"YulFunctionCall","src":"86572:93:65"},"nativeSrc":"86572:93:65","nodeType":"YulExpressionStatement","src":"86572:93:65"},{"nativeSrc":"86674:19:65","nodeType":"YulAssignment","src":"86674:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"86685:3:65","nodeType":"YulIdentifier","src":"86685:3:65"},{"kind":"number","nativeSrc":"86690:2:65","nodeType":"YulLiteral","src":"86690:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"86681:3:65","nodeType":"YulIdentifier","src":"86681:3:65"},"nativeSrc":"86681:12:65","nodeType":"YulFunctionCall","src":"86681:12:65"},"variableNames":[{"name":"end","nativeSrc":"86674:3:65","nodeType":"YulIdentifier","src":"86674:3:65"}]}]},"name":"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack","nativeSrc":"86333:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"86467:3:65","nodeType":"YulTypedName","src":"86467:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"86475:3:65","nodeType":"YulTypedName","src":"86475:3:65","type":""}],"src":"86333:366:65"},{"body":{"nativeSrc":"86876:248:65","nodeType":"YulBlock","src":"86876:248:65","statements":[{"nativeSrc":"86886:26:65","nodeType":"YulAssignment","src":"86886:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"86898:9:65","nodeType":"YulIdentifier","src":"86898:9:65"},{"kind":"number","nativeSrc":"86909:2:65","nodeType":"YulLiteral","src":"86909:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"86894:3:65","nodeType":"YulIdentifier","src":"86894:3:65"},"nativeSrc":"86894:18:65","nodeType":"YulFunctionCall","src":"86894:18:65"},"variableNames":[{"name":"tail","nativeSrc":"86886:4:65","nodeType":"YulIdentifier","src":"86886:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"86933:9:65","nodeType":"YulIdentifier","src":"86933:9:65"},{"kind":"number","nativeSrc":"86944:1:65","nodeType":"YulLiteral","src":"86944:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"86929:3:65","nodeType":"YulIdentifier","src":"86929:3:65"},"nativeSrc":"86929:17:65","nodeType":"YulFunctionCall","src":"86929:17:65"},{"arguments":[{"name":"tail","nativeSrc":"86952:4:65","nodeType":"YulIdentifier","src":"86952:4:65"},{"name":"headStart","nativeSrc":"86958:9:65","nodeType":"YulIdentifier","src":"86958:9:65"}],"functionName":{"name":"sub","nativeSrc":"86948:3:65","nodeType":"YulIdentifier","src":"86948:3:65"},"nativeSrc":"86948:20:65","nodeType":"YulFunctionCall","src":"86948:20:65"}],"functionName":{"name":"mstore","nativeSrc":"86922:6:65","nodeType":"YulIdentifier","src":"86922:6:65"},"nativeSrc":"86922:47:65","nodeType":"YulFunctionCall","src":"86922:47:65"},"nativeSrc":"86922:47:65","nodeType":"YulExpressionStatement","src":"86922:47:65"},{"nativeSrc":"86978:139:65","nodeType":"YulAssignment","src":"86978:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"87112:4:65","nodeType":"YulIdentifier","src":"87112:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack","nativeSrc":"86986:124:65","nodeType":"YulIdentifier","src":"86986:124:65"},"nativeSrc":"86986:131:65","nodeType":"YulFunctionCall","src":"86986:131:65"},"variableNames":[{"name":"tail","nativeSrc":"86978:4:65","nodeType":"YulIdentifier","src":"86978:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"86705:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"86856:9:65","nodeType":"YulTypedName","src":"86856:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"86871:4:65","nodeType":"YulTypedName","src":"86871:4:65","type":""}],"src":"86705:419:65"},{"body":{"nativeSrc":"87236:75:65","nodeType":"YulBlock","src":"87236:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"87258:6:65","nodeType":"YulIdentifier","src":"87258:6:65"},{"kind":"number","nativeSrc":"87266:1:65","nodeType":"YulLiteral","src":"87266:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"87254:3:65","nodeType":"YulIdentifier","src":"87254:3:65"},"nativeSrc":"87254:14:65","nodeType":"YulFunctionCall","src":"87254:14:65"},{"hexValue":"53696e676c65205472616e73616374696f6e204c696d697420457863656564","kind":"string","nativeSrc":"87270:33:65","nodeType":"YulLiteral","src":"87270:33:65","type":"","value":"Single Transaction Limit Exceed"}],"functionName":{"name":"mstore","nativeSrc":"87247:6:65","nodeType":"YulIdentifier","src":"87247:6:65"},"nativeSrc":"87247:57:65","nodeType":"YulFunctionCall","src":"87247:57:65"},"nativeSrc":"87247:57:65","nodeType":"YulExpressionStatement","src":"87247:57:65"}]},"name":"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","nativeSrc":"87130:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"87228:6:65","nodeType":"YulTypedName","src":"87228:6:65","type":""}],"src":"87130:181:65"},{"body":{"nativeSrc":"87463:220:65","nodeType":"YulBlock","src":"87463:220:65","statements":[{"nativeSrc":"87473:74:65","nodeType":"YulAssignment","src":"87473:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"87539:3:65","nodeType":"YulIdentifier","src":"87539:3:65"},{"kind":"number","nativeSrc":"87544:2:65","nodeType":"YulLiteral","src":"87544:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"87480:58:65","nodeType":"YulIdentifier","src":"87480:58:65"},"nativeSrc":"87480:67:65","nodeType":"YulFunctionCall","src":"87480:67:65"},"variableNames":[{"name":"pos","nativeSrc":"87473:3:65","nodeType":"YulIdentifier","src":"87473:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"87645:3:65","nodeType":"YulIdentifier","src":"87645:3:65"}],"functionName":{"name":"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","nativeSrc":"87556:88:65","nodeType":"YulIdentifier","src":"87556:88:65"},"nativeSrc":"87556:93:65","nodeType":"YulFunctionCall","src":"87556:93:65"},"nativeSrc":"87556:93:65","nodeType":"YulExpressionStatement","src":"87556:93:65"},{"nativeSrc":"87658:19:65","nodeType":"YulAssignment","src":"87658:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"87669:3:65","nodeType":"YulIdentifier","src":"87669:3:65"},{"kind":"number","nativeSrc":"87674:2:65","nodeType":"YulLiteral","src":"87674:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"87665:3:65","nodeType":"YulIdentifier","src":"87665:3:65"},"nativeSrc":"87665:12:65","nodeType":"YulFunctionCall","src":"87665:12:65"},"variableNames":[{"name":"end","nativeSrc":"87658:3:65","nodeType":"YulIdentifier","src":"87658:3:65"}]}]},"name":"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack","nativeSrc":"87317:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"87451:3:65","nodeType":"YulTypedName","src":"87451:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"87459:3:65","nodeType":"YulTypedName","src":"87459:3:65","type":""}],"src":"87317:366:65"},{"body":{"nativeSrc":"87860:248:65","nodeType":"YulBlock","src":"87860:248:65","statements":[{"nativeSrc":"87870:26:65","nodeType":"YulAssignment","src":"87870:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"87882:9:65","nodeType":"YulIdentifier","src":"87882:9:65"},{"kind":"number","nativeSrc":"87893:2:65","nodeType":"YulLiteral","src":"87893:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"87878:3:65","nodeType":"YulIdentifier","src":"87878:3:65"},"nativeSrc":"87878:18:65","nodeType":"YulFunctionCall","src":"87878:18:65"},"variableNames":[{"name":"tail","nativeSrc":"87870:4:65","nodeType":"YulIdentifier","src":"87870:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"87917:9:65","nodeType":"YulIdentifier","src":"87917:9:65"},{"kind":"number","nativeSrc":"87928:1:65","nodeType":"YulLiteral","src":"87928:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"87913:3:65","nodeType":"YulIdentifier","src":"87913:3:65"},"nativeSrc":"87913:17:65","nodeType":"YulFunctionCall","src":"87913:17:65"},{"arguments":[{"name":"tail","nativeSrc":"87936:4:65","nodeType":"YulIdentifier","src":"87936:4:65"},{"name":"headStart","nativeSrc":"87942:9:65","nodeType":"YulIdentifier","src":"87942:9:65"}],"functionName":{"name":"sub","nativeSrc":"87932:3:65","nodeType":"YulIdentifier","src":"87932:3:65"},"nativeSrc":"87932:20:65","nodeType":"YulFunctionCall","src":"87932:20:65"}],"functionName":{"name":"mstore","nativeSrc":"87906:6:65","nodeType":"YulIdentifier","src":"87906:6:65"},"nativeSrc":"87906:47:65","nodeType":"YulFunctionCall","src":"87906:47:65"},"nativeSrc":"87906:47:65","nodeType":"YulExpressionStatement","src":"87906:47:65"},{"nativeSrc":"87962:139:65","nodeType":"YulAssignment","src":"87962:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"88096:4:65","nodeType":"YulIdentifier","src":"88096:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack","nativeSrc":"87970:124:65","nodeType":"YulIdentifier","src":"87970:124:65"},"nativeSrc":"87970:131:65","nodeType":"YulFunctionCall","src":"87970:131:65"},"variableNames":[{"name":"tail","nativeSrc":"87962:4:65","nodeType":"YulIdentifier","src":"87962:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"87689:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"87840:9:65","nodeType":"YulTypedName","src":"87840:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"87855:4:65","nodeType":"YulTypedName","src":"87855:4:65","type":""}],"src":"87689:419:65"},{"body":{"nativeSrc":"88220:74:65","nodeType":"YulBlock","src":"88220:74:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"88242:6:65","nodeType":"YulIdentifier","src":"88242:6:65"},{"kind":"number","nativeSrc":"88250:1:65","nodeType":"YulLiteral","src":"88250:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"88238:3:65","nodeType":"YulIdentifier","src":"88238:3:65"},"nativeSrc":"88238:14:65","nodeType":"YulFunctionCall","src":"88238:14:65"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d697420457863656564","kind":"string","nativeSrc":"88254:32:65","nodeType":"YulLiteral","src":"88254:32:65","type":"","value":"Daily Transaction Limit Exceed"}],"functionName":{"name":"mstore","nativeSrc":"88231:6:65","nodeType":"YulIdentifier","src":"88231:6:65"},"nativeSrc":"88231:56:65","nodeType":"YulFunctionCall","src":"88231:56:65"},"nativeSrc":"88231:56:65","nodeType":"YulExpressionStatement","src":"88231:56:65"}]},"name":"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","nativeSrc":"88114:180:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"88212:6:65","nodeType":"YulTypedName","src":"88212:6:65","type":""}],"src":"88114:180:65"},{"body":{"nativeSrc":"88446:220:65","nodeType":"YulBlock","src":"88446:220:65","statements":[{"nativeSrc":"88456:74:65","nodeType":"YulAssignment","src":"88456:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"88522:3:65","nodeType":"YulIdentifier","src":"88522:3:65"},{"kind":"number","nativeSrc":"88527:2:65","nodeType":"YulLiteral","src":"88527:2:65","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"88463:58:65","nodeType":"YulIdentifier","src":"88463:58:65"},"nativeSrc":"88463:67:65","nodeType":"YulFunctionCall","src":"88463:67:65"},"variableNames":[{"name":"pos","nativeSrc":"88456:3:65","nodeType":"YulIdentifier","src":"88456:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"88628:3:65","nodeType":"YulIdentifier","src":"88628:3:65"}],"functionName":{"name":"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","nativeSrc":"88539:88:65","nodeType":"YulIdentifier","src":"88539:88:65"},"nativeSrc":"88539:93:65","nodeType":"YulFunctionCall","src":"88539:93:65"},"nativeSrc":"88539:93:65","nodeType":"YulExpressionStatement","src":"88539:93:65"},{"nativeSrc":"88641:19:65","nodeType":"YulAssignment","src":"88641:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"88652:3:65","nodeType":"YulIdentifier","src":"88652:3:65"},{"kind":"number","nativeSrc":"88657:2:65","nodeType":"YulLiteral","src":"88657:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"88648:3:65","nodeType":"YulIdentifier","src":"88648:3:65"},"nativeSrc":"88648:12:65","nodeType":"YulFunctionCall","src":"88648:12:65"},"variableNames":[{"name":"end","nativeSrc":"88641:3:65","nodeType":"YulIdentifier","src":"88641:3:65"}]}]},"name":"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack","nativeSrc":"88300:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"88434:3:65","nodeType":"YulTypedName","src":"88434:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"88442:3:65","nodeType":"YulTypedName","src":"88442:3:65","type":""}],"src":"88300:366:65"},{"body":{"nativeSrc":"88843:248:65","nodeType":"YulBlock","src":"88843:248:65","statements":[{"nativeSrc":"88853:26:65","nodeType":"YulAssignment","src":"88853:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"88865:9:65","nodeType":"YulIdentifier","src":"88865:9:65"},{"kind":"number","nativeSrc":"88876:2:65","nodeType":"YulLiteral","src":"88876:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"88861:3:65","nodeType":"YulIdentifier","src":"88861:3:65"},"nativeSrc":"88861:18:65","nodeType":"YulFunctionCall","src":"88861:18:65"},"variableNames":[{"name":"tail","nativeSrc":"88853:4:65","nodeType":"YulIdentifier","src":"88853:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"88900:9:65","nodeType":"YulIdentifier","src":"88900:9:65"},{"kind":"number","nativeSrc":"88911:1:65","nodeType":"YulLiteral","src":"88911:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"88896:3:65","nodeType":"YulIdentifier","src":"88896:3:65"},"nativeSrc":"88896:17:65","nodeType":"YulFunctionCall","src":"88896:17:65"},{"arguments":[{"name":"tail","nativeSrc":"88919:4:65","nodeType":"YulIdentifier","src":"88919:4:65"},{"name":"headStart","nativeSrc":"88925:9:65","nodeType":"YulIdentifier","src":"88925:9:65"}],"functionName":{"name":"sub","nativeSrc":"88915:3:65","nodeType":"YulIdentifier","src":"88915:3:65"},"nativeSrc":"88915:20:65","nodeType":"YulFunctionCall","src":"88915:20:65"}],"functionName":{"name":"mstore","nativeSrc":"88889:6:65","nodeType":"YulIdentifier","src":"88889:6:65"},"nativeSrc":"88889:47:65","nodeType":"YulFunctionCall","src":"88889:47:65"},"nativeSrc":"88889:47:65","nodeType":"YulExpressionStatement","src":"88889:47:65"},{"nativeSrc":"88945:139:65","nodeType":"YulAssignment","src":"88945:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"89079:4:65","nodeType":"YulIdentifier","src":"89079:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack","nativeSrc":"88953:124:65","nodeType":"YulIdentifier","src":"88953:124:65"},"nativeSrc":"88953:131:65","nodeType":"YulFunctionCall","src":"88953:131:65"},"variableNames":[{"name":"tail","nativeSrc":"88945:4:65","nodeType":"YulIdentifier","src":"88945:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"88672:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"88823:9:65","nodeType":"YulTypedName","src":"88823:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"88838:4:65","nodeType":"YulTypedName","src":"88838:4:65","type":""}],"src":"88672:419:65"},{"body":{"nativeSrc":"89203:76:65","nodeType":"YulBlock","src":"89203:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"89225:6:65","nodeType":"YulIdentifier","src":"89225:6:65"},{"kind":"number","nativeSrc":"89233:1:65","nodeType":"YulLiteral","src":"89233:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"89221:3:65","nodeType":"YulIdentifier","src":"89221:3:65"},"nativeSrc":"89221:14:65","nodeType":"YulFunctionCall","src":"89221:14:65"},{"hexValue":"4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765","kind":"string","nativeSrc":"89237:34:65","nodeType":"YulLiteral","src":"89237:34:65","type":"","value":"LzApp: payload size is too large"}],"functionName":{"name":"mstore","nativeSrc":"89214:6:65","nodeType":"YulIdentifier","src":"89214:6:65"},"nativeSrc":"89214:58:65","nodeType":"YulFunctionCall","src":"89214:58:65"},"nativeSrc":"89214:58:65","nodeType":"YulExpressionStatement","src":"89214:58:65"}]},"name":"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","nativeSrc":"89097:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"89195:6:65","nodeType":"YulTypedName","src":"89195:6:65","type":""}],"src":"89097:182:65"},{"body":{"nativeSrc":"89431:220:65","nodeType":"YulBlock","src":"89431:220:65","statements":[{"nativeSrc":"89441:74:65","nodeType":"YulAssignment","src":"89441:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"89507:3:65","nodeType":"YulIdentifier","src":"89507:3:65"},{"kind":"number","nativeSrc":"89512:2:65","nodeType":"YulLiteral","src":"89512:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"89448:58:65","nodeType":"YulIdentifier","src":"89448:58:65"},"nativeSrc":"89448:67:65","nodeType":"YulFunctionCall","src":"89448:67:65"},"variableNames":[{"name":"pos","nativeSrc":"89441:3:65","nodeType":"YulIdentifier","src":"89441:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"89613:3:65","nodeType":"YulIdentifier","src":"89613:3:65"}],"functionName":{"name":"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","nativeSrc":"89524:88:65","nodeType":"YulIdentifier","src":"89524:88:65"},"nativeSrc":"89524:93:65","nodeType":"YulFunctionCall","src":"89524:93:65"},"nativeSrc":"89524:93:65","nodeType":"YulExpressionStatement","src":"89524:93:65"},{"nativeSrc":"89626:19:65","nodeType":"YulAssignment","src":"89626:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"89637:3:65","nodeType":"YulIdentifier","src":"89637:3:65"},{"kind":"number","nativeSrc":"89642:2:65","nodeType":"YulLiteral","src":"89642:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"89633:3:65","nodeType":"YulIdentifier","src":"89633:3:65"},"nativeSrc":"89633:12:65","nodeType":"YulFunctionCall","src":"89633:12:65"},"variableNames":[{"name":"end","nativeSrc":"89626:3:65","nodeType":"YulIdentifier","src":"89626:3:65"}]}]},"name":"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack","nativeSrc":"89285:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"89419:3:65","nodeType":"YulTypedName","src":"89419:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"89427:3:65","nodeType":"YulTypedName","src":"89427:3:65","type":""}],"src":"89285:366:65"},{"body":{"nativeSrc":"89828:248:65","nodeType":"YulBlock","src":"89828:248:65","statements":[{"nativeSrc":"89838:26:65","nodeType":"YulAssignment","src":"89838:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"89850:9:65","nodeType":"YulIdentifier","src":"89850:9:65"},{"kind":"number","nativeSrc":"89861:2:65","nodeType":"YulLiteral","src":"89861:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"89846:3:65","nodeType":"YulIdentifier","src":"89846:3:65"},"nativeSrc":"89846:18:65","nodeType":"YulFunctionCall","src":"89846:18:65"},"variableNames":[{"name":"tail","nativeSrc":"89838:4:65","nodeType":"YulIdentifier","src":"89838:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"89885:9:65","nodeType":"YulIdentifier","src":"89885:9:65"},{"kind":"number","nativeSrc":"89896:1:65","nodeType":"YulLiteral","src":"89896:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"89881:3:65","nodeType":"YulIdentifier","src":"89881:3:65"},"nativeSrc":"89881:17:65","nodeType":"YulFunctionCall","src":"89881:17:65"},{"arguments":[{"name":"tail","nativeSrc":"89904:4:65","nodeType":"YulIdentifier","src":"89904:4:65"},{"name":"headStart","nativeSrc":"89910:9:65","nodeType":"YulIdentifier","src":"89910:9:65"}],"functionName":{"name":"sub","nativeSrc":"89900:3:65","nodeType":"YulIdentifier","src":"89900:3:65"},"nativeSrc":"89900:20:65","nodeType":"YulFunctionCall","src":"89900:20:65"}],"functionName":{"name":"mstore","nativeSrc":"89874:6:65","nodeType":"YulIdentifier","src":"89874:6:65"},"nativeSrc":"89874:47:65","nodeType":"YulFunctionCall","src":"89874:47:65"},"nativeSrc":"89874:47:65","nodeType":"YulExpressionStatement","src":"89874:47:65"},{"nativeSrc":"89930:139:65","nodeType":"YulAssignment","src":"89930:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"90064:4:65","nodeType":"YulIdentifier","src":"90064:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack","nativeSrc":"89938:124:65","nodeType":"YulIdentifier","src":"89938:124:65"},"nativeSrc":"89938:131:65","nodeType":"YulFunctionCall","src":"89938:131:65"},"variableNames":[{"name":"tail","nativeSrc":"89930:4:65","nodeType":"YulIdentifier","src":"89930:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"89657:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"89808:9:65","nodeType":"YulTypedName","src":"89808:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"89823:4:65","nodeType":"YulTypedName","src":"89823:4:65","type":""}],"src":"89657:419:65"},{"body":{"nativeSrc":"90188:119:65","nodeType":"YulBlock","src":"90188:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"90210:6:65","nodeType":"YulIdentifier","src":"90210:6:65"},{"kind":"number","nativeSrc":"90218:1:65","nodeType":"YulLiteral","src":"90218:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"90206:3:65","nodeType":"YulIdentifier","src":"90206:3:65"},"nativeSrc":"90206:14:65","nodeType":"YulFunctionCall","src":"90206:14:65"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"90222:34:65","nodeType":"YulLiteral","src":"90222:34:65","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"90199:6:65","nodeType":"YulIdentifier","src":"90199:6:65"},"nativeSrc":"90199:58:65","nodeType":"YulFunctionCall","src":"90199:58:65"},"nativeSrc":"90199:58:65","nodeType":"YulExpressionStatement","src":"90199:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"90278:6:65","nodeType":"YulIdentifier","src":"90278:6:65"},{"kind":"number","nativeSrc":"90286:2:65","nodeType":"YulLiteral","src":"90286:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"90274:3:65","nodeType":"YulIdentifier","src":"90274:3:65"},"nativeSrc":"90274:15:65","nodeType":"YulFunctionCall","src":"90274:15:65"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"90291:8:65","nodeType":"YulLiteral","src":"90291:8:65","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"90267:6:65","nodeType":"YulIdentifier","src":"90267:6:65"},"nativeSrc":"90267:33:65","nodeType":"YulFunctionCall","src":"90267:33:65"},"nativeSrc":"90267:33:65","nodeType":"YulExpressionStatement","src":"90267:33:65"}]},"name":"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","nativeSrc":"90082:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"90180:6:65","nodeType":"YulTypedName","src":"90180:6:65","type":""}],"src":"90082:225:65"},{"body":{"nativeSrc":"90459:220:65","nodeType":"YulBlock","src":"90459:220:65","statements":[{"nativeSrc":"90469:74:65","nodeType":"YulAssignment","src":"90469:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"90535:3:65","nodeType":"YulIdentifier","src":"90535:3:65"},{"kind":"number","nativeSrc":"90540:2:65","nodeType":"YulLiteral","src":"90540:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"90476:58:65","nodeType":"YulIdentifier","src":"90476:58:65"},"nativeSrc":"90476:67:65","nodeType":"YulFunctionCall","src":"90476:67:65"},"variableNames":[{"name":"pos","nativeSrc":"90469:3:65","nodeType":"YulIdentifier","src":"90469:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"90641:3:65","nodeType":"YulIdentifier","src":"90641:3:65"}],"functionName":{"name":"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","nativeSrc":"90552:88:65","nodeType":"YulIdentifier","src":"90552:88:65"},"nativeSrc":"90552:93:65","nodeType":"YulFunctionCall","src":"90552:93:65"},"nativeSrc":"90552:93:65","nodeType":"YulExpressionStatement","src":"90552:93:65"},{"nativeSrc":"90654:19:65","nodeType":"YulAssignment","src":"90654:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"90665:3:65","nodeType":"YulIdentifier","src":"90665:3:65"},{"kind":"number","nativeSrc":"90670:2:65","nodeType":"YulLiteral","src":"90670:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"90661:3:65","nodeType":"YulIdentifier","src":"90661:3:65"},"nativeSrc":"90661:12:65","nodeType":"YulFunctionCall","src":"90661:12:65"},"variableNames":[{"name":"end","nativeSrc":"90654:3:65","nodeType":"YulIdentifier","src":"90654:3:65"}]}]},"name":"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack","nativeSrc":"90313:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"90447:3:65","nodeType":"YulTypedName","src":"90447:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"90455:3:65","nodeType":"YulTypedName","src":"90455:3:65","type":""}],"src":"90313:366:65"},{"body":{"nativeSrc":"90856:248:65","nodeType":"YulBlock","src":"90856:248:65","statements":[{"nativeSrc":"90866:26:65","nodeType":"YulAssignment","src":"90866:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"90878:9:65","nodeType":"YulIdentifier","src":"90878:9:65"},{"kind":"number","nativeSrc":"90889:2:65","nodeType":"YulLiteral","src":"90889:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"90874:3:65","nodeType":"YulIdentifier","src":"90874:3:65"},"nativeSrc":"90874:18:65","nodeType":"YulFunctionCall","src":"90874:18:65"},"variableNames":[{"name":"tail","nativeSrc":"90866:4:65","nodeType":"YulIdentifier","src":"90866:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"90913:9:65","nodeType":"YulIdentifier","src":"90913:9:65"},{"kind":"number","nativeSrc":"90924:1:65","nodeType":"YulLiteral","src":"90924:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"90909:3:65","nodeType":"YulIdentifier","src":"90909:3:65"},"nativeSrc":"90909:17:65","nodeType":"YulFunctionCall","src":"90909:17:65"},{"arguments":[{"name":"tail","nativeSrc":"90932:4:65","nodeType":"YulIdentifier","src":"90932:4:65"},{"name":"headStart","nativeSrc":"90938:9:65","nodeType":"YulIdentifier","src":"90938:9:65"}],"functionName":{"name":"sub","nativeSrc":"90928:3:65","nodeType":"YulIdentifier","src":"90928:3:65"},"nativeSrc":"90928:20:65","nodeType":"YulFunctionCall","src":"90928:20:65"}],"functionName":{"name":"mstore","nativeSrc":"90902:6:65","nodeType":"YulIdentifier","src":"90902:6:65"},"nativeSrc":"90902:47:65","nodeType":"YulFunctionCall","src":"90902:47:65"},"nativeSrc":"90902:47:65","nodeType":"YulExpressionStatement","src":"90902:47:65"},{"nativeSrc":"90958:139:65","nodeType":"YulAssignment","src":"90958:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"91092:4:65","nodeType":"YulIdentifier","src":"91092:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack","nativeSrc":"90966:124:65","nodeType":"YulIdentifier","src":"90966:124:65"},"nativeSrc":"90966:131:65","nodeType":"YulFunctionCall","src":"90966:131:65"},"variableNames":[{"name":"tail","nativeSrc":"90958:4:65","nodeType":"YulIdentifier","src":"90958:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"90685:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"90836:9:65","nodeType":"YulTypedName","src":"90836:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"90851:4:65","nodeType":"YulTypedName","src":"90851:4:65","type":""}],"src":"90685:419:65"},{"body":{"nativeSrc":"91216:65:65","nodeType":"YulBlock","src":"91216:65:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"91238:6:65","nodeType":"YulIdentifier","src":"91238:6:65"},{"kind":"number","nativeSrc":"91246:1:65","nodeType":"YulLiteral","src":"91246:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"91234:3:65","nodeType":"YulIdentifier","src":"91234:3:65"},"nativeSrc":"91234:14:65","nodeType":"YulFunctionCall","src":"91234:14:65"},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","kind":"string","nativeSrc":"91250:23:65","nodeType":"YulLiteral","src":"91250:23:65","type":"","value":"toAddress_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"91227:6:65","nodeType":"YulIdentifier","src":"91227:6:65"},"nativeSrc":"91227:47:65","nodeType":"YulFunctionCall","src":"91227:47:65"},"nativeSrc":"91227:47:65","nodeType":"YulExpressionStatement","src":"91227:47:65"}]},"name":"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","nativeSrc":"91110:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"91208:6:65","nodeType":"YulTypedName","src":"91208:6:65","type":""}],"src":"91110:171:65"},{"body":{"nativeSrc":"91433:220:65","nodeType":"YulBlock","src":"91433:220:65","statements":[{"nativeSrc":"91443:74:65","nodeType":"YulAssignment","src":"91443:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"91509:3:65","nodeType":"YulIdentifier","src":"91509:3:65"},{"kind":"number","nativeSrc":"91514:2:65","nodeType":"YulLiteral","src":"91514:2:65","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"91450:58:65","nodeType":"YulIdentifier","src":"91450:58:65"},"nativeSrc":"91450:67:65","nodeType":"YulFunctionCall","src":"91450:67:65"},"variableNames":[{"name":"pos","nativeSrc":"91443:3:65","nodeType":"YulIdentifier","src":"91443:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"91615:3:65","nodeType":"YulIdentifier","src":"91615:3:65"}],"functionName":{"name":"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","nativeSrc":"91526:88:65","nodeType":"YulIdentifier","src":"91526:88:65"},"nativeSrc":"91526:93:65","nodeType":"YulFunctionCall","src":"91526:93:65"},"nativeSrc":"91526:93:65","nodeType":"YulExpressionStatement","src":"91526:93:65"},{"nativeSrc":"91628:19:65","nodeType":"YulAssignment","src":"91628:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"91639:3:65","nodeType":"YulIdentifier","src":"91639:3:65"},{"kind":"number","nativeSrc":"91644:2:65","nodeType":"YulLiteral","src":"91644:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"91635:3:65","nodeType":"YulIdentifier","src":"91635:3:65"},"nativeSrc":"91635:12:65","nodeType":"YulFunctionCall","src":"91635:12:65"},"variableNames":[{"name":"end","nativeSrc":"91628:3:65","nodeType":"YulIdentifier","src":"91628:3:65"}]}]},"name":"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack","nativeSrc":"91287:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"91421:3:65","nodeType":"YulTypedName","src":"91421:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"91429:3:65","nodeType":"YulTypedName","src":"91429:3:65","type":""}],"src":"91287:366:65"},{"body":{"nativeSrc":"91830:248:65","nodeType":"YulBlock","src":"91830:248:65","statements":[{"nativeSrc":"91840:26:65","nodeType":"YulAssignment","src":"91840:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"91852:9:65","nodeType":"YulIdentifier","src":"91852:9:65"},{"kind":"number","nativeSrc":"91863:2:65","nodeType":"YulLiteral","src":"91863:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"91848:3:65","nodeType":"YulIdentifier","src":"91848:3:65"},"nativeSrc":"91848:18:65","nodeType":"YulFunctionCall","src":"91848:18:65"},"variableNames":[{"name":"tail","nativeSrc":"91840:4:65","nodeType":"YulIdentifier","src":"91840:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"91887:9:65","nodeType":"YulIdentifier","src":"91887:9:65"},{"kind":"number","nativeSrc":"91898:1:65","nodeType":"YulLiteral","src":"91898:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"91883:3:65","nodeType":"YulIdentifier","src":"91883:3:65"},"nativeSrc":"91883:17:65","nodeType":"YulFunctionCall","src":"91883:17:65"},{"arguments":[{"name":"tail","nativeSrc":"91906:4:65","nodeType":"YulIdentifier","src":"91906:4:65"},{"name":"headStart","nativeSrc":"91912:9:65","nodeType":"YulIdentifier","src":"91912:9:65"}],"functionName":{"name":"sub","nativeSrc":"91902:3:65","nodeType":"YulIdentifier","src":"91902:3:65"},"nativeSrc":"91902:20:65","nodeType":"YulFunctionCall","src":"91902:20:65"}],"functionName":{"name":"mstore","nativeSrc":"91876:6:65","nodeType":"YulIdentifier","src":"91876:6:65"},"nativeSrc":"91876:47:65","nodeType":"YulFunctionCall","src":"91876:47:65"},"nativeSrc":"91876:47:65","nodeType":"YulExpressionStatement","src":"91876:47:65"},{"nativeSrc":"91932:139:65","nodeType":"YulAssignment","src":"91932:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"92066:4:65","nodeType":"YulIdentifier","src":"92066:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack","nativeSrc":"91940:124:65","nodeType":"YulIdentifier","src":"91940:124:65"},"nativeSrc":"91940:131:65","nodeType":"YulFunctionCall","src":"91940:131:65"},"variableNames":[{"name":"tail","nativeSrc":"91932:4:65","nodeType":"YulIdentifier","src":"91932:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"91659:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"91810:9:65","nodeType":"YulTypedName","src":"91810:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"91825:4:65","nodeType":"YulTypedName","src":"91825:4:65","type":""}],"src":"91659:419:65"},{"body":{"nativeSrc":"92190:64:65","nodeType":"YulBlock","src":"92190:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"92212:6:65","nodeType":"YulIdentifier","src":"92212:6:65"},{"kind":"number","nativeSrc":"92220:1:65","nodeType":"YulLiteral","src":"92220:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"92208:3:65","nodeType":"YulIdentifier","src":"92208:3:65"},"nativeSrc":"92208:14:65","nodeType":"YulFunctionCall","src":"92208:14:65"},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","kind":"string","nativeSrc":"92224:22:65","nodeType":"YulLiteral","src":"92224:22:65","type":"","value":"toUint64_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"92201:6:65","nodeType":"YulIdentifier","src":"92201:6:65"},"nativeSrc":"92201:46:65","nodeType":"YulFunctionCall","src":"92201:46:65"},"nativeSrc":"92201:46:65","nodeType":"YulExpressionStatement","src":"92201:46:65"}]},"name":"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","nativeSrc":"92084:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"92182:6:65","nodeType":"YulTypedName","src":"92182:6:65","type":""}],"src":"92084:170:65"},{"body":{"nativeSrc":"92406:220:65","nodeType":"YulBlock","src":"92406:220:65","statements":[{"nativeSrc":"92416:74:65","nodeType":"YulAssignment","src":"92416:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"92482:3:65","nodeType":"YulIdentifier","src":"92482:3:65"},{"kind":"number","nativeSrc":"92487:2:65","nodeType":"YulLiteral","src":"92487:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"92423:58:65","nodeType":"YulIdentifier","src":"92423:58:65"},"nativeSrc":"92423:67:65","nodeType":"YulFunctionCall","src":"92423:67:65"},"variableNames":[{"name":"pos","nativeSrc":"92416:3:65","nodeType":"YulIdentifier","src":"92416:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"92588:3:65","nodeType":"YulIdentifier","src":"92588:3:65"}],"functionName":{"name":"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","nativeSrc":"92499:88:65","nodeType":"YulIdentifier","src":"92499:88:65"},"nativeSrc":"92499:93:65","nodeType":"YulFunctionCall","src":"92499:93:65"},"nativeSrc":"92499:93:65","nodeType":"YulExpressionStatement","src":"92499:93:65"},{"nativeSrc":"92601:19:65","nodeType":"YulAssignment","src":"92601:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"92612:3:65","nodeType":"YulIdentifier","src":"92612:3:65"},{"kind":"number","nativeSrc":"92617:2:65","nodeType":"YulLiteral","src":"92617:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"92608:3:65","nodeType":"YulIdentifier","src":"92608:3:65"},"nativeSrc":"92608:12:65","nodeType":"YulFunctionCall","src":"92608:12:65"},"variableNames":[{"name":"end","nativeSrc":"92601:3:65","nodeType":"YulIdentifier","src":"92601:3:65"}]}]},"name":"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack","nativeSrc":"92260:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"92394:3:65","nodeType":"YulTypedName","src":"92394:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"92402:3:65","nodeType":"YulTypedName","src":"92402:3:65","type":""}],"src":"92260:366:65"},{"body":{"nativeSrc":"92803:248:65","nodeType":"YulBlock","src":"92803:248:65","statements":[{"nativeSrc":"92813:26:65","nodeType":"YulAssignment","src":"92813:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"92825:9:65","nodeType":"YulIdentifier","src":"92825:9:65"},{"kind":"number","nativeSrc":"92836:2:65","nodeType":"YulLiteral","src":"92836:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"92821:3:65","nodeType":"YulIdentifier","src":"92821:3:65"},"nativeSrc":"92821:18:65","nodeType":"YulFunctionCall","src":"92821:18:65"},"variableNames":[{"name":"tail","nativeSrc":"92813:4:65","nodeType":"YulIdentifier","src":"92813:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"92860:9:65","nodeType":"YulIdentifier","src":"92860:9:65"},{"kind":"number","nativeSrc":"92871:1:65","nodeType":"YulLiteral","src":"92871:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"92856:3:65","nodeType":"YulIdentifier","src":"92856:3:65"},"nativeSrc":"92856:17:65","nodeType":"YulFunctionCall","src":"92856:17:65"},{"arguments":[{"name":"tail","nativeSrc":"92879:4:65","nodeType":"YulIdentifier","src":"92879:4:65"},{"name":"headStart","nativeSrc":"92885:9:65","nodeType":"YulIdentifier","src":"92885:9:65"}],"functionName":{"name":"sub","nativeSrc":"92875:3:65","nodeType":"YulIdentifier","src":"92875:3:65"},"nativeSrc":"92875:20:65","nodeType":"YulFunctionCall","src":"92875:20:65"}],"functionName":{"name":"mstore","nativeSrc":"92849:6:65","nodeType":"YulIdentifier","src":"92849:6:65"},"nativeSrc":"92849:47:65","nodeType":"YulFunctionCall","src":"92849:47:65"},"nativeSrc":"92849:47:65","nodeType":"YulExpressionStatement","src":"92849:47:65"},{"nativeSrc":"92905:139:65","nodeType":"YulAssignment","src":"92905:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"93039:4:65","nodeType":"YulIdentifier","src":"93039:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack","nativeSrc":"92913:124:65","nodeType":"YulIdentifier","src":"92913:124:65"},"nativeSrc":"92913:131:65","nodeType":"YulFunctionCall","src":"92913:131:65"},"variableNames":[{"name":"tail","nativeSrc":"92905:4:65","nodeType":"YulIdentifier","src":"92905:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"92632:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"92783:9:65","nodeType":"YulTypedName","src":"92783:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"92798:4:65","nodeType":"YulTypedName","src":"92798:4:65","type":""}],"src":"92632:419:65"},{"body":{"nativeSrc":"93163:65:65","nodeType":"YulBlock","src":"93163:65:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"93185:6:65","nodeType":"YulIdentifier","src":"93185:6:65"},{"kind":"number","nativeSrc":"93193:1:65","nodeType":"YulLiteral","src":"93193:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"93181:3:65","nodeType":"YulIdentifier","src":"93181:3:65"},"nativeSrc":"93181:14:65","nodeType":"YulFunctionCall","src":"93181:14:65"},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","kind":"string","nativeSrc":"93197:23:65","nodeType":"YulLiteral","src":"93197:23:65","type":"","value":"toBytes32_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"93174:6:65","nodeType":"YulIdentifier","src":"93174:6:65"},"nativeSrc":"93174:47:65","nodeType":"YulFunctionCall","src":"93174:47:65"},"nativeSrc":"93174:47:65","nodeType":"YulExpressionStatement","src":"93174:47:65"}]},"name":"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","nativeSrc":"93057:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"93155:6:65","nodeType":"YulTypedName","src":"93155:6:65","type":""}],"src":"93057:171:65"},{"body":{"nativeSrc":"93380:220:65","nodeType":"YulBlock","src":"93380:220:65","statements":[{"nativeSrc":"93390:74:65","nodeType":"YulAssignment","src":"93390:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"93456:3:65","nodeType":"YulIdentifier","src":"93456:3:65"},{"kind":"number","nativeSrc":"93461:2:65","nodeType":"YulLiteral","src":"93461:2:65","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"93397:58:65","nodeType":"YulIdentifier","src":"93397:58:65"},"nativeSrc":"93397:67:65","nodeType":"YulFunctionCall","src":"93397:67:65"},"variableNames":[{"name":"pos","nativeSrc":"93390:3:65","nodeType":"YulIdentifier","src":"93390:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"93562:3:65","nodeType":"YulIdentifier","src":"93562:3:65"}],"functionName":{"name":"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","nativeSrc":"93473:88:65","nodeType":"YulIdentifier","src":"93473:88:65"},"nativeSrc":"93473:93:65","nodeType":"YulFunctionCall","src":"93473:93:65"},"nativeSrc":"93473:93:65","nodeType":"YulExpressionStatement","src":"93473:93:65"},{"nativeSrc":"93575:19:65","nodeType":"YulAssignment","src":"93575:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"93586:3:65","nodeType":"YulIdentifier","src":"93586:3:65"},{"kind":"number","nativeSrc":"93591:2:65","nodeType":"YulLiteral","src":"93591:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"93582:3:65","nodeType":"YulIdentifier","src":"93582:3:65"},"nativeSrc":"93582:12:65","nodeType":"YulFunctionCall","src":"93582:12:65"},"variableNames":[{"name":"end","nativeSrc":"93575:3:65","nodeType":"YulIdentifier","src":"93575:3:65"}]}]},"name":"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack","nativeSrc":"93234:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"93368:3:65","nodeType":"YulTypedName","src":"93368:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"93376:3:65","nodeType":"YulTypedName","src":"93376:3:65","type":""}],"src":"93234:366:65"},{"body":{"nativeSrc":"93777:248:65","nodeType":"YulBlock","src":"93777:248:65","statements":[{"nativeSrc":"93787:26:65","nodeType":"YulAssignment","src":"93787:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"93799:9:65","nodeType":"YulIdentifier","src":"93799:9:65"},{"kind":"number","nativeSrc":"93810:2:65","nodeType":"YulLiteral","src":"93810:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"93795:3:65","nodeType":"YulIdentifier","src":"93795:3:65"},"nativeSrc":"93795:18:65","nodeType":"YulFunctionCall","src":"93795:18:65"},"variableNames":[{"name":"tail","nativeSrc":"93787:4:65","nodeType":"YulIdentifier","src":"93787:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"93834:9:65","nodeType":"YulIdentifier","src":"93834:9:65"},{"kind":"number","nativeSrc":"93845:1:65","nodeType":"YulLiteral","src":"93845:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"93830:3:65","nodeType":"YulIdentifier","src":"93830:3:65"},"nativeSrc":"93830:17:65","nodeType":"YulFunctionCall","src":"93830:17:65"},{"arguments":[{"name":"tail","nativeSrc":"93853:4:65","nodeType":"YulIdentifier","src":"93853:4:65"},{"name":"headStart","nativeSrc":"93859:9:65","nodeType":"YulIdentifier","src":"93859:9:65"}],"functionName":{"name":"sub","nativeSrc":"93849:3:65","nodeType":"YulIdentifier","src":"93849:3:65"},"nativeSrc":"93849:20:65","nodeType":"YulFunctionCall","src":"93849:20:65"}],"functionName":{"name":"mstore","nativeSrc":"93823:6:65","nodeType":"YulIdentifier","src":"93823:6:65"},"nativeSrc":"93823:47:65","nodeType":"YulFunctionCall","src":"93823:47:65"},"nativeSrc":"93823:47:65","nodeType":"YulExpressionStatement","src":"93823:47:65"},{"nativeSrc":"93879:139:65","nodeType":"YulAssignment","src":"93879:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"94013:4:65","nodeType":"YulIdentifier","src":"94013:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack","nativeSrc":"93887:124:65","nodeType":"YulIdentifier","src":"93887:124:65"},"nativeSrc":"93887:131:65","nodeType":"YulFunctionCall","src":"93887:131:65"},"variableNames":[{"name":"tail","nativeSrc":"93879:4:65","nodeType":"YulIdentifier","src":"93879:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"93606:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"93757:9:65","nodeType":"YulTypedName","src":"93757:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"93772:4:65","nodeType":"YulTypedName","src":"93772:4:65","type":""}],"src":"93606:419:65"},{"body":{"nativeSrc":"94137:73:65","nodeType":"YulBlock","src":"94137:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"94159:6:65","nodeType":"YulIdentifier","src":"94159:6:65"},{"kind":"number","nativeSrc":"94167:1:65","nodeType":"YulLiteral","src":"94167:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"94155:3:65","nodeType":"YulIdentifier","src":"94155:3:65"},"nativeSrc":"94155:14:65","nodeType":"YulFunctionCall","src":"94155:14:65"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"94171:31:65","nodeType":"YulLiteral","src":"94171:31:65","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"94148:6:65","nodeType":"YulIdentifier","src":"94148:6:65"},"nativeSrc":"94148:55:65","nodeType":"YulFunctionCall","src":"94148:55:65"},"nativeSrc":"94148:55:65","nodeType":"YulExpressionStatement","src":"94148:55:65"}]},"name":"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","nativeSrc":"94031:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"94129:6:65","nodeType":"YulTypedName","src":"94129:6:65","type":""}],"src":"94031:179:65"},{"body":{"nativeSrc":"94362:220:65","nodeType":"YulBlock","src":"94362:220:65","statements":[{"nativeSrc":"94372:74:65","nodeType":"YulAssignment","src":"94372:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"94438:3:65","nodeType":"YulIdentifier","src":"94438:3:65"},{"kind":"number","nativeSrc":"94443:2:65","nodeType":"YulLiteral","src":"94443:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"94379:58:65","nodeType":"YulIdentifier","src":"94379:58:65"},"nativeSrc":"94379:67:65","nodeType":"YulFunctionCall","src":"94379:67:65"},"variableNames":[{"name":"pos","nativeSrc":"94372:3:65","nodeType":"YulIdentifier","src":"94372:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"94544:3:65","nodeType":"YulIdentifier","src":"94544:3:65"}],"functionName":{"name":"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","nativeSrc":"94455:88:65","nodeType":"YulIdentifier","src":"94455:88:65"},"nativeSrc":"94455:93:65","nodeType":"YulFunctionCall","src":"94455:93:65"},"nativeSrc":"94455:93:65","nodeType":"YulExpressionStatement","src":"94455:93:65"},{"nativeSrc":"94557:19:65","nodeType":"YulAssignment","src":"94557:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"94568:3:65","nodeType":"YulIdentifier","src":"94568:3:65"},{"kind":"number","nativeSrc":"94573:2:65","nodeType":"YulLiteral","src":"94573:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"94564:3:65","nodeType":"YulIdentifier","src":"94564:3:65"},"nativeSrc":"94564:12:65","nodeType":"YulFunctionCall","src":"94564:12:65"},"variableNames":[{"name":"end","nativeSrc":"94557:3:65","nodeType":"YulIdentifier","src":"94557:3:65"}]}]},"name":"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack","nativeSrc":"94216:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"94350:3:65","nodeType":"YulTypedName","src":"94350:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"94358:3:65","nodeType":"YulTypedName","src":"94358:3:65","type":""}],"src":"94216:366:65"},{"body":{"nativeSrc":"94759:248:65","nodeType":"YulBlock","src":"94759:248:65","statements":[{"nativeSrc":"94769:26:65","nodeType":"YulAssignment","src":"94769:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"94781:9:65","nodeType":"YulIdentifier","src":"94781:9:65"},{"kind":"number","nativeSrc":"94792:2:65","nodeType":"YulLiteral","src":"94792:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"94777:3:65","nodeType":"YulIdentifier","src":"94777:3:65"},"nativeSrc":"94777:18:65","nodeType":"YulFunctionCall","src":"94777:18:65"},"variableNames":[{"name":"tail","nativeSrc":"94769:4:65","nodeType":"YulIdentifier","src":"94769:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"94816:9:65","nodeType":"YulIdentifier","src":"94816:9:65"},{"kind":"number","nativeSrc":"94827:1:65","nodeType":"YulLiteral","src":"94827:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"94812:3:65","nodeType":"YulIdentifier","src":"94812:3:65"},"nativeSrc":"94812:17:65","nodeType":"YulFunctionCall","src":"94812:17:65"},{"arguments":[{"name":"tail","nativeSrc":"94835:4:65","nodeType":"YulIdentifier","src":"94835:4:65"},{"name":"headStart","nativeSrc":"94841:9:65","nodeType":"YulIdentifier","src":"94841:9:65"}],"functionName":{"name":"sub","nativeSrc":"94831:3:65","nodeType":"YulIdentifier","src":"94831:3:65"},"nativeSrc":"94831:20:65","nodeType":"YulFunctionCall","src":"94831:20:65"}],"functionName":{"name":"mstore","nativeSrc":"94805:6:65","nodeType":"YulIdentifier","src":"94805:6:65"},"nativeSrc":"94805:47:65","nodeType":"YulFunctionCall","src":"94805:47:65"},"nativeSrc":"94805:47:65","nodeType":"YulExpressionStatement","src":"94805:47:65"},{"nativeSrc":"94861:139:65","nodeType":"YulAssignment","src":"94861:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"94995:4:65","nodeType":"YulIdentifier","src":"94995:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack","nativeSrc":"94869:124:65","nodeType":"YulIdentifier","src":"94869:124:65"},"nativeSrc":"94869:131:65","nodeType":"YulFunctionCall","src":"94869:131:65"},"variableNames":[{"name":"tail","nativeSrc":"94861:4:65","nodeType":"YulIdentifier","src":"94861:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"94588:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"94739:9:65","nodeType":"YulTypedName","src":"94739:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"94754:4:65","nodeType":"YulTypedName","src":"94754:4:65","type":""}],"src":"94588:419:65"},{"body":{"nativeSrc":"95072:40:65","nodeType":"YulBlock","src":"95072:40:65","statements":[{"nativeSrc":"95083:22:65","nodeType":"YulAssignment","src":"95083:22:65","value":{"arguments":[{"name":"value","nativeSrc":"95099:5:65","nodeType":"YulIdentifier","src":"95099:5:65"}],"functionName":{"name":"mload","nativeSrc":"95093:5:65","nodeType":"YulIdentifier","src":"95093:5:65"},"nativeSrc":"95093:12:65","nodeType":"YulFunctionCall","src":"95093:12:65"},"variableNames":[{"name":"length","nativeSrc":"95083:6:65","nodeType":"YulIdentifier","src":"95083:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"95013:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"95055:5:65","nodeType":"YulTypedName","src":"95055:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"95065:6:65","nodeType":"YulTypedName","src":"95065:6:65","type":""}],"src":"95013:99:65"},{"body":{"nativeSrc":"95210:285:65","nodeType":"YulBlock","src":"95210:285:65","statements":[{"nativeSrc":"95220:53:65","nodeType":"YulVariableDeclaration","src":"95220:53:65","value":{"arguments":[{"name":"value","nativeSrc":"95267:5:65","nodeType":"YulIdentifier","src":"95267:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"95234:32:65","nodeType":"YulIdentifier","src":"95234:32:65"},"nativeSrc":"95234:39:65","nodeType":"YulFunctionCall","src":"95234:39:65"},"variables":[{"name":"length","nativeSrc":"95224:6:65","nodeType":"YulTypedName","src":"95224:6:65","type":""}]},{"nativeSrc":"95282:78:65","nodeType":"YulAssignment","src":"95282:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"95348:3:65","nodeType":"YulIdentifier","src":"95348:3:65"},{"name":"length","nativeSrc":"95353:6:65","nodeType":"YulIdentifier","src":"95353:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"95289:58:65","nodeType":"YulIdentifier","src":"95289:58:65"},"nativeSrc":"95289:71:65","nodeType":"YulFunctionCall","src":"95289:71:65"},"variableNames":[{"name":"pos","nativeSrc":"95282:3:65","nodeType":"YulIdentifier","src":"95282:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"95408:5:65","nodeType":"YulIdentifier","src":"95408:5:65"},{"kind":"number","nativeSrc":"95415:4:65","nodeType":"YulLiteral","src":"95415:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"95404:3:65","nodeType":"YulIdentifier","src":"95404:3:65"},"nativeSrc":"95404:16:65","nodeType":"YulFunctionCall","src":"95404:16:65"},{"name":"pos","nativeSrc":"95422:3:65","nodeType":"YulIdentifier","src":"95422:3:65"},{"name":"length","nativeSrc":"95427:6:65","nodeType":"YulIdentifier","src":"95427:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"95369:34:65","nodeType":"YulIdentifier","src":"95369:34:65"},"nativeSrc":"95369:65:65","nodeType":"YulFunctionCall","src":"95369:65:65"},"nativeSrc":"95369:65:65","nodeType":"YulExpressionStatement","src":"95369:65:65"},{"nativeSrc":"95443:46:65","nodeType":"YulAssignment","src":"95443:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"95454:3:65","nodeType":"YulIdentifier","src":"95454:3:65"},{"arguments":[{"name":"length","nativeSrc":"95481:6:65","nodeType":"YulIdentifier","src":"95481:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"95459:21:65","nodeType":"YulIdentifier","src":"95459:21:65"},"nativeSrc":"95459:29:65","nodeType":"YulFunctionCall","src":"95459:29:65"}],"functionName":{"name":"add","nativeSrc":"95450:3:65","nodeType":"YulIdentifier","src":"95450:3:65"},"nativeSrc":"95450:39:65","nodeType":"YulFunctionCall","src":"95450:39:65"},"variableNames":[{"name":"end","nativeSrc":"95443:3:65","nodeType":"YulIdentifier","src":"95443:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"95118:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"95191:5:65","nodeType":"YulTypedName","src":"95191:5:65","type":""},{"name":"pos","nativeSrc":"95198:3:65","nodeType":"YulTypedName","src":"95198:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"95206:3:65","nodeType":"YulTypedName","src":"95206:3:65","type":""}],"src":"95118:377:65"},{"body":{"nativeSrc":"95619:195:65","nodeType":"YulBlock","src":"95619:195:65","statements":[{"nativeSrc":"95629:26:65","nodeType":"YulAssignment","src":"95629:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"95641:9:65","nodeType":"YulIdentifier","src":"95641:9:65"},{"kind":"number","nativeSrc":"95652:2:65","nodeType":"YulLiteral","src":"95652:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"95637:3:65","nodeType":"YulIdentifier","src":"95637:3:65"},"nativeSrc":"95637:18:65","nodeType":"YulFunctionCall","src":"95637:18:65"},"variableNames":[{"name":"tail","nativeSrc":"95629:4:65","nodeType":"YulIdentifier","src":"95629:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"95676:9:65","nodeType":"YulIdentifier","src":"95676:9:65"},{"kind":"number","nativeSrc":"95687:1:65","nodeType":"YulLiteral","src":"95687:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"95672:3:65","nodeType":"YulIdentifier","src":"95672:3:65"},"nativeSrc":"95672:17:65","nodeType":"YulFunctionCall","src":"95672:17:65"},{"arguments":[{"name":"tail","nativeSrc":"95695:4:65","nodeType":"YulIdentifier","src":"95695:4:65"},{"name":"headStart","nativeSrc":"95701:9:65","nodeType":"YulIdentifier","src":"95701:9:65"}],"functionName":{"name":"sub","nativeSrc":"95691:3:65","nodeType":"YulIdentifier","src":"95691:3:65"},"nativeSrc":"95691:20:65","nodeType":"YulFunctionCall","src":"95691:20:65"}],"functionName":{"name":"mstore","nativeSrc":"95665:6:65","nodeType":"YulIdentifier","src":"95665:6:65"},"nativeSrc":"95665:47:65","nodeType":"YulFunctionCall","src":"95665:47:65"},"nativeSrc":"95665:47:65","nodeType":"YulExpressionStatement","src":"95665:47:65"},{"nativeSrc":"95721:86:65","nodeType":"YulAssignment","src":"95721:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"95793:6:65","nodeType":"YulIdentifier","src":"95793:6:65"},{"name":"tail","nativeSrc":"95802:4:65","nodeType":"YulIdentifier","src":"95802:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"95729:63:65","nodeType":"YulIdentifier","src":"95729:63:65"},"nativeSrc":"95729:78:65","nodeType":"YulFunctionCall","src":"95729:78:65"},"variableNames":[{"name":"tail","nativeSrc":"95721:4:65","nodeType":"YulIdentifier","src":"95721:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"95501:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"95591:9:65","nodeType":"YulTypedName","src":"95591:9:65","type":""},{"name":"value0","nativeSrc":"95603:6:65","nodeType":"YulTypedName","src":"95603:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"95614:4:65","nodeType":"YulTypedName","src":"95614:4:65","type":""}],"src":"95501:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function cleanup_t_uint64(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffff)\n    }\n\n    function validator_revert_t_uint64(value) {\n        if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint64(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint64(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes4(value) -> cleaned {\n        cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n    }\n\n    function validator_revert_t_bytes4(value) {\n        if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes4(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes4(value)\n    }\n\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 224)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value6,  add(headStart, 192))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_contract$_IERC20_$6261(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IERC20_$6261(value) {\n        if iszero(eq(value, cleanup_t_contract$_IERC20_$6261(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IERC20_$6261(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IERC20_$6261(value)\n    }\n\n    function abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_IERC20_$6261(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() {\n        revert(0, 0)\n    }\n\n    // struct ICommonOFT.LzCallParams\n    function abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(offset, end) -> value {\n        if slt(sub(end, offset), 96) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n        value := offset\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4 := abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7 := abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$8694_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$8694_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7, value8 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 256) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7, value8 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value9 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid endpoint caller\")\n\n    }\n\n    function abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid source sending co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily limit < single transaction\")\n\n        mstore(add(memPtr, 32), \" limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n    }\n\n    function store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972(memPtr) {\n\n        mstore(add(memPtr, 0), \"Single transaction limit > Daily\")\n\n        mstore(add(memPtr, 32), \" limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: caller must be\")\n\n        mstore(add(memPtr, 32), \" LzApp\")\n\n    }\n\n    function abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n        revert(0, 0)\n    }\n\n    function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n        revert(0, 0)\n    }\n\n    function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n        revert(0, 0)\n    }\n\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n        addr := add(base_ref, rel_offset_of_tail)\n\n        length := calldataload(addr)\n        if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n        addr := add(addr, 32)\n        if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n    }\n\n    function store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily limit < single receive tra\")\n\n        mstore(add(memPtr, 32), \"nsaction limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef(memPtr) {\n\n        mstore(add(memPtr, 0), \"sendAndCall is disabled\")\n\n    }\n\n    function abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint64(value))\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: no trusted path record\")\n\n    }\n\n    function abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function array_dataslot_t_bytes_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_bytes_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n        let newLen := array_length_t_bytes_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value3, value4,  tail)\n\n    }\n\n    function store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc(memPtr) {\n\n        mstore(add(memPtr, 0), \"single receive transaction limit\")\n\n        mstore(add(memPtr, 32), \" > Daily limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: caller must be OFTCore\")\n\n    }\n\n    function abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value4,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 128))\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value6, value7,  tail)\n\n    }\n\n    function array_length_t_bytes_calldata_ptr(value, len) -> length {\n\n        length := len\n\n    }\n\n    function copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage(slot, src, len) {\n\n        let newLen := array_length_t_bytes_calldata_ptr(src, len)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := calldataload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3,  tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value3,  add(headStart, 96))\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4,  tail)\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: unknown packet type\")\n\n    }\n\n    function abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: amount too small\")\n\n    }\n\n    function abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n        store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e(memPtr) {\n\n        mstore(add(memPtr, 0), \"slice_overflow\")\n\n    }\n\n    function abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0(memPtr) {\n\n        mstore(add(memPtr, 0), \"slice_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: no stored mess\")\n\n        mstore(add(memPtr, 32), \"age\")\n\n    }\n\n    function abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: invalid payloa\")\n\n        mstore(add(memPtr, 32), \"d\")\n\n    }\n\n    function abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n        store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value4,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3,  tail)\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4,  tail)\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: amountSD overflow\")\n\n    }\n\n    function abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_left_248(value) -> newValue {\n        newValue :=\n\n        shl(248, value)\n\n    }\n\n    function leftAlign_t_uint8(value) -> aligned {\n        aligned := shift_left_248(value)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint8(cleanup_t_uint8(value)))\n    }\n\n    function leftAlign_t_bytes32(value) -> aligned {\n        aligned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n    }\n\n    function shift_left_192(value) -> newValue {\n        newValue :=\n\n        shl(192, value)\n\n    }\n\n    function leftAlign_t_uint64(value) -> aligned {\n        aligned := shift_left_192(value)\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint64(cleanup_t_uint64(value)))\n    }\n\n    function abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n        abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 8)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n        mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n        mstore(add(memPtr, 32), \"ot succeed\")\n\n    }\n\n    function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n        store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1(memPtr) {\n\n        mstore(add(memPtr, 0), \"toUint8_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 256)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        mstore(add(headStart, 192), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value6,  tail)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value7,  add(headStart, 224))\n\n    }\n\n    function abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: minGasLimit not set\")\n\n    }\n\n    function abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: gas limit is too low\")\n\n    }\n\n    function abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n        store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function mod_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n\n    function store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: owner is not send call\")\n\n        mstore(add(memPtr, 32), \"er\")\n\n    }\n\n    function abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: destination chain is not \")\n\n        mstore(add(memPtr, 32), \"a trusted source\")\n\n    }\n\n    function abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n        store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address_payable(value))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n        abi_encode_t_address_payable_to_t_address_payable_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value5,  tail)\n\n    }\n\n    function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 8)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 8)\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value5,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: invalid payload\")\n\n    }\n\n    function abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n        store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid adapterParams\")\n\n    }\n\n    function abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756(memPtr) {\n\n        mstore(add(memPtr, 0), \"Single Transaction Limit Exceed\")\n\n    }\n\n    function abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily Transaction Limit Exceed\")\n\n    }\n\n    function abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: payload size is too large\")\n\n    }\n\n    function abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n        mstore(add(memPtr, 32), \"r call\")\n\n    }\n\n    function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d(memPtr) {\n\n        mstore(add(memPtr, 0), \"toAddress_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145(memPtr) {\n\n        mstore(add(memPtr, 0), \"toUint64_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2(memPtr) {\n\n        mstore(add(memPtr, 0), \"toBytes32_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"451":[{"length":32,"start":2698},{"length":32,"start":3265},{"length":32,"start":3802},{"length":32,"start":3970},{"length":32,"start":4975},{"length":32,"start":7377},{"length":32,"start":8423},{"length":32,"start":8804},{"length":32,"start":9900},{"length":32,"start":12992}],"3153":[{"length":32,"start":2177}],"9377":[{"length":32,"start":3181},{"length":32,"start":4113},{"length":32,"start":6627},{"length":32,"start":10494},{"length":32,"start":10643},{"length":32,"start":10700},{"length":32,"start":10765},{"length":32,"start":12654},{"length":32,"start":13662},{"length":32,"start":14057},{"length":32,"start":14829}],"9379":[{"length":32,"start":11367},{"length":32,"start":12514},{"length":32,"start":13572}]},"linkReferences":{},"object":"6080604052600436106103b75760003560e01c80637dc0d1d0116101f2578063baf3292d1161010d578063df2a5b3b116100a0578063f2fde38b1161006f578063f2fde38b14610c1e578063f5ecbdbc14610c3e578063fc0c546a14610c5e578063fdff235b14610c9157600080fd5b8063df2a5b3b14610ba9578063e6a20ae614610bc9578063eaffd49a14610bde578063eb8d72b714610bfe57600080fd5b8063cc01e9b6116100dc578063cc01e9b614610b1c578063cc7015ae14610b3c578063d1deba1f14610b69578063d708a46814610b7c57600080fd5b8063baf3292d14610aac578063c1e9132e14610acc578063c446183414610ae6578063cbed8b9c14610afc57600080fd5b806393a61d6c116101855780639f38369a116101545780639f38369a14610a18578063a4c51df514610a38578063a6c3d16514610a58578063b353aaa714610a7857600080fd5b806393a61d6c14610949578063950c8a74146109765780639b19251a146109965780639bdb9812146109c657600080fd5b80638cfd8f5c116101c15780638cfd8f5c146108a35780638da5cb5b146108db57806390436567146109075780639358928b1461093457600080fd5b80637dc0d1d0146108085780638456cb591461083a57806384e69c691461084f578063857749b01461086f57600080fd5b80634c42899a116102e257806364aff9ec11610275578063715018a611610244578063715018a61461079c5780637533d788146107a857806376203b48146107d55780637adbf973146107e857600080fd5b806364aff9ec1461072957806366ad5c8a14610749578063695ef6bf1461076957806369c1e7b81461077c57600080fd5b806353489d6c116102b157806353489d6c1461068257806353d6fd59146106a25780635b8c41e6146106c25780635c975abb1461071157600080fd5b80634c42899a146105e65780634cec6256146106085780634ed2c662146106355780634f4ba0f41461065557600080fd5b80632dbbec081161035a5780633f1f4fa4116103295780633f1f4fa41461056f5780633f4ba83a1461059c57806342d65a8d146105b157806344770515146105d157600080fd5b80632dbbec08146104c7578063365260b4146104e75780633c4ec39b146105155780633d8b38f61461054f57600080fd5b80630df37483116103965780630df374831461043457806310ddb13714610454578063182b4b89146104745780632488eec8146104a757600080fd5b80621d3567146103bc57806301ffc9a7146103de57806307e0db1714610414575b600080fd5b3480156103c857600080fd5b506103dc6103d7366004613cbc565b610cbe565b005b3480156103ea57600080fd5b506103fe6103f9366004613d77565b610e84565b60405161040b9190613da2565b60405180910390f35b34801561042057600080fd5b506103dc61042f366004613db0565b610ebb565b34801561044057600080fd5b506103dc61044f366004613de2565b610f44565b34801561046057600080fd5b506103dc61046f366004613db0565b610f63565b34801561048057600080fd5b5061049461048f366004613e44565b610fb7565b60405161040b9796959493929190613e9a565b3480156104b357600080fd5b506103dc6104c2366004613de2565b61111c565b3480156104d357600080fd5b506103dc6104e2366004613db0565b6111be565b3480156104f357600080fd5b50610507610502366004613f15565b61121c565b60405161040b929190613f8f565b34801561052157600080fd5b50610542610530366004613db0565b600d6020526000908152604090205481565b60405161040b9190613faa565b34801561055b57600080fd5b506103fe61056a366004613fb8565b611271565b34801561057b57600080fd5b5061054261058a366004613db0565b60036020526000908152604090205481565b3480156105a857600080fd5b506103dc61133e565b3480156105bd57600080fd5b506103dc6105cc366004613fb8565b611350565b3480156105dd57600080fd5b50610542600081565b3480156105f257600080fd5b506105fb600081565b60405161040b919061401c565b34801561061457600080fd5b50610542610623366004613db0565b600a6020526000908152604090205481565b34801561064157600080fd5b506103dc61065036600461402a565b6113d6565b34801561066157600080fd5b50610542610670366004613db0565b60096020526000908152604090205481565b34801561068e57600080fd5b506103dc61069d366004613de2565b61141b565b3480156106ae57600080fd5b506103dc6106bd36600461404b565b6114bd565b3480156106ce57600080fd5b506105426106dd366004614177565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561071d57600080fd5b5060005460ff166103fe565b34801561073557600080fd5b506103dc6107443660046141f6565b611531565b34801561075557600080fd5b506103dc610764366004613cbc565b611635565b6103dc610777366004614246565b6116d2565b34801561078857600080fd5b506103dc610797366004613de2565b61173d565b3480156103dc57600080fd5b3480156107b457600080fd5b506107c86107c3366004613db0565b6117df565b60405161040b9190614330565b6103dc6107e3366004614341565b611879565b3480156107f457600080fd5b506103dc610803366004614418565b6118b5565b34801561081457600080fd5b5060075461082d9061010090046001600160a01b031681565b60405161040b919061447b565b34801561084657600080fd5b506103dc61192d565b34801561085b57600080fd5b506103dc61086a366004614177565b61193d565b34801561087b57600080fd5b506105fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108af57600080fd5b506105426108be366004614489565b600260209081526000928352604080842090915290825290205481565b3480156108e757600080fd5b5060005461010090046001600160a01b03165b60405161040b91906144c5565b34801561091357600080fd5b50610542610922366004613db0565b600c6020526000908152604090205481565b34801561094057600080fd5b506105426119df565b34801561095557600080fd5b50610542610964366004613db0565b600b6020526000908152604090205481565b34801561098257600080fd5b506004546108fa906001600160a01b031681565b3480156109a257600080fd5b506103fe6109b1366004614418565b60106020526000908152604090205460ff1681565b3480156109d257600080fd5b506103fe6109e1366004614177565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b348015610a2457600080fd5b506107c8610a33366004613db0565b611a68565b348015610a4457600080fd5b50610507610a533660046144d3565b611b47565b348015610a6457600080fd5b506103dc610a73366004613fb8565b611bd6565b348015610a8457600080fd5b5061082d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610ab857600080fd5b506103dc610ac7366004614418565b611c5f565b348015610ad857600080fd5b506007546103fe9060ff1681565b348015610af257600080fd5b5061054261271081565b348015610b0857600080fd5b506103dc610b173660046145ae565b611cb2565b348015610b2857600080fd5b506103dc610b37366004613de2565b611d47565b348015610b4857600080fd5b50610542610b57366004613db0565b60086020526000908152604090205481565b6103dc610b77366004613cbc565b611de9565b348015610b8857600080fd5b50610542610b97366004613db0565b600e6020526000908152604090205481565b348015610bb557600080fd5b506103dc610bc4366004614631565b611eed565b348015610bd557600080fd5b506105fb600181565b348015610bea57600080fd5b506103dc610bf9366004614655565b611f4c565b348015610c0a57600080fd5b506103dc610c19366004613fb8565b612039565b348015610c2a57600080fd5b506103dc610c39366004614418565b612093565b348015610c4a57600080fd5b506107c8610c59366004614745565b6120cd565b348015610c6a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006108fa565b348015610c9d57600080fd5b50610542610cac366004613db0565b600f6020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d0f5760405162461bcd60e51b8152600401610d06906147e0565b60405180910390fd5b61ffff861660009081526001602052604081208054610d2d90614806565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5990614806565b8015610da65780601f10610d7b57610100808354040283529160200191610da6565b820191906000526020600020905b815481529060010190602001808311610d8957829003601f168201915b50505050509050805186869050148015610dc1575060008151115b8015610de9575080516020820120604051610ddf908890889061483f565b6040518091039020145b610e055760405162461bcd60e51b8152600401610d0690614892565b610e7b8787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061217292505050565b50505050505050565b60006001600160e01b03198216631f7ecdf760e01b1480610eb557506301ffc9a760e01b6001600160e01b03198316145b92915050565b610ec36121eb565b6040516307e0db1760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307e0db1790610f0f9084906004016148ac565b600060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050505050565b610f4c6121eb565b61ffff909116600090815260036020526040902055565b610f6b6121eb565b6040516310ddb13760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906310ddb13790610f0f9084906004016148ac565b6001600160a01b038381166000908152601060209081526040808320548151928301918290526007546341976e0960e01b90925292938493849384938493849360ff16928492909182916101009004166341976e096110397f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa158015611056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107a91906148c5565b90529050611088818a61221b565b61ffff8b166000908152600b6020908152604080832054600a835281842054600884528285205460099094529190932054919a50909850919650909450925042620151806110d685836148fc565b11156110e7578594508093506110f4565b6110f1868661490f565b94505b828061110b575087861115801561110b5750868511155b985050509397509397509397909450565b6111246121eb565b61ffff82166000908152600860205260409020548110156111575760405162461bcd60e51b8152600401610d0690614965565b61ffff8216600090815260096020526040908190205490517f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f6939161119f918591908590614975565b60405180910390a161ffff909116600090815260096020526040902055565b6111c66121eb565b61ffff811660009081526001602052604081206111e291613be7565b7f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd378160405161121191906148ac565b60405180910390a150565b6000806112628888888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061223392505050565b91509150965096945050505050565b61ffff83166000908152600160205260408120805482919061129290614806565b80601f01602080910402602001604051908101604052809291908181526020018280546112be90614806565b801561130b5780601f106112e05761010080835404028352916020019161130b565b820191906000526020600020905b8154815290600101906020018083116112ee57829003601f168201915b50505050509050838360405161132292919061483f565b60405180910390208180519060200120149150505b9392505050565b6113466121eb565b61134e6122f0565b565b6113586121eb565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d906113a8908690869086906004016149c0565b600060405180830381600087803b1580156113c257600080fd5b505af1158015610e7b573d6000803e3d6000fd5b6113de6121eb565b6007805460ff19168215159081179091556040517fe628f01c6f4e6340598d3a2913390db68e8859379eebff349e170f2b16baed0090600090a250565b6114236121eb565b61ffff82166000908152600960205260409020548111156114565760405162461bcd60e51b8152600401610d0690614a24565b61ffff8216600090815260086020526040908190205490517f7babeac42ccbb33537ee421fedc4db7b5f251b5d2a3fa5c0ff4b35b2d783be879161149e918591908590614975565b60405180910390a161ffff909116600090815260086020526040902055565b6114c56121eb565b816001600160a01b03167ff6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb826040516114fe9190613da2565b60405180910390a26001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6115396121eb565b6040516370a0823160e01b81526000906001600160a01b038516906370a08231906115689030906004016144c5565b602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a991906148c5565b9050808211156115d057818160405163cf47918160e01b8152600401610d06929190613f8f565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5846040516116139190613faa565b60405180910390a361162f6001600160a01b038516848461233c565b50505050565b3330146116545760405162461bcd60e51b8152600401610d0690614a77565b6116ca8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061239792505050565b505050505050565b6116ca858585856116e66020870187614418565b6116f66040880160208901614418565b6117036040890189614a87565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123ee92505050565b6117456121eb565b61ffff82166000908152600c60205260409020548110156117785760405162461bcd60e51b8152600401610d0690614b30565b61ffff82166000908152600d6020526040908190205490517f95dc51094cd27cf4ee3fd0dbb50cf96f8df1629c822f5434c4a34d7eb03c9724916117c0918591908590614975565b60405180910390a161ffff9091166000908152600d6020526040902055565b600160205260009081526040902080546117f890614806565b80601f016020809104026020016040519081016040528092919081815260200182805461182490614806565b80156118715780601f1061184657610100808354040283529160200191611871565b820191906000526020600020905b81548152906001019060200180831161185457829003601f168201915b505050505081565b60075460ff1661189b5760405162461bcd60e51b8152600401610d0690614b74565b6118ab88888888888888886124a8565b5050505050505050565b6118bd6121eb565b6118c68161254c565b6007546040516001600160a01b0380841692610100900416907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6119356121eb565b61134e612573565b6119456121eb565b61ffff83166000908152600560205260408082209051611966908590614ba6565b9081526040805191829003602090810183206001600160401b038616600090815291522091909155611999908390614ba6565b60405180910390207f48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee84836040516119d2929190614bc1565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6391906148c5565b905090565b61ffff8116600090815260016020526040812080546060929190611a8b90614806565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab790614806565b8015611b045780601f10611ad957610100808354040283529160200191611b04565b820191906000526020600020905b815481529060010190602001808311611ae757829003601f168201915b505050505090508051600003611b2c5760405162461bcd60e51b8152600401610d0690614c10565b611337600060148351611b3f91906148fc565b8391906125b0565b600080611bc48b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c908190840183828082843760009201919091525061267892505050565b91509150995099975050505050505050565b611bde6121eb565b818130604051602001611bf393929190614c48565b60408051601f1981840301815291815261ffff8516600090815260016020522090611c1e9082614cfd565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611c52939291906149c0565b60405180910390a1505050565b611c676121eb565b600480546001600160a01b0319166001600160a01b0383161790556040517f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906112119083906144c5565b611cba6121eb565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611d0e9088908890889088908890600401614dbf565b600060405180830381600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050505050505050565b611d4f6121eb565b61ffff82166000908152600d6020526040902054811115611d825760405162461bcd60e51b8152600401610d0690614e45565b61ffff82166000908152600c6020526040908190205490517f2c42997a938a029910a78e7c28d762b349c28e70f3a89c1fbccbb1a46020b15991611dca918591908590614975565b60405180910390a161ffff9091166000908152600c6020526040902055565b61ffff861660009081526001602052604081208054611e0790614806565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3390614806565b8015611e805780601f10611e5557610100808354040283529160200191611e80565b820191906000526020600020905b815481529060010190602001808311611e6357829003601f168201915b50505050509050805186869050148015611e9b575060008151115b8015611ec3575080516020820120604051611eb9908890889061483f565b6040518091039020145b611edf5760405162461bcd60e51b8152600401610d0690614892565b610e7b87878787878761273a565b611ef56121eb565b61ffff80841660009081526002602090815260408083209386168352929052819020829055517f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090611c5290859085908590614e55565b333014611f6b5760405162461bcd60e51b8152600401610d0690614ea4565b611f763086866128da565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf86604051611fb69190613faa565b60405180910390a3604051633fe79aed60e11b81526001600160a01b03861690637fcf35da908390611ffa908e908e908e908e908e908d908d908d90600401614eb4565b600060405180830381600088803b15801561201457600080fd5b5087f1158015612028573d6000803e3d6000fd5b505050505050505050505050505050565b6120416121eb565b61ffff8316600090815260016020526040902061205f828483614f1f565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051611c52939291906149c0565b61209b6121eb565b6001600160a01b0381166120c15760405162461bcd60e51b8152600401610d0690615024565b6120ca81612a96565b50565b604051633d7b2f6f60e21b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f5ecbdbc90612122908890889030908890600401615034565b600060405180830381865afa15801561213f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261216791908101906150c1565b90505b949350505050565b6000806121d55a60966366ad5c8a60e01b8989898960405160240161219a94939291906150fb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612aef565b91509150816116ca576116ca8686868685612b79565b6000546001600160a01b0361010090910416331461134e5760405162461bcd60e51b8152600401610d0690615178565b6000806122288484612c16565b905061216a81612c47565b600080600061224a8761224588612c5f565b612cb5565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906122a1908b90309086908b908b90600401615188565b6040805180830381865afa1580156122bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e191906151d6565b92509250509550959350505050565b6122f8612ce4565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161233291906144c5565b60405180910390a1565b6123928363a9059cbb60e01b848460405160240161235b929190615209565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612d06565b505050565b60006123a38282612d98565b905060ff81166123be576123b985858585612dce565b610f3d565b60001960ff8216016123d6576123b985858585612e5c565b60405162461bcd60e51b8152600401610d069061524b565b60006123fc87828481613065565b612405856130da565b5090506124148888888461311a565b9050600081116124365760405162461bcd60e51b8152600401610d069061528f565b60006124458761224584612c5f565b90506124558882878787346131e0565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516124949190613faa565b60405180910390a450979650505050505050565b611d3c8888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506124f59150506020890189614418565b61250560408a0160208b01614418565b61251260408b018b614a87565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061333c92505050565b6001600160a01b0381166120ca576040516342bcdf7f60e11b815260040160405180910390fd5b61257b613403565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123253390565b6060816125be81601f61490f565b10156125dc5760405162461bcd60e51b8152600401610d06906152c4565b6125e6828461490f565b845110156126065760405162461bcd60e51b8152600401610d06906152fc565b606082158015612625576040519150600082526020820160405261266f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561265e578051835260209283019201612646565b5050858452601f01601f1916604052505b50949350505050565b6000806000612692338a61268b8b612c5f565b8a8a613426565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906126e9908d90309086908b908b90600401615188565b6040805180830381865afa158015612705573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272991906151d6565b925092505097509795505050505050565b61ffff8616600090815260056020526040808220905161275d908890889061483f565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806127a15760405162461bcd60e51b8152600401610d069061534c565b8083836040516127b292919061483f565b6040518091039020146127d75760405162461bcd60e51b8152600401610d069061539a565b61ffff871660009081526005602052604080822090516127fa908990899061483f565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612892918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061239792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516128c99594939291906153aa565b60405180910390a150505050505050565b60006128e4613403565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906129339087906004016144c5565b602060405180830381865afa158015612950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297491906148c5565b9050306001600160a01b038616036129bf576129ba6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858561233c565b6129f4565b6129f46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868686613467565b6040516370a0823160e01b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612a429088906004016144c5565b602060405180830381865afa158015612a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8391906148c5565b612a8d91906148fc565b95945050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6000606060008060008661ffff166001600160401b03811115612b1457612b1461407e565b6040519080825280601f01601f191660200182016040528015612b3e576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612b60578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612baa9190614ba6565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612c0790879087908790879087906153e7565b60405180910390a15050505050565b6040805160208101909152600081526040518060200160405280612c3e856000015185613488565b90529392505050565b8051600090610eb590670de0b6b3a764000090615452565b600080612c8c7f000000000000000000000000000000000000000000000000000000000000000084615452565b90506001600160401b03811115610eb55760405162461bcd60e51b8152600401610d069061549a565b606060008383604051602001612ccd939291906154e0565b604051602081830303815290604052905092915050565b60005460ff1661134e5760405162461bcd60e51b8152600401610d0690615542565b6000612d5b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134949092919063ffffffff16565b9050805160001480612d7c575080806020019051810190612d7c919061555d565b6123925760405162461bcd60e51b8152600401610d06906155c5565b6000612da582600161490f565b83511015612dc55760405162461bcd60e51b8152600401610d06906155ff565b50016001015190565b600080612dda836134a3565b90925090506001600160a01b038216612df35761dead91505b6000612dfe826134fd565b9050612e0b878483613532565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf83604051612e4b9190613faa565b60405180910390a350505050505050565b6000806000806000612e6d866135cf565b945094509450945094506000600660008b61ffff1661ffff16815260200190815260200160002089604051612ea29190614ba6565b90815260408051602092819003830190206001600160401b038b166000908152925281205460ff169150612ed5856134fd565b905081612f4357612ee78b3083613532565b61ffff8c16600090815260066020526040908190209051919250600191612f0f908d90614ba6565b90815260408051602092819003830190206001600160401b038d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b612f95577f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d86604051612f8191906144c5565b60405180910390a15050505050505061162f565b8a8a8a8a8a8a868a60008a612fb3578b6001600160401b0316612fb5565b5a5b9050600080612fe75a609663eaffd49a60e01b8e8e8e8d8d8d8d8d60405160240161219a98979695949392919061560f565b915091508115613040578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88490613032908e908e908690615694565b60405180910390a25061304d565b61304d8b8b8b8b85612b79565b50505050505050505050505050505050505050505050565b60006130708361365b565b61ffff808716600090815260026020908152604080832093891683529290522054909150806130b15760405162461bcd60e51b8152600401610d06906156e8565b6130bb838261490f565b8210156116ca5760405162461bcd60e51b8152600401610d069061572c565b6000806131077f00000000000000000000000000000000000000000000000000000000000000008461573c565b905061311381846148fc565b9150915091565b6000613124613403565b6001600160a01b038516331461314c5760405162461bcd60e51b8152600401610d069061578f565b613157858584613687565b604051632770a7eb60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639dc29fac906131a59088908690600401615209565b600060405180830381600087803b1580156131bf57600080fd5b505af11580156131d3573d6000803e3d6000fd5b5093979650505050505050565b61ffff8616600090815260016020526040812080546131fe90614806565b80601f016020809104026020016040519081016040528092919081815260200182805461322a90614806565b80156132775780601f1061324c57610100808354040283529160200191613277565b820191906000526020600020905b81548152906001019060200180831161325a57829003601f168201915b50505050509050805160000361329f5760405162461bcd60e51b8152600401610d06906157ec565b6132aa87875161383b565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490613301908b9086908c908c908c908c906004016157fc565b6000604051808303818588803b15801561331a57600080fd5b505af115801561332e573d6000803e3d6000fd5b505050505050505050505050565b6000613354896001846001600160401b038916613065565b61335d876130da565b50905061336c8a8a8a8461311a565b90506000811161338e5760405162461bcd60e51b8152600401610d069061528f565b600061339e338a61268b85612c5f565b90506133ae8a82878787346131e0565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516133ed9190613faa565b60405180910390a4509998505050505050505050565b60005460ff161561134e5760405162461bcd60e51b8152600401610d0690615885565b6060600185856001600160a01b038916858760405160200161344d96959493929190615895565b604051602081830303815290604052905095945050505050565b61162f846323b872dd60e01b85858560405160240161235b939291906158f1565b6000611337828461590c565b606061216a848460008561387c565b600080806134b18482612d98565b60ff161480156134c2575082516029145b6134de5760405162461bcd60e51b8152600401610d069061595f565b6134e983600d613918565b91506134f6836021613955565b9050915091565b6000610eb57f00000000000000000000000000000000000000000000000000000000000000006001600160401b03841661590c565b600061353c613403565b61354783858461398b565b6040516340c10f1960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906135959086908690600401615209565b600060405180830381600087803b1580156135af57600080fd5b505af11580156135c3573d6000803e3d6000fd5b50939695505050505050565b6000808060608160016135e28783612d98565b60ff16146136025760405162461bcd60e51b8152600401610d069061595f565b61360d86600d613918565b935061361a866021613955565b9250613627866029613b3f565b9450613634866049613955565b9050613650605180885161364891906148fc565b8891906125b0565b915091939590929450565b600060228251101561367f5760405162461bcd60e51b8152600401610d06906159a3565b506022015190565b6001600160a01b03831660009081526010602052604090205460ff1680156136af5750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e096137117f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa15801561372e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061375291906148c5565b90529050613760818561221b565b61ffff86166000908152600b6020908152604080832054600a8352818420546008845282852054600990945291909320549395504293909190818711156137b95760405162461bcd60e51b8152600401610d06906159e7565b620151806137c785876148fc565b11156137eb5761ffff8a166000908152600b602052604090208590558692506137f8565b6137f5878461490f565b92505b808311156138185760405162461bcd60e51b8152600401610d0690615a2b565b505061ffff9097166000908152600a602052604090209690965550505050505050565b61ffff82166000908152600360205260408120549081900361385c57506127105b808211156123925760405162461bcd60e51b8152600401610d0690615a6d565b60608247101561389e5760405162461bcd60e51b8152600401610d0690615ac0565b600080866001600160a01b031685876040516138ba9190614ba6565b60006040518083038185875af1925050503d80600081146138f7576040519150601f19603f3d011682016040523d82523d6000602084013e6138fc565b606091505b509150915061390d87838387613b75565b979650505050505050565b600061392582601461490f565b835110156139455760405162461bcd60e51b8152600401610d0690615afc565b500160200151600160601b900490565b600061396282600861490f565b835110156139825760405162461bcd60e51b8152600401610d0690615b37565b50016008015190565b6001600160a01b03831660009081526010602052604090205460ff1680156139b35750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e09613a157f0000000000000000000000000000000000000000000000000000000000000000602485016144c5565b602060405180830381865afa158015613a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5691906148c5565b90529050613a64818561221b565b61ffff86166000908152600f6020908152604080832054600e835281842054600c845282852054600d9094529190932054939550429390919081871115613abd5760405162461bcd60e51b8152600401610d06906159e7565b62015180613acb85876148fc565b1115613aef5761ffff8a166000908152600f60205260409020859055869250613afc565b613af9878461490f565b92505b80831115613b1c5760405162461bcd60e51b8152600401610d0690615a2b565b505061ffff9097166000908152600e602052604090209690965550505050505050565b6000613b4c82602061490f565b83511015613b6c5760405162461bcd60e51b8152600401610d0690615b73565b50016020015190565b60608315613bb4578251600003613bad576001600160a01b0385163b613bad5760405162461bcd60e51b8152600401610d0690615bb7565b508161216a565b61216a8383815115613bc95781518083602001fd5b8060405162461bcd60e51b8152600401610d069190614330565b5050565b508054613bf390614806565b6000825580601f10613c03575050565b601f0160209004906000526020600020908101906120ca91905b80821115613c315760008155600101613c1d565b5090565b61ffff81165b81146120ca57600080fd5b8035610eb581613c35565b60008083601f840112613c6657613c66600080fd5b5081356001600160401b03811115613c8057613c80600080fd5b602083019150836001820283011115613c9b57613c9b600080fd5b9250929050565b6001600160401b038116613c3b565b8035610eb581613ca2565b60008060008060008060808789031215613cd857613cd8600080fd5b6000613ce48989613c46565b96505060208701356001600160401b03811115613d0357613d03600080fd5b613d0f89828a01613c51565b95509550506040613d2289828a01613cb1565b93505060608701356001600160401b03811115613d4157613d41600080fd5b613d4d89828a01613c51565b92509250509295509295509295565b6001600160e01b03198116613c3b565b8035610eb581613d5c565b600060208284031215613d8c57613d8c600080fd5b600061216a8484613d6c565b8015155b82525050565b60208101610eb58284613d98565b600060208284031215613dc557613dc5600080fd5b600061216a8484613c46565b80613c3b565b8035610eb581613dd1565b60008060408385031215613df857613df8600080fd5b6000613e048585613c46565b9250506020613e1585828601613dd7565b9150509250929050565b60006001600160a01b038216610eb5565b613c3b81613e1f565b8035610eb581613e30565b600080600060608486031215613e5c57613e5c600080fd5b6000613e688686613e39565b9350506020613e7986828701613c46565b9250506040613e8a86828701613dd7565b9150509250925092565b80613d9c565b60e08101613ea8828a613d98565b613eb56020830189613e94565b613ec26040830188613e94565b613ecf6060830187613e94565b613edc6080830186613e94565b613ee960a0830185613e94565b613ef660c0830184613d98565b98975050505050505050565b801515613c3b565b8035610eb581613f02565b60008060008060008060a08789031215613f3157613f31600080fd5b6000613f3d8989613c46565b9650506020613f4e89828a01613dd7565b9550506040613f5f89828a01613dd7565b9450506060613f7089828a01613f0a565b93505060808701356001600160401b03811115613d4157613d41600080fd5b60408101613f9d8285613e94565b6113376020830184613e94565b60208101610eb58284613e94565b600080600060408486031215613fd057613fd0600080fd5b6000613fdc8686613c46565b93505060208401356001600160401b03811115613ffb57613ffb600080fd5b61400786828701613c51565b92509250509250925092565b60ff8116613d9c565b60208101610eb58284614013565b60006020828403121561403f5761403f600080fd5b600061216a8484613f0a565b6000806040838503121561406157614061600080fd5b600061406d8585613e39565b9250506020613e1585828601613f0a565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156140b9576140b961407e565b6040525050565b60006140cb60405190565b90506140d78282614094565b919050565b60006001600160401b038211156140f5576140f561407e565b601f19601f83011660200192915050565b82818337506000910152565b6000614125614120846140dc565b6140c0565b90508281526020810184848401111561414057614140600080fd5b61414b848285614106565b509392505050565b600082601f83011261416757614167600080fd5b813561216a848260208601614112565b60008060006060848603121561418f5761418f600080fd5b600061419b8686613c46565b93505060208401356001600160401b038111156141ba576141ba600080fd5b6141c686828701614153565b9250506040613e8a86828701613cb1565b6000610eb582613e1f565b613c3b816141d7565b8035610eb5816141e2565b60008060006060848603121561420e5761420e600080fd5b600061421a86866141eb565b9350506020613e7986828701613e39565b60006060828403121561424057614240600080fd5b50919050565b600080600080600060a0868803121561426157614261600080fd5b600061426d8888613e39565b955050602061427e88828901613c46565b945050604061428f88828901613dd7565b93505060606142a088828901613dd7565b92505060808601356001600160401b038111156142bf576142bf600080fd5b6142cb8882890161422b565b9150509295509295909350565b60005b838110156142f35781810151838201526020016142db565b50506000910152565b6000614306825190565b80845260208401935061431d8185602086016142d8565b601f19601f8201165b9093019392505050565b6020808252810161133781846142fc565b60008060008060008060008060e0898b03121561436057614360600080fd5b600061436c8b8b613e39565b985050602061437d8b828c01613c46565b975050604061438e8b828c01613dd7565b965050606061439f8b828c01613dd7565b95505060808901356001600160401b038111156143be576143be600080fd5b6143ca8b828c01613c51565b945094505060a06143dd8b828c01613cb1565b92505060c08901356001600160401b038111156143fc576143fc600080fd5b6144088b828c0161422b565b9150509295985092959890939650565b60006020828403121561442d5761442d600080fd5b600061216a8484613e39565b6000610eb56001600160a01b038316614450565b90565b6001600160a01b031690565b6000610eb582614439565b6000610eb58261445c565b613d9c81614467565b60208101610eb58284614472565b6000806040838503121561449f5761449f600080fd5b60006144ab8585613c46565b9250506020613e1585828601613c46565b613d9c81613e1f565b60208101610eb582846144bc565b600080600080600080600080600060e08a8c0312156144f4576144f4600080fd5b60006145008c8c613c46565b99505060206145118c828d01613dd7565b98505060406145228c828d01613dd7565b97505060608a01356001600160401b0381111561454157614541600080fd5b61454d8c828d01613c51565b965096505060806145608c828d01613cb1565b94505060a06145718c828d01613f0a565b93505060c08a01356001600160401b0381111561459057614590600080fd5b61459c8c828d01613c51565b92509250509295985092959850929598565b6000806000806000608086880312156145c9576145c9600080fd5b60006145d58888613c46565b95505060206145e688828901613c46565b94505060406145f788828901613dd7565b93505060608601356001600160401b0381111561461657614616600080fd5b61462288828901613c51565b92509250509295509295909350565b60008060006060848603121561464957614649600080fd5b6000613e688686613c46565b6000806000806000806000806000806101008b8d03121561467857614678600080fd5b60006146848d8d613c46565b9a505060208b01356001600160401b038111156146a3576146a3600080fd5b6146af8d828e01613c51565b995099505060406146c28d828e01613cb1565b97505060606146d38d828e01613dd7565b96505060806146e48d828e01613e39565b95505060a06146f58d828e01613dd7565b94505060c08b01356001600160401b0381111561471457614714600080fd5b6147208d828e01613c51565b935093505060e06147338d828e01613dd7565b9150509295989b9194979a5092959850565b6000806000806080858703121561475e5761475e600080fd5b600061476a8787613c46565b945050602061477b87828801613c46565b935050604061478c87828801613e39565b925050606061479d87828801613dd7565b91505092959194509250565b601e81526000602082017f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000815291505b5060200190565b60208082528101610eb5816147a9565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061481a57607f821691505b602082108103614240576142406147f0565b6000614839838584614106565b50500190565b600061216a82848661482c565b602681526000602082017f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f8152651b9d1c9858dd60d21b602082015291505b5060400190565b60208082528101610eb58161484c565b61ffff8116613d9c565b60208101610eb582846148a2565b8051610eb581613dd1565b6000602082840312156148da576148da600080fd5b600061216a84846148ba565b634e487b7160e01b600052601160045260246000fd5b81810381811115610eb557610eb56148e6565b80820180821115610eb557610eb56148e6565b602681526000602082017f4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e815265081b1a5b5a5d60d21b6020820152915061488b565b60208082528101610eb581614922565b6060810161498382866148a2565b6149906020830185613e94565b61216a6040830184613e94565b81835260006020840193506149b3838584614106565b601f19601f840116614326565b604081016149ce82866148a2565b818103602083015261216781848661499d565b602681526000602082017f53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79815265081b1a5b5a5d60d21b6020820152915061488b565b60208082528101610eb5816149e1565b602681526000602082017f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062658152650204c7a4170760d41b6020820152915061488b565b60208082528101610eb581614a34565b6000808335601e1936859003018112614aa257614aa2600080fd5b8084019250823591506001600160401b03821115614ac257614ac2600080fd5b602083019250600182023603831315614add57614add600080fd5b509250929050565b602e81526000602082017f4461696c79206c696d6974203c2073696e676c6520726563656976652074726181526d1b9cd858dd1a5bdb881b1a5b5a5d60921b6020820152915061488b565b60208082528101610eb581614ae5565b601781526000602082017f73656e64416e6443616c6c2069732064697361626c6564000000000000000000815291506147d9565b60208082528101610eb581614b40565b6000614b8e825190565b614b9c8185602086016142d8565b9290920192915050565b60006113378284614b84565b6001600160401b038116613d9c565b60408101614bcf82856148a2565b6113376020830184614bb2565b601d81526000602082017f4c7a4170703a206e6f20747275737465642070617468207265636f7264000000815291506147d9565b60208082528101610eb581614bdc565b6000610eb58260601b90565b6000610eb582614c20565b613d9c614c4382613e1f565b614c2c565b6000614c5582858761482c565b9150614c618284614c37565b506014019392505050565b6000610eb561444d8381565b614c8183614c6c565b815460001960089490940293841b1916921b91909117905550565b6000612392818484614c78565b81811015613be357614cbc600082614c9c565b600101614ca9565b601f821115612392576000818152602090206020601f85010481016020851015614ceb5750805b610f3d6020601f860104830182614ca9565b81516001600160401b03811115614d1657614d1661407e565b614d208254614806565b614d2b828285614cc4565b6020601f831160018114614d5f5760008415614d475750858201515b600019600886021c19811660028602178655506116ca565b600085815260208120601f198616915b82811015614d8f5788850151825560209485019460019092019101614d6f565b86831015614dab5784890151600019601f89166008021c191682555b600160028802018855505050505050505050565b60808101614dcd82886148a2565b614dda60208301876148a2565b614de76040830186613e94565b818103606083015261390d81848661499d565b602e81526000602082017f73696e676c652072656365697665207472616e73616374696f6e206c696d697481526d080f8811185a5b1e481b1a5b5a5d60921b6020820152915061488b565b60208082528101610eb581614dfa565b60608101614e6382866148a2565b61499060208301856148a2565b601f81526000602082017f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f726500815291506147d9565b60208082528101610eb581614e70565b60c08101614ec2828b6148a2565b8181036020830152614ed581898b61499d565b9050614ee46040830188614bb2565b614ef16060830187613e94565b614efe6080830186613e94565b81810360a0830152614f1181848661499d565b9a9950505050505050505050565b826001600160401b03811115614f3757614f3761407e565b614f418254614806565b614f4c828285614cc4565b6000601f831160018114614f805760008415614f685750858201355b600019600886021c1981166002860217865550610e7b565b600085815260208120601f198616915b82811015614fb05788850135825560209485019460019092019101614f90565b86831015614fcc57600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b6020820152915061488b565b60208082528101610eb581614fe1565b6080810161504282876148a2565b61504f60208301866148a2565b61505c60408301856144bc565b612a8d6060830184613e94565b6000615077614120846140dc565b90508281526020810184848401111561509257615092600080fd5b61414b8482856142d8565b600082601f8301126150b1576150b1600080fd5b815161216a848260208601615069565b6000602082840312156150d6576150d6600080fd5b81516001600160401b038111156150ef576150ef600080fd5b61216a8482850161509d565b6080810161510982876148a2565b818103602083015261511b81866142fc565b905061512a6040830185614bb2565b818103606083015261513c81846142fc565b9695505050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006147d9565b60208082528101610eb581615146565b60a0810161519682886148a2565b6151a360208301876144bc565b81810360408301526151b581866142fc565b90506151c46060830185613d98565b818103608083015261390d81846142fc565b600080604083850312156151ec576151ec600080fd5b60006151f885856148ba565b9250506020613e15858286016148ba565b60408101613f9d82856144bc565b601c81526000602082017f4f4654436f72653a20756e6b6e6f776e207061636b6574207479706500000000815291506147d9565b60208082528101610eb581615217565b601981526000602082017f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c00000000000000815291506147d9565b60208082528101610eb58161525b565b600e81526000602082016d736c6963655f6f766572666c6f7760901b815291506147d9565b60208082528101610eb58161529f565b6011815260006020820170736c6963655f6f75744f66426f756e647360781b815291506147d9565b60208082528101610eb5816152d4565b602381526000602082017f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737381526261676560e81b6020820152915061488b565b60208082528101610eb58161530c565b602181526000602082017f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f618152601960fa1b6020820152915061488b565b60208082528101610eb58161535c565b608081016153b882886148a2565b81810360208301526153cb81868861499d565b90506153da6040830185614bb2565b61513c6060830184613e94565b60a081016153f582886148a2565b818103602083015261540781876142fc565b90506154166040830186614bb2565b818103606083015261542881856142fc565b9050818103608083015261390d81846142fc565b634e487b7160e01b600052601260045260246000fd5b6000826154615761546161543c565b500490565b601a81526000602082017f4f4654436f72653a20616d6f756e745344206f766572666c6f77000000000000815291506147d9565b60208082528101610eb581615466565b6000610eb58260f81b90565b613d9c60ff82166154aa565b6000610eb58260c01b90565b613d9c6001600160401b0382166154c2565b60006154ec82866154b6565b6001820191506154fc8285613e94565b60208201915061550c82846154ce565b506008019392505050565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b815291506147d9565b60208082528101610eb581615517565b8051610eb581613f02565b60006020828403121561557257615572600080fd5b600061216a8484615552565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b6020820152915061488b565b60208082528101610eb58161557e565b6013815260006020820172746f55696e74385f6f75744f66426f756e647360681b815291506147d9565b60208082528101610eb5816155d5565b610100810161561e828b6148a2565b8181036020830152615630818a6142fc565b905061563f6040830189614bb2565b61564c6060830188613e94565b61565960808301876144bc565b61566660a0830186613e94565b81810360c083015261567881856142fc565b905061568760e0830184613e94565b9998505050505050505050565b606080825281016156a581866142fc565b90506149906020830185614bb2565b601a81526000602082017f4c7a4170703a206d696e4761734c696d6974206e6f7420736574000000000000815291506147d9565b60208082528101610eb5816156b4565b601b81526000602082017f4c7a4170703a20676173206c696d697420697320746f6f206c6f770000000000815291506147d9565b60208082528101610eb5816156f8565b60008261574b5761574b61543c565b500690565b602281526000602082017f50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c81526132b960f11b6020820152915061488b565b60208082528101610eb581615750565b603081526000602082017f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742081526f61207472757374656420736f7572636560801b6020820152915061488b565b60208082528101610eb58161579f565b60c0810161580a82896148a2565b818103602083015261581c81886142fc565b9050818103604083015261583081876142fc565b905061583f60608301866144bc565b61584c60808301856144bc565b81810360a0830152613ef681846142fc565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b815291506147d9565b60208082528101610eb58161585e565b60006158a182896154b6565b6001820191506158b18288613e94565b6020820191506158c182876154ce565b6008820191506158d18286613e94565b6020820191506158e182856154ce565b600882019150613ef68284614b84565b606081016158ff82866144bc565b61499060208301856144bc565b818102808215838204851417615924576159246148e6565b5092915050565b601881526000602082017f4f4654436f72653a20696e76616c6964207061796c6f61640000000000000000815291506147d9565b60208082528101610eb58161592b565b601c81526000602082017f4c7a4170703a20696e76616c69642061646170746572506172616d7300000000815291506147d9565b60208082528101610eb58161596f565b601f81526000602082017f53696e676c65205472616e73616374696f6e204c696d69742045786365656400815291506147d9565b60208082528101610eb5816159b3565b601e81526000602082017f4461696c79205472616e73616374696f6e204c696d6974204578636565640000815291506147d9565b60208082528101610eb5816159f7565b60208082527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765910190815260006147d9565b60208082528101610eb581615a3b565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b6020820152915061488b565b60208082528101610eb581615a7d565b6015815260006020820174746f416464726573735f6f75744f66426f756e647360581b815291506147d9565b60208082528101610eb581615ad0565b6014815260006020820173746f55696e7436345f6f75744f66426f756e647360601b815291506147d9565b60208082528101610eb581615b0c565b6015815260006020820174746f427974657333325f6f75744f66426f756e647360581b815291506147d9565b60208082528101610eb581615b47565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506147d9565b60208082528101610eb581615b8356fea26469706673582212202dd3bfbed4cf2b38a77b8421f23e9c02cc363552cb91f700dae1e9b12b7d1e4764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3B7 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7DC0D1D0 GT PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xBAF3292D GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xDF2A5B3B GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC1E JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0xC3E JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xC5E JUMPI DUP1 PUSH4 0xFDFF235B EQ PUSH2 0xC91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0xBA9 JUMPI DUP1 PUSH4 0xE6A20AE6 EQ PUSH2 0xBC9 JUMPI DUP1 PUSH4 0xEAFFD49A EQ PUSH2 0xBDE JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0xBFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCC01E9B6 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xCC01E9B6 EQ PUSH2 0xB1C JUMPI DUP1 PUSH4 0xCC7015AE EQ PUSH2 0xB3C JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0xB69 JUMPI DUP1 PUSH4 0xD708A468 EQ PUSH2 0xB7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBAF3292D EQ PUSH2 0xAAC JUMPI DUP1 PUSH4 0xC1E9132E EQ PUSH2 0xACC JUMPI DUP1 PUSH4 0xC4461834 EQ PUSH2 0xAE6 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0xAFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x9F38369A GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xA4C51DF5 EQ PUSH2 0xA38 JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0xA58 JUMPI DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0xA78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x949 JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x976 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0x996 JUMPI DUP1 PUSH4 0x9BDB9812 EQ PUSH2 0x9C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x8A3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8DB JUMPI DUP1 PUSH4 0x90436567 EQ PUSH2 0x907 JUMPI DUP1 PUSH4 0x9358928B EQ PUSH2 0x934 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x83A JUMPI DUP1 PUSH4 0x84E69C69 EQ PUSH2 0x84F JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C42899A GT PUSH2 0x2E2 JUMPI DUP1 PUSH4 0x64AFF9EC GT PUSH2 0x275 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x244 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0x76203B48 EQ PUSH2 0x7D5 JUMPI DUP1 PUSH4 0x7ADBF973 EQ PUSH2 0x7E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x64AFF9EC EQ PUSH2 0x729 JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x749 JUMPI DUP1 PUSH4 0x695EF6BF EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0x69C1E7B8 EQ PUSH2 0x77C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x53489D6C GT PUSH2 0x2B1 JUMPI DUP1 PUSH4 0x53489D6C EQ PUSH2 0x682 JUMPI DUP1 PUSH4 0x53D6FD59 EQ PUSH2 0x6A2 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C42899A EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x4CEC6256 EQ PUSH2 0x608 JUMPI DUP1 PUSH4 0x4ED2C662 EQ PUSH2 0x635 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DBBEC08 GT PUSH2 0x35A JUMPI DUP1 PUSH4 0x3F1F4FA4 GT PUSH2 0x329 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x59C JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x5B1 JUMPI DUP1 PUSH4 0x44770515 EQ PUSH2 0x5D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x4C7 JUMPI DUP1 PUSH4 0x365260B4 EQ PUSH2 0x4E7 JUMPI DUP1 PUSH4 0x3C4EC39B EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x54F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDF37483 GT PUSH2 0x396 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x182B4B89 EQ PUSH2 0x474 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x414 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0xCBE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D77 JUMP JUMPDEST PUSH2 0xE84 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0xEBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x440 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0xF44 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x46F CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0xF63 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x494 PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x3E44 JUMP JUMPDEST PUSH2 0xFB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3E9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x4C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x111C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x4E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x11BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x507 PUSH2 0x502 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F15 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP3 SWAP2 SWAP1 PUSH2 0x3F8F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x530 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1271 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x133E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x5CC CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1350 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x401C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x623 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x402A JUMP JUMPDEST PUSH2 0x13D6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x670 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x69D CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x141B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x404B JUMP JUMPDEST PUSH2 0x14BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x6DD CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x3FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x744 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F6 JUMP JUMPDEST PUSH2 0x1531 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x755 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x764 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0x777 CALLDATASIZE PUSH1 0x4 PUSH2 0x4246 JUMP JUMPDEST PUSH2 0x16D2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x173D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0x7C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x17DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x4330 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0x7E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x4341 JUMP JUMPDEST PUSH2 0x1879 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x18B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x82D SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x447B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x192D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0x86A CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH2 0x193D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x8BE CALLDATASIZE PUSH1 0x4 PUSH2 0x4489 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x922 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x19DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x955 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x964 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x982 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x8FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x9B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH2 0x9E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4177 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0xA33 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x507 PUSH2 0xA53 CALLDATASIZE PUSH1 0x4 PUSH2 0x44D3 JUMP JUMPDEST PUSH2 0x1B47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xA73 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x82D PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xAC7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x1C5F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x3FE SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xB17 CALLDATASIZE PUSH1 0x4 PUSH2 0x45AE JUMP JUMPDEST PUSH2 0x1CB2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xB37 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DE2 JUMP JUMPDEST PUSH2 0x1D47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xB57 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3DC PUSH2 0xB77 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CBC JUMP JUMPDEST PUSH2 0x1DE9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xB97 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBC4 CALLDATASIZE PUSH1 0x4 PUSH2 0x4631 JUMP JUMPDEST PUSH2 0x1EED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5FB PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4655 JUMP JUMPDEST PUSH2 0x1F4C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xC19 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FB8 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xC39 CALLDATASIZE PUSH1 0x4 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2093 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7C8 PUSH2 0xC59 CALLDATASIZE PUSH1 0x4 PUSH2 0x4745 JUMP JUMPDEST PUSH2 0x20CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x8FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x542 PUSH2 0xCAC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DB0 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x47E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xD2D SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD59 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDA6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDA6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD89 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xDC1 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xDE9 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xDDF SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4892 JUMP JUMPDEST PUSH2 0xE7B DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2172 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1F7ECDF7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xEB5 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEC3 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH2 0xF0F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF4C PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xF6B PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH2 0xF0F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH1 0xFF AND SWAP3 DUP5 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x100 SWAP1 DIV AND PUSH4 0x41976E09 PUSH2 0x1039 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1056 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x107A SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x1088 DUP2 DUP11 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP2 SWAP11 POP SWAP1 SWAP9 POP SWAP2 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP TIMESTAMP PUSH3 0x15180 PUSH2 0x10D6 DUP6 DUP4 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x10E7 JUMPI DUP6 SWAP5 POP DUP1 SWAP4 POP PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x10F1 DUP7 DUP7 PUSH2 0x490F JUMP JUMPDEST SWAP5 POP JUMPDEST DUP3 DUP1 PUSH2 0x110B JUMPI POP DUP8 DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x110B JUMPI POP DUP7 DUP6 GT ISZERO JUMPDEST SWAP9 POP POP POP SWAP4 SWAP8 POP SWAP4 SWAP8 POP SWAP4 SWAP8 SWAP1 SWAP5 POP JUMP JUMPDEST PUSH2 0x1124 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1157 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4965 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 PUSH2 0x119F SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x11C6 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x11E2 SWAP2 PUSH2 0x3BE7 JUMP JUMPDEST PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x48AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1262 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2233 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x1292 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x12BE SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x130B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x12E0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x130B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x12EE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1322 SWAP3 SWAP2 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1346 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x134E PUSH2 0x22F0 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1358 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x13A8 SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x49C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE7B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x13DE PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xE628F01C6F4E6340598D3A2913390DB68E8859379EEBFF349E170F2B16BAED00 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x1423 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4A24 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x7BABEAC42CCBB33537EE421FEDC4DB7B5F251B5D2A3FA5C0FF4B35B2D783BE87 SWAP2 PUSH2 0x149E SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x14C5 PUSH2 0x21EB JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF6019EC0A78D156D249A1EC7579E2321F6AC7521D6E1D2EACF90BA4A184DCCEB DUP3 PUSH1 0x40 MLOAD PUSH2 0x14FE SWAP2 SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1539 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1568 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A9 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x15D0 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP3 SWAP2 SWAP1 PUSH2 0x3F8F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6D25BE279134F4ECAA4770AFF0C3D916D9E7C5EF37B65ED95DBDBA411F5D54D5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1613 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x162F PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 DUP5 PUSH2 0x233C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1654 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4A77 JUMP JUMPDEST PUSH2 0x16CA DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2397 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x16CA DUP6 DUP6 DUP6 DUP6 PUSH2 0x16E6 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x16F6 PUSH1 0x40 DUP9 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x1703 PUSH1 0x40 DUP10 ADD DUP10 PUSH2 0x4A87 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x23EE SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1745 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x1778 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x95DC51094CD27CF4EE3FD0DBB50CF96F8DF1629C822F5434C4A34D7EB03C9724 SWAP2 PUSH2 0x17C0 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x17F8 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1824 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1871 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1846 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1871 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1854 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x189B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4B74 JUMP JUMPDEST PUSH2 0x18AB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x24A8 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18BD PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x18C6 DUP2 PUSH2 0x254C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1935 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0x134E PUSH2 0x2573 JUMP JUMPDEST PUSH2 0x1945 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1966 SWAP1 DUP6 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1999 SWAP1 DUP4 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x48A980EEA4EA1C540209E2F9F32A4C2EDF51FAB37B1D21F453868301ECB6E2EE DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19D2 SWAP3 SWAP2 SWAP1 PUSH2 0x4BC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A3F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A63 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x1A8B SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1AB7 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1B04 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1AD9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B04 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AE7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1B2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1B3F SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x25B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1BC4 DUP12 DUP12 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE DUP15 SWAP4 POP DUP14 SWAP3 POP SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2678 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP10 POP SWAP10 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BDE PUSH2 0x21EB JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BF3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C48 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1C1E SWAP1 DUP3 PUSH2 0x4CFD JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1C67 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH2 0x1211 SWAP1 DUP4 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH2 0x1CBA PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1D0E SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4DBF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D4F PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1D82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4E45 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x2C42997A938A029910A78E7C28D762B349C28E70F3A89C1FBCCBB1A46020B159 SWAP2 PUSH2 0x1DCA SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4975 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1E07 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E33 SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E80 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E55 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E80 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E63 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x1E9B JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x1EC3 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x1EB9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x1EDF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4892 JUMP JUMPDEST PUSH2 0xE7B DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x273A JUMP JUMPDEST PUSH2 0x1EF5 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE DUP2 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE MLOAD PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH2 0x1C52 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x4E55 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1F6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x4EA4 JUMP JUMPDEST PUSH2 0x1F76 ADDRESS DUP7 DUP7 PUSH2 0x28DA JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP7 PUSH1 0x40 MLOAD PUSH2 0x1FB6 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0x3FE79AED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x7FCF35DA SWAP1 DUP4 SWAP1 PUSH2 0x1FFA SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EB4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL ISZERO DUP1 ISZERO PUSH2 0x2028 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2041 PUSH2 0x21EB JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x205F DUP3 DUP5 DUP4 PUSH2 0x4F1F JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1C52 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x49C0 JUMP JUMPDEST PUSH2 0x209B PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5024 JUMP JUMPDEST PUSH2 0x20CA DUP2 PUSH2 0x2A96 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH2 0x2122 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5034 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x213F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2167 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x50C1 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x21D5 GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x219A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x50FB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2AEF JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x16CA JUMPI PUSH2 0x16CA DUP7 DUP7 DUP7 DUP7 DUP6 PUSH2 0x2B79 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV AND CALLER EQ PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5178 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2228 DUP5 DUP5 PUSH2 0x2C16 JUMP JUMPDEST SWAP1 POP PUSH2 0x216A DUP2 PUSH2 0x2C47 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x224A DUP8 PUSH2 0x2245 DUP9 PUSH2 0x2C5F JUMP JUMPDEST PUSH2 0x2CB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x22A1 SWAP1 DUP12 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5188 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22E1 SWAP2 SWAP1 PUSH2 0x51D6 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x22F8 PUSH2 0x2CE4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2332 SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2392 DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x235B SWAP3 SWAP2 SWAP1 PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x2D06 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A3 DUP3 DUP3 PUSH2 0x2D98 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP2 AND PUSH2 0x23BE JUMPI PUSH2 0x23B9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2DCE JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP3 AND ADD PUSH2 0x23D6 JUMPI PUSH2 0x23B9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2E5C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x524B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23FC DUP8 DUP3 DUP5 DUP2 PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x2405 DUP6 PUSH2 0x30DA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2414 DUP9 DUP9 DUP9 DUP5 PUSH2 0x311A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x2436 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x528F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2445 DUP8 PUSH2 0x2245 DUP5 PUSH2 0x2C5F JUMP JUMPDEST SWAP1 POP PUSH2 0x2455 DUP9 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x31E0 JUMP JUMPDEST DUP7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x2494 SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D3C DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x24F5 SWAP2 POP POP PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2505 PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x4418 JUMP JUMPDEST PUSH2 0x2512 PUSH1 0x40 DUP12 ADD DUP12 PUSH2 0x4A87 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x333C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x20CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x257B PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2325 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x25BE DUP2 PUSH1 0x1F PUSH2 0x490F JUMP JUMPDEST LT ISZERO PUSH2 0x25DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x52C4 JUMP JUMPDEST PUSH2 0x25E6 DUP3 DUP5 PUSH2 0x490F JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x2606 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x52FC JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2625 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x266F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x265E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2646 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2692 CALLER DUP11 PUSH2 0x268B DUP12 PUSH2 0x2C5F JUMP JUMPDEST DUP11 DUP11 PUSH2 0x3426 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x26E9 SWAP1 DUP14 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x5188 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2705 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2729 SWAP2 SWAP1 PUSH2 0x51D6 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x275D SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x483F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x27A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x534C JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x27B2 SWAP3 SWAP2 SWAP1 PUSH2 0x483F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x27D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x539A JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x27FA SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x483F JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2892 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2397 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x28C9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E4 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2933 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2950 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2974 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SUB PUSH2 0x29BF JUMPI PUSH2 0x29BA PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH2 0x233C JUMP JUMPDEST PUSH2 0x29F4 JUMP JUMPDEST PUSH2 0x29F4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 DUP7 PUSH2 0x3467 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2A42 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A83 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST PUSH2 0x2A8D SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B14 JUMPI PUSH2 0x2B14 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2B3E JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2B60 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2BAA SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x2C07 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x53E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2C3E DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0x3488 JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0xEB5 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x5452 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C8C PUSH32 0x0 DUP5 PUSH2 0x5452 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xEB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x549A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2CCD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x54E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5542 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3494 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x2D7C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2D7C SWAP2 SWAP1 PUSH2 0x555D JUMP JUMPDEST PUSH2 0x2392 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x55C5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA5 DUP3 PUSH1 0x1 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x2DC5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x55FF JUMP JUMPDEST POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2DDA DUP4 PUSH2 0x34A3 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2DF3 JUMPI PUSH2 0xDEAD SWAP2 POP JUMPDEST PUSH1 0x0 PUSH2 0x2DFE DUP3 PUSH2 0x34FD JUMP JUMPDEST SWAP1 POP PUSH2 0x2E0B DUP8 DUP5 DUP4 PUSH2 0x3532 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP4 PUSH1 0x40 MLOAD PUSH2 0x2E4B SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2E6D DUP7 PUSH2 0x35CF JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP12 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP10 PUSH1 0x40 MLOAD PUSH2 0x2EA2 SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP PUSH2 0x2ED5 DUP6 PUSH2 0x34FD JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F43 JUMPI PUSH2 0x2EE7 DUP12 ADDRESS DUP4 PUSH2 0x3532 JUMP JUMPDEST PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 PUSH2 0x2F0F SWAP1 DUP14 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND EXTCODESIZE PUSH2 0x2F95 JUMPI PUSH32 0x9AEDF5FDBA8716DB3B6705CA00150643309995D4F818A249ED6DDE6677E7792D DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F81 SWAP2 SWAP1 PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH2 0x162F JUMP JUMPDEST DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP7 DUP11 PUSH1 0x0 DUP11 PUSH2 0x2FB3 JUMPI DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x2FB5 JUMP JUMPDEST GAS JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FE7 GAS PUSH1 0x96 PUSH4 0xEAFFD49A PUSH1 0xE0 SHL DUP15 DUP15 DUP15 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x219A SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x560F JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3040 JUMPI DUP8 MLOAD PUSH1 0x20 DUP10 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP14 AND SWAP1 PUSH32 0xB8890EDBFC1C74692F527444645F95489C3703CC2DF42E4A366F5D06FA6CD884 SWAP1 PUSH2 0x3032 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP7 SWAP1 PUSH2 0x5694 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x304D JUMP JUMPDEST PUSH2 0x304D DUP12 DUP12 DUP12 DUP12 DUP6 PUSH2 0x2B79 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3070 DUP4 PUSH2 0x365B JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP10 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x30B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x56E8 JUMP JUMPDEST PUSH2 0x30BB DUP4 DUP3 PUSH2 0x490F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x572C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3107 PUSH32 0x0 DUP5 PUSH2 0x573C JUMP JUMPDEST SWAP1 POP PUSH2 0x3113 DUP2 DUP5 PUSH2 0x48FC JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3124 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER EQ PUSH2 0x314C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x578F JUMP JUMPDEST PUSH2 0x3157 DUP6 DUP6 DUP5 PUSH2 0x3687 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH2 0x31A5 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x31D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x31FE SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x322A SWAP1 PUSH2 0x4806 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3277 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x324C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3277 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x325A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x329F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x57EC JUMP JUMPDEST PUSH2 0x32AA DUP8 DUP8 MLOAD PUSH2 0x383B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x3301 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x57FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x331A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x332E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3354 DUP10 PUSH1 0x1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH2 0x3065 JUMP JUMPDEST PUSH2 0x335D DUP8 PUSH2 0x30DA JUMP JUMPDEST POP SWAP1 POP PUSH2 0x336C DUP11 DUP11 DUP11 DUP5 PUSH2 0x311A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x338E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x528F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x339E CALLER DUP11 PUSH2 0x268B DUP6 PUSH2 0x2C5F JUMP JUMPDEST SWAP1 POP PUSH2 0x33AE DUP11 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x31E0 JUMP JUMPDEST DUP9 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x33ED SWAP2 SWAP1 PUSH2 0x3FAA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x134E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5885 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x344D SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5895 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x162F DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x235B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58F1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1337 DUP3 DUP5 PUSH2 0x590C JUMP JUMPDEST PUSH1 0x60 PUSH2 0x216A DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x387C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x34B1 DUP5 DUP3 PUSH2 0x2D98 JUMP JUMPDEST PUSH1 0xFF AND EQ DUP1 ISZERO PUSH2 0x34C2 JUMPI POP DUP3 MLOAD PUSH1 0x29 EQ JUMPDEST PUSH2 0x34DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x595F JUMP JUMPDEST PUSH2 0x34E9 DUP4 PUSH1 0xD PUSH2 0x3918 JUMP JUMPDEST SWAP2 POP PUSH2 0x34F6 DUP4 PUSH1 0x21 PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH2 0x590C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x353C PUSH2 0x3403 JUMP JUMPDEST PUSH2 0x3547 DUP4 DUP6 DUP5 PUSH2 0x398B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH2 0x3595 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x5209 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x35AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35C3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x60 DUP2 PUSH1 0x1 PUSH2 0x35E2 DUP8 DUP4 PUSH2 0x2D98 JUMP JUMPDEST PUSH1 0xFF AND EQ PUSH2 0x3602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x595F JUMP JUMPDEST PUSH2 0x360D DUP7 PUSH1 0xD PUSH2 0x3918 JUMP JUMPDEST SWAP4 POP PUSH2 0x361A DUP7 PUSH1 0x21 PUSH2 0x3955 JUMP JUMPDEST SWAP3 POP PUSH2 0x3627 DUP7 PUSH1 0x29 PUSH2 0x3B3F JUMP JUMPDEST SWAP5 POP PUSH2 0x3634 DUP7 PUSH1 0x49 PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP PUSH2 0x3650 PUSH1 0x51 DUP1 DUP9 MLOAD PUSH2 0x3648 SWAP2 SWAP1 PUSH2 0x48FC JUMP JUMPDEST DUP9 SWAP2 SWAP1 PUSH2 0x25B0 JUMP JUMPDEST SWAP2 POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 DUP3 MLOAD LT ISZERO PUSH2 0x367F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59A3 JUMP JUMPDEST POP PUSH1 0x22 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x36AF JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3711 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x372E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3752 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3760 DUP2 DUP6 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x37B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59E7 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x37C7 DUP6 DUP8 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x37EB JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x37F8 JUMP JUMPDEST PUSH2 0x37F5 DUP8 DUP5 PUSH2 0x490F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A2B JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x385C JUMPI POP PUSH2 0x2710 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2392 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A6D JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x389E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5AC0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x38BA SWAP2 SWAP1 PUSH2 0x4BA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x38F7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x38FC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x390D DUP8 DUP4 DUP4 DUP8 PUSH2 0x3B75 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3925 DUP3 PUSH1 0x14 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3945 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5AFC JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3962 DUP3 PUSH1 0x8 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3982 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5B37 JUMP JUMPDEST POP ADD PUSH1 0x8 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x39B3 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3A15 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3A32 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3A56 SWAP2 SWAP1 PUSH2 0x48C5 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3A64 DUP2 DUP6 PUSH2 0x221B JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0xC DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0xD SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3ABD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x59E7 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3ACB DUP6 DUP8 PUSH2 0x48FC JUMP JUMPDEST GT ISZERO PUSH2 0x3AEF JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3AFC JUMP JUMPDEST PUSH2 0x3AF9 DUP8 DUP5 PUSH2 0x490F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3B1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5A2B JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B4C DUP3 PUSH1 0x20 PUSH2 0x490F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3B6C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5B73 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3BB4 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x3BAD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3BAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP1 PUSH2 0x5BB7 JUMP JUMPDEST POP DUP2 PUSH2 0x216A JUMP JUMPDEST PUSH2 0x216A DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3BC9 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD06 SWAP2 SWAP1 PUSH2 0x4330 JUMP JUMPDEST POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3BF3 SWAP1 PUSH2 0x4806 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3C03 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20CA SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3C31 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3C1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x20CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3C35 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3C66 JUMPI PUSH2 0x3C66 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3C80 JUMPI PUSH2 0x3C80 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3C9B JUMPI PUSH2 0x3C9B PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3CD8 JUMPI PUSH2 0x3CD8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3CE4 DUP10 DUP10 PUSH2 0x3C46 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D03 JUMPI PUSH2 0x3D03 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D0F DUP10 DUP3 DUP11 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x40 PUSH2 0x3D22 DUP10 DUP3 DUP11 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D41 JUMPI PUSH2 0x3D41 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D4D DUP10 DUP3 DUP11 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D8C JUMPI PUSH2 0x3D8C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3D6C JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x3D98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DC5 JUMPI PUSH2 0x3DC5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3C46 JUMP JUMPDEST DUP1 PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3DD1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DF8 JUMPI PUSH2 0x3DF8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E04 DUP6 DUP6 PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEB5 JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x3E1F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3E30 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3E5C JUMPI PUSH2 0x3E5C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E68 DUP7 DUP7 PUSH2 0x3E39 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E79 DUP7 DUP3 DUP8 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E8A DUP7 DUP3 DUP8 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x3EA8 DUP3 DUP11 PUSH2 0x3D98 JUMP JUMPDEST PUSH2 0x3EB5 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EC2 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3ECF PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EDC PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EE9 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x3EF6 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x3D98 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3C3B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x3F02 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3F31 JUMPI PUSH2 0x3F31 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F3D DUP10 DUP10 PUSH2 0x3C46 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x3F4E DUP10 DUP3 DUP11 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x3F5F DUP10 DUP3 DUP11 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x3F70 DUP10 DUP3 DUP11 ADD PUSH2 0x3F0A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D41 JUMPI PUSH2 0x3D41 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3F9D DUP3 DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FD0 JUMPI PUSH2 0x3FD0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FDC DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3FFB JUMPI PUSH2 0x3FFB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4007 DUP7 DUP3 DUP8 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x403F JUMPI PUSH2 0x403F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3F0A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4061 JUMPI PUSH2 0x4061 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x406D DUP6 DUP6 PUSH2 0x3E39 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3F0A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x40B9 JUMPI PUSH2 0x40B9 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40CB PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x40D7 DUP3 DUP3 PUSH2 0x4094 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x40F5 JUMPI PUSH2 0x40F5 PUSH2 0x407E JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4125 PUSH2 0x4120 DUP5 PUSH2 0x40DC JUMP JUMPDEST PUSH2 0x40C0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4140 JUMPI PUSH2 0x4140 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414B DUP5 DUP3 DUP6 PUSH2 0x4106 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4167 JUMPI PUSH2 0x4167 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x216A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4112 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x418F JUMPI PUSH2 0x418F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x419B DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41BA JUMPI PUSH2 0x41BA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x41C6 DUP7 DUP3 DUP8 ADD PUSH2 0x4153 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3E8A DUP7 DUP3 DUP8 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x3E1F JUMP JUMPDEST PUSH2 0x3C3B DUP2 PUSH2 0x41D7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xEB5 DUP2 PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x420E JUMPI PUSH2 0x420E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x421A DUP7 DUP7 PUSH2 0x41EB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3E79 DUP7 DUP3 DUP8 ADD PUSH2 0x3E39 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4240 JUMPI PUSH2 0x4240 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4261 JUMPI PUSH2 0x4261 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x426D DUP9 DUP9 PUSH2 0x3E39 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x427E DUP9 DUP3 DUP10 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x428F DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x42A0 DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x42BF JUMPI PUSH2 0x42BF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42CB DUP9 DUP3 DUP10 ADD PUSH2 0x422B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x42F3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x42DB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4306 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x431D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x42D8 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1337 DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x4360 JUMPI PUSH2 0x4360 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x436C DUP12 DUP12 PUSH2 0x3E39 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x437D DUP12 DUP3 DUP13 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x438E DUP12 DUP3 DUP13 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x439F DUP12 DUP3 DUP13 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x43BE JUMPI PUSH2 0x43BE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43CA DUP12 DUP3 DUP13 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0xA0 PUSH2 0x43DD DUP12 DUP3 DUP13 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x43FC JUMPI PUSH2 0x43FC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4408 DUP12 DUP3 DUP13 ADD PUSH2 0x422B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x442D JUMPI PUSH2 0x442D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x3E39 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4450 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x4439 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x445C JUMP JUMPDEST PUSH2 0x3D9C DUP2 PUSH2 0x4467 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x4472 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x449F JUMPI PUSH2 0x449F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x44AB DUP6 DUP6 PUSH2 0x3C46 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x3C46 JUMP JUMPDEST PUSH2 0x3D9C DUP2 PUSH2 0x3E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x44BC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x44F4 JUMPI PUSH2 0x44F4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4500 DUP13 DUP13 PUSH2 0x3C46 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x4511 DUP13 DUP3 DUP14 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x4522 DUP13 DUP3 DUP14 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4541 JUMPI PUSH2 0x4541 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x454D DUP13 DUP3 DUP14 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x80 PUSH2 0x4560 DUP13 DUP3 DUP14 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x4571 DUP13 DUP3 DUP14 ADD PUSH2 0x3F0A JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4590 JUMPI PUSH2 0x4590 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x459C DUP13 DUP3 DUP14 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x45C9 JUMPI PUSH2 0x45C9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x45D5 DUP9 DUP9 PUSH2 0x3C46 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x45E6 DUP9 DUP3 DUP10 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x45F7 DUP9 DUP3 DUP10 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4616 JUMPI PUSH2 0x4616 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4622 DUP9 DUP3 DUP10 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4649 JUMPI PUSH2 0x4649 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E68 DUP7 DUP7 PUSH2 0x3C46 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x4678 JUMPI PUSH2 0x4678 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4684 DUP14 DUP14 PUSH2 0x3C46 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x46A3 JUMPI PUSH2 0x46A3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46AF DUP14 DUP3 DUP15 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x40 PUSH2 0x46C2 DUP14 DUP3 DUP15 ADD PUSH2 0x3CB1 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x46D3 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x46E4 DUP14 DUP3 DUP15 ADD PUSH2 0x3E39 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x46F5 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4714 JUMPI PUSH2 0x4714 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4720 DUP14 DUP3 DUP15 ADD PUSH2 0x3C51 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0xE0 PUSH2 0x4733 DUP14 DUP3 DUP15 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x475E JUMPI PUSH2 0x475E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x476A DUP8 DUP8 PUSH2 0x3C46 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x477B DUP8 DUP3 DUP9 ADD PUSH2 0x3C46 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x478C DUP8 DUP3 DUP9 ADD PUSH2 0x3E39 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x479D DUP8 DUP3 DUP9 ADD PUSH2 0x3DD7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x47A9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x481A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4240 JUMPI PUSH2 0x4240 PUSH2 0x47F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4839 DUP4 DUP6 DUP5 PUSH2 0x4106 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP3 DUP5 DUP7 PUSH2 0x482C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x484C JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xEB5 DUP3 DUP5 PUSH2 0x48A2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xEB5 DUP2 PUSH2 0x3DD1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x48DA JUMPI PUSH2 0x48DA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x48BA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xEB5 JUMPI PUSH2 0xEB5 PUSH2 0x48E6 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xEB5 JUMPI PUSH2 0xEB5 PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207472616E73616374696F6E DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4922 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4983 DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x216A PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x49B3 DUP4 DUP6 DUP5 PUSH2 0x4106 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x4326 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x49CE DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2167 DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65207472616E73616374696F6E206C696D6974203E204461696C79 DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x49E1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 DUP2 MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4A34 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x4AA2 JUMPI PUSH2 0x4AA2 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4AC2 JUMPI PUSH2 0x4AC2 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4ADD JUMPI PUSH2 0x4ADD PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207265636569766520747261 DUP2 MSTORE PUSH14 0x1B9CD858DD1A5BDB881B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73656E64416E6443616C6C2069732064697361626C6564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4B40 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B8E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4B9C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x42D8 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1337 DUP3 DUP5 PUSH2 0x4B84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3D9C JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4BCF DUP3 DUP6 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x1337 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4BB2 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4BDC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH2 0x4C20 JUMP JUMPDEST PUSH2 0x3D9C PUSH2 0x4C43 DUP3 PUSH2 0x3E1F JUMP JUMPDEST PUSH2 0x4C2C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C55 DUP3 DUP6 DUP8 PUSH2 0x482C JUMP JUMPDEST SWAP2 POP PUSH2 0x4C61 DUP3 DUP5 PUSH2 0x4C37 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 PUSH2 0x444D DUP4 DUP2 JUMP JUMPDEST PUSH2 0x4C81 DUP4 PUSH2 0x4C6C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2392 DUP2 DUP5 DUP5 PUSH2 0x4C78 JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3BE3 JUMPI PUSH2 0x4CBC PUSH1 0x0 DUP3 PUSH2 0x4C9C JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x4CA9 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4CEB JUMPI POP DUP1 JUMPDEST PUSH2 0xF3D PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x4CA9 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4D16 JUMPI PUSH2 0x4D16 PUSH2 0x407E JUMP JUMPDEST PUSH2 0x4D20 DUP3 SLOAD PUSH2 0x4806 JUMP JUMPDEST PUSH2 0x4D2B DUP3 DUP3 DUP6 PUSH2 0x4CC4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4D5F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4D47 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x16CA JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4D8F JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4D6F JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4DAB JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4DCD DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4DDA PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4DE7 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73696E676C652072656365697665207472616E73616374696F6E206C696D6974 DUP2 MSTORE PUSH14 0x80F8811185A5B1E481B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4E63 DUP3 DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x48A2 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A2063616C6C6572206D757374206265204F4654436F726500 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4E70 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x4EC2 DUP3 DUP12 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4ED5 DUP2 DUP10 DUP12 PUSH2 0x499D JUMP JUMPDEST SWAP1 POP PUSH2 0x4EE4 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x4EF1 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x4EFE PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4F11 DUP2 DUP5 DUP7 PUSH2 0x499D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F37 JUMPI PUSH2 0x4F37 PUSH2 0x407E JUMP JUMPDEST PUSH2 0x4F41 DUP3 SLOAD PUSH2 0x4806 JUMP JUMPDEST PUSH2 0x4F4C DUP3 DUP3 DUP6 PUSH2 0x4CC4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F80 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F68 JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FB0 JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4F90 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4FCC JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x4FE1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5042 DUP3 DUP8 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x504F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x505C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x2A8D PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5077 PUSH2 0x4120 DUP5 PUSH2 0x40DC JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5092 JUMPI PUSH2 0x5092 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414B DUP5 DUP3 DUP6 PUSH2 0x42D8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x50B1 JUMPI PUSH2 0x50B1 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x216A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5069 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D6 JUMPI PUSH2 0x50D6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x50EF JUMPI PUSH2 0x50EF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x216A DUP5 DUP3 DUP6 ADD PUSH2 0x509D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5109 DUP3 DUP8 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x511B DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x512A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x513C DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5146 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x5196 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST PUSH2 0x51A3 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x51B5 DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x51C4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x3D98 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x51EC JUMPI PUSH2 0x51EC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x51F8 DUP6 DUP6 PUSH2 0x48BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3E15 DUP6 DUP3 DUP7 ADD PUSH2 0x48BA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3F9D DUP3 DUP6 PUSH2 0x44BC JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20756E6B6E6F776E207061636B6574207479706500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5217 JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E7420746F6F20736D616C6C00000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x525B JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x529F JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x52D4 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 DUP2 MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x530C JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 DUP2 MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x535C JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x53B8 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x53CB DUP2 DUP7 DUP9 PUSH2 0x499D JUMP JUMPDEST SWAP1 POP PUSH2 0x53DA PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x513C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53F5 DUP3 DUP9 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5407 DUP2 DUP8 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x5416 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4BB2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x5428 DUP2 DUP6 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x390D DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5461 JUMPI PUSH2 0x5461 PUSH2 0x543C JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E745344206F766572666C6F77000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5466 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0xF8 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3D9C PUSH1 0xFF DUP3 AND PUSH2 0x54AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEB5 DUP3 PUSH1 0xC0 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3D9C PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH2 0x54C2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54EC DUP3 DUP7 PUSH2 0x54B6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x54FC DUP3 DUP6 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x550C DUP3 DUP5 PUSH2 0x54CE JUMP JUMPDEST POP PUSH1 0x8 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5517 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xEB5 DUP2 PUSH2 0x3F02 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5572 JUMPI PUSH2 0x5572 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x216A DUP5 DUP5 PUSH2 0x5552 JUMP JUMPDEST PUSH1 0x2A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E DUP2 MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x557E JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x746F55696E74385F6F75744F66426F756E6473 PUSH1 0x68 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x55D5 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x561E DUP3 DUP12 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5630 DUP2 DUP11 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x563F PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x4BB2 JUMP JUMPDEST PUSH2 0x564C PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH2 0x5659 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x5666 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3E94 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x5678 DUP2 DUP6 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x5687 PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3E94 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x56A5 DUP2 DUP7 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4BB2 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206D696E4761734C696D6974206E6F7420736574000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x56B4 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20676173206C696D697420697320746F6F206C6F770000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x56F8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x574B JUMPI PUSH2 0x574B PUSH2 0x543C JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F776E6572206973206E6F742073656E642063616C6C DUP2 MSTORE PUSH2 0x32B9 PUSH1 0xF1 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5750 JUMP JUMPDEST PUSH1 0x30 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 DUP2 MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x579F JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x580A DUP3 DUP10 PUSH2 0x48A2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x581C DUP2 DUP9 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5830 DUP2 DUP8 PUSH2 0x42FC JUMP JUMPDEST SWAP1 POP PUSH2 0x583F PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x584C PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x3EF6 DUP2 DUP5 PUSH2 0x42FC JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x585E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58A1 DUP3 DUP10 PUSH2 0x54B6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x58B1 DUP3 DUP9 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x58C1 DUP3 DUP8 PUSH2 0x54CE JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x58D1 DUP3 DUP7 PUSH2 0x3E94 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x58E1 DUP3 DUP6 PUSH2 0x54CE JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x3EF6 DUP3 DUP5 PUSH2 0x4B84 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x58FF DUP3 DUP7 PUSH2 0x44BC JUMP JUMPDEST PUSH2 0x4990 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x44BC JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x5924 JUMPI PUSH2 0x5924 PUSH2 0x48E6 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20696E76616C6964207061796C6F61640000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x592B JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C69642061646170746572506172616D7300000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x596F JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65205472616E73616374696F6E204C696D69742045786365656400 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x59B3 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565640000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x59F7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C7A4170703A207061796C6F61642073697A6520697320746F6F206C61726765 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5A3B JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F DUP2 MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x488B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5A7D JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F416464726573735F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5AD0 JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x746F55696E7436345F6F75744F66426F756E6473 PUSH1 0x60 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B0C JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F427974657333325F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B47 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE SWAP2 POP PUSH2 0x47D9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xEB5 DUP2 PUSH2 0x5B83 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2D 0xD3 0xBF 0xBE 0xD4 0xCF 0x2B CODESIZE 0xA7 PUSH28 0x8421F23E9C02CC363552CB91F700DAE1E9B12B7D1E4764736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"548:2622:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:825:2;;;;;;;;;;-1:-1:-1;1256:825:2;;;;;:::i;:::-;;:::i;:::-;;1644:211:9;;;;;;;;;;-1:-1:-1;1644:211:9;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4791:121:2;;;;;;;;;;-1:-1:-1;4791:121:2;;;;;:::i;:::-;;:::i;6649:140::-;;;;;;;;;;-1:-1:-1;6649:140:2;;;;;:::i;:::-;;:::i;4918:127::-;;;;;;;;;;-1:-1:-1;4918:127:2;;;;;:::i;:::-;;:::i;13980:1559:42:-;;;;;;;;;;-1:-1:-1;13980:1559:42;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;8423:334::-;;;;;;;;;;-1:-1:-1;8423:334:42;;;;;:::i;:::-;;:::i;12256:181::-;;;;;;;;;;-1:-1:-1;12256:181:42;;;;;:::i;:::-;;:::i;1861:336:9:-;;;;;;;;;;-1:-1:-1;1861:336:9;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2830:63:42:-;;;;;;;;;;-1:-1:-1;2830:63:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;6884:247:2:-;;;;;;;;;;-1:-1:-1;6884:247:2;;;;;:::i;:::-;;:::i;810:53::-;;;;;;;;;;-1:-1:-1;810:53:2;;;;;:::i;:::-;;;;;;;;;;;;;;11036:65:42;;;;;;;;;;;;;:::i;5051:176:2:-;;;;;;;;;;-1:-1:-1;5051:176:2;;;;;:::i;:::-;;:::i;366:37:10:-;;;;;;;;;;;;402:1;366:37;;429:33;;;;;;;;;;;;461:1;429:33;;;;;;;;;:::i;2255:64:42:-;;;;;;;;;;-1:-1:-1;2255:64:42;;;;;:::i;:::-;;;;;;;;;;;;;;12645:163;;;;;;;;;;-1:-1:-1;12645:163:42;;;;;:::i;:::-;;:::i;2063:56::-;;;;;;;;;;-1:-1:-1;2063:56:42;;;;;:::i;:::-;;;;;;;;;;;;;;7728:370;;;;;;;;;;-1:-1:-1;7728:370:42;;;;;:::i;:::-;;:::i;10611:147::-;;;;;;;;;;-1:-1:-1;10611:147:42;;;;;:::i;:::-;;:::i;622:85:3:-;;;;;;;;;;-1:-1:-1;622:85:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:84:22;;;;;;;;;;-1:-1:-1;1662:4:22;1685:7;;;1615:84;;11607:352:42;;;;;;;;;;-1:-1:-1;11607:352:42;;;;;:::i;:::-;;:::i;1955:380:3:-;;;;;;;;;;-1:-1:-1;1955:380:3;;;;;:::i;:::-;;:::i;532:348:9:-;;;;;;:::i;:::-;;:::i;9894:411:42:-;;;;;;;;;;-1:-1:-1;9894:411:42;;;;;:::i;:::-;;:::i;17771:47::-;;;;;;;;;682:51:2;;;;;;;;;;-1:-1:-1;682:51:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16512:441:42:-;;;;;;:::i;:::-;;:::i;7166:235::-;;;;;;;;;;-1:-1:-1;7166:235:42;;;;;:::i;:::-;;:::i;1707:38::-;;;;;;;;;;-1:-1:-1;1707:38:42;;;;;;;-1:-1:-1;;;;;1707:38:42;;;;;;;;;;:::i;10867:61::-;;;;;;;;;;;;;:::i;1345:251:44:-;;;;;;;;;;-1:-1:-1;1345:251:44;;;;;:::i;:::-;;:::i;517:37:10:-;;;;;;;;;;;;;;;739:65:2;;;;;;;;;;-1:-1:-1;739:65:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:21;;;;;;;;;;-1:-1:-1;1247:7:21;1273:6;;;;-1:-1:-1;;;;;1273:6:21;1201:85;;;;;;;:::i;2620:75:42:-;;;;;;;;;;-1:-1:-1;2620:75:42;;;;;:::i;:::-;;;;;;;;;;;;;;1807:116:44;;;;;;;;;;;;;:::i;2421:64:42:-;;;;;;;;;;-1:-1:-1;2421:64:42;;;;;:::i;:::-;;;;;;;;;;;;;;869:23:2;;;;;;;;;;-1:-1:-1;869:23:2;;;;-1:-1:-1;;;;;869:23:2;;;3368:41:42;;;;;;;;;;-1:-1:-1;3368:41:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;561:83:10;;;;;;;;;;-1:-1:-1;561:83:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:326:2;;;;;;;;;;-1:-1:-1;5864:326:2;;;;;:::i;:::-;;:::i;2203:440:9:-;;;;;;;;;;-1:-1:-1;2203:440:9;;;;;:::i;:::-;;:::i;5580:278:2:-;;;;;;;;;;-1:-1:-1;5580:278:2;;;;;:::i;:::-;;:::i;630:46::-;;;;;;;;;;;;;;;6196:133;;;;;;;;;;-1:-1:-1;6196:133:2;;;;;:::i;:::-;;:::i;1573:30:42:-;;;;;;;;;;-1:-1:-1;1573:30:42;;;;;;;;568:55:2;;;;;;;;;;;;618:5;568:55;;4545:240;;;;;;;;;;-1:-1:-1;4545:240:2;;;;;:::i;:::-;;:::i;9122:413:42:-;;;;;;;;;;-1:-1:-1;9122:413:42;;;;;:::i;:::-;;:::i;1871:68::-;;;;;;;;;;-1:-1:-1;1871:68:42;;;;;:::i;:::-;;;;;;;;;;;;;;16959:705;;;;;;:::i;:::-;;:::i;3034:61::-;;;;;;;;;;-1:-1:-1;3034:61:42;;;;;:::i;:::-;;;;;;;;;;;;;;6335:255:2;;;;;;;;;;-1:-1:-1;6335:255:2;;;;;:::i;:::-;;:::i;468:42:10:-;;;;;;;;;;;;509:1;468:42;;1739:625;;;;;;;;;;-1:-1:-1;1739:625:10;;;;;:::i;:::-;;:::i;5370:204:2:-;;;;;;;;;;-1:-1:-1;5370:204:2;;;;;:::i;:::-;;:::i;2074:198:21:-;;;;;;;;;;-1:-1:-1;2074:198:21;;;;;:::i;:::-;;:::i;4239:247:2:-;;;;;;;;;;-1:-1:-1;4239:247:2;;;;;:::i;:::-;;:::i;17969:99:42:-;;;;;;;;;;-1:-1:-1;18050:10:42;17969:99;;3198:71;;;;;;;;;;-1:-1:-1;3198:71:42;;;;;:::i;:::-;;;;;;;;;;;;;;1256:825:2;719:10:29;1532::2;-1:-1:-1;;;;;1508:35:2;;1500:78;;;;-1:-1:-1;;;1500:78:2;;;;;;;:::i;:::-;;;;;;;;;1618:32;;;1589:26;1618:32;;;:19;:32;;;;;1589:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1835:13;:20;1813:11;;:18;;:42;:70;;;;;1882:1;1859:13;:20;:24;1813:70;:124;;;;-1:-1:-1;1913:24:2;;;;;;1887:22;;;;1897:11;;;;1887:22;:::i;:::-;;;;;;;;:50;1813:124;1792:209;;;;-1:-1:-1;;;1792:209:2;;;;;;;:::i;:::-;2012:62;2031:11;2044;;2012:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2012:62:2;;;;;;;;;;;;;;;;;;;;;;2057:6;;-1:-1:-1;2012:62:2;-1:-1:-1;2065:8:2;;;;;;2012:62;;2065:8;;;;2012:62;;;;;;;;;-1:-1:-1;2012:18:2;;-1:-1:-1;;;2012:62:2:i;:::-;1425:656;1256:825;;;;;;:::o;1644:211:9:-;1746:4;-1:-1:-1;;;;;;1769:39:9;;-1:-1:-1;;;1769:39:9;;:79;;-1:-1:-1;;;;;;;;;;937:40:31;;;1812:36:9;1762:86;1644:211;-1:-1:-1;;1644:211:9:o;4791:121:2:-;1094:13:21;:11;:13::i;:::-;4870:35:2::1;::::0;-1:-1:-1;;;4870:35:2;;-1:-1:-1;;;;;4870:10:2::1;:25;::::0;::::1;::::0;:35:::1;::::0;4896:8;;4870:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4791:121:::0;:::o;6649:140::-;1094:13:21;:11;:13::i;:::-;6739:35:2::1;::::0;;::::1;;::::0;;;:22:::1;:35;::::0;;;;:43;6649:140::o;4918:127::-;1094:13:21;:11;:13::i;:::-;5000:38:2::1;::::0;-1:-1:-1;;;5000:38:2;;-1:-1:-1;;;;;5000:10:2::1;:28;::::0;::::1;::::0;:38:::1;::::0;5029:8;;5000:38:::1;;;:::i;13980:1559:42:-:0;-1:-1:-1;;;;;14503:16:42;;;14148:19;14503:16;;;:9;:16;;;;;;;;;14617:43;;;;;;;;;14633:6;;-1:-1:-1;;;14633:24:42;;;14148:19;;;;;;;;;;;;14503:16;;;14148:19;;14617:43;;;;14503:16;14633:6;;;:15;:24;18050:10;14633:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14617:43;;14592:68;-1:-1:-1;14684:40:42;14592:68;14716:7;14684:18;:40::i;:::-;14869:43;;;14788:29;14869:43;;;:30;:43;;;;;;;;;14944:30;:43;;;;;;15025:34;:47;;;;;;15098:22;:35;;;;;;;;15025:47;;-1:-1:-1;15098:35:42;;-1:-1:-1;14670:54:42;;-1:-1:-1;14944:43:42;;-1:-1:-1;14869:43:42;-1:-1:-1;14820:15:42;15195:6;15147:45;14869:43;14820:15;15147:45;:::i;:::-;:54;15143:242;;;15239:11;15217:33;;15288:21;15264:45;;15143:242;;;15340:34;15363:11;15340:34;;:::i;:::-;;;15143:242;15412:17;:119;;;;15462:25;15447:11;:40;;15446:84;;;;;15516:13;15493:19;:36;;15446:84;15394:138;;14417:1122;;13980:1559;;;;;;;;;;;:::o;8423:334::-;1094:13:21;:11;:13::i;:::-;8529:44:42::1;::::0;::::1;;::::0;;;:34:::1;:44;::::0;;;;;8519:54;::::1;;8511:105;;;;-1:-1:-1::0;;;8511:105:42::1;;;;;;;:::i;:::-;8658:32;::::0;::::1;;::::0;;;:22:::1;:32;::::0;;;;;;;8631:68;;::::1;::::0;::::1;::::0;8648:8;;8658:32;8692:6;;8631:68:::1;:::i;:::-;;;;;;;;8709:32;::::0;;::::1;;::::0;;;:22:::1;:32;::::0;;;;:41;8423:334::o;12256:181::-;1094:13:21;:11;:13::i;:::-;12344:35:42::1;::::0;::::1;;::::0;;;:19:::1;:35;::::0;;;;12337:42:::1;::::0;::::1;:::i;:::-;12394:36;12415:14;12394:36;;;;;;:::i;:::-;;;;;;;;12256:181:::0;:::o;1861:336:9:-;2069:14;2085:11;2115:75;2132:11;2145:10;2157:7;2166;2175:14;;2115:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2115:16:9;;-1:-1:-1;;;2115:75:9:i;:::-;2108:82;;;;1861:336;;;;;;;;;:::o;6884:247:2:-;7025:32;;;6980:4;7025:32;;;:19;:32;;;;;6996:61;;6980:4;;7025:32;6996:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7112:11;;7102:22;;;;;;;:::i;:::-;;;;;;;;7084:13;7074:24;;;;;;:50;7067:57;;;6884:247;;;;;;:::o;11036:65:42:-;1094:13:21;:11;:13::i;:::-;11084:10:42::1;:8;:10::i;:::-;11036:65::o:0;5051:176:2:-;1094:13:21;:11;:13::i;:::-;5165:55:2::1;::::0;-1:-1:-1;;;5165:55:2;;-1:-1:-1;;;;;5165:10:2::1;:29;::::0;::::1;::::0;:55:::1;::::0;5195:11;;5208;;;;5165:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;12645:163:42::0;1094:13:21;:11;:13::i;:::-;12723:18:42::1;:29:::0;;-1:-1:-1;;12723:29:42::1;::::0;::::1;;::::0;;::::1;::::0;;;12767:34:::1;::::0;::::1;::::0;-1:-1:-1;;12767:34:42::1;12645:163:::0;:::o;7728:370::-;1094:13:21;:11;:13::i;:::-;7846:32:42::1;::::0;::::1;;::::0;;;:22:::1;:32;::::0;;;;;7836:42;::::1;;7828:93;;;;-1:-1:-1::0;;;7828:93:42::1;;;;;;;:::i;:::-;7975:44;::::0;::::1;;::::0;;;:34:::1;:44;::::0;;;;;;;7936:92;;::::1;::::0;::::1;::::0;7965:8;;7975:44;8021:6;;7936:92:::1;:::i;:::-;;;;;;;;8038:44;::::0;;::::1;;::::0;;;:34:::1;:44;::::0;;;;:53;7728:370::o;10611:147::-;1094:13:21;:11;:13::i;:::-;10706:5:42::1;-1:-1:-1::0;;;;;10693:25:42::1;;10713:4;10693:25;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;10728:16:42;;;::::1;;::::0;;;:9:::1;:16;::::0;;;;:23;;-1:-1:-1;;10728:23:42::1;::::0;::::1;;::::0;;;::::1;::::0;;10611:147::o;11607:352::-;1094:13:21;:11;:13::i;:::-;11719:31:42::1;::::0;-1:-1:-1;;;11719:31:42;;11701:15:::1;::::0;-1:-1:-1;;;;;11719:16:42;::::1;::::0;::::1;::::0;:31:::1;::::0;11744:4:::1;::::0;11719:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11701:49;;11774:7;11764;:17;11760:92;;;11824:7;11833;11804:37;;-1:-1:-1::0;;;11804:37:42::1;;;;;;;;;:::i;11760:92::-;11895:3;-1:-1:-1::0;;;;;11867:41:42::1;11886:6;-1:-1:-1::0;;;;;11867:41:42::1;;11900:7;11867:41;;;;;;:::i;:::-;;;;;;;;11919:33;-1:-1:-1::0;;;;;11919:19:42;::::1;11939:3:::0;11944:7;11919:19:::1;:33::i;:::-;11691:268;11607:352:::0;;;:::o;1955:380:3:-;719:10:29;2205:4:3;2181:29;2173:80;;;;-1:-1:-1;;;2173:80:3;;;;;;;:::i;:::-;2263:65;2285:11;2298;;2263:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2263:65:3;;;;;;;;;;;;;;;;;;;;;;2311:6;;-1:-1:-1;2263:65:3;-1:-1:-1;2319:8:3;;;;;;2263:65;;2319:8;;;;2263:65;;;;;;;;;-1:-1:-1;2263:21:3;;-1:-1:-1;;;2263:65:3:i;:::-;1955:380;;;;;;:::o;532:348:9:-;742:131;748:5;755:11;768:10;780:7;789:25;;;;:11;:25;:::i;:::-;816:29;;;;;;;;:::i;:::-;847:25;;;;:11;:25;:::i;:::-;742:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;742:5:9;;-1:-1:-1;;;742:131:9:i;9894:411:42:-;1094:13:21;:11;:13::i;:::-;10020:51:42::1;::::0;::::1;;::::0;;;:41:::1;:51;::::0;;;;;10010:61;::::1;;9989:154;;;;-1:-1:-1::0;;;9989:154:42::1;;;;;;;:::i;:::-;10192:39;::::0;::::1;;::::0;;;:29:::1;:39;::::0;;;;;;;10158:82;;::::1;::::0;::::1;::::0;10182:8;;10192:39;10233:6;;10158:82:::1;:::i;:::-;;;;;;;;10250:39;::::0;;::::1;;::::0;;;:29:::1;:39;::::0;;;;:48;9894:411::o;682:51:2:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16512:441:42:-;16792:18;;;;16784:54;;;;-1:-1:-1;;;16784:54:42;;;;;;;:::i;:::-;16849:97;16867:5;16874:11;16887:10;16899:7;16908:8;;16918:14;16934:11;16849:17;:97::i;:::-;16512:441;;;;;;;;:::o;7166:235::-;1094:13:21;:11;:13::i;:::-;7238:36:42::1;7259:14;7238:20;:36::i;:::-;7311:6;::::0;7289:46:::1;::::0;-1:-1:-1;;;;;7289:46:42;;::::1;::::0;7311:6:::1;::::0;::::1;;::::0;7289:46:::1;::::0;;;::::1;7345:6;:49:::0;;-1:-1:-1;;;;;7345:49:42;;::::1;;;-1:-1:-1::0;;;;;;7345:49:42;;::::1;::::0;;;::::1;::::0;;7166:235::o;10867:61::-;1094:13:21;:11;:13::i;:::-;10913:8:42::1;:6;:8::i;1345:251:44:-:0;1094:13:21;:11;:13::i;:::-;1462:27:44::1;::::0;::::1;1521:1;1462:27:::0;;;:14:::1;:27;::::0;;;;;:40;;::::1;::::0;1490:11;;1462:40:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;-1:-1:-1;;;;;1462:48:44;::::1;;::::0;;;;;;:61;;;;1538:51:::1;::::0;1569:11;;1538:51:::1;:::i;:::-;;;;;;;;;1556:11;1582:6;1538:51;;;;;;;:::i;:::-;;;;;;;;1345:251:::0;;;:::o;1807:116::-;1866:7;1892:10;-1:-1:-1;;;;;1892:22:44;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1885:31;;1807:116;:::o;5864:326:2:-;5987:35;;;5967:17;5987:35;;;:19;:35;;;;;5967:55;;5943:12;;5967:17;5987:35;5967:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:4;:11;6055:1;6040:16;6032:58;;;;-1:-1:-1;;;6032:58:2;;;;;;;:::i;:::-;6107:31;6118:1;6135:2;6121:4;:11;:16;;;;:::i;:::-;6107:4;;:31;:10;:31::i;2203:440:9:-;2482:14;2498:11;2528:108;2552:11;2565:10;2577:7;2586:8;;2528:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2528:108:9;;;;;;;;;;;;;;;;;;;;;;2596:14;;-1:-1:-1;2612:7:9;;-1:-1:-1;2528:108:9;2621:14;;;;;;2528:108;;2621:14;;;;2528:108;;;;;;;;;-1:-1:-1;2528:23:9;;-1:-1:-1;;;2528:108:9:i;:::-;2521:115;;;;2203:440;;;;;;;;;;;;:::o;5580:278:2:-;1094:13:21;:11;:13::i;:::-;5751:14:2::1;;5775:4;5734:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;5734:47:2;;::::1;::::0;;;;;;5696:35:::1;::::0;::::1;;::::0;;;:19:::1;5734:47;5696:35:::0;;;:85:::1;::::0;:35;:85:::1;:::i;:::-;;5796:55;5820:14;5836;;5796:55;;;;;;;;:::i;:::-;;;;;;;;5580:278:::0;;;:::o;6196:133::-;1094:13:21;:11;:13::i;:::-;6265:8:2::1;:20:::0;;-1:-1:-1;;;;;;6265:20:2::1;-1:-1:-1::0;;;;;6265:20:2;::::1;;::::0;;6300:22:::1;::::0;::::1;::::0;::::1;::::0;6265:20;;6300:22:::1;:::i;4545:240::-:0;1094:13:21;:11;:13::i;:::-;4716:62:2::1;::::0;-1:-1:-1;;;4716:62:2;;-1:-1:-1;;;;;4716:10:2::1;:20;::::0;::::1;::::0;:62:::1;::::0;4737:8;;4747;;4757:11;;4770:7;;;;4716:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4545:240:::0;;;;;:::o;9122:413:42:-;1094:13:21;:11;:13::i;:::-;9247:39:42::1;::::0;::::1;;::::0;;;:29:::1;:39;::::0;;;;;9237:49;::::1;;9229:108;;;;-1:-1:-1::0;;;9229:108:42::1;;;;;;;:::i;:::-;9398:51;::::0;::::1;;::::0;;;:41:::1;:51;::::0;;;;;;;9352:106;;::::1;::::0;::::1;::::0;9388:8;;9398:51;9451:6;;9352:106:::1;:::i;:::-;;;;;;;;9468:51;::::0;;::::1;;::::0;;;:41:::1;:51;::::0;;;;:60;9122:413::o;16959:705::-;17170:32;;;17141:26;17170:32;;;:19;:32;;;;;17141:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17387:13;:20;17365:11;;:18;;:42;:86;;;;;17450:1;17427:13;:20;:24;17365:86;:156;;;;-1:-1:-1;17497:24:42;;;;;;17471:22;;;;17481:11;;;;17471:22;:::i;:::-;;;;;;;;:50;17365:156;17344:241;;;;-1:-1:-1;;;17344:241:42;;;;;;;:::i;:::-;17595:62;17614:11;17627;;17640:6;17648:8;;17595:18;:62::i;6335:255:2:-;1094:13:21;:11;:13::i;:::-;6470:28:2::1;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;:51;;;6536:47;::::1;::::0;::::1;::::0;6486:11;;6499;;6514:7;;6536:47:::1;:::i;1739:625:10:-:0;719:10:29;2041:4:10;2017:29;2009:73;;;;-1:-1:-1;;;2009:73:10;;;;;;;:::i;:::-;2119:42;2141:4;2148:3;2153:7;2119:13;:42::i;:::-;2109:52;;2206:3;-1:-1:-1;;;;;2176:43:10;2193:11;2176:43;;;2211:7;2176:43;;;;;;:::i;:::-;;;;;;;;2246:111;;-1:-1:-1;;;2246:111:10;;-1:-1:-1;;;;;2246:33:10;;;;;2285:11;;2246:111;;2298:11;;2311;;;;2324:6;;2332:5;;2339:7;;2348:8;;;;2246:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1739:625;;;;;;;;;;:::o;5370:204:2:-;1094:13:21;:11;:13::i;:::-;5470:35:2::1;::::0;::::1;;::::0;;;:19:::1;:35;::::0;;;;:43:::1;5508:5:::0;;5470:35;:43:::1;:::i;:::-;;5528:39;5545:14;5561:5;;5528:39;;;;;;;;:::i;2074:198:21:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:21;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:21::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;4239:247:2:-;4411:68;;-1:-1:-1;;;4411:68:2;;4380:12;;-1:-1:-1;;;;;4411:10:2;:20;;;;:68;;4432:8;;4442;;4460:4;;4467:11;;4411:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4411:68:2;;;;;;;;;;;;:::i;:::-;4404:75;;4239:247;;;;;;;:::o;985:592:3:-;1172:12;1186:19;1209:199;1256:9;1279:3;1319:34;;;1355:11;1368;1381:6;1389:8;1296:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1296:102:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1296:102:3;-1:-1:-1;;;;;;1296:102:3;;;;;;;;;;1217:4;;1209:199;;:33;:199::i;:::-;1171:237;;;;1466:7;1461:110;;1489:71;1509:11;1522;1535:6;1543:8;1553:6;1489:19;:71::i;1359:130:21:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:21;;;;;719:10:29;1422:23:21;1414:68;;;;-1:-1:-1;;;1414:68:21;;;;;;;:::i;1369:177:39:-;1450:7;1469:18;1490:15;1495:1;1498:6;1490:4;:15::i;:::-;1469:36;;1522:17;1531:7;1522:8;:17::i;2553:461:10:-;2753:14;2769:11;2835:20;2858:47;2877:10;2889:15;2896:7;2889:6;:15::i;:::-;2858:18;:47::i;:::-;2922:85;;-1:-1:-1;;;2922:85:10;;2835:70;;-1:-1:-1;;;;;;2922:10:10;:23;;;;:85;;2946:11;;2967:4;;2835:70;;2983:7;;2992:14;;2922:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2915:92;;;;;2553:461;;;;;;;;:::o;2433:117:22:-;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;-1:-1:-1;;2491:15:22::1;::::0;;2521:22:::1;719:10:29::0;2530:12:22::1;2521:22;;;;;;:::i;:::-;;;;;;;;2433:117::o:0;941:175:27:-;1023:86;1043:5;1073:23;;;1098:2;1102:5;1050:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1050:58:27;;;;;;;;;;;;;;-1:-1:-1;;;;;1050:58:27;-1:-1:-1;;;;;;1050:58:27;;;;;;;;;;1023:19;:86::i;:::-;941:175;;;:::o;3604:543:10:-;3793:16;3812:19;:8;3793:16;3812;:19::i;:::-;3793:38;-1:-1:-1;3846:21:10;;;3842:299;;3883:52;3892:11;3905;3918:6;3926:8;3883;:52::i;:::-;3842:299;;;-1:-1:-1;;3956:30:10;;;;3952:189;;4002:59;4018:11;4031;4044:6;4052:8;4002:15;:59::i;3952:189::-;4092:38;;-1:-1:-1;;;4092:38:10;;;;;;;:::i;4153:821::-;4414:11;4437:66;4452:11;4414;4474:14;4414:11;4437:14;:66::i;:::-;4527:20;4539:7;4527:11;:20::i;:::-;-1:-1:-1;4514:33:10;-1:-1:-1;4566:50:10;4577:5;4584:11;4597:10;4514:33;4566:10;:50::i;:::-;4557:59;;4683:1;4674:6;:10;4666:48;;;;-1:-1:-1;;;4666:48:10;;;;;;;:::i;:::-;4725:22;4750:46;4769:10;4781:14;4788:6;4781;:14::i;4750:46::-;4725:71;;4806:94;4814:11;4827:9;4838:14;4854:18;4874:14;4890:9;4806:7;:94::i;:::-;4948:10;4941:5;-1:-1:-1;;;;;4916:51:10;4928:11;4916:51;;;4960:6;4916:51;;;;;;:::i;:::-;;;;;;;;4427:547;4153:821;;;;;;;;;:::o;886:566:9:-;1163:282;1189:5;1208:11;1233:10;1257:7;1278:8;;1163:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1300:14:9;;-1:-1:-1;1328:25:9;;-1:-1:-1;;1328:25:9;;;:11;:25;:::i;:::-;1367:29;;;;;;;;:::i;:::-;1410:25;;;;:11;:25;:::i;:::-;1163:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1163:12:9;;-1:-1:-1;;;1163:282:9:i;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;2186:115:22;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:22::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;719:10:29::0;;640:96;9258:2770:0;9374:12;9422:7;9406:12;9422:7;9416:2;9406:12;:::i;:::-;:23;;9398:50;;;;-1:-1:-1;;;9398:50:0;;;;;;;:::i;:::-;9483:16;9492:7;9483:6;:16;:::i;:::-;9466:6;:13;:33;;9458:63;;;;-1:-1:-1;;;9458:63:0;;;;;;;:::i;:::-;9532:22;9595:15;;9623:1967;;;;11731:4;11725:11;11712:24;;11917:1;11906:9;11899:20;11965:4;11954:9;11950:20;11944:4;11937:34;9588:2397;;9623:1967;9805:4;9799:11;9786:24;;10464:2;10455:7;10451:16;10846:9;10839:17;10833:4;10829:28;10817:9;10806;10802:25;10798:60;10894:7;10890:2;10886:16;11146:6;11132:9;11125:17;11119:4;11115:28;11103:9;11095:6;11091:22;11087:57;11083:70;10920:425;11179:3;11175:2;11172:11;10920:425;;;11317:9;;11306:21;;11220:4;11212:13;;;;11252;10920:425;;;-1:-1:-1;;11363:26:0;;;11571:2;11554:11;-1:-1:-1;;11550:25:0;11544:4;11537:39;-1:-1:-1;9588:2397:0;-1:-1:-1;12012:9:0;9258:2770;-1:-1:-1;;;;9258:2770:0:o;3020:578:10:-;3289:14;3305:11;3374:20;3397:92;3423:10;3435;3447:15;3454:7;3447:6;:15::i;:::-;3464:8;3474:14;3397:25;:92::i;:::-;3506:85;;-1:-1:-1;;;3506:85:10;;3374:115;;-1:-1:-1;;;;;;3506:10:10;:23;;;;:85;;3530:11;;3551:4;;3374:115;;3567:7;;3576:14;;3506:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3499:92;;;;;3020:578;;;;;;;;;;:::o;2554:795:3:-;2801:27;;;2779:19;2801:27;;;:14;:27;;;;;;:40;;;;2829:11;;;;2801:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2801:48:3;;;;;;;;;;;;-1:-1:-1;2801:48:3;2859:73;;;;-1:-1:-1;;;2859:73:3;;;;;;;:::i;:::-;2973:11;2960:8;;2950:19;;;;;;;:::i;:::-;;;;;;;;:34;2942:80;;;;-1:-1:-1;;;2942:80:3;;;;;;;:::i;:::-;3068:27;;;3127:1;3068:27;;;:14;:27;;;;;;:40;;;;3096:11;;;;3068:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3068:48:3;;;;;;;;;;;;:61;;;;3196:65;;;;;;;;;;;;;;;;;;;3218:11;;3231;;3196:65;;;;;;3231:11;3196:65;;3231:11;3196:65;;;;;;;;;-1:-1:-1;;3196:65:3;;;;;;;;;;;;;;;;;;;;;;3244:6;;-1:-1:-1;3196:65:3;-1:-1:-1;3252:8:3;;;;;;3196:65;;3252:8;;;;3196:65;;;;;;;;;-1:-1:-1;3196:21:3;;-1:-1:-1;;;3196:65:3:i;:::-;3276:66;3296:11;3309;;3322:6;3330:11;3276:66;;;;;;;;;;:::i;:::-;;;;;;;;2725:624;2554:795;;;;;;:::o;22660:436:42:-;22799:7;1239:19:22;:17;:19::i;:::-;22835:25:42::1;::::0;-1:-1:-1;;;22835:25:42;;22818:14:::1;::::0;-1:-1:-1;;;;;22835:10:42::1;:20;::::0;::::1;::::0;:25:::1;::::0;22856:3;;22835:25:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22818:42:::0;-1:-1:-1;22891:4:42::1;-1:-1:-1::0;;;;;22874:22:42;::::1;::::0;22870:169:::1;;22912:37;-1:-1:-1::0;;;;;22912:10:42::1;:23;22936:3:::0;22941:7;22912:23:::1;:37::i;:::-;22870:169;;;22980:48;-1:-1:-1::0;;;;;22980:10:42::1;:27;23008:5:::0;23015:3;23020:7;22980:27:::1;:48::i;:::-;23055:25;::::0;-1:-1:-1;;;23055:25:42;;23083:6;;-1:-1:-1;;;;;23055:10:42::1;:20;::::0;::::1;::::0;:25:::1;::::0;23076:3;;23055:25:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;23048:41:::0;22660:436;-1:-1:-1;;;;;22660:436:42:o;2426:187:21:-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;2518:6;2534:17;;;-1:-1:-1;;;;;;2534:17:21;;;;;2566:40;;2518:6;;;;;;;2534:17;;2518:6;;2566:40;;;2489:124;2426:187;:::o;1111:1274:1:-;1265:4;1271:12;1331;1353:13;1376:24;1413:8;1403:19;;-1:-1:-1;;;;;1403:19:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:19:1;;1376:46;;1919:1;1890;1853:9;1847:16;1815:4;1804:9;1800:20;1766:1;1728:7;1699:4;1677:267;1665:279;;2011:16;2000:27;;2055:8;2046:7;2043:21;2040:76;;;2094:8;2083:19;;2040:76;2201:7;2188:11;2181:28;2321:7;2318:1;2311:4;2298:11;2294:22;2279:50;2356:8;;;;-1:-1:-1;1111:1274:1;-1:-1:-1;;;;;;1111:1274:1:o;1583:366:3:-;1852:8;1842:19;;;;;;1791:14;:27;1806:11;1791:27;;;;;;;;;;;;;;;1819:11;1791:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1791:48:3;;;;;;;;;:70;;;;1876:66;;;;1890:11;;1903;;1832:6;;1924:8;;1934:7;;1876:66;:::i;:::-;;;;;;;;1583:366;;;;;:::o;3551:136:39:-;-1:-1:-1;;;;;;;;;;;;3642:38:39;;;;;;;;3658:19;3663:1;:10;;;3675:1;3658:4;:19::i;:::-;3642:38;;3635:45;3551:136;-1:-1:-1;;;3551:136:39:o;994:214::-;1177:12;;1051:7;;1177:24;;186:4:40;;1177:24:39;:::i;8390:234:10:-;8451:6;;8485:22;23323:9:42;8485:7:10;:22;:::i;:::-;8469:38;-1:-1:-1;;;;;;8525:28:10;;;8517:67;;;;-1:-1:-1;;;8517:67:10;;;;;;;:::i;8940:183::-;9037:12;461:1;9094:10;9106:9;9068:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9061:55;;8940:183;;;;:::o;1945:106:22:-;1662:4;1685:7;;;2003:41;;;;-1:-1:-1;;;2003:41:22;;;;;;;:::i;5196:642:27:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:27;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:27;;;;;;;:::i;12391:298:0:-;12465:5;12507:10;:6;12516:1;12507:10;:::i;:::-;12490:6;:13;:27;;12482:59;;;;-1:-1:-1;;;12482:59:0;;;;;;;:::i;:::-;-1:-1:-1;12617:29:0;12633:3;12617:29;12611:36;;12391:298::o;4980:442:10:-;5129:10;5141:15;5160:28;5179:8;5160:18;:28::i;:::-;5128:60;;-1:-1:-1;5128:60:10;-1:-1:-1;;;;;;5202:16:10;;5198:67;;5247:6;5234:20;;5198:67;5275:11;5289:16;5296:8;5289:6;:16::i;:::-;5275:30;;5324:34;5334:11;5347:2;5351:6;5324:9;:34::i;:::-;5315:43;;5404:2;-1:-1:-1;;;;;5374:41:10;5391:11;5374:41;;;5408:6;5374:41;;;;;;:::i;:::-;;;;;;;;5118:304;;;4980:442;;;;:::o;6407:1855::-;6582:12;6596:10;6608:15;6625:27;6654:17;6675:35;6701:8;6675:25;:35::i;:::-;6581:129;;;;;;;;;;6721:13;6737:15;:28;6753:11;6737:28;;;;;;;;;;;;;;;6766:11;6737:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6737:49:10;;;;;;;;;;;;;;-1:-1:-1;6810:16:10;6817:8;6810:6;:16::i;:::-;6796:30;;6951:8;6946:164;;6984:45;6994:11;7015:4;7022:6;6984:9;:45::i;:::-;7043:28;;;;;;;:15;:28;;;;;;;:41;;6975:54;;-1:-1:-1;7095:4:10;;7043:41;;7072:11;;7043:41;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7043:49:10;;;;;;;;;;:56;;-1:-1:-1;;7043:56:10;;;;;;;;;;6946:164;-1:-1:-1;;;;;8353:20:10;;;7120:94;;7161:22;7180:2;7161:22;;;;;;:::i;:::-;;;;;;;;7197:7;;;;;;;;;7120:94;7285:11;7332;7368:6;7407:8;7441:4;7469:2;7496:6;7543:14;7265:17;7625:8;:33;;7648:10;-1:-1:-1;;;;;7625:33:10;;;;7636:9;7625:33;7614:44;;7669:12;7683:19;7706:226;7753:9;7776:3;7816:31;;;7849:10;7861;7873:5;7880;7887:3;7892:7;7901:15;7918:3;7793:129;;;;;;;;;;;;;;;:::i;7706:226::-;7668:264;;;;7947:7;7943:313;;;7985:18;;;;;;8022:59;;;;;;;;;;8057:10;;8069:5;;7985:18;;8022:59;:::i;:::-;;;;;;;;7956:136;7943:313;;;8178:67;8198:10;8210;8222:5;8229:7;8238:6;8178:19;:67::i;:::-;6571:1691;;;;;;;;;;;;;;;;;;6407:1855;;;;:::o;3011:453:2:-;3184:21;3208:28;3221:14;3208:12;:28::i;:::-;3265;;;;3246:16;3265:28;;;:15;:28;;;;;;;;:35;;;;;;;;;;3184:52;;-1:-1:-1;3318:15:2;3310:54;;;;-1:-1:-1;;;3310:54:2;;;;;;;:::i;:::-;3402:23;3416:9;3402:11;:23;:::i;:::-;3382:16;:43;;3374:83;;;;-1:-1:-1;;;3374:83:2;;;;;;;:::i;8755:179:10:-;8821:16;;8867:22;23323:9:42;8867:7:10;:22;:::i;:::-;8860:29;-1:-1:-1;8913:14:10;8860:29;8913:7;:14;:::i;:::-;8899:28;;8755:179;;;:::o;2194:390:44:-;2354:7;1239:19:22;:17;:19::i;:::-;-1:-1:-1;;;;;2381:21:44;::::1;719:10:29::0;2381:21:44::1;2373:68;;;;-1:-1:-1::0;;;2373:68:44::1;;;;;;;:::i;:::-;2451:46;2469:5;2476:11;2489:7;2451:17;:46::i;:::-;2507;::::0;-1:-1:-1;;;2507:46:44;;-1:-1:-1;;;;;2520:10:44::1;2507:30;::::0;::::1;::::0;:46:::1;::::0;2538:5;;2545:7;;2507:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;2570:7:44;;2194:390;-1:-1:-1;;;;;;;2194:390:44:o;2403:602:2:-;2679:32;;;2650:26;2679:32;;;:19;:32;;;;;2650:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:13;:20;2753:1;2729:25;2721:86;;;;-1:-1:-1;;;2721:86:2;;;;;;;:::i;:::-;2817:47;2835:11;2848:8;:15;2817:17;:47::i;:::-;2874:124;;-1:-1:-1;;;2874:124:2;;-1:-1:-1;;;;;2874:10:2;:15;;;;2897:10;;2874:124;;2909:11;;2922:13;;2937:8;;2947:14;;2963:18;;2983:14;;2874:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2640:365;2403:602;;;;;;:::o;5428:973:10:-;5758:11;5781:77;5796:11;509:1;5827:14;-1:-1:-1;;;;;5781:77:10;;:14;:77::i;:::-;5882:20;5894:7;5882:11;:20::i;:::-;-1:-1:-1;5869:33:10;-1:-1:-1;5921:50:10;5932:5;5939:11;5952:10;5869:33;5921:10;:50::i;:::-;5912:59;;5998:1;5989:6;:10;5981:48;;;;-1:-1:-1;;;5981:48:10;;;;;;;:::i;:::-;6107:22;6132:91;6158:10;6170;6182:14;6189:6;6182;:14::i;6132:91::-;6107:116;;6233:94;6241:11;6254:9;6265:14;6281:18;6301:14;6317:9;6233:7;:94::i;:::-;6375:10;6368:5;-1:-1:-1;;;;;6343:51:10;6355:11;6343:51;;;6387:6;6343:51;;;;;;:::i;:::-;;;;;;;;5771:630;5428:973;;;;;;;;;;;:::o;1767:106:22:-;1662:4;1685:7;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:22;;;;;;;:::i;9473:358:10:-;9684:12;509:1;9750:10;9762:9;-1:-1:-1;;;;;10592:23:10;;9799:14;9815:8;9715:109;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9708:116;;9473:358;;;;;;;:::o;1355:203:27:-;1455:96;1475:5;1505:27;;;1534:4;1540:2;1544:5;1482:68;;;;;;;;;;:::i;4295:97:39:-;4354:7;4380:5;4384:1;4380;:5;:::i;4108:223:28:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;9129:338:10:-;9211:10;;;9258:19;:8;9211:10;9258:16;:19::i;:::-;:30;;;:55;;;;;9292:8;:15;9311:2;9292:21;9258:55;9250:92;;;;-1:-1:-1;;;9250:92:10;;;;;;;:::i;:::-;9358:22;:8;9377:2;9358:18;:22::i;:::-;9353:27;-1:-1:-1;9439:21:10;:8;9457:2;9439:17;:21::i;:::-;9428:32;;9129:338;;;:::o;8630:119::-;8695:4;8718:24;23323:9:42;-1:-1:-1;;;;;8718:24:10;;;:::i;2856:312:44:-;3003:7;1239:19:22;:17;:19::i;:::-;3022:54:44::1;3043:10;3055:11;3068:7;3022:20;:54::i;:::-;3086:51;::::0;-1:-1:-1;;;3086:51:44;;-1:-1:-1;;;;;3099:10:44::1;3086:30;::::0;::::1;::::0;:51:::1;::::0;3117:10;;3129:7;;3086:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;3154:7:44;;2856:312;-1:-1:-1;;;;;;2856:312:44:o;9837:639:10:-;9971:12;;;10050:20;9971:12;509:1;10137:19;:8;9971:12;10137:16;:19::i;:::-;:39;;;10129:76;;;;-1:-1:-1;;;10129:76:10;;;;;;;:::i;:::-;10221:22;:8;10240:2;10221:18;:22::i;:::-;10216:27;-1:-1:-1;10302:21:10;:8;10320:2;10302:17;:21::i;:::-;10291:32;-1:-1:-1;10340:22:10;:8;10359:2;10340:18;:22::i;:::-;10333:29;-1:-1:-1;10388:21:10;:8;10406:2;10388:17;:21::i;:::-;10372:37;;10429:40;10444:2;10466;10448:8;:15;:20;;;;:::i;:::-;10429:8;;:40;:14;:40::i;:::-;10419:50;;9837:639;;;;;;;:::o;3470:266:2:-;3552:13;3610:2;3585:14;:21;:27;;3577:68;;;;-1:-1:-1;;;3577:68:2;;;;;;;:::i;:::-;-1:-1:-1;3716:2:2;3696:23;3690:30;;3470:266::o;18321:1790:42:-;-1:-1:-1;;;;;18500:16:42;;18475:22;18500:16;;;:9;:16;;;;;;;;18589:54;;;;18626:7;18321:1790;;;:::o;18589:54::-;18769:43;;;;;;;;;;18785:6;;-1:-1:-1;;;18785:24:42;;;-1:-1:-1;;;;18769:43:42;;;18785:6;;;-1:-1:-1;;;;;18785:6:42;:15;:24;18050:10;18785:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18769:43;;18744:68;-1:-1:-1;18836:40:42;18744:68;18868:7;18836:18;:40::i;:::-;19026:43;;;18940:29;19026:43;;;:30;:43;;;;;;;;;19109:30;:43;;;;;;19198:34;:47;;;;;;19279:22;:35;;;;;;;;18822:54;;-1:-1:-1;18972:15:42;;19109:43;;19198:47;19402:40;;;;19394:84;;;;-1:-1:-1;;;19394:84:42;;;;;;;:::i;:::-;19619:6;19574:42;19598:18;19574:21;:42;:::i;:::-;:51;19570:261;;;19688:43;;;;;;;:30;:43;;;;;:67;;;19663:11;;-1:-1:-1;19570:261:42;;;19786:34;19809:11;19786:34;;:::i;:::-;;;19570:261;19928:13;19905:19;:36;;19897:79;;;;-1:-1:-1;;;19897:79:42;;;;;;;:::i;:::-;-1:-1:-1;;20039:43:42;;;;;;;;:30;:43;;;;;:65;;;;-1:-1:-1;;;;;;;18321:1790:42:o;3742:395:2:-;3864:35;;;3840:21;3864:35;;;:22;:35;;;;;;;3913:21;;;3909:135;;-1:-1:-1;618:5:2;3909:135;4077:16;4061:12;:32;;4053:77;;;;-1:-1:-1;;;4053:77:2;;;;;;;:::i;5165:446:28:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:28;;;;;;;:::i;:::-;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:28;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:28:o;12034:351:0:-;12110:7;12154:11;:6;12163:2;12154:11;:::i;:::-;12137:6;:13;:28;;12129:62;;;;-1:-1:-1;;;12129:62:0;;;;;;;:::i;:::-;-1:-1:-1;12279:30:0;12295:4;12279:30;12273:37;-1:-1:-1;;;12269:71:0;;;12034:351::o;13311:302::-;13386:6;13429:10;:6;13438:1;13429:10;:::i;:::-;13412:6;:13;:27;;13404:60;;;;-1:-1:-1;;;13404:60:0;;;;;;;:::i;:::-;-1:-1:-1;13541:29:0;13557:3;13541:29;13535:36;;13311:302::o;20358:1970:42:-;-1:-1:-1;;;;;20556:21:42;;20531:22;20556:21;;;:9;:21;;;;;;;;20650:54;;;;20687:7;20358:1970;;;:::o;20650:54::-;20847:52;;;;;;;;;;20863:6;;-1:-1:-1;;;20863:33:42;;;-1:-1:-1;;;;20847:52:42;;;20863:6;;;-1:-1:-1;;;;;20863:6:42;:15;:33;18050:10;20863:33;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20847:52;;20822:77;-1:-1:-1;20931:48:42;20822:77;20963:15;20931:18;:48::i;:::-;21151:50;;;20990:29;21151:50;;;:37;:50;;;;;;;;;21238:27;:40;;;;;;21331:41;:54;;;;;;21426:29;:42;;;;;;;;20909:70;;-1:-1:-1;21022:15:42;;21238:40;;21331:54;21564:55;;;;21556:99;;;;-1:-1:-1;;;21556:99:42;;;;;;;:::i;:::-;21803:6;21751:49;21775:25;21751:21;:49;:::i;:::-;:58;21747:285;;;21877:50;;;;;;;:37;:50;;;;;:74;;;21844:19;;-1:-1:-1;21747:285:42;;;21982:39;22002:19;21982:39;;:::i;:::-;;;21747:285;22135:20;22115:16;:40;;22107:83;;;;-1:-1:-1;;;22107:83:42;;;;;;;:::i;:::-;-1:-1:-1;;22262:40:42;;;;;;;;:27;:40;;;;;:59;;;;-1:-1:-1;;;;;;;20358:1970:42:o;14550:317:0:-;14626:7;14670:11;:6;14679:2;14670:11;:::i;:::-;14653:6;:13;:28;;14645:62;;;;-1:-1:-1;;;14645:62:0;;;;;;;:::i;:::-;-1:-1:-1;14791:30:0;14807:4;14791:30;14785:37;;14550:317::o;7671:628:28:-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;8353:20:10;;;8113:60:28;;;;-1:-1:-1;;;8113:60:28;;;;;;;:::i;:::-;-1:-1:-1;8208:10:28;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:28;;;;;;;;:::i;8976:379::-;8821:540;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;429:120:65:-;410:6;399:18;;501:23;494:5;491:34;481:62;;539:1;536;529:12;555:137;625:20;;654:32;625:20;654:32;:::i;1080:552::-;1137:8;1147:6;1197:3;1190:4;1182:6;1178:17;1174:27;1164:122;;1205:79;548:2622:44;;;1205:79:65;-1:-1:-1;1305:20:65;;-1:-1:-1;;;;;1337:30:65;;1334:117;;;1370:79;548:2622:44;;;1370:79:65;1484:4;1476:6;1472:17;1460:29;;1538:3;1530:4;1522:6;1518:17;1508:8;1504:32;1501:41;1498:128;;;1545:79;548:2622:44;;;1545:79:65;1080:552;;;;;:::o;1745:120::-;-1:-1:-1;;;;;1703:30:65;;1817:23;1638:101;1871:137;1941:20;;1970:32;1941:20;1970:32;:::i;2014:1157::-;2120:6;2128;2136;2144;2152;2160;2209:3;2197:9;2188:7;2184:23;2180:33;2177:120;;;2216:79;548:2622:44;;;2216:79:65;2336:1;2361:52;2405:7;2385:9;2361:52;:::i;:::-;2351:62;;2307:116;2490:2;2479:9;2475:18;2462:32;-1:-1:-1;;;;;2513:6:65;2510:30;2507:117;;;2543:79;548:2622:44;;;2543:79:65;2656:64;2712:7;2703:6;2692:9;2688:22;2656:64;:::i;:::-;2638:82;;;;2433:297;2769:2;2795:52;2839:7;2830:6;2819:9;2815:22;2795:52;:::i;:::-;2785:62;;2740:117;2924:2;2913:9;2909:18;2896:32;-1:-1:-1;;;;;2947:6:65;2944:30;2941:117;;;2977:79;548:2622:44;;;2977:79:65;3090:64;3146:7;3137:6;3126:9;3122:22;3090:64;:::i;:::-;3072:82;;;;2867:297;2014:1157;;;;;;;;:::o;3332:120::-;-1:-1:-1;;;;;;3242:78:65;;3404:23;3177:149;3458:137;3528:20;;3557:32;3528:20;3557:32;:::i;3601:327::-;3659:6;3708:2;3696:9;3687:7;3683:23;3679:32;3676:119;;;3714:79;548:2622:44;;;3714:79:65;3834:1;3859:52;3903:7;3883:9;3859:52;:::i;4030:109::-;4004:13;;3997:21;4111;4106:3;4099:34;4030:109;;:::o;4145:210::-;4270:2;4255:18;;4283:65;4259:9;4321:6;4283:65;:::i;4361:327::-;4419:6;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;548:2622:44;;;4474:79:65;4594:1;4619:52;4663:7;4643:9;4619:52;:::i;4777:122::-;4868:5;4850:24;4694:77;4905:139;4976:20;;5005:33;4976:20;5005:33;:::i;5050:472::-;5117:6;5125;5174:2;5162:9;5153:7;5149:23;5145:32;5142:119;;;5180:79;548:2622:44;;;5180:79:65;5300:1;5325:52;5369:7;5349:9;5325:52;:::i;:::-;5315:62;;5271:116;5426:2;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5397:118;5050:472;;;;;:::o;5660:96::-;5697:7;-1:-1:-1;;;;;5594:54:65;;5726:24;5528:126;5762:122;5835:24;5853:5;5835:24;:::i;5890:139::-;5961:20;;5990:33;5961:20;5990:33;:::i;6035:617::-;6111:6;6119;6127;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;548:2622:44;;;6182:79:65;6302:1;6327:53;6372:7;6352:9;6327:53;:::i;:::-;6317:63;;6273:117;6429:2;6455:52;6499:7;6490:6;6479:9;6475:22;6455:52;:::i;:::-;6445:62;;6400:117;6556:2;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6527:118;6035:617;;;;;:::o;6658:118::-;6763:5;6745:24;4694:77;6782:862;7069:3;7054:19;;7083:65;7058:9;7121:6;7083:65;:::i;:::-;7158:72;7226:2;7215:9;7211:18;7202:6;7158:72;:::i;:::-;7240;7308:2;7297:9;7293:18;7284:6;7240:72;:::i;:::-;7322;7390:2;7379:9;7375:18;7366:6;7322:72;:::i;:::-;7404:73;7472:3;7461:9;7457:19;7448:6;7404:73;:::i;:::-;7487;7555:3;7544:9;7540:19;7531:6;7487:73;:::i;:::-;7570:67;7632:3;7621:9;7617:19;7608:6;7570:67;:::i;:::-;6782:862;;;;;;;;;;:::o;8006:116::-;4004:13;;3997:21;8076;3934:90;8128:133;8196:20;;8225:30;8196:20;8225:30;:::i;8267:1101::-;8369:6;8377;8385;8393;8401;8409;8458:3;8446:9;8437:7;8433:23;8429:33;8426:120;;;8465:79;548:2622:44;;;8465:79:65;8585:1;8610:52;8654:7;8634:9;8610:52;:::i;:::-;8600:62;;8556:116;8711:2;8737:53;8782:7;8773:6;8762:9;8758:22;8737:53;:::i;:::-;8727:63;;8682:118;8839:2;8865:53;8910:7;8901:6;8890:9;8886:22;8865:53;:::i;:::-;8855:63;;8810:118;8967:2;8993:50;9035:7;9026:6;9015:9;9011:22;8993:50;:::i;:::-;8983:60;;8938:115;9120:3;9109:9;9105:19;9092:33;-1:-1:-1;;;;;9144:6:65;9141:30;9138:117;;;9174:79;548:2622:44;;;9374:332:65;9533:2;9518:18;;9546:71;9522:9;9590:6;9546:71;:::i;:::-;9627:72;9695:2;9684:9;9680:18;9671:6;9627:72;:::i;9712:222::-;9843:2;9828:18;;9856:71;9832:9;9900:6;9856:71;:::i;9940:670::-;10018:6;10026;10034;10083:2;10071:9;10062:7;10058:23;10054:32;10051:119;;;10089:79;548:2622:44;;;10089:79:65;10209:1;10234:52;10278:7;10258:9;10234:52;:::i;:::-;10224:62;;10180:116;10363:2;10352:9;10348:18;10335:32;-1:-1:-1;;;;;10386:6:65;10383:30;10380:117;;;10416:79;548:2622:44;;;10416:79:65;10529:64;10585:7;10576:6;10565:9;10561:22;10529:64;:::i;:::-;10511:82;;;;10306:297;9940:670;;;;;:::o;10708:112::-;10691:4;10680:16;;10791:22;10616:86;10826:214;10953:2;10938:18;;10966:67;10942:9;11006:6;10966:67;:::i;11046:323::-;11102:6;11151:2;11139:9;11130:7;11126:23;11122:32;11119:119;;;11157:79;548:2622:44;;;11157:79:65;11277:1;11302:50;11344:7;11324:9;11302:50;:::i;11375:468::-;11440:6;11448;11497:2;11485:9;11476:7;11472:23;11468:32;11465:119;;;11503:79;548:2622:44;;;11503:79:65;11623:1;11648:53;11693:7;11673:9;11648:53;:::i;:::-;11638:63;;11594:117;11750:2;11776:50;11818:7;11809:6;11798:9;11794:22;11776:50;:::i;12080:180::-;-1:-1:-1;;;12125:1:65;12118:88;12225:4;12222:1;12215:15;12249:4;12246:1;12239:15;12266:281;-1:-1:-1;;12064:2:65;12044:14;;12040:28;12341:6;12337:40;12479:6;12467:10;12464:22;-1:-1:-1;;;;;12431:10:65;12428:34;12425:62;12422:88;;;12490:18;;:::i;:::-;12526:2;12519:22;-1:-1:-1;;12266:281:65:o;12553:129::-;12587:6;12614:20;73:2;67:9;;7:75;12614:20;12604:30;;12643:33;12671:4;12663:6;12643:33;:::i;:::-;12553:129;;;:::o;12688:307::-;12749:4;-1:-1:-1;;;;;12831:6:65;12828:30;12825:56;;;12861:18;;:::i;:::-;-1:-1:-1;;12064:2:65;12044:14;;12040:28;12983:4;12973:15;;12688:307;-1:-1:-1;;12688:307:65:o;13001:148::-;13099:6;13094:3;13089;13076:30;-1:-1:-1;13140:1:65;13122:16;;13115:27;13001:148::o;13155:423::-;13232:5;13257:65;13273:48;13314:6;13273:48;:::i;:::-;13257:65;:::i;:::-;13248:74;;13345:6;13338:5;13331:21;13383:4;13376:5;13372:16;13421:3;13412:6;13407:3;13403:16;13400:25;13397:112;;;13428:79;548:2622:44;;;13428:79:65;13518:54;13565:6;13560:3;13555;13518:54;:::i;:::-;13238:340;13155:423;;;;;:::o;13597:338::-;13652:5;13701:3;13694:4;13686:6;13682:17;13678:27;13668:122;;13709:79;548:2622:44;;;13709:79:65;13826:6;13813:20;13851:78;13925:3;13917:6;13910:4;13902:6;13898:17;13851:78;:::i;13941:793::-;14025:6;14033;14041;14090:2;14078:9;14069:7;14065:23;14061:32;14058:119;;;14096:79;548:2622:44;;;14096:79:65;14216:1;14241:52;14285:7;14265:9;14241:52;:::i;:::-;14231:62;;14187:116;14370:2;14359:9;14355:18;14342:32;-1:-1:-1;;;;;14393:6:65;14390:30;14387:117;;;14423:79;548:2622:44;;;14423:79:65;14528:62;14582:7;14573:6;14562:9;14558:22;14528:62;:::i;:::-;14518:72;;14313:287;14639:2;14665:52;14709:7;14700:6;14689:9;14685:22;14665:52;:::i;15092:111::-;15144:7;15173:24;15191:5;15173:24;:::i;15209:152::-;15297:39;15330:5;15297:39;:::i;15367:169::-;15453:20;;15482:48;15453:20;15482:48;:::i;15542:649::-;15634:6;15642;15650;15699:2;15687:9;15678:7;15674:23;15670:32;15667:119;;;15705:79;548:2622:44;;;15705:79:65;15825:1;15850:68;15910:7;15890:9;15850:68;:::i;:::-;15840:78;;15796:132;15967:2;15993:53;16038:7;16029:6;16018:9;16014:22;15993:53;:::i;16358:236::-;16436:5;16477:2;16468:6;16463:3;16459:16;16455:25;16452:112;;;16483:79;548:2622:44;;;16483:79:65;-1:-1:-1;16582:6:65;16358:236;-1:-1:-1;16358:236:65:o;16600:1133::-;16726:6;16734;16742;16750;16758;16807:3;16795:9;16786:7;16782:23;16778:33;16775:120;;;16814:79;548:2622:44;;;16814:79:65;16934:1;16959:53;17004:7;16984:9;16959:53;:::i;:::-;16949:63;;16905:117;17061:2;17087:52;17131:7;17122:6;17111:9;17107:22;17087:52;:::i;:::-;17077:62;;17032:117;17188:2;17214:53;17259:7;17250:6;17239:9;17235:22;17214:53;:::i;:::-;17204:63;;17159:118;17316:2;17342:53;17387:7;17378:6;17367:9;17363:22;17342:53;:::i;:::-;17332:63;;17287:118;17472:3;17461:9;17457:19;17444:33;-1:-1:-1;;;;;17496:6:65;17493:30;17490:117;;;17526:79;548:2622:44;;;17526:79:65;17631:85;17708:7;17699:6;17688:9;17684:22;17631:85;:::i;:::-;17621:95;;17415:311;16600:1133;;;;;;;;:::o;18017:248::-;18099:1;18109:113;18123:6;18120:1;18117:13;18109:113;;;18199:11;;;18193:18;18180:11;;;18173:39;18145:2;18138:10;18109:113;;;-1:-1:-1;;18256:1:65;18238:16;;18231:27;18017:248::o;18271:373::-;18357:3;18385:38;18417:5;17818:12;;17739:98;18385:38;17948:19;;;18000:4;17991:14;;18432:77;;18518:65;18576:6;18571:3;18564:4;18557:5;18553:16;18518:65;:::i;:::-;-1:-1:-1;;12064:2:65;12044:14;;12040:28;18608:29;18599:39;;;;18271:373;-1:-1:-1;;;18271:373:65:o;18650:309::-;18799:2;18812:47;;;18784:18;;18876:76;18784:18;18938:6;18876:76;:::i;18965:1621::-;19119:6;19127;19135;19143;19151;19159;19167;19175;19224:3;19212:9;19203:7;19199:23;19195:33;19192:120;;;19231:79;548:2622:44;;;19231:79:65;19351:1;19376:53;19421:7;19401:9;19376:53;:::i;:::-;19366:63;;19322:117;19478:2;19504:52;19548:7;19539:6;19528:9;19524:22;19504:52;:::i;:::-;19494:62;;19449:117;19605:2;19631:53;19676:7;19667:6;19656:9;19652:22;19631:53;:::i;:::-;19621:63;;19576:118;19733:2;19759:53;19804:7;19795:6;19784:9;19780:22;19759:53;:::i;:::-;19749:63;;19704:118;19889:3;19878:9;19874:19;19861:33;-1:-1:-1;;;;;19913:6:65;19910:30;19907:117;;;19943:79;548:2622:44;;;19943:79:65;20056:64;20112:7;20103:6;20092:9;20088:22;20056:64;:::i;:::-;20038:82;;;;19832:298;20169:3;20196:52;20240:7;20231:6;20220:9;20216:22;20196:52;:::i;:::-;20186:62;;20140:118;20325:3;20314:9;20310:19;20297:33;-1:-1:-1;;;;;20349:6:65;20346:30;20343:117;;;20379:79;548:2622:44;;;20379:79:65;20484:85;20561:7;20552:6;20541:9;20537:22;20484:85;:::i;:::-;20474:95;;20268:311;18965:1621;;;;;;;;;;;:::o;20592:329::-;20651:6;20700:2;20688:9;20679:7;20675:23;20671:32;20668:119;;;20706:79;548:2622:44;;;20706:79:65;20826:1;20851:53;20896:7;20876:9;20851:53;:::i;20993:142::-;21043:9;21076:53;-1:-1:-1;;;;;5594:54:65;;21094:34;4694:77;21103:24;4760:5;4694:77;21094:34;-1:-1:-1;;;;;5594:54:65;;5528:126;21141;21191:9;21224:37;21255:5;21224:37;:::i;21273:159::-;21356:9;21389:37;21420:5;21389:37;:::i;21438:197::-;21558:70;21622:5;21558:70;:::i;21641:288::-;21805:2;21790:18;;21818:104;21794:9;21895:6;21818:104;:::i;21935:470::-;22001:6;22009;22058:2;22046:9;22037:7;22033:23;22029:32;22026:119;;;22064:79;548:2622:44;;;22064:79:65;22184:1;22209:52;22253:7;22233:9;22209:52;:::i;:::-;22199:62;;22155:116;22310:2;22336:52;22380:7;22371:6;22360:9;22356:22;22336:52;:::i;22411:118::-;22498:24;22516:5;22498:24;:::i;22535:222::-;22666:2;22651:18;;22679:71;22655:9;22723:6;22679:71;:::i;22763:1589::-;22893:6;22901;22909;22917;22925;22933;22941;22949;22957;23006:3;22994:9;22985:7;22981:23;22977:33;22974:120;;;23013:79;548:2622:44;;;23013:79:65;23133:1;23158:52;23202:7;23182:9;23158:52;:::i;:::-;23148:62;;23104:116;23259:2;23285:53;23330:7;23321:6;23310:9;23306:22;23285:53;:::i;:::-;23275:63;;23230:118;23387:2;23413:53;23458:7;23449:6;23438:9;23434:22;23413:53;:::i;:::-;23403:63;;23358:118;23543:2;23532:9;23528:18;23515:32;-1:-1:-1;;;;;23566:6:65;23563:30;23560:117;;;23596:79;548:2622:44;;;23596:79:65;23709:64;23765:7;23756:6;23745:9;23741:22;23709:64;:::i;:::-;23691:82;;;;23486:297;23822:3;23849:52;23893:7;23884:6;23873:9;23869:22;23849:52;:::i;:::-;23839:62;;23793:118;23950:3;23977:50;24019:7;24010:6;23999:9;23995:22;23977:50;:::i;:::-;23967:60;;23921:116;24104:3;24093:9;24089:19;24076:33;-1:-1:-1;;;;;24128:6:65;24125:30;24122:117;;;24158:79;548:2622:44;;;24158:79:65;24271:64;24327:7;24318:6;24307:9;24303:22;24271:64;:::i;:::-;24253:82;;;;24047:298;22763:1589;;;;;;;;;;;:::o;24990:959::-;25085:6;25093;25101;25109;25117;25166:3;25154:9;25145:7;25141:23;25137:33;25134:120;;;25173:79;548:2622:44;;;25173:79:65;25293:1;25318:52;25362:7;25342:9;25318:52;:::i;:::-;25308:62;;25264:116;25419:2;25445:52;25489:7;25480:6;25469:9;25465:22;25445:52;:::i;:::-;25435:62;;25390:117;25546:2;25572:53;25617:7;25608:6;25597:9;25593:22;25572:53;:::i;:::-;25562:63;;25517:118;25702:2;25691:9;25687:18;25674:32;-1:-1:-1;;;;;25725:6:65;25722:30;25719:117;;;25755:79;548:2622:44;;;25755:79:65;25868:64;25924:7;25915:6;25904:9;25900:22;25868:64;:::i;:::-;25850:82;;;;25645:297;24990:959;;;;;;;;:::o;25955:615::-;26030:6;26038;26046;26095:2;26083:9;26074:7;26070:23;26066:32;26063:119;;;26101:79;548:2622:44;;;26101:79:65;26221:1;26246:52;26290:7;26270:9;26246:52;:::i;26576:1741::-;26718:6;26726;26734;26742;26750;26758;26766;26774;26782;26790;26839:3;26827:9;26818:7;26814:23;26810:33;26807:120;;;26846:79;548:2622:44;;;26846:79:65;26966:1;26991:52;27035:7;27015:9;26991:52;:::i;:::-;26981:62;;26937:116;27120:2;27109:9;27105:18;27092:32;-1:-1:-1;;;;;27143:6:65;27140:30;27137:117;;;27173:79;548:2622:44;;;27173:79:65;27286:64;27342:7;27333:6;27322:9;27318:22;27286:64;:::i;:::-;27268:82;;;;27063:297;27399:2;27425:52;27469:7;27460:6;27449:9;27445:22;27425:52;:::i;:::-;27415:62;;27370:117;27526:2;27552:53;27597:7;27588:6;27577:9;27573:22;27552:53;:::i;:::-;27542:63;;27497:118;27654:3;27681:53;27726:7;27717:6;27706:9;27702:22;27681:53;:::i;:::-;27671:63;;27625:119;27783:3;27810:53;27855:7;27846:6;27835:9;27831:22;27810:53;:::i;:::-;27800:63;;27754:119;27940:3;27929:9;27925:19;27912:33;-1:-1:-1;;;;;27964:6:65;27961:30;27958:117;;;27994:79;548:2622:44;;;27994:79:65;28107:64;28163:7;28154:6;28143:9;28139:22;28107:64;:::i;:::-;28089:82;;;;27883:298;28220:3;28247:53;28292:7;28283:6;28272:9;28268:22;28247:53;:::i;:::-;28237:63;;28191:119;26576:1741;;;;;;;;;;;;;:::o;28323:761::-;28407:6;28415;28423;28431;28480:3;28468:9;28459:7;28455:23;28451:33;28448:120;;;28487:79;548:2622:44;;;28487:79:65;28607:1;28632:52;28676:7;28656:9;28632:52;:::i;:::-;28622:62;;28578:116;28733:2;28759:52;28803:7;28794:6;28783:9;28779:22;28759:52;:::i;:::-;28749:62;;28704:117;28860:2;28886:53;28931:7;28922:6;28911:9;28907:22;28886:53;:::i;:::-;28876:63;;28831:118;28988:2;29014:53;29059:7;29050:6;29039:9;29035:22;29014:53;:::i;:::-;29004:63;;28959:118;28323:761;;;;;;;:::o;29451:366::-;29678:2;17948:19;;29593:3;18000:4;17991:14;;29405:32;29382:56;;29607:74;-1:-1:-1;29690:93:65;-1:-1:-1;29808:2:65;29799:12;;29451:366::o;29823:419::-;30027:2;30040:47;;;30012:18;;30104:131;30012:18;30104:131;:::i;30248:180::-;-1:-1:-1;;;30293:1:65;30286:88;30393:4;30390:1;30383:15;30417:4;30414:1;30407:15;30434:320;30515:1;30505:12;;30562:1;30552:12;;;30573:81;;30639:4;30631:6;30627:17;30617:27;;30573:81;30701:2;30693:6;30690:14;30670:18;30667:38;30664:84;;30720:18;;:::i;30935:327::-;31049:3;31168:56;31217:6;31212:3;31205:5;31168:56;:::i;:::-;-1:-1:-1;;31240:16:65;;30935:327::o;31268:291::-;31408:3;31430:103;31529:3;31520:6;31512;31430:103;:::i;31796:366::-;32023:2;17948:19;;31938:3;18000:4;17991:14;;31705:34;31682:58;;-1:-1:-1;;;31769:2:65;31757:15;;31750:33;31952:74;-1:-1:-1;32035:93:65;-1:-1:-1;32153:2:65;32144:12;;31796:366::o;32168:419::-;32372:2;32385:47;;;32357:18;;32449:131;32357:18;32449:131;:::i;32593:115::-;410:6;399:18;;32678:23;334:89;32714:218;32843:2;32828:18;;32856:69;32832:9;32898:6;32856:69;:::i;32938:143::-;33020:13;;33042:33;33020:13;33042:33;:::i;33087:351::-;33157:6;33206:2;33194:9;33185:7;33181:23;33177:32;33174:119;;;33212:79;548:2622:44;;;33212:79:65;33332:1;33357:64;33413:7;33393:9;33357:64;:::i;33444:180::-;-1:-1:-1;;;33489:1:65;33482:88;33589:4;33586:1;33579:15;33613:4;33610:1;33603:15;33630:194;33761:9;;;33783:11;;;33780:37;;;33797:18;;:::i;33830:191::-;33959:9;;;33981:10;;;33978:36;;;33994:18;;:::i;34258:366::-;34485:2;17948:19;;34400:3;18000:4;17991:14;;34167:34;34144:58;;-1:-1:-1;;;34231:2:65;34219:15;;34212:33;34414:74;-1:-1:-1;34497:93:65;34027:225;34630:419;34834:2;34847:47;;;34819:18;;34911:131;34819:18;34911:131;:::i;35055:438::-;35240:2;35225:18;;35253:69;35229:9;35295:6;35253:69;:::i;:::-;35332:72;35400:2;35389:9;35385:18;35376:6;35332:72;:::i;:::-;35414;35482:2;35471:9;35467:18;35458:6;35414:72;:::i;35521:314::-;17948:19;;;35617:3;18000:4;17991:14;;35631:77;;35718:56;35767:6;35762:3;35755:5;35718:56;:::i;:::-;-1:-1:-1;;12064:2:65;12044:14;;12040:28;35799:29;11972:102;35841:435;36026:2;36011:18;;36039:69;36015:9;36081:6;36039:69;:::i;:::-;36155:9;36149:4;36145:20;36140:2;36129:9;36125:18;36118:48;36183:86;36264:4;36255:6;36247;36183:86;:::i;36513:366::-;36740:2;17948:19;;36655:3;18000:4;17991:14;;36422:34;36399:58;;-1:-1:-1;;;36486:2:65;36474:15;;36467:33;36669:74;-1:-1:-1;36752:93:65;36282:225;36885:419;37089:2;37102:47;;;37074:18;;37166:131;37074:18;37166:131;:::i;37541:366::-;37768:2;17948:19;;37683:3;18000:4;17991:14;;37450:34;37427:58;;-1:-1:-1;;;37514:2:65;37502:15;;37495:33;37697:74;-1:-1:-1;37780:93:65;37310:225;37913:419;38117:2;38130:47;;;38102:18;;38194:131;38102:18;38194:131;:::i;39473:724::-;39550:4;;39599:25;;-1:-1:-1;;39675:14:65;39671:29;;;39667:48;39643:73;;39633:168;;39720:79;548:2622:44;;;39720:79:65;39832:18;39822:8;39818:33;39810:41;;39884:4;39871:18;39861:28;;-1:-1:-1;;;;;39904:6:65;39901:30;39898:117;;;39934:79;548:2622:44;;;39934:79:65;40042:2;40036:4;40032:13;40024:21;;40099:4;40091:6;40087:17;40071:14;40067:38;40061:4;40057:49;40054:136;;;40109:79;548:2622:44;;;40109:79:65;39563:634;39473:724;;;;;:::o;40442:366::-;40669:2;17948:19;;40584:3;18000:4;17991:14;;40343:34;40320:58;;-1:-1:-1;;;40407:2:65;40395:15;;40388:41;40598:74;-1:-1:-1;40681:93:65;40203:233;40814:419;41018:2;41031:47;;;41003:18;;41095:131;41003:18;41095:131;:::i;41418:366::-;41645:2;17948:19;;41560:3;18000:4;17991:14;;41379:25;41356:49;;41574:74;-1:-1:-1;41657:93:65;41239:173;41790:419;41994:2;42007:47;;;41979:18;;42071:131;41979:18;42071:131;:::i;42215:386::-;42319:3;42347:38;42379:5;17818:12;;17739:98;42347:38;42498:65;42556:6;42551:3;42544:4;42537:5;42533:16;42498:65;:::i;:::-;42579:16;;;;;42215:386;-1:-1:-1;;42215:386:65:o;42607:271::-;42737:3;42759:93;42848:3;42839:6;42759:93;:::i;42884:115::-;-1:-1:-1;;;;;1703:30:65;;42969:23;1638:101;43005:324;43160:2;43145:18;;43173:69;43149:9;43215:6;43173:69;:::i;:::-;43252:70;43318:2;43307:9;43303:18;43294:6;43252:70;:::i;43520:366::-;43747:2;17948:19;;43662:3;18000:4;17991:14;;43475:31;43452:55;;43676:74;-1:-1:-1;43759:93:65;43335:179;43892:419;44096:2;44109:47;;;44081:18;;44173:131;44081:18;44173:131;:::i;44417:94::-;44456:7;44485:20;44499:5;44394:2;44390:14;;44317:94;44517:100;44556:7;44585:26;44605:5;44585:26;:::i;44623:157::-;44728:45;44748:24;44766:5;44748:24;:::i;:::-;44728:45;:::i;44786:432::-;44954:3;44976:103;45075:3;45066:6;45058;44976:103;:::i;:::-;44969:110;;45089:75;45160:3;45151:6;45089:75;:::i;:::-;-1:-1:-1;45189:2:65;45180:12;;44786:432;-1:-1:-1;;;44786:432:65:o;45981:142::-;46031:9;46064:53;46082:34;46109:5;46082:34;4694:77;46210:269;46320:39;46351:7;46320:39;:::i;:::-;46409:11;;-1:-1:-1;;45701:1:65;45685:18;;;;45553:16;;;45910:9;45899:21;45553:16;;45939:30;;;;46368:105;;-1:-1:-1;46210:269:65:o;46564:189::-;46530:3;46682:65;46740:6;46732;46726:4;46682:65;:::i;46759:186::-;46836:3;46829:5;46826:14;46819:120;;;46890:39;46927:1;46920:5;46890:39;:::i;:::-;46863:1;46852:13;46819:120;;46951:541;47051:2;47046:3;47043:11;47040:445;;;45272:4;45308:14;;;45352:4;45339:18;;45454:2;45449;45438:14;;45434:23;47158:8;47154:44;47351:2;47339:10;47336:18;47333:49;;;-1:-1:-1;47372:8:65;47333:49;47395:80;45454:2;45449;45438:14;;45434:23;47441:8;47437:37;47424:11;47395:80;:::i;48095:1390::-;17818:12;;-1:-1:-1;;;;;48303:6:65;48300:30;48297:56;;;48333:18;;:::i;:::-;48377:38;48409:4;48403:11;48377:38;:::i;:::-;48462:66;48521:6;48513;48507:4;48462:66;:::i;:::-;48579:4;48611:2;48600:14;;48628:1;48623:617;;;;49284:1;49301:6;49298:77;;;-1:-1:-1;49341:19:65;;;49335:26;49298:77;-1:-1:-1;;47731:1:65;47727:13;;47592:16;47694:56;47769:15;;48076:1;48072:11;;48063:21;49395:4;49388:81;49257:222;48593:886;;48623:617;45272:4;45308:14;;;45352:4;45339:18;;-1:-1:-1;;48659:22:65;;;48781:208;48795:7;48792:1;48789:14;48781:208;;;48865:19;;;48859:26;48844:42;;48972:2;48957:18;;;;48925:1;48913:14;;;;48811:12;48781:208;;;49017:6;49008:7;49005:19;49002:179;;;49066:19;;;49060:26;-1:-1:-1;;49160:4:65;49148:17;;47731:1;47727:13;47592:16;47694:56;47769:15;49103:64;;49002:179;49227:1;49223;49215:6;49211:14;49207:22;49201:4;49194:36;48630:610;;;48593:886;48185:1300;;;48095:1390;;:::o;49491:652::-;49730:3;49715:19;;49744:69;49719:9;49786:6;49744:69;:::i;:::-;49823:70;49889:2;49878:9;49874:18;49865:6;49823:70;:::i;:::-;49903:72;49971:2;49960:9;49956:18;49947:6;49903:72;:::i;:::-;50022:9;50016:4;50012:20;50007:2;49996:9;49992:18;49985:48;50050:86;50131:4;50122:6;50114;50050:86;:::i;50388:366::-;50615:2;17948:19;;50530:3;18000:4;17991:14;;50289:34;50266:58;;-1:-1:-1;;;50353:2:65;50341:15;;50334:41;50544:74;-1:-1:-1;50627:93:65;50149:233;50760:419;50964:2;50977:47;;;50949:18;;51041:131;50949:18;51041:131;:::i;51185:434::-;51368:2;51353:18;;51381:69;51357:9;51423:6;51381:69;:::i;:::-;51460:70;51526:2;51515:9;51511:18;51502:6;51460:70;:::i;51812:366::-;52039:2;17948:19;;51954:3;18000:4;17991:14;;51765:33;51742:57;;51968:74;-1:-1:-1;52051:93:65;51625:181;52184:419;52388:2;52401:47;;;52373:18;;52465:131;52373:18;52465:131;:::i;52609:981::-;52932:3;52917:19;;52946:69;52921:9;52988:6;52946:69;:::i;:::-;53062:9;53056:4;53052:20;53047:2;53036:9;53032:18;53025:48;53090:86;53171:4;53162:6;53154;53090:86;:::i;:::-;53082:94;;53186:70;53252:2;53241:9;53237:18;53228:6;53186:70;:::i;:::-;53266:72;53334:2;53323:9;53319:18;53310:6;53266:72;:::i;:::-;53348:73;53416:3;53405:9;53401:19;53392:6;53348:73;:::i;:::-;53469:9;53463:4;53459:20;53453:3;53442:9;53438:19;53431:49;53497:86;53578:4;53569:6;53561;53497:86;:::i;:::-;53489:94;52609:981;-1:-1:-1;;;;;;;;;;52609:981:65:o;53698:1398::-;53859:3;-1:-1:-1;;;;;53920:6:65;53917:30;53914:56;;;53950:18;;:::i;:::-;53994:38;54026:4;54020:11;53994:38;:::i;:::-;54079:66;54138:6;54130;54124:4;54079:66;:::i;:::-;54172:1;54201:2;54193:6;54190:14;54218:1;54213:631;;;;54888:1;54905:6;54902:84;;;-1:-1:-1;54952:19:65;;;54939:33;54902:84;-1:-1:-1;;47731:1:65;47727:13;;47592:16;47694:56;47769:15;;48076:1;48072:11;;48063:21;55006:4;54999:81;54861:229;54183:907;;54213:631;45272:4;45308:14;;;45352:4;45339:18;;-1:-1:-1;;54249:22:65;;;54371:215;54385:7;54382:1;54379:14;54371:215;;;54462:19;;;54449:33;54434:49;;54569:2;54554:18;;;;54522:1;54510:14;;;;54401:12;54371:215;;;54614:6;54605:7;54602:19;54599:186;;;-1:-1:-1;;54764:4:65;54752:17;;47731:1;47727:13;47592:16;47694:56;54670:19;;;54657:33;47769:15;54707:64;;54599:186;54831:1;54827;54819:6;54815:14;54811:22;54805:4;54798:36;54220:624;;;54183:907;53795:1301;;;53698:1398;;;:::o;55333:366::-;55560:2;17948:19;;55475:3;18000:4;17991:14;;55242:34;55219:58;;-1:-1:-1;;;55306:2:65;55294:15;;55287:33;55489:74;-1:-1:-1;55572:93:65;55102:225;55705:419;55909:2;55922:47;;;55894:18;;55986:131;55894:18;55986:131;:::i;56130:545::-;56341:3;56326:19;;56355:69;56330:9;56397:6;56355:69;:::i;:::-;56434:70;56500:2;56489:9;56485:18;56476:6;56434:70;:::i;:::-;56514:72;56582:2;56571:9;56567:18;56558:6;56514:72;:::i;:::-;56596;56664:2;56653:9;56649:18;56640:6;56596:72;:::i;56681:432::-;56769:5;56794:65;56810:48;56851:6;56810:48;:::i;56794:65::-;56785:74;;56882:6;56875:5;56868:21;56920:4;56913:5;56909:16;56958:3;56949:6;56944:3;56940:16;56937:25;56934:112;;;56965:79;548:2622:44;;;56965:79:65;57055:52;57100:6;57095:3;57090;57055:52;:::i;57132:353::-;57198:5;57247:3;57240:4;57232:6;57228:17;57224:27;57214:122;;57255:79;548:2622:44;;;57255:79:65;57365:6;57359:13;57390:89;57475:3;57467:6;57460:4;57452:6;57448:17;57390:89;:::i;57491:522::-;57570:6;57619:2;57607:9;57598:7;57594:23;57590:32;57587:119;;;57625:79;548:2622:44;;;57625:79:65;57745:24;;-1:-1:-1;;;;;57785:30:65;;57782:117;;;57818:79;548:2622:44;;;57818:79:65;57923:73;57988:7;57979:6;57968:9;57964:22;57923:73;:::i;58019:719::-;58266:3;58251:19;;58280:69;58255:9;58322:6;58280:69;:::i;:::-;58396:9;58390:4;58386:20;58381:2;58370:9;58366:18;58359:48;58424:76;58495:4;58486:6;58424:76;:::i;:::-;58416:84;;58510:70;58576:2;58565:9;58561:18;58552:6;58510:70;:::i;:::-;58627:9;58621:4;58617:20;58612:2;58601:9;58597:18;58590:48;58655:76;58726:4;58717:6;58655:76;:::i;:::-;58647:84;58019:719;-1:-1:-1;;;;;;58019:719:65:o;58932:366::-;59159:2;17948:19;;;58884:34;17991:14;;58861:58;;;59074:3;59171:93;58744:182;59304:419;59508:2;59521:47;;;59493:18;;59585:131;59493:18;59585:131;:::i;59729:822::-;60000:3;59985:19;;60014:69;59989:9;60056:6;60014:69;:::i;:::-;60093:72;60161:2;60150:9;60146:18;60137:6;60093:72;:::i;:::-;60212:9;60206:4;60202:20;60197:2;60186:9;60182:18;60175:48;60240:76;60311:4;60302:6;60240:76;:::i;:::-;60232:84;;60326:66;60388:2;60377:9;60373:18;60364:6;60326:66;:::i;:::-;60440:9;60434:4;60430:20;60424:3;60413:9;60409:19;60402:49;60468:76;60539:4;60530:6;60468:76;:::i;60557:507::-;60636:6;60644;60693:2;60681:9;60672:7;60668:23;60664:32;60661:119;;;60699:79;548:2622:44;;;60699:79:65;60819:1;60844:64;60900:7;60880:9;60844:64;:::i;:::-;60834:74;;60790:128;60957:2;60983:64;61039:7;61030:6;61019:9;61015:22;60983:64;:::i;61070:332::-;61229:2;61214:18;;61242:71;61218:9;61286:6;61242:71;:::i;61592:366::-;61819:2;17948:19;;61734:3;18000:4;17991:14;;61548:30;61525:54;;61748:74;-1:-1:-1;61831:93:65;61408:178;61964:419;62168:2;62181:47;;;62153:18;;62245:131;62153:18;62245:131;:::i;62570:366::-;62797:2;17948:19;;62712:3;18000:4;17991:14;;62529:27;62506:51;;62726:74;-1:-1:-1;62809:93:65;62389:175;62942:419;63146:2;63159:47;;;63131:18;;63223:131;63131:18;63223:131;:::i;63537:366::-;63764:2;17948:19;;63679:3;18000:4;17991:14;;-1:-1:-1;;;63484:40:65;;63693:74;-1:-1:-1;63776:93:65;63367:164;63909:419;64113:2;64126:47;;;64098:18;;64190:131;64098:18;64190:131;:::i;64507:366::-;64734:2;17948:19;;64649:3;18000:4;17991:14;;-1:-1:-1;;;64451:43:65;;64663:74;-1:-1:-1;64746:93:65;64334:167;64879:419;65083:2;65096:47;;;65068:18;;65160:131;65068:18;65160:131;:::i;65532:366::-;65759:2;17948:19;;65674:3;18000:4;17991:14;;65444:34;65421:58;;-1:-1:-1;;;65508:2:65;65496:15;;65489:30;65688:74;-1:-1:-1;65771:93:65;65304:222;65904:419;66108:2;66121:47;;;66093:18;;66185:131;66093:18;66185:131;:::i;66555:366::-;66782:2;17948:19;;66697:3;18000:4;17991:14;;66469:34;66446:58;;-1:-1:-1;;;66533:2:65;66521:15;;66514:28;66711:74;-1:-1:-1;66794:93:65;66329:220;66927:419;67131:2;67144:47;;;67116:18;;67208:131;67116:18;67208:131;:::i;67352:652::-;67591:3;67576:19;;67605:69;67580:9;67647:6;67605:69;:::i;:::-;67721:9;67715:4;67711:20;67706:2;67695:9;67691:18;67684:48;67749:86;67830:4;67821:6;67813;67749:86;:::i;:::-;67741:94;;67845:70;67911:2;67900:9;67896:18;67887:6;67845:70;:::i;:::-;67925:72;67993:2;67982:9;67978:18;67969:6;67925:72;:::i;68010:917::-;68303:3;68288:19;;68317:69;68292:9;68359:6;68317:69;:::i;:::-;68433:9;68427:4;68423:20;68418:2;68407:9;68403:18;68396:48;68461:76;68532:4;68523:6;68461:76;:::i;:::-;68453:84;;68547:70;68613:2;68602:9;68598:18;68589:6;68547:70;:::i;:::-;68664:9;68658:4;68654:20;68649:2;68638:9;68634:18;68627:48;68692:76;68763:4;68754:6;68692:76;:::i;:::-;68684:84;;68816:9;68810:4;68806:20;68800:3;68789:9;68785:19;68778:49;68844:76;68915:4;68906:6;68844:76;:::i;68933:180::-;-1:-1:-1;;;68978:1:65;68971:88;69078:4;69075:1;69068:15;69102:4;69099:1;69092:15;69119:185;69159:1;69249;69239:35;;69254:18;;:::i;:::-;-1:-1:-1;69289:9:65;;69119:185::o;69492:366::-;69719:2;17948:19;;69634:3;18000:4;17991:14;;69450:28;69427:52;;69648:74;-1:-1:-1;69731:93:65;69310:176;69864:419;70068:2;70081:47;;;70053:18;;70145:131;70053:18;70145:131;:::i;70391:93::-;70428:7;70457:21;70472:5;70367:3;70363:15;;70289:96;70490:149;70591:41;10691:4;10680:16;;70591:41;:::i;70995:94::-;71033:7;71062:21;71077:5;70971:3;70967:15;;70893:96;71095:153;71198:43;-1:-1:-1;;;;;1703:30:65;;71198:43;:::i;71254:524::-;71416:3;71431:71;71498:3;71489:6;71431:71;:::i;:::-;71527:1;71522:3;71518:11;71511:18;;71539:75;71610:3;71601:6;71539:75;:::i;:::-;71639:2;71634:3;71630:12;71623:19;;71652:73;71721:3;71712:6;71652:73;:::i;:::-;-1:-1:-1;71750:1:65;71741:11;;71254:524;-1:-1:-1;;;71254:524:65:o;71960:366::-;72187:2;17948:19;;72102:3;18000:4;17991:14;;-1:-1:-1;;;71901:46:65;;72116:74;-1:-1:-1;72199:93:65;71784:170;72332:419;72536:2;72549:47;;;72521:18;;72613:131;72521:18;72613:131;:::i;72757:137::-;72836:13;;72858:30;72836:13;72858:30;:::i;72900:345::-;72967:6;73016:2;73004:9;72995:7;72991:23;72987:32;72984:119;;;73022:79;548:2622:44;;;73022:79:65;73142:1;73167:61;73220:7;73200:9;73167:61;:::i;73486:366::-;73713:2;17948:19;;73628:3;18000:4;17991:14;;73391:34;73368:58;;-1:-1:-1;;;73455:2:65;73443:15;;73436:37;73642:74;-1:-1:-1;73725:93:65;73251:229;73858:419;74062:2;74075:47;;;74047:18;;74139:131;74047:18;74139:131;:::i;74458:366::-;74685:2;17948:19;;74600:3;18000:4;17991:14;;-1:-1:-1;;;74400:45:65;;74614:74;-1:-1:-1;74697:93:65;74283:169;74830:419;75034:2;75047:47;;;75019:18;;75111:131;75019:18;75111:131;:::i;75255:1163::-;75614:3;75599:19;;75628:69;75603:9;75670:6;75628:69;:::i;:::-;75744:9;75738:4;75734:20;75729:2;75718:9;75714:18;75707:48;75772:76;75843:4;75834:6;75772:76;:::i;:::-;75764:84;;75858:70;75924:2;75913:9;75909:18;75900:6;75858:70;:::i;:::-;75938:72;76006:2;75995:9;75991:18;75982:6;75938:72;:::i;:::-;76020:73;76088:3;76077:9;76073:19;76064:6;76020:73;:::i;:::-;76103;76171:3;76160:9;76156:19;76147:6;76103:73;:::i;:::-;76224:9;76218:4;76214:20;76208:3;76197:9;76193:19;76186:49;76252:76;76323:4;76314:6;76252:76;:::i;:::-;76244:84;;76338:73;76406:3;76395:9;76391:19;76382:6;76338:73;:::i;:::-;75255:1163;;;;;;;;;;;:::o;76424:525::-;76627:2;76640:47;;;76612:18;;76704:76;76612:18;76766:6;76704:76;:::i;:::-;76696:84;;76790:70;76856:2;76845:9;76841:18;76832:6;76790:70;:::i;77137:366::-;77364:2;17948:19;;77279:3;18000:4;17991:14;;77095:28;77072:52;;77293:74;-1:-1:-1;77376:93:65;76955:176;77509:419;77713:2;77726:47;;;77698:18;;77790:131;77698:18;77790:131;:::i;78117:366::-;78344:2;17948:19;;78259:3;18000:4;17991:14;;78074:29;78051:53;;78273:74;-1:-1:-1;78356:93:65;77934:177;78489:419;78693:2;78706:47;;;78678:18;;78770:131;78678:18;78770:131;:::i;78914:176::-;78946:1;79036;79026:35;;79041:18;;:::i;:::-;-1:-1:-1;79075:9:65;;78914:176::o;79323:366::-;79550:2;17948:19;;79465:3;18000:4;17991:14;;79236:34;79213:58;;-1:-1:-1;;;79300:2:65;79288:15;;79281:29;79479:74;-1:-1:-1;79562:93:65;79096:221;79695:419;79899:2;79912:47;;;79884:18;;79976:131;79884:18;79976:131;:::i;80361:366::-;80588:2;17948:19;;80503:3;18000:4;17991:14;;80260:34;80237:58;;-1:-1:-1;;;80324:2:65;80312:15;;80305:43;80517:74;-1:-1:-1;80600:93:65;80120:235;80733:419;80937:2;80950:47;;;80922:18;;81014:131;80922:18;81014:131;:::i;81306:1064::-;81645:3;81630:19;;81659:69;81634:9;81701:6;81659:69;:::i;:::-;81775:9;81769:4;81765:20;81760:2;81749:9;81745:18;81738:48;81803:76;81874:4;81865:6;81803:76;:::i;:::-;81795:84;;81926:9;81920:4;81916:20;81911:2;81900:9;81896:18;81889:48;81954:76;82025:4;82016:6;81954:76;:::i;:::-;81946:84;;82040:88;82124:2;82113:9;82109:18;82100:6;82040:88;:::i;:::-;82138:73;82206:3;82195:9;82191:19;82182:6;82138:73;:::i;:::-;82259:9;82253:4;82249:20;82243:3;82232:9;82228:19;82221:49;82287:76;82358:4;82349:6;82287:76;:::i;82548:366::-;82775:2;17948:19;;82690:3;18000:4;17991:14;;-1:-1:-1;;;82493:42:65;;82704:74;-1:-1:-1;82787:93:65;82376:166;82920:419;83124:2;83137:47;;;83109:18;;83201:131;83109:18;83201:131;:::i;83345:957::-;83607:3;83622:71;83689:3;83680:6;83622:71;:::i;:::-;83718:1;83713:3;83709:11;83702:18;;83730:75;83801:3;83792:6;83730:75;:::i;:::-;83830:2;83825:3;83821:12;83814:19;;83843:73;83912:3;83903:6;83843:73;:::i;:::-;83941:1;83936:3;83932:11;83925:18;;83953:75;84024:3;84015:6;83953:75;:::i;:::-;84053:2;84048:3;84044:12;84037:19;;84066:73;84135:3;84126:6;84066:73;:::i;:::-;84164:1;84159:3;84155:11;84148:18;;84183:93;84272:3;84263:6;84183:93;:::i;84308:442::-;84495:2;84480:18;;84508:71;84484:9;84552:6;84508:71;:::i;:::-;84589:72;84657:2;84646:9;84642:18;84633:6;84589:72;:::i;84756:410::-;84901:9;;;;85063;;85096:15;;;85090:22;;85043:83;85020:139;;85139:18;;:::i;:::-;84804:362;84756:410;;;;:::o;85352:366::-;85579:2;17948:19;;85494:3;18000:4;17991:14;;85312:26;85289:50;;85508:74;-1:-1:-1;85591:93:65;85172:174;85724:419;85928:2;85941:47;;;85913:18;;86005:131;85913:18;86005:131;:::i;86333:366::-;86560:2;17948:19;;86475:3;18000:4;17991:14;;86289:30;86266:54;;86489:74;-1:-1:-1;86572:93:65;86149:178;86705:419;86909:2;86922:47;;;86894:18;;86986:131;86894:18;86986:131;:::i;87317:366::-;87544:2;17948:19;;87459:3;18000:4;17991:14;;87270:33;87247:57;;87473:74;-1:-1:-1;87556:93:65;87130:181;87689:419;87893:2;87906:47;;;87878:18;;87970:131;87878:18;87970:131;:::i;88300:366::-;88527:2;17948:19;;88442:3;18000:4;17991:14;;88254:32;88231:56;;88456:74;-1:-1:-1;88539:93:65;88114:180;88672:419;88876:2;88889:47;;;88861:18;;88953:131;88861:18;88953:131;:::i;89285:366::-;89512:2;17948:19;;;89237:34;17991:14;;89214:58;;;89427:3;89524:93;89097:182;89657:419;89861:2;89874:47;;;89846:18;;89938:131;89846:18;89938:131;:::i;90313:366::-;90540:2;17948:19;;90455:3;18000:4;17991:14;;90222:34;90199:58;;-1:-1:-1;;;90286:2:65;90274:15;;90267:33;90469:74;-1:-1:-1;90552:93:65;90082:225;90685:419;90889:2;90902:47;;;90874:18;;90966:131;90874:18;90966:131;:::i;91287:366::-;91514:2;17948:19;;91429:3;18000:4;17991:14;;-1:-1:-1;;;91227:47:65;;91443:74;-1:-1:-1;91526:93:65;91110:171;91659:419;91863:2;91876:47;;;91848:18;;91940:131;91848:18;91940:131;:::i;92260:366::-;92487:2;17948:19;;92402:3;18000:4;17991:14;;-1:-1:-1;;;92201:46:65;;92416:74;-1:-1:-1;92499:93:65;92084:170;92632:419;92836:2;92849:47;;;92821:18;;92913:131;92821:18;92913:131;:::i;93234:366::-;93461:2;17948:19;;93376:3;18000:4;17991:14;;-1:-1:-1;;;93174:47:65;;93390:74;-1:-1:-1;93473:93:65;93057:171;93606:419;93810:2;93823:47;;;93795:18;;93887:131;93795:18;93887:131;:::i;94216:366::-;94443:2;17948:19;;94358:3;18000:4;17991:14;;94171:31;94148:55;;94372:74;-1:-1:-1;94455:93:65;94031:179;94588:419;94792:2;94805:47;;;94777:18;;94869:131;94777:18;94869:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"4709800","executionCost":"infinite","totalCost":"infinite"},"external":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"384","NO_EXTRA_GAS()":"406","PT_SEND()":"347","PT_SEND_AND_CALL()":"367","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"infinite","chainIdToLast24HourReceiveWindowStart(uint16)":"infinite","chainIdToLast24HourReceived(uint16)":"infinite","chainIdToLast24HourTransferred(uint16)":"infinite","chainIdToLast24HourWindowStart(uint16)":"infinite","chainIdToMaxDailyLimit(uint16)":"infinite","chainIdToMaxDailyReceiveLimit(uint16)":"infinite","chainIdToMaxSingleReceiveTransactionLimit(uint16)":"infinite","chainIdToMaxSingleTransactionLimit(uint16)":"infinite","circulatingSupply()":"infinite","creditedPackets(uint16,bytes,uint64)":"infinite","dropFailedMessage(uint16,bytes,uint64)":"infinite","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"infinite","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isEligibleToSend(address,uint16,uint256)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","oracle()":"infinite","owner()":"infinite","pause()":"infinite","paused()":"2504","payloadSizeLimitLookup(uint16)":"infinite","precrime()":"infinite","removeTrustedRemote(uint16)":"infinite","renounceOwnership()":"190","retryMessage(uint16,bytes,uint64,bytes)":"infinite","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"infinite","sendAndCallEnabled()":"2466","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMaxDailyLimit(uint16,uint256)":"infinite","setMaxDailyReceiveLimit(uint16,uint256)":"infinite","setMaxSingleReceiveTransactionLimit(uint16,uint256)":"infinite","setMaxSingleTransactionLimit(uint16,uint256)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setOracle(address)":"infinite","setPayloadSizeLimit(uint16,uint256)":"infinite","setPrecrime(address)":"infinite","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","setWhitelist(address,bool)":"infinite","sharedDecimals()":"infinite","supportsInterface(bytes4)":"infinite","sweepToken(address,address,uint256)":"infinite","token()":"infinite","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite","updateSendAndCallEnabled(bool)":"infinite","whitelist(address)":"infinite"},"internal":{"_creditTo(uint16,address,uint256)":"infinite","_debitFrom(address,uint16,bytes32,uint256)":"infinite"}},"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","NO_EXTRA_GAS()":"44770515","PT_SEND()":"4c42899a","PT_SEND_AND_CALL()":"e6a20ae6","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"eaffd49a","chainIdToLast24HourReceiveWindowStart(uint16)":"fdff235b","chainIdToLast24HourReceived(uint16)":"d708a468","chainIdToLast24HourTransferred(uint16)":"4cec6256","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","chainIdToMaxDailyReceiveLimit(uint16)":"3c4ec39b","chainIdToMaxSingleReceiveTransactionLimit(uint16)":"90436567","chainIdToMaxSingleTransactionLimit(uint16)":"cc7015ae","circulatingSupply()":"9358928b","creditedPackets(uint16,bytes,uint64)":"9bdb9812","dropFailedMessage(uint16,bytes,uint64)":"84e69c69","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","failedMessages(uint16,bytes,uint64)":"5b8c41e6","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isEligibleToSend(address,uint16,uint256)":"182b4b89","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","oracle()":"7dc0d1d0","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","removeTrustedRemote(uint16)":"2dbbec08","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"76203b48","sendAndCallEnabled()":"c1e9132e","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"695ef6bf","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyLimit(uint16,uint256)":"2488eec8","setMaxDailyReceiveLimit(uint16,uint256)":"69c1e7b8","setMaxSingleReceiveTransactionLimit(uint16,uint256)":"cc01e9b6","setMaxSingleTransactionLimit(uint16,uint256)":"53489d6c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setOracle(address)":"7adbf973","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","setWhitelist(address,bool)":"53d6fd59","sharedDecimals()":"857749b0","supportsInterface(bytes4)":"01ffc9a7","sweepToken(address,address,uint256)":"64aff9ec","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a","updateSendAndCallEnabled(bool)":"4ed2c662","whitelist(address)":"9b19251a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sharedDecimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"lzEndpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CallOFTReceivedSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"DropFailedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"innerToken\",\"type\":\"address\"}],\"name\":\"InnerTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"NonContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"OracleChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ReceiveFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SendToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyReceiveLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleReceiveTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isWhitelist\",\"type\":\"bool\"}],\"name\":\"SetWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"}],\"name\":\"SweepToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"TrustedRemoteRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"UpdateSendAndCallEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NO_EXTRA_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasForCall\",\"type\":\"uint256\"}],\"name\":\"callOnOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourTransferred\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleReceiveTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"creditedPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"nonce_\",\"type\":\"uint64\"}],\"name\":\"dropFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"isEligibleToSend\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"eligibleToSend\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSingleTransactionLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDailyLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInUsd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transferredInWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"last24HourWindowStart\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isWhiteListedUser\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"}],\"name\":\"removeTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"toAddress_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"dstGasForCall_\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"callparams_\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendAndCallEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleReceiveTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracleAddress_\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"val_\",\"type\":\"bool\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled_\",\"type\":\"bool\"}],\"name\":\"updateSendAndCallEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ReceiveFromChain(uint16,address,uint256)\":{\"details\":\"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce.\"},\"SendToChain(uint16,address,bytes32,uint256)\":{\"details\":\"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"returns\":{\"_0\":\"total circulating supply of the token on the destination chain.\"}},\"dropFailedMessage(uint16,bytes,uint64)\":{\"custom:access\":\"Only owner\",\"custom:event\":\"Emits DropFailedMessage on clearance of failed message.\",\"params\":{\"nonce_\":\"Nonce_ of the transaction\",\"srcAddress_\":\"Address of source followed by current bridge address\",\"srcChainId_\":\"Chain id of source\"}},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"isEligibleToSend(address,uint16,uint256)\":{\"details\":\"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\",\"params\":{\"amount_\":\"The quantity of tokens to be transferred.\",\"dstChainId_\":\"Indicates destination chain.\",\"from_\":\"The sender's address initiating the transfer.\"},\"returns\":{\"amountInUsd\":\"The equivalent amount in USD based on the oracle price.\",\"eligibleToSend\":\"A boolean indicating whether the sender is eligible to transfer the tokens.\",\"isWhiteListedUser\":\"A boolean indicating whether the sender is whitelisted.\",\"last24HourWindowStart\":\"The timestamp when the current 24-hour window started.\",\"maxDailyLimit\":\"The maximum daily limit for transactions.\",\"maxSingleTransactionLimit\":\"The maximum limit for a single transaction.\",\"transferredInWindow\":\"The total amount transferred in the current 24-hour window.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty.\"}},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"details\":\"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\",\"params\":{\"amount_\":\"Amount of tokens that will be transferred.\",\"callparams_\":\"Additional parameters, including refund address, ZRO payment address,                   and adapter params.\",\"dstChainId_\":\"Destination chain id on which tokens will be send.\",\"dstGasForCall_\":\"The amount of gas allocated for the call on the destination chain.\",\"from_\":\"Address from which tokens will be debited.\",\"payload_\":\"Additional data payload for the call on the destination chain.\",\"toAddress_\":\"Address on which tokens will be credited on destination chain.\"}},\"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))\":{\"details\":\"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services\"},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum daily limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setOracle(address)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits OracleChanged with old and new oracle address.\",\"details\":\"Reverts if the new address is zero.\",\"params\":{\"oracleAddress_\":\"The new address of the ResilientOracle contract.\"}},\"setWhitelist(address,bool)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setWhitelist.\",\"params\":{\"user_\":\"Address to be add in whitelist.\",\"val_\":\"Boolean to be set (true for user_ address is whitelisted).\"}},\"sweepToken(address,address,uint256)\":{\"custom:access\":\"Only Owner\",\"custom:error\":\"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\",\"custom:event\":\"Emits SweepToken event\",\"params\":{\"amount_\":\"The amount of tokens needs to transfer\",\"to_\":\"The address of the recipient\",\"token_\":\"The address of the ERC-20 token to sweep\"}},\"token()\":{\"returns\":{\"_0\":\"Address of the inner token of this bridge.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only owner.\"},\"updateSendAndCallEnabled(bool)\":{\"params\":{\"enabled_\":\"Boolean indicating whether the sendAndCall function should be enabled or disabled.\"}}},\"title\":\"XVSProxyOFTDest\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Error thrown when this contract balance is less than sweep amount\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"DropFailedMessage(uint16,bytes,uint64)\":{\"notice\":\"Emits when stored message dropped without successful retrying.\"},\"InnerTokenAdded(address)\":{\"notice\":\"Event emitted when inner token set successfully.\"},\"OracleChanged(address,address)\":{\"notice\":\"Event emitted when oracle is modified.\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of transactions from local chain is modified.\"},\"SetMaxDailyReceiveLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\"},\"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single receive transaction from remote chain is modified.\"},\"SetMaxSingleTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single transaction from local chain is modified.\"},\"SetWhitelist(address,bool)\":{\"notice\":\"Emitted when address is added to whitelist.\"},\"SweepToken(address,address,uint256)\":{\"notice\":\"Emitted on sweep token success\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty.\"},\"UpdateSendAndCallEnabled(bool)\":{\"notice\":\"Event emitted when SendAndCallEnabled updated successfully.\"}},\"kind\":\"user\",\"methods\":{\"chainIdToLast24HourReceiveWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from remote chain.\"},\"chainIdToLast24HourReceived(uint16)\":{\"notice\":\"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\"},\"chainIdToLast24HourTransferred(uint16)\":{\"notice\":\"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from local chain.\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\"},\"chainIdToMaxDailyReceiveLimit(uint16)\":{\"notice\":\"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleReceiveTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\"},\"circulatingSupply()\":{\"notice\":\"Returns the total circulating supply of the token on the destination chain i.e (total supply).\"},\"dropFailedMessage(uint16,bytes,uint64)\":{\"notice\":\"Clear failed messages from the storage.\"},\"isEligibleToSend(address,uint16,uint256)\":{\"notice\":\"Checks the eligibility of a sender to initiate a cross-chain token transfer.\"},\"oracle()\":{\"notice\":\"The address of ResilientOracle contract wrapped in its interface.\"},\"pause()\":{\"notice\":\"Triggers stopped state of the bridge.\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage.\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening.\"},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"notice\":\"Initiates a cross-chain token transfer and triggers a call on the destination chain.\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) transactions amount.\"},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving transactions.\"},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum limit for a single receive transaction.\"},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of single transaction amount.\"},\"setOracle(address)\":{\"notice\":\"Set the address of the ResilientOracle contract.\"},\"setWhitelist(address,bool)\":{\"notice\":\"Sets the whitelist address to skip checks on transaction limit.\"},\"sweepToken(address,address,uint256)\":{\"notice\":\"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\"},\"token()\":{\"notice\":\"Return's the address of the inner token of this bridge.\"},\"unpause()\":{\"notice\":\"Triggers resume state of the bridge.\"},\"updateSendAndCallEnabled(bool)\":{\"notice\":\"It enables or disables sendAndCall functionality for the bridge.\"},\"whitelist(address)\":{\"notice\":\"Address on which cap check and bound limit is not applicable.\"}},\"notice\":\"XVSProxyOFTDest contract builds upon the functionality of its parent contract, BaseXVSProxyOFT, and focuses on managing token transfers to the destination chain. It provides functions to check eligibility and perform the actual token transfers while maintaining strict access controls and pausing mechanisms.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/XVSProxyOFTDest.sol\":\"XVSProxyOFTDest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OFTCoreV2.sol\\\";\\nimport \\\"./interfaces/IOFTV2.sol\\\";\\nimport \\\"@openzeppelin/contracts/utils/introspection/ERC165.sol\\\";\\n\\nabstract contract BaseOFTV2 is OFTCoreV2, ERC165, IOFTV2 {\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) OFTCoreV2(_sharedDecimals, _lzEndpoint) {}\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function sendFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _send(_from, _dstChainId, _toAddress, _amount, _callParams.refundAddress, _callParams.zroPaymentAddress, _callParams.adapterParams);\\n    }\\n\\n    function sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _sendAndCall(\\n            _from,\\n            _dstChainId,\\n            _toAddress,\\n            _amount,\\n            _payload,\\n            _dstGasForCall,\\n            _callParams.refundAddress,\\n            _callParams.zroPaymentAddress,\\n            _callParams.adapterParams\\n        );\\n    }\\n\\n    /************************************************************************\\n     * public view functions\\n     ************************************************************************/\\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n        return interfaceId == type(IOFTV2).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    function estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendFee(_dstChainId, _toAddress, _amount, _useZro, _adapterParams);\\n    }\\n\\n    function estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendAndCallFee(_dstChainId, _toAddress, _amount, _payload, _dstGasForCall, _useZro, _adapterParams);\\n    }\\n\\n    function circulatingSupply() public view virtual override returns (uint);\\n\\n    function token() public view virtual override returns (address);\\n}\\n\",\"keccak256\":\"0x59d2d32dd14a4f58232b126a7d69608a85f82137bd56d8ce0fc28ff646cba943\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../../lzApp/NonblockingLzApp.sol\\\";\\nimport \\\"../../../libraries/ExcessivelySafeCall.sol\\\";\\nimport \\\"./interfaces/ICommonOFT.sol\\\";\\nimport \\\"./interfaces/IOFTReceiverV2.sol\\\";\\n\\nabstract contract OFTCoreV2 is NonblockingLzApp {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    uint public constant NO_EXTRA_GAS = 0;\\n\\n    // packet type\\n    uint8 public constant PT_SEND = 0;\\n    uint8 public constant PT_SEND_AND_CALL = 1;\\n\\n    uint8 public immutable sharedDecimals;\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\\n     * `_nonce` is the outbound nonce\\n     */\\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\\n     * `_nonce` is the inbound nonce.\\n     */\\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\\n\\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\\n\\n    event NonContractAddress(address _address);\\n\\n    // _sharedDecimals should be the minimum decimals on all chains\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\\n        sharedDecimals = _sharedDecimals;\\n    }\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function callOnOFTReceived(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes32 _from,\\n        address _to,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint _gasForCall\\n    ) public virtual {\\n        require(_msgSender() == address(this), \\\"OFTCore: caller must be OFTCore\\\");\\n\\n        // send\\n        _amount = _transferFrom(address(this), _to, _amount);\\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\\n\\n        // call\\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\\n    }\\n\\n    /************************************************************************\\n     * internal functions\\n     ************************************************************************/\\n    function _estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendFrom()\\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendAndCall()\\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        uint8 packetType = _payload.toUint8(0);\\n\\n        if (packetType == PT_SEND) {\\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else if (packetType == PT_SEND_AND_CALL) {\\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else {\\n            revert(\\\"OFTCore: unknown packet type\\\");\\n        }\\n    }\\n\\n    function _send(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAck(\\n        uint16 _srcChainId,\\n        bytes memory,\\n        uint64,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\\n        if (to == address(0)) {\\n            to = address(0xdead);\\n        }\\n\\n        uint amount = _sd2ld(amountSD);\\n        amount = _creditTo(_srcChainId, to, amount);\\n\\n        emit ReceiveFromChain(_srcChainId, to, amount);\\n    }\\n\\n    function _sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        // encode the msg.sender into the payload instead of _from\\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAndCallAck(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\\n\\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\\n        uint amount = _sd2ld(amountSD);\\n\\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\\n        if (!credited) {\\n            amount = _creditTo(_srcChainId, address(this), amount);\\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\\n        }\\n\\n        if (!_isContract(to)) {\\n            emit NonContractAddress(to);\\n            return;\\n        }\\n\\n        // workaround for stack too deep\\n        uint16 srcChainId = _srcChainId;\\n        bytes memory srcAddress = _srcAddress;\\n        uint64 nonce = _nonce;\\n        bytes memory payload = _payload;\\n        bytes32 from_ = from;\\n        address to_ = to;\\n        uint amount_ = amount;\\n        bytes memory payloadForCall_ = payloadForCall;\\n\\n        // no gas limit for the call if retry\\n        uint gas = credited ? gasleft() : gasForCall;\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\\n        );\\n\\n        if (success) {\\n            bytes32 hash = keccak256(payload);\\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\\n        } else {\\n            // store the failed message into the nonblockingLzApp\\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\\n        }\\n    }\\n\\n    function _isContract(address _account) internal view returns (bool) {\\n        return _account.code.length > 0;\\n    }\\n\\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\\n        uint amountSD = _amount / _ld2sdRate();\\n        require(amountSD <= type(uint64).max, \\\"OFTCore: amountSD overflow\\\");\\n        return uint64(amountSD);\\n    }\\n\\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\\n        return _amountSD * _ld2sdRate();\\n    }\\n\\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\\n        dust = _amount % _ld2sdRate();\\n        amountAfter = _amount - dust;\\n    }\\n\\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\\n    }\\n\\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n    }\\n\\n    function _encodeSendAndCallPayload(\\n        address _from,\\n        bytes32 _toAddress,\\n        uint64 _amountSD,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall\\n    ) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\\n    }\\n\\n    function _decodeSendAndCallPayload(bytes memory _payload)\\n        internal\\n        view\\n        virtual\\n        returns (\\n            bytes32 from,\\n            address to,\\n            uint64 amountSD,\\n            bytes memory payload,\\n            uint64 dstGasForCall\\n        )\\n    {\\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n        from = _payload.toBytes32(41);\\n        dstGasForCall = _payload.toUint64(73);\\n        payload = _payload.slice(81, _payload.length - 81);\\n    }\\n\\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n\\n    function _debitFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _creditTo(\\n        uint16 _srcChainId,\\n        address _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _transferFrom(\\n        address _from,\\n        address _to,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _ld2sdRate() internal view virtual returns (uint);\\n}\\n\",\"keccak256\":\"0x96cf7a10c5af4243822d25e77985a4a46d12264f839593ded5378cd6519a8df0\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ICommonOFT.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface IOFTV2 is ICommonOFT {\\n\\n    /**\\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\\n     * `_from` the owner of token\\n     * `_dstChainId` the destination chain identifier\\n     * `_toAddress` can be any size depending on the `dstChainId`.\\n     * `_amount` the quantity of tokens in wei\\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\\n     */\\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\\n\\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\\n}\\n\",\"keccak256\":\"0xb1d31f341715347d49db4e2c0de27c49bbd70b5b3d9b0adb1050b2b3a305ab87\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from \\\"./constants.sol\\\";\\n\\n/**\\n * @title Exponential module for storing fixed-precision decimals\\n * @author Compound\\n * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\\n *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\\n *         `Exp({mantissa: 5100000000000000000})`.\\n */\\ncontract ExponentialNoError {\\n    struct Exp {\\n        uint256 mantissa;\\n    }\\n\\n    struct Double {\\n        uint256 mantissa;\\n    }\\n\\n    uint256 internal constant EXP_SCALE = EXP_SCALE_;\\n    uint256 internal constant DOUBLE_SCALE = 1e36;\\n    uint256 internal constant HALF_EXP_SCALE = EXP_SCALE / 2;\\n    uint256 internal constant MANTISSA_ONE = MANTISSA_ONE_;\\n\\n    /**\\n     * @dev Truncates the given exp to a whole number value.\\n     *      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15\\n     */\\n    function truncate(Exp memory exp) internal pure returns (uint256) {\\n        // Note: We are not using careful math here as we're performing a division that cannot fail\\n        return exp.mantissa / EXP_SCALE;\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncate(Exp memory a, uint256 scalar) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return truncate(product);\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncateAddUInt(Exp memory a, uint256 scalar, uint256 addend) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return add_(truncate(product), addend);\\n    }\\n\\n    /**\\n     * @dev Checks if first Exp is less than second Exp.\\n     */\\n    function lessThanExp(Exp memory left, Exp memory right) internal pure returns (bool) {\\n        return left.mantissa < right.mantissa;\\n    }\\n\\n    function safe224(uint256 n, string memory errorMessage) internal pure returns (uint224) {\\n        require(n <= type(uint224).max, errorMessage);\\n        return uint224(n);\\n    }\\n\\n    function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {\\n        require(n <= type(uint32).max, errorMessage);\\n        return uint32(n);\\n    }\\n\\n    function add_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a + b;\\n    }\\n\\n    function sub_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a - b;\\n    }\\n\\n    function mul_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b.mantissa) / EXP_SCALE });\\n    }\\n\\n    function mul_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / EXP_SCALE;\\n    }\\n\\n    function mul_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b.mantissa) / DOUBLE_SCALE });\\n    }\\n\\n    function mul_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / DOUBLE_SCALE;\\n    }\\n\\n    function mul_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a * b;\\n    }\\n\\n    function div_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(mul_(a.mantissa, EXP_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, EXP_SCALE), b.mantissa);\\n    }\\n\\n    function div_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a.mantissa, DOUBLE_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, DOUBLE_SCALE), b.mantissa);\\n    }\\n\\n    function div_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a / b;\\n    }\\n\\n    function fraction(uint256 a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a, DOUBLE_SCALE), b) });\\n    }\\n}\\n\",\"keccak256\":\"0x1b5378848f1472660fd33c260fa9b00bf59e7c2066c27cc592230d7c86a6a9f9\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/BaseXVSProxyOFT.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { ResilientOracleInterface } from \\\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { BaseOFTV2 } from \\\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { ExponentialNoError } from \\\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\\\";\\n\\n/**\\n * @title BaseXVSProxyOFT\\n * @author Venus\\n * @notice The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token.\\n * It manages transaction limits of a single and daily transactions.\\n * This contract inherits key functionalities from other contracts, including pausing capabilities and error handling.\\n * It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses.\\n * The contract allows the owner to configure limits, set whitelists, and control pausing.\\n * Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.\\n */\\n\\nabstract contract BaseXVSProxyOFT is Pausable, ExponentialNoError, BaseOFTV2 {\\n    using SafeERC20 for IERC20;\\n    IERC20 internal immutable innerToken;\\n    uint256 internal immutable ld2sdRate;\\n    bool public sendAndCallEnabled;\\n\\n    /**\\n     * @notice The address of ResilientOracle contract wrapped in its interface.\\n     */\\n    ResilientOracleInterface public oracle;\\n    /**\\n     * @notice Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n    /**\\n     * @notice Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourTransferred;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleReceiveTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyReceiveLimit;\\n    /**\\n     * @notice Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceived;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceiveWindowStart;\\n    /**\\n     * @notice Address on which cap check and bound limit is not applicable.\\n     */\\n    mapping(address => bool) public whitelist;\\n\\n    /**\\n     * @notice Emitted when address is added to whitelist.\\n     */\\n    event SetWhitelist(address indexed addr, bool isWhitelist);\\n    /**\\n     * @notice  Emitted when the maximum limit for a single transaction from local chain is modified.\\n     */\\n    event SetMaxSingleTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit of transactions from local chain is modified.\\n     */\\n    event SetMaxDailyLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum limit for a single receive transaction from remote chain is modified.\\n     */\\n    event SetMaxSingleReceiveTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\\n     */\\n    event SetMaxDailyReceiveLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Event emitted when oracle is modified.\\n     */\\n    event OracleChanged(address indexed oldOracle, address indexed newOracle);\\n    /**\\n     * @notice Event emitted when trusted remote sets to empty.\\n     */\\n    event TrustedRemoteRemoved(uint16 chainId);\\n    /**\\n     * @notice Event emitted when inner token set successfully.\\n     */\\n    event InnerTokenAdded(address indexed innerToken);\\n    /**\\n     *@notice Emitted on sweep token success\\n     */\\n    event SweepToken(address indexed token, address indexed to, uint256 sweepAmount);\\n    /**\\n     * @notice Event emitted when SendAndCallEnabled updated successfully.\\n     */\\n    event UpdateSendAndCallEnabled(bool indexed enabled);\\n    /**\\n     *@notice Error thrown when this contract balance is less than sweep amount\\n     */\\n    error InsufficientBalance(uint256 sweepAmount, uint256 balance);\\n\\n    /**\\n     * @param tokenAddress_ Address of the inner token.\\n     * @param sharedDecimals_ Number of shared decimals.\\n     * @param lzEndpoint_ Address of the layer zero endpoint contract.\\n     * @param oracle_ Address of the price oracle.\\n     * @custom:error ZeroAddressNotAllowed is thrown when token contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when oracle contract address is zero.\\n     * @custom:event Emits InnerTokenAdded with token address.\\n     * @custom:event Emits OracleChanged with zero address and oracle address.\\n     */\\n    constructor(\\n        address tokenAddress_,\\n        uint8 sharedDecimals_,\\n        address lzEndpoint_,\\n        address oracle_\\n    ) BaseOFTV2(sharedDecimals_, lzEndpoint_) {\\n        ensureNonzeroAddress(tokenAddress_);\\n        ensureNonzeroAddress(lzEndpoint_);\\n        ensureNonzeroAddress(oracle_);\\n\\n        innerToken = IERC20(tokenAddress_);\\n\\n        (bool success, bytes memory data) = tokenAddress_.staticcall(abi.encodeWithSignature(\\\"decimals()\\\"));\\n        require(success, \\\"ProxyOFT: failed to get token decimals\\\");\\n        uint8 decimals = abi.decode(data, (uint8));\\n\\n        require(sharedDecimals_ <= decimals, \\\"ProxyOFT: sharedDecimals must be <= decimals\\\");\\n        ld2sdRate = 10 ** (decimals - sharedDecimals_);\\n\\n        emit InnerTokenAdded(tokenAddress_);\\n        emit OracleChanged(address(0), oracle_);\\n\\n        oracle = ResilientOracleInterface(oracle_);\\n    }\\n\\n    /**\\n     * @notice Set the address of the ResilientOracle contract.\\n     * @dev Reverts if the new address is zero.\\n     * @param oracleAddress_ The new address of the ResilientOracle contract.\\n     * @custom:access Only owner.\\n     * @custom:event Emits OracleChanged with old and new oracle address.\\n     */\\n    function setOracle(address oracleAddress_) external onlyOwner {\\n        ensureNonzeroAddress(oracleAddress_);\\n        emit OracleChanged(address(oracle), oracleAddress_);\\n        oracle = ResilientOracleInterface(oracleAddress_);\\n    }\\n\\n    /**\\n     * @notice Sets the limit of single transaction amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyLimit[chainId_], \\\"Single transaction limit > Daily limit\\\");\\n        emit SetMaxSingleTransactionLimit(chainId_, chainIdToMaxSingleTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) transactions amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ >= chainIdToMaxSingleTransactionLimit[chainId_], \\\"Daily limit < single transaction limit\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum limit for a single receive transaction.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleReceiveTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyReceiveLimit[chainId_], \\\"single receive transaction limit > Daily limit\\\");\\n        emit SetMaxSingleReceiveTransactionLimit(chainId_, chainIdToMaxSingleReceiveTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleReceiveTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving transactions.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum daily limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyReceiveLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(\\n            limit_ >= chainIdToMaxSingleReceiveTransactionLimit[chainId_],\\n            \\\"Daily limit < single receive transaction limit\\\"\\n        );\\n        emit SetMaxDailyReceiveLimit(chainId_, chainIdToMaxDailyReceiveLimit[chainId_], limit_);\\n        chainIdToMaxDailyReceiveLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the whitelist address to skip checks on transaction limit.\\n     * @param user_ Address to be add in whitelist.\\n     * @param val_ Boolean to be set (true for user_ address is whitelisted).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setWhitelist.\\n     */\\n    function setWhitelist(address user_, bool val_) external onlyOwner {\\n        emit SetWhitelist(user_, val_);\\n        whitelist[user_] = val_;\\n    }\\n\\n    /**\\n     * @notice Triggers stopped state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers resume state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\\n     * @param token_ The address of the ERC-20 token to sweep\\n     * @param to_ The address of the recipient\\n     * @param amount_ The amount of tokens needs to transfer\\n     * @custom:event Emits SweepToken event\\n     * @custom:error Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\\n     * @custom:access Only Owner\\n     */\\n    function sweepToken(IERC20 token_, address to_, uint256 amount_) external onlyOwner {\\n        uint256 balance = token_.balanceOf(address(this));\\n        if (amount_ > balance) {\\n            revert InsufficientBalance(amount_, balance);\\n        }\\n\\n        emit SweepToken(address(token_), to_, amount_);\\n\\n        token_.safeTransfer(to_, amount_);\\n    }\\n\\n    /**\\n     * @notice Remove trusted remote from storage.\\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty.\\n     * @custom:access Only owner.\\n     * @custom:event Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\\n     */\\n    function removeTrustedRemote(uint16 remoteChainId_) external onlyOwner {\\n        delete trustedRemoteLookup[remoteChainId_];\\n        emit TrustedRemoteRemoved(remoteChainId_);\\n    }\\n\\n    /**\\n     * @notice It enables or disables sendAndCall functionality for the bridge.\\n     * @param enabled_ Boolean indicating whether the sendAndCall function should be enabled or disabled.\\n     */\\n    function updateSendAndCallEnabled(bool enabled_) external onlyOwner {\\n        sendAndCallEnabled = enabled_;\\n        emit UpdateSendAndCallEnabled(enabled_);\\n    }\\n\\n    /**\\n     * @notice Checks the eligibility of a sender to initiate a cross-chain token transfer.\\n     * @dev This external view function assesses whether the specified sender is eligible to transfer the given amount\\n     *      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\\n     * @param from_ The sender's address initiating the transfer.\\n     * @param dstChainId_ Indicates destination chain.\\n     * @param amount_ The quantity of tokens to be transferred.\\n     * @return eligibleToSend A boolean indicating whether the sender is eligible to transfer the tokens.\\n     * @return maxSingleTransactionLimit The maximum limit for a single transaction.\\n     * @return maxDailyLimit The maximum daily limit for transactions.\\n     * @return amountInUsd The equivalent amount in USD based on the oracle price.\\n     * @return transferredInWindow The total amount transferred in the current 24-hour window.\\n     * @return last24HourWindowStart The timestamp when the current 24-hour window started.\\n     * @return isWhiteListedUser A boolean indicating whether the sender is whitelisted.\\n     */\\n    function isEligibleToSend(\\n        address from_,\\n        uint16 dstChainId_,\\n        uint256 amount_\\n    )\\n        external\\n        view\\n        returns (\\n            bool eligibleToSend,\\n            uint256 maxSingleTransactionLimit,\\n            uint256 maxDailyLimit,\\n            uint256 amountInUsd,\\n            uint256 transferredInWindow,\\n            uint256 last24HourWindowStart,\\n            bool isWhiteListedUser\\n        )\\n    {\\n        // Check if the sender's address is whitelisted\\n        isWhiteListedUser = whitelist[from_];\\n\\n        // Calculate the amount in USD using the oracle price\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        last24HourWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        if (currentBlockTimestamp - last24HourWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            last24HourWindowStart = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n        eligibleToSend = (isWhiteListedUser ||\\n            ((amountInUsd <= maxSingleTransactionLimit) && (transferredInWindow <= maxDailyLimit)));\\n    }\\n\\n    /**\\n     * @notice Initiates a cross-chain token transfer and triggers a call on the destination chain.\\n     * @dev This internal override function enables the contract to send tokens and invoke calls on the specified\\n     *      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\\n     * @param from_ Address from which tokens will be debited.\\n     * @param dstChainId_ Destination chain id on which tokens will be send.\\n     * @param toAddress_ Address on which tokens will be credited on destination chain.\\n     * @param amount_ Amount of tokens that will be transferred.\\n     * @param payload_ Additional data payload for the call on the destination chain.\\n     * @param dstGasForCall_ The amount of gas allocated for the call on the destination chain.\\n     * @param callparams_ Additional parameters, including refund address, ZRO payment address,\\n     *                   and adapter params.\\n     */\\n    function sendAndCall(\\n        address from_,\\n        uint16 dstChainId_,\\n        bytes32 toAddress_,\\n        uint256 amount_,\\n        bytes calldata payload_,\\n        uint64 dstGasForCall_,\\n        LzCallParams calldata callparams_\\n    ) public payable override {\\n        require(sendAndCallEnabled, \\\"sendAndCall is disabled\\\");\\n\\n        super.sendAndCall(from_, dstChainId_, toAddress_, amount_, payload_, dstGasForCall_, callparams_);\\n    }\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable override {\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // it will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length &&\\n                trustedRemote.length > 0 &&\\n                keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n        super.retryMessage(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Return's the address of the inner token of this bridge.\\n     * @return Address of the inner token of this bridge.\\n     */\\n    function token() public view override returns (address) {\\n        return address(innerToken);\\n    }\\n\\n    /**\\n     * @notice Checks if the sender is eligible to send tokens\\n     * @param from_ Sender's address sending tokens\\n     * @param dstChainId_ Chain id on which tokens should be sent\\n     * @param amount_ Amount of tokens to be sent\\n     */\\n    function _isEligibleToSend(address from_, uint16 dstChainId_, uint256 amount_) internal {\\n        // Check if the sender's address is whitelisted\\n        bool isWhiteListedUser = whitelist[from_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the amount in USD using the oracle price\\n        uint256 amountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        uint256 maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n\\n        // Revert if the amount exceeds the single transaction limit\\n        require(amountInUsd <= maxSingleTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(transferredInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourTransferred[dstChainId_] = transferredInWindow;\\n    }\\n\\n    /**\\n     * @notice Checks if receiver is able to receive tokens\\n     * @param toAddress_ Receiver address\\n     * @param srcChainId_ Source chain id from which token is send\\n     * @param receivedAmount_ Amount of tokens received\\n     */\\n    function _isEligibleToReceive(address toAddress_, uint16 srcChainId_, uint256 receivedAmount_) internal {\\n        // Check if the recipient's address is whitelisted\\n        bool isWhiteListedUser = whitelist[toAddress_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the received amount in USD using the oracle price\\n        uint256 receivedAmountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(address(token())) });\\n        receivedAmountInUsd = mul_ScalarTruncate(oraclePrice, receivedAmount_);\\n\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 lastDayReceiveWindowStart = chainIdToLast24HourReceiveWindowStart[srcChainId_];\\n        uint256 receivedInWindow = chainIdToLast24HourReceived[srcChainId_];\\n        uint256 maxSingleReceiveTransactionLimit = chainIdToMaxSingleReceiveTransactionLimit[srcChainId_];\\n        uint256 maxDailyReceiveLimit = chainIdToMaxDailyReceiveLimit[srcChainId_];\\n\\n        // Check if the received amount exceeds the single transaction limit\\n        require(receivedAmountInUsd <= maxSingleReceiveTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayReceiveWindowStart > 1 days) {\\n            receivedInWindow = receivedAmountInUsd;\\n            chainIdToLast24HourReceiveWindowStart[srcChainId_] = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += receivedAmountInUsd;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        chainIdToLast24HourReceived[srcChainId_] = receivedInWindow;\\n    }\\n\\n    /**\\n     * @notice Transfer tokens from sender to receiver account.\\n     * @param from_ Address from which token has to be transferred(Sender).\\n     * @param to_ Address on which token will be tranferred(Receiver).\\n     * @param amount_ Amount of token to be transferred.\\n     * @return Actual balance difference.\\n     */\\n    function _transferFrom(\\n        address from_,\\n        address to_,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        uint256 before = innerToken.balanceOf(to_);\\n        if (from_ == address(this)) {\\n            innerToken.safeTransfer(to_, amount_);\\n        } else {\\n            innerToken.safeTransferFrom(from_, to_, amount_);\\n        }\\n        return innerToken.balanceOf(to_) - before;\\n    }\\n\\n    /**\\n     * @notice Returns Conversion rate factor from large decimals to shared decimals.\\n     * @return Conversion rate factor.\\n     */\\n    function _ld2sdRate() internal view override returns (uint256) {\\n        return ld2sdRate;\\n    }\\n}\\n\",\"keccak256\":\"0x7e60e0dad246890a0f4b796aeb3fa730cd7cfde1f5616f4b10611b2f469d1e10\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/XVSProxyOFTDest.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IXVS } from \\\"./interfaces/IXVS.sol\\\";\\nimport { BaseXVSProxyOFT } from \\\"./BaseXVSProxyOFT.sol\\\";\\n\\n/**\\n * @title XVSProxyOFTDest\\n * @author Venus\\n * @notice XVSProxyOFTDest contract builds upon the functionality of its parent contract, BaseXVSProxyOFT,\\n * and focuses on managing token transfers to the destination chain.\\n * It provides functions to check eligibility and perform the actual token transfers while maintaining strict access controls and pausing mechanisms.\\n */\\n\\ncontract XVSProxyOFTDest is BaseXVSProxyOFT {\\n    /**\\n     * @notice Emits when stored message dropped without successful retrying.\\n     */\\n    event DropFailedMessage(uint16 srcChainId, bytes indexed srcAddress, uint64 nonce);\\n\\n    constructor(\\n        address tokenAddress_,\\n        uint8 sharedDecimals_,\\n        address lzEndpoint_,\\n        address oracle_\\n    ) BaseXVSProxyOFT(tokenAddress_, sharedDecimals_, lzEndpoint_, oracle_) {}\\n\\n    /**\\n     * @notice Clear failed messages from the storage.\\n     * @param srcChainId_ Chain id of source\\n     * @param srcAddress_ Address of source followed by current bridge address\\n     * @param nonce_ Nonce_ of the transaction\\n     * @custom:access Only owner\\n     * @custom:event Emits DropFailedMessage on clearance of failed message.\\n     */\\n    function dropFailedMessage(uint16 srcChainId_, bytes memory srcAddress_, uint64 nonce_) external onlyOwner {\\n        failedMessages[srcChainId_][srcAddress_][nonce_] = bytes32(0);\\n        emit DropFailedMessage(srcChainId_, srcAddress_, nonce_);\\n    }\\n\\n    /**\\n     * @notice Returns the total circulating supply of the token on the destination chain i.e (total supply).\\n     * @return total circulating supply of the token on the destination chain.\\n     */\\n    function circulatingSupply() public view override returns (uint256) {\\n        return innerToken.totalSupply();\\n    }\\n\\n    /**\\n     * @notice Debit tokens from the given address\\n     * @param from_  Address from which tokens to be debited\\n     * @param dstChainId_ Destination chain id\\n     * @param amount_ Amount of tokens to be debited\\n     * @return Actual amount debited\\n     */\\n    function _debitFrom(\\n        address from_,\\n        uint16 dstChainId_,\\n        bytes32,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        require(from_ == _msgSender(), \\\"ProxyOFT: owner is not send caller\\\");\\n        _isEligibleToSend(from_, dstChainId_, amount_);\\n        IXVS(address(innerToken)).burn(from_, amount_);\\n        return amount_;\\n    }\\n\\n    /**\\n     * @notice Credit tokens in the given account\\n     * @param srcChainId_  Source chain id\\n     * @param toAddress_ Address on which token will be credited\\n     * @param amount_ Amount of tokens to be credited\\n     * @return Actual amount credited\\n     */\\n    function _creditTo(\\n        uint16 srcChainId_,\\n        address toAddress_,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        _isEligibleToReceive(toAddress_, srcChainId_, amount_);\\n        IXVS(address(innerToken)).mint(toAddress_, amount_);\\n        return amount_;\\n    }\\n}\\n\",\"keccak256\":\"0x127d20692944707c3d5f08bb1872f83015731705a7905cf93161cd6c7d0c10df\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/interfaces/IXVS.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title IXVS\\n * @author Venus\\n * @notice Interface implemented by `XVS` token.\\n */\\ninterface IXVS {\\n    function mint(address to, uint256 amount) external;\\n\\n    function burn(address from, uint256 amount) external;\\n}\\n\",\"keccak256\":\"0xd3e26dcde753c28be8f826806c18fbf92918baa0f4f972a96916a15831ce5d03\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5506,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"_paused","offset":0,"slot":"0","type":"t_bool"},{"astId":5383,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"_owner","offset":1,"slot":"0","type":"t_address"},{"astId":455,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3161,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"creditedPackets","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))"},{"astId":9381,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"sendAndCallEnabled","offset":0,"slot":"7","type":"t_bool"},{"astId":9385,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"oracle","offset":1,"slot":"7","type":"t_contract(ResilientOracleInterface)8694"},{"astId":9390,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToMaxSingleTransactionLimit","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9395,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToMaxDailyLimit","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9400,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToLast24HourTransferred","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9405,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9410,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToMaxSingleReceiveTransactionLimit","offset":0,"slot":"12","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9415,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToMaxDailyReceiveLimit","offset":0,"slot":"13","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9420,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToLast24HourReceived","offset":0,"slot":"14","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9425,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"chainIdToLast24HourReceiveWindowStart","offset":0,"slot":"15","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9430,"contract":"contracts/Bridge/XVSProxyOFTDest.sol:XVSProxyOFTDest","label":"whitelist","offset":0,"slot":"16","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(ResilientOracleInterface)8694":{"encoding":"inplace","label":"contract ResilientOracleInterface","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bool)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"errors":{"InsufficientBalance(uint256,uint256)":[{"notice":"Error thrown when this contract balance is less than sweep amount"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"DropFailedMessage(uint16,bytes,uint64)":{"notice":"Emits when stored message dropped without successful retrying."},"InnerTokenAdded(address)":{"notice":"Event emitted when inner token set successfully."},"OracleChanged(address,address)":{"notice":"Event emitted when oracle is modified."},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of transactions from local chain is modified."},"SetMaxDailyReceiveLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving transactions from remote chain is modified."},"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single receive transaction from remote chain is modified."},"SetMaxSingleTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single transaction from local chain is modified."},"SetWhitelist(address,bool)":{"notice":"Emitted when address is added to whitelist."},"SweepToken(address,address,uint256)":{"notice":"Emitted on sweep token success"},"TrustedRemoteRemoved(uint16)":{"notice":"Event emitted when trusted remote sets to empty."},"UpdateSendAndCallEnabled(bool)":{"notice":"Event emitted when SendAndCallEnabled updated successfully."}},"kind":"user","methods":{"chainIdToLast24HourReceiveWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from remote chain."},"chainIdToLast24HourReceived(uint16)":{"notice":"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain."},"chainIdToLast24HourTransferred(uint16)":{"notice":"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain."},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from local chain."},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain."},"chainIdToMaxDailyReceiveLimit(uint16)":{"notice":"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleReceiveTransactionLimit(uint16)":{"notice":"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleTransactionLimit(uint16)":{"notice":"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain."},"circulatingSupply()":{"notice":"Returns the total circulating supply of the token on the destination chain i.e (total supply)."},"dropFailedMessage(uint16,bytes,uint64)":{"notice":"Clear failed messages from the storage."},"isEligibleToSend(address,uint16,uint256)":{"notice":"Checks the eligibility of a sender to initiate a cross-chain token transfer."},"oracle()":{"notice":"The address of ResilientOracle contract wrapped in its interface."},"pause()":{"notice":"Triggers stopped state of the bridge."},"removeTrustedRemote(uint16)":{"notice":"Remove trusted remote from storage."},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening."},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"notice":"Initiates a cross-chain token transfer and triggers a call on the destination chain."},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) transactions amount."},"setMaxDailyReceiveLimit(uint16,uint256)":{"notice":"Sets the maximum daily limit for receiving transactions."},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"notice":"Sets the maximum limit for a single receive transaction."},"setMaxSingleTransactionLimit(uint16,uint256)":{"notice":"Sets the limit of single transaction amount."},"setOracle(address)":{"notice":"Set the address of the ResilientOracle contract."},"setWhitelist(address,bool)":{"notice":"Sets the whitelist address to skip checks on transaction limit."},"sweepToken(address,address,uint256)":{"notice":"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user"},"token()":{"notice":"Return's the address of the inner token of this bridge."},"unpause()":{"notice":"Triggers resume state of the bridge."},"updateSendAndCallEnabled(bool)":{"notice":"It enables or disables sendAndCall functionality for the bridge."},"whitelist(address)":{"notice":"Address on which cap check and bound limit is not applicable."}},"notice":"XVSProxyOFTDest contract builds upon the functionality of its parent contract, BaseXVSProxyOFT, and focuses on managing token transfers to the destination chain. It provides functions to check eligibility and perform the actual token transfers while maintaining strict access controls and pausing mechanisms.","version":1}}},"contracts/Bridge/XVSProxyOFTSrc.sol":{"XVSProxyOFTSrc":{"abi":[{"inputs":[{"internalType":"address","name":"tokenAddress_","type":"address"},{"internalType":"uint8","name":"sharedDecimals_","type":"uint8"},{"internalType":"address","name":"lzEndpoint_","type":"address"},{"internalType":"address","name":"oracle_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"sweepAmount","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":true,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"}],"name":"DropFailedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"FallbackDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FallbackWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"innerToken","type":"address"}],"name":"InnerTokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOracle","type":"address"},{"indexed":true,"internalType":"address","name":"newOracle","type":"address"}],"name":"OracleChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxDailyReceiveLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleReceiveTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"oldMaxLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxLimit","type":"uint256"}],"name":"SetMaxSingleTransactionLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"isWhitelist","type":"bool"}],"name":"SetWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"sweepAmount","type":"uint256"}],"name":"SweepToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"}],"name":"TrustedRemoteRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UpdateSendAndCallEnabled","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceiveWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToLast24HourWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxDailyReceiveLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleReceiveTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"chainIdToMaxSingleTransactionLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"srcChainId_","type":"uint16"},{"internalType":"bytes","name":"srcAddress_","type":"bytes"},{"internalType":"uint64","name":"nonce_","type":"uint64"}],"name":"dropFailedMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"depositor_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"fallbackDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"fallbackWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"isEligibleToSend","outputs":[{"internalType":"bool","name":"eligibleToSend","type":"bool"},{"internalType":"uint256","name":"maxSingleTransactionLimit","type":"uint256"},{"internalType":"uint256","name":"maxDailyLimit","type":"uint256"},{"internalType":"uint256","name":"amountInUsd","type":"uint256"},{"internalType":"uint256","name":"transferredInWindow","type":"uint256"},{"internalType":"uint256","name":"last24HourWindowStart","type":"uint256"},{"internalType":"bool","name":"isWhiteListedUser","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"contract ResilientOracleInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outboundAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId_","type":"uint16"}],"name":"removeTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"uint16","name":"dstChainId_","type":"uint16"},{"internalType":"bytes32","name":"toAddress_","type":"bytes32"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"bytes","name":"payload_","type":"bytes"},{"internalType":"uint64","name":"dstGasForCall_","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"callparams_","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sendAndCallEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxDailyReceiveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleReceiveTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"},{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setMaxSingleTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracleAddress_","type":"address"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bool","name":"val_","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"sweepToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled_","type":"bool"}],"name":"updateSendAndCallEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"ReceiveFromChain(uint16,address,uint256)":{"details":"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce."},"SendToChain(uint16,address,bytes32,uint256)":{"details":"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce"},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"circulatingSupply()":{"returns":{"_0":"Returns difference in total supply and the outbound amount."}},"dropFailedMessage(uint16,bytes,uint64)":{"custom:access":"Only owner.","custom:event":"Emits DropFailedMessage on clearance of failed message.","params":{"nonce_":"Nonce_ of the transaction","srcAddress_":"Address of source followed by current bridge address","srcChainId_":"Chain id of source"}},"estimateSendFee(uint16,bytes32,uint256,bool,bytes)":{"details":"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0"},"fallbackDeposit(address,uint256)":{"custom:access":"Only owner.","custom:event":"Emits FallbackDeposit, once done with transfer.","params":{"amount_":"The amount of tokens to lock.","depositor_":"Address of the depositor."}},"fallbackWithdraw(address,uint256)":{"custom:access":"Only owner.","custom:event":"Emits FallbackWithdraw, once done with transfer.","params":{"amount_":"The amount of withdrawal","to_":"The address to withdraw to"}},"isEligibleToSend(address,uint16,uint256)":{"details":"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.","params":{"amount_":"The quantity of tokens to be transferred.","dstChainId_":"Indicates destination chain.","from_":"The sender's address initiating the transfer."},"returns":{"amountInUsd":"The equivalent amount in USD based on the oracle price.","eligibleToSend":"A boolean indicating whether the sender is eligible to transfer the tokens.","isWhiteListedUser":"A boolean indicating whether the sender is whitelisted.","last24HourWindowStart":"The timestamp when the current 24-hour window started.","maxDailyLimit":"The maximum daily limit for transactions.","maxSingleTransactionLimit":"The maximum limit for a single transaction.","transferredInWindow":"The total amount transferred in the current 24-hour window."}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Only owner."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"removeTrustedRemote(uint16)":{"custom:access":"Only owner.","custom:event":"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.","params":{"remoteChainId_":"The chain's id corresponds to setting the trusted remote to empty."}},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"details":"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.","params":{"amount_":"Amount of tokens that will be transferred.","callparams_":"Additional parameters, including refund address, ZRO payment address,                   and adapter params.","dstChainId_":"Destination chain id on which tokens will be send.","dstGasForCall_":"The amount of gas allocated for the call on the destination chain.","from_":"Address from which tokens will be debited.","payload_":"Additional data payload for the call on the destination chain.","toAddress_":"Address on which tokens will be credited on destination chain."}},"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":{"details":"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services"},"setMaxDailyLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setMaxDailyReceiveLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum daily limit in USD(scaled with 18 decimals)."}},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"The destination chain ID.","limit_":"The new maximum limit in USD(scaled with 18 decimals)."}},"setMaxSingleTransactionLimit(uint16,uint256)":{"custom:access":"Only owner.","custom:event":"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.","params":{"chainId_":"Destination chain id.","limit_":"Amount in USD(scaled with 18 decimals)."}},"setOracle(address)":{"custom:access":"Only owner.","custom:event":"Emits OracleChanged with old and new oracle address.","details":"Reverts if the new address is zero.","params":{"oracleAddress_":"The new address of the ResilientOracle contract."}},"setWhitelist(address,bool)":{"custom:access":"Only owner.","custom:event":"Emits setWhitelist.","params":{"user_":"Address to be add in whitelist.","val_":"Boolean to be set (true for user_ address is whitelisted)."}},"sweepToken(address,address,uint256)":{"custom:access":"Only Owner","custom:error":"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract","custom:event":"Emits SweepToken event","params":{"amount_":"The amount of tokens needs to transfer","to_":"The address of the recipient","token_":"The address of the ERC-20 token to sweep"}},"token()":{"returns":{"_0":"Address of the inner token of this bridge."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Only owner."},"updateSendAndCallEnabled(bool)":{"params":{"enabled_":"Boolean indicating whether the sendAndCall function should be enabled or disabled."}}},"title":"XVSProxyOFTSrc","version":1},"evm":{"bytecode":{"functionDebugData":{"@_10970":{"entryPoint":null,"id":10970,"parameterSlots":4,"returnSlots":0},"@_2968":{"entryPoint":null,"id":2968,"parameterSlots":2,"returnSlots":0},"@_3210":{"entryPoint":null,"id":3210,"parameterSlots":2,"returnSlots":0},"@_503":{"entryPoint":null,"id":503,"parameterSlots":1,"returnSlots":0},"@_5399":{"entryPoint":null,"id":5399,"parameterSlots":0,"returnSlots":0},"@_5515":{"entryPoint":null,"id":5515,"parameterSlots":0,"returnSlots":0},"@_9607":{"entryPoint":null,"id":9607,"parameterSlots":4,"returnSlots":0},"@_989":{"entryPoint":null,"id":989,"parameterSlots":1,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":555,"id":5487,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":644,"id":9333,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":745,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory":{"entryPoint":756,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint8_fromMemory":{"entryPoint":1031,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":892,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack":{"entryPoint":1072,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack":{"entryPoint":945,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":926,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1145,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1015,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":1212,"id":null,"parameterSlots":4,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":1482,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":1284,"id":null,"parameterSlots":3,"returnSlots":1},"checked_sub_t_uint8":{"entryPoint":1183,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":686,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":856,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":1161,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"shift_right_1_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":705,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":736,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8589:65","nodeType":"YulBlock","src":"0:8589:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"888:43:65","nodeType":"YulBlock","src":"888:43:65","statements":[{"nativeSrc":"898:27:65","nodeType":"YulAssignment","src":"898:27:65","value":{"arguments":[{"name":"value","nativeSrc":"913:5:65","nodeType":"YulIdentifier","src":"913:5:65"},{"kind":"number","nativeSrc":"920:4:65","nodeType":"YulLiteral","src":"920:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"909:3:65","nodeType":"YulIdentifier","src":"909:3:65"},"nativeSrc":"909:16:65","nodeType":"YulFunctionCall","src":"909:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"898:7:65","nodeType":"YulIdentifier","src":"898:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"845:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"870:5:65","nodeType":"YulTypedName","src":"870:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"880:7:65","nodeType":"YulTypedName","src":"880:7:65","type":""}],"src":"845:86:65"},{"body":{"nativeSrc":"978:77:65","nodeType":"YulBlock","src":"978:77:65","statements":[{"body":{"nativeSrc":"1033:16:65","nodeType":"YulBlock","src":"1033:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1042:1:65","nodeType":"YulLiteral","src":"1042:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1045:1:65","nodeType":"YulLiteral","src":"1045:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1035:6:65","nodeType":"YulIdentifier","src":"1035:6:65"},"nativeSrc":"1035:12:65","nodeType":"YulFunctionCall","src":"1035:12:65"},"nativeSrc":"1035:12:65","nodeType":"YulExpressionStatement","src":"1035:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1001:5:65","nodeType":"YulIdentifier","src":"1001:5:65"},{"arguments":[{"name":"value","nativeSrc":"1024:5:65","nodeType":"YulIdentifier","src":"1024:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"1008:15:65","nodeType":"YulIdentifier","src":"1008:15:65"},"nativeSrc":"1008:22:65","nodeType":"YulFunctionCall","src":"1008:22:65"}],"functionName":{"name":"eq","nativeSrc":"998:2:65","nodeType":"YulIdentifier","src":"998:2:65"},"nativeSrc":"998:33:65","nodeType":"YulFunctionCall","src":"998:33:65"}],"functionName":{"name":"iszero","nativeSrc":"991:6:65","nodeType":"YulIdentifier","src":"991:6:65"},"nativeSrc":"991:41:65","nodeType":"YulFunctionCall","src":"991:41:65"},"nativeSrc":"988:61:65","nodeType":"YulIf","src":"988:61:65"}]},"name":"validator_revert_t_uint8","nativeSrc":"937:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"971:5:65","nodeType":"YulTypedName","src":"971:5:65","type":""}],"src":"937:118:65"},{"body":{"nativeSrc":"1122:78:65","nodeType":"YulBlock","src":"1122:78:65","statements":[{"nativeSrc":"1132:22:65","nodeType":"YulAssignment","src":"1132:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"1147:6:65","nodeType":"YulIdentifier","src":"1147:6:65"}],"functionName":{"name":"mload","nativeSrc":"1141:5:65","nodeType":"YulIdentifier","src":"1141:5:65"},"nativeSrc":"1141:13:65","nodeType":"YulFunctionCall","src":"1141:13:65"},"variableNames":[{"name":"value","nativeSrc":"1132:5:65","nodeType":"YulIdentifier","src":"1132:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1188:5:65","nodeType":"YulIdentifier","src":"1188:5:65"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"1163:24:65","nodeType":"YulIdentifier","src":"1163:24:65"},"nativeSrc":"1163:31:65","nodeType":"YulFunctionCall","src":"1163:31:65"},"nativeSrc":"1163:31:65","nodeType":"YulExpressionStatement","src":"1163:31:65"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"1061:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1100:6:65","nodeType":"YulTypedName","src":"1100:6:65","type":""},{"name":"end","nativeSrc":"1108:3:65","nodeType":"YulTypedName","src":"1108:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1116:5:65","nodeType":"YulTypedName","src":"1116:5:65","type":""}],"src":"1061:139:65"},{"body":{"nativeSrc":"1332:690:65","nodeType":"YulBlock","src":"1332:690:65","statements":[{"body":{"nativeSrc":"1379:83:65","nodeType":"YulBlock","src":"1379:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1381:77:65","nodeType":"YulIdentifier","src":"1381:77:65"},"nativeSrc":"1381:79:65","nodeType":"YulFunctionCall","src":"1381:79:65"},"nativeSrc":"1381:79:65","nodeType":"YulExpressionStatement","src":"1381:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1353:7:65","nodeType":"YulIdentifier","src":"1353:7:65"},{"name":"headStart","nativeSrc":"1362:9:65","nodeType":"YulIdentifier","src":"1362:9:65"}],"functionName":{"name":"sub","nativeSrc":"1349:3:65","nodeType":"YulIdentifier","src":"1349:3:65"},"nativeSrc":"1349:23:65","nodeType":"YulFunctionCall","src":"1349:23:65"},{"kind":"number","nativeSrc":"1374:3:65","nodeType":"YulLiteral","src":"1374:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1345:3:65","nodeType":"YulIdentifier","src":"1345:3:65"},"nativeSrc":"1345:33:65","nodeType":"YulFunctionCall","src":"1345:33:65"},"nativeSrc":"1342:120:65","nodeType":"YulIf","src":"1342:120:65"},{"nativeSrc":"1472:128:65","nodeType":"YulBlock","src":"1472:128:65","statements":[{"nativeSrc":"1487:15:65","nodeType":"YulVariableDeclaration","src":"1487:15:65","value":{"kind":"number","nativeSrc":"1501:1:65","nodeType":"YulLiteral","src":"1501:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1491:6:65","nodeType":"YulTypedName","src":"1491:6:65","type":""}]},{"nativeSrc":"1516:74:65","nodeType":"YulAssignment","src":"1516:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1562:9:65","nodeType":"YulIdentifier","src":"1562:9:65"},{"name":"offset","nativeSrc":"1573:6:65","nodeType":"YulIdentifier","src":"1573:6:65"}],"functionName":{"name":"add","nativeSrc":"1558:3:65","nodeType":"YulIdentifier","src":"1558:3:65"},"nativeSrc":"1558:22:65","nodeType":"YulFunctionCall","src":"1558:22:65"},{"name":"dataEnd","nativeSrc":"1582:7:65","nodeType":"YulIdentifier","src":"1582:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1526:31:65","nodeType":"YulIdentifier","src":"1526:31:65"},"nativeSrc":"1526:64:65","nodeType":"YulFunctionCall","src":"1526:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1516:6:65","nodeType":"YulIdentifier","src":"1516:6:65"}]}]},{"nativeSrc":"1610:127:65","nodeType":"YulBlock","src":"1610:127:65","statements":[{"nativeSrc":"1625:16:65","nodeType":"YulVariableDeclaration","src":"1625:16:65","value":{"kind":"number","nativeSrc":"1639:2:65","nodeType":"YulLiteral","src":"1639:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1629:6:65","nodeType":"YulTypedName","src":"1629:6:65","type":""}]},{"nativeSrc":"1655:72:65","nodeType":"YulAssignment","src":"1655:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1699:9:65","nodeType":"YulIdentifier","src":"1699:9:65"},{"name":"offset","nativeSrc":"1710:6:65","nodeType":"YulIdentifier","src":"1710:6:65"}],"functionName":{"name":"add","nativeSrc":"1695:3:65","nodeType":"YulIdentifier","src":"1695:3:65"},"nativeSrc":"1695:22:65","nodeType":"YulFunctionCall","src":"1695:22:65"},{"name":"dataEnd","nativeSrc":"1719:7:65","nodeType":"YulIdentifier","src":"1719:7:65"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"1665:29:65","nodeType":"YulIdentifier","src":"1665:29:65"},"nativeSrc":"1665:62:65","nodeType":"YulFunctionCall","src":"1665:62:65"},"variableNames":[{"name":"value1","nativeSrc":"1655:6:65","nodeType":"YulIdentifier","src":"1655:6:65"}]}]},{"nativeSrc":"1747:129:65","nodeType":"YulBlock","src":"1747:129:65","statements":[{"nativeSrc":"1762:16:65","nodeType":"YulVariableDeclaration","src":"1762:16:65","value":{"kind":"number","nativeSrc":"1776:2:65","nodeType":"YulLiteral","src":"1776:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1766:6:65","nodeType":"YulTypedName","src":"1766:6:65","type":""}]},{"nativeSrc":"1792:74:65","nodeType":"YulAssignment","src":"1792:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1838:9:65","nodeType":"YulIdentifier","src":"1838:9:65"},{"name":"offset","nativeSrc":"1849:6:65","nodeType":"YulIdentifier","src":"1849:6:65"}],"functionName":{"name":"add","nativeSrc":"1834:3:65","nodeType":"YulIdentifier","src":"1834:3:65"},"nativeSrc":"1834:22:65","nodeType":"YulFunctionCall","src":"1834:22:65"},{"name":"dataEnd","nativeSrc":"1858:7:65","nodeType":"YulIdentifier","src":"1858:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1802:31:65","nodeType":"YulIdentifier","src":"1802:31:65"},"nativeSrc":"1802:64:65","nodeType":"YulFunctionCall","src":"1802:64:65"},"variableNames":[{"name":"value2","nativeSrc":"1792:6:65","nodeType":"YulIdentifier","src":"1792:6:65"}]}]},{"nativeSrc":"1886:129:65","nodeType":"YulBlock","src":"1886:129:65","statements":[{"nativeSrc":"1901:16:65","nodeType":"YulVariableDeclaration","src":"1901:16:65","value":{"kind":"number","nativeSrc":"1915:2:65","nodeType":"YulLiteral","src":"1915:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1905:6:65","nodeType":"YulTypedName","src":"1905:6:65","type":""}]},{"nativeSrc":"1931:74:65","nodeType":"YulAssignment","src":"1931:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1977:9:65","nodeType":"YulIdentifier","src":"1977:9:65"},{"name":"offset","nativeSrc":"1988:6:65","nodeType":"YulIdentifier","src":"1988:6:65"}],"functionName":{"name":"add","nativeSrc":"1973:3:65","nodeType":"YulIdentifier","src":"1973:3:65"},"nativeSrc":"1973:22:65","nodeType":"YulFunctionCall","src":"1973:22:65"},{"name":"dataEnd","nativeSrc":"1997:7:65","nodeType":"YulIdentifier","src":"1997:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1941:31:65","nodeType":"YulIdentifier","src":"1941:31:65"},"nativeSrc":"1941:64:65","nodeType":"YulFunctionCall","src":"1941:64:65"},"variableNames":[{"name":"value3","nativeSrc":"1931:6:65","nodeType":"YulIdentifier","src":"1931:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory","nativeSrc":"1206:816:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1278:9:65","nodeType":"YulTypedName","src":"1278:9:65","type":""},{"name":"dataEnd","nativeSrc":"1289:7:65","nodeType":"YulTypedName","src":"1289:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1301:6:65","nodeType":"YulTypedName","src":"1301:6:65","type":""},{"name":"value1","nativeSrc":"1309:6:65","nodeType":"YulTypedName","src":"1309:6:65","type":""},{"name":"value2","nativeSrc":"1317:6:65","nodeType":"YulTypedName","src":"1317:6:65","type":""},{"name":"value3","nativeSrc":"1325:6:65","nodeType":"YulTypedName","src":"1325:6:65","type":""}],"src":"1206:816:65"},{"body":{"nativeSrc":"2086:40:65","nodeType":"YulBlock","src":"2086:40:65","statements":[{"nativeSrc":"2097:22:65","nodeType":"YulAssignment","src":"2097:22:65","value":{"arguments":[{"name":"value","nativeSrc":"2113:5:65","nodeType":"YulIdentifier","src":"2113:5:65"}],"functionName":{"name":"mload","nativeSrc":"2107:5:65","nodeType":"YulIdentifier","src":"2107:5:65"},"nativeSrc":"2107:12:65","nodeType":"YulFunctionCall","src":"2107:12:65"},"variableNames":[{"name":"length","nativeSrc":"2097:6:65","nodeType":"YulIdentifier","src":"2097:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2028:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2069:5:65","nodeType":"YulTypedName","src":"2069:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2079:6:65","nodeType":"YulTypedName","src":"2079:6:65","type":""}],"src":"2028:98:65"},{"body":{"nativeSrc":"2245:34:65","nodeType":"YulBlock","src":"2245:34:65","statements":[{"nativeSrc":"2255:18:65","nodeType":"YulAssignment","src":"2255:18:65","value":{"name":"pos","nativeSrc":"2270:3:65","nodeType":"YulIdentifier","src":"2270:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"2255:11:65","nodeType":"YulIdentifier","src":"2255:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2132:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2217:3:65","nodeType":"YulTypedName","src":"2217:3:65","type":""},{"name":"length","nativeSrc":"2222:6:65","nodeType":"YulTypedName","src":"2222:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"2233:11:65","nodeType":"YulTypedName","src":"2233:11:65","type":""}],"src":"2132:147:65"},{"body":{"nativeSrc":"2347:186:65","nodeType":"YulBlock","src":"2347:186:65","statements":[{"nativeSrc":"2358:10:65","nodeType":"YulVariableDeclaration","src":"2358:10:65","value":{"kind":"number","nativeSrc":"2367:1:65","nodeType":"YulLiteral","src":"2367:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2362:1:65","nodeType":"YulTypedName","src":"2362:1:65","type":""}]},{"body":{"nativeSrc":"2427:63:65","nodeType":"YulBlock","src":"2427:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2452:3:65","nodeType":"YulIdentifier","src":"2452:3:65"},{"name":"i","nativeSrc":"2457:1:65","nodeType":"YulIdentifier","src":"2457:1:65"}],"functionName":{"name":"add","nativeSrc":"2448:3:65","nodeType":"YulIdentifier","src":"2448:3:65"},"nativeSrc":"2448:11:65","nodeType":"YulFunctionCall","src":"2448:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2471:3:65","nodeType":"YulIdentifier","src":"2471:3:65"},{"name":"i","nativeSrc":"2476:1:65","nodeType":"YulIdentifier","src":"2476:1:65"}],"functionName":{"name":"add","nativeSrc":"2467:3:65","nodeType":"YulIdentifier","src":"2467:3:65"},"nativeSrc":"2467:11:65","nodeType":"YulFunctionCall","src":"2467:11:65"}],"functionName":{"name":"mload","nativeSrc":"2461:5:65","nodeType":"YulIdentifier","src":"2461:5:65"},"nativeSrc":"2461:18:65","nodeType":"YulFunctionCall","src":"2461:18:65"}],"functionName":{"name":"mstore","nativeSrc":"2441:6:65","nodeType":"YulIdentifier","src":"2441:6:65"},"nativeSrc":"2441:39:65","nodeType":"YulFunctionCall","src":"2441:39:65"},"nativeSrc":"2441:39:65","nodeType":"YulExpressionStatement","src":"2441:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2388:1:65","nodeType":"YulIdentifier","src":"2388:1:65"},{"name":"length","nativeSrc":"2391:6:65","nodeType":"YulIdentifier","src":"2391:6:65"}],"functionName":{"name":"lt","nativeSrc":"2385:2:65","nodeType":"YulIdentifier","src":"2385:2:65"},"nativeSrc":"2385:13:65","nodeType":"YulFunctionCall","src":"2385:13:65"},"nativeSrc":"2377:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"2399:19:65","nodeType":"YulBlock","src":"2399:19:65","statements":[{"nativeSrc":"2401:15:65","nodeType":"YulAssignment","src":"2401:15:65","value":{"arguments":[{"name":"i","nativeSrc":"2410:1:65","nodeType":"YulIdentifier","src":"2410:1:65"},{"kind":"number","nativeSrc":"2413:2:65","nodeType":"YulLiteral","src":"2413:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2406:3:65","nodeType":"YulIdentifier","src":"2406:3:65"},"nativeSrc":"2406:10:65","nodeType":"YulFunctionCall","src":"2406:10:65"},"variableNames":[{"name":"i","nativeSrc":"2401:1:65","nodeType":"YulIdentifier","src":"2401:1:65"}]}]},"pre":{"nativeSrc":"2381:3:65","nodeType":"YulBlock","src":"2381:3:65","statements":[]},"src":"2377:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2510:3:65","nodeType":"YulIdentifier","src":"2510:3:65"},{"name":"length","nativeSrc":"2515:6:65","nodeType":"YulIdentifier","src":"2515:6:65"}],"functionName":{"name":"add","nativeSrc":"2506:3:65","nodeType":"YulIdentifier","src":"2506:3:65"},"nativeSrc":"2506:16:65","nodeType":"YulFunctionCall","src":"2506:16:65"},{"kind":"number","nativeSrc":"2524:1:65","nodeType":"YulLiteral","src":"2524:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2499:6:65","nodeType":"YulIdentifier","src":"2499:6:65"},"nativeSrc":"2499:27:65","nodeType":"YulFunctionCall","src":"2499:27:65"},"nativeSrc":"2499:27:65","nodeType":"YulExpressionStatement","src":"2499:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2285:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2329:3:65","nodeType":"YulTypedName","src":"2329:3:65","type":""},{"name":"dst","nativeSrc":"2334:3:65","nodeType":"YulTypedName","src":"2334:3:65","type":""},{"name":"length","nativeSrc":"2339:6:65","nodeType":"YulTypedName","src":"2339:6:65","type":""}],"src":"2285:248:65"},{"body":{"nativeSrc":"2647:278:65","nodeType":"YulBlock","src":"2647:278:65","statements":[{"nativeSrc":"2657:52:65","nodeType":"YulVariableDeclaration","src":"2657:52:65","value":{"arguments":[{"name":"value","nativeSrc":"2703:5:65","nodeType":"YulIdentifier","src":"2703:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2671:31:65","nodeType":"YulIdentifier","src":"2671:31:65"},"nativeSrc":"2671:38:65","nodeType":"YulFunctionCall","src":"2671:38:65"},"variables":[{"name":"length","nativeSrc":"2661:6:65","nodeType":"YulTypedName","src":"2661:6:65","type":""}]},{"nativeSrc":"2718:95:65","nodeType":"YulAssignment","src":"2718:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"2801:3:65","nodeType":"YulIdentifier","src":"2801:3:65"},{"name":"length","nativeSrc":"2806:6:65","nodeType":"YulIdentifier","src":"2806:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2725:75:65","nodeType":"YulIdentifier","src":"2725:75:65"},"nativeSrc":"2725:88:65","nodeType":"YulFunctionCall","src":"2725:88:65"},"variableNames":[{"name":"pos","nativeSrc":"2718:3:65","nodeType":"YulIdentifier","src":"2718:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2861:5:65","nodeType":"YulIdentifier","src":"2861:5:65"},{"kind":"number","nativeSrc":"2868:4:65","nodeType":"YulLiteral","src":"2868:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2857:3:65","nodeType":"YulIdentifier","src":"2857:3:65"},"nativeSrc":"2857:16:65","nodeType":"YulFunctionCall","src":"2857:16:65"},{"name":"pos","nativeSrc":"2875:3:65","nodeType":"YulIdentifier","src":"2875:3:65"},{"name":"length","nativeSrc":"2880:6:65","nodeType":"YulIdentifier","src":"2880:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2822:34:65","nodeType":"YulIdentifier","src":"2822:34:65"},"nativeSrc":"2822:65:65","nodeType":"YulFunctionCall","src":"2822:65:65"},"nativeSrc":"2822:65:65","nodeType":"YulExpressionStatement","src":"2822:65:65"},{"nativeSrc":"2896:23:65","nodeType":"YulAssignment","src":"2896:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"2907:3:65","nodeType":"YulIdentifier","src":"2907:3:65"},{"name":"length","nativeSrc":"2912:6:65","nodeType":"YulIdentifier","src":"2912:6:65"}],"functionName":{"name":"add","nativeSrc":"2903:3:65","nodeType":"YulIdentifier","src":"2903:3:65"},"nativeSrc":"2903:16:65","nodeType":"YulFunctionCall","src":"2903:16:65"},"variableNames":[{"name":"end","nativeSrc":"2896:3:65","nodeType":"YulIdentifier","src":"2896:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"2539:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2628:5:65","nodeType":"YulTypedName","src":"2628:5:65","type":""},{"name":"pos","nativeSrc":"2635:3:65","nodeType":"YulTypedName","src":"2635:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2643:3:65","nodeType":"YulTypedName","src":"2643:3:65","type":""}],"src":"2539:386:65"},{"body":{"nativeSrc":"3065:137:65","nodeType":"YulBlock","src":"3065:137:65","statements":[{"nativeSrc":"3076:100:65","nodeType":"YulAssignment","src":"3076:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"3163:6:65","nodeType":"YulIdentifier","src":"3163:6:65"},{"name":"pos","nativeSrc":"3172:3:65","nodeType":"YulIdentifier","src":"3172:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"3083:79:65","nodeType":"YulIdentifier","src":"3083:79:65"},"nativeSrc":"3083:93:65","nodeType":"YulFunctionCall","src":"3083:93:65"},"variableNames":[{"name":"pos","nativeSrc":"3076:3:65","nodeType":"YulIdentifier","src":"3076:3:65"}]},{"nativeSrc":"3186:10:65","nodeType":"YulAssignment","src":"3186:10:65","value":{"name":"pos","nativeSrc":"3193:3:65","nodeType":"YulIdentifier","src":"3193:3:65"},"variableNames":[{"name":"end","nativeSrc":"3186:3:65","nodeType":"YulIdentifier","src":"3186:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"2931:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3044:3:65","nodeType":"YulTypedName","src":"3044:3:65","type":""},{"name":"value0","nativeSrc":"3050:6:65","nodeType":"YulTypedName","src":"3050:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3061:3:65","nodeType":"YulTypedName","src":"3061:3:65","type":""}],"src":"2931:271:65"},{"body":{"nativeSrc":"3304:73:65","nodeType":"YulBlock","src":"3304:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3321:3:65","nodeType":"YulIdentifier","src":"3321:3:65"},{"name":"length","nativeSrc":"3326:6:65","nodeType":"YulIdentifier","src":"3326:6:65"}],"functionName":{"name":"mstore","nativeSrc":"3314:6:65","nodeType":"YulIdentifier","src":"3314:6:65"},"nativeSrc":"3314:19:65","nodeType":"YulFunctionCall","src":"3314:19:65"},"nativeSrc":"3314:19:65","nodeType":"YulExpressionStatement","src":"3314:19:65"},{"nativeSrc":"3342:29:65","nodeType":"YulAssignment","src":"3342:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"3361:3:65","nodeType":"YulIdentifier","src":"3361:3:65"},{"kind":"number","nativeSrc":"3366:4:65","nodeType":"YulLiteral","src":"3366:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3357:3:65","nodeType":"YulIdentifier","src":"3357:3:65"},"nativeSrc":"3357:14:65","nodeType":"YulFunctionCall","src":"3357:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"3342:11:65","nodeType":"YulIdentifier","src":"3342:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3208:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3276:3:65","nodeType":"YulTypedName","src":"3276:3:65","type":""},{"name":"length","nativeSrc":"3281:6:65","nodeType":"YulTypedName","src":"3281:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3292:11:65","nodeType":"YulTypedName","src":"3292:11:65","type":""}],"src":"3208:169:65"},{"body":{"nativeSrc":"3489:119:65","nodeType":"YulBlock","src":"3489:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3511:6:65","nodeType":"YulIdentifier","src":"3511:6:65"},{"kind":"number","nativeSrc":"3519:1:65","nodeType":"YulLiteral","src":"3519:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3507:3:65","nodeType":"YulIdentifier","src":"3507:3:65"},"nativeSrc":"3507:14:65","nodeType":"YulFunctionCall","src":"3507:14:65"},{"hexValue":"50726f78794f46543a206661696c656420746f2067657420746f6b656e206465","kind":"string","nativeSrc":"3523:34:65","nodeType":"YulLiteral","src":"3523:34:65","type":"","value":"ProxyOFT: failed to get token de"}],"functionName":{"name":"mstore","nativeSrc":"3500:6:65","nodeType":"YulIdentifier","src":"3500:6:65"},"nativeSrc":"3500:58:65","nodeType":"YulFunctionCall","src":"3500:58:65"},"nativeSrc":"3500:58:65","nodeType":"YulExpressionStatement","src":"3500:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3579:6:65","nodeType":"YulIdentifier","src":"3579:6:65"},{"kind":"number","nativeSrc":"3587:2:65","nodeType":"YulLiteral","src":"3587:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3575:3:65","nodeType":"YulIdentifier","src":"3575:3:65"},"nativeSrc":"3575:15:65","nodeType":"YulFunctionCall","src":"3575:15:65"},{"hexValue":"63696d616c73","kind":"string","nativeSrc":"3592:8:65","nodeType":"YulLiteral","src":"3592:8:65","type":"","value":"cimals"}],"functionName":{"name":"mstore","nativeSrc":"3568:6:65","nodeType":"YulIdentifier","src":"3568:6:65"},"nativeSrc":"3568:33:65","nodeType":"YulFunctionCall","src":"3568:33:65"},"nativeSrc":"3568:33:65","nodeType":"YulExpressionStatement","src":"3568:33:65"}]},"name":"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","nativeSrc":"3383:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3481:6:65","nodeType":"YulTypedName","src":"3481:6:65","type":""}],"src":"3383:225:65"},{"body":{"nativeSrc":"3760:220:65","nodeType":"YulBlock","src":"3760:220:65","statements":[{"nativeSrc":"3770:74:65","nodeType":"YulAssignment","src":"3770:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"3836:3:65","nodeType":"YulIdentifier","src":"3836:3:65"},{"kind":"number","nativeSrc":"3841:2:65","nodeType":"YulLiteral","src":"3841:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3777:58:65","nodeType":"YulIdentifier","src":"3777:58:65"},"nativeSrc":"3777:67:65","nodeType":"YulFunctionCall","src":"3777:67:65"},"variableNames":[{"name":"pos","nativeSrc":"3770:3:65","nodeType":"YulIdentifier","src":"3770:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3942:3:65","nodeType":"YulIdentifier","src":"3942:3:65"}],"functionName":{"name":"store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed","nativeSrc":"3853:88:65","nodeType":"YulIdentifier","src":"3853:88:65"},"nativeSrc":"3853:93:65","nodeType":"YulFunctionCall","src":"3853:93:65"},"nativeSrc":"3853:93:65","nodeType":"YulExpressionStatement","src":"3853:93:65"},{"nativeSrc":"3955:19:65","nodeType":"YulAssignment","src":"3955:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"3966:3:65","nodeType":"YulIdentifier","src":"3966:3:65"},{"kind":"number","nativeSrc":"3971:2:65","nodeType":"YulLiteral","src":"3971:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3962:3:65","nodeType":"YulIdentifier","src":"3962:3:65"},"nativeSrc":"3962:12:65","nodeType":"YulFunctionCall","src":"3962:12:65"},"variableNames":[{"name":"end","nativeSrc":"3955:3:65","nodeType":"YulIdentifier","src":"3955:3:65"}]}]},"name":"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack","nativeSrc":"3614:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3748:3:65","nodeType":"YulTypedName","src":"3748:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3756:3:65","nodeType":"YulTypedName","src":"3756:3:65","type":""}],"src":"3614:366:65"},{"body":{"nativeSrc":"4157:248:65","nodeType":"YulBlock","src":"4157:248:65","statements":[{"nativeSrc":"4167:26:65","nodeType":"YulAssignment","src":"4167:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4179:9:65","nodeType":"YulIdentifier","src":"4179:9:65"},{"kind":"number","nativeSrc":"4190:2:65","nodeType":"YulLiteral","src":"4190:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4175:3:65","nodeType":"YulIdentifier","src":"4175:3:65"},"nativeSrc":"4175:18:65","nodeType":"YulFunctionCall","src":"4175:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4167:4:65","nodeType":"YulIdentifier","src":"4167:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4214:9:65","nodeType":"YulIdentifier","src":"4214:9:65"},{"kind":"number","nativeSrc":"4225:1:65","nodeType":"YulLiteral","src":"4225:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4210:3:65","nodeType":"YulIdentifier","src":"4210:3:65"},"nativeSrc":"4210:17:65","nodeType":"YulFunctionCall","src":"4210:17:65"},{"arguments":[{"name":"tail","nativeSrc":"4233:4:65","nodeType":"YulIdentifier","src":"4233:4:65"},{"name":"headStart","nativeSrc":"4239:9:65","nodeType":"YulIdentifier","src":"4239:9:65"}],"functionName":{"name":"sub","nativeSrc":"4229:3:65","nodeType":"YulIdentifier","src":"4229:3:65"},"nativeSrc":"4229:20:65","nodeType":"YulFunctionCall","src":"4229:20:65"}],"functionName":{"name":"mstore","nativeSrc":"4203:6:65","nodeType":"YulIdentifier","src":"4203:6:65"},"nativeSrc":"4203:47:65","nodeType":"YulFunctionCall","src":"4203:47:65"},"nativeSrc":"4203:47:65","nodeType":"YulExpressionStatement","src":"4203:47:65"},{"nativeSrc":"4259:139:65","nodeType":"YulAssignment","src":"4259:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"4393:4:65","nodeType":"YulIdentifier","src":"4393:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack","nativeSrc":"4267:124:65","nodeType":"YulIdentifier","src":"4267:124:65"},"nativeSrc":"4267:131:65","nodeType":"YulFunctionCall","src":"4267:131:65"},"variableNames":[{"name":"tail","nativeSrc":"4259:4:65","nodeType":"YulIdentifier","src":"4259:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3986:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4137:9:65","nodeType":"YulTypedName","src":"4137:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4152:4:65","nodeType":"YulTypedName","src":"4152:4:65","type":""}],"src":"3986:419:65"},{"body":{"nativeSrc":"4486:272:65","nodeType":"YulBlock","src":"4486:272:65","statements":[{"body":{"nativeSrc":"4532:83:65","nodeType":"YulBlock","src":"4532:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4534:77:65","nodeType":"YulIdentifier","src":"4534:77:65"},"nativeSrc":"4534:79:65","nodeType":"YulFunctionCall","src":"4534:79:65"},"nativeSrc":"4534:79:65","nodeType":"YulExpressionStatement","src":"4534:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4507:7:65","nodeType":"YulIdentifier","src":"4507:7:65"},{"name":"headStart","nativeSrc":"4516:9:65","nodeType":"YulIdentifier","src":"4516:9:65"}],"functionName":{"name":"sub","nativeSrc":"4503:3:65","nodeType":"YulIdentifier","src":"4503:3:65"},"nativeSrc":"4503:23:65","nodeType":"YulFunctionCall","src":"4503:23:65"},{"kind":"number","nativeSrc":"4528:2:65","nodeType":"YulLiteral","src":"4528:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4499:3:65","nodeType":"YulIdentifier","src":"4499:3:65"},"nativeSrc":"4499:32:65","nodeType":"YulFunctionCall","src":"4499:32:65"},"nativeSrc":"4496:119:65","nodeType":"YulIf","src":"4496:119:65"},{"nativeSrc":"4625:126:65","nodeType":"YulBlock","src":"4625:126:65","statements":[{"nativeSrc":"4640:15:65","nodeType":"YulVariableDeclaration","src":"4640:15:65","value":{"kind":"number","nativeSrc":"4654:1:65","nodeType":"YulLiteral","src":"4654:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4644:6:65","nodeType":"YulTypedName","src":"4644:6:65","type":""}]},{"nativeSrc":"4669:72:65","nodeType":"YulAssignment","src":"4669:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4713:9:65","nodeType":"YulIdentifier","src":"4713:9:65"},{"name":"offset","nativeSrc":"4724:6:65","nodeType":"YulIdentifier","src":"4724:6:65"}],"functionName":{"name":"add","nativeSrc":"4709:3:65","nodeType":"YulIdentifier","src":"4709:3:65"},"nativeSrc":"4709:22:65","nodeType":"YulFunctionCall","src":"4709:22:65"},{"name":"dataEnd","nativeSrc":"4733:7:65","nodeType":"YulIdentifier","src":"4733:7:65"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"4679:29:65","nodeType":"YulIdentifier","src":"4679:29:65"},"nativeSrc":"4679:62:65","nodeType":"YulFunctionCall","src":"4679:62:65"},"variableNames":[{"name":"value0","nativeSrc":"4669:6:65","nodeType":"YulIdentifier","src":"4669:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint8_fromMemory","nativeSrc":"4411:347:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4456:9:65","nodeType":"YulTypedName","src":"4456:9:65","type":""},{"name":"dataEnd","nativeSrc":"4467:7:65","nodeType":"YulTypedName","src":"4467:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4479:6:65","nodeType":"YulTypedName","src":"4479:6:65","type":""}],"src":"4411:347:65"},{"body":{"nativeSrc":"4870:125:65","nodeType":"YulBlock","src":"4870:125:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4892:6:65","nodeType":"YulIdentifier","src":"4892:6:65"},{"kind":"number","nativeSrc":"4900:1:65","nodeType":"YulLiteral","src":"4900:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4888:3:65","nodeType":"YulIdentifier","src":"4888:3:65"},"nativeSrc":"4888:14:65","nodeType":"YulFunctionCall","src":"4888:14:65"},{"hexValue":"50726f78794f46543a20736861726564446563696d616c73206d757374206265","kind":"string","nativeSrc":"4904:34:65","nodeType":"YulLiteral","src":"4904:34:65","type":"","value":"ProxyOFT: sharedDecimals must be"}],"functionName":{"name":"mstore","nativeSrc":"4881:6:65","nodeType":"YulIdentifier","src":"4881:6:65"},"nativeSrc":"4881:58:65","nodeType":"YulFunctionCall","src":"4881:58:65"},"nativeSrc":"4881:58:65","nodeType":"YulExpressionStatement","src":"4881:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4960:6:65","nodeType":"YulIdentifier","src":"4960:6:65"},{"kind":"number","nativeSrc":"4968:2:65","nodeType":"YulLiteral","src":"4968:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4956:3:65","nodeType":"YulIdentifier","src":"4956:3:65"},"nativeSrc":"4956:15:65","nodeType":"YulFunctionCall","src":"4956:15:65"},{"hexValue":"203c3d20646563696d616c73","kind":"string","nativeSrc":"4973:14:65","nodeType":"YulLiteral","src":"4973:14:65","type":"","value":" <= decimals"}],"functionName":{"name":"mstore","nativeSrc":"4949:6:65","nodeType":"YulIdentifier","src":"4949:6:65"},"nativeSrc":"4949:39:65","nodeType":"YulFunctionCall","src":"4949:39:65"},"nativeSrc":"4949:39:65","nodeType":"YulExpressionStatement","src":"4949:39:65"}]},"name":"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","nativeSrc":"4764:231:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4862:6:65","nodeType":"YulTypedName","src":"4862:6:65","type":""}],"src":"4764:231:65"},{"body":{"nativeSrc":"5147:220:65","nodeType":"YulBlock","src":"5147:220:65","statements":[{"nativeSrc":"5157:74:65","nodeType":"YulAssignment","src":"5157:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5223:3:65","nodeType":"YulIdentifier","src":"5223:3:65"},{"kind":"number","nativeSrc":"5228:2:65","nodeType":"YulLiteral","src":"5228:2:65","type":"","value":"44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5164:58:65","nodeType":"YulIdentifier","src":"5164:58:65"},"nativeSrc":"5164:67:65","nodeType":"YulFunctionCall","src":"5164:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5157:3:65","nodeType":"YulIdentifier","src":"5157:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5329:3:65","nodeType":"YulIdentifier","src":"5329:3:65"}],"functionName":{"name":"store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623","nativeSrc":"5240:88:65","nodeType":"YulIdentifier","src":"5240:88:65"},"nativeSrc":"5240:93:65","nodeType":"YulFunctionCall","src":"5240:93:65"},"nativeSrc":"5240:93:65","nodeType":"YulExpressionStatement","src":"5240:93:65"},{"nativeSrc":"5342:19:65","nodeType":"YulAssignment","src":"5342:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5353:3:65","nodeType":"YulIdentifier","src":"5353:3:65"},{"kind":"number","nativeSrc":"5358:2:65","nodeType":"YulLiteral","src":"5358:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5349:3:65","nodeType":"YulIdentifier","src":"5349:3:65"},"nativeSrc":"5349:12:65","nodeType":"YulFunctionCall","src":"5349:12:65"},"variableNames":[{"name":"end","nativeSrc":"5342:3:65","nodeType":"YulIdentifier","src":"5342:3:65"}]}]},"name":"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack","nativeSrc":"5001:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5135:3:65","nodeType":"YulTypedName","src":"5135:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5143:3:65","nodeType":"YulTypedName","src":"5143:3:65","type":""}],"src":"5001:366:65"},{"body":{"nativeSrc":"5544:248:65","nodeType":"YulBlock","src":"5544:248:65","statements":[{"nativeSrc":"5554:26:65","nodeType":"YulAssignment","src":"5554:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5566:9:65","nodeType":"YulIdentifier","src":"5566:9:65"},{"kind":"number","nativeSrc":"5577:2:65","nodeType":"YulLiteral","src":"5577:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5562:3:65","nodeType":"YulIdentifier","src":"5562:3:65"},"nativeSrc":"5562:18:65","nodeType":"YulFunctionCall","src":"5562:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5554:4:65","nodeType":"YulIdentifier","src":"5554:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5601:9:65","nodeType":"YulIdentifier","src":"5601:9:65"},{"kind":"number","nativeSrc":"5612:1:65","nodeType":"YulLiteral","src":"5612:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5597:3:65","nodeType":"YulIdentifier","src":"5597:3:65"},"nativeSrc":"5597:17:65","nodeType":"YulFunctionCall","src":"5597:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5620:4:65","nodeType":"YulIdentifier","src":"5620:4:65"},{"name":"headStart","nativeSrc":"5626:9:65","nodeType":"YulIdentifier","src":"5626:9:65"}],"functionName":{"name":"sub","nativeSrc":"5616:3:65","nodeType":"YulIdentifier","src":"5616:3:65"},"nativeSrc":"5616:20:65","nodeType":"YulFunctionCall","src":"5616:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5590:6:65","nodeType":"YulIdentifier","src":"5590:6:65"},"nativeSrc":"5590:47:65","nodeType":"YulFunctionCall","src":"5590:47:65"},"nativeSrc":"5590:47:65","nodeType":"YulExpressionStatement","src":"5590:47:65"},{"nativeSrc":"5646:139:65","nodeType":"YulAssignment","src":"5646:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5780:4:65","nodeType":"YulIdentifier","src":"5780:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack","nativeSrc":"5654:124:65","nodeType":"YulIdentifier","src":"5654:124:65"},"nativeSrc":"5654:131:65","nodeType":"YulFunctionCall","src":"5654:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5646:4:65","nodeType":"YulIdentifier","src":"5646:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5373:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5524:9:65","nodeType":"YulTypedName","src":"5524:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5539:4:65","nodeType":"YulTypedName","src":"5539:4:65","type":""}],"src":"5373:419:65"},{"body":{"nativeSrc":"5826:152:65","nodeType":"YulBlock","src":"5826:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5843:1:65","nodeType":"YulLiteral","src":"5843:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5846:77:65","nodeType":"YulLiteral","src":"5846:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5836:6:65","nodeType":"YulIdentifier","src":"5836:6:65"},"nativeSrc":"5836:88:65","nodeType":"YulFunctionCall","src":"5836:88:65"},"nativeSrc":"5836:88:65","nodeType":"YulExpressionStatement","src":"5836:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5940:1:65","nodeType":"YulLiteral","src":"5940:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"5943:4:65","nodeType":"YulLiteral","src":"5943:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"5933:6:65","nodeType":"YulIdentifier","src":"5933:6:65"},"nativeSrc":"5933:15:65","nodeType":"YulFunctionCall","src":"5933:15:65"},"nativeSrc":"5933:15:65","nodeType":"YulExpressionStatement","src":"5933:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5964:1:65","nodeType":"YulLiteral","src":"5964:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5967:4:65","nodeType":"YulLiteral","src":"5967:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5957:6:65","nodeType":"YulIdentifier","src":"5957:6:65"},"nativeSrc":"5957:15:65","nodeType":"YulFunctionCall","src":"5957:15:65"},"nativeSrc":"5957:15:65","nodeType":"YulExpressionStatement","src":"5957:15:65"}]},"name":"panic_error_0x11","nativeSrc":"5798:180:65","nodeType":"YulFunctionDefinition","src":"5798:180:65"},{"body":{"nativeSrc":"6027:148:65","nodeType":"YulBlock","src":"6027:148:65","statements":[{"nativeSrc":"6037:23:65","nodeType":"YulAssignment","src":"6037:23:65","value":{"arguments":[{"name":"x","nativeSrc":"6058:1:65","nodeType":"YulIdentifier","src":"6058:1:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6042:15:65","nodeType":"YulIdentifier","src":"6042:15:65"},"nativeSrc":"6042:18:65","nodeType":"YulFunctionCall","src":"6042:18:65"},"variableNames":[{"name":"x","nativeSrc":"6037:1:65","nodeType":"YulIdentifier","src":"6037:1:65"}]},{"nativeSrc":"6069:23:65","nodeType":"YulAssignment","src":"6069:23:65","value":{"arguments":[{"name":"y","nativeSrc":"6090:1:65","nodeType":"YulIdentifier","src":"6090:1:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"6074:15:65","nodeType":"YulIdentifier","src":"6074:15:65"},"nativeSrc":"6074:18:65","nodeType":"YulFunctionCall","src":"6074:18:65"},"variableNames":[{"name":"y","nativeSrc":"6069:1:65","nodeType":"YulIdentifier","src":"6069:1:65"}]},{"nativeSrc":"6101:17:65","nodeType":"YulAssignment","src":"6101:17:65","value":{"arguments":[{"name":"x","nativeSrc":"6113:1:65","nodeType":"YulIdentifier","src":"6113:1:65"},{"name":"y","nativeSrc":"6116:1:65","nodeType":"YulIdentifier","src":"6116:1:65"}],"functionName":{"name":"sub","nativeSrc":"6109:3:65","nodeType":"YulIdentifier","src":"6109:3:65"},"nativeSrc":"6109:9:65","nodeType":"YulFunctionCall","src":"6109:9:65"},"variableNames":[{"name":"diff","nativeSrc":"6101:4:65","nodeType":"YulIdentifier","src":"6101:4:65"}]},{"body":{"nativeSrc":"6146:22:65","nodeType":"YulBlock","src":"6146:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6148:16:65","nodeType":"YulIdentifier","src":"6148:16:65"},"nativeSrc":"6148:18:65","nodeType":"YulFunctionCall","src":"6148:18:65"},"nativeSrc":"6148:18:65","nodeType":"YulExpressionStatement","src":"6148:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"6134:4:65","nodeType":"YulIdentifier","src":"6134:4:65"},{"kind":"number","nativeSrc":"6140:4:65","nodeType":"YulLiteral","src":"6140:4:65","type":"","value":"0xff"}],"functionName":{"name":"gt","nativeSrc":"6131:2:65","nodeType":"YulIdentifier","src":"6131:2:65"},"nativeSrc":"6131:14:65","nodeType":"YulFunctionCall","src":"6131:14:65"},"nativeSrc":"6128:40:65","nodeType":"YulIf","src":"6128:40:65"}]},"name":"checked_sub_t_uint8","nativeSrc":"5984:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6013:1:65","nodeType":"YulTypedName","src":"6013:1:65","type":""},{"name":"y","nativeSrc":"6016:1:65","nodeType":"YulTypedName","src":"6016:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6022:4:65","nodeType":"YulTypedName","src":"6022:4:65","type":""}],"src":"5984:191:65"},{"body":{"nativeSrc":"6232:51:65","nodeType":"YulBlock","src":"6232:51:65","statements":[{"nativeSrc":"6242:34:65","nodeType":"YulAssignment","src":"6242:34:65","value":{"arguments":[{"kind":"number","nativeSrc":"6267:1:65","nodeType":"YulLiteral","src":"6267:1:65","type":"","value":"1"},{"name":"value","nativeSrc":"6270:5:65","nodeType":"YulIdentifier","src":"6270:5:65"}],"functionName":{"name":"shr","nativeSrc":"6263:3:65","nodeType":"YulIdentifier","src":"6263:3:65"},"nativeSrc":"6263:13:65","nodeType":"YulFunctionCall","src":"6263:13:65"},"variableNames":[{"name":"newValue","nativeSrc":"6242:8:65","nodeType":"YulIdentifier","src":"6242:8:65"}]}]},"name":"shift_right_1_unsigned","nativeSrc":"6181:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6213:5:65","nodeType":"YulTypedName","src":"6213:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"6223:8:65","nodeType":"YulTypedName","src":"6223:8:65","type":""}],"src":"6181:102:65"},{"body":{"nativeSrc":"6362:775:65","nodeType":"YulBlock","src":"6362:775:65","statements":[{"nativeSrc":"6372:15:65","nodeType":"YulAssignment","src":"6372:15:65","value":{"name":"_power","nativeSrc":"6381:6:65","nodeType":"YulIdentifier","src":"6381:6:65"},"variableNames":[{"name":"power","nativeSrc":"6372:5:65","nodeType":"YulIdentifier","src":"6372:5:65"}]},{"nativeSrc":"6396:14:65","nodeType":"YulAssignment","src":"6396:14:65","value":{"name":"_base","nativeSrc":"6405:5:65","nodeType":"YulIdentifier","src":"6405:5:65"},"variableNames":[{"name":"base","nativeSrc":"6396:4:65","nodeType":"YulIdentifier","src":"6396:4:65"}]},{"body":{"nativeSrc":"6454:677:65","nodeType":"YulBlock","src":"6454:677:65","statements":[{"body":{"nativeSrc":"6542:22:65","nodeType":"YulBlock","src":"6542:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6544:16:65","nodeType":"YulIdentifier","src":"6544:16:65"},"nativeSrc":"6544:18:65","nodeType":"YulFunctionCall","src":"6544:18:65"},"nativeSrc":"6544:18:65","nodeType":"YulExpressionStatement","src":"6544:18:65"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"6520:4:65","nodeType":"YulIdentifier","src":"6520:4:65"},{"arguments":[{"name":"max","nativeSrc":"6530:3:65","nodeType":"YulIdentifier","src":"6530:3:65"},{"name":"base","nativeSrc":"6535:4:65","nodeType":"YulIdentifier","src":"6535:4:65"}],"functionName":{"name":"div","nativeSrc":"6526:3:65","nodeType":"YulIdentifier","src":"6526:3:65"},"nativeSrc":"6526:14:65","nodeType":"YulFunctionCall","src":"6526:14:65"}],"functionName":{"name":"gt","nativeSrc":"6517:2:65","nodeType":"YulIdentifier","src":"6517:2:65"},"nativeSrc":"6517:24:65","nodeType":"YulFunctionCall","src":"6517:24:65"},"nativeSrc":"6514:50:65","nodeType":"YulIf","src":"6514:50:65"},{"body":{"nativeSrc":"6609:419:65","nodeType":"YulBlock","src":"6609:419:65","statements":[{"nativeSrc":"6989:25:65","nodeType":"YulAssignment","src":"6989:25:65","value":{"arguments":[{"name":"power","nativeSrc":"7002:5:65","nodeType":"YulIdentifier","src":"7002:5:65"},{"name":"base","nativeSrc":"7009:4:65","nodeType":"YulIdentifier","src":"7009:4:65"}],"functionName":{"name":"mul","nativeSrc":"6998:3:65","nodeType":"YulIdentifier","src":"6998:3:65"},"nativeSrc":"6998:16:65","nodeType":"YulFunctionCall","src":"6998:16:65"},"variableNames":[{"name":"power","nativeSrc":"6989:5:65","nodeType":"YulIdentifier","src":"6989:5:65"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6584:8:65","nodeType":"YulIdentifier","src":"6584:8:65"},{"kind":"number","nativeSrc":"6594:1:65","nodeType":"YulLiteral","src":"6594:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6580:3:65","nodeType":"YulIdentifier","src":"6580:3:65"},"nativeSrc":"6580:16:65","nodeType":"YulFunctionCall","src":"6580:16:65"},"nativeSrc":"6577:451:65","nodeType":"YulIf","src":"6577:451:65"},{"nativeSrc":"7041:23:65","nodeType":"YulAssignment","src":"7041:23:65","value":{"arguments":[{"name":"base","nativeSrc":"7053:4:65","nodeType":"YulIdentifier","src":"7053:4:65"},{"name":"base","nativeSrc":"7059:4:65","nodeType":"YulIdentifier","src":"7059:4:65"}],"functionName":{"name":"mul","nativeSrc":"7049:3:65","nodeType":"YulIdentifier","src":"7049:3:65"},"nativeSrc":"7049:15:65","nodeType":"YulFunctionCall","src":"7049:15:65"},"variableNames":[{"name":"base","nativeSrc":"7041:4:65","nodeType":"YulIdentifier","src":"7041:4:65"}]},{"nativeSrc":"7077:44:65","nodeType":"YulAssignment","src":"7077:44:65","value":{"arguments":[{"name":"exponent","nativeSrc":"7112:8:65","nodeType":"YulIdentifier","src":"7112:8:65"}],"functionName":{"name":"shift_right_1_unsigned","nativeSrc":"7089:22:65","nodeType":"YulIdentifier","src":"7089:22:65"},"nativeSrc":"7089:32:65","nodeType":"YulFunctionCall","src":"7089:32:65"},"variableNames":[{"name":"exponent","nativeSrc":"7077:8:65","nodeType":"YulIdentifier","src":"7077:8:65"}]}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"6430:8:65","nodeType":"YulIdentifier","src":"6430:8:65"},{"kind":"number","nativeSrc":"6440:1:65","nodeType":"YulLiteral","src":"6440:1:65","type":"","value":"1"}],"functionName":{"name":"gt","nativeSrc":"6427:2:65","nodeType":"YulIdentifier","src":"6427:2:65"},"nativeSrc":"6427:15:65","nodeType":"YulFunctionCall","src":"6427:15:65"},"nativeSrc":"6419:712:65","nodeType":"YulForLoop","post":{"nativeSrc":"6443:2:65","nodeType":"YulBlock","src":"6443:2:65","statements":[]},"pre":{"nativeSrc":"6423:3:65","nodeType":"YulBlock","src":"6423:3:65","statements":[]},"src":"6419:712:65"}]},"name":"checked_exp_helper","nativeSrc":"6289:848:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nativeSrc":"6317:6:65","nodeType":"YulTypedName","src":"6317:6:65","type":""},{"name":"_base","nativeSrc":"6325:5:65","nodeType":"YulTypedName","src":"6325:5:65","type":""},{"name":"exponent","nativeSrc":"6332:8:65","nodeType":"YulTypedName","src":"6332:8:65","type":""},{"name":"max","nativeSrc":"6342:3:65","nodeType":"YulTypedName","src":"6342:3:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"6350:5:65","nodeType":"YulTypedName","src":"6350:5:65","type":""},{"name":"base","nativeSrc":"6357:4:65","nodeType":"YulTypedName","src":"6357:4:65","type":""}],"src":"6289:848:65"},{"body":{"nativeSrc":"7203:1013:65","nodeType":"YulBlock","src":"7203:1013:65","statements":[{"body":{"nativeSrc":"7398:20:65","nodeType":"YulBlock","src":"7398:20:65","statements":[{"nativeSrc":"7400:10:65","nodeType":"YulAssignment","src":"7400:10:65","value":{"kind":"number","nativeSrc":"7409:1:65","nodeType":"YulLiteral","src":"7409:1:65","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7400:5:65","nodeType":"YulIdentifier","src":"7400:5:65"}]},{"nativeSrc":"7411:5:65","nodeType":"YulLeave","src":"7411:5:65"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7388:8:65","nodeType":"YulIdentifier","src":"7388:8:65"}],"functionName":{"name":"iszero","nativeSrc":"7381:6:65","nodeType":"YulIdentifier","src":"7381:6:65"},"nativeSrc":"7381:16:65","nodeType":"YulFunctionCall","src":"7381:16:65"},"nativeSrc":"7378:40:65","nodeType":"YulIf","src":"7378:40:65"},{"body":{"nativeSrc":"7443:20:65","nodeType":"YulBlock","src":"7443:20:65","statements":[{"nativeSrc":"7445:10:65","nodeType":"YulAssignment","src":"7445:10:65","value":{"kind":"number","nativeSrc":"7454:1:65","nodeType":"YulLiteral","src":"7454:1:65","type":"","value":"0"},"variableNames":[{"name":"power","nativeSrc":"7445:5:65","nodeType":"YulIdentifier","src":"7445:5:65"}]},{"nativeSrc":"7456:5:65","nodeType":"YulLeave","src":"7456:5:65"}]},"condition":{"arguments":[{"name":"base","nativeSrc":"7437:4:65","nodeType":"YulIdentifier","src":"7437:4:65"}],"functionName":{"name":"iszero","nativeSrc":"7430:6:65","nodeType":"YulIdentifier","src":"7430:6:65"},"nativeSrc":"7430:12:65","nodeType":"YulFunctionCall","src":"7430:12:65"},"nativeSrc":"7427:36:65","nodeType":"YulIf","src":"7427:36:65"},{"cases":[{"body":{"nativeSrc":"7573:20:65","nodeType":"YulBlock","src":"7573:20:65","statements":[{"nativeSrc":"7575:10:65","nodeType":"YulAssignment","src":"7575:10:65","value":{"kind":"number","nativeSrc":"7584:1:65","nodeType":"YulLiteral","src":"7584:1:65","type":"","value":"1"},"variableNames":[{"name":"power","nativeSrc":"7575:5:65","nodeType":"YulIdentifier","src":"7575:5:65"}]},{"nativeSrc":"7586:5:65","nodeType":"YulLeave","src":"7586:5:65"}]},"nativeSrc":"7566:27:65","nodeType":"YulCase","src":"7566:27:65","value":{"kind":"number","nativeSrc":"7571:1:65","nodeType":"YulLiteral","src":"7571:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"7617:176:65","nodeType":"YulBlock","src":"7617:176:65","statements":[{"body":{"nativeSrc":"7652:22:65","nodeType":"YulBlock","src":"7652:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7654:16:65","nodeType":"YulIdentifier","src":"7654:16:65"},"nativeSrc":"7654:18:65","nodeType":"YulFunctionCall","src":"7654:18:65"},"nativeSrc":"7654:18:65","nodeType":"YulExpressionStatement","src":"7654:18:65"}]},"condition":{"arguments":[{"name":"exponent","nativeSrc":"7637:8:65","nodeType":"YulIdentifier","src":"7637:8:65"},{"kind":"number","nativeSrc":"7647:3:65","nodeType":"YulLiteral","src":"7647:3:65","type":"","value":"255"}],"functionName":{"name":"gt","nativeSrc":"7634:2:65","nodeType":"YulIdentifier","src":"7634:2:65"},"nativeSrc":"7634:17:65","nodeType":"YulFunctionCall","src":"7634:17:65"},"nativeSrc":"7631:43:65","nodeType":"YulIf","src":"7631:43:65"},{"nativeSrc":"7687:25:65","nodeType":"YulAssignment","src":"7687:25:65","value":{"arguments":[{"kind":"number","nativeSrc":"7700:1:65","nodeType":"YulLiteral","src":"7700:1:65","type":"","value":"2"},{"name":"exponent","nativeSrc":"7703:8:65","nodeType":"YulIdentifier","src":"7703:8:65"}],"functionName":{"name":"exp","nativeSrc":"7696:3:65","nodeType":"YulIdentifier","src":"7696:3:65"},"nativeSrc":"7696:16:65","nodeType":"YulFunctionCall","src":"7696:16:65"},"variableNames":[{"name":"power","nativeSrc":"7687:5:65","nodeType":"YulIdentifier","src":"7687:5:65"}]},{"body":{"nativeSrc":"7743:22:65","nodeType":"YulBlock","src":"7743:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7745:16:65","nodeType":"YulIdentifier","src":"7745:16:65"},"nativeSrc":"7745:18:65","nodeType":"YulFunctionCall","src":"7745:18:65"},"nativeSrc":"7745:18:65","nodeType":"YulExpressionStatement","src":"7745:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7731:5:65","nodeType":"YulIdentifier","src":"7731:5:65"},{"name":"max","nativeSrc":"7738:3:65","nodeType":"YulIdentifier","src":"7738:3:65"}],"functionName":{"name":"gt","nativeSrc":"7728:2:65","nodeType":"YulIdentifier","src":"7728:2:65"},"nativeSrc":"7728:14:65","nodeType":"YulFunctionCall","src":"7728:14:65"},"nativeSrc":"7725:40:65","nodeType":"YulIf","src":"7725:40:65"},{"nativeSrc":"7778:5:65","nodeType":"YulLeave","src":"7778:5:65"}]},"nativeSrc":"7602:191:65","nodeType":"YulCase","src":"7602:191:65","value":{"kind":"number","nativeSrc":"7607:1:65","nodeType":"YulLiteral","src":"7607:1:65","type":"","value":"2"}}],"expression":{"name":"base","nativeSrc":"7523:4:65","nodeType":"YulIdentifier","src":"7523:4:65"},"nativeSrc":"7516:277:65","nodeType":"YulSwitch","src":"7516:277:65"},{"body":{"nativeSrc":"7925:123:65","nodeType":"YulBlock","src":"7925:123:65","statements":[{"nativeSrc":"7939:28:65","nodeType":"YulAssignment","src":"7939:28:65","value":{"arguments":[{"name":"base","nativeSrc":"7952:4:65","nodeType":"YulIdentifier","src":"7952:4:65"},{"name":"exponent","nativeSrc":"7958:8:65","nodeType":"YulIdentifier","src":"7958:8:65"}],"functionName":{"name":"exp","nativeSrc":"7948:3:65","nodeType":"YulIdentifier","src":"7948:3:65"},"nativeSrc":"7948:19:65","nodeType":"YulFunctionCall","src":"7948:19:65"},"variableNames":[{"name":"power","nativeSrc":"7939:5:65","nodeType":"YulIdentifier","src":"7939:5:65"}]},{"body":{"nativeSrc":"7998:22:65","nodeType":"YulBlock","src":"7998:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8000:16:65","nodeType":"YulIdentifier","src":"8000:16:65"},"nativeSrc":"8000:18:65","nodeType":"YulFunctionCall","src":"8000:18:65"},"nativeSrc":"8000:18:65","nodeType":"YulExpressionStatement","src":"8000:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"7986:5:65","nodeType":"YulIdentifier","src":"7986:5:65"},{"name":"max","nativeSrc":"7993:3:65","nodeType":"YulIdentifier","src":"7993:3:65"}],"functionName":{"name":"gt","nativeSrc":"7983:2:65","nodeType":"YulIdentifier","src":"7983:2:65"},"nativeSrc":"7983:14:65","nodeType":"YulFunctionCall","src":"7983:14:65"},"nativeSrc":"7980:40:65","nodeType":"YulIf","src":"7980:40:65"},{"nativeSrc":"8033:5:65","nodeType":"YulLeave","src":"8033:5:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7828:4:65","nodeType":"YulIdentifier","src":"7828:4:65"},{"kind":"number","nativeSrc":"7834:2:65","nodeType":"YulLiteral","src":"7834:2:65","type":"","value":"11"}],"functionName":{"name":"lt","nativeSrc":"7825:2:65","nodeType":"YulIdentifier","src":"7825:2:65"},"nativeSrc":"7825:12:65","nodeType":"YulFunctionCall","src":"7825:12:65"},{"arguments":[{"name":"exponent","nativeSrc":"7842:8:65","nodeType":"YulIdentifier","src":"7842:8:65"},{"kind":"number","nativeSrc":"7852:2:65","nodeType":"YulLiteral","src":"7852:2:65","type":"","value":"78"}],"functionName":{"name":"lt","nativeSrc":"7839:2:65","nodeType":"YulIdentifier","src":"7839:2:65"},"nativeSrc":"7839:16:65","nodeType":"YulFunctionCall","src":"7839:16:65"}],"functionName":{"name":"and","nativeSrc":"7821:3:65","nodeType":"YulIdentifier","src":"7821:3:65"},"nativeSrc":"7821:35:65","nodeType":"YulFunctionCall","src":"7821:35:65"},{"arguments":[{"arguments":[{"name":"base","nativeSrc":"7877:4:65","nodeType":"YulIdentifier","src":"7877:4:65"},{"kind":"number","nativeSrc":"7883:3:65","nodeType":"YulLiteral","src":"7883:3:65","type":"","value":"307"}],"functionName":{"name":"lt","nativeSrc":"7874:2:65","nodeType":"YulIdentifier","src":"7874:2:65"},"nativeSrc":"7874:13:65","nodeType":"YulFunctionCall","src":"7874:13:65"},{"arguments":[{"name":"exponent","nativeSrc":"7892:8:65","nodeType":"YulIdentifier","src":"7892:8:65"},{"kind":"number","nativeSrc":"7902:2:65","nodeType":"YulLiteral","src":"7902:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7889:2:65","nodeType":"YulIdentifier","src":"7889:2:65"},"nativeSrc":"7889:16:65","nodeType":"YulFunctionCall","src":"7889:16:65"}],"functionName":{"name":"and","nativeSrc":"7870:3:65","nodeType":"YulIdentifier","src":"7870:3:65"},"nativeSrc":"7870:36:65","nodeType":"YulFunctionCall","src":"7870:36:65"}],"functionName":{"name":"or","nativeSrc":"7805:2:65","nodeType":"YulIdentifier","src":"7805:2:65"},"nativeSrc":"7805:111:65","nodeType":"YulFunctionCall","src":"7805:111:65"},"nativeSrc":"7802:246:65","nodeType":"YulIf","src":"7802:246:65"},{"nativeSrc":"8058:57:65","nodeType":"YulAssignment","src":"8058:57:65","value":{"arguments":[{"kind":"number","nativeSrc":"8092:1:65","nodeType":"YulLiteral","src":"8092:1:65","type":"","value":"1"},{"name":"base","nativeSrc":"8095:4:65","nodeType":"YulIdentifier","src":"8095:4:65"},{"name":"exponent","nativeSrc":"8101:8:65","nodeType":"YulIdentifier","src":"8101:8:65"},{"name":"max","nativeSrc":"8111:3:65","nodeType":"YulIdentifier","src":"8111:3:65"}],"functionName":{"name":"checked_exp_helper","nativeSrc":"8073:18:65","nodeType":"YulIdentifier","src":"8073:18:65"},"nativeSrc":"8073:42:65","nodeType":"YulFunctionCall","src":"8073:42:65"},"variableNames":[{"name":"power","nativeSrc":"8058:5:65","nodeType":"YulIdentifier","src":"8058:5:65"},{"name":"base","nativeSrc":"8065:4:65","nodeType":"YulIdentifier","src":"8065:4:65"}]},{"body":{"nativeSrc":"8154:22:65","nodeType":"YulBlock","src":"8154:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8156:16:65","nodeType":"YulIdentifier","src":"8156:16:65"},"nativeSrc":"8156:18:65","nodeType":"YulFunctionCall","src":"8156:18:65"},"nativeSrc":"8156:18:65","nodeType":"YulExpressionStatement","src":"8156:18:65"}]},"condition":{"arguments":[{"name":"power","nativeSrc":"8131:5:65","nodeType":"YulIdentifier","src":"8131:5:65"},{"arguments":[{"name":"max","nativeSrc":"8142:3:65","nodeType":"YulIdentifier","src":"8142:3:65"},{"name":"base","nativeSrc":"8147:4:65","nodeType":"YulIdentifier","src":"8147:4:65"}],"functionName":{"name":"div","nativeSrc":"8138:3:65","nodeType":"YulIdentifier","src":"8138:3:65"},"nativeSrc":"8138:14:65","nodeType":"YulFunctionCall","src":"8138:14:65"}],"functionName":{"name":"gt","nativeSrc":"8128:2:65","nodeType":"YulIdentifier","src":"8128:2:65"},"nativeSrc":"8128:25:65","nodeType":"YulFunctionCall","src":"8128:25:65"},"nativeSrc":"8125:51:65","nodeType":"YulIf","src":"8125:51:65"},{"nativeSrc":"8185:25:65","nodeType":"YulAssignment","src":"8185:25:65","value":{"arguments":[{"name":"power","nativeSrc":"8198:5:65","nodeType":"YulIdentifier","src":"8198:5:65"},{"name":"base","nativeSrc":"8205:4:65","nodeType":"YulIdentifier","src":"8205:4:65"}],"functionName":{"name":"mul","nativeSrc":"8194:3:65","nodeType":"YulIdentifier","src":"8194:3:65"},"nativeSrc":"8194:16:65","nodeType":"YulFunctionCall","src":"8194:16:65"},"variableNames":[{"name":"power","nativeSrc":"8185:5:65","nodeType":"YulIdentifier","src":"8185:5:65"}]}]},"name":"checked_exp_unsigned","nativeSrc":"7143:1073:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"7173:4:65","nodeType":"YulTypedName","src":"7173:4:65","type":""},{"name":"exponent","nativeSrc":"7179:8:65","nodeType":"YulTypedName","src":"7179:8:65","type":""},{"name":"max","nativeSrc":"7189:3:65","nodeType":"YulTypedName","src":"7189:3:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"7197:5:65","nodeType":"YulTypedName","src":"7197:5:65","type":""}],"src":"7143:1073:65"},{"body":{"nativeSrc":"8267:32:65","nodeType":"YulBlock","src":"8267:32:65","statements":[{"nativeSrc":"8277:16:65","nodeType":"YulAssignment","src":"8277:16:65","value":{"name":"value","nativeSrc":"8288:5:65","nodeType":"YulIdentifier","src":"8288:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"8277:7:65","nodeType":"YulIdentifier","src":"8277:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"8222:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8249:5:65","nodeType":"YulTypedName","src":"8249:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8259:7:65","nodeType":"YulTypedName","src":"8259:7:65","type":""}],"src":"8222:77:65"},{"body":{"nativeSrc":"8369:217:65","nodeType":"YulBlock","src":"8369:217:65","statements":[{"nativeSrc":"8379:31:65","nodeType":"YulAssignment","src":"8379:31:65","value":{"arguments":[{"name":"base","nativeSrc":"8405:4:65","nodeType":"YulIdentifier","src":"8405:4:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8387:17:65","nodeType":"YulIdentifier","src":"8387:17:65"},"nativeSrc":"8387:23:65","nodeType":"YulFunctionCall","src":"8387:23:65"},"variableNames":[{"name":"base","nativeSrc":"8379:4:65","nodeType":"YulIdentifier","src":"8379:4:65"}]},{"nativeSrc":"8419:37:65","nodeType":"YulAssignment","src":"8419:37:65","value":{"arguments":[{"name":"exponent","nativeSrc":"8447:8:65","nodeType":"YulIdentifier","src":"8447:8:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8431:15:65","nodeType":"YulIdentifier","src":"8431:15:65"},"nativeSrc":"8431:25:65","nodeType":"YulFunctionCall","src":"8431:25:65"},"variableNames":[{"name":"exponent","nativeSrc":"8419:8:65","nodeType":"YulIdentifier","src":"8419:8:65"}]},{"nativeSrc":"8466:113:65","nodeType":"YulAssignment","src":"8466:113:65","value":{"arguments":[{"name":"base","nativeSrc":"8496:4:65","nodeType":"YulIdentifier","src":"8496:4:65"},{"name":"exponent","nativeSrc":"8502:8:65","nodeType":"YulIdentifier","src":"8502:8:65"},{"kind":"number","nativeSrc":"8512:66:65","nodeType":"YulLiteral","src":"8512:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"checked_exp_unsigned","nativeSrc":"8475:20:65","nodeType":"YulIdentifier","src":"8475:20:65"},"nativeSrc":"8475:104:65","nodeType":"YulFunctionCall","src":"8475:104:65"},"variableNames":[{"name":"power","nativeSrc":"8466:5:65","nodeType":"YulIdentifier","src":"8466:5:65"}]}]},"name":"checked_exp_t_uint256_t_uint8","nativeSrc":"8305:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nativeSrc":"8344:4:65","nodeType":"YulTypedName","src":"8344:4:65","type":""},{"name":"exponent","nativeSrc":"8350:8:65","nodeType":"YulTypedName","src":"8350:8:65","type":""}],"returnVariables":[{"name":"power","nativeSrc":"8363:5:65","nodeType":"YulTypedName","src":"8363:5:65","type":""}],"src":"8305:281:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint8t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: failed to get token de\")\n\n        mstore(add(memPtr, 32), \"cimals\")\n\n    }\n\n    function abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5ab9aee88ff5e0f509c5536c1de498d3386bfba01d22622b0ee1202fe4b5eaed_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: sharedDecimals must be\")\n\n        mstore(add(memPtr, 32), \" <= decimals\")\n\n    }\n\n    function abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n        store_literal_in_memory_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3eb3f88dbf9e02de4bfc03e4fcd3d490e5a0e46ada9c0a4886f25ce866031623_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint8(x, y) -> diff {\n        x := cleanup_t_uint8(x)\n        y := cleanup_t_uint8(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xff) { panic_error_0x11() }\n\n    }\n\n    function shift_right_1_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(1, value)\n\n    }\n\n    function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n        power := _power\n        base  := _base\n        for { } gt(exponent, 1) {}\n        {\n            // overflow check for base * base\n            if gt(base, div(max, base)) { panic_error_0x11() }\n            if and(exponent, 1)\n            {\n                // No checks for power := mul(power, base) needed, because the check\n                // for base * base above is sufficient, since:\n                // |power| <= base (proof by induction) and thus:\n                // |power * base| <= base * base <= max <= |min| (for signed)\n                // (this is equally true for signed and unsigned exp)\n                power := mul(power, base)\n            }\n            base := mul(base, base)\n            exponent := shift_right_1_unsigned(exponent)\n        }\n    }\n\n    function checked_exp_unsigned(base, exponent, max) -> power {\n        // This function currently cannot be inlined because of the\n        // \"leave\" statements. We have to improve the optimizer.\n\n        // Note that 0**0 == 1\n        if iszero(exponent) { power := 1 leave }\n        if iszero(base) { power := 0 leave }\n\n        // Specializations for small bases\n        switch base\n        // 0 is handled above\n        case 1 { power := 1 leave }\n        case 2\n        {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := exp(2, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n        if or(\n            and(lt(base, 11), lt(exponent, 78)),\n            and(lt(base, 307), lt(exponent, 32))\n        )\n        {\n            power := exp(base, exponent)\n            if gt(power, max) { panic_error_0x11() }\n            leave\n        }\n\n        power, base := checked_exp_helper(1, base, exponent, max)\n\n        if gt(power, div(max, base)) { panic_error_0x11() }\n        power := mul(power, base)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n        base := cleanup_t_uint256(base)\n        exponent := cleanup_t_uint8(exponent)\n\n        power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"61010060405234801561001157600080fd5b506040516164b83803806164b8833981016040819052610030916102f4565b6000805460ff191690558383838382828181808061004d3361022b565b6001600160a01b0316608052505060ff1660a0525061006d905084610284565b61007682610284565b61007f81610284565b6001600160a01b03841660c081905260408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600092839290916100c9919061039e565b600060405180830381855afa9150503d8060008114610104576040519150601f19603f3d011682016040523d82523d6000602084013e610109565b606091505b5091509150816101345760405162461bcd60e51b815260040161012b906103f7565b60405180910390fd5b60008180602001905181019061014a9190610407565b90508060ff168660ff1611156101725760405162461bcd60e51b815260040161012b90610479565b61017c868261049f565b61018790600a6105ca565b60e0526040516001600160a01b038816907f0b673f021ff9a27bbe58f282908695869e130b3103029190387b83650806c2c390600090a26040516001600160a01b038516906000907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd908290a35050600780546001600160a01b0390931661010002610100600160a81b031990931692909217909155506105df9650505050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6001600160a01b0381166102ab576040516342bcdf7f60e11b815260040160405180910390fd5b50565b60006001600160a01b0382165b92915050565b6102ca816102ae565b81146102ab57600080fd5b80516102bb816102c1565b60ff81166102ca565b80516102bb816102e0565b6000806000806080858703121561030d5761030d600080fd5b600061031987876102d5565b945050602061032a878288016102e9565b935050604061033b878288016102d5565b925050606061034c878288016102d5565b91505092959194509250565b60005b8381101561037357818101518382015260200161035b565b50506000910152565b6000610386825190565b610394818560208601610358565b9290920192915050565b60006103aa828461037c565b9392505050565b602681526000602082017f50726f78794f46543a206661696c656420746f2067657420746f6b656e20646581526563696d616c7360d01b602082015291505b5060400190565b602080825281016102bb816103b1565b60006020828403121561041c5761041c600080fd5b600061042884846102e9565b949350505050565b602c81526000602082017f50726f78794f46543a20736861726564446563696d616c73206d75737420626581526b203c3d20646563696d616c7360a01b602082015291506103f0565b602080825281016102bb81610430565b634e487b7160e01b600052601160045260246000fd5b60ff9182169190811690828203908111156102bb576102bb610489565b80825b60018511156104fb578086048111156104da576104da610489565b60018516156104e857908102905b80026104f48560011c90565b94506104bf565b94509492505050565b600082610513575060016103aa565b81610520575060006103aa565b816001811461053657600281146105405761056d565b60019150506103aa565b60ff84111561055157610551610489565b8360020a91508482111561056757610567610489565b506103aa565b5060208310610133831016604e8410600b84101617156105a0575081810a8381111561059b5761059b610489565b6103aa565b6105ad84848460016104bc565b925090508184048111156105c3576105c3610489565b0292915050565b600060ff831692506103aa6000198484610504565b60805160a05160c05160e051615e1b61069d600039600081816126bf015281816126fe0152612e9b015260008181610ce40152818161108801528181611b980152818161251f015281816125b4015281816125ed0152818161262e015281816138370152613b3b015260006108e2015260008181610b0101528181610d3801528181610f5101528181610ff9015281816113e601528181611e90015281816122a60152818161242301528181612a9c01526134d60152615e1b6000f3fe6080604052600436106103d85760003560e01c80637dc0d1d0116101fd578063b353aaa711610118578063d708a468116100ab578063eb8d72b71161007a578063eb8d72b714610c75578063f2fde38b14610c95578063f5ecbdbc14610cb5578063fc0c546a14610cd5578063fdff235b14610d0857600080fd5b8063d708a46814610bf3578063df2a5b3b14610c20578063e6a20ae614610c40578063eaffd49a14610c5557600080fd5b8063cbed8b9c116100e7578063cbed8b9c14610b73578063cc01e9b614610b93578063cc7015ae14610bb3578063d1deba1f14610be057600080fd5b8063b353aaa714610aef578063baf3292d14610b23578063c1e9132e14610b43578063c446183414610b5d57600080fd5b806393a61d6c116101905780639bdb98121161015f5780639bdb981214610a3d5780639f38369a14610a8f578063a4c51df514610aaf578063a6c3d16514610acf57600080fd5b806393a61d6c146109aa578063950c8a74146109d75780639689cb05146109f75780639b19251a14610a0d57600080fd5b80638cfd8f5c116101cc5780638cfd8f5c146109045780638da5cb5b1461093c57806390436567146109685780639358928b1461099557600080fd5b80637dc0d1d0146108695780638456cb591461089b57806384e69c69146108b0578063857749b0146108d057600080fd5b80634be66720116102f85780635c975abb1161028b57806369c1e7b81161025a57806369c1e7b8146107dd578063715018a6146107fd5780637533d7881461080957806376203b48146108365780637adbf9731461084957600080fd5b80635c975abb1461077257806364aff9ec1461078a57806366ad5c8a146107aa578063695ef6bf146107ca57600080fd5b80634f4ba0f4116102c75780634f4ba0f4146106b657806353489d6c146106e357806353d6fd59146107035780635b8c41e61461072357600080fd5b80634be66720146106275780634c42899a146106475780634cec6256146106695780634ed2c6621461069657600080fd5b8063365260b4116103705780633f4ba83a1161033f5780633f4ba83a146105bd57806342d65a8d146105d257806344770515146105f257806348e4a04a1461060757600080fd5b8063365260b4146105085780633c4ec39b146105365780633d8b38f6146105705780633f1f4fa41461059057600080fd5b806310ddb137116103ac57806310ddb13714610475578063182b4b89146104955780632488eec8146104c85780632dbbec08146104e857600080fd5b80621d3567146103dd57806301ffc9a7146103ff57806307e0db17146104355780630df3748314610455575b600080fd5b3480156103e957600080fd5b506103fd6103f8366004613e0a565b610d35565b005b34801561040b57600080fd5b5061041f61041a366004613ec5565b610efb565b60405161042c9190613ef0565b60405180910390f35b34801561044157600080fd5b506103fd610450366004613efe565b610f32565b34801561046157600080fd5b506103fd610470366004613f30565b610fbb565b34801561048157600080fd5b506103fd610490366004613efe565b610fda565b3480156104a157600080fd5b506104b56104b0366004613f92565b61102e565b60405161042c9796959493929190613fe8565b3480156104d457600080fd5b506103fd6104e3366004613f30565b611193565b3480156104f457600080fd5b506103fd610503366004613efe565b611235565b34801561051457600080fd5b50610528610523366004614063565b611293565b60405161042c9291906140dd565b34801561054257600080fd5b50610563610551366004613efe565b600d6020526000908152604090205481565b60405161042c91906140f8565b34801561057c57600080fd5b5061041f61058b366004614106565b6112e8565b34801561059c57600080fd5b506105636105ab366004613efe565b60036020526000908152604090205481565b3480156105c957600080fd5b506103fd6113b5565b3480156105de57600080fd5b506103fd6105ed366004614106565b6113c7565b3480156105fe57600080fd5b50610563600081565b34801561061357600080fd5b506103fd610622366004614161565b61144d565b34801561063357600080fd5b506103fd610642366004614161565b6114d1565b34801561065357600080fd5b5061065c600081565b60405161042c919061418c565b34801561067557600080fd5b50610563610684366004613efe565b600a6020526000908152604090205481565b3480156106a257600080fd5b506103fd6106b136600461419a565b611588565b3480156106c257600080fd5b506105636106d1366004613efe565b60096020526000908152604090205481565b3480156106ef57600080fd5b506103fd6106fe366004613f30565b6115cd565b34801561070f57600080fd5b506103fd61071e3660046141bb565b61166f565b34801561072f57600080fd5b5061056361073e3660046142e7565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561077e57600080fd5b5060005460ff1661041f565b34801561079657600080fd5b506103fd6107a5366004614366565b6116e3565b3480156107b657600080fd5b506103fd6107c5366004613e0a565b6117e7565b6103fd6107d83660046143b6565b611884565b3480156107e957600080fd5b506103fd6107f8366004613f30565b6118ef565b3480156103fd57600080fd5b34801561081557600080fd5b50610829610824366004613efe565b611991565b60405161042c91906144a0565b6103fd6108443660046144b1565b611a2b565b34801561085557600080fd5b506103fd610864366004614588565b611a67565b34801561087557600080fd5b5060075461088e9061010090046001600160a01b031681565b60405161042c91906145eb565b3480156108a757600080fd5b506103fd611adf565b3480156108bc57600080fd5b506103fd6108cb3660046142e7565b611aef565b3480156108dc57600080fd5b5061065c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561091057600080fd5b5061056361091f3660046145f9565b600260209081526000928352604080842090915290825290205481565b34801561094857600080fd5b5060005461010090046001600160a01b03165b60405161042c9190614635565b34801561097457600080fd5b50610563610983366004613efe565b600c6020526000908152604090205481565b3480156109a157600080fd5b50610563611b91565b3480156109b657600080fd5b506105636109c5366004613efe565b600b6020526000908152604090205481565b3480156109e357600080fd5b5060045461095b906001600160a01b031681565b348015610a0357600080fd5b5061056360115481565b348015610a1957600080fd5b5061041f610a28366004614588565b60106020526000908152604090205460ff1681565b348015610a4957600080fd5b5061041f610a583660046142e7565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b348015610a9b57600080fd5b50610829610aaa366004613efe565b611c27565b348015610abb57600080fd5b50610528610aca366004614643565b611d06565b348015610adb57600080fd5b506103fd610aea366004614106565b611d95565b348015610afb57600080fd5b5061088e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610b2f57600080fd5b506103fd610b3e366004614588565b611e1e565b348015610b4f57600080fd5b5060075461041f9060ff1681565b348015610b6957600080fd5b5061056361271081565b348015610b7f57600080fd5b506103fd610b8e36600461471e565b611e71565b348015610b9f57600080fd5b506103fd610bae366004613f30565b611f06565b348015610bbf57600080fd5b50610563610bce366004613efe565b60086020526000908152604090205481565b6103fd610bee366004613e0a565b611fa8565b348015610bff57600080fd5b50610563610c0e366004613efe565b600e6020526000908152604090205481565b348015610c2c57600080fd5b506103fd610c3b3660046147a1565b6120ac565b348015610c4c57600080fd5b5061065c600181565b348015610c6157600080fd5b506103fd610c703660046147c5565b61210b565b348015610c8157600080fd5b506103fd610c90366004614106565b6121f8565b348015610ca157600080fd5b506103fd610cb0366004614588565b612252565b348015610cc157600080fd5b50610829610cd03660046148b5565b61228c565b348015610ce157600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061095b565b348015610d1457600080fd5b50610563610d23366004613efe565b600f6020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d865760405162461bcd60e51b8152600401610d7d90614950565b60405180910390fd5b61ffff861660009081526001602052604081208054610da490614976565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd090614976565b8015610e1d5780601f10610df257610100808354040283529160200191610e1d565b820191906000526020600020905b815481529060010190602001808311610e0057829003601f168201915b50505050509050805186869050148015610e38575060008151115b8015610e60575080516020820120604051610e5690889088906149af565b6040518091039020145b610e7c5760405162461bcd60e51b8152600401610d7d90614a02565b610ef28787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061233192505050565b50505050505050565b60006001600160e01b03198216631f7ecdf760e01b1480610f2c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610f3a6123aa565b6040516307e0db1760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307e0db1790610f86908490600401614a1c565b600060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b5050505050565b610fc36123aa565b61ffff909116600090815260036020526040902055565b610fe26123aa565b6040516310ddb13760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906310ddb13790610f86908490600401614a1c565b6001600160a01b038381166000908152601060209081526040808320548151928301918290526007546341976e0960e01b90925292938493849384938493849360ff16928492909182916101009004166341976e096110b07f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190614a35565b905290506110ff818a6123da565b61ffff8b166000908152600b6020908152604080832054600a835281842054600884528285205460099094529190932054919a509098509196509094509250426201518061114d8583614a6c565b111561115e5785945080935061116b565b6111688686614a7f565b94505b828061118257508786111580156111825750868511155b985050509397509397509397909450565b61119b6123aa565b61ffff82166000908152600860205260409020548110156111ce5760405162461bcd60e51b8152600401610d7d90614ad5565b61ffff8216600090815260096020526040908190205490517f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f69391611216918591908590614ae5565b60405180910390a161ffff909116600090815260096020526040902055565b61123d6123aa565b61ffff8116600090815260016020526040812061125991613d35565b7f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd37816040516112889190614a1c565b60405180910390a150565b6000806112d98888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123f292505050565b91509150965096945050505050565b61ffff83166000908152600160205260408120805482919061130990614976565b80601f016020809104026020016040519081016040528092919081815260200182805461133590614976565b80156113825780601f1061135757610100808354040283529160200191611382565b820191906000526020600020905b81548152906001019060200180831161136557829003601f168201915b5050505050905083836040516113999291906149af565b60405180910390208180519060200120149150505b9392505050565b6113bd6123aa565b6113c56124af565b565b6113cf6123aa565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061141f90869086908690600401614b30565b600060405180830381600087803b15801561143957600080fd5b505af1158015610ef2573d6000803e3d6000fd5b6114556123aa565b8060115410156114775760405162461bcd60e51b8152600401610d7d90614ba1565b60118054829003905561148b3083836124fb565b50816001600160a01b03167f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab96826040516114c591906140f8565b60405180910390a25050565b6114d96123aa565b60006114e4826126b7565b50905080601160008282546114f99190614a7f565b90915550600090506115116001600160401b036126f7565b90506011548110156115355760405162461bcd60e51b8152600401610d7d90614bef565b6115408430846124fb565b50836001600160a01b03167f5e6172210489e8382b0281a3e17233598e143c96f8ac1f90923540b554cea1128360405161157a91906140f8565b60405180910390a250505050565b6115906123aa565b6007805460ff19168215159081179091556040517fe628f01c6f4e6340598d3a2913390db68e8859379eebff349e170f2b16baed0090600090a250565b6115d56123aa565b61ffff82166000908152600960205260409020548111156116085760405162461bcd60e51b8152600401610d7d90614c42565b61ffff8216600090815260086020526040908190205490517f7babeac42ccbb33537ee421fedc4db7b5f251b5d2a3fa5c0ff4b35b2d783be8791611650918591908590614ae5565b60405180910390a161ffff909116600090815260086020526040902055565b6116776123aa565b816001600160a01b03167ff6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb826040516116b09190613ef0565b60405180910390a26001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6116eb6123aa565b6040516370a0823160e01b81526000906001600160a01b038516906370a082319061171a903090600401614635565b602060405180830381865afa158015611737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175b9190614a35565b90508082111561178257818160405163cf47918160e01b8152600401610d7d9291906140dd565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5846040516117c591906140f8565b60405180910390a36117e16001600160a01b038516848461272c565b50505050565b3330146118065760405162461bcd60e51b8152600401610d7d90614c95565b61187c8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061278792505050565b505050505050565b61187c858585856118986020870187614588565b6118a86040880160208901614588565b6118b56040890189614ca5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127de92505050565b6118f76123aa565b61ffff82166000908152600c602052604090205481101561192a5760405162461bcd60e51b8152600401610d7d90614d4e565b61ffff82166000908152600d6020526040908190205490517f95dc51094cd27cf4ee3fd0dbb50cf96f8df1629c822f5434c4a34d7eb03c972491611972918591908590614ae5565b60405180910390a161ffff9091166000908152600d6020526040902055565b600160205260009081526040902080546119aa90614976565b80601f01602080910402602001604051908101604052809291908181526020018280546119d690614976565b8015611a235780601f106119f857610100808354040283529160200191611a23565b820191906000526020600020905b815481529060010190602001808311611a0657829003601f168201915b505050505081565b60075460ff16611a4d5760405162461bcd60e51b8152600401610d7d90614d92565b611a5d8888888888888888612898565b5050505050505050565b611a6f6123aa565b611a788161293c565b6007546040516001600160a01b0380841692610100900416907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b611ae76123aa565b6113c5612963565b611af76123aa565b61ffff83166000908152600560205260408082209051611b18908590614dc4565b9081526040805191829003602090810183206001600160401b038616600090815291522091909155611b4b908390614dc4565b60405180910390207f48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee8483604051611b84929190614ddf565b60405180910390a2505050565b60006011547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c189190614a35565b611c229190614a6c565b905090565b61ffff8116600090815260016020526040812080546060929190611c4a90614976565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7690614976565b8015611cc35780601f10611c9857610100808354040283529160200191611cc3565b820191906000526020600020905b815481529060010190602001808311611ca657829003601f168201915b505050505090508051600003611ceb5760405162461bcd60e51b8152600401610d7d90614e2e565b6113ae600060148351611cfe9190614a6c565b8391906129a0565b600080611d838b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c9081908401838280828437600092019190915250612a6892505050565b91509150995099975050505050505050565b611d9d6123aa565b818130604051602001611db293929190614e66565b60408051601f1981840301815291815261ffff8516600090815260016020522090611ddd9082614f1b565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611e1193929190614b30565b60405180910390a1505050565b611e266123aa565b600480546001600160a01b0319166001600160a01b0383161790556040517f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b90611288908390614635565b611e796123aa565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611ecd9088908890889088908890600401614fdd565b600060405180830381600087803b158015611ee757600080fd5b505af1158015611efb573d6000803e3d6000fd5b505050505050505050565b611f0e6123aa565b61ffff82166000908152600d6020526040902054811115611f415760405162461bcd60e51b8152600401610d7d90615063565b61ffff82166000908152600c6020526040908190205490517f2c42997a938a029910a78e7c28d762b349c28e70f3a89c1fbccbb1a46020b15991611f89918591908590614ae5565b60405180910390a161ffff9091166000908152600c6020526040902055565b61ffff861660009081526001602052604081208054611fc690614976565b80601f0160208091040260200160405190810160405280929190818152602001828054611ff290614976565b801561203f5780601f106120145761010080835404028352916020019161203f565b820191906000526020600020905b81548152906001019060200180831161202257829003601f168201915b5050505050905080518686905014801561205a575060008151115b801561208257508051602082012060405161207890889088906149af565b6040518091039020145b61209e5760405162461bcd60e51b8152600401610d7d90614a02565b610ef2878787878787612b2a565b6120b46123aa565b61ffff80841660009081526002602090815260408083209386168352929052819020829055517f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090611e1190859085908590615073565b33301461212a5760405162461bcd60e51b8152600401610d7d906150c2565b6121353086866124fb565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8660405161217591906140f8565b60405180910390a3604051633fe79aed60e11b81526001600160a01b03861690637fcf35da9083906121b9908e908e908e908e908e908d908d908d906004016150d2565b600060405180830381600088803b1580156121d357600080fd5b5087f11580156121e7573d6000803e3d6000fd5b505050505050505050505050505050565b6122006123aa565b61ffff8316600090815260016020526040902061221e82848361513d565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051611e1193929190614b30565b61225a6123aa565b6001600160a01b0381166122805760405162461bcd60e51b8152600401610d7d90615242565b61228981612cca565b50565b604051633d7b2f6f60e21b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f5ecbdbc906122e1908890889030908890600401615252565b600060405180830381865afa1580156122fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261232691908101906152df565b90505b949350505050565b6000806123945a60966366ad5c8a60e01b898989896040516024016123599493929190615319565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612d23565b915091508161187c5761187c8686868685612dad565b6000546001600160a01b036101009091041633146113c55760405162461bcd60e51b8152600401610d7d90615396565b6000806123e78484612e4a565b905061232981612e7b565b60008060006124098761240488612e93565b612ee9565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090612460908b90309086908b908b906004016153a6565b6040805180830381865afa15801561247c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a091906153f4565b92509250509550959350505050565b6124b7612f18565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124f19190614635565b60405180910390a1565b6000612505612f3a565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612554908790600401614635565b602060405180830381865afa158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125959190614a35565b9050306001600160a01b038616036125e0576125db6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858561272c565b612615565b6126156001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868686612f5d565b6040516370a0823160e01b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612663908890600401614635565b602060405180830381865afa158015612680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a49190614a35565b6126ae9190614a6c565b95945050505050565b6000806126e47f00000000000000000000000000000000000000000000000000000000000000008461543d565b90506126f08184614a6c565b9150915091565b6000610f2c7f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416615451565b6127828363a9059cbb60e01b848460405160240161274b929190615470565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f7e565b505050565b60006127938282613010565b905060ff81166127ae576127a985858585613046565b610fb4565b60001960ff8216016127c6576127a9858585856130d4565b60405162461bcd60e51b8152600401610d7d906154b2565b60006127ec878284816132dd565b6127f5856126b7565b50905061280488888884613352565b9050600081116128265760405162461bcd60e51b8152600401610d7d906154f6565b60006128358761240484612e93565b90506128458882878787346133f6565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161288491906140f8565b60405180910390a450979650505050505050565b611efb8888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506128e59150506020890189614588565b6128f560408a0160208b01614588565b61290260408b018b614ca5565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061355292505050565b6001600160a01b038116612289576040516342bcdf7f60e11b815260040160405180910390fd5b61296b612f3a565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124e43390565b6060816129ae81601f614a7f565b10156129cc5760405162461bcd60e51b8152600401610d7d9061552b565b6129d68284614a7f565b845110156129f65760405162461bcd60e51b8152600401610d7d90615563565b606082158015612a155760405191506000825260208201604052612a5f565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612a4e578051835260209283019201612a36565b5050858452601f01601f1916604052505b50949350505050565b6000806000612a82338a612a7b8b612e93565b8a8a613619565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090612ad9908d90309086908b908b906004016153a6565b6040805180830381865afa158015612af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1991906153f4565b925092505097509795505050505050565b61ffff86166000908152600560205260408082209051612b4d90889088906149af565b90815260408051602092819003830190206001600160401b03871660009081529252902054905080612b915760405162461bcd60e51b8152600401610d7d906155b3565b808383604051612ba29291906149af565b604051809103902014612bc75760405162461bcd60e51b8152600401610d7d90615601565b61ffff87166000908152600560205260408082209051612bea90899089906149af565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612c82918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061278792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612cb9959493929190615611565b60405180910390a150505050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6000606060008060008661ffff166001600160401b03811115612d4857612d486141ee565b6040519080825280601f01601f191660200182016040528015612d72576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612d94578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612dde9190614dc4565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612e3b908790879087908790879061564e565b60405180910390a15050505050565b6040805160208101909152600081526040518060200160405280612e7285600001518561365a565b90529392505050565b8051600090610f2c90670de0b6b3a7640000906156a3565b600080612ec07f0000000000000000000000000000000000000000000000000000000000000000846156a3565b90506001600160401b03811115610f2c5760405162461bcd60e51b8152600401610d7d906156eb565b606060008383604051602001612f0193929190615731565b604051602081830303815290604052905092915050565b60005460ff166113c55760405162461bcd60e51b8152600401610d7d90615793565b60005460ff16156113c55760405162461bcd60e51b8152600401610d7d906157ca565b6117e1846323b872dd60e01b85858560405160240161274b939291906157da565b6000612fd3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136669092919063ffffffff16565b9050805160001480612ff4575080806020019051810190612ff49190615800565b6127825760405162461bcd60e51b8152600401610d7d90615868565b600061301d826001614a7f565b8351101561303d5760405162461bcd60e51b8152600401610d7d906158a2565b50016001015190565b60008061305283613675565b90925090506001600160a01b03821661306b5761dead91505b6000613076826126f7565b90506130838784836136cf565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf836040516130c391906140f8565b60405180910390a350505050505050565b60008060008060006130e58661371d565b945094509450945094506000600660008b61ffff1661ffff1681526020019081526020016000208960405161311a9190614dc4565b90815260408051602092819003830190206001600160401b038b166000908152925281205460ff16915061314d856126f7565b9050816131bb5761315f8b30836136cf565b61ffff8c16600090815260066020526040908190209051919250600191613187908d90614dc4565b90815260408051602092819003830190206001600160401b038d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b61320d577f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d866040516131f99190614635565b60405180910390a1505050505050506117e1565b8a8a8a8a8a8a868a60008a61322b578b6001600160401b031661322d565b5a5b905060008061325f5a609663eaffd49a60e01b8e8e8e8d8d8d8d8d6040516024016123599897969594939291906158b2565b9150915081156132b8578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd884906132aa908e908e908690615937565b60405180910390a2506132c5565b6132c58b8b8b8b85612dad565b50505050505050505050505050505050505050505050565b60006132e8836137a9565b61ffff808716600090815260026020908152604080832093891683529290522054909150806133295760405162461bcd60e51b8152600401610d7d9061598b565b6133338382614a7f565b82101561187c5760405162461bcd60e51b8152600401610d7d906159cf565b600061335c612f3a565b6001600160a01b03851633146133845760405162461bcd60e51b8152600401610d7d90615a1e565b61338f8585846137d5565b600061339c8630856124fb565b905080601160008282546133b09190614a7f565b90915550600090506133c86001600160401b036126f7565b90506011548110156133ec5760405162461bcd60e51b8152600401610d7d90614bef565b5095945050505050565b61ffff86166000908152600160205260408120805461341490614976565b80601f016020809104026020016040519081016040528092919081815260200182805461344090614976565b801561348d5780601f106134625761010080835404028352916020019161348d565b820191906000526020600020905b81548152906001019060200180831161347057829003601f168201915b5050505050905080516000036134b55760405162461bcd60e51b8152600401610d7d90615a7b565b6134c0878751613989565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490613517908b9086908c908c908c908c90600401615a8b565b6000604051808303818588803b15801561353057600080fd5b505af1158015613544573d6000803e3d6000fd5b505050505050505050505050565b600061356a896001846001600160401b0389166132dd565b613573876126b7565b5090506135828a8a8a84613352565b9050600081116135a45760405162461bcd60e51b8152600401610d7d906154f6565b60006135b4338a612a7b85612e93565b90506135c48a82878787346133f6565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161360391906140f8565b60405180910390a4509998505050505050505050565b6060600185856001600160a01b038916858760405160200161364096959493929190615aed565b604051602081830303815290604052905095945050505050565b60006113ae8284615451565b606061232984846000856139ca565b600080806136838482613010565b60ff16148015613694575082516029145b6136b05760405162461bcd60e51b8152600401610d7d90615b7d565b6136bb83600d613a66565b91506136c8836021613aa3565b9050915091565b60006136d9612f3a565b6136e4838584613ad9565b81601160008282546136f69190614a6c565b9091555050306001600160a01b038416036137125750806113ae565b6123293084846124fb565b6000808060608160016137308783613010565b60ff16146137505760405162461bcd60e51b8152600401610d7d90615b7d565b61375b86600d613a66565b9350613768866021613aa3565b9250613775866029613c8d565b9450613782866049613aa3565b905061379e60518088516137969190614a6c565b8891906129a0565b915091939590929450565b60006022825110156137cd5760405162461bcd60e51b8152600401610d7d90615bc1565b506022015190565b6001600160a01b03831660009081526010602052604090205460ff1680156137fd5750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e0961385f7f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa15801561387c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a09190614a35565b905290506138ae81856123da565b61ffff86166000908152600b6020908152604080832054600a8352818420546008845282852054600990945291909320549395504293909190818711156139075760405162461bcd60e51b8152600401610d7d90615c05565b620151806139158587614a6c565b11156139395761ffff8a166000908152600b60205260409020859055869250613946565b6139438784614a7f565b92505b808311156139665760405162461bcd60e51b8152600401610d7d90615c49565b505061ffff9097166000908152600a602052604090209690965550505050505050565b61ffff8216600090815260036020526040812054908190036139aa57506127105b808211156127825760405162461bcd60e51b8152600401610d7d90615c8b565b6060824710156139ec5760405162461bcd60e51b8152600401610d7d90615cde565b600080866001600160a01b03168587604051613a089190614dc4565b60006040518083038185875af1925050503d8060008114613a45576040519150601f19603f3d011682016040523d82523d6000602084013e613a4a565b606091505b5091509150613a5b87838387613cc3565b979650505050505050565b6000613a73826014614a7f565b83511015613a935760405162461bcd60e51b8152600401610d7d90615d1a565b500160200151600160601b900490565b6000613ab0826008614a7f565b83511015613ad05760405162461bcd60e51b8152600401610d7d90615d55565b50016008015190565b6001600160a01b03831660009081526010602052604090205460ff168015613b015750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e09613b637f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa158015613b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba49190614a35565b90529050613bb281856123da565b61ffff86166000908152600f6020908152604080832054600e835281842054600c845282852054600d9094529190932054939550429390919081871115613c0b5760405162461bcd60e51b8152600401610d7d90615c05565b62015180613c198587614a6c565b1115613c3d5761ffff8a166000908152600f60205260409020859055869250613c4a565b613c478784614a7f565b92505b80831115613c6a5760405162461bcd60e51b8152600401610d7d90615c49565b505061ffff9097166000908152600e602052604090209690965550505050505050565b6000613c9a826020614a7f565b83511015613cba5760405162461bcd60e51b8152600401610d7d90615d91565b50016020015190565b60608315613d02578251600003613cfb576001600160a01b0385163b613cfb5760405162461bcd60e51b8152600401610d7d90615dd5565b5081612329565b6123298383815115613d175781518083602001fd5b8060405162461bcd60e51b8152600401610d7d91906144a0565b5050565b508054613d4190614976565b6000825580601f10613d51575050565b601f01602090049060005260206000209081019061228991905b80821115613d7f5760008155600101613d6b565b5090565b61ffff81165b811461228957600080fd5b8035610f2c81613d83565b60008083601f840112613db457613db4600080fd5b5081356001600160401b03811115613dce57613dce600080fd5b602083019150836001820283011115613de957613de9600080fd5b9250929050565b6001600160401b038116613d89565b8035610f2c81613df0565b60008060008060008060808789031215613e2657613e26600080fd5b6000613e328989613d94565b96505060208701356001600160401b03811115613e5157613e51600080fd5b613e5d89828a01613d9f565b95509550506040613e7089828a01613dff565b93505060608701356001600160401b03811115613e8f57613e8f600080fd5b613e9b89828a01613d9f565b92509250509295509295509295565b6001600160e01b03198116613d89565b8035610f2c81613eaa565b600060208284031215613eda57613eda600080fd5b60006123298484613eba565b8015155b82525050565b60208101610f2c8284613ee6565b600060208284031215613f1357613f13600080fd5b60006123298484613d94565b80613d89565b8035610f2c81613f1f565b60008060408385031215613f4657613f46600080fd5b6000613f528585613d94565b9250506020613f6385828601613f25565b9150509250929050565b60006001600160a01b038216610f2c565b613d8981613f6d565b8035610f2c81613f7e565b600080600060608486031215613faa57613faa600080fd5b6000613fb68686613f87565b9350506020613fc786828701613d94565b9250506040613fd886828701613f25565b9150509250925092565b80613eea565b60e08101613ff6828a613ee6565b6140036020830189613fe2565b6140106040830188613fe2565b61401d6060830187613fe2565b61402a6080830186613fe2565b61403760a0830185613fe2565b61404460c0830184613ee6565b98975050505050505050565b801515613d89565b8035610f2c81614050565b60008060008060008060a0878903121561407f5761407f600080fd5b600061408b8989613d94565b965050602061409c89828a01613f25565b95505060406140ad89828a01613f25565b94505060606140be89828a01614058565b93505060808701356001600160401b03811115613e8f57613e8f600080fd5b604081016140eb8285613fe2565b6113ae6020830184613fe2565b60208101610f2c8284613fe2565b60008060006040848603121561411e5761411e600080fd5b600061412a8686613d94565b93505060208401356001600160401b0381111561414957614149600080fd5b61415586828701613d9f565b92509250509250925092565b6000806040838503121561417757614177600080fd5b6000613f528585613f87565b60ff8116613eea565b60208101610f2c8284614183565b6000602082840312156141af576141af600080fd5b60006123298484614058565b600080604083850312156141d1576141d1600080fd5b60006141dd8585613f87565b9250506020613f6385828601614058565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715614229576142296141ee565b6040525050565b600061423b60405190565b90506142478282614204565b919050565b60006001600160401b03821115614265576142656141ee565b601f19601f83011660200192915050565b82818337506000910152565b60006142956142908461424c565b614230565b9050828152602081018484840111156142b0576142b0600080fd5b6142bb848285614276565b509392505050565b600082601f8301126142d7576142d7600080fd5b8135612329848260208601614282565b6000806000606084860312156142ff576142ff600080fd5b600061430b8686613d94565b93505060208401356001600160401b0381111561432a5761432a600080fd5b614336868287016142c3565b9250506040613fd886828701613dff565b6000610f2c82613f6d565b613d8981614347565b8035610f2c81614352565b60008060006060848603121561437e5761437e600080fd5b600061438a868661435b565b9350506020613fc786828701613f87565b6000606082840312156143b0576143b0600080fd5b50919050565b600080600080600060a086880312156143d1576143d1600080fd5b60006143dd8888613f87565b95505060206143ee88828901613d94565b94505060406143ff88828901613f25565b935050606061441088828901613f25565b92505060808601356001600160401b0381111561442f5761442f600080fd5b61443b8882890161439b565b9150509295509295909350565b60005b8381101561446357818101518382015260200161444b565b50506000910152565b6000614476825190565b80845260208401935061448d818560208601614448565b601f19601f8201165b9093019392505050565b602080825281016113ae818461446c565b60008060008060008060008060e0898b0312156144d0576144d0600080fd5b60006144dc8b8b613f87565b98505060206144ed8b828c01613d94565b97505060406144fe8b828c01613f25565b965050606061450f8b828c01613f25565b95505060808901356001600160401b0381111561452e5761452e600080fd5b61453a8b828c01613d9f565b945094505060a061454d8b828c01613dff565b92505060c08901356001600160401b0381111561456c5761456c600080fd5b6145788b828c0161439b565b9150509295985092959890939650565b60006020828403121561459d5761459d600080fd5b60006123298484613f87565b6000610f2c6001600160a01b0383166145c0565b90565b6001600160a01b031690565b6000610f2c826145a9565b6000610f2c826145cc565b613eea816145d7565b60208101610f2c82846145e2565b6000806040838503121561460f5761460f600080fd5b600061461b8585613d94565b9250506020613f6385828601613d94565b613eea81613f6d565b60208101610f2c828461462c565b600080600080600080600080600060e08a8c03121561466457614664600080fd5b60006146708c8c613d94565b99505060206146818c828d01613f25565b98505060406146928c828d01613f25565b97505060608a01356001600160401b038111156146b1576146b1600080fd5b6146bd8c828d01613d9f565b965096505060806146d08c828d01613dff565b94505060a06146e18c828d01614058565b93505060c08a01356001600160401b0381111561470057614700600080fd5b61470c8c828d01613d9f565b92509250509295985092959850929598565b60008060008060006080868803121561473957614739600080fd5b60006147458888613d94565b955050602061475688828901613d94565b945050604061476788828901613f25565b93505060608601356001600160401b0381111561478657614786600080fd5b61479288828901613d9f565b92509250509295509295909350565b6000806000606084860312156147b9576147b9600080fd5b6000613fb68686613d94565b6000806000806000806000806000806101008b8d0312156147e8576147e8600080fd5b60006147f48d8d613d94565b9a505060208b01356001600160401b0381111561481357614813600080fd5b61481f8d828e01613d9f565b995099505060406148328d828e01613dff565b97505060606148438d828e01613f25565b96505060806148548d828e01613f87565b95505060a06148658d828e01613f25565b94505060c08b01356001600160401b0381111561488457614884600080fd5b6148908d828e01613d9f565b935093505060e06148a38d828e01613f25565b9150509295989b9194979a5092959850565b600080600080608085870312156148ce576148ce600080fd5b60006148da8787613d94565b94505060206148eb87828801613d94565b93505060406148fc87828801613f87565b925050606061490d87828801613f25565b91505092959194509250565b601e81526000602082017f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000815291505b5060200190565b60208082528101610f2c81614919565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061498a57607f821691505b6020821081036143b0576143b0614960565b60006149a9838584614276565b50500190565b600061232982848661499c565b602681526000602082017f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f8152651b9d1c9858dd60d21b602082015291505b5060400190565b60208082528101610f2c816149bc565b61ffff8116613eea565b60208101610f2c8284614a12565b8051610f2c81613f1f565b600060208284031215614a4a57614a4a600080fd5b60006123298484614a2a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610f2c57610f2c614a56565b80820180821115610f2c57610f2c614a56565b602681526000602082017f4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e815265081b1a5b5a5d60d21b602082015291506149fb565b60208082528101610f2c81614a92565b60608101614af38286614a12565b614b006020830185613fe2565b6123296040830184613fe2565b8183526000602084019350614b23838584614276565b601f19601f840116614496565b60408101614b3e8286614a12565b8181036020830152612326818486614b0d565b603381526000602082017f576974686472617720616d6f756e742073686f756c64206265206c65737320748152721a185b881bdd5d189bdd5b9908185b5bdd5b9d606a1b602082015291506149fb565b60208082528101610f2c81614b51565b602181526000602082017f50726f78794f46543a206f7574626f756e64416d6f756e74206f766572666c6f8152607760f81b602082015291506149fb565b60208082528101610f2c81614bb1565b602681526000602082017f53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79815265081b1a5b5a5d60d21b602082015291506149fb565b60208082528101610f2c81614bff565b602681526000602082017f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062658152650204c7a4170760d41b602082015291506149fb565b60208082528101610f2c81614c52565b6000808335601e1936859003018112614cc057614cc0600080fd5b8084019250823591506001600160401b03821115614ce057614ce0600080fd5b602083019250600182023603831315614cfb57614cfb600080fd5b509250929050565b602e81526000602082017f4461696c79206c696d6974203c2073696e676c6520726563656976652074726181526d1b9cd858dd1a5bdb881b1a5b5a5d60921b602082015291506149fb565b60208082528101610f2c81614d03565b601781526000602082017f73656e64416e6443616c6c2069732064697361626c656400000000000000000081529150614949565b60208082528101610f2c81614d5e565b6000614dac825190565b614dba818560208601614448565b9290920192915050565b60006113ae8284614da2565b6001600160401b038116613eea565b60408101614ded8285614a12565b6113ae6020830184614dd0565b601d81526000602082017f4c7a4170703a206e6f20747275737465642070617468207265636f726400000081529150614949565b60208082528101610f2c81614dfa565b6000610f2c8260601b90565b6000610f2c82614e3e565b613eea614e6182613f6d565b614e4a565b6000614e7382858761499c565b9150614e7f8284614e55565b506014019392505050565b6000610f2c6145bd8381565b614e9f83614e8a565b815460001960089490940293841b1916921b91909117905550565b6000612782818484614e96565b81811015613d3157614eda600082614eba565b600101614ec7565b601f821115612782576000818152602090206020601f85010481016020851015614f095750805b610fb46020601f860104830182614ec7565b81516001600160401b03811115614f3457614f346141ee565b614f3e8254614976565b614f49828285614ee2565b6020601f831160018114614f7d5760008415614f655750858201515b600019600886021c198116600286021786555061187c565b600085815260208120601f198616915b82811015614fad5788850151825560209485019460019092019101614f8d565b86831015614fc95784890151600019601f89166008021c191682555b600160028802018855505050505050505050565b60808101614feb8288614a12565b614ff86020830187614a12565b6150056040830186613fe2565b8181036060830152613a5b818486614b0d565b602e81526000602082017f73696e676c652072656365697665207472616e73616374696f6e206c696d697481526d080f8811185a5b1e481b1a5b5a5d60921b602082015291506149fb565b60208082528101610f2c81615018565b606081016150818286614a12565b614b006020830185614a12565b601f81526000602082017f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f72650081529150614949565b60208082528101610f2c8161508e565b60c081016150e0828b614a12565b81810360208301526150f381898b614b0d565b90506151026040830188614dd0565b61510f6060830187613fe2565b61511c6080830186613fe2565b81810360a083015261512f818486614b0d565b9a9950505050505050505050565b826001600160401b03811115615155576151556141ee565b61515f8254614976565b61516a828285614ee2565b6000601f83116001811461519e57600084156151865750858201355b600019600886021c1981166002860217865550610ef2565b600085815260208120601f198616915b828110156151ce57888501358255602094850194600190920191016151ae565b868310156151ea57600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506149fb565b60208082528101610f2c816151ff565b608081016152608287614a12565b61526d6020830186614a12565b61527a604083018561462c565b6126ae6060830184613fe2565b60006152956142908461424c565b9050828152602081018484840111156152b0576152b0600080fd5b6142bb848285614448565b600082601f8301126152cf576152cf600080fd5b8151612329848260208601615287565b6000602082840312156152f4576152f4600080fd5b81516001600160401b0381111561530d5761530d600080fd5b612329848285016152bb565b608081016153278287614a12565b8181036020830152615339818661446c565b90506153486040830185614dd0565b818103606083015261535a818461446c565b9695505050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000614949565b60208082528101610f2c81615364565b60a081016153b48288614a12565b6153c1602083018761462c565b81810360408301526153d3818661446c565b90506153e26060830185613ee6565b8181036080830152613a5b818461446c565b6000806040838503121561540a5761540a600080fd5b60006154168585614a2a565b9250506020613f6385828601614a2a565b634e487b7160e01b600052601260045260246000fd5b60008261544c5761544c615427565b500690565b81810280821583820485141761546957615469614a56565b5092915050565b604081016140eb828561462c565b601c81526000602082017f4f4654436f72653a20756e6b6e6f776e207061636b657420747970650000000081529150614949565b60208082528101610f2c8161547e565b601981526000602082017f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c0000000000000081529150614949565b60208082528101610f2c816154c2565b600e81526000602082016d736c6963655f6f766572666c6f7760901b81529150614949565b60208082528101610f2c81615506565b6011815260006020820170736c6963655f6f75744f66426f756e647360781b81529150614949565b60208082528101610f2c8161553b565b602381526000602082017f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737381526261676560e81b602082015291506149fb565b60208082528101610f2c81615573565b602181526000602082017f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f618152601960fa1b602082015291506149fb565b60208082528101610f2c816155c3565b6080810161561f8288614a12565b8181036020830152615632818688614b0d565b90506156416040830185614dd0565b61535a6060830184613fe2565b60a0810161565c8288614a12565b818103602083015261566e818761446c565b905061567d6040830186614dd0565b818103606083015261568f818561446c565b90508181036080830152613a5b818461446c565b6000826156b2576156b2615427565b500490565b601a81526000602082017f4f4654436f72653a20616d6f756e745344206f766572666c6f7700000000000081529150614949565b60208082528101610f2c816156b7565b6000610f2c8260f81b90565b613eea60ff82166156fb565b6000610f2c8260c01b90565b613eea6001600160401b038216615713565b600061573d8286615707565b60018201915061574d8285613fe2565b60208201915061575d828461571f565b506008019392505050565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150614949565b60208082528101610f2c81615768565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b81529150614949565b60208082528101610f2c816157a3565b606081016157e8828661462c565b614b00602083018561462c565b8051610f2c81614050565b60006020828403121561581557615815600080fd5b600061232984846157f5565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015291506149fb565b60208082528101610f2c81615821565b6013815260006020820172746f55696e74385f6f75744f66426f756e647360681b81529150614949565b60208082528101610f2c81615878565b61010081016158c1828b614a12565b81810360208301526158d3818a61446c565b90506158e26040830189614dd0565b6158ef6060830188613fe2565b6158fc608083018761462c565b61590960a0830186613fe2565b81810360c083015261591b818561446c565b905061592a60e0830184613fe2565b9998505050505050505050565b60608082528101615948818661446c565b9050614b006020830185614dd0565b601a81526000602082017f4c7a4170703a206d696e4761734c696d6974206e6f742073657400000000000081529150614949565b60208082528101610f2c81615957565b601b81526000602082017f4c7a4170703a20676173206c696d697420697320746f6f206c6f77000000000081529150614949565b60208082528101610f2c8161599b565b602281526000602082017f50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c81526132b960f11b602082015291506149fb565b60208082528101610f2c816159df565b603081526000602082017f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742081526f61207472757374656420736f7572636560801b602082015291506149fb565b60208082528101610f2c81615a2e565b60c08101615a998289614a12565b8181036020830152615aab818861446c565b90508181036040830152615abf818761446c565b9050615ace606083018661462c565b615adb608083018561462c565b81810360a0830152614044818461446c565b6000615af98289615707565b600182019150615b098288613fe2565b602082019150615b19828761571f565b600882019150615b298286613fe2565b602082019150615b39828561571f565b6008820191506140448284614da2565b601881526000602082017f4f4654436f72653a20696e76616c6964207061796c6f6164000000000000000081529150614949565b60208082528101610f2c81615b49565b601c81526000602082017f4c7a4170703a20696e76616c69642061646170746572506172616d730000000081529150614949565b60208082528101610f2c81615b8d565b601f81526000602082017f53696e676c65205472616e73616374696f6e204c696d6974204578636565640081529150614949565b60208082528101610f2c81615bd1565b601e81526000602082017f4461696c79205472616e73616374696f6e204c696d697420457863656564000081529150614949565b60208082528101610f2c81615c15565b60208082527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c6172676591019081526000614949565b60208082528101610f2c81615c59565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b602082015291506149fb565b60208082528101610f2c81615c9b565b6015815260006020820174746f416464726573735f6f75744f66426f756e647360581b81529150614949565b60208082528101610f2c81615cee565b6014815260006020820173746f55696e7436345f6f75744f66426f756e647360601b81529150614949565b60208082528101610f2c81615d2a565b6015815260006020820174746f427974657333325f6f75744f66426f756e647360581b81529150614949565b60208082528101610f2c81615d65565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529150614949565b60208082528101610f2c81615da156fea264697066735822122089612b317736c92c076d6e6df96ac6a17602e56c4594d806668a81daa9cad3c664736f6c63430008190033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x64B8 CODESIZE SUB DUP1 PUSH2 0x64B8 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x30 SWAP2 PUSH2 0x2F4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE DUP4 DUP4 DUP4 DUP4 DUP3 DUP3 DUP2 DUP2 DUP1 DUP1 PUSH2 0x4D CALLER PUSH2 0x22B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP POP PUSH1 0xFF AND PUSH1 0xA0 MSTORE POP PUSH2 0x6D SWAP1 POP DUP5 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x76 DUP3 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x7F DUP2 PUSH2 0x284 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0xC0 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP2 MSTORE PUSH1 0x24 DUP2 ADD DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x313CE567 PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x104 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x109 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B SWAP1 PUSH2 0x3F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x407 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xFF AND DUP7 PUSH1 0xFF AND GT ISZERO PUSH2 0x172 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B SWAP1 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x17C DUP7 DUP3 PUSH2 0x49F JUMP JUMPDEST PUSH2 0x187 SWAP1 PUSH1 0xA PUSH2 0x5CA JUMP JUMPDEST PUSH1 0xE0 MSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xB673F021FF9A27BBE58F282908695869E130B3103029190387B83650806C2C3 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 DUP3 SWAP1 LOG3 POP POP PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE POP PUSH2 0x5DF SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2AB JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CA DUP2 PUSH2 0x2AE JUMP JUMPDEST DUP2 EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2BB DUP2 PUSH2 0x2C1 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x2CA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2BB DUP2 PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP8 DUP8 PUSH2 0x2D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x32A DUP8 DUP3 DUP9 ADD PUSH2 0x2E9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x33B DUP8 DUP3 DUP9 ADD PUSH2 0x2D5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x34C DUP8 DUP3 DUP9 ADD PUSH2 0x2D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x373 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x35B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x386 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x394 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x358 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 DUP5 PUSH2 0x37C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206661696C656420746F2067657420746F6B656E206465 DUP2 MSTORE PUSH6 0x63696D616C73 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2BB DUP2 PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41C JUMPI PUSH2 0x41C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP5 PUSH2 0x2E9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A20736861726564446563696D616C73206D757374206265 DUP2 MSTORE PUSH12 0x203C3D20646563696D616C73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x3F0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2BB DUP2 PUSH2 0x430 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP3 DUP3 SUB SWAP1 DUP2 GT ISZERO PUSH2 0x2BB JUMPI PUSH2 0x2BB PUSH2 0x489 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x4FB JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x4DA JUMPI PUSH2 0x4DA PUSH2 0x489 JUMP JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x4E8 JUMPI SWAP1 DUP2 MUL SWAP1 JUMPDEST DUP1 MUL PUSH2 0x4F4 DUP6 PUSH1 0x1 SHR SWAP1 JUMP JUMPDEST SWAP5 POP PUSH2 0x4BF JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x513 JUMPI POP PUSH1 0x1 PUSH2 0x3AA JUMP JUMPDEST DUP2 PUSH2 0x520 JUMPI POP PUSH1 0x0 PUSH2 0x3AA JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x536 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x540 JUMPI PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x3AA JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x551 JUMPI PUSH2 0x551 PUSH2 0x489 JUMP JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x567 JUMPI PUSH2 0x567 PUSH2 0x489 JUMP JUMPDEST POP PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x5A0 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x59B JUMPI PUSH2 0x59B PUSH2 0x489 JUMP JUMPDEST PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x5AD DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x4BC JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x5C3 JUMPI PUSH2 0x5C3 PUSH2 0x489 JUMP JUMPDEST MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP4 AND SWAP3 POP PUSH2 0x3AA PUSH1 0x0 NOT DUP5 DUP5 PUSH2 0x504 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x5E1B PUSH2 0x69D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x26BF ADD MSTORE DUP2 DUP2 PUSH2 0x26FE ADD MSTORE PUSH2 0x2E9B ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0xCE4 ADD MSTORE DUP2 DUP2 PUSH2 0x1088 ADD MSTORE DUP2 DUP2 PUSH2 0x1B98 ADD MSTORE DUP2 DUP2 PUSH2 0x251F ADD MSTORE DUP2 DUP2 PUSH2 0x25B4 ADD MSTORE DUP2 DUP2 PUSH2 0x25ED ADD MSTORE DUP2 DUP2 PUSH2 0x262E ADD MSTORE DUP2 DUP2 PUSH2 0x3837 ADD MSTORE PUSH2 0x3B3B ADD MSTORE PUSH1 0x0 PUSH2 0x8E2 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0xB01 ADD MSTORE DUP2 DUP2 PUSH2 0xD38 ADD MSTORE DUP2 DUP2 PUSH2 0xF51 ADD MSTORE DUP2 DUP2 PUSH2 0xFF9 ADD MSTORE DUP2 DUP2 PUSH2 0x13E6 ADD MSTORE DUP2 DUP2 PUSH2 0x1E90 ADD MSTORE DUP2 DUP2 PUSH2 0x22A6 ADD MSTORE DUP2 DUP2 PUSH2 0x2423 ADD MSTORE DUP2 DUP2 PUSH2 0x2A9C ADD MSTORE PUSH2 0x34D6 ADD MSTORE PUSH2 0x5E1B PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3D8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7DC0D1D0 GT PUSH2 0x1FD JUMPI DUP1 PUSH4 0xB353AAA7 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0xD708A468 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xEB8D72B7 GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0xC75 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC95 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0xCB5 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xCD5 JUMPI DUP1 PUSH4 0xFDFF235B EQ PUSH2 0xD08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD708A468 EQ PUSH2 0xBF3 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0xC20 JUMPI DUP1 PUSH4 0xE6A20AE6 EQ PUSH2 0xC40 JUMPI DUP1 PUSH4 0xEAFFD49A EQ PUSH2 0xC55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0xB73 JUMPI DUP1 PUSH4 0xCC01E9B6 EQ PUSH2 0xB93 JUMPI DUP1 PUSH4 0xCC7015AE EQ PUSH2 0xBB3 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0xBE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0xAEF JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0xB23 JUMPI DUP1 PUSH4 0xC1E9132E EQ PUSH2 0xB43 JUMPI DUP1 PUSH4 0xC4461834 EQ PUSH2 0xB5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x9BDB9812 GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x9BDB9812 EQ PUSH2 0xA3D JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0xA8F JUMPI DUP1 PUSH4 0xA4C51DF5 EQ PUSH2 0xAAF JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0x9689CB05 EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x904 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x93C JUMPI DUP1 PUSH4 0x90436567 EQ PUSH2 0x968 JUMPI DUP1 PUSH4 0x9358928B EQ PUSH2 0x995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0x869 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0x84E69C69 EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4BE66720 GT PUSH2 0x2F8 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x28B JUMPI DUP1 PUSH4 0x69C1E7B8 GT PUSH2 0x25A JUMPI DUP1 PUSH4 0x69C1E7B8 EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0x76203B48 EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0x7ADBF973 EQ PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0x64AFF9EC EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0x695EF6BF EQ PUSH2 0x7CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x6B6 JUMPI DUP1 PUSH4 0x53489D6C EQ PUSH2 0x6E3 JUMPI DUP1 PUSH4 0x53D6FD59 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4BE66720 EQ PUSH2 0x627 JUMPI DUP1 PUSH4 0x4C42899A EQ PUSH2 0x647 JUMPI DUP1 PUSH4 0x4CEC6256 EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x4ED2C662 EQ PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x365260B4 GT PUSH2 0x370 JUMPI DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x33F JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0x44770515 EQ PUSH2 0x5F2 JUMPI DUP1 PUSH4 0x48E4A04A EQ PUSH2 0x607 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x365260B4 EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0x3C4EC39B EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x3AC JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x182B4B89 EQ PUSH2 0x495 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x4C8 JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x455 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0xD35 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x3EC5 JUMP JUMPDEST PUSH2 0xEFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x441 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x450 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0xF32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0xFBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x490 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0xFDA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F92 JUMP JUMPDEST PUSH2 0x102E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FE8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x1193 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x503 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1235 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x514 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x528 PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x4063 JUMP JUMPDEST PUSH2 0x1293 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP3 SWAP2 SWAP1 PUSH2 0x40DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x58B CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x5AB CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x13B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x5ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x13C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x613 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x622 CALLDATASIZE PUSH1 0x4 PUSH2 0x4161 JUMP JUMPDEST PUSH2 0x144D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x642 CALLDATASIZE PUSH1 0x4 PUSH2 0x4161 JUMP JUMPDEST PUSH2 0x14D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x675 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x684 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x6B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x419A JUMP JUMPDEST PUSH2 0x1588 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x6D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x15CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x71E CALLDATASIZE PUSH1 0x4 PUSH2 0x41BB JUMP JUMPDEST PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x73E CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x41F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4366 JUMP JUMPDEST PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0x17E7 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x7D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B6 JUMP JUMPDEST PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x18EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0x824 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x44A0 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B1 JUMP JUMPDEST PUSH2 0x1A2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x864 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x1A67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x88E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x45EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x1ADF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x8CB CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH2 0x1AEF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x91F CALLDATASIZE PUSH1 0x4 PUSH2 0x45F9 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x983 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x1B91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x9C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x95B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0xA28 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0xA58 CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0xAAA CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1C27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x528 PUSH2 0xACA CALLDATASIZE PUSH1 0x4 PUSH2 0x4643 JUMP JUMPDEST PUSH2 0x1D06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xAEA CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x1D95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88E PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xB3E CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x1E1E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x41F SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xB8E CALLDATASIZE PUSH1 0x4 PUSH2 0x471E JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xBAE CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x1F06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xBCE CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0xBEE CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0x1FA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xC0E CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC3B CALLDATASIZE PUSH1 0x4 PUSH2 0x47A1 JUMP JUMPDEST PUSH2 0x20AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC70 CALLDATASIZE PUSH1 0x4 PUSH2 0x47C5 JUMP JUMPDEST PUSH2 0x210B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC90 CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x21F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xCB0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x2252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0xCD0 CALLDATASIZE PUSH1 0x4 PUSH2 0x48B5 JUMP JUMPDEST PUSH2 0x228C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x95B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xD23 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4950 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xDA4 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDD0 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE1D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDF2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE1D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE00 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xE38 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xE60 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xE56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4A02 JUMP JUMPDEST PUSH2 0xEF2 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2331 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1F7ECDF7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xF2C JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF3A PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH2 0xF86 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFC3 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFE2 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH2 0xF86 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH1 0xFF AND SWAP3 DUP5 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x100 SWAP1 DIV AND PUSH4 0x41976E09 PUSH2 0x10B0 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10F1 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x10FF DUP2 DUP11 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP2 SWAP11 POP SWAP1 SWAP9 POP SWAP2 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP TIMESTAMP PUSH3 0x15180 PUSH2 0x114D DUP6 DUP4 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x115E JUMPI DUP6 SWAP5 POP DUP1 SWAP4 POP PUSH2 0x116B JUMP JUMPDEST PUSH2 0x1168 DUP7 DUP7 PUSH2 0x4A7F JUMP JUMPDEST SWAP5 POP JUMPDEST DUP3 DUP1 PUSH2 0x1182 JUMPI POP DUP8 DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x1182 JUMPI POP DUP7 DUP6 GT ISZERO JUMPDEST SWAP9 POP POP POP SWAP4 SWAP8 POP SWAP4 SWAP8 POP SWAP4 SWAP8 SWAP1 SWAP5 POP JUMP JUMPDEST PUSH2 0x119B PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4AD5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 PUSH2 0x1216 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x123D PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1259 SWAP2 PUSH2 0x3D35 JUMP JUMPDEST PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1288 SWAP2 SWAP1 PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12D9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x23F2 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x1309 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1335 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1382 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1357 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1382 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1365 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1399 SWAP3 SWAP2 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13BD PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x13C5 PUSH2 0x24AF JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13CF PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x141F SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4B30 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1455 PUSH2 0x23AA JUMP JUMPDEST DUP1 PUSH1 0x11 SLOAD LT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BA1 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x148B ADDRESS DUP4 DUP4 PUSH2 0x24FB JUMP JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 DUP3 PUSH1 0x40 MLOAD PUSH2 0x14C5 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x14D9 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14E4 DUP3 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x14F9 SWAP2 SWAP1 PUSH2 0x4A7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0x1511 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x11 SLOAD DUP2 LT ISZERO PUSH2 0x1535 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BEF JUMP JUMPDEST PUSH2 0x1540 DUP5 ADDRESS DUP5 PUSH2 0x24FB JUMP JUMPDEST POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5E6172210489E8382B0281A3E17233598E143C96F8AC1F90923540B554CEA112 DUP4 PUSH1 0x40 MLOAD PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x1590 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xE628F01C6F4E6340598D3A2913390DB68E8859379EEBFF349E170F2B16BAED00 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x15D5 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1608 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4C42 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x7BABEAC42CCBB33537EE421FEDC4DB7B5F251B5D2A3FA5C0FF4B35B2D783BE87 SWAP2 PUSH2 0x1650 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x1677 PUSH2 0x23AA JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF6019EC0A78D156D249A1EC7579E2321F6AC7521D6E1D2EACF90BA4A184DCCEB DUP3 PUSH1 0x40 MLOAD PUSH2 0x16B0 SWAP2 SWAP1 PUSH2 0x3EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x16EB PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x171A SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1737 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x175B SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1782 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP3 SWAP2 SWAP1 PUSH2 0x40DD JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6D25BE279134F4ECAA4770AFF0C3D916D9E7C5EF37B65ED95DBDBA411F5D54D5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x17C5 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x17E1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 DUP5 PUSH2 0x272C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1806 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4C95 JUMP JUMPDEST PUSH2 0x187C DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2787 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x187C DUP6 DUP6 DUP6 DUP6 PUSH2 0x1898 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x18A8 PUSH1 0x40 DUP9 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x18B5 PUSH1 0x40 DUP10 ADD DUP10 PUSH2 0x4CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x27DE SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x18F7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x192A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4D4E JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x95DC51094CD27CF4EE3FD0DBB50CF96F8DF1629C822F5434C4A34D7EB03C9724 SWAP2 PUSH2 0x1972 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x19AA SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x19D6 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A23 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A23 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A06 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x1A4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4D92 JUMP JUMPDEST PUSH2 0x1A5D DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2898 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A6F PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1A78 DUP2 PUSH2 0x293C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1AE7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x13C5 PUSH2 0x2963 JUMP JUMPDEST PUSH2 0x1AF7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1B18 SWAP1 DUP6 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1B4B SWAP1 DUP4 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x48A980EEA4EA1C540209E2F9F32A4C2EDF51FAB37B1D21F453868301ECB6E2EE DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1B84 SWAP3 SWAP2 SWAP1 PUSH2 0x4DDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C18 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST PUSH2 0x1C22 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x1C4A SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C76 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CC3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1C98 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CC3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CA6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1CEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1CFE SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D83 DUP12 DUP12 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE DUP15 SWAP4 POP DUP14 SWAP3 POP SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2A68 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP10 POP SWAP10 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D9D PUSH2 0x23AA JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1DB2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1DDD SWAP1 DUP3 PUSH2 0x4F1B JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E11 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1E26 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH2 0x1288 SWAP1 DUP4 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH2 0x1E79 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1ECD SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4FDD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F0E PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1F41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5063 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x2C42997A938A029910A78E7C28D762B349C28E70F3A89C1FBCCBB1A46020B159 SWAP2 PUSH2 0x1F89 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1FC6 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FF2 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x203F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2014 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x203F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2022 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x205A JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x2082 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2078 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x209E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4A02 JUMP JUMPDEST PUSH2 0xEF2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2B2A JUMP JUMPDEST PUSH2 0x20B4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE DUP2 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE MLOAD PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH2 0x1E11 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x5073 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x212A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x50C2 JUMP JUMPDEST PUSH2 0x2135 ADDRESS DUP7 DUP7 PUSH2 0x24FB JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP7 PUSH1 0x40 MLOAD PUSH2 0x2175 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0x3FE79AED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x7FCF35DA SWAP1 DUP4 SWAP1 PUSH2 0x21B9 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x50D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL ISZERO DUP1 ISZERO PUSH2 0x21E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2200 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x221E DUP3 DUP5 DUP4 PUSH2 0x513D JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E11 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH2 0x225A PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2280 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5242 JUMP JUMPDEST PUSH2 0x2289 DUP2 PUSH2 0x2CCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH2 0x22E1 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5252 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2326 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x52DF JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2394 GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2359 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x187C JUMPI PUSH2 0x187C DUP7 DUP7 DUP7 DUP7 DUP6 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV AND CALLER EQ PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5396 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E7 DUP5 DUP5 PUSH2 0x2E4A JUMP JUMPDEST SWAP1 POP PUSH2 0x2329 DUP2 PUSH2 0x2E7B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2409 DUP8 PUSH2 0x2404 DUP9 PUSH2 0x2E93 JUMP JUMPDEST PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x2460 SWAP1 DUP12 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x53A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x247C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24A0 SWAP2 SWAP1 PUSH2 0x53F4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24B7 PUSH2 0x2F18 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F1 SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2505 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2554 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2571 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2595 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SUB PUSH2 0x25E0 JUMPI PUSH2 0x25DB PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH2 0x2615 JUMP JUMPDEST PUSH2 0x2615 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 DUP7 PUSH2 0x2F5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2663 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2680 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A4 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST PUSH2 0x26AE SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH32 0x0 DUP5 PUSH2 0x543D JUMP JUMPDEST SWAP1 POP PUSH2 0x26F0 DUP2 DUP5 PUSH2 0x4A6C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH2 0x5451 JUMP JUMPDEST PUSH2 0x2782 DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x274B SWAP3 SWAP2 SWAP1 PUSH2 0x5470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x2F7E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2793 DUP3 DUP3 PUSH2 0x3010 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP2 AND PUSH2 0x27AE JUMPI PUSH2 0x27A9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x3046 JUMP JUMPDEST PUSH2 0xFB4 JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP3 AND ADD PUSH2 0x27C6 JUMPI PUSH2 0x27A9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x30D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54B2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27EC DUP8 DUP3 DUP5 DUP2 PUSH2 0x32DD JUMP JUMPDEST PUSH2 0x27F5 DUP6 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2804 DUP9 DUP9 DUP9 DUP5 PUSH2 0x3352 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x2826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54F6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2835 DUP8 PUSH2 0x2404 DUP5 PUSH2 0x2E93 JUMP JUMPDEST SWAP1 POP PUSH2 0x2845 DUP9 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x33F6 JUMP JUMPDEST DUP7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x2884 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1EFB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x28E5 SWAP2 POP POP PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x28F5 PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x2902 PUSH1 0x40 DUP12 ADD DUP12 PUSH2 0x4CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3552 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2289 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x296B PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x24E4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x29AE DUP2 PUSH1 0x1F PUSH2 0x4A7F JUMP JUMPDEST LT ISZERO PUSH2 0x29CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x552B JUMP JUMPDEST PUSH2 0x29D6 DUP3 DUP5 PUSH2 0x4A7F JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x29F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5563 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2A15 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2A5F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2A4E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2A36 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2A82 CALLER DUP11 PUSH2 0x2A7B DUP12 PUSH2 0x2E93 JUMP JUMPDEST DUP11 DUP11 PUSH2 0x3619 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x2AD9 SWAP1 DUP14 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x53A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B19 SWAP2 SWAP1 PUSH2 0x53F4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2B4D SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2B91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x55B3 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2BA2 SWAP3 SWAP2 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2BC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5601 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BEA SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x49AF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2C82 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2787 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2CB9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5611 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D48 JUMPI PUSH2 0x2D48 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2D94 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DDE SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x2E3B SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x564E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2E72 DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0x365A JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0xF2C SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x56A3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EC0 PUSH32 0x0 DUP5 PUSH2 0x56A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x56EB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2F01 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5731 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5793 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x57CA JUMP JUMPDEST PUSH2 0x17E1 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x274B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x57DA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3666 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x2FF4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FF4 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH2 0x2782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5868 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301D DUP3 PUSH1 0x1 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x303D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x58A2 JUMP JUMPDEST POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3052 DUP4 PUSH2 0x3675 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x306B JUMPI PUSH2 0xDEAD SWAP2 POP JUMPDEST PUSH1 0x0 PUSH2 0x3076 DUP3 PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x3083 DUP8 DUP5 DUP4 PUSH2 0x36CF JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP4 PUSH1 0x40 MLOAD PUSH2 0x30C3 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x30E5 DUP7 PUSH2 0x371D JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP12 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP10 PUSH1 0x40 MLOAD PUSH2 0x311A SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP PUSH2 0x314D DUP6 PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x31BB JUMPI PUSH2 0x315F DUP12 ADDRESS DUP4 PUSH2 0x36CF JUMP JUMPDEST PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 PUSH2 0x3187 SWAP1 DUP14 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND EXTCODESIZE PUSH2 0x320D JUMPI PUSH32 0x9AEDF5FDBA8716DB3B6705CA00150643309995D4F818A249ED6DDE6677E7792D DUP7 PUSH1 0x40 MLOAD PUSH2 0x31F9 SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH2 0x17E1 JUMP JUMPDEST DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP7 DUP11 PUSH1 0x0 DUP11 PUSH2 0x322B JUMPI DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x322D JUMP JUMPDEST GAS JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x325F GAS PUSH1 0x96 PUSH4 0xEAFFD49A PUSH1 0xE0 SHL DUP15 DUP15 DUP15 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2359 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58B2 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x32B8 JUMPI DUP8 MLOAD PUSH1 0x20 DUP10 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP14 AND SWAP1 PUSH32 0xB8890EDBFC1C74692F527444645F95489C3703CC2DF42E4A366F5D06FA6CD884 SWAP1 PUSH2 0x32AA SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP7 SWAP1 PUSH2 0x5937 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x32C5 JUMP JUMPDEST PUSH2 0x32C5 DUP12 DUP12 DUP12 DUP12 DUP6 PUSH2 0x2DAD JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32E8 DUP4 PUSH2 0x37A9 JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP10 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x3329 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x598B JUMP JUMPDEST PUSH2 0x3333 DUP4 DUP3 PUSH2 0x4A7F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x187C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x59CF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x335C PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER EQ PUSH2 0x3384 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5A1E JUMP JUMPDEST PUSH2 0x338F DUP6 DUP6 DUP5 PUSH2 0x37D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x339C DUP7 ADDRESS DUP6 PUSH2 0x24FB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x33B0 SWAP2 SWAP1 PUSH2 0x4A7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0x33C8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x11 SLOAD DUP2 LT ISZERO PUSH2 0x33EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BEF JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3414 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3440 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x348D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3462 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x348D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3470 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x34B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5A7B JUMP JUMPDEST PUSH2 0x34C0 DUP8 DUP8 MLOAD PUSH2 0x3989 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x3517 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x5A8B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3544 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356A DUP10 PUSH1 0x1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH2 0x32DD JUMP JUMPDEST PUSH2 0x3573 DUP8 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x3582 DUP11 DUP11 DUP11 DUP5 PUSH2 0x3352 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x35A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54F6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35B4 CALLER DUP11 PUSH2 0x2A7B DUP6 PUSH2 0x2E93 JUMP JUMPDEST SWAP1 POP PUSH2 0x35C4 DUP11 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x33F6 JUMP JUMPDEST DUP9 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x3603 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3640 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5AED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AE DUP3 DUP5 PUSH2 0x5451 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2329 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x39CA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3683 DUP5 DUP3 PUSH2 0x3010 JUMP JUMPDEST PUSH1 0xFF AND EQ DUP1 ISZERO PUSH2 0x3694 JUMPI POP DUP3 MLOAD PUSH1 0x29 EQ JUMPDEST PUSH2 0x36B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5B7D JUMP JUMPDEST PUSH2 0x36BB DUP4 PUSH1 0xD PUSH2 0x3A66 JUMP JUMPDEST SWAP2 POP PUSH2 0x36C8 DUP4 PUSH1 0x21 PUSH2 0x3AA3 JUMP JUMPDEST SWAP1 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D9 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x36E4 DUP4 DUP6 DUP5 PUSH2 0x3AD9 JUMP JUMPDEST DUP2 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x36F6 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x3712 JUMPI POP DUP1 PUSH2 0x13AE JUMP JUMPDEST PUSH2 0x2329 ADDRESS DUP5 DUP5 PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x60 DUP2 PUSH1 0x1 PUSH2 0x3730 DUP8 DUP4 PUSH2 0x3010 JUMP JUMPDEST PUSH1 0xFF AND EQ PUSH2 0x3750 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5B7D JUMP JUMPDEST PUSH2 0x375B DUP7 PUSH1 0xD PUSH2 0x3A66 JUMP JUMPDEST SWAP4 POP PUSH2 0x3768 DUP7 PUSH1 0x21 PUSH2 0x3AA3 JUMP JUMPDEST SWAP3 POP PUSH2 0x3775 DUP7 PUSH1 0x29 PUSH2 0x3C8D JUMP JUMPDEST SWAP5 POP PUSH2 0x3782 DUP7 PUSH1 0x49 PUSH2 0x3AA3 JUMP JUMPDEST SWAP1 POP PUSH2 0x379E PUSH1 0x51 DUP1 DUP9 MLOAD PUSH2 0x3796 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST DUP9 SWAP2 SWAP1 PUSH2 0x29A0 JUMP JUMPDEST SWAP2 POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 DUP3 MLOAD LT ISZERO PUSH2 0x37CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5BC1 JUMP JUMPDEST POP PUSH1 0x22 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x37FD JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x385F PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x387C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38A0 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x38AE DUP2 DUP6 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C05 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3915 DUP6 DUP8 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x3939 JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3946 JUMP JUMPDEST PUSH2 0x3943 DUP8 DUP5 PUSH2 0x4A7F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3966 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C49 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x39AA JUMPI POP PUSH2 0x2710 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C8B JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x39EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5CDE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x3A08 SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3A45 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3A4A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3A5B DUP8 DUP4 DUP4 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A73 DUP3 PUSH1 0x14 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3A93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D1A JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB0 DUP3 PUSH1 0x8 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3AD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D55 JUMP JUMPDEST POP ADD PUSH1 0x8 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x3B01 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3B63 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BA4 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3BB2 DUP2 DUP6 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0xC DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0xD SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3C0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C05 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3C19 DUP6 DUP8 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x3C3D JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3C4A JUMP JUMPDEST PUSH2 0x3C47 DUP8 DUP5 PUSH2 0x4A7F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3C6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C49 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C9A DUP3 PUSH1 0x20 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3CBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D91 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D02 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x3CFB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3CFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5DD5 JUMP JUMPDEST POP DUP2 PUSH2 0x2329 JUMP JUMPDEST PUSH2 0x2329 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3D17 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP2 SWAP1 PUSH2 0x44A0 JUMP JUMPDEST POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3D41 SWAP1 PUSH2 0x4976 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3D51 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2289 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3D7F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D6B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x2289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3D83 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3DB4 JUMPI PUSH2 0x3DB4 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3DCE JUMPI PUSH2 0x3DCE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3DE9 JUMPI PUSH2 0x3DE9 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3DF0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3E26 JUMPI PUSH2 0x3E26 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E32 DUP10 DUP10 PUSH2 0x3D94 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E51 JUMPI PUSH2 0x3E51 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E5D DUP10 DUP3 DUP11 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x40 PUSH2 0x3E70 DUP10 DUP3 DUP11 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E8F JUMPI PUSH2 0x3E8F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E9B DUP10 DUP3 DUP11 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3EAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EDA JUMPI PUSH2 0x3EDA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3EBA JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x3EE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F13 JUMPI PUSH2 0x3F13 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3D94 JUMP JUMPDEST DUP1 PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3F1F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F46 JUMPI PUSH2 0x3F46 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F52 DUP6 DUP6 PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2C JUMP JUMPDEST PUSH2 0x3D89 DUP2 PUSH2 0x3F6D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3F7E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FAA JUMPI PUSH2 0x3FAA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FB6 DUP7 DUP7 PUSH2 0x3F87 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3FC7 DUP7 DUP3 DUP8 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x3FF6 DUP3 DUP11 PUSH2 0x3EE6 JUMP JUMPDEST PUSH2 0x4003 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4010 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x401D PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x402A PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4037 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4044 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x3EE6 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x4050 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x407F JUMPI PUSH2 0x407F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x408B DUP10 DUP10 PUSH2 0x3D94 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x409C DUP10 DUP3 DUP11 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x40AD DUP10 DUP3 DUP11 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x40BE DUP10 DUP3 DUP11 ADD PUSH2 0x4058 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E8F JUMPI PUSH2 0x3E8F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x40EB DUP3 DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x411E JUMPI PUSH2 0x411E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x412A DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4149 JUMPI PUSH2 0x4149 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4155 DUP7 DUP3 DUP8 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4177 JUMPI PUSH2 0x4177 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F52 DUP6 DUP6 PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x4183 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41AF JUMPI PUSH2 0x41AF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x4058 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41D1 JUMPI PUSH2 0x41D1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x41DD DUP6 DUP6 PUSH2 0x3F87 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x4058 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x4229 JUMPI PUSH2 0x4229 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x423B PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4247 DUP3 DUP3 PUSH2 0x4204 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4265 JUMPI PUSH2 0x4265 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4295 PUSH2 0x4290 DUP5 PUSH2 0x424C JUMP JUMPDEST PUSH2 0x4230 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x42B0 JUMPI PUSH2 0x42B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP5 DUP3 DUP6 PUSH2 0x4276 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42D7 JUMPI PUSH2 0x42D7 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2329 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x42FF JUMPI PUSH2 0x42FF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x430B DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x432A JUMPI PUSH2 0x432A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4336 DUP7 DUP3 DUP8 ADD PUSH2 0x42C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x3DFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x3D89 DUP2 PUSH2 0x4347 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x4352 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x437E JUMPI PUSH2 0x437E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x438A DUP7 DUP7 PUSH2 0x435B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3FC7 DUP7 DUP3 DUP8 ADD PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43B0 JUMPI PUSH2 0x43B0 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x43D1 JUMPI PUSH2 0x43D1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x43DD DUP9 DUP9 PUSH2 0x3F87 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x43EE DUP9 DUP3 DUP10 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x43FF DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x4410 DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x442F JUMPI PUSH2 0x442F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x443B DUP9 DUP3 DUP10 ADD PUSH2 0x439B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4463 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x444B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4476 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x448D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4448 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x13AE DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x44D0 JUMPI PUSH2 0x44D0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP12 DUP12 PUSH2 0x3F87 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x44ED DUP12 DUP3 DUP13 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x44FE DUP12 DUP3 DUP13 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x450F DUP12 DUP3 DUP13 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x452E JUMPI PUSH2 0x452E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x453A DUP12 DUP3 DUP13 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0xA0 PUSH2 0x454D DUP12 DUP3 DUP13 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x456C JUMPI PUSH2 0x456C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4578 DUP12 DUP3 DUP13 ADD PUSH2 0x439B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x459D JUMPI PUSH2 0x459D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x45C0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x45A9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x45CC JUMP JUMPDEST PUSH2 0x3EEA DUP2 PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x45E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x460F JUMPI PUSH2 0x460F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x461B DUP6 DUP6 PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x3D94 JUMP JUMPDEST PUSH2 0x3EEA DUP2 PUSH2 0x3F6D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x4664 JUMPI PUSH2 0x4664 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4670 DUP13 DUP13 PUSH2 0x3D94 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x4681 DUP13 DUP3 DUP14 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x4692 DUP13 DUP3 DUP14 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x46B1 JUMPI PUSH2 0x46B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46BD DUP13 DUP3 DUP14 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x80 PUSH2 0x46D0 DUP13 DUP3 DUP14 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x46E1 DUP13 DUP3 DUP14 ADD PUSH2 0x4058 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4700 JUMPI PUSH2 0x4700 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x470C DUP13 DUP3 DUP14 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4739 JUMPI PUSH2 0x4739 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4745 DUP9 DUP9 PUSH2 0x3D94 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x4756 DUP9 DUP3 DUP10 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x4767 DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4786 JUMPI PUSH2 0x4786 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4792 DUP9 DUP3 DUP10 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x47B9 JUMPI PUSH2 0x47B9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FB6 DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x47E8 JUMPI PUSH2 0x47E8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x47F4 DUP14 DUP14 PUSH2 0x3D94 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4813 JUMPI PUSH2 0x4813 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x481F DUP14 DUP3 DUP15 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x40 PUSH2 0x4832 DUP14 DUP3 DUP15 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x4843 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x4854 DUP14 DUP3 DUP15 ADD PUSH2 0x3F87 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x4865 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4884 JUMPI PUSH2 0x4884 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4890 DUP14 DUP3 DUP15 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0xE0 PUSH2 0x48A3 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x48CE JUMPI PUSH2 0x48CE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x48DA DUP8 DUP8 PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x48EB DUP8 DUP3 DUP9 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x48FC DUP8 DUP3 DUP9 ADD PUSH2 0x3F87 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x490D DUP8 DUP3 DUP9 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4919 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x498A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x43B0 JUMPI PUSH2 0x43B0 PUSH2 0x4960 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49A9 DUP4 DUP6 DUP5 PUSH2 0x4276 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP3 DUP5 DUP7 PUSH2 0x499C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x49BC JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x4A12 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xF2C DUP2 PUSH2 0x3F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A4A JUMPI PUSH2 0x4A4A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x4A2A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0x4A56 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0x4A56 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207472616E73616374696F6E DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4A92 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AF3 DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x2329 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x4B23 DUP4 DUP6 DUP5 PUSH2 0x4276 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x4496 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4B3E DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2326 DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST PUSH1 0x33 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x576974686472617720616D6F756E742073686F756C64206265206C6573732074 DUP2 MSTORE PUSH19 0x1A185B881BDD5D189BDD5B9908185B5BDD5B9D PUSH1 0x6A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4B51 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F7574626F756E64416D6F756E74206F766572666C6F DUP2 MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4BB1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65207472616E73616374696F6E206C696D6974203E204461696C79 DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4BFF JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 DUP2 MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4C52 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x4CC0 JUMPI PUSH2 0x4CC0 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4CE0 JUMPI PUSH2 0x4CE0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4CFB JUMPI PUSH2 0x4CFB PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207265636569766520747261 DUP2 MSTORE PUSH14 0x1B9CD858DD1A5BDB881B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4D03 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73656E64416E6443616C6C2069732064697361626C6564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4DAC DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4DBA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4448 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AE DUP3 DUP5 PUSH2 0x4DA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4DED DUP3 DUP6 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4DD0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x4E3E JUMP JUMPDEST PUSH2 0x3EEA PUSH2 0x4E61 DUP3 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x4E4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E73 DUP3 DUP6 DUP8 PUSH2 0x499C JUMP JUMPDEST SWAP2 POP PUSH2 0x4E7F DUP3 DUP5 PUSH2 0x4E55 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH2 0x45BD DUP4 DUP2 JUMP JUMPDEST PUSH2 0x4E9F DUP4 PUSH2 0x4E8A JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2782 DUP2 DUP5 DUP5 PUSH2 0x4E96 JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D31 JUMPI PUSH2 0x4EDA PUSH1 0x0 DUP3 PUSH2 0x4EBA JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x4EC7 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2782 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4F09 JUMPI POP DUP1 JUMPDEST PUSH2 0xFB4 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x4EC7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F34 JUMPI PUSH2 0x4F34 PUSH2 0x41EE JUMP JUMPDEST PUSH2 0x4F3E DUP3 SLOAD PUSH2 0x4976 JUMP JUMPDEST PUSH2 0x4F49 DUP3 DUP3 DUP6 PUSH2 0x4EE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F7D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F65 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x187C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FAD JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4F8D JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4FC9 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4FEB DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4FF8 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x5005 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73696E676C652072656365697665207472616E73616374696F6E206C696D6974 DUP2 MSTORE PUSH14 0x80F8811185A5B1E481B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5018 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x5081 DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A12 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A2063616C6C6572206D757374206265204F4654436F726500 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x508E JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x50E0 DUP3 DUP12 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x50F3 DUP2 DUP10 DUP12 PUSH2 0x4B0D JUMP JUMPDEST SWAP1 POP PUSH2 0x5102 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x510F PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x511C PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x512F DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5155 JUMPI PUSH2 0x5155 PUSH2 0x41EE JUMP JUMPDEST PUSH2 0x515F DUP3 SLOAD PUSH2 0x4976 JUMP JUMPDEST PUSH2 0x516A DUP3 DUP3 DUP6 PUSH2 0x4EE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x519E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x5186 JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x51CE JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x51AE JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x51EA JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x51FF JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5260 DUP3 DUP8 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x526D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x527A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x26AE PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5295 PUSH2 0x4290 DUP5 PUSH2 0x424C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x52B0 JUMPI PUSH2 0x52B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP5 DUP3 DUP6 PUSH2 0x4448 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x52CF JUMPI PUSH2 0x52CF PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2329 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5287 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52F4 JUMPI PUSH2 0x52F4 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x530D JUMPI PUSH2 0x530D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2329 DUP5 DUP3 DUP6 ADD PUSH2 0x52BB JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5327 DUP3 DUP8 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5339 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x5348 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x535A DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5364 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53B4 DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x53C1 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x462C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x53D3 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x53E2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x3EE6 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x540A JUMPI PUSH2 0x540A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5416 DUP6 DUP6 PUSH2 0x4A2A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x4A2A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x544C JUMPI PUSH2 0x544C PUSH2 0x5427 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x5469 JUMPI PUSH2 0x5469 PUSH2 0x4A56 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x40EB DUP3 DUP6 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20756E6B6E6F776E207061636B6574207479706500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x547E JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E7420746F6F20736D616C6C00000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x54C2 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5506 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x553B JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 DUP2 MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5573 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 DUP2 MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x55C3 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x561F DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5632 DUP2 DUP7 DUP9 PUSH2 0x4B0D JUMP JUMPDEST SWAP1 POP PUSH2 0x5641 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x535A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x565C DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x566E DUP2 DUP8 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x567D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4DD0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x568F DUP2 DUP6 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x56B2 JUMPI PUSH2 0x56B2 PUSH2 0x5427 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E745344206F766572666C6F77000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0xF8 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3EEA PUSH1 0xFF DUP3 AND PUSH2 0x56FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0xC0 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3EEA PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH2 0x5713 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x573D DUP3 DUP7 PUSH2 0x5707 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x574D DUP3 DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x575D DUP3 DUP5 PUSH2 0x571F JUMP JUMPDEST POP PUSH1 0x8 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5768 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x57A3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x57E8 DUP3 DUP7 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST DUP1 MLOAD PUSH2 0xF2C DUP2 PUSH2 0x4050 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5815 JUMPI PUSH2 0x5815 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x57F5 JUMP JUMPDEST PUSH1 0x2A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E DUP2 MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5821 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x746F55696E74385F6F75744F66426F756E6473 PUSH1 0x68 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5878 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x58C1 DUP3 DUP12 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x58D3 DUP2 DUP11 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x58E2 PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x58EF PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x58FC PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x5909 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x591B DUP2 DUP6 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x592A PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x5948 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206D696E4761734C696D6974206E6F7420736574000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5957 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20676173206C696D697420697320746F6F206C6F770000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x599B JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F776E6572206973206E6F742073656E642063616C6C DUP2 MSTORE PUSH2 0x32B9 PUSH1 0xF1 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x59DF JUMP JUMPDEST PUSH1 0x30 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 DUP2 MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5A2E JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x5A99 DUP3 DUP10 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5AAB DUP2 DUP9 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5ABF DUP2 DUP8 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x5ACE PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x5ADB PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4044 DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AF9 DUP3 DUP10 PUSH2 0x5707 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x5B09 DUP3 DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x5B19 DUP3 DUP8 PUSH2 0x571F JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x5B29 DUP3 DUP7 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x5B39 DUP3 DUP6 PUSH2 0x571F JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4044 DUP3 DUP5 PUSH2 0x4DA2 JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20696E76616C6964207061796C6F61640000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5B49 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C69642061646170746572506172616D7300000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5B8D JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65205472616E73616374696F6E204C696D69742045786365656400 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5BD1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565640000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C15 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C7A4170703A207061796C6F61642073697A6520697320746F6F206C61726765 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C59 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F DUP2 MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C9B JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F416464726573735F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5CEE JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x746F55696E7436345F6F75744F66426F756E6473 PUSH1 0x60 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5D2A JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F427974657333325F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5D65 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5DA1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 PUSH2 0x2B31 PUSH24 0x36C92C076D6E6DF96AC6A17602E56C4594D806668A81DAA9 0xCA 0xD3 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"651:5010:45:-:0;;;1341:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:5:22;996:15;;-1:-1:-1;;996:15:22;;;1491:13:45;1506:15;1523:11;1536:7;1506:15;1523:11;1506:15;1523:11;;;936:32:21;719:10:29;936:18:21;:32::i;:::-;-1:-1:-1;;;;;1201:42:2;;;-1:-1:-1;;1513:32:10::1;;;::::0;-1:-1:-1;6148:35:42::1;::::0;-1:-1:-1;6169:13:42;6148:20:::1;:35::i;:::-;6193:33;6214:11:::0;6193:20:::1;:33::i;:::-;6236:29;6257:7:::0;6236:20:::1;:29::i;:::-;-1:-1:-1::0;;;;;6276:34:42;::::1;;::::0;;;6382:37:::1;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6382:37:42::1;-1:-1:-1::0;;;6382:37:42::1;::::0;;6357:63;;6322:12:::1;::::0;;;6276:34;;6357:63:::1;::::0;6382:37;6357:63:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6321:99;;;;6438:7;6430:58;;;;-1:-1:-1::0;;;6430:58:42::1;;;;;;;:::i;:::-;;;;;;;;;6498:14;6526:4;6515:25;;;;;;;;;;;;:::i;:::-;6498:42;;6578:8;6559:27;;:15;:27;;;;6551:84;;;;-1:-1:-1::0;;;6551:84:42::1;;;;;;;:::i;:::-;6664:26;6675:15:::0;6664:8;:26:::1;:::i;:::-;6657:34;::::0;:2:::1;:34;:::i;:::-;6645:46;::::0;6707:30:::1;::::0;-1:-1:-1;;;;;6707:30:42;::::1;::::0;::::1;::::0;;;::::1;6752:34;::::0;-1:-1:-1;;;;;6752:34:42;::::1;::::0;6774:1:::1;::::0;6752:34:::1;::::0;6774:1;;6752:34:::1;-1:-1:-1::0;;6797:6:42::1;:42:::0;;-1:-1:-1;;;;;6797:42:42;;::::1;;;-1:-1:-1::0;;;;;;6797:42:42;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;651:5010:45;;-1:-1:-1;;;;;;;651:5010:45;2426:187:21;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;2518:6;2534:17;;;-1:-1:-1;;;;;;2534:17:21;;;;;2566:40;;2518:6;;;;;;;2534:17;;2518:6;;2566:40;;;2489:124;2426:187;:::o;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;544:75;485:136;:::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;937:118::-;920:4;909:16;;1008:22;845:86;1061:139;1141:13;;1163:31;1141:13;1163:31;:::i;1206:816::-;1301:6;1309;1317;1325;1374:3;1362:9;1353:7;1349:23;1345:33;1342:120;;;1381:79;197:1;194;187:12;1381:79;1501:1;1526:64;1582:7;1562:9;1526:64;:::i;:::-;1516:74;;1472:128;1639:2;1665:62;1719:7;1710:6;1699:9;1695:22;1665:62;:::i;:::-;1655:72;;1610:127;1776:2;1802:64;1858:7;1849:6;1838:9;1834:22;1802:64;:::i;:::-;1792:74;;1747:129;1915:2;1941:64;1997:7;1988:6;1977:9;1973:22;1941:64;:::i;:::-;1931:74;;1886:129;1206:816;;;;;;;:::o;2285:248::-;2367:1;2377:113;2391:6;2388:1;2385:13;2377:113;;;2467:11;;;2461:18;2448:11;;;2441:39;2413:2;2406:10;2377:113;;;-1:-1:-1;;2524:1:65;2506:16;;2499:27;2285:248::o;2539:386::-;2643:3;2671:38;2703:5;2107:12;;2028:98;2671:38;2822:65;2880:6;2875:3;2868:4;2861:5;2857:16;2822:65;:::i;:::-;2903:16;;;;;2539:386;-1:-1:-1;;2539:386:65:o;2931:271::-;3061:3;3083:93;3172:3;3163:6;3083:93;:::i;:::-;3076:100;2931:271;-1:-1:-1;;;2931:271:65:o;3614:366::-;3841:2;3314:19;;3756:3;3366:4;3357:14;;3523:34;3500:58;;-1:-1:-1;;;3587:2:65;3575:15;;3568:33;3770:74;-1:-1:-1;3853:93:65;-1:-1:-1;3971:2:65;3962:12;;3614:366::o;3986:419::-;4190:2;4203:47;;;4175:18;;4267:131;4175:18;4267:131;:::i;4411:347::-;4479:6;4528:2;4516:9;4507:7;4503:23;4499:32;4496:119;;;4534:79;197:1;194;187:12;4534:79;4654:1;4679:62;4733:7;4713:9;4679:62;:::i;:::-;4669:72;4411:347;-1:-1:-1;;;;4411:347:65:o;5001:366::-;5228:2;3314:19;;5143:3;3366:4;3357:14;;4904:34;4881:58;;-1:-1:-1;;;4968:2:65;4956:15;;4949:39;5157:74;-1:-1:-1;5240:93:65;4764:231;5373:419;5577:2;5590:47;;;5562:18;;5654:131;5562:18;5654:131;:::i;5798:180::-;-1:-1:-1;;;5843:1:65;5836:88;5943:4;5940:1;5933:15;5967:4;5964:1;5957:15;5984:191;920:4;909:16;;;;;;;;6109:9;;;;6131:14;;6128:40;;;6148:18;;:::i;6289:848::-;6381:6;6405:5;6419:712;6440:1;6430:8;6427:15;6419:712;;;6535:4;6530:3;6526:14;6520:4;6517:24;6514:50;;;6544:18;;:::i;:::-;6594:1;6584:8;6580:16;6577:451;;;6998:16;;;;6577:451;7049:15;;7089:32;7112:8;6267:1;6263:13;;6181:102;7089:32;7077:44;;6419:712;;;6289:848;;;;;;;:::o;7143:1073::-;7197:5;7388:8;7378:40;;-1:-1:-1;7409:1:65;7411:5;;7378:40;7437:4;7427:36;;-1:-1:-1;7454:1:65;7456:5;;7427:36;7523:4;7571:1;7566:27;;;;7607:1;7602:191;;;;7516:277;;7566:27;7584:1;7575:10;;7586:5;;;7602:191;7647:3;7637:8;7634:17;7631:43;;;7654:18;;:::i;:::-;7703:8;7700:1;7696:16;7687:25;;7738:3;7731:5;7728:14;7725:40;;;7745:18;;:::i;:::-;7778:5;;;7516:277;;7902:2;7892:8;7889:16;7883:3;7877:4;7874:13;7870:36;7852:2;7842:8;7839:16;7834:2;7828:4;7825:12;7821:35;7805:111;7802:246;;;-1:-1:-1;7948:19:65;;;7983:14;;;7980:40;;;8000:18;;:::i;:::-;8033:5;;7802:246;8073:42;8111:3;8101:8;8095:4;8092:1;8073:42;:::i;:::-;8058:57;;;;8147:4;8142:3;8138:14;8131:5;8128:25;8125:51;;;8156:18;;:::i;:::-;8194:16;;7143:1073;-1:-1:-1;;7143:1073:65:o;8305:281::-;8363:5;920:4;909:16;;8419:37;;8475:104;-1:-1:-1;;8502:8:65;8496:4;8475:104;:::i;8305:281::-;651:5010:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_PAYLOAD_SIZE_LIMIT_448":{"entryPoint":null,"id":448,"parameterSlots":0,"returnSlots":0},"@NO_EXTRA_GAS_3145":{"entryPoint":null,"id":3145,"parameterSlots":0,"returnSlots":0},"@PT_SEND_3148":{"entryPoint":null,"id":3148,"parameterSlots":0,"returnSlots":0},"@PT_SEND_AND_CALL_3151":{"entryPoint":null,"id":3151,"parameterSlots":0,"returnSlots":0},"@_addressToBytes32_4042":{"entryPoint":null,"id":4042,"parameterSlots":1,"returnSlots":1},"@_blockingLzReceive_1068":{"entryPoint":9009,"id":1068,"parameterSlots":4,"returnSlots":0},"@_callOptionalReturn_6649":{"entryPoint":12158,"id":6649,"parameterSlots":2,"returnSlots":0},"@_checkGasLimit_664":{"entryPoint":13021,"id":664,"parameterSlots":4,"returnSlots":0},"@_checkOwner_5430":{"entryPoint":9130,"id":5430,"parameterSlots":0,"returnSlots":0},"@_checkPayloadSize_711":{"entryPoint":14729,"id":711,"parameterSlots":2,"returnSlots":0},"@_creditTo_11216":{"entryPoint":14031,"id":11216,"parameterSlots":3,"returnSlots":1},"@_debitFrom_11171":{"entryPoint":13138,"id":11171,"parameterSlots":4,"returnSlots":1},"@_decodeSendAndCallPayload_4023":{"entryPoint":14109,"id":4023,"parameterSlots":1,"returnSlots":5},"@_decodeSendPayload_3930":{"entryPoint":13941,"id":3930,"parameterSlots":1,"returnSlots":2},"@_encodeSendAndCallPayload_3958":{"entryPoint":13849,"id":3958,"parameterSlots":5,"returnSlots":1},"@_encodeSendPayload_3891":{"entryPoint":12009,"id":3891,"parameterSlots":2,"returnSlots":1},"@_estimateSendAndCallFee_3358":{"entryPoint":10856,"id":3358,"parameterSlots":7,"returnSlots":2},"@_estimateSendFee_3311":{"entryPoint":9202,"id":3311,"parameterSlots":5,"returnSlots":2},"@_getGasLimit_681":{"entryPoint":14249,"id":681,"parameterSlots":1,"returnSlots":1},"@_isContract_3807":{"entryPoint":null,"id":3807,"parameterSlots":1,"returnSlots":1},"@_isEligibleToReceive_10347":{"entryPoint":15065,"id":10347,"parameterSlots":3,"returnSlots":0},"@_isEligibleToSend_10231":{"entryPoint":14293,"id":10231,"parameterSlots":3,"returnSlots":0},"@_ld2sdRate_10411":{"entryPoint":null,"id":10411,"parameterSlots":0,"returnSlots":1},"@_ld2sd_3838":{"entryPoint":11923,"id":3838,"parameterSlots":1,"returnSlots":1},"@_lzSend_622":{"entryPoint":13302,"id":622,"parameterSlots":6,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_nonblockingLzReceive_3407":{"entryPoint":10119,"id":3407,"parameterSlots":4,"returnSlots":0},"@_pause_5579":{"entryPoint":10595,"id":5579,"parameterSlots":0,"returnSlots":0},"@_removeDust_3874":{"entryPoint":9911,"id":3874,"parameterSlots":1,"returnSlots":2},"@_requireNotPaused_5552":{"entryPoint":12090,"id":5552,"parameterSlots":0,"returnSlots":0},"@_requirePaused_5563":{"entryPoint":12056,"id":5563,"parameterSlots":0,"returnSlots":0},"@_revert_7027":{"entryPoint":null,"id":7027,"parameterSlots":2,"returnSlots":0},"@_sd2ld_3851":{"entryPoint":9975,"id":3851,"parameterSlots":1,"returnSlots":1},"@_sendAck_3538":{"entryPoint":12358,"id":3538,"parameterSlots":4,"returnSlots":0},"@_sendAndCallAck_3793":{"entryPoint":12500,"id":3793,"parameterSlots":4,"returnSlots":0},"@_sendAndCall_3622":{"entryPoint":13650,"id":3622,"parameterSlots":9,"returnSlots":1},"@_send_3483":{"entryPoint":10206,"id":3483,"parameterSlots":7,"returnSlots":1},"@_storeFailedMessage_1102":{"entryPoint":11693,"id":1102,"parameterSlots":5,"returnSlots":0},"@_transferFrom_10401":{"entryPoint":9467,"id":10401,"parameterSlots":3,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":11466,"id":5487,"parameterSlots":1,"returnSlots":0},"@_unpause_5595":{"entryPoint":9391,"id":5595,"parameterSlots":0,"returnSlots":0},"@callOnOFTReceived_3272":{"entryPoint":8459,"id":3272,"parameterSlots":10,"returnSlots":0},"@chainIdToLast24HourReceiveWindowStart_9425":{"entryPoint":null,"id":9425,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourReceived_9420":{"entryPoint":null,"id":9420,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourTransferred_9400":{"entryPoint":null,"id":9400,"parameterSlots":0,"returnSlots":0},"@chainIdToLast24HourWindowStart_9405":{"entryPoint":null,"id":9405,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyLimit_9395":{"entryPoint":null,"id":9395,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxDailyReceiveLimit_9415":{"entryPoint":null,"id":9415,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxSingleReceiveTransactionLimit_9410":{"entryPoint":null,"id":9410,"parameterSlots":0,"returnSlots":0},"@chainIdToMaxSingleTransactionLimit_9390":{"entryPoint":null,"id":9390,"parameterSlots":0,"returnSlots":0},"@circulatingSupply_11105":{"entryPoint":7057,"id":11105,"parameterSlots":0,"returnSlots":1},"@creditedPackets_3161":{"entryPoint":null,"id":3161,"parameterSlots":0,"returnSlots":0},"@dropFailedMessage_11091":{"entryPoint":6895,"id":11091,"parameterSlots":3,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":10556,"id":9333,"parameterSlots":1,"returnSlots":0},"@estimateSendAndCallFee_3115":{"entryPoint":7430,"id":3115,"parameterSlots":9,"returnSlots":2},"@estimateSendFee_3082":{"entryPoint":4755,"id":3082,"parameterSlots":6,"returnSlots":2},"@excessivelySafeCall_372":{"entryPoint":11555,"id":372,"parameterSlots":4,"returnSlots":2},"@failedMessages_997":{"entryPoint":null,"id":997,"parameterSlots":0,"returnSlots":0},"@fallbackDeposit_11059":{"entryPoint":5329,"id":11059,"parameterSlots":2,"returnSlots":0},"@fallbackWithdraw_11007":{"entryPoint":5197,"id":11007,"parameterSlots":2,"returnSlots":0},"@forceResumeReceive_808":{"entryPoint":5063,"id":808,"parameterSlots":3,"returnSlots":0},"@functionCallWithValue_6852":{"entryPoint":14794,"id":6852,"parameterSlots":4,"returnSlots":1},"@functionCall_6788":{"entryPoint":13926,"id":6788,"parameterSlots":3,"returnSlots":1},"@getConfig_736":{"entryPoint":8844,"id":736,"parameterSlots":4,"returnSlots":1},"@getTrustedRemoteAddress_888":{"entryPoint":7207,"id":888,"parameterSlots":1,"returnSlots":1},"@isContract_6716":{"entryPoint":null,"id":6716,"parameterSlots":1,"returnSlots":1},"@isEligibleToSend_10011":{"entryPoint":4142,"id":10011,"parameterSlots":3,"returnSlots":7},"@isTrustedRemote_970":{"entryPoint":4840,"id":970,"parameterSlots":3,"returnSlots":1},"@lzEndpoint_451":{"entryPoint":null,"id":451,"parameterSlots":0,"returnSlots":0},"@lzReceive_562":{"entryPoint":3381,"id":562,"parameterSlots":6,"returnSlots":0},"@minDstGasLookup_461":{"entryPoint":null,"id":461,"parameterSlots":0,"returnSlots":0},"@mul_ScalarTruncate_8771":{"entryPoint":9178,"id":8771,"parameterSlots":2,"returnSlots":1},"@mul__9031":{"entryPoint":11850,"id":9031,"parameterSlots":2,"returnSlots":1},"@mul__9127":{"entryPoint":13914,"id":9127,"parameterSlots":2,"returnSlots":1},"@nonblockingLzReceive_1132":{"entryPoint":6119,"id":1132,"parameterSlots":6,"returnSlots":0},"@oracle_9385":{"entryPoint":null,"id":9385,"parameterSlots":0,"returnSlots":0},"@outboundAmount_10929":{"entryPoint":null,"id":10929,"parameterSlots":0,"returnSlots":0},"@owner_5416":{"entryPoint":null,"id":5416,"parameterSlots":0,"returnSlots":1},"@pause_9802":{"entryPoint":6879,"id":9802,"parameterSlots":0,"returnSlots":0},"@paused_5540":{"entryPoint":null,"id":5540,"parameterSlots":0,"returnSlots":1},"@payloadSizeLimitLookup_465":{"entryPoint":null,"id":465,"parameterSlots":0,"returnSlots":0},"@precrime_467":{"entryPoint":null,"id":467,"parameterSlots":0,"returnSlots":0},"@removeTrustedRemote_9880":{"entryPoint":4661,"id":9880,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_10105":{"entryPoint":null,"id":10105,"parameterSlots":0,"returnSlots":0},"@retryMessage_10099":{"entryPoint":8104,"id":10099,"parameterSlots":6,"returnSlots":0},"@retryMessage_1211":{"entryPoint":11050,"id":1211,"parameterSlots":6,"returnSlots":0},"@safeTransferFrom_6382":{"entryPoint":12125,"id":6382,"parameterSlots":4,"returnSlots":0},"@safeTransfer_6355":{"entryPoint":10028,"id":6355,"parameterSlots":3,"returnSlots":0},"@sendAndCallEnabled_9381":{"entryPoint":null,"id":9381,"parameterSlots":0,"returnSlots":0},"@sendAndCall_10049":{"entryPoint":6699,"id":10049,"parameterSlots":8,"returnSlots":0},"@sendAndCall_3032":{"entryPoint":10392,"id":3032,"parameterSlots":8,"returnSlots":0},"@sendFrom_2997":{"entryPoint":6276,"id":2997,"parameterSlots":5,"returnSlots":0},"@setConfig_760":{"entryPoint":7793,"id":760,"parameterSlots":5,"returnSlots":0},"@setMaxDailyLimit_9702":{"entryPoint":4499,"id":9702,"parameterSlots":2,"returnSlots":0},"@setMaxDailyReceiveLimit_9770":{"entryPoint":6383,"id":9770,"parameterSlots":2,"returnSlots":0},"@setMaxSingleReceiveTransactionLimit_9736":{"entryPoint":7942,"id":9736,"parameterSlots":2,"returnSlots":0},"@setMaxSingleTransactionLimit_9668":{"entryPoint":5581,"id":9668,"parameterSlots":2,"returnSlots":0},"@setMinDstGas_930":{"entryPoint":8364,"id":930,"parameterSlots":3,"returnSlots":0},"@setOracle_9634":{"entryPoint":6759,"id":9634,"parameterSlots":1,"returnSlots":0},"@setPayloadSizeLimit_946":{"entryPoint":4027,"id":946,"parameterSlots":2,"returnSlots":0},"@setPrecrime_904":{"entryPoint":7710,"id":904,"parameterSlots":1,"returnSlots":0},"@setReceiveVersion_790":{"entryPoint":4058,"id":790,"parameterSlots":1,"returnSlots":0},"@setSendVersion_775":{"entryPoint":3890,"id":775,"parameterSlots":1,"returnSlots":0},"@setTrustedRemoteAddress_857":{"entryPoint":7573,"id":857,"parameterSlots":3,"returnSlots":0},"@setTrustedRemote_829":{"entryPoint":8696,"id":829,"parameterSlots":3,"returnSlots":0},"@setWhitelist_9792":{"entryPoint":5743,"id":9792,"parameterSlots":2,"returnSlots":0},"@sharedDecimals_3153":{"entryPoint":null,"id":3153,"parameterSlots":0,"returnSlots":0},"@slice_63":{"entryPoint":10656,"id":63,"parameterSlots":3,"returnSlots":1},"@supportsInterface_3055":{"entryPoint":3835,"id":3055,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7302":{"entryPoint":null,"id":7302,"parameterSlots":1,"returnSlots":1},"@sweepToken_9862":{"entryPoint":5859,"id":9862,"parameterSlots":3,"returnSlots":0},"@toAddress_89":{"entryPoint":14950,"id":89,"parameterSlots":2,"returnSlots":1},"@toBytes32_297":{"entryPoint":15501,"id":297,"parameterSlots":2,"returnSlots":1},"@toUint64_193":{"entryPoint":15011,"id":193,"parameterSlots":2,"returnSlots":1},"@toUint8_115":{"entryPoint":12304,"id":115,"parameterSlots":2,"returnSlots":1},"@token_10118":{"entryPoint":null,"id":10118,"parameterSlots":0,"returnSlots":1},"@transferOwnership_5467":{"entryPoint":8786,"id":5467,"parameterSlots":1,"returnSlots":0},"@truncate_8747":{"entryPoint":11899,"id":8747,"parameterSlots":1,"returnSlots":1},"@trustedRemoteLookup_455":{"entryPoint":6545,"id":455,"parameterSlots":0,"returnSlots":0},"@unpause_9812":{"entryPoint":5045,"id":9812,"parameterSlots":0,"returnSlots":0},"@updateSendAndCallEnabled_9897":{"entryPoint":5512,"id":9897,"parameterSlots":1,"returnSlots":0},"@verifyCallResultFromTarget_6983":{"entryPoint":15555,"id":6983,"parameterSlots":4,"returnSlots":1},"@whitelist_9430":{"entryPoint":null,"id":9430,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":17026,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":21127,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":16263,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":16472,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":22517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":16058,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":15775,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":17091,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":21179,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC20_$6261":{"entryPoint":17243,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":17307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16":{"entryPoint":15764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":16165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":18986,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":15871,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":17800,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool":{"entryPoint":16827,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":17585,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr":{"entryPoint":17334,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint16t_uint256":{"entryPoint":16274,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":16737,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":16794,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":22528,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":16069,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":21215,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256":{"entryPoint":17254,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16":{"entryPoint":16126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr":{"entryPoint":16483,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr":{"entryPoint":17987,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_uint16t_bytes_calldata_ptr":{"entryPoint":16646,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256":{"entryPoint":18373,"id":null,"parameterSlots":2,"returnSlots":10},"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr":{"entryPoint":15882,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64":{"entryPoint":17127,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16":{"entryPoint":17913,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256":{"entryPoint":18613,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint16t_uint16t_uint256":{"entryPoint":18337,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr":{"entryPoint":18206,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint16t_uint256":{"entryPoint":16176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":18997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256_fromMemory":{"entryPoint":21492,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_payable_to_t_address_payable_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":17964,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":20053,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":16102,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":19213,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":18844,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":17516,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":19874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack":{"entryPoint":17890,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack":{"entryPoint":21630,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack":{"entryPoint":19538,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack":{"entryPoint":19962,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack":{"entryPoint":22939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":22376,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044_to_t_string_memory_ptr_fromStack":{"entryPoint":19377,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack":{"entryPoint":22871,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack":{"entryPoint":19715,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":20991,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack":{"entryPoint":20504,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack":{"entryPoint":19455,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack":{"entryPoint":21875,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack":{"entryPoint":23007,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack":{"entryPoint":19090,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack":{"entryPoint":23850,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack":{"entryPoint":23707,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack":{"entryPoint":22199,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack":{"entryPoint":21766,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack":{"entryPoint":23086,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":22435,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack":{"entryPoint":23437,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack":{"entryPoint":20622,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack":{"entryPoint":23909,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":21348,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack":{"entryPoint":23505,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack":{"entryPoint":23790,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack":{"entryPoint":23369,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack":{"entryPoint":19806,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack":{"entryPoint":18713,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack":{"entryPoint":23969,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack":{"entryPoint":21819,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack":{"entryPoint":22648,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea_to_t_string_memory_ptr_fromStack":{"entryPoint":19281,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack":{"entryPoint":22561,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack":{"entryPoint":21955,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack":{"entryPoint":21698,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack":{"entryPoint":23573,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack":{"entryPoint":18876,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack":{"entryPoint":23641,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":18962,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":16354,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":19920,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack":{"entryPoint":22303,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":16771,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack":{"entryPoint":22279,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":18863,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":20070,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19908,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed":{"entryPoint":22321,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":23277,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":17973,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":22490,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":21616,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":16112,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed":{"entryPoint":16360,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":17568,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":22839,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed":{"entryPoint":17899,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21682,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19605,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20014,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22991,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22419,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19439,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22923,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19790,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21058,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20579,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19522,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21939,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23070,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19157,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23893,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23774,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22251,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21803,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23163,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22474,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23489,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20674,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23953,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21398,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23557,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23834,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23421,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19858,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18768,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":24021,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21859,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22690,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19361,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22632,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":22017,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":21750,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23625,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":18946,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":23691,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed":{"entryPoint":18972,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":21414,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":19248,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed":{"entryPoint":22033,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20690,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":23179,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":22706,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":21273,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":22094,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed":{"entryPoint":21074,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed":{"entryPoint":20595,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20445,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":19173,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed":{"entryPoint":19935,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":16632,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":16605,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":16780,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":19621,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":16944,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":16972,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19071,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":22179,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":21585,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":19052,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":20194,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":16237,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC20_$6261":{"entryPoint":17223,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":20167,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address":{"entryPoint":17879,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":17868,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":17833,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":20106,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage":{"entryPoint":20797,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":20251,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":17014,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":17480,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":18806,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":16900,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":20042,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":20030,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint64":{"entryPoint":22291,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint8":{"entryPoint":22267,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mod_t_uint256":{"entryPoint":21565,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":19030,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":21543,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":18784,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":16878,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_192":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_248":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":20154,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":20118,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":16254,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":16464,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":16042,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC20_$6261":{"entryPoint":17234,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":15747,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":16159,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":15856,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:98361:65","nodeType":"YulBlock","src":"0:98361:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"378:45:65","nodeType":"YulBlock","src":"378:45:65","statements":[{"nativeSrc":"388:29:65","nodeType":"YulAssignment","src":"388:29:65","value":{"arguments":[{"name":"value","nativeSrc":"403:5:65","nodeType":"YulIdentifier","src":"403:5:65"},{"kind":"number","nativeSrc":"410:6:65","nodeType":"YulLiteral","src":"410:6:65","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"399:3:65","nodeType":"YulIdentifier","src":"399:3:65"},"nativeSrc":"399:18:65","nodeType":"YulFunctionCall","src":"399:18:65"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:65","nodeType":"YulIdentifier","src":"388:7:65"}]}]},"name":"cleanup_t_uint16","nativeSrc":"334:89:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:65","nodeType":"YulTypedName","src":"360:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:65","nodeType":"YulTypedName","src":"370:7:65","type":""}],"src":"334:89:65"},{"body":{"nativeSrc":"471:78:65","nodeType":"YulBlock","src":"471:78:65","statements":[{"body":{"nativeSrc":"527:16:65","nodeType":"YulBlock","src":"527:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"536:1:65","nodeType":"YulLiteral","src":"536:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"539:1:65","nodeType":"YulLiteral","src":"539:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"529:6:65","nodeType":"YulIdentifier","src":"529:6:65"},"nativeSrc":"529:12:65","nodeType":"YulFunctionCall","src":"529:12:65"},"nativeSrc":"529:12:65","nodeType":"YulExpressionStatement","src":"529:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"494:5:65","nodeType":"YulIdentifier","src":"494:5:65"},{"arguments":[{"name":"value","nativeSrc":"518:5:65","nodeType":"YulIdentifier","src":"518:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"501:16:65","nodeType":"YulIdentifier","src":"501:16:65"},"nativeSrc":"501:23:65","nodeType":"YulFunctionCall","src":"501:23:65"}],"functionName":{"name":"eq","nativeSrc":"491:2:65","nodeType":"YulIdentifier","src":"491:2:65"},"nativeSrc":"491:34:65","nodeType":"YulFunctionCall","src":"491:34:65"}],"functionName":{"name":"iszero","nativeSrc":"484:6:65","nodeType":"YulIdentifier","src":"484:6:65"},"nativeSrc":"484:42:65","nodeType":"YulFunctionCall","src":"484:42:65"},"nativeSrc":"481:62:65","nodeType":"YulIf","src":"481:62:65"}]},"name":"validator_revert_t_uint16","nativeSrc":"429:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"464:5:65","nodeType":"YulTypedName","src":"464:5:65","type":""}],"src":"429:120:65"},{"body":{"nativeSrc":"606:86:65","nodeType":"YulBlock","src":"606:86:65","statements":[{"nativeSrc":"616:29:65","nodeType":"YulAssignment","src":"616:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"638:6:65","nodeType":"YulIdentifier","src":"638:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"625:12:65","nodeType":"YulIdentifier","src":"625:12:65"},"nativeSrc":"625:20:65","nodeType":"YulFunctionCall","src":"625:20:65"},"variableNames":[{"name":"value","nativeSrc":"616:5:65","nodeType":"YulIdentifier","src":"616:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"680:5:65","nodeType":"YulIdentifier","src":"680:5:65"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"654:25:65","nodeType":"YulIdentifier","src":"654:25:65"},"nativeSrc":"654:32:65","nodeType":"YulFunctionCall","src":"654:32:65"},"nativeSrc":"654:32:65","nodeType":"YulExpressionStatement","src":"654:32:65"}]},"name":"abi_decode_t_uint16","nativeSrc":"555:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"584:6:65","nodeType":"YulTypedName","src":"584:6:65","type":""},{"name":"end","nativeSrc":"592:3:65","nodeType":"YulTypedName","src":"592:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"600:5:65","nodeType":"YulTypedName","src":"600:5:65","type":""}],"src":"555:137:65"},{"body":{"nativeSrc":"787:28:65","nodeType":"YulBlock","src":"787:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"804:1:65","nodeType":"YulLiteral","src":"804:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"807:1:65","nodeType":"YulLiteral","src":"807:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"797:6:65","nodeType":"YulIdentifier","src":"797:6:65"},"nativeSrc":"797:12:65","nodeType":"YulFunctionCall","src":"797:12:65"},"nativeSrc":"797:12:65","nodeType":"YulExpressionStatement","src":"797:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"698:117:65","nodeType":"YulFunctionDefinition","src":"698:117:65"},{"body":{"nativeSrc":"910:28:65","nodeType":"YulBlock","src":"910:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"927:1:65","nodeType":"YulLiteral","src":"927:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"930:1:65","nodeType":"YulLiteral","src":"930:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"920:6:65","nodeType":"YulIdentifier","src":"920:6:65"},"nativeSrc":"920:12:65","nodeType":"YulFunctionCall","src":"920:12:65"},"nativeSrc":"920:12:65","nodeType":"YulExpressionStatement","src":"920:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"821:117:65","nodeType":"YulFunctionDefinition","src":"821:117:65"},{"body":{"nativeSrc":"1033:28:65","nodeType":"YulBlock","src":"1033:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1050:1:65","nodeType":"YulLiteral","src":"1050:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1053:1:65","nodeType":"YulLiteral","src":"1053:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1043:6:65","nodeType":"YulIdentifier","src":"1043:6:65"},"nativeSrc":"1043:12:65","nodeType":"YulFunctionCall","src":"1043:12:65"},"nativeSrc":"1043:12:65","nodeType":"YulExpressionStatement","src":"1043:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"944:117:65","nodeType":"YulFunctionDefinition","src":"944:117:65"},{"body":{"nativeSrc":"1154:478:65","nodeType":"YulBlock","src":"1154:478:65","statements":[{"body":{"nativeSrc":"1203:83:65","nodeType":"YulBlock","src":"1203:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1205:77:65","nodeType":"YulIdentifier","src":"1205:77:65"},"nativeSrc":"1205:79:65","nodeType":"YulFunctionCall","src":"1205:79:65"},"nativeSrc":"1205:79:65","nodeType":"YulExpressionStatement","src":"1205:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1182:6:65","nodeType":"YulIdentifier","src":"1182:6:65"},{"kind":"number","nativeSrc":"1190:4:65","nodeType":"YulLiteral","src":"1190:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1178:3:65","nodeType":"YulIdentifier","src":"1178:3:65"},"nativeSrc":"1178:17:65","nodeType":"YulFunctionCall","src":"1178:17:65"},{"name":"end","nativeSrc":"1197:3:65","nodeType":"YulIdentifier","src":"1197:3:65"}],"functionName":{"name":"slt","nativeSrc":"1174:3:65","nodeType":"YulIdentifier","src":"1174:3:65"},"nativeSrc":"1174:27:65","nodeType":"YulFunctionCall","src":"1174:27:65"}],"functionName":{"name":"iszero","nativeSrc":"1167:6:65","nodeType":"YulIdentifier","src":"1167:6:65"},"nativeSrc":"1167:35:65","nodeType":"YulFunctionCall","src":"1167:35:65"},"nativeSrc":"1164:122:65","nodeType":"YulIf","src":"1164:122:65"},{"nativeSrc":"1295:30:65","nodeType":"YulAssignment","src":"1295:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"1318:6:65","nodeType":"YulIdentifier","src":"1318:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1305:12:65","nodeType":"YulIdentifier","src":"1305:12:65"},"nativeSrc":"1305:20:65","nodeType":"YulFunctionCall","src":"1305:20:65"},"variableNames":[{"name":"length","nativeSrc":"1295:6:65","nodeType":"YulIdentifier","src":"1295:6:65"}]},{"body":{"nativeSrc":"1368:83:65","nodeType":"YulBlock","src":"1368:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1370:77:65","nodeType":"YulIdentifier","src":"1370:77:65"},"nativeSrc":"1370:79:65","nodeType":"YulFunctionCall","src":"1370:79:65"},"nativeSrc":"1370:79:65","nodeType":"YulExpressionStatement","src":"1370:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1340:6:65","nodeType":"YulIdentifier","src":"1340:6:65"},{"kind":"number","nativeSrc":"1348:18:65","nodeType":"YulLiteral","src":"1348:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1337:2:65","nodeType":"YulIdentifier","src":"1337:2:65"},"nativeSrc":"1337:30:65","nodeType":"YulFunctionCall","src":"1337:30:65"},"nativeSrc":"1334:117:65","nodeType":"YulIf","src":"1334:117:65"},{"nativeSrc":"1460:29:65","nodeType":"YulAssignment","src":"1460:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1476:6:65","nodeType":"YulIdentifier","src":"1476:6:65"},{"kind":"number","nativeSrc":"1484:4:65","nodeType":"YulLiteral","src":"1484:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1472:3:65","nodeType":"YulIdentifier","src":"1472:3:65"},"nativeSrc":"1472:17:65","nodeType":"YulFunctionCall","src":"1472:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"1460:8:65","nodeType":"YulIdentifier","src":"1460:8:65"}]},{"body":{"nativeSrc":"1543:83:65","nodeType":"YulBlock","src":"1543:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1545:77:65","nodeType":"YulIdentifier","src":"1545:77:65"},"nativeSrc":"1545:79:65","nodeType":"YulFunctionCall","src":"1545:79:65"},"nativeSrc":"1545:79:65","nodeType":"YulExpressionStatement","src":"1545:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1508:8:65","nodeType":"YulIdentifier","src":"1508:8:65"},{"arguments":[{"name":"length","nativeSrc":"1522:6:65","nodeType":"YulIdentifier","src":"1522:6:65"},{"kind":"number","nativeSrc":"1530:4:65","nodeType":"YulLiteral","src":"1530:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1518:3:65","nodeType":"YulIdentifier","src":"1518:3:65"},"nativeSrc":"1518:17:65","nodeType":"YulFunctionCall","src":"1518:17:65"}],"functionName":{"name":"add","nativeSrc":"1504:3:65","nodeType":"YulIdentifier","src":"1504:3:65"},"nativeSrc":"1504:32:65","nodeType":"YulFunctionCall","src":"1504:32:65"},{"name":"end","nativeSrc":"1538:3:65","nodeType":"YulIdentifier","src":"1538:3:65"}],"functionName":{"name":"gt","nativeSrc":"1501:2:65","nodeType":"YulIdentifier","src":"1501:2:65"},"nativeSrc":"1501:41:65","nodeType":"YulFunctionCall","src":"1501:41:65"},"nativeSrc":"1498:128:65","nodeType":"YulIf","src":"1498:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1080:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1121:6:65","nodeType":"YulTypedName","src":"1121:6:65","type":""},{"name":"end","nativeSrc":"1129:3:65","nodeType":"YulTypedName","src":"1129:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1137:8:65","nodeType":"YulTypedName","src":"1137:8:65","type":""},{"name":"length","nativeSrc":"1147:6:65","nodeType":"YulTypedName","src":"1147:6:65","type":""}],"src":"1080:552:65"},{"body":{"nativeSrc":"1682:57:65","nodeType":"YulBlock","src":"1682:57:65","statements":[{"nativeSrc":"1692:41:65","nodeType":"YulAssignment","src":"1692:41:65","value":{"arguments":[{"name":"value","nativeSrc":"1707:5:65","nodeType":"YulIdentifier","src":"1707:5:65"},{"kind":"number","nativeSrc":"1714:18:65","nodeType":"YulLiteral","src":"1714:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1703:3:65","nodeType":"YulIdentifier","src":"1703:3:65"},"nativeSrc":"1703:30:65","nodeType":"YulFunctionCall","src":"1703:30:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1692:7:65","nodeType":"YulIdentifier","src":"1692:7:65"}]}]},"name":"cleanup_t_uint64","nativeSrc":"1638:101:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1664:5:65","nodeType":"YulTypedName","src":"1664:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1674:7:65","nodeType":"YulTypedName","src":"1674:7:65","type":""}],"src":"1638:101:65"},{"body":{"nativeSrc":"1787:78:65","nodeType":"YulBlock","src":"1787:78:65","statements":[{"body":{"nativeSrc":"1843:16:65","nodeType":"YulBlock","src":"1843:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1852:1:65","nodeType":"YulLiteral","src":"1852:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1855:1:65","nodeType":"YulLiteral","src":"1855:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1845:6:65","nodeType":"YulIdentifier","src":"1845:6:65"},"nativeSrc":"1845:12:65","nodeType":"YulFunctionCall","src":"1845:12:65"},"nativeSrc":"1845:12:65","nodeType":"YulExpressionStatement","src":"1845:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1810:5:65","nodeType":"YulIdentifier","src":"1810:5:65"},{"arguments":[{"name":"value","nativeSrc":"1834:5:65","nodeType":"YulIdentifier","src":"1834:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"1817:16:65","nodeType":"YulIdentifier","src":"1817:16:65"},"nativeSrc":"1817:23:65","nodeType":"YulFunctionCall","src":"1817:23:65"}],"functionName":{"name":"eq","nativeSrc":"1807:2:65","nodeType":"YulIdentifier","src":"1807:2:65"},"nativeSrc":"1807:34:65","nodeType":"YulFunctionCall","src":"1807:34:65"}],"functionName":{"name":"iszero","nativeSrc":"1800:6:65","nodeType":"YulIdentifier","src":"1800:6:65"},"nativeSrc":"1800:42:65","nodeType":"YulFunctionCall","src":"1800:42:65"},"nativeSrc":"1797:62:65","nodeType":"YulIf","src":"1797:62:65"}]},"name":"validator_revert_t_uint64","nativeSrc":"1745:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1780:5:65","nodeType":"YulTypedName","src":"1780:5:65","type":""}],"src":"1745:120:65"},{"body":{"nativeSrc":"1922:86:65","nodeType":"YulBlock","src":"1922:86:65","statements":[{"nativeSrc":"1932:29:65","nodeType":"YulAssignment","src":"1932:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:65","nodeType":"YulIdentifier","src":"1954:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1941:12:65","nodeType":"YulIdentifier","src":"1941:12:65"},"nativeSrc":"1941:20:65","nodeType":"YulFunctionCall","src":"1941:20:65"},"variableNames":[{"name":"value","nativeSrc":"1932:5:65","nodeType":"YulIdentifier","src":"1932:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1996:5:65","nodeType":"YulIdentifier","src":"1996:5:65"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"1970:25:65","nodeType":"YulIdentifier","src":"1970:25:65"},"nativeSrc":"1970:32:65","nodeType":"YulFunctionCall","src":"1970:32:65"},"nativeSrc":"1970:32:65","nodeType":"YulExpressionStatement","src":"1970:32:65"}]},"name":"abi_decode_t_uint64","nativeSrc":"1871:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1900:6:65","nodeType":"YulTypedName","src":"1900:6:65","type":""},{"name":"end","nativeSrc":"1908:3:65","nodeType":"YulTypedName","src":"1908:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1916:5:65","nodeType":"YulTypedName","src":"1916:5:65","type":""}],"src":"1871:137:65"},{"body":{"nativeSrc":"2167:1004:65","nodeType":"YulBlock","src":"2167:1004:65","statements":[{"body":{"nativeSrc":"2214:83:65","nodeType":"YulBlock","src":"2214:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2216:77:65","nodeType":"YulIdentifier","src":"2216:77:65"},"nativeSrc":"2216:79:65","nodeType":"YulFunctionCall","src":"2216:79:65"},"nativeSrc":"2216:79:65","nodeType":"YulExpressionStatement","src":"2216:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2188:7:65","nodeType":"YulIdentifier","src":"2188:7:65"},{"name":"headStart","nativeSrc":"2197:9:65","nodeType":"YulIdentifier","src":"2197:9:65"}],"functionName":{"name":"sub","nativeSrc":"2184:3:65","nodeType":"YulIdentifier","src":"2184:3:65"},"nativeSrc":"2184:23:65","nodeType":"YulFunctionCall","src":"2184:23:65"},{"kind":"number","nativeSrc":"2209:3:65","nodeType":"YulLiteral","src":"2209:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"2180:3:65","nodeType":"YulIdentifier","src":"2180:3:65"},"nativeSrc":"2180:33:65","nodeType":"YulFunctionCall","src":"2180:33:65"},"nativeSrc":"2177:120:65","nodeType":"YulIf","src":"2177:120:65"},{"nativeSrc":"2307:116:65","nodeType":"YulBlock","src":"2307:116:65","statements":[{"nativeSrc":"2322:15:65","nodeType":"YulVariableDeclaration","src":"2322:15:65","value":{"kind":"number","nativeSrc":"2336:1:65","nodeType":"YulLiteral","src":"2336:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2326:6:65","nodeType":"YulTypedName","src":"2326:6:65","type":""}]},{"nativeSrc":"2351:62:65","nodeType":"YulAssignment","src":"2351:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2385:9:65","nodeType":"YulIdentifier","src":"2385:9:65"},{"name":"offset","nativeSrc":"2396:6:65","nodeType":"YulIdentifier","src":"2396:6:65"}],"functionName":{"name":"add","nativeSrc":"2381:3:65","nodeType":"YulIdentifier","src":"2381:3:65"},"nativeSrc":"2381:22:65","nodeType":"YulFunctionCall","src":"2381:22:65"},{"name":"dataEnd","nativeSrc":"2405:7:65","nodeType":"YulIdentifier","src":"2405:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"2361:19:65","nodeType":"YulIdentifier","src":"2361:19:65"},"nativeSrc":"2361:52:65","nodeType":"YulFunctionCall","src":"2361:52:65"},"variableNames":[{"name":"value0","nativeSrc":"2351:6:65","nodeType":"YulIdentifier","src":"2351:6:65"}]}]},{"nativeSrc":"2433:297:65","nodeType":"YulBlock","src":"2433:297:65","statements":[{"nativeSrc":"2448:46:65","nodeType":"YulVariableDeclaration","src":"2448:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2479:9:65","nodeType":"YulIdentifier","src":"2479:9:65"},{"kind":"number","nativeSrc":"2490:2:65","nodeType":"YulLiteral","src":"2490:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2475:3:65","nodeType":"YulIdentifier","src":"2475:3:65"},"nativeSrc":"2475:18:65","nodeType":"YulFunctionCall","src":"2475:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2462:12:65","nodeType":"YulIdentifier","src":"2462:12:65"},"nativeSrc":"2462:32:65","nodeType":"YulFunctionCall","src":"2462:32:65"},"variables":[{"name":"offset","nativeSrc":"2452:6:65","nodeType":"YulTypedName","src":"2452:6:65","type":""}]},{"body":{"nativeSrc":"2541:83:65","nodeType":"YulBlock","src":"2541:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2543:77:65","nodeType":"YulIdentifier","src":"2543:77:65"},"nativeSrc":"2543:79:65","nodeType":"YulFunctionCall","src":"2543:79:65"},"nativeSrc":"2543:79:65","nodeType":"YulExpressionStatement","src":"2543:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2513:6:65","nodeType":"YulIdentifier","src":"2513:6:65"},{"kind":"number","nativeSrc":"2521:18:65","nodeType":"YulLiteral","src":"2521:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2510:2:65","nodeType":"YulIdentifier","src":"2510:2:65"},"nativeSrc":"2510:30:65","nodeType":"YulFunctionCall","src":"2510:30:65"},"nativeSrc":"2507:117:65","nodeType":"YulIf","src":"2507:117:65"},{"nativeSrc":"2638:82:65","nodeType":"YulAssignment","src":"2638:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2692:9:65","nodeType":"YulIdentifier","src":"2692:9:65"},{"name":"offset","nativeSrc":"2703:6:65","nodeType":"YulIdentifier","src":"2703:6:65"}],"functionName":{"name":"add","nativeSrc":"2688:3:65","nodeType":"YulIdentifier","src":"2688:3:65"},"nativeSrc":"2688:22:65","nodeType":"YulFunctionCall","src":"2688:22:65"},{"name":"dataEnd","nativeSrc":"2712:7:65","nodeType":"YulIdentifier","src":"2712:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2656:31:65","nodeType":"YulIdentifier","src":"2656:31:65"},"nativeSrc":"2656:64:65","nodeType":"YulFunctionCall","src":"2656:64:65"},"variableNames":[{"name":"value1","nativeSrc":"2638:6:65","nodeType":"YulIdentifier","src":"2638:6:65"},{"name":"value2","nativeSrc":"2646:6:65","nodeType":"YulIdentifier","src":"2646:6:65"}]}]},{"nativeSrc":"2740:117:65","nodeType":"YulBlock","src":"2740:117:65","statements":[{"nativeSrc":"2755:16:65","nodeType":"YulVariableDeclaration","src":"2755:16:65","value":{"kind":"number","nativeSrc":"2769:2:65","nodeType":"YulLiteral","src":"2769:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2759:6:65","nodeType":"YulTypedName","src":"2759:6:65","type":""}]},{"nativeSrc":"2785:62:65","nodeType":"YulAssignment","src":"2785:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2819:9:65","nodeType":"YulIdentifier","src":"2819:9:65"},{"name":"offset","nativeSrc":"2830:6:65","nodeType":"YulIdentifier","src":"2830:6:65"}],"functionName":{"name":"add","nativeSrc":"2815:3:65","nodeType":"YulIdentifier","src":"2815:3:65"},"nativeSrc":"2815:22:65","nodeType":"YulFunctionCall","src":"2815:22:65"},{"name":"dataEnd","nativeSrc":"2839:7:65","nodeType":"YulIdentifier","src":"2839:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"2795:19:65","nodeType":"YulIdentifier","src":"2795:19:65"},"nativeSrc":"2795:52:65","nodeType":"YulFunctionCall","src":"2795:52:65"},"variableNames":[{"name":"value3","nativeSrc":"2785:6:65","nodeType":"YulIdentifier","src":"2785:6:65"}]}]},{"nativeSrc":"2867:297:65","nodeType":"YulBlock","src":"2867:297:65","statements":[{"nativeSrc":"2882:46:65","nodeType":"YulVariableDeclaration","src":"2882:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2913:9:65","nodeType":"YulIdentifier","src":"2913:9:65"},{"kind":"number","nativeSrc":"2924:2:65","nodeType":"YulLiteral","src":"2924:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2909:3:65","nodeType":"YulIdentifier","src":"2909:3:65"},"nativeSrc":"2909:18:65","nodeType":"YulFunctionCall","src":"2909:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2896:12:65","nodeType":"YulIdentifier","src":"2896:12:65"},"nativeSrc":"2896:32:65","nodeType":"YulFunctionCall","src":"2896:32:65"},"variables":[{"name":"offset","nativeSrc":"2886:6:65","nodeType":"YulTypedName","src":"2886:6:65","type":""}]},{"body":{"nativeSrc":"2975:83:65","nodeType":"YulBlock","src":"2975:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2977:77:65","nodeType":"YulIdentifier","src":"2977:77:65"},"nativeSrc":"2977:79:65","nodeType":"YulFunctionCall","src":"2977:79:65"},"nativeSrc":"2977:79:65","nodeType":"YulExpressionStatement","src":"2977:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2947:6:65","nodeType":"YulIdentifier","src":"2947:6:65"},{"kind":"number","nativeSrc":"2955:18:65","nodeType":"YulLiteral","src":"2955:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2944:2:65","nodeType":"YulIdentifier","src":"2944:2:65"},"nativeSrc":"2944:30:65","nodeType":"YulFunctionCall","src":"2944:30:65"},"nativeSrc":"2941:117:65","nodeType":"YulIf","src":"2941:117:65"},{"nativeSrc":"3072:82:65","nodeType":"YulAssignment","src":"3072:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3126:9:65","nodeType":"YulIdentifier","src":"3126:9:65"},{"name":"offset","nativeSrc":"3137:6:65","nodeType":"YulIdentifier","src":"3137:6:65"}],"functionName":{"name":"add","nativeSrc":"3122:3:65","nodeType":"YulIdentifier","src":"3122:3:65"},"nativeSrc":"3122:22:65","nodeType":"YulFunctionCall","src":"3122:22:65"},{"name":"dataEnd","nativeSrc":"3146:7:65","nodeType":"YulIdentifier","src":"3146:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3090:31:65","nodeType":"YulIdentifier","src":"3090:31:65"},"nativeSrc":"3090:64:65","nodeType":"YulFunctionCall","src":"3090:64:65"},"variableNames":[{"name":"value4","nativeSrc":"3072:6:65","nodeType":"YulIdentifier","src":"3072:6:65"},{"name":"value5","nativeSrc":"3080:6:65","nodeType":"YulIdentifier","src":"3080:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr","nativeSrc":"2014:1157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2097:9:65","nodeType":"YulTypedName","src":"2097:9:65","type":""},{"name":"dataEnd","nativeSrc":"2108:7:65","nodeType":"YulTypedName","src":"2108:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2120:6:65","nodeType":"YulTypedName","src":"2120:6:65","type":""},{"name":"value1","nativeSrc":"2128:6:65","nodeType":"YulTypedName","src":"2128:6:65","type":""},{"name":"value2","nativeSrc":"2136:6:65","nodeType":"YulTypedName","src":"2136:6:65","type":""},{"name":"value3","nativeSrc":"2144:6:65","nodeType":"YulTypedName","src":"2144:6:65","type":""},{"name":"value4","nativeSrc":"2152:6:65","nodeType":"YulTypedName","src":"2152:6:65","type":""},{"name":"value5","nativeSrc":"2160:6:65","nodeType":"YulTypedName","src":"2160:6:65","type":""}],"src":"2014:1157:65"},{"body":{"nativeSrc":"3221:105:65","nodeType":"YulBlock","src":"3221:105:65","statements":[{"nativeSrc":"3231:89:65","nodeType":"YulAssignment","src":"3231:89:65","value":{"arguments":[{"name":"value","nativeSrc":"3246:5:65","nodeType":"YulIdentifier","src":"3246:5:65"},{"kind":"number","nativeSrc":"3253:66:65","nodeType":"YulLiteral","src":"3253:66:65","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"3242:3:65","nodeType":"YulIdentifier","src":"3242:3:65"},"nativeSrc":"3242:78:65","nodeType":"YulFunctionCall","src":"3242:78:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3231:7:65","nodeType":"YulIdentifier","src":"3231:7:65"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"3177:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3203:5:65","nodeType":"YulTypedName","src":"3203:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3213:7:65","nodeType":"YulTypedName","src":"3213:7:65","type":""}],"src":"3177:149:65"},{"body":{"nativeSrc":"3374:78:65","nodeType":"YulBlock","src":"3374:78:65","statements":[{"body":{"nativeSrc":"3430:16:65","nodeType":"YulBlock","src":"3430:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3439:1:65","nodeType":"YulLiteral","src":"3439:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3442:1:65","nodeType":"YulLiteral","src":"3442:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3432:6:65","nodeType":"YulIdentifier","src":"3432:6:65"},"nativeSrc":"3432:12:65","nodeType":"YulFunctionCall","src":"3432:12:65"},"nativeSrc":"3432:12:65","nodeType":"YulExpressionStatement","src":"3432:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3397:5:65","nodeType":"YulIdentifier","src":"3397:5:65"},{"arguments":[{"name":"value","nativeSrc":"3421:5:65","nodeType":"YulIdentifier","src":"3421:5:65"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"3404:16:65","nodeType":"YulIdentifier","src":"3404:16:65"},"nativeSrc":"3404:23:65","nodeType":"YulFunctionCall","src":"3404:23:65"}],"functionName":{"name":"eq","nativeSrc":"3394:2:65","nodeType":"YulIdentifier","src":"3394:2:65"},"nativeSrc":"3394:34:65","nodeType":"YulFunctionCall","src":"3394:34:65"}],"functionName":{"name":"iszero","nativeSrc":"3387:6:65","nodeType":"YulIdentifier","src":"3387:6:65"},"nativeSrc":"3387:42:65","nodeType":"YulFunctionCall","src":"3387:42:65"},"nativeSrc":"3384:62:65","nodeType":"YulIf","src":"3384:62:65"}]},"name":"validator_revert_t_bytes4","nativeSrc":"3332:120:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3367:5:65","nodeType":"YulTypedName","src":"3367:5:65","type":""}],"src":"3332:120:65"},{"body":{"nativeSrc":"3509:86:65","nodeType":"YulBlock","src":"3509:86:65","statements":[{"nativeSrc":"3519:29:65","nodeType":"YulAssignment","src":"3519:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3541:6:65","nodeType":"YulIdentifier","src":"3541:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3528:12:65","nodeType":"YulIdentifier","src":"3528:12:65"},"nativeSrc":"3528:20:65","nodeType":"YulFunctionCall","src":"3528:20:65"},"variableNames":[{"name":"value","nativeSrc":"3519:5:65","nodeType":"YulIdentifier","src":"3519:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3583:5:65","nodeType":"YulIdentifier","src":"3583:5:65"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"3557:25:65","nodeType":"YulIdentifier","src":"3557:25:65"},"nativeSrc":"3557:32:65","nodeType":"YulFunctionCall","src":"3557:32:65"},"nativeSrc":"3557:32:65","nodeType":"YulExpressionStatement","src":"3557:32:65"}]},"name":"abi_decode_t_bytes4","nativeSrc":"3458:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3487:6:65","nodeType":"YulTypedName","src":"3487:6:65","type":""},{"name":"end","nativeSrc":"3495:3:65","nodeType":"YulTypedName","src":"3495:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3503:5:65","nodeType":"YulTypedName","src":"3503:5:65","type":""}],"src":"3458:137:65"},{"body":{"nativeSrc":"3666:262:65","nodeType":"YulBlock","src":"3666:262:65","statements":[{"body":{"nativeSrc":"3712:83:65","nodeType":"YulBlock","src":"3712:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3714:77:65","nodeType":"YulIdentifier","src":"3714:77:65"},"nativeSrc":"3714:79:65","nodeType":"YulFunctionCall","src":"3714:79:65"},"nativeSrc":"3714:79:65","nodeType":"YulExpressionStatement","src":"3714:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3687:7:65","nodeType":"YulIdentifier","src":"3687:7:65"},{"name":"headStart","nativeSrc":"3696:9:65","nodeType":"YulIdentifier","src":"3696:9:65"}],"functionName":{"name":"sub","nativeSrc":"3683:3:65","nodeType":"YulIdentifier","src":"3683:3:65"},"nativeSrc":"3683:23:65","nodeType":"YulFunctionCall","src":"3683:23:65"},{"kind":"number","nativeSrc":"3708:2:65","nodeType":"YulLiteral","src":"3708:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3679:3:65","nodeType":"YulIdentifier","src":"3679:3:65"},"nativeSrc":"3679:32:65","nodeType":"YulFunctionCall","src":"3679:32:65"},"nativeSrc":"3676:119:65","nodeType":"YulIf","src":"3676:119:65"},{"nativeSrc":"3805:116:65","nodeType":"YulBlock","src":"3805:116:65","statements":[{"nativeSrc":"3820:15:65","nodeType":"YulVariableDeclaration","src":"3820:15:65","value":{"kind":"number","nativeSrc":"3834:1:65","nodeType":"YulLiteral","src":"3834:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3824:6:65","nodeType":"YulTypedName","src":"3824:6:65","type":""}]},{"nativeSrc":"3849:62:65","nodeType":"YulAssignment","src":"3849:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3883:9:65","nodeType":"YulIdentifier","src":"3883:9:65"},{"name":"offset","nativeSrc":"3894:6:65","nodeType":"YulIdentifier","src":"3894:6:65"}],"functionName":{"name":"add","nativeSrc":"3879:3:65","nodeType":"YulIdentifier","src":"3879:3:65"},"nativeSrc":"3879:22:65","nodeType":"YulFunctionCall","src":"3879:22:65"},{"name":"dataEnd","nativeSrc":"3903:7:65","nodeType":"YulIdentifier","src":"3903:7:65"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"3859:19:65","nodeType":"YulIdentifier","src":"3859:19:65"},"nativeSrc":"3859:52:65","nodeType":"YulFunctionCall","src":"3859:52:65"},"variableNames":[{"name":"value0","nativeSrc":"3849:6:65","nodeType":"YulIdentifier","src":"3849:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"3601:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3636:9:65","nodeType":"YulTypedName","src":"3636:9:65","type":""},{"name":"dataEnd","nativeSrc":"3647:7:65","nodeType":"YulTypedName","src":"3647:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3659:6:65","nodeType":"YulTypedName","src":"3659:6:65","type":""}],"src":"3601:327:65"},{"body":{"nativeSrc":"3976:48:65","nodeType":"YulBlock","src":"3976:48:65","statements":[{"nativeSrc":"3986:32:65","nodeType":"YulAssignment","src":"3986:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4011:5:65","nodeType":"YulIdentifier","src":"4011:5:65"}],"functionName":{"name":"iszero","nativeSrc":"4004:6:65","nodeType":"YulIdentifier","src":"4004:6:65"},"nativeSrc":"4004:13:65","nodeType":"YulFunctionCall","src":"4004:13:65"}],"functionName":{"name":"iszero","nativeSrc":"3997:6:65","nodeType":"YulIdentifier","src":"3997:6:65"},"nativeSrc":"3997:21:65","nodeType":"YulFunctionCall","src":"3997:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3986:7:65","nodeType":"YulIdentifier","src":"3986:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"3934:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3958:5:65","nodeType":"YulTypedName","src":"3958:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3968:7:65","nodeType":"YulTypedName","src":"3968:7:65","type":""}],"src":"3934:90:65"},{"body":{"nativeSrc":"4089:50:65","nodeType":"YulBlock","src":"4089:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4106:3:65","nodeType":"YulIdentifier","src":"4106:3:65"},{"arguments":[{"name":"value","nativeSrc":"4126:5:65","nodeType":"YulIdentifier","src":"4126:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4111:14:65","nodeType":"YulIdentifier","src":"4111:14:65"},"nativeSrc":"4111:21:65","nodeType":"YulFunctionCall","src":"4111:21:65"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:65","nodeType":"YulIdentifier","src":"4099:6:65"},"nativeSrc":"4099:34:65","nodeType":"YulFunctionCall","src":"4099:34:65"},"nativeSrc":"4099:34:65","nodeType":"YulExpressionStatement","src":"4099:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4030:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4077:5:65","nodeType":"YulTypedName","src":"4077:5:65","type":""},{"name":"pos","nativeSrc":"4084:3:65","nodeType":"YulTypedName","src":"4084:3:65","type":""}],"src":"4030:109:65"},{"body":{"nativeSrc":"4237:118:65","nodeType":"YulBlock","src":"4237:118:65","statements":[{"nativeSrc":"4247:26:65","nodeType":"YulAssignment","src":"4247:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4259:9:65","nodeType":"YulIdentifier","src":"4259:9:65"},{"kind":"number","nativeSrc":"4270:2:65","nodeType":"YulLiteral","src":"4270:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4255:3:65","nodeType":"YulIdentifier","src":"4255:3:65"},"nativeSrc":"4255:18:65","nodeType":"YulFunctionCall","src":"4255:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4247:4:65","nodeType":"YulIdentifier","src":"4247:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4321:6:65","nodeType":"YulIdentifier","src":"4321:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4334:9:65","nodeType":"YulIdentifier","src":"4334:9:65"},{"kind":"number","nativeSrc":"4345:1:65","nodeType":"YulLiteral","src":"4345:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4330:3:65","nodeType":"YulIdentifier","src":"4330:3:65"},"nativeSrc":"4330:17:65","nodeType":"YulFunctionCall","src":"4330:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4283:37:65","nodeType":"YulIdentifier","src":"4283:37:65"},"nativeSrc":"4283:65:65","nodeType":"YulFunctionCall","src":"4283:65:65"},"nativeSrc":"4283:65:65","nodeType":"YulExpressionStatement","src":"4283:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4145:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4209:9:65","nodeType":"YulTypedName","src":"4209:9:65","type":""},{"name":"value0","nativeSrc":"4221:6:65","nodeType":"YulTypedName","src":"4221:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4232:4:65","nodeType":"YulTypedName","src":"4232:4:65","type":""}],"src":"4145:210:65"},{"body":{"nativeSrc":"4426:262:65","nodeType":"YulBlock","src":"4426:262:65","statements":[{"body":{"nativeSrc":"4472:83:65","nodeType":"YulBlock","src":"4472:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4474:77:65","nodeType":"YulIdentifier","src":"4474:77:65"},"nativeSrc":"4474:79:65","nodeType":"YulFunctionCall","src":"4474:79:65"},"nativeSrc":"4474:79:65","nodeType":"YulExpressionStatement","src":"4474:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4447:7:65","nodeType":"YulIdentifier","src":"4447:7:65"},{"name":"headStart","nativeSrc":"4456:9:65","nodeType":"YulIdentifier","src":"4456:9:65"}],"functionName":{"name":"sub","nativeSrc":"4443:3:65","nodeType":"YulIdentifier","src":"4443:3:65"},"nativeSrc":"4443:23:65","nodeType":"YulFunctionCall","src":"4443:23:65"},{"kind":"number","nativeSrc":"4468:2:65","nodeType":"YulLiteral","src":"4468:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4439:3:65","nodeType":"YulIdentifier","src":"4439:3:65"},"nativeSrc":"4439:32:65","nodeType":"YulFunctionCall","src":"4439:32:65"},"nativeSrc":"4436:119:65","nodeType":"YulIf","src":"4436:119:65"},{"nativeSrc":"4565:116:65","nodeType":"YulBlock","src":"4565:116:65","statements":[{"nativeSrc":"4580:15:65","nodeType":"YulVariableDeclaration","src":"4580:15:65","value":{"kind":"number","nativeSrc":"4594:1:65","nodeType":"YulLiteral","src":"4594:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4584:6:65","nodeType":"YulTypedName","src":"4584:6:65","type":""}]},{"nativeSrc":"4609:62:65","nodeType":"YulAssignment","src":"4609:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4643:9:65","nodeType":"YulIdentifier","src":"4643:9:65"},{"name":"offset","nativeSrc":"4654:6:65","nodeType":"YulIdentifier","src":"4654:6:65"}],"functionName":{"name":"add","nativeSrc":"4639:3:65","nodeType":"YulIdentifier","src":"4639:3:65"},"nativeSrc":"4639:22:65","nodeType":"YulFunctionCall","src":"4639:22:65"},{"name":"dataEnd","nativeSrc":"4663:7:65","nodeType":"YulIdentifier","src":"4663:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"4619:19:65","nodeType":"YulIdentifier","src":"4619:19:65"},"nativeSrc":"4619:52:65","nodeType":"YulFunctionCall","src":"4619:52:65"},"variableNames":[{"name":"value0","nativeSrc":"4609:6:65","nodeType":"YulIdentifier","src":"4609:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16","nativeSrc":"4361:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4396:9:65","nodeType":"YulTypedName","src":"4396:9:65","type":""},{"name":"dataEnd","nativeSrc":"4407:7:65","nodeType":"YulTypedName","src":"4407:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4419:6:65","nodeType":"YulTypedName","src":"4419:6:65","type":""}],"src":"4361:327:65"},{"body":{"nativeSrc":"4739:32:65","nodeType":"YulBlock","src":"4739:32:65","statements":[{"nativeSrc":"4749:16:65","nodeType":"YulAssignment","src":"4749:16:65","value":{"name":"value","nativeSrc":"4760:5:65","nodeType":"YulIdentifier","src":"4760:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4749:7:65","nodeType":"YulIdentifier","src":"4749:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4694:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4721:5:65","nodeType":"YulTypedName","src":"4721:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4731:7:65","nodeType":"YulTypedName","src":"4731:7:65","type":""}],"src":"4694:77:65"},{"body":{"nativeSrc":"4820:79:65","nodeType":"YulBlock","src":"4820:79:65","statements":[{"body":{"nativeSrc":"4877:16:65","nodeType":"YulBlock","src":"4877:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4886:1:65","nodeType":"YulLiteral","src":"4886:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4889:1:65","nodeType":"YulLiteral","src":"4889:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4879:6:65","nodeType":"YulIdentifier","src":"4879:6:65"},"nativeSrc":"4879:12:65","nodeType":"YulFunctionCall","src":"4879:12:65"},"nativeSrc":"4879:12:65","nodeType":"YulExpressionStatement","src":"4879:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4843:5:65","nodeType":"YulIdentifier","src":"4843:5:65"},{"arguments":[{"name":"value","nativeSrc":"4868:5:65","nodeType":"YulIdentifier","src":"4868:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4850:17:65","nodeType":"YulIdentifier","src":"4850:17:65"},"nativeSrc":"4850:24:65","nodeType":"YulFunctionCall","src":"4850:24:65"}],"functionName":{"name":"eq","nativeSrc":"4840:2:65","nodeType":"YulIdentifier","src":"4840:2:65"},"nativeSrc":"4840:35:65","nodeType":"YulFunctionCall","src":"4840:35:65"}],"functionName":{"name":"iszero","nativeSrc":"4833:6:65","nodeType":"YulIdentifier","src":"4833:6:65"},"nativeSrc":"4833:43:65","nodeType":"YulFunctionCall","src":"4833:43:65"},"nativeSrc":"4830:63:65","nodeType":"YulIf","src":"4830:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"4777:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4813:5:65","nodeType":"YulTypedName","src":"4813:5:65","type":""}],"src":"4777:122:65"},{"body":{"nativeSrc":"4957:87:65","nodeType":"YulBlock","src":"4957:87:65","statements":[{"nativeSrc":"4967:29:65","nodeType":"YulAssignment","src":"4967:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"4989:6:65","nodeType":"YulIdentifier","src":"4989:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"4976:12:65","nodeType":"YulIdentifier","src":"4976:12:65"},"nativeSrc":"4976:20:65","nodeType":"YulFunctionCall","src":"4976:20:65"},"variableNames":[{"name":"value","nativeSrc":"4967:5:65","nodeType":"YulIdentifier","src":"4967:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5032:5:65","nodeType":"YulIdentifier","src":"5032:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5005:26:65","nodeType":"YulIdentifier","src":"5005:26:65"},"nativeSrc":"5005:33:65","nodeType":"YulFunctionCall","src":"5005:33:65"},"nativeSrc":"5005:33:65","nodeType":"YulExpressionStatement","src":"5005:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"4905:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4935:6:65","nodeType":"YulTypedName","src":"4935:6:65","type":""},{"name":"end","nativeSrc":"4943:3:65","nodeType":"YulTypedName","src":"4943:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4951:5:65","nodeType":"YulTypedName","src":"4951:5:65","type":""}],"src":"4905:139:65"},{"body":{"nativeSrc":"5132:390:65","nodeType":"YulBlock","src":"5132:390:65","statements":[{"body":{"nativeSrc":"5178:83:65","nodeType":"YulBlock","src":"5178:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5180:77:65","nodeType":"YulIdentifier","src":"5180:77:65"},"nativeSrc":"5180:79:65","nodeType":"YulFunctionCall","src":"5180:79:65"},"nativeSrc":"5180:79:65","nodeType":"YulExpressionStatement","src":"5180:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5153:7:65","nodeType":"YulIdentifier","src":"5153:7:65"},{"name":"headStart","nativeSrc":"5162:9:65","nodeType":"YulIdentifier","src":"5162:9:65"}],"functionName":{"name":"sub","nativeSrc":"5149:3:65","nodeType":"YulIdentifier","src":"5149:3:65"},"nativeSrc":"5149:23:65","nodeType":"YulFunctionCall","src":"5149:23:65"},{"kind":"number","nativeSrc":"5174:2:65","nodeType":"YulLiteral","src":"5174:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5145:3:65","nodeType":"YulIdentifier","src":"5145:3:65"},"nativeSrc":"5145:32:65","nodeType":"YulFunctionCall","src":"5145:32:65"},"nativeSrc":"5142:119:65","nodeType":"YulIf","src":"5142:119:65"},{"nativeSrc":"5271:116:65","nodeType":"YulBlock","src":"5271:116:65","statements":[{"nativeSrc":"5286:15:65","nodeType":"YulVariableDeclaration","src":"5286:15:65","value":{"kind":"number","nativeSrc":"5300:1:65","nodeType":"YulLiteral","src":"5300:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5290:6:65","nodeType":"YulTypedName","src":"5290:6:65","type":""}]},{"nativeSrc":"5315:62:65","nodeType":"YulAssignment","src":"5315:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5349:9:65","nodeType":"YulIdentifier","src":"5349:9:65"},{"name":"offset","nativeSrc":"5360:6:65","nodeType":"YulIdentifier","src":"5360:6:65"}],"functionName":{"name":"add","nativeSrc":"5345:3:65","nodeType":"YulIdentifier","src":"5345:3:65"},"nativeSrc":"5345:22:65","nodeType":"YulFunctionCall","src":"5345:22:65"},{"name":"dataEnd","nativeSrc":"5369:7:65","nodeType":"YulIdentifier","src":"5369:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"5325:19:65","nodeType":"YulIdentifier","src":"5325:19:65"},"nativeSrc":"5325:52:65","nodeType":"YulFunctionCall","src":"5325:52:65"},"variableNames":[{"name":"value0","nativeSrc":"5315:6:65","nodeType":"YulIdentifier","src":"5315:6:65"}]}]},{"nativeSrc":"5397:118:65","nodeType":"YulBlock","src":"5397:118:65","statements":[{"nativeSrc":"5412:16:65","nodeType":"YulVariableDeclaration","src":"5412:16:65","value":{"kind":"number","nativeSrc":"5426:2:65","nodeType":"YulLiteral","src":"5426:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5416:6:65","nodeType":"YulTypedName","src":"5416:6:65","type":""}]},{"nativeSrc":"5442:63:65","nodeType":"YulAssignment","src":"5442:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5477:9:65","nodeType":"YulIdentifier","src":"5477:9:65"},{"name":"offset","nativeSrc":"5488:6:65","nodeType":"YulIdentifier","src":"5488:6:65"}],"functionName":{"name":"add","nativeSrc":"5473:3:65","nodeType":"YulIdentifier","src":"5473:3:65"},"nativeSrc":"5473:22:65","nodeType":"YulFunctionCall","src":"5473:22:65"},{"name":"dataEnd","nativeSrc":"5497:7:65","nodeType":"YulIdentifier","src":"5497:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5452:20:65","nodeType":"YulIdentifier","src":"5452:20:65"},"nativeSrc":"5452:53:65","nodeType":"YulFunctionCall","src":"5452:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5442:6:65","nodeType":"YulIdentifier","src":"5442:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint256","nativeSrc":"5050:472:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5094:9:65","nodeType":"YulTypedName","src":"5094:9:65","type":""},{"name":"dataEnd","nativeSrc":"5105:7:65","nodeType":"YulTypedName","src":"5105:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5117:6:65","nodeType":"YulTypedName","src":"5117:6:65","type":""},{"name":"value1","nativeSrc":"5125:6:65","nodeType":"YulTypedName","src":"5125:6:65","type":""}],"src":"5050:472:65"},{"body":{"nativeSrc":"5573:81:65","nodeType":"YulBlock","src":"5573:81:65","statements":[{"nativeSrc":"5583:65:65","nodeType":"YulAssignment","src":"5583:65:65","value":{"arguments":[{"name":"value","nativeSrc":"5598:5:65","nodeType":"YulIdentifier","src":"5598:5:65"},{"kind":"number","nativeSrc":"5605:42:65","nodeType":"YulLiteral","src":"5605:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5594:3:65","nodeType":"YulIdentifier","src":"5594:3:65"},"nativeSrc":"5594:54:65","nodeType":"YulFunctionCall","src":"5594:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"5583:7:65","nodeType":"YulIdentifier","src":"5583:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5528:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5555:5:65","nodeType":"YulTypedName","src":"5555:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5565:7:65","nodeType":"YulTypedName","src":"5565:7:65","type":""}],"src":"5528:126:65"},{"body":{"nativeSrc":"5705:51:65","nodeType":"YulBlock","src":"5705:51:65","statements":[{"nativeSrc":"5715:35:65","nodeType":"YulAssignment","src":"5715:35:65","value":{"arguments":[{"name":"value","nativeSrc":"5744:5:65","nodeType":"YulIdentifier","src":"5744:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5726:17:65","nodeType":"YulIdentifier","src":"5726:17:65"},"nativeSrc":"5726:24:65","nodeType":"YulFunctionCall","src":"5726:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"5715:7:65","nodeType":"YulIdentifier","src":"5715:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"5660:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5687:5:65","nodeType":"YulTypedName","src":"5687:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5697:7:65","nodeType":"YulTypedName","src":"5697:7:65","type":""}],"src":"5660:96:65"},{"body":{"nativeSrc":"5805:79:65","nodeType":"YulBlock","src":"5805:79:65","statements":[{"body":{"nativeSrc":"5862:16:65","nodeType":"YulBlock","src":"5862:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5871:1:65","nodeType":"YulLiteral","src":"5871:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5874:1:65","nodeType":"YulLiteral","src":"5874:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5864:6:65","nodeType":"YulIdentifier","src":"5864:6:65"},"nativeSrc":"5864:12:65","nodeType":"YulFunctionCall","src":"5864:12:65"},"nativeSrc":"5864:12:65","nodeType":"YulExpressionStatement","src":"5864:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5828:5:65","nodeType":"YulIdentifier","src":"5828:5:65"},{"arguments":[{"name":"value","nativeSrc":"5853:5:65","nodeType":"YulIdentifier","src":"5853:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5835:17:65","nodeType":"YulIdentifier","src":"5835:17:65"},"nativeSrc":"5835:24:65","nodeType":"YulFunctionCall","src":"5835:24:65"}],"functionName":{"name":"eq","nativeSrc":"5825:2:65","nodeType":"YulIdentifier","src":"5825:2:65"},"nativeSrc":"5825:35:65","nodeType":"YulFunctionCall","src":"5825:35:65"}],"functionName":{"name":"iszero","nativeSrc":"5818:6:65","nodeType":"YulIdentifier","src":"5818:6:65"},"nativeSrc":"5818:43:65","nodeType":"YulFunctionCall","src":"5818:43:65"},"nativeSrc":"5815:63:65","nodeType":"YulIf","src":"5815:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"5762:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5798:5:65","nodeType":"YulTypedName","src":"5798:5:65","type":""}],"src":"5762:122:65"},{"body":{"nativeSrc":"5942:87:65","nodeType":"YulBlock","src":"5942:87:65","statements":[{"nativeSrc":"5952:29:65","nodeType":"YulAssignment","src":"5952:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"5974:6:65","nodeType":"YulIdentifier","src":"5974:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"5961:12:65","nodeType":"YulIdentifier","src":"5961:12:65"},"nativeSrc":"5961:20:65","nodeType":"YulFunctionCall","src":"5961:20:65"},"variableNames":[{"name":"value","nativeSrc":"5952:5:65","nodeType":"YulIdentifier","src":"5952:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6017:5:65","nodeType":"YulIdentifier","src":"6017:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5990:26:65","nodeType":"YulIdentifier","src":"5990:26:65"},"nativeSrc":"5990:33:65","nodeType":"YulFunctionCall","src":"5990:33:65"},"nativeSrc":"5990:33:65","nodeType":"YulExpressionStatement","src":"5990:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"5890:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5920:6:65","nodeType":"YulTypedName","src":"5920:6:65","type":""},{"name":"end","nativeSrc":"5928:3:65","nodeType":"YulTypedName","src":"5928:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5936:5:65","nodeType":"YulTypedName","src":"5936:5:65","type":""}],"src":"5890:139:65"},{"body":{"nativeSrc":"6134:518:65","nodeType":"YulBlock","src":"6134:518:65","statements":[{"body":{"nativeSrc":"6180:83:65","nodeType":"YulBlock","src":"6180:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6182:77:65","nodeType":"YulIdentifier","src":"6182:77:65"},"nativeSrc":"6182:79:65","nodeType":"YulFunctionCall","src":"6182:79:65"},"nativeSrc":"6182:79:65","nodeType":"YulExpressionStatement","src":"6182:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6155:7:65","nodeType":"YulIdentifier","src":"6155:7:65"},{"name":"headStart","nativeSrc":"6164:9:65","nodeType":"YulIdentifier","src":"6164:9:65"}],"functionName":{"name":"sub","nativeSrc":"6151:3:65","nodeType":"YulIdentifier","src":"6151:3:65"},"nativeSrc":"6151:23:65","nodeType":"YulFunctionCall","src":"6151:23:65"},{"kind":"number","nativeSrc":"6176:2:65","nodeType":"YulLiteral","src":"6176:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"6147:3:65","nodeType":"YulIdentifier","src":"6147:3:65"},"nativeSrc":"6147:32:65","nodeType":"YulFunctionCall","src":"6147:32:65"},"nativeSrc":"6144:119:65","nodeType":"YulIf","src":"6144:119:65"},{"nativeSrc":"6273:117:65","nodeType":"YulBlock","src":"6273:117:65","statements":[{"nativeSrc":"6288:15:65","nodeType":"YulVariableDeclaration","src":"6288:15:65","value":{"kind":"number","nativeSrc":"6302:1:65","nodeType":"YulLiteral","src":"6302:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6292:6:65","nodeType":"YulTypedName","src":"6292:6:65","type":""}]},{"nativeSrc":"6317:63:65","nodeType":"YulAssignment","src":"6317:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6352:9:65","nodeType":"YulIdentifier","src":"6352:9:65"},{"name":"offset","nativeSrc":"6363:6:65","nodeType":"YulIdentifier","src":"6363:6:65"}],"functionName":{"name":"add","nativeSrc":"6348:3:65","nodeType":"YulIdentifier","src":"6348:3:65"},"nativeSrc":"6348:22:65","nodeType":"YulFunctionCall","src":"6348:22:65"},{"name":"dataEnd","nativeSrc":"6372:7:65","nodeType":"YulIdentifier","src":"6372:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6327:20:65","nodeType":"YulIdentifier","src":"6327:20:65"},"nativeSrc":"6327:53:65","nodeType":"YulFunctionCall","src":"6327:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6317:6:65","nodeType":"YulIdentifier","src":"6317:6:65"}]}]},{"nativeSrc":"6400:117:65","nodeType":"YulBlock","src":"6400:117:65","statements":[{"nativeSrc":"6415:16:65","nodeType":"YulVariableDeclaration","src":"6415:16:65","value":{"kind":"number","nativeSrc":"6429:2:65","nodeType":"YulLiteral","src":"6429:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6419:6:65","nodeType":"YulTypedName","src":"6419:6:65","type":""}]},{"nativeSrc":"6445:62:65","nodeType":"YulAssignment","src":"6445:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6479:9:65","nodeType":"YulIdentifier","src":"6479:9:65"},{"name":"offset","nativeSrc":"6490:6:65","nodeType":"YulIdentifier","src":"6490:6:65"}],"functionName":{"name":"add","nativeSrc":"6475:3:65","nodeType":"YulIdentifier","src":"6475:3:65"},"nativeSrc":"6475:22:65","nodeType":"YulFunctionCall","src":"6475:22:65"},{"name":"dataEnd","nativeSrc":"6499:7:65","nodeType":"YulIdentifier","src":"6499:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"6455:19:65","nodeType":"YulIdentifier","src":"6455:19:65"},"nativeSrc":"6455:52:65","nodeType":"YulFunctionCall","src":"6455:52:65"},"variableNames":[{"name":"value1","nativeSrc":"6445:6:65","nodeType":"YulIdentifier","src":"6445:6:65"}]}]},{"nativeSrc":"6527:118:65","nodeType":"YulBlock","src":"6527:118:65","statements":[{"nativeSrc":"6542:16:65","nodeType":"YulVariableDeclaration","src":"6542:16:65","value":{"kind":"number","nativeSrc":"6556:2:65","nodeType":"YulLiteral","src":"6556:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6546:6:65","nodeType":"YulTypedName","src":"6546:6:65","type":""}]},{"nativeSrc":"6572:63:65","nodeType":"YulAssignment","src":"6572:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6607:9:65","nodeType":"YulIdentifier","src":"6607:9:65"},{"name":"offset","nativeSrc":"6618:6:65","nodeType":"YulIdentifier","src":"6618:6:65"}],"functionName":{"name":"add","nativeSrc":"6603:3:65","nodeType":"YulIdentifier","src":"6603:3:65"},"nativeSrc":"6603:22:65","nodeType":"YulFunctionCall","src":"6603:22:65"},{"name":"dataEnd","nativeSrc":"6627:7:65","nodeType":"YulIdentifier","src":"6627:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6582:20:65","nodeType":"YulIdentifier","src":"6582:20:65"},"nativeSrc":"6582:53:65","nodeType":"YulFunctionCall","src":"6582:53:65"},"variableNames":[{"name":"value2","nativeSrc":"6572:6:65","nodeType":"YulIdentifier","src":"6572:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_uint256","nativeSrc":"6035:617:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6088:9:65","nodeType":"YulTypedName","src":"6088:9:65","type":""},{"name":"dataEnd","nativeSrc":"6099:7:65","nodeType":"YulTypedName","src":"6099:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6111:6:65","nodeType":"YulTypedName","src":"6111:6:65","type":""},{"name":"value1","nativeSrc":"6119:6:65","nodeType":"YulTypedName","src":"6119:6:65","type":""},{"name":"value2","nativeSrc":"6127:6:65","nodeType":"YulTypedName","src":"6127:6:65","type":""}],"src":"6035:617:65"},{"body":{"nativeSrc":"6723:53:65","nodeType":"YulBlock","src":"6723:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6740:3:65","nodeType":"YulIdentifier","src":"6740:3:65"},{"arguments":[{"name":"value","nativeSrc":"6763:5:65","nodeType":"YulIdentifier","src":"6763:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6745:17:65","nodeType":"YulIdentifier","src":"6745:17:65"},"nativeSrc":"6745:24:65","nodeType":"YulFunctionCall","src":"6745:24:65"}],"functionName":{"name":"mstore","nativeSrc":"6733:6:65","nodeType":"YulIdentifier","src":"6733:6:65"},"nativeSrc":"6733:37:65","nodeType":"YulFunctionCall","src":"6733:37:65"},"nativeSrc":"6733:37:65","nodeType":"YulExpressionStatement","src":"6733:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6658:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6711:5:65","nodeType":"YulTypedName","src":"6711:5:65","type":""},{"name":"pos","nativeSrc":"6718:3:65","nodeType":"YulTypedName","src":"6718:3:65","type":""}],"src":"6658:118:65"},{"body":{"nativeSrc":"7036:608:65","nodeType":"YulBlock","src":"7036:608:65","statements":[{"nativeSrc":"7046:27:65","nodeType":"YulAssignment","src":"7046:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7058:9:65","nodeType":"YulIdentifier","src":"7058:9:65"},{"kind":"number","nativeSrc":"7069:3:65","nodeType":"YulLiteral","src":"7069:3:65","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"7054:3:65","nodeType":"YulIdentifier","src":"7054:3:65"},"nativeSrc":"7054:19:65","nodeType":"YulFunctionCall","src":"7054:19:65"},"variableNames":[{"name":"tail","nativeSrc":"7046:4:65","nodeType":"YulIdentifier","src":"7046:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7121:6:65","nodeType":"YulIdentifier","src":"7121:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7134:9:65","nodeType":"YulIdentifier","src":"7134:9:65"},{"kind":"number","nativeSrc":"7145:1:65","nodeType":"YulLiteral","src":"7145:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7130:3:65","nodeType":"YulIdentifier","src":"7130:3:65"},"nativeSrc":"7130:17:65","nodeType":"YulFunctionCall","src":"7130:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7083:37:65","nodeType":"YulIdentifier","src":"7083:37:65"},"nativeSrc":"7083:65:65","nodeType":"YulFunctionCall","src":"7083:65:65"},"nativeSrc":"7083:65:65","nodeType":"YulExpressionStatement","src":"7083:65:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7202:6:65","nodeType":"YulIdentifier","src":"7202:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7215:9:65","nodeType":"YulIdentifier","src":"7215:9:65"},{"kind":"number","nativeSrc":"7226:2:65","nodeType":"YulLiteral","src":"7226:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7211:3:65","nodeType":"YulIdentifier","src":"7211:3:65"},"nativeSrc":"7211:18:65","nodeType":"YulFunctionCall","src":"7211:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7158:43:65","nodeType":"YulIdentifier","src":"7158:43:65"},"nativeSrc":"7158:72:65","nodeType":"YulFunctionCall","src":"7158:72:65"},"nativeSrc":"7158:72:65","nodeType":"YulExpressionStatement","src":"7158:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"7284:6:65","nodeType":"YulIdentifier","src":"7284:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7297:9:65","nodeType":"YulIdentifier","src":"7297:9:65"},{"kind":"number","nativeSrc":"7308:2:65","nodeType":"YulLiteral","src":"7308:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7293:3:65","nodeType":"YulIdentifier","src":"7293:3:65"},"nativeSrc":"7293:18:65","nodeType":"YulFunctionCall","src":"7293:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7240:43:65","nodeType":"YulIdentifier","src":"7240:43:65"},"nativeSrc":"7240:72:65","nodeType":"YulFunctionCall","src":"7240:72:65"},"nativeSrc":"7240:72:65","nodeType":"YulExpressionStatement","src":"7240:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"7366:6:65","nodeType":"YulIdentifier","src":"7366:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7379:9:65","nodeType":"YulIdentifier","src":"7379:9:65"},{"kind":"number","nativeSrc":"7390:2:65","nodeType":"YulLiteral","src":"7390:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7375:3:65","nodeType":"YulIdentifier","src":"7375:3:65"},"nativeSrc":"7375:18:65","nodeType":"YulFunctionCall","src":"7375:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7322:43:65","nodeType":"YulIdentifier","src":"7322:43:65"},"nativeSrc":"7322:72:65","nodeType":"YulFunctionCall","src":"7322:72:65"},"nativeSrc":"7322:72:65","nodeType":"YulExpressionStatement","src":"7322:72:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"7448:6:65","nodeType":"YulIdentifier","src":"7448:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7461:9:65","nodeType":"YulIdentifier","src":"7461:9:65"},{"kind":"number","nativeSrc":"7472:3:65","nodeType":"YulLiteral","src":"7472:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7457:3:65","nodeType":"YulIdentifier","src":"7457:3:65"},"nativeSrc":"7457:19:65","nodeType":"YulFunctionCall","src":"7457:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7404:43:65","nodeType":"YulIdentifier","src":"7404:43:65"},"nativeSrc":"7404:73:65","nodeType":"YulFunctionCall","src":"7404:73:65"},"nativeSrc":"7404:73:65","nodeType":"YulExpressionStatement","src":"7404:73:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"7531:6:65","nodeType":"YulIdentifier","src":"7531:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7544:9:65","nodeType":"YulIdentifier","src":"7544:9:65"},{"kind":"number","nativeSrc":"7555:3:65","nodeType":"YulLiteral","src":"7555:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"7540:3:65","nodeType":"YulIdentifier","src":"7540:3:65"},"nativeSrc":"7540:19:65","nodeType":"YulFunctionCall","src":"7540:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7487:43:65","nodeType":"YulIdentifier","src":"7487:43:65"},"nativeSrc":"7487:73:65","nodeType":"YulFunctionCall","src":"7487:73:65"},"nativeSrc":"7487:73:65","nodeType":"YulExpressionStatement","src":"7487:73:65"},{"expression":{"arguments":[{"name":"value6","nativeSrc":"7608:6:65","nodeType":"YulIdentifier","src":"7608:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"7621:9:65","nodeType":"YulIdentifier","src":"7621:9:65"},{"kind":"number","nativeSrc":"7632:3:65","nodeType":"YulLiteral","src":"7632:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"7617:3:65","nodeType":"YulIdentifier","src":"7617:3:65"},"nativeSrc":"7617:19:65","nodeType":"YulFunctionCall","src":"7617:19:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7570:37:65","nodeType":"YulIdentifier","src":"7570:37:65"},"nativeSrc":"7570:67:65","nodeType":"YulFunctionCall","src":"7570:67:65"},"nativeSrc":"7570:67:65","nodeType":"YulExpressionStatement","src":"7570:67:65"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed","nativeSrc":"6782:862:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6960:9:65","nodeType":"YulTypedName","src":"6960:9:65","type":""},{"name":"value6","nativeSrc":"6972:6:65","nodeType":"YulTypedName","src":"6972:6:65","type":""},{"name":"value5","nativeSrc":"6980:6:65","nodeType":"YulTypedName","src":"6980:6:65","type":""},{"name":"value4","nativeSrc":"6988:6:65","nodeType":"YulTypedName","src":"6988:6:65","type":""},{"name":"value3","nativeSrc":"6996:6:65","nodeType":"YulTypedName","src":"6996:6:65","type":""},{"name":"value2","nativeSrc":"7004:6:65","nodeType":"YulTypedName","src":"7004:6:65","type":""},{"name":"value1","nativeSrc":"7012:6:65","nodeType":"YulTypedName","src":"7012:6:65","type":""},{"name":"value0","nativeSrc":"7020:6:65","nodeType":"YulTypedName","src":"7020:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7031:4:65","nodeType":"YulTypedName","src":"7031:4:65","type":""}],"src":"6782:862:65"},{"body":{"nativeSrc":"7695:32:65","nodeType":"YulBlock","src":"7695:32:65","statements":[{"nativeSrc":"7705:16:65","nodeType":"YulAssignment","src":"7705:16:65","value":{"name":"value","nativeSrc":"7716:5:65","nodeType":"YulIdentifier","src":"7716:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"7705:7:65","nodeType":"YulIdentifier","src":"7705:7:65"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"7650:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7677:5:65","nodeType":"YulTypedName","src":"7677:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7687:7:65","nodeType":"YulTypedName","src":"7687:7:65","type":""}],"src":"7650:77:65"},{"body":{"nativeSrc":"7776:79:65","nodeType":"YulBlock","src":"7776:79:65","statements":[{"body":{"nativeSrc":"7833:16:65","nodeType":"YulBlock","src":"7833:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7842:1:65","nodeType":"YulLiteral","src":"7842:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7845:1:65","nodeType":"YulLiteral","src":"7845:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7835:6:65","nodeType":"YulIdentifier","src":"7835:6:65"},"nativeSrc":"7835:12:65","nodeType":"YulFunctionCall","src":"7835:12:65"},"nativeSrc":"7835:12:65","nodeType":"YulExpressionStatement","src":"7835:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7799:5:65","nodeType":"YulIdentifier","src":"7799:5:65"},{"arguments":[{"name":"value","nativeSrc":"7824:5:65","nodeType":"YulIdentifier","src":"7824:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"7806:17:65","nodeType":"YulIdentifier","src":"7806:17:65"},"nativeSrc":"7806:24:65","nodeType":"YulFunctionCall","src":"7806:24:65"}],"functionName":{"name":"eq","nativeSrc":"7796:2:65","nodeType":"YulIdentifier","src":"7796:2:65"},"nativeSrc":"7796:35:65","nodeType":"YulFunctionCall","src":"7796:35:65"}],"functionName":{"name":"iszero","nativeSrc":"7789:6:65","nodeType":"YulIdentifier","src":"7789:6:65"},"nativeSrc":"7789:43:65","nodeType":"YulFunctionCall","src":"7789:43:65"},"nativeSrc":"7786:63:65","nodeType":"YulIf","src":"7786:63:65"}]},"name":"validator_revert_t_bytes32","nativeSrc":"7733:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7769:5:65","nodeType":"YulTypedName","src":"7769:5:65","type":""}],"src":"7733:122:65"},{"body":{"nativeSrc":"7913:87:65","nodeType":"YulBlock","src":"7913:87:65","statements":[{"nativeSrc":"7923:29:65","nodeType":"YulAssignment","src":"7923:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"7945:6:65","nodeType":"YulIdentifier","src":"7945:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"7932:12:65","nodeType":"YulIdentifier","src":"7932:12:65"},"nativeSrc":"7932:20:65","nodeType":"YulFunctionCall","src":"7932:20:65"},"variableNames":[{"name":"value","nativeSrc":"7923:5:65","nodeType":"YulIdentifier","src":"7923:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7988:5:65","nodeType":"YulIdentifier","src":"7988:5:65"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"7961:26:65","nodeType":"YulIdentifier","src":"7961:26:65"},"nativeSrc":"7961:33:65","nodeType":"YulFunctionCall","src":"7961:33:65"},"nativeSrc":"7961:33:65","nodeType":"YulExpressionStatement","src":"7961:33:65"}]},"name":"abi_decode_t_bytes32","nativeSrc":"7861:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7891:6:65","nodeType":"YulTypedName","src":"7891:6:65","type":""},{"name":"end","nativeSrc":"7899:3:65","nodeType":"YulTypedName","src":"7899:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7907:5:65","nodeType":"YulTypedName","src":"7907:5:65","type":""}],"src":"7861:139:65"},{"body":{"nativeSrc":"8046:76:65","nodeType":"YulBlock","src":"8046:76:65","statements":[{"body":{"nativeSrc":"8100:16:65","nodeType":"YulBlock","src":"8100:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8109:1:65","nodeType":"YulLiteral","src":"8109:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"8112:1:65","nodeType":"YulLiteral","src":"8112:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8102:6:65","nodeType":"YulIdentifier","src":"8102:6:65"},"nativeSrc":"8102:12:65","nodeType":"YulFunctionCall","src":"8102:12:65"},"nativeSrc":"8102:12:65","nodeType":"YulExpressionStatement","src":"8102:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8069:5:65","nodeType":"YulIdentifier","src":"8069:5:65"},{"arguments":[{"name":"value","nativeSrc":"8091:5:65","nodeType":"YulIdentifier","src":"8091:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8076:14:65","nodeType":"YulIdentifier","src":"8076:14:65"},"nativeSrc":"8076:21:65","nodeType":"YulFunctionCall","src":"8076:21:65"}],"functionName":{"name":"eq","nativeSrc":"8066:2:65","nodeType":"YulIdentifier","src":"8066:2:65"},"nativeSrc":"8066:32:65","nodeType":"YulFunctionCall","src":"8066:32:65"}],"functionName":{"name":"iszero","nativeSrc":"8059:6:65","nodeType":"YulIdentifier","src":"8059:6:65"},"nativeSrc":"8059:40:65","nodeType":"YulFunctionCall","src":"8059:40:65"},"nativeSrc":"8056:60:65","nodeType":"YulIf","src":"8056:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"8006:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8039:5:65","nodeType":"YulTypedName","src":"8039:5:65","type":""}],"src":"8006:116:65"},{"body":{"nativeSrc":"8177:84:65","nodeType":"YulBlock","src":"8177:84:65","statements":[{"nativeSrc":"8187:29:65","nodeType":"YulAssignment","src":"8187:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"8209:6:65","nodeType":"YulIdentifier","src":"8209:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"8196:12:65","nodeType":"YulIdentifier","src":"8196:12:65"},"nativeSrc":"8196:20:65","nodeType":"YulFunctionCall","src":"8196:20:65"},"variableNames":[{"name":"value","nativeSrc":"8187:5:65","nodeType":"YulIdentifier","src":"8187:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8249:5:65","nodeType":"YulIdentifier","src":"8249:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8225:23:65","nodeType":"YulIdentifier","src":"8225:23:65"},"nativeSrc":"8225:30:65","nodeType":"YulFunctionCall","src":"8225:30:65"},"nativeSrc":"8225:30:65","nodeType":"YulExpressionStatement","src":"8225:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"8128:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8155:6:65","nodeType":"YulTypedName","src":"8155:6:65","type":""},{"name":"end","nativeSrc":"8163:3:65","nodeType":"YulTypedName","src":"8163:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8171:5:65","nodeType":"YulTypedName","src":"8171:5:65","type":""}],"src":"8128:133:65"},{"body":{"nativeSrc":"8416:952:65","nodeType":"YulBlock","src":"8416:952:65","statements":[{"body":{"nativeSrc":"8463:83:65","nodeType":"YulBlock","src":"8463:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8465:77:65","nodeType":"YulIdentifier","src":"8465:77:65"},"nativeSrc":"8465:79:65","nodeType":"YulFunctionCall","src":"8465:79:65"},"nativeSrc":"8465:79:65","nodeType":"YulExpressionStatement","src":"8465:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8437:7:65","nodeType":"YulIdentifier","src":"8437:7:65"},{"name":"headStart","nativeSrc":"8446:9:65","nodeType":"YulIdentifier","src":"8446:9:65"}],"functionName":{"name":"sub","nativeSrc":"8433:3:65","nodeType":"YulIdentifier","src":"8433:3:65"},"nativeSrc":"8433:23:65","nodeType":"YulFunctionCall","src":"8433:23:65"},{"kind":"number","nativeSrc":"8458:3:65","nodeType":"YulLiteral","src":"8458:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8429:3:65","nodeType":"YulIdentifier","src":"8429:3:65"},"nativeSrc":"8429:33:65","nodeType":"YulFunctionCall","src":"8429:33:65"},"nativeSrc":"8426:120:65","nodeType":"YulIf","src":"8426:120:65"},{"nativeSrc":"8556:116:65","nodeType":"YulBlock","src":"8556:116:65","statements":[{"nativeSrc":"8571:15:65","nodeType":"YulVariableDeclaration","src":"8571:15:65","value":{"kind":"number","nativeSrc":"8585:1:65","nodeType":"YulLiteral","src":"8585:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8575:6:65","nodeType":"YulTypedName","src":"8575:6:65","type":""}]},{"nativeSrc":"8600:62:65","nodeType":"YulAssignment","src":"8600:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8634:9:65","nodeType":"YulIdentifier","src":"8634:9:65"},{"name":"offset","nativeSrc":"8645:6:65","nodeType":"YulIdentifier","src":"8645:6:65"}],"functionName":{"name":"add","nativeSrc":"8630:3:65","nodeType":"YulIdentifier","src":"8630:3:65"},"nativeSrc":"8630:22:65","nodeType":"YulFunctionCall","src":"8630:22:65"},{"name":"dataEnd","nativeSrc":"8654:7:65","nodeType":"YulIdentifier","src":"8654:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"8610:19:65","nodeType":"YulIdentifier","src":"8610:19:65"},"nativeSrc":"8610:52:65","nodeType":"YulFunctionCall","src":"8610:52:65"},"variableNames":[{"name":"value0","nativeSrc":"8600:6:65","nodeType":"YulIdentifier","src":"8600:6:65"}]}]},{"nativeSrc":"8682:118:65","nodeType":"YulBlock","src":"8682:118:65","statements":[{"nativeSrc":"8697:16:65","nodeType":"YulVariableDeclaration","src":"8697:16:65","value":{"kind":"number","nativeSrc":"8711:2:65","nodeType":"YulLiteral","src":"8711:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8701:6:65","nodeType":"YulTypedName","src":"8701:6:65","type":""}]},{"nativeSrc":"8727:63:65","nodeType":"YulAssignment","src":"8727:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8762:9:65","nodeType":"YulIdentifier","src":"8762:9:65"},{"name":"offset","nativeSrc":"8773:6:65","nodeType":"YulIdentifier","src":"8773:6:65"}],"functionName":{"name":"add","nativeSrc":"8758:3:65","nodeType":"YulIdentifier","src":"8758:3:65"},"nativeSrc":"8758:22:65","nodeType":"YulFunctionCall","src":"8758:22:65"},{"name":"dataEnd","nativeSrc":"8782:7:65","nodeType":"YulIdentifier","src":"8782:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"8737:20:65","nodeType":"YulIdentifier","src":"8737:20:65"},"nativeSrc":"8737:53:65","nodeType":"YulFunctionCall","src":"8737:53:65"},"variableNames":[{"name":"value1","nativeSrc":"8727:6:65","nodeType":"YulIdentifier","src":"8727:6:65"}]}]},{"nativeSrc":"8810:118:65","nodeType":"YulBlock","src":"8810:118:65","statements":[{"nativeSrc":"8825:16:65","nodeType":"YulVariableDeclaration","src":"8825:16:65","value":{"kind":"number","nativeSrc":"8839:2:65","nodeType":"YulLiteral","src":"8839:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8829:6:65","nodeType":"YulTypedName","src":"8829:6:65","type":""}]},{"nativeSrc":"8855:63:65","nodeType":"YulAssignment","src":"8855:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8890:9:65","nodeType":"YulIdentifier","src":"8890:9:65"},{"name":"offset","nativeSrc":"8901:6:65","nodeType":"YulIdentifier","src":"8901:6:65"}],"functionName":{"name":"add","nativeSrc":"8886:3:65","nodeType":"YulIdentifier","src":"8886:3:65"},"nativeSrc":"8886:22:65","nodeType":"YulFunctionCall","src":"8886:22:65"},{"name":"dataEnd","nativeSrc":"8910:7:65","nodeType":"YulIdentifier","src":"8910:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8865:20:65","nodeType":"YulIdentifier","src":"8865:20:65"},"nativeSrc":"8865:53:65","nodeType":"YulFunctionCall","src":"8865:53:65"},"variableNames":[{"name":"value2","nativeSrc":"8855:6:65","nodeType":"YulIdentifier","src":"8855:6:65"}]}]},{"nativeSrc":"8938:115:65","nodeType":"YulBlock","src":"8938:115:65","statements":[{"nativeSrc":"8953:16:65","nodeType":"YulVariableDeclaration","src":"8953:16:65","value":{"kind":"number","nativeSrc":"8967:2:65","nodeType":"YulLiteral","src":"8967:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"8957:6:65","nodeType":"YulTypedName","src":"8957:6:65","type":""}]},{"nativeSrc":"8983:60:65","nodeType":"YulAssignment","src":"8983:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9015:9:65","nodeType":"YulIdentifier","src":"9015:9:65"},{"name":"offset","nativeSrc":"9026:6:65","nodeType":"YulIdentifier","src":"9026:6:65"}],"functionName":{"name":"add","nativeSrc":"9011:3:65","nodeType":"YulIdentifier","src":"9011:3:65"},"nativeSrc":"9011:22:65","nodeType":"YulFunctionCall","src":"9011:22:65"},{"name":"dataEnd","nativeSrc":"9035:7:65","nodeType":"YulIdentifier","src":"9035:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"8993:17:65","nodeType":"YulIdentifier","src":"8993:17:65"},"nativeSrc":"8993:50:65","nodeType":"YulFunctionCall","src":"8993:50:65"},"variableNames":[{"name":"value3","nativeSrc":"8983:6:65","nodeType":"YulIdentifier","src":"8983:6:65"}]}]},{"nativeSrc":"9063:298:65","nodeType":"YulBlock","src":"9063:298:65","statements":[{"nativeSrc":"9078:47:65","nodeType":"YulVariableDeclaration","src":"9078:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9109:9:65","nodeType":"YulIdentifier","src":"9109:9:65"},{"kind":"number","nativeSrc":"9120:3:65","nodeType":"YulLiteral","src":"9120:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9105:3:65","nodeType":"YulIdentifier","src":"9105:3:65"},"nativeSrc":"9105:19:65","nodeType":"YulFunctionCall","src":"9105:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"9092:12:65","nodeType":"YulIdentifier","src":"9092:12:65"},"nativeSrc":"9092:33:65","nodeType":"YulFunctionCall","src":"9092:33:65"},"variables":[{"name":"offset","nativeSrc":"9082:6:65","nodeType":"YulTypedName","src":"9082:6:65","type":""}]},{"body":{"nativeSrc":"9172:83:65","nodeType":"YulBlock","src":"9172:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9174:77:65","nodeType":"YulIdentifier","src":"9174:77:65"},"nativeSrc":"9174:79:65","nodeType":"YulFunctionCall","src":"9174:79:65"},"nativeSrc":"9174:79:65","nodeType":"YulExpressionStatement","src":"9174:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9144:6:65","nodeType":"YulIdentifier","src":"9144:6:65"},{"kind":"number","nativeSrc":"9152:18:65","nodeType":"YulLiteral","src":"9152:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9141:2:65","nodeType":"YulIdentifier","src":"9141:2:65"},"nativeSrc":"9141:30:65","nodeType":"YulFunctionCall","src":"9141:30:65"},"nativeSrc":"9138:117:65","nodeType":"YulIf","src":"9138:117:65"},{"nativeSrc":"9269:82:65","nodeType":"YulAssignment","src":"9269:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9323:9:65","nodeType":"YulIdentifier","src":"9323:9:65"},{"name":"offset","nativeSrc":"9334:6:65","nodeType":"YulIdentifier","src":"9334:6:65"}],"functionName":{"name":"add","nativeSrc":"9319:3:65","nodeType":"YulIdentifier","src":"9319:3:65"},"nativeSrc":"9319:22:65","nodeType":"YulFunctionCall","src":"9319:22:65"},{"name":"dataEnd","nativeSrc":"9343:7:65","nodeType":"YulIdentifier","src":"9343:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9287:31:65","nodeType":"YulIdentifier","src":"9287:31:65"},"nativeSrc":"9287:64:65","nodeType":"YulFunctionCall","src":"9287:64:65"},"variableNames":[{"name":"value4","nativeSrc":"9269:6:65","nodeType":"YulIdentifier","src":"9269:6:65"},{"name":"value5","nativeSrc":"9277:6:65","nodeType":"YulIdentifier","src":"9277:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr","nativeSrc":"8267:1101:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8346:9:65","nodeType":"YulTypedName","src":"8346:9:65","type":""},{"name":"dataEnd","nativeSrc":"8357:7:65","nodeType":"YulTypedName","src":"8357:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8369:6:65","nodeType":"YulTypedName","src":"8369:6:65","type":""},{"name":"value1","nativeSrc":"8377:6:65","nodeType":"YulTypedName","src":"8377:6:65","type":""},{"name":"value2","nativeSrc":"8385:6:65","nodeType":"YulTypedName","src":"8385:6:65","type":""},{"name":"value3","nativeSrc":"8393:6:65","nodeType":"YulTypedName","src":"8393:6:65","type":""},{"name":"value4","nativeSrc":"8401:6:65","nodeType":"YulTypedName","src":"8401:6:65","type":""},{"name":"value5","nativeSrc":"8409:6:65","nodeType":"YulTypedName","src":"8409:6:65","type":""}],"src":"8267:1101:65"},{"body":{"nativeSrc":"9500:206:65","nodeType":"YulBlock","src":"9500:206:65","statements":[{"nativeSrc":"9510:26:65","nodeType":"YulAssignment","src":"9510:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9522:9:65","nodeType":"YulIdentifier","src":"9522:9:65"},{"kind":"number","nativeSrc":"9533:2:65","nodeType":"YulLiteral","src":"9533:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9518:3:65","nodeType":"YulIdentifier","src":"9518:3:65"},"nativeSrc":"9518:18:65","nodeType":"YulFunctionCall","src":"9518:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9510:4:65","nodeType":"YulIdentifier","src":"9510:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9590:6:65","nodeType":"YulIdentifier","src":"9590:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9603:9:65","nodeType":"YulIdentifier","src":"9603:9:65"},{"kind":"number","nativeSrc":"9614:1:65","nodeType":"YulLiteral","src":"9614:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9599:3:65","nodeType":"YulIdentifier","src":"9599:3:65"},"nativeSrc":"9599:17:65","nodeType":"YulFunctionCall","src":"9599:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9546:43:65","nodeType":"YulIdentifier","src":"9546:43:65"},"nativeSrc":"9546:71:65","nodeType":"YulFunctionCall","src":"9546:71:65"},"nativeSrc":"9546:71:65","nodeType":"YulExpressionStatement","src":"9546:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9671:6:65","nodeType":"YulIdentifier","src":"9671:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9684:9:65","nodeType":"YulIdentifier","src":"9684:9:65"},{"kind":"number","nativeSrc":"9695:2:65","nodeType":"YulLiteral","src":"9695:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9680:3:65","nodeType":"YulIdentifier","src":"9680:3:65"},"nativeSrc":"9680:18:65","nodeType":"YulFunctionCall","src":"9680:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9627:43:65","nodeType":"YulIdentifier","src":"9627:43:65"},"nativeSrc":"9627:72:65","nodeType":"YulFunctionCall","src":"9627:72:65"},"nativeSrc":"9627:72:65","nodeType":"YulExpressionStatement","src":"9627:72:65"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"9374:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9464:9:65","nodeType":"YulTypedName","src":"9464:9:65","type":""},{"name":"value1","nativeSrc":"9476:6:65","nodeType":"YulTypedName","src":"9476:6:65","type":""},{"name":"value0","nativeSrc":"9484:6:65","nodeType":"YulTypedName","src":"9484:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9495:4:65","nodeType":"YulTypedName","src":"9495:4:65","type":""}],"src":"9374:332:65"},{"body":{"nativeSrc":"9810:124:65","nodeType":"YulBlock","src":"9810:124:65","statements":[{"nativeSrc":"9820:26:65","nodeType":"YulAssignment","src":"9820:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9832:9:65","nodeType":"YulIdentifier","src":"9832:9:65"},{"kind":"number","nativeSrc":"9843:2:65","nodeType":"YulLiteral","src":"9843:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9828:3:65","nodeType":"YulIdentifier","src":"9828:3:65"},"nativeSrc":"9828:18:65","nodeType":"YulFunctionCall","src":"9828:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9820:4:65","nodeType":"YulIdentifier","src":"9820:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9900:6:65","nodeType":"YulIdentifier","src":"9900:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"9913:9:65","nodeType":"YulIdentifier","src":"9913:9:65"},{"kind":"number","nativeSrc":"9924:1:65","nodeType":"YulLiteral","src":"9924:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9909:3:65","nodeType":"YulIdentifier","src":"9909:3:65"},"nativeSrc":"9909:17:65","nodeType":"YulFunctionCall","src":"9909:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9856:43:65","nodeType":"YulIdentifier","src":"9856:43:65"},"nativeSrc":"9856:71:65","nodeType":"YulFunctionCall","src":"9856:71:65"},"nativeSrc":"9856:71:65","nodeType":"YulExpressionStatement","src":"9856:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"9712:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9782:9:65","nodeType":"YulTypedName","src":"9782:9:65","type":""},{"name":"value0","nativeSrc":"9794:6:65","nodeType":"YulTypedName","src":"9794:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9805:4:65","nodeType":"YulTypedName","src":"9805:4:65","type":""}],"src":"9712:222:65"},{"body":{"nativeSrc":"10041:569:65","nodeType":"YulBlock","src":"10041:569:65","statements":[{"body":{"nativeSrc":"10087:83:65","nodeType":"YulBlock","src":"10087:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10089:77:65","nodeType":"YulIdentifier","src":"10089:77:65"},"nativeSrc":"10089:79:65","nodeType":"YulFunctionCall","src":"10089:79:65"},"nativeSrc":"10089:79:65","nodeType":"YulExpressionStatement","src":"10089:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10062:7:65","nodeType":"YulIdentifier","src":"10062:7:65"},{"name":"headStart","nativeSrc":"10071:9:65","nodeType":"YulIdentifier","src":"10071:9:65"}],"functionName":{"name":"sub","nativeSrc":"10058:3:65","nodeType":"YulIdentifier","src":"10058:3:65"},"nativeSrc":"10058:23:65","nodeType":"YulFunctionCall","src":"10058:23:65"},{"kind":"number","nativeSrc":"10083:2:65","nodeType":"YulLiteral","src":"10083:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10054:3:65","nodeType":"YulIdentifier","src":"10054:3:65"},"nativeSrc":"10054:32:65","nodeType":"YulFunctionCall","src":"10054:32:65"},"nativeSrc":"10051:119:65","nodeType":"YulIf","src":"10051:119:65"},{"nativeSrc":"10180:116:65","nodeType":"YulBlock","src":"10180:116:65","statements":[{"nativeSrc":"10195:15:65","nodeType":"YulVariableDeclaration","src":"10195:15:65","value":{"kind":"number","nativeSrc":"10209:1:65","nodeType":"YulLiteral","src":"10209:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10199:6:65","nodeType":"YulTypedName","src":"10199:6:65","type":""}]},{"nativeSrc":"10224:62:65","nodeType":"YulAssignment","src":"10224:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10258:9:65","nodeType":"YulIdentifier","src":"10258:9:65"},{"name":"offset","nativeSrc":"10269:6:65","nodeType":"YulIdentifier","src":"10269:6:65"}],"functionName":{"name":"add","nativeSrc":"10254:3:65","nodeType":"YulIdentifier","src":"10254:3:65"},"nativeSrc":"10254:22:65","nodeType":"YulFunctionCall","src":"10254:22:65"},{"name":"dataEnd","nativeSrc":"10278:7:65","nodeType":"YulIdentifier","src":"10278:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"10234:19:65","nodeType":"YulIdentifier","src":"10234:19:65"},"nativeSrc":"10234:52:65","nodeType":"YulFunctionCall","src":"10234:52:65"},"variableNames":[{"name":"value0","nativeSrc":"10224:6:65","nodeType":"YulIdentifier","src":"10224:6:65"}]}]},{"nativeSrc":"10306:297:65","nodeType":"YulBlock","src":"10306:297:65","statements":[{"nativeSrc":"10321:46:65","nodeType":"YulVariableDeclaration","src":"10321:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10352:9:65","nodeType":"YulIdentifier","src":"10352:9:65"},{"kind":"number","nativeSrc":"10363:2:65","nodeType":"YulLiteral","src":"10363:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10348:3:65","nodeType":"YulIdentifier","src":"10348:3:65"},"nativeSrc":"10348:18:65","nodeType":"YulFunctionCall","src":"10348:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"10335:12:65","nodeType":"YulIdentifier","src":"10335:12:65"},"nativeSrc":"10335:32:65","nodeType":"YulFunctionCall","src":"10335:32:65"},"variables":[{"name":"offset","nativeSrc":"10325:6:65","nodeType":"YulTypedName","src":"10325:6:65","type":""}]},{"body":{"nativeSrc":"10414:83:65","nodeType":"YulBlock","src":"10414:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10416:77:65","nodeType":"YulIdentifier","src":"10416:77:65"},"nativeSrc":"10416:79:65","nodeType":"YulFunctionCall","src":"10416:79:65"},"nativeSrc":"10416:79:65","nodeType":"YulExpressionStatement","src":"10416:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10386:6:65","nodeType":"YulIdentifier","src":"10386:6:65"},{"kind":"number","nativeSrc":"10394:18:65","nodeType":"YulLiteral","src":"10394:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10383:2:65","nodeType":"YulIdentifier","src":"10383:2:65"},"nativeSrc":"10383:30:65","nodeType":"YulFunctionCall","src":"10383:30:65"},"nativeSrc":"10380:117:65","nodeType":"YulIf","src":"10380:117:65"},{"nativeSrc":"10511:82:65","nodeType":"YulAssignment","src":"10511:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10565:9:65","nodeType":"YulIdentifier","src":"10565:9:65"},{"name":"offset","nativeSrc":"10576:6:65","nodeType":"YulIdentifier","src":"10576:6:65"}],"functionName":{"name":"add","nativeSrc":"10561:3:65","nodeType":"YulIdentifier","src":"10561:3:65"},"nativeSrc":"10561:22:65","nodeType":"YulFunctionCall","src":"10561:22:65"},{"name":"dataEnd","nativeSrc":"10585:7:65","nodeType":"YulIdentifier","src":"10585:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10529:31:65","nodeType":"YulIdentifier","src":"10529:31:65"},"nativeSrc":"10529:64:65","nodeType":"YulFunctionCall","src":"10529:64:65"},"variableNames":[{"name":"value1","nativeSrc":"10511:6:65","nodeType":"YulIdentifier","src":"10511:6:65"},{"name":"value2","nativeSrc":"10519:6:65","nodeType":"YulIdentifier","src":"10519:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nativeSrc":"9940:670:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9995:9:65","nodeType":"YulTypedName","src":"9995:9:65","type":""},{"name":"dataEnd","nativeSrc":"10006:7:65","nodeType":"YulTypedName","src":"10006:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10018:6:65","nodeType":"YulTypedName","src":"10018:6:65","type":""},{"name":"value1","nativeSrc":"10026:6:65","nodeType":"YulTypedName","src":"10026:6:65","type":""},{"name":"value2","nativeSrc":"10034:6:65","nodeType":"YulTypedName","src":"10034:6:65","type":""}],"src":"9940:670:65"},{"body":{"nativeSrc":"10699:391:65","nodeType":"YulBlock","src":"10699:391:65","statements":[{"body":{"nativeSrc":"10745:83:65","nodeType":"YulBlock","src":"10745:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10747:77:65","nodeType":"YulIdentifier","src":"10747:77:65"},"nativeSrc":"10747:79:65","nodeType":"YulFunctionCall","src":"10747:79:65"},"nativeSrc":"10747:79:65","nodeType":"YulExpressionStatement","src":"10747:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10720:7:65","nodeType":"YulIdentifier","src":"10720:7:65"},{"name":"headStart","nativeSrc":"10729:9:65","nodeType":"YulIdentifier","src":"10729:9:65"}],"functionName":{"name":"sub","nativeSrc":"10716:3:65","nodeType":"YulIdentifier","src":"10716:3:65"},"nativeSrc":"10716:23:65","nodeType":"YulFunctionCall","src":"10716:23:65"},{"kind":"number","nativeSrc":"10741:2:65","nodeType":"YulLiteral","src":"10741:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"10712:3:65","nodeType":"YulIdentifier","src":"10712:3:65"},"nativeSrc":"10712:32:65","nodeType":"YulFunctionCall","src":"10712:32:65"},"nativeSrc":"10709:119:65","nodeType":"YulIf","src":"10709:119:65"},{"nativeSrc":"10838:117:65","nodeType":"YulBlock","src":"10838:117:65","statements":[{"nativeSrc":"10853:15:65","nodeType":"YulVariableDeclaration","src":"10853:15:65","value":{"kind":"number","nativeSrc":"10867:1:65","nodeType":"YulLiteral","src":"10867:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10857:6:65","nodeType":"YulTypedName","src":"10857:6:65","type":""}]},{"nativeSrc":"10882:63:65","nodeType":"YulAssignment","src":"10882:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10917:9:65","nodeType":"YulIdentifier","src":"10917:9:65"},{"name":"offset","nativeSrc":"10928:6:65","nodeType":"YulIdentifier","src":"10928:6:65"}],"functionName":{"name":"add","nativeSrc":"10913:3:65","nodeType":"YulIdentifier","src":"10913:3:65"},"nativeSrc":"10913:22:65","nodeType":"YulFunctionCall","src":"10913:22:65"},{"name":"dataEnd","nativeSrc":"10937:7:65","nodeType":"YulIdentifier","src":"10937:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10892:20:65","nodeType":"YulIdentifier","src":"10892:20:65"},"nativeSrc":"10892:53:65","nodeType":"YulFunctionCall","src":"10892:53:65"},"variableNames":[{"name":"value0","nativeSrc":"10882:6:65","nodeType":"YulIdentifier","src":"10882:6:65"}]}]},{"nativeSrc":"10965:118:65","nodeType":"YulBlock","src":"10965:118:65","statements":[{"nativeSrc":"10980:16:65","nodeType":"YulVariableDeclaration","src":"10980:16:65","value":{"kind":"number","nativeSrc":"10994:2:65","nodeType":"YulLiteral","src":"10994:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10984:6:65","nodeType":"YulTypedName","src":"10984:6:65","type":""}]},{"nativeSrc":"11010:63:65","nodeType":"YulAssignment","src":"11010:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11045:9:65","nodeType":"YulIdentifier","src":"11045:9:65"},{"name":"offset","nativeSrc":"11056:6:65","nodeType":"YulIdentifier","src":"11056:6:65"}],"functionName":{"name":"add","nativeSrc":"11041:3:65","nodeType":"YulIdentifier","src":"11041:3:65"},"nativeSrc":"11041:22:65","nodeType":"YulFunctionCall","src":"11041:22:65"},{"name":"dataEnd","nativeSrc":"11065:7:65","nodeType":"YulIdentifier","src":"11065:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11020:20:65","nodeType":"YulIdentifier","src":"11020:20:65"},"nativeSrc":"11020:53:65","nodeType":"YulFunctionCall","src":"11020:53:65"},"variableNames":[{"name":"value1","nativeSrc":"11010:6:65","nodeType":"YulIdentifier","src":"11010:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"10616:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10661:9:65","nodeType":"YulTypedName","src":"10661:9:65","type":""},{"name":"dataEnd","nativeSrc":"10672:7:65","nodeType":"YulTypedName","src":"10672:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10684:6:65","nodeType":"YulTypedName","src":"10684:6:65","type":""},{"name":"value1","nativeSrc":"10692:6:65","nodeType":"YulTypedName","src":"10692:6:65","type":""}],"src":"10616:474:65"},{"body":{"nativeSrc":"11139:43:65","nodeType":"YulBlock","src":"11139:43:65","statements":[{"nativeSrc":"11149:27:65","nodeType":"YulAssignment","src":"11149:27:65","value":{"arguments":[{"name":"value","nativeSrc":"11164:5:65","nodeType":"YulIdentifier","src":"11164:5:65"},{"kind":"number","nativeSrc":"11171:4:65","nodeType":"YulLiteral","src":"11171:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"11160:3:65","nodeType":"YulIdentifier","src":"11160:3:65"},"nativeSrc":"11160:16:65","nodeType":"YulFunctionCall","src":"11160:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"11149:7:65","nodeType":"YulIdentifier","src":"11149:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"11096:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11121:5:65","nodeType":"YulTypedName","src":"11121:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11131:7:65","nodeType":"YulTypedName","src":"11131:7:65","type":""}],"src":"11096:86:65"},{"body":{"nativeSrc":"11249:51:65","nodeType":"YulBlock","src":"11249:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11266:3:65","nodeType":"YulIdentifier","src":"11266:3:65"},{"arguments":[{"name":"value","nativeSrc":"11287:5:65","nodeType":"YulIdentifier","src":"11287:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"11271:15:65","nodeType":"YulIdentifier","src":"11271:15:65"},"nativeSrc":"11271:22:65","nodeType":"YulFunctionCall","src":"11271:22:65"}],"functionName":{"name":"mstore","nativeSrc":"11259:6:65","nodeType":"YulIdentifier","src":"11259:6:65"},"nativeSrc":"11259:35:65","nodeType":"YulFunctionCall","src":"11259:35:65"},"nativeSrc":"11259:35:65","nodeType":"YulExpressionStatement","src":"11259:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"11188:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11237:5:65","nodeType":"YulTypedName","src":"11237:5:65","type":""},{"name":"pos","nativeSrc":"11244:3:65","nodeType":"YulTypedName","src":"11244:3:65","type":""}],"src":"11188:112:65"},{"body":{"nativeSrc":"11400:120:65","nodeType":"YulBlock","src":"11400:120:65","statements":[{"nativeSrc":"11410:26:65","nodeType":"YulAssignment","src":"11410:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11422:9:65","nodeType":"YulIdentifier","src":"11422:9:65"},{"kind":"number","nativeSrc":"11433:2:65","nodeType":"YulLiteral","src":"11433:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11418:3:65","nodeType":"YulIdentifier","src":"11418:3:65"},"nativeSrc":"11418:18:65","nodeType":"YulFunctionCall","src":"11418:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11410:4:65","nodeType":"YulIdentifier","src":"11410:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11486:6:65","nodeType":"YulIdentifier","src":"11486:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"11499:9:65","nodeType":"YulIdentifier","src":"11499:9:65"},{"kind":"number","nativeSrc":"11510:1:65","nodeType":"YulLiteral","src":"11510:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11495:3:65","nodeType":"YulIdentifier","src":"11495:3:65"},"nativeSrc":"11495:17:65","nodeType":"YulFunctionCall","src":"11495:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"11446:39:65","nodeType":"YulIdentifier","src":"11446:39:65"},"nativeSrc":"11446:67:65","nodeType":"YulFunctionCall","src":"11446:67:65"},"nativeSrc":"11446:67:65","nodeType":"YulExpressionStatement","src":"11446:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"11306:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11372:9:65","nodeType":"YulTypedName","src":"11372:9:65","type":""},{"name":"value0","nativeSrc":"11384:6:65","nodeType":"YulTypedName","src":"11384:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11395:4:65","nodeType":"YulTypedName","src":"11395:4:65","type":""}],"src":"11306:214:65"},{"body":{"nativeSrc":"11589:260:65","nodeType":"YulBlock","src":"11589:260:65","statements":[{"body":{"nativeSrc":"11635:83:65","nodeType":"YulBlock","src":"11635:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11637:77:65","nodeType":"YulIdentifier","src":"11637:77:65"},"nativeSrc":"11637:79:65","nodeType":"YulFunctionCall","src":"11637:79:65"},"nativeSrc":"11637:79:65","nodeType":"YulExpressionStatement","src":"11637:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11610:7:65","nodeType":"YulIdentifier","src":"11610:7:65"},{"name":"headStart","nativeSrc":"11619:9:65","nodeType":"YulIdentifier","src":"11619:9:65"}],"functionName":{"name":"sub","nativeSrc":"11606:3:65","nodeType":"YulIdentifier","src":"11606:3:65"},"nativeSrc":"11606:23:65","nodeType":"YulFunctionCall","src":"11606:23:65"},{"kind":"number","nativeSrc":"11631:2:65","nodeType":"YulLiteral","src":"11631:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11602:3:65","nodeType":"YulIdentifier","src":"11602:3:65"},"nativeSrc":"11602:32:65","nodeType":"YulFunctionCall","src":"11602:32:65"},"nativeSrc":"11599:119:65","nodeType":"YulIf","src":"11599:119:65"},{"nativeSrc":"11728:114:65","nodeType":"YulBlock","src":"11728:114:65","statements":[{"nativeSrc":"11743:15:65","nodeType":"YulVariableDeclaration","src":"11743:15:65","value":{"kind":"number","nativeSrc":"11757:1:65","nodeType":"YulLiteral","src":"11757:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11747:6:65","nodeType":"YulTypedName","src":"11747:6:65","type":""}]},{"nativeSrc":"11772:60:65","nodeType":"YulAssignment","src":"11772:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11804:9:65","nodeType":"YulIdentifier","src":"11804:9:65"},{"name":"offset","nativeSrc":"11815:6:65","nodeType":"YulIdentifier","src":"11815:6:65"}],"functionName":{"name":"add","nativeSrc":"11800:3:65","nodeType":"YulIdentifier","src":"11800:3:65"},"nativeSrc":"11800:22:65","nodeType":"YulFunctionCall","src":"11800:22:65"},{"name":"dataEnd","nativeSrc":"11824:7:65","nodeType":"YulIdentifier","src":"11824:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"11782:17:65","nodeType":"YulIdentifier","src":"11782:17:65"},"nativeSrc":"11782:50:65","nodeType":"YulFunctionCall","src":"11782:50:65"},"variableNames":[{"name":"value0","nativeSrc":"11772:6:65","nodeType":"YulIdentifier","src":"11772:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"11526:323:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11559:9:65","nodeType":"YulTypedName","src":"11559:9:65","type":""},{"name":"dataEnd","nativeSrc":"11570:7:65","nodeType":"YulTypedName","src":"11570:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11582:6:65","nodeType":"YulTypedName","src":"11582:6:65","type":""}],"src":"11526:323:65"},{"body":{"nativeSrc":"11935:388:65","nodeType":"YulBlock","src":"11935:388:65","statements":[{"body":{"nativeSrc":"11981:83:65","nodeType":"YulBlock","src":"11981:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11983:77:65","nodeType":"YulIdentifier","src":"11983:77:65"},"nativeSrc":"11983:79:65","nodeType":"YulFunctionCall","src":"11983:79:65"},"nativeSrc":"11983:79:65","nodeType":"YulExpressionStatement","src":"11983:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11956:7:65","nodeType":"YulIdentifier","src":"11956:7:65"},{"name":"headStart","nativeSrc":"11965:9:65","nodeType":"YulIdentifier","src":"11965:9:65"}],"functionName":{"name":"sub","nativeSrc":"11952:3:65","nodeType":"YulIdentifier","src":"11952:3:65"},"nativeSrc":"11952:23:65","nodeType":"YulFunctionCall","src":"11952:23:65"},{"kind":"number","nativeSrc":"11977:2:65","nodeType":"YulLiteral","src":"11977:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11948:3:65","nodeType":"YulIdentifier","src":"11948:3:65"},"nativeSrc":"11948:32:65","nodeType":"YulFunctionCall","src":"11948:32:65"},"nativeSrc":"11945:119:65","nodeType":"YulIf","src":"11945:119:65"},{"nativeSrc":"12074:117:65","nodeType":"YulBlock","src":"12074:117:65","statements":[{"nativeSrc":"12089:15:65","nodeType":"YulVariableDeclaration","src":"12089:15:65","value":{"kind":"number","nativeSrc":"12103:1:65","nodeType":"YulLiteral","src":"12103:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12093:6:65","nodeType":"YulTypedName","src":"12093:6:65","type":""}]},{"nativeSrc":"12118:63:65","nodeType":"YulAssignment","src":"12118:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12153:9:65","nodeType":"YulIdentifier","src":"12153:9:65"},{"name":"offset","nativeSrc":"12164:6:65","nodeType":"YulIdentifier","src":"12164:6:65"}],"functionName":{"name":"add","nativeSrc":"12149:3:65","nodeType":"YulIdentifier","src":"12149:3:65"},"nativeSrc":"12149:22:65","nodeType":"YulFunctionCall","src":"12149:22:65"},{"name":"dataEnd","nativeSrc":"12173:7:65","nodeType":"YulIdentifier","src":"12173:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12128:20:65","nodeType":"YulIdentifier","src":"12128:20:65"},"nativeSrc":"12128:53:65","nodeType":"YulFunctionCall","src":"12128:53:65"},"variableNames":[{"name":"value0","nativeSrc":"12118:6:65","nodeType":"YulIdentifier","src":"12118:6:65"}]}]},{"nativeSrc":"12201:115:65","nodeType":"YulBlock","src":"12201:115:65","statements":[{"nativeSrc":"12216:16:65","nodeType":"YulVariableDeclaration","src":"12216:16:65","value":{"kind":"number","nativeSrc":"12230:2:65","nodeType":"YulLiteral","src":"12230:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12220:6:65","nodeType":"YulTypedName","src":"12220:6:65","type":""}]},{"nativeSrc":"12246:60:65","nodeType":"YulAssignment","src":"12246:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12278:9:65","nodeType":"YulIdentifier","src":"12278:9:65"},{"name":"offset","nativeSrc":"12289:6:65","nodeType":"YulIdentifier","src":"12289:6:65"}],"functionName":{"name":"add","nativeSrc":"12274:3:65","nodeType":"YulIdentifier","src":"12274:3:65"},"nativeSrc":"12274:22:65","nodeType":"YulFunctionCall","src":"12274:22:65"},{"name":"dataEnd","nativeSrc":"12298:7:65","nodeType":"YulIdentifier","src":"12298:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"12256:17:65","nodeType":"YulIdentifier","src":"12256:17:65"},"nativeSrc":"12256:50:65","nodeType":"YulFunctionCall","src":"12256:50:65"},"variableNames":[{"name":"value1","nativeSrc":"12246:6:65","nodeType":"YulIdentifier","src":"12246:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"11855:468:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11897:9:65","nodeType":"YulTypedName","src":"11897:9:65","type":""},{"name":"dataEnd","nativeSrc":"11908:7:65","nodeType":"YulTypedName","src":"11908:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11920:6:65","nodeType":"YulTypedName","src":"11920:6:65","type":""},{"name":"value1","nativeSrc":"11928:6:65","nodeType":"YulTypedName","src":"11928:6:65","type":""}],"src":"11855:468:65"},{"body":{"nativeSrc":"12418:28:65","nodeType":"YulBlock","src":"12418:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12435:1:65","nodeType":"YulLiteral","src":"12435:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12438:1:65","nodeType":"YulLiteral","src":"12438:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12428:6:65","nodeType":"YulIdentifier","src":"12428:6:65"},"nativeSrc":"12428:12:65","nodeType":"YulFunctionCall","src":"12428:12:65"},"nativeSrc":"12428:12:65","nodeType":"YulExpressionStatement","src":"12428:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"12329:117:65","nodeType":"YulFunctionDefinition","src":"12329:117:65"},{"body":{"nativeSrc":"12500:54:65","nodeType":"YulBlock","src":"12500:54:65","statements":[{"nativeSrc":"12510:38:65","nodeType":"YulAssignment","src":"12510:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12528:5:65","nodeType":"YulIdentifier","src":"12528:5:65"},{"kind":"number","nativeSrc":"12535:2:65","nodeType":"YulLiteral","src":"12535:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12524:3:65","nodeType":"YulIdentifier","src":"12524:3:65"},"nativeSrc":"12524:14:65","nodeType":"YulFunctionCall","src":"12524:14:65"},{"arguments":[{"kind":"number","nativeSrc":"12544:2:65","nodeType":"YulLiteral","src":"12544:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"12540:3:65","nodeType":"YulIdentifier","src":"12540:3:65"},"nativeSrc":"12540:7:65","nodeType":"YulFunctionCall","src":"12540:7:65"}],"functionName":{"name":"and","nativeSrc":"12520:3:65","nodeType":"YulIdentifier","src":"12520:3:65"},"nativeSrc":"12520:28:65","nodeType":"YulFunctionCall","src":"12520:28:65"},"variableNames":[{"name":"result","nativeSrc":"12510:6:65","nodeType":"YulIdentifier","src":"12510:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"12452:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12483:5:65","nodeType":"YulTypedName","src":"12483:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12493:6:65","nodeType":"YulTypedName","src":"12493:6:65","type":""}],"src":"12452:102:65"},{"body":{"nativeSrc":"12588:152:65","nodeType":"YulBlock","src":"12588:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12605:1:65","nodeType":"YulLiteral","src":"12605:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12608:77:65","nodeType":"YulLiteral","src":"12608:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12598:6:65","nodeType":"YulIdentifier","src":"12598:6:65"},"nativeSrc":"12598:88:65","nodeType":"YulFunctionCall","src":"12598:88:65"},"nativeSrc":"12598:88:65","nodeType":"YulExpressionStatement","src":"12598:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12702:1:65","nodeType":"YulLiteral","src":"12702:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"12705:4:65","nodeType":"YulLiteral","src":"12705:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"12695:6:65","nodeType":"YulIdentifier","src":"12695:6:65"},"nativeSrc":"12695:15:65","nodeType":"YulFunctionCall","src":"12695:15:65"},"nativeSrc":"12695:15:65","nodeType":"YulExpressionStatement","src":"12695:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12726:1:65","nodeType":"YulLiteral","src":"12726:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"12729:4:65","nodeType":"YulLiteral","src":"12729:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12719:6:65","nodeType":"YulIdentifier","src":"12719:6:65"},"nativeSrc":"12719:15:65","nodeType":"YulFunctionCall","src":"12719:15:65"},"nativeSrc":"12719:15:65","nodeType":"YulExpressionStatement","src":"12719:15:65"}]},"name":"panic_error_0x41","nativeSrc":"12560:180:65","nodeType":"YulFunctionDefinition","src":"12560:180:65"},{"body":{"nativeSrc":"12789:238:65","nodeType":"YulBlock","src":"12789:238:65","statements":[{"nativeSrc":"12799:58:65","nodeType":"YulVariableDeclaration","src":"12799:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"12821:6:65","nodeType":"YulIdentifier","src":"12821:6:65"},{"arguments":[{"name":"size","nativeSrc":"12851:4:65","nodeType":"YulIdentifier","src":"12851:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12829:21:65","nodeType":"YulIdentifier","src":"12829:21:65"},"nativeSrc":"12829:27:65","nodeType":"YulFunctionCall","src":"12829:27:65"}],"functionName":{"name":"add","nativeSrc":"12817:3:65","nodeType":"YulIdentifier","src":"12817:3:65"},"nativeSrc":"12817:40:65","nodeType":"YulFunctionCall","src":"12817:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"12803:10:65","nodeType":"YulTypedName","src":"12803:10:65","type":""}]},{"body":{"nativeSrc":"12968:22:65","nodeType":"YulBlock","src":"12968:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12970:16:65","nodeType":"YulIdentifier","src":"12970:16:65"},"nativeSrc":"12970:18:65","nodeType":"YulFunctionCall","src":"12970:18:65"},"nativeSrc":"12970:18:65","nodeType":"YulExpressionStatement","src":"12970:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"12911:10:65","nodeType":"YulIdentifier","src":"12911:10:65"},{"kind":"number","nativeSrc":"12923:18:65","nodeType":"YulLiteral","src":"12923:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12908:2:65","nodeType":"YulIdentifier","src":"12908:2:65"},"nativeSrc":"12908:34:65","nodeType":"YulFunctionCall","src":"12908:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"12947:10:65","nodeType":"YulIdentifier","src":"12947:10:65"},{"name":"memPtr","nativeSrc":"12959:6:65","nodeType":"YulIdentifier","src":"12959:6:65"}],"functionName":{"name":"lt","nativeSrc":"12944:2:65","nodeType":"YulIdentifier","src":"12944:2:65"},"nativeSrc":"12944:22:65","nodeType":"YulFunctionCall","src":"12944:22:65"}],"functionName":{"name":"or","nativeSrc":"12905:2:65","nodeType":"YulIdentifier","src":"12905:2:65"},"nativeSrc":"12905:62:65","nodeType":"YulFunctionCall","src":"12905:62:65"},"nativeSrc":"12902:88:65","nodeType":"YulIf","src":"12902:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13006:2:65","nodeType":"YulLiteral","src":"13006:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"13010:10:65","nodeType":"YulIdentifier","src":"13010:10:65"}],"functionName":{"name":"mstore","nativeSrc":"12999:6:65","nodeType":"YulIdentifier","src":"12999:6:65"},"nativeSrc":"12999:22:65","nodeType":"YulFunctionCall","src":"12999:22:65"},"nativeSrc":"12999:22:65","nodeType":"YulExpressionStatement","src":"12999:22:65"}]},"name":"finalize_allocation","nativeSrc":"12746:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12775:6:65","nodeType":"YulTypedName","src":"12775:6:65","type":""},{"name":"size","nativeSrc":"12783:4:65","nodeType":"YulTypedName","src":"12783:4:65","type":""}],"src":"12746:281:65"},{"body":{"nativeSrc":"13074:88:65","nodeType":"YulBlock","src":"13074:88:65","statements":[{"nativeSrc":"13084:30:65","nodeType":"YulAssignment","src":"13084:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"13094:18:65","nodeType":"YulIdentifier","src":"13094:18:65"},"nativeSrc":"13094:20:65","nodeType":"YulFunctionCall","src":"13094:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"13084:6:65","nodeType":"YulIdentifier","src":"13084:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"13143:6:65","nodeType":"YulIdentifier","src":"13143:6:65"},{"name":"size","nativeSrc":"13151:4:65","nodeType":"YulIdentifier","src":"13151:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"13123:19:65","nodeType":"YulIdentifier","src":"13123:19:65"},"nativeSrc":"13123:33:65","nodeType":"YulFunctionCall","src":"13123:33:65"},"nativeSrc":"13123:33:65","nodeType":"YulExpressionStatement","src":"13123:33:65"}]},"name":"allocate_memory","nativeSrc":"13033:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"13058:4:65","nodeType":"YulTypedName","src":"13058:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"13067:6:65","nodeType":"YulTypedName","src":"13067:6:65","type":""}],"src":"13033:129:65"},{"body":{"nativeSrc":"13234:241:65","nodeType":"YulBlock","src":"13234:241:65","statements":[{"body":{"nativeSrc":"13339:22:65","nodeType":"YulBlock","src":"13339:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13341:16:65","nodeType":"YulIdentifier","src":"13341:16:65"},"nativeSrc":"13341:18:65","nodeType":"YulFunctionCall","src":"13341:18:65"},"nativeSrc":"13341:18:65","nodeType":"YulExpressionStatement","src":"13341:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13311:6:65","nodeType":"YulIdentifier","src":"13311:6:65"},{"kind":"number","nativeSrc":"13319:18:65","nodeType":"YulLiteral","src":"13319:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13308:2:65","nodeType":"YulIdentifier","src":"13308:2:65"},"nativeSrc":"13308:30:65","nodeType":"YulFunctionCall","src":"13308:30:65"},"nativeSrc":"13305:56:65","nodeType":"YulIf","src":"13305:56:65"},{"nativeSrc":"13371:37:65","nodeType":"YulAssignment","src":"13371:37:65","value":{"arguments":[{"name":"length","nativeSrc":"13401:6:65","nodeType":"YulIdentifier","src":"13401:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13379:21:65","nodeType":"YulIdentifier","src":"13379:21:65"},"nativeSrc":"13379:29:65","nodeType":"YulFunctionCall","src":"13379:29:65"},"variableNames":[{"name":"size","nativeSrc":"13371:4:65","nodeType":"YulIdentifier","src":"13371:4:65"}]},{"nativeSrc":"13445:23:65","nodeType":"YulAssignment","src":"13445:23:65","value":{"arguments":[{"name":"size","nativeSrc":"13457:4:65","nodeType":"YulIdentifier","src":"13457:4:65"},{"kind":"number","nativeSrc":"13463:4:65","nodeType":"YulLiteral","src":"13463:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13453:3:65","nodeType":"YulIdentifier","src":"13453:3:65"},"nativeSrc":"13453:15:65","nodeType":"YulFunctionCall","src":"13453:15:65"},"variableNames":[{"name":"size","nativeSrc":"13445:4:65","nodeType":"YulIdentifier","src":"13445:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13168:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"13218:6:65","nodeType":"YulTypedName","src":"13218:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"13229:4:65","nodeType":"YulTypedName","src":"13229:4:65","type":""}],"src":"13168:307:65"},{"body":{"nativeSrc":"13545:84:65","nodeType":"YulBlock","src":"13545:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13569:3:65","nodeType":"YulIdentifier","src":"13569:3:65"},{"name":"src","nativeSrc":"13574:3:65","nodeType":"YulIdentifier","src":"13574:3:65"},{"name":"length","nativeSrc":"13579:6:65","nodeType":"YulIdentifier","src":"13579:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"13556:12:65","nodeType":"YulIdentifier","src":"13556:12:65"},"nativeSrc":"13556:30:65","nodeType":"YulFunctionCall","src":"13556:30:65"},"nativeSrc":"13556:30:65","nodeType":"YulExpressionStatement","src":"13556:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13606:3:65","nodeType":"YulIdentifier","src":"13606:3:65"},{"name":"length","nativeSrc":"13611:6:65","nodeType":"YulIdentifier","src":"13611:6:65"}],"functionName":{"name":"add","nativeSrc":"13602:3:65","nodeType":"YulIdentifier","src":"13602:3:65"},"nativeSrc":"13602:16:65","nodeType":"YulFunctionCall","src":"13602:16:65"},{"kind":"number","nativeSrc":"13620:1:65","nodeType":"YulLiteral","src":"13620:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13595:6:65","nodeType":"YulIdentifier","src":"13595:6:65"},"nativeSrc":"13595:27:65","nodeType":"YulFunctionCall","src":"13595:27:65"},"nativeSrc":"13595:27:65","nodeType":"YulExpressionStatement","src":"13595:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13481:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13527:3:65","nodeType":"YulTypedName","src":"13527:3:65","type":""},{"name":"dst","nativeSrc":"13532:3:65","nodeType":"YulTypedName","src":"13532:3:65","type":""},{"name":"length","nativeSrc":"13537:6:65","nodeType":"YulTypedName","src":"13537:6:65","type":""}],"src":"13481:148:65"},{"body":{"nativeSrc":"13718:340:65","nodeType":"YulBlock","src":"13718:340:65","statements":[{"nativeSrc":"13728:74:65","nodeType":"YulAssignment","src":"13728:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"13794:6:65","nodeType":"YulIdentifier","src":"13794:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13753:40:65","nodeType":"YulIdentifier","src":"13753:40:65"},"nativeSrc":"13753:48:65","nodeType":"YulFunctionCall","src":"13753:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"13737:15:65","nodeType":"YulIdentifier","src":"13737:15:65"},"nativeSrc":"13737:65:65","nodeType":"YulFunctionCall","src":"13737:65:65"},"variableNames":[{"name":"array","nativeSrc":"13728:5:65","nodeType":"YulIdentifier","src":"13728:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"13818:5:65","nodeType":"YulIdentifier","src":"13818:5:65"},{"name":"length","nativeSrc":"13825:6:65","nodeType":"YulIdentifier","src":"13825:6:65"}],"functionName":{"name":"mstore","nativeSrc":"13811:6:65","nodeType":"YulIdentifier","src":"13811:6:65"},"nativeSrc":"13811:21:65","nodeType":"YulFunctionCall","src":"13811:21:65"},"nativeSrc":"13811:21:65","nodeType":"YulExpressionStatement","src":"13811:21:65"},{"nativeSrc":"13841:27:65","nodeType":"YulVariableDeclaration","src":"13841:27:65","value":{"arguments":[{"name":"array","nativeSrc":"13856:5:65","nodeType":"YulIdentifier","src":"13856:5:65"},{"kind":"number","nativeSrc":"13863:4:65","nodeType":"YulLiteral","src":"13863:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13852:3:65","nodeType":"YulIdentifier","src":"13852:3:65"},"nativeSrc":"13852:16:65","nodeType":"YulFunctionCall","src":"13852:16:65"},"variables":[{"name":"dst","nativeSrc":"13845:3:65","nodeType":"YulTypedName","src":"13845:3:65","type":""}]},{"body":{"nativeSrc":"13906:83:65","nodeType":"YulBlock","src":"13906:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"13908:77:65","nodeType":"YulIdentifier","src":"13908:77:65"},"nativeSrc":"13908:79:65","nodeType":"YulFunctionCall","src":"13908:79:65"},"nativeSrc":"13908:79:65","nodeType":"YulExpressionStatement","src":"13908:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"13887:3:65","nodeType":"YulIdentifier","src":"13887:3:65"},{"name":"length","nativeSrc":"13892:6:65","nodeType":"YulIdentifier","src":"13892:6:65"}],"functionName":{"name":"add","nativeSrc":"13883:3:65","nodeType":"YulIdentifier","src":"13883:3:65"},"nativeSrc":"13883:16:65","nodeType":"YulFunctionCall","src":"13883:16:65"},{"name":"end","nativeSrc":"13901:3:65","nodeType":"YulIdentifier","src":"13901:3:65"}],"functionName":{"name":"gt","nativeSrc":"13880:2:65","nodeType":"YulIdentifier","src":"13880:2:65"},"nativeSrc":"13880:25:65","nodeType":"YulFunctionCall","src":"13880:25:65"},"nativeSrc":"13877:112:65","nodeType":"YulIf","src":"13877:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"14035:3:65","nodeType":"YulIdentifier","src":"14035:3:65"},{"name":"dst","nativeSrc":"14040:3:65","nodeType":"YulIdentifier","src":"14040:3:65"},{"name":"length","nativeSrc":"14045:6:65","nodeType":"YulIdentifier","src":"14045:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13998:36:65","nodeType":"YulIdentifier","src":"13998:36:65"},"nativeSrc":"13998:54:65","nodeType":"YulFunctionCall","src":"13998:54:65"},"nativeSrc":"13998:54:65","nodeType":"YulExpressionStatement","src":"13998:54:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13635:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13691:3:65","nodeType":"YulTypedName","src":"13691:3:65","type":""},{"name":"length","nativeSrc":"13696:6:65","nodeType":"YulTypedName","src":"13696:6:65","type":""},{"name":"end","nativeSrc":"13704:3:65","nodeType":"YulTypedName","src":"13704:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13712:5:65","nodeType":"YulTypedName","src":"13712:5:65","type":""}],"src":"13635:423:65"},{"body":{"nativeSrc":"14138:277:65","nodeType":"YulBlock","src":"14138:277:65","statements":[{"body":{"nativeSrc":"14187:83:65","nodeType":"YulBlock","src":"14187:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"14189:77:65","nodeType":"YulIdentifier","src":"14189:77:65"},"nativeSrc":"14189:79:65","nodeType":"YulFunctionCall","src":"14189:79:65"},"nativeSrc":"14189:79:65","nodeType":"YulExpressionStatement","src":"14189:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14166:6:65","nodeType":"YulIdentifier","src":"14166:6:65"},{"kind":"number","nativeSrc":"14174:4:65","nodeType":"YulLiteral","src":"14174:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"14162:3:65","nodeType":"YulIdentifier","src":"14162:3:65"},"nativeSrc":"14162:17:65","nodeType":"YulFunctionCall","src":"14162:17:65"},{"name":"end","nativeSrc":"14181:3:65","nodeType":"YulIdentifier","src":"14181:3:65"}],"functionName":{"name":"slt","nativeSrc":"14158:3:65","nodeType":"YulIdentifier","src":"14158:3:65"},"nativeSrc":"14158:27:65","nodeType":"YulFunctionCall","src":"14158:27:65"}],"functionName":{"name":"iszero","nativeSrc":"14151:6:65","nodeType":"YulIdentifier","src":"14151:6:65"},"nativeSrc":"14151:35:65","nodeType":"YulFunctionCall","src":"14151:35:65"},"nativeSrc":"14148:122:65","nodeType":"YulIf","src":"14148:122:65"},{"nativeSrc":"14279:34:65","nodeType":"YulVariableDeclaration","src":"14279:34:65","value":{"arguments":[{"name":"offset","nativeSrc":"14306:6:65","nodeType":"YulIdentifier","src":"14306:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"14293:12:65","nodeType":"YulIdentifier","src":"14293:12:65"},"nativeSrc":"14293:20:65","nodeType":"YulFunctionCall","src":"14293:20:65"},"variables":[{"name":"length","nativeSrc":"14283:6:65","nodeType":"YulTypedName","src":"14283:6:65","type":""}]},{"nativeSrc":"14322:87:65","nodeType":"YulAssignment","src":"14322:87:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14382:6:65","nodeType":"YulIdentifier","src":"14382:6:65"},{"kind":"number","nativeSrc":"14390:4:65","nodeType":"YulLiteral","src":"14390:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14378:3:65","nodeType":"YulIdentifier","src":"14378:3:65"},"nativeSrc":"14378:17:65","nodeType":"YulFunctionCall","src":"14378:17:65"},{"name":"length","nativeSrc":"14397:6:65","nodeType":"YulIdentifier","src":"14397:6:65"},{"name":"end","nativeSrc":"14405:3:65","nodeType":"YulIdentifier","src":"14405:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14331:46:65","nodeType":"YulIdentifier","src":"14331:46:65"},"nativeSrc":"14331:78:65","nodeType":"YulFunctionCall","src":"14331:78:65"},"variableNames":[{"name":"array","nativeSrc":"14322:5:65","nodeType":"YulIdentifier","src":"14322:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14077:338:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14116:6:65","nodeType":"YulTypedName","src":"14116:6:65","type":""},{"name":"end","nativeSrc":"14124:3:65","nodeType":"YulTypedName","src":"14124:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14132:5:65","nodeType":"YulTypedName","src":"14132:5:65","type":""}],"src":"14077:338:65"},{"body":{"nativeSrc":"14528:686:65","nodeType":"YulBlock","src":"14528:686:65","statements":[{"body":{"nativeSrc":"14574:83:65","nodeType":"YulBlock","src":"14574:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14576:77:65","nodeType":"YulIdentifier","src":"14576:77:65"},"nativeSrc":"14576:79:65","nodeType":"YulFunctionCall","src":"14576:79:65"},"nativeSrc":"14576:79:65","nodeType":"YulExpressionStatement","src":"14576:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14549:7:65","nodeType":"YulIdentifier","src":"14549:7:65"},{"name":"headStart","nativeSrc":"14558:9:65","nodeType":"YulIdentifier","src":"14558:9:65"}],"functionName":{"name":"sub","nativeSrc":"14545:3:65","nodeType":"YulIdentifier","src":"14545:3:65"},"nativeSrc":"14545:23:65","nodeType":"YulFunctionCall","src":"14545:23:65"},{"kind":"number","nativeSrc":"14570:2:65","nodeType":"YulLiteral","src":"14570:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"14541:3:65","nodeType":"YulIdentifier","src":"14541:3:65"},"nativeSrc":"14541:32:65","nodeType":"YulFunctionCall","src":"14541:32:65"},"nativeSrc":"14538:119:65","nodeType":"YulIf","src":"14538:119:65"},{"nativeSrc":"14667:116:65","nodeType":"YulBlock","src":"14667:116:65","statements":[{"nativeSrc":"14682:15:65","nodeType":"YulVariableDeclaration","src":"14682:15:65","value":{"kind":"number","nativeSrc":"14696:1:65","nodeType":"YulLiteral","src":"14696:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14686:6:65","nodeType":"YulTypedName","src":"14686:6:65","type":""}]},{"nativeSrc":"14711:62:65","nodeType":"YulAssignment","src":"14711:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14745:9:65","nodeType":"YulIdentifier","src":"14745:9:65"},{"name":"offset","nativeSrc":"14756:6:65","nodeType":"YulIdentifier","src":"14756:6:65"}],"functionName":{"name":"add","nativeSrc":"14741:3:65","nodeType":"YulIdentifier","src":"14741:3:65"},"nativeSrc":"14741:22:65","nodeType":"YulFunctionCall","src":"14741:22:65"},{"name":"dataEnd","nativeSrc":"14765:7:65","nodeType":"YulIdentifier","src":"14765:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"14721:19:65","nodeType":"YulIdentifier","src":"14721:19:65"},"nativeSrc":"14721:52:65","nodeType":"YulFunctionCall","src":"14721:52:65"},"variableNames":[{"name":"value0","nativeSrc":"14711:6:65","nodeType":"YulIdentifier","src":"14711:6:65"}]}]},{"nativeSrc":"14793:287:65","nodeType":"YulBlock","src":"14793:287:65","statements":[{"nativeSrc":"14808:46:65","nodeType":"YulVariableDeclaration","src":"14808:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14839:9:65","nodeType":"YulIdentifier","src":"14839:9:65"},{"kind":"number","nativeSrc":"14850:2:65","nodeType":"YulLiteral","src":"14850:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14835:3:65","nodeType":"YulIdentifier","src":"14835:3:65"},"nativeSrc":"14835:18:65","nodeType":"YulFunctionCall","src":"14835:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"14822:12:65","nodeType":"YulIdentifier","src":"14822:12:65"},"nativeSrc":"14822:32:65","nodeType":"YulFunctionCall","src":"14822:32:65"},"variables":[{"name":"offset","nativeSrc":"14812:6:65","nodeType":"YulTypedName","src":"14812:6:65","type":""}]},{"body":{"nativeSrc":"14901:83:65","nodeType":"YulBlock","src":"14901:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14903:77:65","nodeType":"YulIdentifier","src":"14903:77:65"},"nativeSrc":"14903:79:65","nodeType":"YulFunctionCall","src":"14903:79:65"},"nativeSrc":"14903:79:65","nodeType":"YulExpressionStatement","src":"14903:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14873:6:65","nodeType":"YulIdentifier","src":"14873:6:65"},{"kind":"number","nativeSrc":"14881:18:65","nodeType":"YulLiteral","src":"14881:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14870:2:65","nodeType":"YulIdentifier","src":"14870:2:65"},"nativeSrc":"14870:30:65","nodeType":"YulFunctionCall","src":"14870:30:65"},"nativeSrc":"14867:117:65","nodeType":"YulIf","src":"14867:117:65"},{"nativeSrc":"14998:72:65","nodeType":"YulAssignment","src":"14998:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15042:9:65","nodeType":"YulIdentifier","src":"15042:9:65"},{"name":"offset","nativeSrc":"15053:6:65","nodeType":"YulIdentifier","src":"15053:6:65"}],"functionName":{"name":"add","nativeSrc":"15038:3:65","nodeType":"YulIdentifier","src":"15038:3:65"},"nativeSrc":"15038:22:65","nodeType":"YulFunctionCall","src":"15038:22:65"},{"name":"dataEnd","nativeSrc":"15062:7:65","nodeType":"YulIdentifier","src":"15062:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15008:29:65","nodeType":"YulIdentifier","src":"15008:29:65"},"nativeSrc":"15008:62:65","nodeType":"YulFunctionCall","src":"15008:62:65"},"variableNames":[{"name":"value1","nativeSrc":"14998:6:65","nodeType":"YulIdentifier","src":"14998:6:65"}]}]},{"nativeSrc":"15090:117:65","nodeType":"YulBlock","src":"15090:117:65","statements":[{"nativeSrc":"15105:16:65","nodeType":"YulVariableDeclaration","src":"15105:16:65","value":{"kind":"number","nativeSrc":"15119:2:65","nodeType":"YulLiteral","src":"15119:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"15109:6:65","nodeType":"YulTypedName","src":"15109:6:65","type":""}]},{"nativeSrc":"15135:62:65","nodeType":"YulAssignment","src":"15135:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15169:9:65","nodeType":"YulIdentifier","src":"15169:9:65"},{"name":"offset","nativeSrc":"15180:6:65","nodeType":"YulIdentifier","src":"15180:6:65"}],"functionName":{"name":"add","nativeSrc":"15165:3:65","nodeType":"YulIdentifier","src":"15165:3:65"},"nativeSrc":"15165:22:65","nodeType":"YulFunctionCall","src":"15165:22:65"},{"name":"dataEnd","nativeSrc":"15189:7:65","nodeType":"YulIdentifier","src":"15189:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"15145:19:65","nodeType":"YulIdentifier","src":"15145:19:65"},"nativeSrc":"15145:52:65","nodeType":"YulFunctionCall","src":"15145:52:65"},"variableNames":[{"name":"value2","nativeSrc":"15135:6:65","nodeType":"YulIdentifier","src":"15135:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64","nativeSrc":"14421:793:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14482:9:65","nodeType":"YulTypedName","src":"14482:9:65","type":""},{"name":"dataEnd","nativeSrc":"14493:7:65","nodeType":"YulTypedName","src":"14493:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14505:6:65","nodeType":"YulTypedName","src":"14505:6:65","type":""},{"name":"value1","nativeSrc":"14513:6:65","nodeType":"YulTypedName","src":"14513:6:65","type":""},{"name":"value2","nativeSrc":"14521:6:65","nodeType":"YulTypedName","src":"14521:6:65","type":""}],"src":"14421:793:65"},{"body":{"nativeSrc":"15285:53:65","nodeType":"YulBlock","src":"15285:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15302:3:65","nodeType":"YulIdentifier","src":"15302:3:65"},{"arguments":[{"name":"value","nativeSrc":"15325:5:65","nodeType":"YulIdentifier","src":"15325:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"15307:17:65","nodeType":"YulIdentifier","src":"15307:17:65"},"nativeSrc":"15307:24:65","nodeType":"YulFunctionCall","src":"15307:24:65"}],"functionName":{"name":"mstore","nativeSrc":"15295:6:65","nodeType":"YulIdentifier","src":"15295:6:65"},"nativeSrc":"15295:37:65","nodeType":"YulFunctionCall","src":"15295:37:65"},"nativeSrc":"15295:37:65","nodeType":"YulExpressionStatement","src":"15295:37:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"15220:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15273:5:65","nodeType":"YulTypedName","src":"15273:5:65","type":""},{"name":"pos","nativeSrc":"15280:3:65","nodeType":"YulTypedName","src":"15280:3:65","type":""}],"src":"15220:118:65"},{"body":{"nativeSrc":"15442:124:65","nodeType":"YulBlock","src":"15442:124:65","statements":[{"nativeSrc":"15452:26:65","nodeType":"YulAssignment","src":"15452:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"15464:9:65","nodeType":"YulIdentifier","src":"15464:9:65"},{"kind":"number","nativeSrc":"15475:2:65","nodeType":"YulLiteral","src":"15475:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15460:3:65","nodeType":"YulIdentifier","src":"15460:3:65"},"nativeSrc":"15460:18:65","nodeType":"YulFunctionCall","src":"15460:18:65"},"variableNames":[{"name":"tail","nativeSrc":"15452:4:65","nodeType":"YulIdentifier","src":"15452:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"15532:6:65","nodeType":"YulIdentifier","src":"15532:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"15545:9:65","nodeType":"YulIdentifier","src":"15545:9:65"},{"kind":"number","nativeSrc":"15556:1:65","nodeType":"YulLiteral","src":"15556:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15541:3:65","nodeType":"YulIdentifier","src":"15541:3:65"},"nativeSrc":"15541:17:65","nodeType":"YulFunctionCall","src":"15541:17:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"15488:43:65","nodeType":"YulIdentifier","src":"15488:43:65"},"nativeSrc":"15488:71:65","nodeType":"YulFunctionCall","src":"15488:71:65"},"nativeSrc":"15488:71:65","nodeType":"YulExpressionStatement","src":"15488:71:65"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"15344:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15414:9:65","nodeType":"YulTypedName","src":"15414:9:65","type":""},{"name":"value0","nativeSrc":"15426:6:65","nodeType":"YulTypedName","src":"15426:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15437:4:65","nodeType":"YulTypedName","src":"15437:4:65","type":""}],"src":"15344:222:65"},{"body":{"nativeSrc":"15632:51:65","nodeType":"YulBlock","src":"15632:51:65","statements":[{"nativeSrc":"15642:35:65","nodeType":"YulAssignment","src":"15642:35:65","value":{"arguments":[{"name":"value","nativeSrc":"15671:5:65","nodeType":"YulIdentifier","src":"15671:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"15653:17:65","nodeType":"YulIdentifier","src":"15653:17:65"},"nativeSrc":"15653:24:65","nodeType":"YulFunctionCall","src":"15653:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"15642:7:65","nodeType":"YulIdentifier","src":"15642:7:65"}]}]},"name":"cleanup_t_contract$_IERC20_$6261","nativeSrc":"15572:111:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15614:5:65","nodeType":"YulTypedName","src":"15614:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"15624:7:65","nodeType":"YulTypedName","src":"15624:7:65","type":""}],"src":"15572:111:65"},{"body":{"nativeSrc":"15747:94:65","nodeType":"YulBlock","src":"15747:94:65","statements":[{"body":{"nativeSrc":"15819:16:65","nodeType":"YulBlock","src":"15819:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15828:1:65","nodeType":"YulLiteral","src":"15828:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"15831:1:65","nodeType":"YulLiteral","src":"15831:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15821:6:65","nodeType":"YulIdentifier","src":"15821:6:65"},"nativeSrc":"15821:12:65","nodeType":"YulFunctionCall","src":"15821:12:65"},"nativeSrc":"15821:12:65","nodeType":"YulExpressionStatement","src":"15821:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15770:5:65","nodeType":"YulIdentifier","src":"15770:5:65"},{"arguments":[{"name":"value","nativeSrc":"15810:5:65","nodeType":"YulIdentifier","src":"15810:5:65"}],"functionName":{"name":"cleanup_t_contract$_IERC20_$6261","nativeSrc":"15777:32:65","nodeType":"YulIdentifier","src":"15777:32:65"},"nativeSrc":"15777:39:65","nodeType":"YulFunctionCall","src":"15777:39:65"}],"functionName":{"name":"eq","nativeSrc":"15767:2:65","nodeType":"YulIdentifier","src":"15767:2:65"},"nativeSrc":"15767:50:65","nodeType":"YulFunctionCall","src":"15767:50:65"}],"functionName":{"name":"iszero","nativeSrc":"15760:6:65","nodeType":"YulIdentifier","src":"15760:6:65"},"nativeSrc":"15760:58:65","nodeType":"YulFunctionCall","src":"15760:58:65"},"nativeSrc":"15757:78:65","nodeType":"YulIf","src":"15757:78:65"}]},"name":"validator_revert_t_contract$_IERC20_$6261","nativeSrc":"15689:152:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15740:5:65","nodeType":"YulTypedName","src":"15740:5:65","type":""}],"src":"15689:152:65"},{"body":{"nativeSrc":"15914:102:65","nodeType":"YulBlock","src":"15914:102:65","statements":[{"nativeSrc":"15924:29:65","nodeType":"YulAssignment","src":"15924:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"15946:6:65","nodeType":"YulIdentifier","src":"15946:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"15933:12:65","nodeType":"YulIdentifier","src":"15933:12:65"},"nativeSrc":"15933:20:65","nodeType":"YulFunctionCall","src":"15933:20:65"},"variableNames":[{"name":"value","nativeSrc":"15924:5:65","nodeType":"YulIdentifier","src":"15924:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16004:5:65","nodeType":"YulIdentifier","src":"16004:5:65"}],"functionName":{"name":"validator_revert_t_contract$_IERC20_$6261","nativeSrc":"15962:41:65","nodeType":"YulIdentifier","src":"15962:41:65"},"nativeSrc":"15962:48:65","nodeType":"YulFunctionCall","src":"15962:48:65"},"nativeSrc":"15962:48:65","nodeType":"YulExpressionStatement","src":"15962:48:65"}]},"name":"abi_decode_t_contract$_IERC20_$6261","nativeSrc":"15847:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15892:6:65","nodeType":"YulTypedName","src":"15892:6:65","type":""},{"name":"end","nativeSrc":"15900:3:65","nodeType":"YulTypedName","src":"15900:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15908:5:65","nodeType":"YulTypedName","src":"15908:5:65","type":""}],"src":"15847:169:65"},{"body":{"nativeSrc":"16137:534:65","nodeType":"YulBlock","src":"16137:534:65","statements":[{"body":{"nativeSrc":"16183:83:65","nodeType":"YulBlock","src":"16183:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16185:77:65","nodeType":"YulIdentifier","src":"16185:77:65"},"nativeSrc":"16185:79:65","nodeType":"YulFunctionCall","src":"16185:79:65"},"nativeSrc":"16185:79:65","nodeType":"YulExpressionStatement","src":"16185:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16158:7:65","nodeType":"YulIdentifier","src":"16158:7:65"},{"name":"headStart","nativeSrc":"16167:9:65","nodeType":"YulIdentifier","src":"16167:9:65"}],"functionName":{"name":"sub","nativeSrc":"16154:3:65","nodeType":"YulIdentifier","src":"16154:3:65"},"nativeSrc":"16154:23:65","nodeType":"YulFunctionCall","src":"16154:23:65"},{"kind":"number","nativeSrc":"16179:2:65","nodeType":"YulLiteral","src":"16179:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"16150:3:65","nodeType":"YulIdentifier","src":"16150:3:65"},"nativeSrc":"16150:32:65","nodeType":"YulFunctionCall","src":"16150:32:65"},"nativeSrc":"16147:119:65","nodeType":"YulIf","src":"16147:119:65"},{"nativeSrc":"16276:132:65","nodeType":"YulBlock","src":"16276:132:65","statements":[{"nativeSrc":"16291:15:65","nodeType":"YulVariableDeclaration","src":"16291:15:65","value":{"kind":"number","nativeSrc":"16305:1:65","nodeType":"YulLiteral","src":"16305:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16295:6:65","nodeType":"YulTypedName","src":"16295:6:65","type":""}]},{"nativeSrc":"16320:78:65","nodeType":"YulAssignment","src":"16320:78:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16370:9:65","nodeType":"YulIdentifier","src":"16370:9:65"},{"name":"offset","nativeSrc":"16381:6:65","nodeType":"YulIdentifier","src":"16381:6:65"}],"functionName":{"name":"add","nativeSrc":"16366:3:65","nodeType":"YulIdentifier","src":"16366:3:65"},"nativeSrc":"16366:22:65","nodeType":"YulFunctionCall","src":"16366:22:65"},{"name":"dataEnd","nativeSrc":"16390:7:65","nodeType":"YulIdentifier","src":"16390:7:65"}],"functionName":{"name":"abi_decode_t_contract$_IERC20_$6261","nativeSrc":"16330:35:65","nodeType":"YulIdentifier","src":"16330:35:65"},"nativeSrc":"16330:68:65","nodeType":"YulFunctionCall","src":"16330:68:65"},"variableNames":[{"name":"value0","nativeSrc":"16320:6:65","nodeType":"YulIdentifier","src":"16320:6:65"}]}]},{"nativeSrc":"16418:118:65","nodeType":"YulBlock","src":"16418:118:65","statements":[{"nativeSrc":"16433:16:65","nodeType":"YulVariableDeclaration","src":"16433:16:65","value":{"kind":"number","nativeSrc":"16447:2:65","nodeType":"YulLiteral","src":"16447:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16437:6:65","nodeType":"YulTypedName","src":"16437:6:65","type":""}]},{"nativeSrc":"16463:63:65","nodeType":"YulAssignment","src":"16463:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16498:9:65","nodeType":"YulIdentifier","src":"16498:9:65"},{"name":"offset","nativeSrc":"16509:6:65","nodeType":"YulIdentifier","src":"16509:6:65"}],"functionName":{"name":"add","nativeSrc":"16494:3:65","nodeType":"YulIdentifier","src":"16494:3:65"},"nativeSrc":"16494:22:65","nodeType":"YulFunctionCall","src":"16494:22:65"},{"name":"dataEnd","nativeSrc":"16518:7:65","nodeType":"YulIdentifier","src":"16518:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16473:20:65","nodeType":"YulIdentifier","src":"16473:20:65"},"nativeSrc":"16473:53:65","nodeType":"YulFunctionCall","src":"16473:53:65"},"variableNames":[{"name":"value1","nativeSrc":"16463:6:65","nodeType":"YulIdentifier","src":"16463:6:65"}]}]},{"nativeSrc":"16546:118:65","nodeType":"YulBlock","src":"16546:118:65","statements":[{"nativeSrc":"16561:16:65","nodeType":"YulVariableDeclaration","src":"16561:16:65","value":{"kind":"number","nativeSrc":"16575:2:65","nodeType":"YulLiteral","src":"16575:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16565:6:65","nodeType":"YulTypedName","src":"16565:6:65","type":""}]},{"nativeSrc":"16591:63:65","nodeType":"YulAssignment","src":"16591:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16626:9:65","nodeType":"YulIdentifier","src":"16626:9:65"},{"name":"offset","nativeSrc":"16637:6:65","nodeType":"YulIdentifier","src":"16637:6:65"}],"functionName":{"name":"add","nativeSrc":"16622:3:65","nodeType":"YulIdentifier","src":"16622:3:65"},"nativeSrc":"16622:22:65","nodeType":"YulFunctionCall","src":"16622:22:65"},{"name":"dataEnd","nativeSrc":"16646:7:65","nodeType":"YulIdentifier","src":"16646:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16601:20:65","nodeType":"YulIdentifier","src":"16601:20:65"},"nativeSrc":"16601:53:65","nodeType":"YulFunctionCall","src":"16601:53:65"},"variableNames":[{"name":"value2","nativeSrc":"16591:6:65","nodeType":"YulIdentifier","src":"16591:6:65"}]}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256","nativeSrc":"16022:649:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16091:9:65","nodeType":"YulTypedName","src":"16091:9:65","type":""},{"name":"dataEnd","nativeSrc":"16102:7:65","nodeType":"YulTypedName","src":"16102:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16114:6:65","nodeType":"YulTypedName","src":"16114:6:65","type":""},{"name":"value1","nativeSrc":"16122:6:65","nodeType":"YulTypedName","src":"16122:6:65","type":""},{"name":"value2","nativeSrc":"16130:6:65","nodeType":"YulTypedName","src":"16130:6:65","type":""}],"src":"16022:649:65"},{"body":{"nativeSrc":"16766:28:65","nodeType":"YulBlock","src":"16766:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16783:1:65","nodeType":"YulLiteral","src":"16783:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"16786:1:65","nodeType":"YulLiteral","src":"16786:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16776:6:65","nodeType":"YulIdentifier","src":"16776:6:65"},"nativeSrc":"16776:12:65","nodeType":"YulFunctionCall","src":"16776:12:65"},"nativeSrc":"16776:12:65","nodeType":"YulExpressionStatement","src":"16776:12:65"}]},"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nativeSrc":"16677:117:65","nodeType":"YulFunctionDefinition","src":"16677:117:65"},{"body":{"nativeSrc":"16922:152:65","nodeType":"YulBlock","src":"16922:152:65","statements":[{"body":{"nativeSrc":"16961:83:65","nodeType":"YulBlock","src":"16961:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d","nativeSrc":"16963:77:65","nodeType":"YulIdentifier","src":"16963:77:65"},"nativeSrc":"16963:79:65","nodeType":"YulFunctionCall","src":"16963:79:65"},"nativeSrc":"16963:79:65","nodeType":"YulExpressionStatement","src":"16963:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16943:3:65","nodeType":"YulIdentifier","src":"16943:3:65"},{"name":"offset","nativeSrc":"16948:6:65","nodeType":"YulIdentifier","src":"16948:6:65"}],"functionName":{"name":"sub","nativeSrc":"16939:3:65","nodeType":"YulIdentifier","src":"16939:3:65"},"nativeSrc":"16939:16:65","nodeType":"YulFunctionCall","src":"16939:16:65"},{"kind":"number","nativeSrc":"16957:2:65","nodeType":"YulLiteral","src":"16957:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"16935:3:65","nodeType":"YulIdentifier","src":"16935:3:65"},"nativeSrc":"16935:25:65","nodeType":"YulFunctionCall","src":"16935:25:65"},"nativeSrc":"16932:112:65","nodeType":"YulIf","src":"16932:112:65"},{"nativeSrc":"17053:15:65","nodeType":"YulAssignment","src":"17053:15:65","value":{"name":"offset","nativeSrc":"17062:6:65","nodeType":"YulIdentifier","src":"17062:6:65"},"variableNames":[{"name":"value","nativeSrc":"17053:5:65","nodeType":"YulIdentifier","src":"17053:5:65"}]}]},"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"16838:236:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16900:6:65","nodeType":"YulTypedName","src":"16900:6:65","type":""},{"name":"end","nativeSrc":"16908:3:65","nodeType":"YulTypedName","src":"16908:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16916:5:65","nodeType":"YulTypedName","src":"16916:5:65","type":""}],"src":"16838:236:65"},{"body":{"nativeSrc":"17245:968:65","nodeType":"YulBlock","src":"17245:968:65","statements":[{"body":{"nativeSrc":"17292:83:65","nodeType":"YulBlock","src":"17292:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17294:77:65","nodeType":"YulIdentifier","src":"17294:77:65"},"nativeSrc":"17294:79:65","nodeType":"YulFunctionCall","src":"17294:79:65"},"nativeSrc":"17294:79:65","nodeType":"YulExpressionStatement","src":"17294:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17266:7:65","nodeType":"YulIdentifier","src":"17266:7:65"},{"name":"headStart","nativeSrc":"17275:9:65","nodeType":"YulIdentifier","src":"17275:9:65"}],"functionName":{"name":"sub","nativeSrc":"17262:3:65","nodeType":"YulIdentifier","src":"17262:3:65"},"nativeSrc":"17262:23:65","nodeType":"YulFunctionCall","src":"17262:23:65"},{"kind":"number","nativeSrc":"17287:3:65","nodeType":"YulLiteral","src":"17287:3:65","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"17258:3:65","nodeType":"YulIdentifier","src":"17258:3:65"},"nativeSrc":"17258:33:65","nodeType":"YulFunctionCall","src":"17258:33:65"},"nativeSrc":"17255:120:65","nodeType":"YulIf","src":"17255:120:65"},{"nativeSrc":"17385:117:65","nodeType":"YulBlock","src":"17385:117:65","statements":[{"nativeSrc":"17400:15:65","nodeType":"YulVariableDeclaration","src":"17400:15:65","value":{"kind":"number","nativeSrc":"17414:1:65","nodeType":"YulLiteral","src":"17414:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17404:6:65","nodeType":"YulTypedName","src":"17404:6:65","type":""}]},{"nativeSrc":"17429:63:65","nodeType":"YulAssignment","src":"17429:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17464:9:65","nodeType":"YulIdentifier","src":"17464:9:65"},{"name":"offset","nativeSrc":"17475:6:65","nodeType":"YulIdentifier","src":"17475:6:65"}],"functionName":{"name":"add","nativeSrc":"17460:3:65","nodeType":"YulIdentifier","src":"17460:3:65"},"nativeSrc":"17460:22:65","nodeType":"YulFunctionCall","src":"17460:22:65"},{"name":"dataEnd","nativeSrc":"17484:7:65","nodeType":"YulIdentifier","src":"17484:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"17439:20:65","nodeType":"YulIdentifier","src":"17439:20:65"},"nativeSrc":"17439:53:65","nodeType":"YulFunctionCall","src":"17439:53:65"},"variableNames":[{"name":"value0","nativeSrc":"17429:6:65","nodeType":"YulIdentifier","src":"17429:6:65"}]}]},{"nativeSrc":"17512:117:65","nodeType":"YulBlock","src":"17512:117:65","statements":[{"nativeSrc":"17527:16:65","nodeType":"YulVariableDeclaration","src":"17527:16:65","value":{"kind":"number","nativeSrc":"17541:2:65","nodeType":"YulLiteral","src":"17541:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"17531:6:65","nodeType":"YulTypedName","src":"17531:6:65","type":""}]},{"nativeSrc":"17557:62:65","nodeType":"YulAssignment","src":"17557:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17591:9:65","nodeType":"YulIdentifier","src":"17591:9:65"},{"name":"offset","nativeSrc":"17602:6:65","nodeType":"YulIdentifier","src":"17602:6:65"}],"functionName":{"name":"add","nativeSrc":"17587:3:65","nodeType":"YulIdentifier","src":"17587:3:65"},"nativeSrc":"17587:22:65","nodeType":"YulFunctionCall","src":"17587:22:65"},{"name":"dataEnd","nativeSrc":"17611:7:65","nodeType":"YulIdentifier","src":"17611:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"17567:19:65","nodeType":"YulIdentifier","src":"17567:19:65"},"nativeSrc":"17567:52:65","nodeType":"YulFunctionCall","src":"17567:52:65"},"variableNames":[{"name":"value1","nativeSrc":"17557:6:65","nodeType":"YulIdentifier","src":"17557:6:65"}]}]},{"nativeSrc":"17639:118:65","nodeType":"YulBlock","src":"17639:118:65","statements":[{"nativeSrc":"17654:16:65","nodeType":"YulVariableDeclaration","src":"17654:16:65","value":{"kind":"number","nativeSrc":"17668:2:65","nodeType":"YulLiteral","src":"17668:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"17658:6:65","nodeType":"YulTypedName","src":"17658:6:65","type":""}]},{"nativeSrc":"17684:63:65","nodeType":"YulAssignment","src":"17684:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17719:9:65","nodeType":"YulIdentifier","src":"17719:9:65"},{"name":"offset","nativeSrc":"17730:6:65","nodeType":"YulIdentifier","src":"17730:6:65"}],"functionName":{"name":"add","nativeSrc":"17715:3:65","nodeType":"YulIdentifier","src":"17715:3:65"},"nativeSrc":"17715:22:65","nodeType":"YulFunctionCall","src":"17715:22:65"},{"name":"dataEnd","nativeSrc":"17739:7:65","nodeType":"YulIdentifier","src":"17739:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"17694:20:65","nodeType":"YulIdentifier","src":"17694:20:65"},"nativeSrc":"17694:53:65","nodeType":"YulFunctionCall","src":"17694:53:65"},"variableNames":[{"name":"value2","nativeSrc":"17684:6:65","nodeType":"YulIdentifier","src":"17684:6:65"}]}]},{"nativeSrc":"17767:118:65","nodeType":"YulBlock","src":"17767:118:65","statements":[{"nativeSrc":"17782:16:65","nodeType":"YulVariableDeclaration","src":"17782:16:65","value":{"kind":"number","nativeSrc":"17796:2:65","nodeType":"YulLiteral","src":"17796:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"17786:6:65","nodeType":"YulTypedName","src":"17786:6:65","type":""}]},{"nativeSrc":"17812:63:65","nodeType":"YulAssignment","src":"17812:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17847:9:65","nodeType":"YulIdentifier","src":"17847:9:65"},{"name":"offset","nativeSrc":"17858:6:65","nodeType":"YulIdentifier","src":"17858:6:65"}],"functionName":{"name":"add","nativeSrc":"17843:3:65","nodeType":"YulIdentifier","src":"17843:3:65"},"nativeSrc":"17843:22:65","nodeType":"YulFunctionCall","src":"17843:22:65"},{"name":"dataEnd","nativeSrc":"17867:7:65","nodeType":"YulIdentifier","src":"17867:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"17822:20:65","nodeType":"YulIdentifier","src":"17822:20:65"},"nativeSrc":"17822:53:65","nodeType":"YulFunctionCall","src":"17822:53:65"},"variableNames":[{"name":"value3","nativeSrc":"17812:6:65","nodeType":"YulIdentifier","src":"17812:6:65"}]}]},{"nativeSrc":"17895:311:65","nodeType":"YulBlock","src":"17895:311:65","statements":[{"nativeSrc":"17910:47:65","nodeType":"YulVariableDeclaration","src":"17910:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17941:9:65","nodeType":"YulIdentifier","src":"17941:9:65"},{"kind":"number","nativeSrc":"17952:3:65","nodeType":"YulLiteral","src":"17952:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17937:3:65","nodeType":"YulIdentifier","src":"17937:3:65"},"nativeSrc":"17937:19:65","nodeType":"YulFunctionCall","src":"17937:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"17924:12:65","nodeType":"YulIdentifier","src":"17924:12:65"},"nativeSrc":"17924:33:65","nodeType":"YulFunctionCall","src":"17924:33:65"},"variables":[{"name":"offset","nativeSrc":"17914:6:65","nodeType":"YulTypedName","src":"17914:6:65","type":""}]},{"body":{"nativeSrc":"18004:83:65","nodeType":"YulBlock","src":"18004:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"18006:77:65","nodeType":"YulIdentifier","src":"18006:77:65"},"nativeSrc":"18006:79:65","nodeType":"YulFunctionCall","src":"18006:79:65"},"nativeSrc":"18006:79:65","nodeType":"YulExpressionStatement","src":"18006:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17976:6:65","nodeType":"YulIdentifier","src":"17976:6:65"},{"kind":"number","nativeSrc":"17984:18:65","nodeType":"YulLiteral","src":"17984:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17973:2:65","nodeType":"YulIdentifier","src":"17973:2:65"},"nativeSrc":"17973:30:65","nodeType":"YulFunctionCall","src":"17973:30:65"},"nativeSrc":"17970:117:65","nodeType":"YulIf","src":"17970:117:65"},{"nativeSrc":"18101:95:65","nodeType":"YulAssignment","src":"18101:95:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18168:9:65","nodeType":"YulIdentifier","src":"18168:9:65"},{"name":"offset","nativeSrc":"18179:6:65","nodeType":"YulIdentifier","src":"18179:6:65"}],"functionName":{"name":"add","nativeSrc":"18164:3:65","nodeType":"YulIdentifier","src":"18164:3:65"},"nativeSrc":"18164:22:65","nodeType":"YulFunctionCall","src":"18164:22:65"},{"name":"dataEnd","nativeSrc":"18188:7:65","nodeType":"YulIdentifier","src":"18188:7:65"}],"functionName":{"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"18111:52:65","nodeType":"YulIdentifier","src":"18111:52:65"},"nativeSrc":"18111:85:65","nodeType":"YulFunctionCall","src":"18111:85:65"},"variableNames":[{"name":"value4","nativeSrc":"18101:6:65","nodeType":"YulIdentifier","src":"18101:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"17080:1133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17183:9:65","nodeType":"YulTypedName","src":"17183:9:65","type":""},{"name":"dataEnd","nativeSrc":"17194:7:65","nodeType":"YulTypedName","src":"17194:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17206:6:65","nodeType":"YulTypedName","src":"17206:6:65","type":""},{"name":"value1","nativeSrc":"17214:6:65","nodeType":"YulTypedName","src":"17214:6:65","type":""},{"name":"value2","nativeSrc":"17222:6:65","nodeType":"YulTypedName","src":"17222:6:65","type":""},{"name":"value3","nativeSrc":"17230:6:65","nodeType":"YulTypedName","src":"17230:6:65","type":""},{"name":"value4","nativeSrc":"17238:6:65","nodeType":"YulTypedName","src":"17238:6:65","type":""}],"src":"17080:1133:65"},{"body":{"nativeSrc":"18277:40:65","nodeType":"YulBlock","src":"18277:40:65","statements":[{"nativeSrc":"18288:22:65","nodeType":"YulAssignment","src":"18288:22:65","value":{"arguments":[{"name":"value","nativeSrc":"18304:5:65","nodeType":"YulIdentifier","src":"18304:5:65"}],"functionName":{"name":"mload","nativeSrc":"18298:5:65","nodeType":"YulIdentifier","src":"18298:5:65"},"nativeSrc":"18298:12:65","nodeType":"YulFunctionCall","src":"18298:12:65"},"variableNames":[{"name":"length","nativeSrc":"18288:6:65","nodeType":"YulIdentifier","src":"18288:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"18219:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18260:5:65","nodeType":"YulTypedName","src":"18260:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"18270:6:65","nodeType":"YulTypedName","src":"18270:6:65","type":""}],"src":"18219:98:65"},{"body":{"nativeSrc":"18418:73:65","nodeType":"YulBlock","src":"18418:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18435:3:65","nodeType":"YulIdentifier","src":"18435:3:65"},{"name":"length","nativeSrc":"18440:6:65","nodeType":"YulIdentifier","src":"18440:6:65"}],"functionName":{"name":"mstore","nativeSrc":"18428:6:65","nodeType":"YulIdentifier","src":"18428:6:65"},"nativeSrc":"18428:19:65","nodeType":"YulFunctionCall","src":"18428:19:65"},"nativeSrc":"18428:19:65","nodeType":"YulExpressionStatement","src":"18428:19:65"},{"nativeSrc":"18456:29:65","nodeType":"YulAssignment","src":"18456:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"18475:3:65","nodeType":"YulIdentifier","src":"18475:3:65"},{"kind":"number","nativeSrc":"18480:4:65","nodeType":"YulLiteral","src":"18480:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18471:3:65","nodeType":"YulIdentifier","src":"18471:3:65"},"nativeSrc":"18471:14:65","nodeType":"YulFunctionCall","src":"18471:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"18456:11:65","nodeType":"YulIdentifier","src":"18456:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"18323:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18390:3:65","nodeType":"YulTypedName","src":"18390:3:65","type":""},{"name":"length","nativeSrc":"18395:6:65","nodeType":"YulTypedName","src":"18395:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"18406:11:65","nodeType":"YulTypedName","src":"18406:11:65","type":""}],"src":"18323:168:65"},{"body":{"nativeSrc":"18559:186:65","nodeType":"YulBlock","src":"18559:186:65","statements":[{"nativeSrc":"18570:10:65","nodeType":"YulVariableDeclaration","src":"18570:10:65","value":{"kind":"number","nativeSrc":"18579:1:65","nodeType":"YulLiteral","src":"18579:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"18574:1:65","nodeType":"YulTypedName","src":"18574:1:65","type":""}]},{"body":{"nativeSrc":"18639:63:65","nodeType":"YulBlock","src":"18639:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"18664:3:65","nodeType":"YulIdentifier","src":"18664:3:65"},{"name":"i","nativeSrc":"18669:1:65","nodeType":"YulIdentifier","src":"18669:1:65"}],"functionName":{"name":"add","nativeSrc":"18660:3:65","nodeType":"YulIdentifier","src":"18660:3:65"},"nativeSrc":"18660:11:65","nodeType":"YulFunctionCall","src":"18660:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"18683:3:65","nodeType":"YulIdentifier","src":"18683:3:65"},{"name":"i","nativeSrc":"18688:1:65","nodeType":"YulIdentifier","src":"18688:1:65"}],"functionName":{"name":"add","nativeSrc":"18679:3:65","nodeType":"YulIdentifier","src":"18679:3:65"},"nativeSrc":"18679:11:65","nodeType":"YulFunctionCall","src":"18679:11:65"}],"functionName":{"name":"mload","nativeSrc":"18673:5:65","nodeType":"YulIdentifier","src":"18673:5:65"},"nativeSrc":"18673:18:65","nodeType":"YulFunctionCall","src":"18673:18:65"}],"functionName":{"name":"mstore","nativeSrc":"18653:6:65","nodeType":"YulIdentifier","src":"18653:6:65"},"nativeSrc":"18653:39:65","nodeType":"YulFunctionCall","src":"18653:39:65"},"nativeSrc":"18653:39:65","nodeType":"YulExpressionStatement","src":"18653:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"18600:1:65","nodeType":"YulIdentifier","src":"18600:1:65"},{"name":"length","nativeSrc":"18603:6:65","nodeType":"YulIdentifier","src":"18603:6:65"}],"functionName":{"name":"lt","nativeSrc":"18597:2:65","nodeType":"YulIdentifier","src":"18597:2:65"},"nativeSrc":"18597:13:65","nodeType":"YulFunctionCall","src":"18597:13:65"},"nativeSrc":"18589:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"18611:19:65","nodeType":"YulBlock","src":"18611:19:65","statements":[{"nativeSrc":"18613:15:65","nodeType":"YulAssignment","src":"18613:15:65","value":{"arguments":[{"name":"i","nativeSrc":"18622:1:65","nodeType":"YulIdentifier","src":"18622:1:65"},{"kind":"number","nativeSrc":"18625:2:65","nodeType":"YulLiteral","src":"18625:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18618:3:65","nodeType":"YulIdentifier","src":"18618:3:65"},"nativeSrc":"18618:10:65","nodeType":"YulFunctionCall","src":"18618:10:65"},"variableNames":[{"name":"i","nativeSrc":"18613:1:65","nodeType":"YulIdentifier","src":"18613:1:65"}]}]},"pre":{"nativeSrc":"18593:3:65","nodeType":"YulBlock","src":"18593:3:65","statements":[]},"src":"18589:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"18722:3:65","nodeType":"YulIdentifier","src":"18722:3:65"},{"name":"length","nativeSrc":"18727:6:65","nodeType":"YulIdentifier","src":"18727:6:65"}],"functionName":{"name":"add","nativeSrc":"18718:3:65","nodeType":"YulIdentifier","src":"18718:3:65"},"nativeSrc":"18718:16:65","nodeType":"YulFunctionCall","src":"18718:16:65"},{"kind":"number","nativeSrc":"18736:1:65","nodeType":"YulLiteral","src":"18736:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18711:6:65","nodeType":"YulIdentifier","src":"18711:6:65"},"nativeSrc":"18711:27:65","nodeType":"YulFunctionCall","src":"18711:27:65"},"nativeSrc":"18711:27:65","nodeType":"YulExpressionStatement","src":"18711:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"18497:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"18541:3:65","nodeType":"YulTypedName","src":"18541:3:65","type":""},{"name":"dst","nativeSrc":"18546:3:65","nodeType":"YulTypedName","src":"18546:3:65","type":""},{"name":"length","nativeSrc":"18551:6:65","nodeType":"YulTypedName","src":"18551:6:65","type":""}],"src":"18497:248:65"},{"body":{"nativeSrc":"18841:283:65","nodeType":"YulBlock","src":"18841:283:65","statements":[{"nativeSrc":"18851:52:65","nodeType":"YulVariableDeclaration","src":"18851:52:65","value":{"arguments":[{"name":"value","nativeSrc":"18897:5:65","nodeType":"YulIdentifier","src":"18897:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"18865:31:65","nodeType":"YulIdentifier","src":"18865:31:65"},"nativeSrc":"18865:38:65","nodeType":"YulFunctionCall","src":"18865:38:65"},"variables":[{"name":"length","nativeSrc":"18855:6:65","nodeType":"YulTypedName","src":"18855:6:65","type":""}]},{"nativeSrc":"18912:77:65","nodeType":"YulAssignment","src":"18912:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"18977:3:65","nodeType":"YulIdentifier","src":"18977:3:65"},{"name":"length","nativeSrc":"18982:6:65","nodeType":"YulIdentifier","src":"18982:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"18919:57:65","nodeType":"YulIdentifier","src":"18919:57:65"},"nativeSrc":"18919:70:65","nodeType":"YulFunctionCall","src":"18919:70:65"},"variableNames":[{"name":"pos","nativeSrc":"18912:3:65","nodeType":"YulIdentifier","src":"18912:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19037:5:65","nodeType":"YulIdentifier","src":"19037:5:65"},{"kind":"number","nativeSrc":"19044:4:65","nodeType":"YulLiteral","src":"19044:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19033:3:65","nodeType":"YulIdentifier","src":"19033:3:65"},"nativeSrc":"19033:16:65","nodeType":"YulFunctionCall","src":"19033:16:65"},{"name":"pos","nativeSrc":"19051:3:65","nodeType":"YulIdentifier","src":"19051:3:65"},{"name":"length","nativeSrc":"19056:6:65","nodeType":"YulIdentifier","src":"19056:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"18998:34:65","nodeType":"YulIdentifier","src":"18998:34:65"},"nativeSrc":"18998:65:65","nodeType":"YulFunctionCall","src":"18998:65:65"},"nativeSrc":"18998:65:65","nodeType":"YulExpressionStatement","src":"18998:65:65"},{"nativeSrc":"19072:46:65","nodeType":"YulAssignment","src":"19072:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"19083:3:65","nodeType":"YulIdentifier","src":"19083:3:65"},{"arguments":[{"name":"length","nativeSrc":"19110:6:65","nodeType":"YulIdentifier","src":"19110:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"19088:21:65","nodeType":"YulIdentifier","src":"19088:21:65"},"nativeSrc":"19088:29:65","nodeType":"YulFunctionCall","src":"19088:29:65"}],"functionName":{"name":"add","nativeSrc":"19079:3:65","nodeType":"YulIdentifier","src":"19079:3:65"},"nativeSrc":"19079:39:65","nodeType":"YulFunctionCall","src":"19079:39:65"},"variableNames":[{"name":"end","nativeSrc":"19072:3:65","nodeType":"YulIdentifier","src":"19072:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"18751:373:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18822:5:65","nodeType":"YulTypedName","src":"18822:5:65","type":""},{"name":"pos","nativeSrc":"18829:3:65","nodeType":"YulTypedName","src":"18829:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18837:3:65","nodeType":"YulTypedName","src":"18837:3:65","type":""}],"src":"18751:373:65"},{"body":{"nativeSrc":"19246:193:65","nodeType":"YulBlock","src":"19246:193:65","statements":[{"nativeSrc":"19256:26:65","nodeType":"YulAssignment","src":"19256:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"19268:9:65","nodeType":"YulIdentifier","src":"19268:9:65"},{"kind":"number","nativeSrc":"19279:2:65","nodeType":"YulLiteral","src":"19279:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19264:3:65","nodeType":"YulIdentifier","src":"19264:3:65"},"nativeSrc":"19264:18:65","nodeType":"YulFunctionCall","src":"19264:18:65"},"variableNames":[{"name":"tail","nativeSrc":"19256:4:65","nodeType":"YulIdentifier","src":"19256:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19303:9:65","nodeType":"YulIdentifier","src":"19303:9:65"},{"kind":"number","nativeSrc":"19314:1:65","nodeType":"YulLiteral","src":"19314:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19299:3:65","nodeType":"YulIdentifier","src":"19299:3:65"},"nativeSrc":"19299:17:65","nodeType":"YulFunctionCall","src":"19299:17:65"},{"arguments":[{"name":"tail","nativeSrc":"19322:4:65","nodeType":"YulIdentifier","src":"19322:4:65"},{"name":"headStart","nativeSrc":"19328:9:65","nodeType":"YulIdentifier","src":"19328:9:65"}],"functionName":{"name":"sub","nativeSrc":"19318:3:65","nodeType":"YulIdentifier","src":"19318:3:65"},"nativeSrc":"19318:20:65","nodeType":"YulFunctionCall","src":"19318:20:65"}],"functionName":{"name":"mstore","nativeSrc":"19292:6:65","nodeType":"YulIdentifier","src":"19292:6:65"},"nativeSrc":"19292:47:65","nodeType":"YulFunctionCall","src":"19292:47:65"},"nativeSrc":"19292:47:65","nodeType":"YulExpressionStatement","src":"19292:47:65"},{"nativeSrc":"19348:84:65","nodeType":"YulAssignment","src":"19348:84:65","value":{"arguments":[{"name":"value0","nativeSrc":"19418:6:65","nodeType":"YulIdentifier","src":"19418:6:65"},{"name":"tail","nativeSrc":"19427:4:65","nodeType":"YulIdentifier","src":"19427:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"19356:61:65","nodeType":"YulIdentifier","src":"19356:61:65"},"nativeSrc":"19356:76:65","nodeType":"YulFunctionCall","src":"19356:76:65"},"variableNames":[{"name":"tail","nativeSrc":"19348:4:65","nodeType":"YulIdentifier","src":"19348:4:65"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"19130:309:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19218:9:65","nodeType":"YulTypedName","src":"19218:9:65","type":""},{"name":"value0","nativeSrc":"19230:6:65","nodeType":"YulTypedName","src":"19230:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19241:4:65","nodeType":"YulTypedName","src":"19241:4:65","type":""}],"src":"19130:309:65"},{"body":{"nativeSrc":"19662:1404:65","nodeType":"YulBlock","src":"19662:1404:65","statements":[{"body":{"nativeSrc":"19709:83:65","nodeType":"YulBlock","src":"19709:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19711:77:65","nodeType":"YulIdentifier","src":"19711:77:65"},"nativeSrc":"19711:79:65","nodeType":"YulFunctionCall","src":"19711:79:65"},"nativeSrc":"19711:79:65","nodeType":"YulExpressionStatement","src":"19711:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19683:7:65","nodeType":"YulIdentifier","src":"19683:7:65"},{"name":"headStart","nativeSrc":"19692:9:65","nodeType":"YulIdentifier","src":"19692:9:65"}],"functionName":{"name":"sub","nativeSrc":"19679:3:65","nodeType":"YulIdentifier","src":"19679:3:65"},"nativeSrc":"19679:23:65","nodeType":"YulFunctionCall","src":"19679:23:65"},{"kind":"number","nativeSrc":"19704:3:65","nodeType":"YulLiteral","src":"19704:3:65","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"19675:3:65","nodeType":"YulIdentifier","src":"19675:3:65"},"nativeSrc":"19675:33:65","nodeType":"YulFunctionCall","src":"19675:33:65"},"nativeSrc":"19672:120:65","nodeType":"YulIf","src":"19672:120:65"},{"nativeSrc":"19802:117:65","nodeType":"YulBlock","src":"19802:117:65","statements":[{"nativeSrc":"19817:15:65","nodeType":"YulVariableDeclaration","src":"19817:15:65","value":{"kind":"number","nativeSrc":"19831:1:65","nodeType":"YulLiteral","src":"19831:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19821:6:65","nodeType":"YulTypedName","src":"19821:6:65","type":""}]},{"nativeSrc":"19846:63:65","nodeType":"YulAssignment","src":"19846:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19881:9:65","nodeType":"YulIdentifier","src":"19881:9:65"},{"name":"offset","nativeSrc":"19892:6:65","nodeType":"YulIdentifier","src":"19892:6:65"}],"functionName":{"name":"add","nativeSrc":"19877:3:65","nodeType":"YulIdentifier","src":"19877:3:65"},"nativeSrc":"19877:22:65","nodeType":"YulFunctionCall","src":"19877:22:65"},{"name":"dataEnd","nativeSrc":"19901:7:65","nodeType":"YulIdentifier","src":"19901:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19856:20:65","nodeType":"YulIdentifier","src":"19856:20:65"},"nativeSrc":"19856:53:65","nodeType":"YulFunctionCall","src":"19856:53:65"},"variableNames":[{"name":"value0","nativeSrc":"19846:6:65","nodeType":"YulIdentifier","src":"19846:6:65"}]}]},{"nativeSrc":"19929:117:65","nodeType":"YulBlock","src":"19929:117:65","statements":[{"nativeSrc":"19944:16:65","nodeType":"YulVariableDeclaration","src":"19944:16:65","value":{"kind":"number","nativeSrc":"19958:2:65","nodeType":"YulLiteral","src":"19958:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"19948:6:65","nodeType":"YulTypedName","src":"19948:6:65","type":""}]},{"nativeSrc":"19974:62:65","nodeType":"YulAssignment","src":"19974:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20008:9:65","nodeType":"YulIdentifier","src":"20008:9:65"},{"name":"offset","nativeSrc":"20019:6:65","nodeType":"YulIdentifier","src":"20019:6:65"}],"functionName":{"name":"add","nativeSrc":"20004:3:65","nodeType":"YulIdentifier","src":"20004:3:65"},"nativeSrc":"20004:22:65","nodeType":"YulFunctionCall","src":"20004:22:65"},{"name":"dataEnd","nativeSrc":"20028:7:65","nodeType":"YulIdentifier","src":"20028:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"19984:19:65","nodeType":"YulIdentifier","src":"19984:19:65"},"nativeSrc":"19984:52:65","nodeType":"YulFunctionCall","src":"19984:52:65"},"variableNames":[{"name":"value1","nativeSrc":"19974:6:65","nodeType":"YulIdentifier","src":"19974:6:65"}]}]},{"nativeSrc":"20056:118:65","nodeType":"YulBlock","src":"20056:118:65","statements":[{"nativeSrc":"20071:16:65","nodeType":"YulVariableDeclaration","src":"20071:16:65","value":{"kind":"number","nativeSrc":"20085:2:65","nodeType":"YulLiteral","src":"20085:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"20075:6:65","nodeType":"YulTypedName","src":"20075:6:65","type":""}]},{"nativeSrc":"20101:63:65","nodeType":"YulAssignment","src":"20101:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20136:9:65","nodeType":"YulIdentifier","src":"20136:9:65"},{"name":"offset","nativeSrc":"20147:6:65","nodeType":"YulIdentifier","src":"20147:6:65"}],"functionName":{"name":"add","nativeSrc":"20132:3:65","nodeType":"YulIdentifier","src":"20132:3:65"},"nativeSrc":"20132:22:65","nodeType":"YulFunctionCall","src":"20132:22:65"},{"name":"dataEnd","nativeSrc":"20156:7:65","nodeType":"YulIdentifier","src":"20156:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"20111:20:65","nodeType":"YulIdentifier","src":"20111:20:65"},"nativeSrc":"20111:53:65","nodeType":"YulFunctionCall","src":"20111:53:65"},"variableNames":[{"name":"value2","nativeSrc":"20101:6:65","nodeType":"YulIdentifier","src":"20101:6:65"}]}]},{"nativeSrc":"20184:118:65","nodeType":"YulBlock","src":"20184:118:65","statements":[{"nativeSrc":"20199:16:65","nodeType":"YulVariableDeclaration","src":"20199:16:65","value":{"kind":"number","nativeSrc":"20213:2:65","nodeType":"YulLiteral","src":"20213:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"20203:6:65","nodeType":"YulTypedName","src":"20203:6:65","type":""}]},{"nativeSrc":"20229:63:65","nodeType":"YulAssignment","src":"20229:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20264:9:65","nodeType":"YulIdentifier","src":"20264:9:65"},{"name":"offset","nativeSrc":"20275:6:65","nodeType":"YulIdentifier","src":"20275:6:65"}],"functionName":{"name":"add","nativeSrc":"20260:3:65","nodeType":"YulIdentifier","src":"20260:3:65"},"nativeSrc":"20260:22:65","nodeType":"YulFunctionCall","src":"20260:22:65"},{"name":"dataEnd","nativeSrc":"20284:7:65","nodeType":"YulIdentifier","src":"20284:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"20239:20:65","nodeType":"YulIdentifier","src":"20239:20:65"},"nativeSrc":"20239:53:65","nodeType":"YulFunctionCall","src":"20239:53:65"},"variableNames":[{"name":"value3","nativeSrc":"20229:6:65","nodeType":"YulIdentifier","src":"20229:6:65"}]}]},{"nativeSrc":"20312:298:65","nodeType":"YulBlock","src":"20312:298:65","statements":[{"nativeSrc":"20327:47:65","nodeType":"YulVariableDeclaration","src":"20327:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20358:9:65","nodeType":"YulIdentifier","src":"20358:9:65"},{"kind":"number","nativeSrc":"20369:3:65","nodeType":"YulLiteral","src":"20369:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"20354:3:65","nodeType":"YulIdentifier","src":"20354:3:65"},"nativeSrc":"20354:19:65","nodeType":"YulFunctionCall","src":"20354:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"20341:12:65","nodeType":"YulIdentifier","src":"20341:12:65"},"nativeSrc":"20341:33:65","nodeType":"YulFunctionCall","src":"20341:33:65"},"variables":[{"name":"offset","nativeSrc":"20331:6:65","nodeType":"YulTypedName","src":"20331:6:65","type":""}]},{"body":{"nativeSrc":"20421:83:65","nodeType":"YulBlock","src":"20421:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"20423:77:65","nodeType":"YulIdentifier","src":"20423:77:65"},"nativeSrc":"20423:79:65","nodeType":"YulFunctionCall","src":"20423:79:65"},"nativeSrc":"20423:79:65","nodeType":"YulExpressionStatement","src":"20423:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20393:6:65","nodeType":"YulIdentifier","src":"20393:6:65"},{"kind":"number","nativeSrc":"20401:18:65","nodeType":"YulLiteral","src":"20401:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20390:2:65","nodeType":"YulIdentifier","src":"20390:2:65"},"nativeSrc":"20390:30:65","nodeType":"YulFunctionCall","src":"20390:30:65"},"nativeSrc":"20387:117:65","nodeType":"YulIf","src":"20387:117:65"},{"nativeSrc":"20518:82:65","nodeType":"YulAssignment","src":"20518:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20572:9:65","nodeType":"YulIdentifier","src":"20572:9:65"},{"name":"offset","nativeSrc":"20583:6:65","nodeType":"YulIdentifier","src":"20583:6:65"}],"functionName":{"name":"add","nativeSrc":"20568:3:65","nodeType":"YulIdentifier","src":"20568:3:65"},"nativeSrc":"20568:22:65","nodeType":"YulFunctionCall","src":"20568:22:65"},{"name":"dataEnd","nativeSrc":"20592:7:65","nodeType":"YulIdentifier","src":"20592:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"20536:31:65","nodeType":"YulIdentifier","src":"20536:31:65"},"nativeSrc":"20536:64:65","nodeType":"YulFunctionCall","src":"20536:64:65"},"variableNames":[{"name":"value4","nativeSrc":"20518:6:65","nodeType":"YulIdentifier","src":"20518:6:65"},{"name":"value5","nativeSrc":"20526:6:65","nodeType":"YulIdentifier","src":"20526:6:65"}]}]},{"nativeSrc":"20620:118:65","nodeType":"YulBlock","src":"20620:118:65","statements":[{"nativeSrc":"20635:17:65","nodeType":"YulVariableDeclaration","src":"20635:17:65","value":{"kind":"number","nativeSrc":"20649:3:65","nodeType":"YulLiteral","src":"20649:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"20639:6:65","nodeType":"YulTypedName","src":"20639:6:65","type":""}]},{"nativeSrc":"20666:62:65","nodeType":"YulAssignment","src":"20666:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20700:9:65","nodeType":"YulIdentifier","src":"20700:9:65"},{"name":"offset","nativeSrc":"20711:6:65","nodeType":"YulIdentifier","src":"20711:6:65"}],"functionName":{"name":"add","nativeSrc":"20696:3:65","nodeType":"YulIdentifier","src":"20696:3:65"},"nativeSrc":"20696:22:65","nodeType":"YulFunctionCall","src":"20696:22:65"},{"name":"dataEnd","nativeSrc":"20720:7:65","nodeType":"YulIdentifier","src":"20720:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"20676:19:65","nodeType":"YulIdentifier","src":"20676:19:65"},"nativeSrc":"20676:52:65","nodeType":"YulFunctionCall","src":"20676:52:65"},"variableNames":[{"name":"value6","nativeSrc":"20666:6:65","nodeType":"YulIdentifier","src":"20666:6:65"}]}]},{"nativeSrc":"20748:311:65","nodeType":"YulBlock","src":"20748:311:65","statements":[{"nativeSrc":"20763:47:65","nodeType":"YulVariableDeclaration","src":"20763:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20794:9:65","nodeType":"YulIdentifier","src":"20794:9:65"},{"kind":"number","nativeSrc":"20805:3:65","nodeType":"YulLiteral","src":"20805:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"20790:3:65","nodeType":"YulIdentifier","src":"20790:3:65"},"nativeSrc":"20790:19:65","nodeType":"YulFunctionCall","src":"20790:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"20777:12:65","nodeType":"YulIdentifier","src":"20777:12:65"},"nativeSrc":"20777:33:65","nodeType":"YulFunctionCall","src":"20777:33:65"},"variables":[{"name":"offset","nativeSrc":"20767:6:65","nodeType":"YulTypedName","src":"20767:6:65","type":""}]},{"body":{"nativeSrc":"20857:83:65","nodeType":"YulBlock","src":"20857:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"20859:77:65","nodeType":"YulIdentifier","src":"20859:77:65"},"nativeSrc":"20859:79:65","nodeType":"YulFunctionCall","src":"20859:79:65"},"nativeSrc":"20859:79:65","nodeType":"YulExpressionStatement","src":"20859:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"20829:6:65","nodeType":"YulIdentifier","src":"20829:6:65"},{"kind":"number","nativeSrc":"20837:18:65","nodeType":"YulLiteral","src":"20837:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20826:2:65","nodeType":"YulIdentifier","src":"20826:2:65"},"nativeSrc":"20826:30:65","nodeType":"YulFunctionCall","src":"20826:30:65"},"nativeSrc":"20823:117:65","nodeType":"YulIf","src":"20823:117:65"},{"nativeSrc":"20954:95:65","nodeType":"YulAssignment","src":"20954:95:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21021:9:65","nodeType":"YulIdentifier","src":"21021:9:65"},{"name":"offset","nativeSrc":"21032:6:65","nodeType":"YulIdentifier","src":"21032:6:65"}],"functionName":{"name":"add","nativeSrc":"21017:3:65","nodeType":"YulIdentifier","src":"21017:3:65"},"nativeSrc":"21017:22:65","nodeType":"YulFunctionCall","src":"21017:22:65"},{"name":"dataEnd","nativeSrc":"21041:7:65","nodeType":"YulIdentifier","src":"21041:7:65"}],"functionName":{"name":"abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"20964:52:65","nodeType":"YulIdentifier","src":"20964:52:65"},"nativeSrc":"20964:85:65","nodeType":"YulFunctionCall","src":"20964:85:65"},"variableNames":[{"name":"value7","nativeSrc":"20954:6:65","nodeType":"YulIdentifier","src":"20954:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr","nativeSrc":"19445:1621:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19576:9:65","nodeType":"YulTypedName","src":"19576:9:65","type":""},{"name":"dataEnd","nativeSrc":"19587:7:65","nodeType":"YulTypedName","src":"19587:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19599:6:65","nodeType":"YulTypedName","src":"19599:6:65","type":""},{"name":"value1","nativeSrc":"19607:6:65","nodeType":"YulTypedName","src":"19607:6:65","type":""},{"name":"value2","nativeSrc":"19615:6:65","nodeType":"YulTypedName","src":"19615:6:65","type":""},{"name":"value3","nativeSrc":"19623:6:65","nodeType":"YulTypedName","src":"19623:6:65","type":""},{"name":"value4","nativeSrc":"19631:6:65","nodeType":"YulTypedName","src":"19631:6:65","type":""},{"name":"value5","nativeSrc":"19639:6:65","nodeType":"YulTypedName","src":"19639:6:65","type":""},{"name":"value6","nativeSrc":"19647:6:65","nodeType":"YulTypedName","src":"19647:6:65","type":""},{"name":"value7","nativeSrc":"19655:6:65","nodeType":"YulTypedName","src":"19655:6:65","type":""}],"src":"19445:1621:65"},{"body":{"nativeSrc":"21138:263:65","nodeType":"YulBlock","src":"21138:263:65","statements":[{"body":{"nativeSrc":"21184:83:65","nodeType":"YulBlock","src":"21184:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"21186:77:65","nodeType":"YulIdentifier","src":"21186:77:65"},"nativeSrc":"21186:79:65","nodeType":"YulFunctionCall","src":"21186:79:65"},"nativeSrc":"21186:79:65","nodeType":"YulExpressionStatement","src":"21186:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21159:7:65","nodeType":"YulIdentifier","src":"21159:7:65"},{"name":"headStart","nativeSrc":"21168:9:65","nodeType":"YulIdentifier","src":"21168:9:65"}],"functionName":{"name":"sub","nativeSrc":"21155:3:65","nodeType":"YulIdentifier","src":"21155:3:65"},"nativeSrc":"21155:23:65","nodeType":"YulFunctionCall","src":"21155:23:65"},{"kind":"number","nativeSrc":"21180:2:65","nodeType":"YulLiteral","src":"21180:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21151:3:65","nodeType":"YulIdentifier","src":"21151:3:65"},"nativeSrc":"21151:32:65","nodeType":"YulFunctionCall","src":"21151:32:65"},"nativeSrc":"21148:119:65","nodeType":"YulIf","src":"21148:119:65"},{"nativeSrc":"21277:117:65","nodeType":"YulBlock","src":"21277:117:65","statements":[{"nativeSrc":"21292:15:65","nodeType":"YulVariableDeclaration","src":"21292:15:65","value":{"kind":"number","nativeSrc":"21306:1:65","nodeType":"YulLiteral","src":"21306:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21296:6:65","nodeType":"YulTypedName","src":"21296:6:65","type":""}]},{"nativeSrc":"21321:63:65","nodeType":"YulAssignment","src":"21321:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21356:9:65","nodeType":"YulIdentifier","src":"21356:9:65"},{"name":"offset","nativeSrc":"21367:6:65","nodeType":"YulIdentifier","src":"21367:6:65"}],"functionName":{"name":"add","nativeSrc":"21352:3:65","nodeType":"YulIdentifier","src":"21352:3:65"},"nativeSrc":"21352:22:65","nodeType":"YulFunctionCall","src":"21352:22:65"},{"name":"dataEnd","nativeSrc":"21376:7:65","nodeType":"YulIdentifier","src":"21376:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"21331:20:65","nodeType":"YulIdentifier","src":"21331:20:65"},"nativeSrc":"21331:53:65","nodeType":"YulFunctionCall","src":"21331:53:65"},"variableNames":[{"name":"value0","nativeSrc":"21321:6:65","nodeType":"YulIdentifier","src":"21321:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"21072:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21108:9:65","nodeType":"YulTypedName","src":"21108:9:65","type":""},{"name":"dataEnd","nativeSrc":"21119:7:65","nodeType":"YulTypedName","src":"21119:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21131:6:65","nodeType":"YulTypedName","src":"21131:6:65","type":""}],"src":"21072:329:65"},{"body":{"nativeSrc":"21439:28:65","nodeType":"YulBlock","src":"21439:28:65","statements":[{"nativeSrc":"21449:12:65","nodeType":"YulAssignment","src":"21449:12:65","value":{"name":"value","nativeSrc":"21456:5:65","nodeType":"YulIdentifier","src":"21456:5:65"},"variableNames":[{"name":"ret","nativeSrc":"21449:3:65","nodeType":"YulIdentifier","src":"21449:3:65"}]}]},"name":"identity","nativeSrc":"21407:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21425:5:65","nodeType":"YulTypedName","src":"21425:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"21435:3:65","nodeType":"YulTypedName","src":"21435:3:65","type":""}],"src":"21407:60:65"},{"body":{"nativeSrc":"21533:82:65","nodeType":"YulBlock","src":"21533:82:65","statements":[{"nativeSrc":"21543:66:65","nodeType":"YulAssignment","src":"21543:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21601:5:65","nodeType":"YulIdentifier","src":"21601:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"21583:17:65","nodeType":"YulIdentifier","src":"21583:17:65"},"nativeSrc":"21583:24:65","nodeType":"YulFunctionCall","src":"21583:24:65"}],"functionName":{"name":"identity","nativeSrc":"21574:8:65","nodeType":"YulIdentifier","src":"21574:8:65"},"nativeSrc":"21574:34:65","nodeType":"YulFunctionCall","src":"21574:34:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"21556:17:65","nodeType":"YulIdentifier","src":"21556:17:65"},"nativeSrc":"21556:53:65","nodeType":"YulFunctionCall","src":"21556:53:65"},"variableNames":[{"name":"converted","nativeSrc":"21543:9:65","nodeType":"YulIdentifier","src":"21543:9:65"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"21473:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21513:5:65","nodeType":"YulTypedName","src":"21513:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21523:9:65","nodeType":"YulTypedName","src":"21523:9:65","type":""}],"src":"21473:142:65"},{"body":{"nativeSrc":"21681:66:65","nodeType":"YulBlock","src":"21681:66:65","statements":[{"nativeSrc":"21691:50:65","nodeType":"YulAssignment","src":"21691:50:65","value":{"arguments":[{"name":"value","nativeSrc":"21735:5:65","nodeType":"YulIdentifier","src":"21735:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"21704:30:65","nodeType":"YulIdentifier","src":"21704:30:65"},"nativeSrc":"21704:37:65","nodeType":"YulFunctionCall","src":"21704:37:65"},"variableNames":[{"name":"converted","nativeSrc":"21691:9:65","nodeType":"YulIdentifier","src":"21691:9:65"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"21621:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21661:5:65","nodeType":"YulTypedName","src":"21661:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21671:9:65","nodeType":"YulTypedName","src":"21671:9:65","type":""}],"src":"21621:126:65"},{"body":{"nativeSrc":"21846:66:65","nodeType":"YulBlock","src":"21846:66:65","statements":[{"nativeSrc":"21856:50:65","nodeType":"YulAssignment","src":"21856:50:65","value":{"arguments":[{"name":"value","nativeSrc":"21900:5:65","nodeType":"YulIdentifier","src":"21900:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"21869:30:65","nodeType":"YulIdentifier","src":"21869:30:65"},"nativeSrc":"21869:37:65","nodeType":"YulFunctionCall","src":"21869:37:65"},"variableNames":[{"name":"converted","nativeSrc":"21856:9:65","nodeType":"YulIdentifier","src":"21856:9:65"}]}]},"name":"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address","nativeSrc":"21753:159:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21826:5:65","nodeType":"YulTypedName","src":"21826:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21836:9:65","nodeType":"YulTypedName","src":"21836:9:65","type":""}],"src":"21753:159:65"},{"body":{"nativeSrc":"22016:99:65","nodeType":"YulBlock","src":"22016:99:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22033:3:65","nodeType":"YulIdentifier","src":"22033:3:65"},{"arguments":[{"name":"value","nativeSrc":"22102:5:65","nodeType":"YulIdentifier","src":"22102:5:65"}],"functionName":{"name":"convert_t_contract$_ResilientOracleInterface_$8694_to_t_address","nativeSrc":"22038:63:65","nodeType":"YulIdentifier","src":"22038:63:65"},"nativeSrc":"22038:70:65","nodeType":"YulFunctionCall","src":"22038:70:65"}],"functionName":{"name":"mstore","nativeSrc":"22026:6:65","nodeType":"YulIdentifier","src":"22026:6:65"},"nativeSrc":"22026:83:65","nodeType":"YulFunctionCall","src":"22026:83:65"},"nativeSrc":"22026:83:65","nodeType":"YulExpressionStatement","src":"22026:83:65"}]},"name":"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack","nativeSrc":"21918:197:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22004:5:65","nodeType":"YulTypedName","src":"22004:5:65","type":""},{"name":"pos","nativeSrc":"22011:3:65","nodeType":"YulTypedName","src":"22011:3:65","type":""}],"src":"21918:197:65"},{"body":{"nativeSrc":"22252:157:65","nodeType":"YulBlock","src":"22252:157:65","statements":[{"nativeSrc":"22262:26:65","nodeType":"YulAssignment","src":"22262:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"22274:9:65","nodeType":"YulIdentifier","src":"22274:9:65"},{"kind":"number","nativeSrc":"22285:2:65","nodeType":"YulLiteral","src":"22285:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22270:3:65","nodeType":"YulIdentifier","src":"22270:3:65"},"nativeSrc":"22270:18:65","nodeType":"YulFunctionCall","src":"22270:18:65"},"variableNames":[{"name":"tail","nativeSrc":"22262:4:65","nodeType":"YulIdentifier","src":"22262:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22375:6:65","nodeType":"YulIdentifier","src":"22375:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"22388:9:65","nodeType":"YulIdentifier","src":"22388:9:65"},{"kind":"number","nativeSrc":"22399:1:65","nodeType":"YulLiteral","src":"22399:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22384:3:65","nodeType":"YulIdentifier","src":"22384:3:65"},"nativeSrc":"22384:17:65","nodeType":"YulFunctionCall","src":"22384:17:65"}],"functionName":{"name":"abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack","nativeSrc":"22298:76:65","nodeType":"YulIdentifier","src":"22298:76:65"},"nativeSrc":"22298:104:65","nodeType":"YulFunctionCall","src":"22298:104:65"},"nativeSrc":"22298:104:65","nodeType":"YulExpressionStatement","src":"22298:104:65"}]},"name":"abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed","nativeSrc":"22121:288:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22224:9:65","nodeType":"YulTypedName","src":"22224:9:65","type":""},{"name":"value0","nativeSrc":"22236:6:65","nodeType":"YulTypedName","src":"22236:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22247:4:65","nodeType":"YulTypedName","src":"22247:4:65","type":""}],"src":"22121:288:65"},{"body":{"nativeSrc":"22496:389:65","nodeType":"YulBlock","src":"22496:389:65","statements":[{"body":{"nativeSrc":"22542:83:65","nodeType":"YulBlock","src":"22542:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22544:77:65","nodeType":"YulIdentifier","src":"22544:77:65"},"nativeSrc":"22544:79:65","nodeType":"YulFunctionCall","src":"22544:79:65"},"nativeSrc":"22544:79:65","nodeType":"YulExpressionStatement","src":"22544:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22517:7:65","nodeType":"YulIdentifier","src":"22517:7:65"},{"name":"headStart","nativeSrc":"22526:9:65","nodeType":"YulIdentifier","src":"22526:9:65"}],"functionName":{"name":"sub","nativeSrc":"22513:3:65","nodeType":"YulIdentifier","src":"22513:3:65"},"nativeSrc":"22513:23:65","nodeType":"YulFunctionCall","src":"22513:23:65"},{"kind":"number","nativeSrc":"22538:2:65","nodeType":"YulLiteral","src":"22538:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"22509:3:65","nodeType":"YulIdentifier","src":"22509:3:65"},"nativeSrc":"22509:32:65","nodeType":"YulFunctionCall","src":"22509:32:65"},"nativeSrc":"22506:119:65","nodeType":"YulIf","src":"22506:119:65"},{"nativeSrc":"22635:116:65","nodeType":"YulBlock","src":"22635:116:65","statements":[{"nativeSrc":"22650:15:65","nodeType":"YulVariableDeclaration","src":"22650:15:65","value":{"kind":"number","nativeSrc":"22664:1:65","nodeType":"YulLiteral","src":"22664:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22654:6:65","nodeType":"YulTypedName","src":"22654:6:65","type":""}]},{"nativeSrc":"22679:62:65","nodeType":"YulAssignment","src":"22679:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22713:9:65","nodeType":"YulIdentifier","src":"22713:9:65"},{"name":"offset","nativeSrc":"22724:6:65","nodeType":"YulIdentifier","src":"22724:6:65"}],"functionName":{"name":"add","nativeSrc":"22709:3:65","nodeType":"YulIdentifier","src":"22709:3:65"},"nativeSrc":"22709:22:65","nodeType":"YulFunctionCall","src":"22709:22:65"},{"name":"dataEnd","nativeSrc":"22733:7:65","nodeType":"YulIdentifier","src":"22733:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22689:19:65","nodeType":"YulIdentifier","src":"22689:19:65"},"nativeSrc":"22689:52:65","nodeType":"YulFunctionCall","src":"22689:52:65"},"variableNames":[{"name":"value0","nativeSrc":"22679:6:65","nodeType":"YulIdentifier","src":"22679:6:65"}]}]},{"nativeSrc":"22761:117:65","nodeType":"YulBlock","src":"22761:117:65","statements":[{"nativeSrc":"22776:16:65","nodeType":"YulVariableDeclaration","src":"22776:16:65","value":{"kind":"number","nativeSrc":"22790:2:65","nodeType":"YulLiteral","src":"22790:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"22780:6:65","nodeType":"YulTypedName","src":"22780:6:65","type":""}]},{"nativeSrc":"22806:62:65","nodeType":"YulAssignment","src":"22806:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22840:9:65","nodeType":"YulIdentifier","src":"22840:9:65"},{"name":"offset","nativeSrc":"22851:6:65","nodeType":"YulIdentifier","src":"22851:6:65"}],"functionName":{"name":"add","nativeSrc":"22836:3:65","nodeType":"YulIdentifier","src":"22836:3:65"},"nativeSrc":"22836:22:65","nodeType":"YulFunctionCall","src":"22836:22:65"},{"name":"dataEnd","nativeSrc":"22860:7:65","nodeType":"YulIdentifier","src":"22860:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"22816:19:65","nodeType":"YulIdentifier","src":"22816:19:65"},"nativeSrc":"22816:52:65","nodeType":"YulFunctionCall","src":"22816:52:65"},"variableNames":[{"name":"value1","nativeSrc":"22806:6:65","nodeType":"YulIdentifier","src":"22806:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16","nativeSrc":"22415:470:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22458:9:65","nodeType":"YulTypedName","src":"22458:9:65","type":""},{"name":"dataEnd","nativeSrc":"22469:7:65","nodeType":"YulTypedName","src":"22469:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22481:6:65","nodeType":"YulTypedName","src":"22481:6:65","type":""},{"name":"value1","nativeSrc":"22489:6:65","nodeType":"YulTypedName","src":"22489:6:65","type":""}],"src":"22415:470:65"},{"body":{"nativeSrc":"22956:53:65","nodeType":"YulBlock","src":"22956:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22973:3:65","nodeType":"YulIdentifier","src":"22973:3:65"},{"arguments":[{"name":"value","nativeSrc":"22996:5:65","nodeType":"YulIdentifier","src":"22996:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"22978:17:65","nodeType":"YulIdentifier","src":"22978:17:65"},"nativeSrc":"22978:24:65","nodeType":"YulFunctionCall","src":"22978:24:65"}],"functionName":{"name":"mstore","nativeSrc":"22966:6:65","nodeType":"YulIdentifier","src":"22966:6:65"},"nativeSrc":"22966:37:65","nodeType":"YulFunctionCall","src":"22966:37:65"},"nativeSrc":"22966:37:65","nodeType":"YulExpressionStatement","src":"22966:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22891:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22944:5:65","nodeType":"YulTypedName","src":"22944:5:65","type":""},{"name":"pos","nativeSrc":"22951:3:65","nodeType":"YulTypedName","src":"22951:3:65","type":""}],"src":"22891:118:65"},{"body":{"nativeSrc":"23113:124:65","nodeType":"YulBlock","src":"23113:124:65","statements":[{"nativeSrc":"23123:26:65","nodeType":"YulAssignment","src":"23123:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"23135:9:65","nodeType":"YulIdentifier","src":"23135:9:65"},{"kind":"number","nativeSrc":"23146:2:65","nodeType":"YulLiteral","src":"23146:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"23131:3:65","nodeType":"YulIdentifier","src":"23131:3:65"},"nativeSrc":"23131:18:65","nodeType":"YulFunctionCall","src":"23131:18:65"},"variableNames":[{"name":"tail","nativeSrc":"23123:4:65","nodeType":"YulIdentifier","src":"23123:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"23203:6:65","nodeType":"YulIdentifier","src":"23203:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"23216:9:65","nodeType":"YulIdentifier","src":"23216:9:65"},{"kind":"number","nativeSrc":"23227:1:65","nodeType":"YulLiteral","src":"23227:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"23212:3:65","nodeType":"YulIdentifier","src":"23212:3:65"},"nativeSrc":"23212:17:65","nodeType":"YulFunctionCall","src":"23212:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"23159:43:65","nodeType":"YulIdentifier","src":"23159:43:65"},"nativeSrc":"23159:71:65","nodeType":"YulFunctionCall","src":"23159:71:65"},"nativeSrc":"23159:71:65","nodeType":"YulExpressionStatement","src":"23159:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"23015:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23085:9:65","nodeType":"YulTypedName","src":"23085:9:65","type":""},{"name":"value0","nativeSrc":"23097:6:65","nodeType":"YulTypedName","src":"23097:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"23108:4:65","nodeType":"YulTypedName","src":"23108:4:65","type":""}],"src":"23015:222:65"},{"body":{"nativeSrc":"23444:1388:65","nodeType":"YulBlock","src":"23444:1388:65","statements":[{"body":{"nativeSrc":"23491:83:65","nodeType":"YulBlock","src":"23491:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23493:77:65","nodeType":"YulIdentifier","src":"23493:77:65"},"nativeSrc":"23493:79:65","nodeType":"YulFunctionCall","src":"23493:79:65"},"nativeSrc":"23493:79:65","nodeType":"YulExpressionStatement","src":"23493:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23465:7:65","nodeType":"YulIdentifier","src":"23465:7:65"},{"name":"headStart","nativeSrc":"23474:9:65","nodeType":"YulIdentifier","src":"23474:9:65"}],"functionName":{"name":"sub","nativeSrc":"23461:3:65","nodeType":"YulIdentifier","src":"23461:3:65"},"nativeSrc":"23461:23:65","nodeType":"YulFunctionCall","src":"23461:23:65"},{"kind":"number","nativeSrc":"23486:3:65","nodeType":"YulLiteral","src":"23486:3:65","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"23457:3:65","nodeType":"YulIdentifier","src":"23457:3:65"},"nativeSrc":"23457:33:65","nodeType":"YulFunctionCall","src":"23457:33:65"},"nativeSrc":"23454:120:65","nodeType":"YulIf","src":"23454:120:65"},{"nativeSrc":"23584:116:65","nodeType":"YulBlock","src":"23584:116:65","statements":[{"nativeSrc":"23599:15:65","nodeType":"YulVariableDeclaration","src":"23599:15:65","value":{"kind":"number","nativeSrc":"23613:1:65","nodeType":"YulLiteral","src":"23613:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23603:6:65","nodeType":"YulTypedName","src":"23603:6:65","type":""}]},{"nativeSrc":"23628:62:65","nodeType":"YulAssignment","src":"23628:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23662:9:65","nodeType":"YulIdentifier","src":"23662:9:65"},{"name":"offset","nativeSrc":"23673:6:65","nodeType":"YulIdentifier","src":"23673:6:65"}],"functionName":{"name":"add","nativeSrc":"23658:3:65","nodeType":"YulIdentifier","src":"23658:3:65"},"nativeSrc":"23658:22:65","nodeType":"YulFunctionCall","src":"23658:22:65"},{"name":"dataEnd","nativeSrc":"23682:7:65","nodeType":"YulIdentifier","src":"23682:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"23638:19:65","nodeType":"YulIdentifier","src":"23638:19:65"},"nativeSrc":"23638:52:65","nodeType":"YulFunctionCall","src":"23638:52:65"},"variableNames":[{"name":"value0","nativeSrc":"23628:6:65","nodeType":"YulIdentifier","src":"23628:6:65"}]}]},{"nativeSrc":"23710:118:65","nodeType":"YulBlock","src":"23710:118:65","statements":[{"nativeSrc":"23725:16:65","nodeType":"YulVariableDeclaration","src":"23725:16:65","value":{"kind":"number","nativeSrc":"23739:2:65","nodeType":"YulLiteral","src":"23739:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23729:6:65","nodeType":"YulTypedName","src":"23729:6:65","type":""}]},{"nativeSrc":"23755:63:65","nodeType":"YulAssignment","src":"23755:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23790:9:65","nodeType":"YulIdentifier","src":"23790:9:65"},{"name":"offset","nativeSrc":"23801:6:65","nodeType":"YulIdentifier","src":"23801:6:65"}],"functionName":{"name":"add","nativeSrc":"23786:3:65","nodeType":"YulIdentifier","src":"23786:3:65"},"nativeSrc":"23786:22:65","nodeType":"YulFunctionCall","src":"23786:22:65"},{"name":"dataEnd","nativeSrc":"23810:7:65","nodeType":"YulIdentifier","src":"23810:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"23765:20:65","nodeType":"YulIdentifier","src":"23765:20:65"},"nativeSrc":"23765:53:65","nodeType":"YulFunctionCall","src":"23765:53:65"},"variableNames":[{"name":"value1","nativeSrc":"23755:6:65","nodeType":"YulIdentifier","src":"23755:6:65"}]}]},{"nativeSrc":"23838:118:65","nodeType":"YulBlock","src":"23838:118:65","statements":[{"nativeSrc":"23853:16:65","nodeType":"YulVariableDeclaration","src":"23853:16:65","value":{"kind":"number","nativeSrc":"23867:2:65","nodeType":"YulLiteral","src":"23867:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"23857:6:65","nodeType":"YulTypedName","src":"23857:6:65","type":""}]},{"nativeSrc":"23883:63:65","nodeType":"YulAssignment","src":"23883:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23918:9:65","nodeType":"YulIdentifier","src":"23918:9:65"},{"name":"offset","nativeSrc":"23929:6:65","nodeType":"YulIdentifier","src":"23929:6:65"}],"functionName":{"name":"add","nativeSrc":"23914:3:65","nodeType":"YulIdentifier","src":"23914:3:65"},"nativeSrc":"23914:22:65","nodeType":"YulFunctionCall","src":"23914:22:65"},{"name":"dataEnd","nativeSrc":"23938:7:65","nodeType":"YulIdentifier","src":"23938:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"23893:20:65","nodeType":"YulIdentifier","src":"23893:20:65"},"nativeSrc":"23893:53:65","nodeType":"YulFunctionCall","src":"23893:53:65"},"variableNames":[{"name":"value2","nativeSrc":"23883:6:65","nodeType":"YulIdentifier","src":"23883:6:65"}]}]},{"nativeSrc":"23966:297:65","nodeType":"YulBlock","src":"23966:297:65","statements":[{"nativeSrc":"23981:46:65","nodeType":"YulVariableDeclaration","src":"23981:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24012:9:65","nodeType":"YulIdentifier","src":"24012:9:65"},{"kind":"number","nativeSrc":"24023:2:65","nodeType":"YulLiteral","src":"24023:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"24008:3:65","nodeType":"YulIdentifier","src":"24008:3:65"},"nativeSrc":"24008:18:65","nodeType":"YulFunctionCall","src":"24008:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"23995:12:65","nodeType":"YulIdentifier","src":"23995:12:65"},"nativeSrc":"23995:32:65","nodeType":"YulFunctionCall","src":"23995:32:65"},"variables":[{"name":"offset","nativeSrc":"23985:6:65","nodeType":"YulTypedName","src":"23985:6:65","type":""}]},{"body":{"nativeSrc":"24074:83:65","nodeType":"YulBlock","src":"24074:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24076:77:65","nodeType":"YulIdentifier","src":"24076:77:65"},"nativeSrc":"24076:79:65","nodeType":"YulFunctionCall","src":"24076:79:65"},"nativeSrc":"24076:79:65","nodeType":"YulExpressionStatement","src":"24076:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24046:6:65","nodeType":"YulIdentifier","src":"24046:6:65"},{"kind":"number","nativeSrc":"24054:18:65","nodeType":"YulLiteral","src":"24054:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24043:2:65","nodeType":"YulIdentifier","src":"24043:2:65"},"nativeSrc":"24043:30:65","nodeType":"YulFunctionCall","src":"24043:30:65"},"nativeSrc":"24040:117:65","nodeType":"YulIf","src":"24040:117:65"},{"nativeSrc":"24171:82:65","nodeType":"YulAssignment","src":"24171:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24225:9:65","nodeType":"YulIdentifier","src":"24225:9:65"},{"name":"offset","nativeSrc":"24236:6:65","nodeType":"YulIdentifier","src":"24236:6:65"}],"functionName":{"name":"add","nativeSrc":"24221:3:65","nodeType":"YulIdentifier","src":"24221:3:65"},"nativeSrc":"24221:22:65","nodeType":"YulFunctionCall","src":"24221:22:65"},{"name":"dataEnd","nativeSrc":"24245:7:65","nodeType":"YulIdentifier","src":"24245:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"24189:31:65","nodeType":"YulIdentifier","src":"24189:31:65"},"nativeSrc":"24189:64:65","nodeType":"YulFunctionCall","src":"24189:64:65"},"variableNames":[{"name":"value3","nativeSrc":"24171:6:65","nodeType":"YulIdentifier","src":"24171:6:65"},{"name":"value4","nativeSrc":"24179:6:65","nodeType":"YulIdentifier","src":"24179:6:65"}]}]},{"nativeSrc":"24273:118:65","nodeType":"YulBlock","src":"24273:118:65","statements":[{"nativeSrc":"24288:17:65","nodeType":"YulVariableDeclaration","src":"24288:17:65","value":{"kind":"number","nativeSrc":"24302:3:65","nodeType":"YulLiteral","src":"24302:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"24292:6:65","nodeType":"YulTypedName","src":"24292:6:65","type":""}]},{"nativeSrc":"24319:62:65","nodeType":"YulAssignment","src":"24319:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24353:9:65","nodeType":"YulIdentifier","src":"24353:9:65"},{"name":"offset","nativeSrc":"24364:6:65","nodeType":"YulIdentifier","src":"24364:6:65"}],"functionName":{"name":"add","nativeSrc":"24349:3:65","nodeType":"YulIdentifier","src":"24349:3:65"},"nativeSrc":"24349:22:65","nodeType":"YulFunctionCall","src":"24349:22:65"},{"name":"dataEnd","nativeSrc":"24373:7:65","nodeType":"YulIdentifier","src":"24373:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"24329:19:65","nodeType":"YulIdentifier","src":"24329:19:65"},"nativeSrc":"24329:52:65","nodeType":"YulFunctionCall","src":"24329:52:65"},"variableNames":[{"name":"value5","nativeSrc":"24319:6:65","nodeType":"YulIdentifier","src":"24319:6:65"}]}]},{"nativeSrc":"24401:116:65","nodeType":"YulBlock","src":"24401:116:65","statements":[{"nativeSrc":"24416:17:65","nodeType":"YulVariableDeclaration","src":"24416:17:65","value":{"kind":"number","nativeSrc":"24430:3:65","nodeType":"YulLiteral","src":"24430:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"24420:6:65","nodeType":"YulTypedName","src":"24420:6:65","type":""}]},{"nativeSrc":"24447:60:65","nodeType":"YulAssignment","src":"24447:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24479:9:65","nodeType":"YulIdentifier","src":"24479:9:65"},{"name":"offset","nativeSrc":"24490:6:65","nodeType":"YulIdentifier","src":"24490:6:65"}],"functionName":{"name":"add","nativeSrc":"24475:3:65","nodeType":"YulIdentifier","src":"24475:3:65"},"nativeSrc":"24475:22:65","nodeType":"YulFunctionCall","src":"24475:22:65"},{"name":"dataEnd","nativeSrc":"24499:7:65","nodeType":"YulIdentifier","src":"24499:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"24457:17:65","nodeType":"YulIdentifier","src":"24457:17:65"},"nativeSrc":"24457:50:65","nodeType":"YulFunctionCall","src":"24457:50:65"},"variableNames":[{"name":"value6","nativeSrc":"24447:6:65","nodeType":"YulIdentifier","src":"24447:6:65"}]}]},{"nativeSrc":"24527:298:65","nodeType":"YulBlock","src":"24527:298:65","statements":[{"nativeSrc":"24542:47:65","nodeType":"YulVariableDeclaration","src":"24542:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24573:9:65","nodeType":"YulIdentifier","src":"24573:9:65"},{"kind":"number","nativeSrc":"24584:3:65","nodeType":"YulLiteral","src":"24584:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"24569:3:65","nodeType":"YulIdentifier","src":"24569:3:65"},"nativeSrc":"24569:19:65","nodeType":"YulFunctionCall","src":"24569:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"24556:12:65","nodeType":"YulIdentifier","src":"24556:12:65"},"nativeSrc":"24556:33:65","nodeType":"YulFunctionCall","src":"24556:33:65"},"variables":[{"name":"offset","nativeSrc":"24546:6:65","nodeType":"YulTypedName","src":"24546:6:65","type":""}]},{"body":{"nativeSrc":"24636:83:65","nodeType":"YulBlock","src":"24636:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24638:77:65","nodeType":"YulIdentifier","src":"24638:77:65"},"nativeSrc":"24638:79:65","nodeType":"YulFunctionCall","src":"24638:79:65"},"nativeSrc":"24638:79:65","nodeType":"YulExpressionStatement","src":"24638:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24608:6:65","nodeType":"YulIdentifier","src":"24608:6:65"},{"kind":"number","nativeSrc":"24616:18:65","nodeType":"YulLiteral","src":"24616:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24605:2:65","nodeType":"YulIdentifier","src":"24605:2:65"},"nativeSrc":"24605:30:65","nodeType":"YulFunctionCall","src":"24605:30:65"},"nativeSrc":"24602:117:65","nodeType":"YulIf","src":"24602:117:65"},{"nativeSrc":"24733:82:65","nodeType":"YulAssignment","src":"24733:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24787:9:65","nodeType":"YulIdentifier","src":"24787:9:65"},{"name":"offset","nativeSrc":"24798:6:65","nodeType":"YulIdentifier","src":"24798:6:65"}],"functionName":{"name":"add","nativeSrc":"24783:3:65","nodeType":"YulIdentifier","src":"24783:3:65"},"nativeSrc":"24783:22:65","nodeType":"YulFunctionCall","src":"24783:22:65"},{"name":"dataEnd","nativeSrc":"24807:7:65","nodeType":"YulIdentifier","src":"24807:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"24751:31:65","nodeType":"YulIdentifier","src":"24751:31:65"},"nativeSrc":"24751:64:65","nodeType":"YulFunctionCall","src":"24751:64:65"},"variableNames":[{"name":"value7","nativeSrc":"24733:6:65","nodeType":"YulIdentifier","src":"24733:6:65"},{"name":"value8","nativeSrc":"24741:6:65","nodeType":"YulIdentifier","src":"24741:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr","nativeSrc":"23243:1589:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23350:9:65","nodeType":"YulTypedName","src":"23350:9:65","type":""},{"name":"dataEnd","nativeSrc":"23361:7:65","nodeType":"YulTypedName","src":"23361:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23373:6:65","nodeType":"YulTypedName","src":"23373:6:65","type":""},{"name":"value1","nativeSrc":"23381:6:65","nodeType":"YulTypedName","src":"23381:6:65","type":""},{"name":"value2","nativeSrc":"23389:6:65","nodeType":"YulTypedName","src":"23389:6:65","type":""},{"name":"value3","nativeSrc":"23397:6:65","nodeType":"YulTypedName","src":"23397:6:65","type":""},{"name":"value4","nativeSrc":"23405:6:65","nodeType":"YulTypedName","src":"23405:6:65","type":""},{"name":"value5","nativeSrc":"23413:6:65","nodeType":"YulTypedName","src":"23413:6:65","type":""},{"name":"value6","nativeSrc":"23421:6:65","nodeType":"YulTypedName","src":"23421:6:65","type":""},{"name":"value7","nativeSrc":"23429:6:65","nodeType":"YulTypedName","src":"23429:6:65","type":""},{"name":"value8","nativeSrc":"23437:6:65","nodeType":"YulTypedName","src":"23437:6:65","type":""}],"src":"23243:1589:65"},{"body":{"nativeSrc":"24925:66:65","nodeType":"YulBlock","src":"24925:66:65","statements":[{"nativeSrc":"24935:50:65","nodeType":"YulAssignment","src":"24935:50:65","value":{"arguments":[{"name":"value","nativeSrc":"24979:5:65","nodeType":"YulIdentifier","src":"24979:5:65"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"24948:30:65","nodeType":"YulIdentifier","src":"24948:30:65"},"nativeSrc":"24948:37:65","nodeType":"YulFunctionCall","src":"24948:37:65"},"variableNames":[{"name":"converted","nativeSrc":"24935:9:65","nodeType":"YulIdentifier","src":"24935:9:65"}]}]},"name":"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address","nativeSrc":"24838:153:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24905:5:65","nodeType":"YulTypedName","src":"24905:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"24915:9:65","nodeType":"YulTypedName","src":"24915:9:65","type":""}],"src":"24838:153:65"},{"body":{"nativeSrc":"25089:93:65","nodeType":"YulBlock","src":"25089:93:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25106:3:65","nodeType":"YulIdentifier","src":"25106:3:65"},{"arguments":[{"name":"value","nativeSrc":"25169:5:65","nodeType":"YulIdentifier","src":"25169:5:65"}],"functionName":{"name":"convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address","nativeSrc":"25111:57:65","nodeType":"YulIdentifier","src":"25111:57:65"},"nativeSrc":"25111:64:65","nodeType":"YulFunctionCall","src":"25111:64:65"}],"functionName":{"name":"mstore","nativeSrc":"25099:6:65","nodeType":"YulIdentifier","src":"25099:6:65"},"nativeSrc":"25099:77:65","nodeType":"YulFunctionCall","src":"25099:77:65"},"nativeSrc":"25099:77:65","nodeType":"YulExpressionStatement","src":"25099:77:65"}]},"name":"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack","nativeSrc":"24997:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25077:5:65","nodeType":"YulTypedName","src":"25077:5:65","type":""},{"name":"pos","nativeSrc":"25084:3:65","nodeType":"YulTypedName","src":"25084:3:65","type":""}],"src":"24997:185:65"},{"body":{"nativeSrc":"25313:151:65","nodeType":"YulBlock","src":"25313:151:65","statements":[{"nativeSrc":"25323:26:65","nodeType":"YulAssignment","src":"25323:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"25335:9:65","nodeType":"YulIdentifier","src":"25335:9:65"},{"kind":"number","nativeSrc":"25346:2:65","nodeType":"YulLiteral","src":"25346:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25331:3:65","nodeType":"YulIdentifier","src":"25331:3:65"},"nativeSrc":"25331:18:65","nodeType":"YulFunctionCall","src":"25331:18:65"},"variableNames":[{"name":"tail","nativeSrc":"25323:4:65","nodeType":"YulIdentifier","src":"25323:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25430:6:65","nodeType":"YulIdentifier","src":"25430:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"25443:9:65","nodeType":"YulIdentifier","src":"25443:9:65"},{"kind":"number","nativeSrc":"25454:1:65","nodeType":"YulLiteral","src":"25454:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25439:3:65","nodeType":"YulIdentifier","src":"25439:3:65"},"nativeSrc":"25439:17:65","nodeType":"YulFunctionCall","src":"25439:17:65"}],"functionName":{"name":"abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack","nativeSrc":"25359:70:65","nodeType":"YulIdentifier","src":"25359:70:65"},"nativeSrc":"25359:98:65","nodeType":"YulFunctionCall","src":"25359:98:65"},"nativeSrc":"25359:98:65","nodeType":"YulExpressionStatement","src":"25359:98:65"}]},"name":"abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed","nativeSrc":"25188:276:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25285:9:65","nodeType":"YulTypedName","src":"25285:9:65","type":""},{"name":"value0","nativeSrc":"25297:6:65","nodeType":"YulTypedName","src":"25297:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25308:4:65","nodeType":"YulTypedName","src":"25308:4:65","type":""}],"src":"25188:276:65"},{"body":{"nativeSrc":"25604:825:65","nodeType":"YulBlock","src":"25604:825:65","statements":[{"body":{"nativeSrc":"25651:83:65","nodeType":"YulBlock","src":"25651:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"25653:77:65","nodeType":"YulIdentifier","src":"25653:77:65"},"nativeSrc":"25653:79:65","nodeType":"YulFunctionCall","src":"25653:79:65"},"nativeSrc":"25653:79:65","nodeType":"YulExpressionStatement","src":"25653:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25625:7:65","nodeType":"YulIdentifier","src":"25625:7:65"},{"name":"headStart","nativeSrc":"25634:9:65","nodeType":"YulIdentifier","src":"25634:9:65"}],"functionName":{"name":"sub","nativeSrc":"25621:3:65","nodeType":"YulIdentifier","src":"25621:3:65"},"nativeSrc":"25621:23:65","nodeType":"YulFunctionCall","src":"25621:23:65"},{"kind":"number","nativeSrc":"25646:3:65","nodeType":"YulLiteral","src":"25646:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"25617:3:65","nodeType":"YulIdentifier","src":"25617:3:65"},"nativeSrc":"25617:33:65","nodeType":"YulFunctionCall","src":"25617:33:65"},"nativeSrc":"25614:120:65","nodeType":"YulIf","src":"25614:120:65"},{"nativeSrc":"25744:116:65","nodeType":"YulBlock","src":"25744:116:65","statements":[{"nativeSrc":"25759:15:65","nodeType":"YulVariableDeclaration","src":"25759:15:65","value":{"kind":"number","nativeSrc":"25773:1:65","nodeType":"YulLiteral","src":"25773:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"25763:6:65","nodeType":"YulTypedName","src":"25763:6:65","type":""}]},{"nativeSrc":"25788:62:65","nodeType":"YulAssignment","src":"25788:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25822:9:65","nodeType":"YulIdentifier","src":"25822:9:65"},{"name":"offset","nativeSrc":"25833:6:65","nodeType":"YulIdentifier","src":"25833:6:65"}],"functionName":{"name":"add","nativeSrc":"25818:3:65","nodeType":"YulIdentifier","src":"25818:3:65"},"nativeSrc":"25818:22:65","nodeType":"YulFunctionCall","src":"25818:22:65"},{"name":"dataEnd","nativeSrc":"25842:7:65","nodeType":"YulIdentifier","src":"25842:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"25798:19:65","nodeType":"YulIdentifier","src":"25798:19:65"},"nativeSrc":"25798:52:65","nodeType":"YulFunctionCall","src":"25798:52:65"},"variableNames":[{"name":"value0","nativeSrc":"25788:6:65","nodeType":"YulIdentifier","src":"25788:6:65"}]}]},{"nativeSrc":"25870:117:65","nodeType":"YulBlock","src":"25870:117:65","statements":[{"nativeSrc":"25885:16:65","nodeType":"YulVariableDeclaration","src":"25885:16:65","value":{"kind":"number","nativeSrc":"25899:2:65","nodeType":"YulLiteral","src":"25899:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"25889:6:65","nodeType":"YulTypedName","src":"25889:6:65","type":""}]},{"nativeSrc":"25915:62:65","nodeType":"YulAssignment","src":"25915:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25949:9:65","nodeType":"YulIdentifier","src":"25949:9:65"},{"name":"offset","nativeSrc":"25960:6:65","nodeType":"YulIdentifier","src":"25960:6:65"}],"functionName":{"name":"add","nativeSrc":"25945:3:65","nodeType":"YulIdentifier","src":"25945:3:65"},"nativeSrc":"25945:22:65","nodeType":"YulFunctionCall","src":"25945:22:65"},{"name":"dataEnd","nativeSrc":"25969:7:65","nodeType":"YulIdentifier","src":"25969:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"25925:19:65","nodeType":"YulIdentifier","src":"25925:19:65"},"nativeSrc":"25925:52:65","nodeType":"YulFunctionCall","src":"25925:52:65"},"variableNames":[{"name":"value1","nativeSrc":"25915:6:65","nodeType":"YulIdentifier","src":"25915:6:65"}]}]},{"nativeSrc":"25997:118:65","nodeType":"YulBlock","src":"25997:118:65","statements":[{"nativeSrc":"26012:16:65","nodeType":"YulVariableDeclaration","src":"26012:16:65","value":{"kind":"number","nativeSrc":"26026:2:65","nodeType":"YulLiteral","src":"26026:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"26016:6:65","nodeType":"YulTypedName","src":"26016:6:65","type":""}]},{"nativeSrc":"26042:63:65","nodeType":"YulAssignment","src":"26042:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26077:9:65","nodeType":"YulIdentifier","src":"26077:9:65"},{"name":"offset","nativeSrc":"26088:6:65","nodeType":"YulIdentifier","src":"26088:6:65"}],"functionName":{"name":"add","nativeSrc":"26073:3:65","nodeType":"YulIdentifier","src":"26073:3:65"},"nativeSrc":"26073:22:65","nodeType":"YulFunctionCall","src":"26073:22:65"},{"name":"dataEnd","nativeSrc":"26097:7:65","nodeType":"YulIdentifier","src":"26097:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"26052:20:65","nodeType":"YulIdentifier","src":"26052:20:65"},"nativeSrc":"26052:53:65","nodeType":"YulFunctionCall","src":"26052:53:65"},"variableNames":[{"name":"value2","nativeSrc":"26042:6:65","nodeType":"YulIdentifier","src":"26042:6:65"}]}]},{"nativeSrc":"26125:297:65","nodeType":"YulBlock","src":"26125:297:65","statements":[{"nativeSrc":"26140:46:65","nodeType":"YulVariableDeclaration","src":"26140:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26171:9:65","nodeType":"YulIdentifier","src":"26171:9:65"},{"kind":"number","nativeSrc":"26182:2:65","nodeType":"YulLiteral","src":"26182:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"26167:3:65","nodeType":"YulIdentifier","src":"26167:3:65"},"nativeSrc":"26167:18:65","nodeType":"YulFunctionCall","src":"26167:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"26154:12:65","nodeType":"YulIdentifier","src":"26154:12:65"},"nativeSrc":"26154:32:65","nodeType":"YulFunctionCall","src":"26154:32:65"},"variables":[{"name":"offset","nativeSrc":"26144:6:65","nodeType":"YulTypedName","src":"26144:6:65","type":""}]},{"body":{"nativeSrc":"26233:83:65","nodeType":"YulBlock","src":"26233:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"26235:77:65","nodeType":"YulIdentifier","src":"26235:77:65"},"nativeSrc":"26235:79:65","nodeType":"YulFunctionCall","src":"26235:79:65"},"nativeSrc":"26235:79:65","nodeType":"YulExpressionStatement","src":"26235:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"26205:6:65","nodeType":"YulIdentifier","src":"26205:6:65"},{"kind":"number","nativeSrc":"26213:18:65","nodeType":"YulLiteral","src":"26213:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26202:2:65","nodeType":"YulIdentifier","src":"26202:2:65"},"nativeSrc":"26202:30:65","nodeType":"YulFunctionCall","src":"26202:30:65"},"nativeSrc":"26199:117:65","nodeType":"YulIf","src":"26199:117:65"},{"nativeSrc":"26330:82:65","nodeType":"YulAssignment","src":"26330:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26384:9:65","nodeType":"YulIdentifier","src":"26384:9:65"},{"name":"offset","nativeSrc":"26395:6:65","nodeType":"YulIdentifier","src":"26395:6:65"}],"functionName":{"name":"add","nativeSrc":"26380:3:65","nodeType":"YulIdentifier","src":"26380:3:65"},"nativeSrc":"26380:22:65","nodeType":"YulFunctionCall","src":"26380:22:65"},{"name":"dataEnd","nativeSrc":"26404:7:65","nodeType":"YulIdentifier","src":"26404:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"26348:31:65","nodeType":"YulIdentifier","src":"26348:31:65"},"nativeSrc":"26348:64:65","nodeType":"YulFunctionCall","src":"26348:64:65"},"variableNames":[{"name":"value3","nativeSrc":"26330:6:65","nodeType":"YulIdentifier","src":"26330:6:65"},{"name":"value4","nativeSrc":"26338:6:65","nodeType":"YulIdentifier","src":"26338:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr","nativeSrc":"25470:959:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25542:9:65","nodeType":"YulTypedName","src":"25542:9:65","type":""},{"name":"dataEnd","nativeSrc":"25553:7:65","nodeType":"YulTypedName","src":"25553:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25565:6:65","nodeType":"YulTypedName","src":"25565:6:65","type":""},{"name":"value1","nativeSrc":"25573:6:65","nodeType":"YulTypedName","src":"25573:6:65","type":""},{"name":"value2","nativeSrc":"25581:6:65","nodeType":"YulTypedName","src":"25581:6:65","type":""},{"name":"value3","nativeSrc":"25589:6:65","nodeType":"YulTypedName","src":"25589:6:65","type":""},{"name":"value4","nativeSrc":"25597:6:65","nodeType":"YulTypedName","src":"25597:6:65","type":""}],"src":"25470:959:65"},{"body":{"nativeSrc":"26533:517:65","nodeType":"YulBlock","src":"26533:517:65","statements":[{"body":{"nativeSrc":"26579:83:65","nodeType":"YulBlock","src":"26579:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26581:77:65","nodeType":"YulIdentifier","src":"26581:77:65"},"nativeSrc":"26581:79:65","nodeType":"YulFunctionCall","src":"26581:79:65"},"nativeSrc":"26581:79:65","nodeType":"YulExpressionStatement","src":"26581:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26554:7:65","nodeType":"YulIdentifier","src":"26554:7:65"},{"name":"headStart","nativeSrc":"26563:9:65","nodeType":"YulIdentifier","src":"26563:9:65"}],"functionName":{"name":"sub","nativeSrc":"26550:3:65","nodeType":"YulIdentifier","src":"26550:3:65"},"nativeSrc":"26550:23:65","nodeType":"YulFunctionCall","src":"26550:23:65"},{"kind":"number","nativeSrc":"26575:2:65","nodeType":"YulLiteral","src":"26575:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"26546:3:65","nodeType":"YulIdentifier","src":"26546:3:65"},"nativeSrc":"26546:32:65","nodeType":"YulFunctionCall","src":"26546:32:65"},"nativeSrc":"26543:119:65","nodeType":"YulIf","src":"26543:119:65"},{"nativeSrc":"26672:116:65","nodeType":"YulBlock","src":"26672:116:65","statements":[{"nativeSrc":"26687:15:65","nodeType":"YulVariableDeclaration","src":"26687:15:65","value":{"kind":"number","nativeSrc":"26701:1:65","nodeType":"YulLiteral","src":"26701:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26691:6:65","nodeType":"YulTypedName","src":"26691:6:65","type":""}]},{"nativeSrc":"26716:62:65","nodeType":"YulAssignment","src":"26716:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26750:9:65","nodeType":"YulIdentifier","src":"26750:9:65"},{"name":"offset","nativeSrc":"26761:6:65","nodeType":"YulIdentifier","src":"26761:6:65"}],"functionName":{"name":"add","nativeSrc":"26746:3:65","nodeType":"YulIdentifier","src":"26746:3:65"},"nativeSrc":"26746:22:65","nodeType":"YulFunctionCall","src":"26746:22:65"},{"name":"dataEnd","nativeSrc":"26770:7:65","nodeType":"YulIdentifier","src":"26770:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"26726:19:65","nodeType":"YulIdentifier","src":"26726:19:65"},"nativeSrc":"26726:52:65","nodeType":"YulFunctionCall","src":"26726:52:65"},"variableNames":[{"name":"value0","nativeSrc":"26716:6:65","nodeType":"YulIdentifier","src":"26716:6:65"}]}]},{"nativeSrc":"26798:117:65","nodeType":"YulBlock","src":"26798:117:65","statements":[{"nativeSrc":"26813:16:65","nodeType":"YulVariableDeclaration","src":"26813:16:65","value":{"kind":"number","nativeSrc":"26827:2:65","nodeType":"YulLiteral","src":"26827:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"26817:6:65","nodeType":"YulTypedName","src":"26817:6:65","type":""}]},{"nativeSrc":"26843:62:65","nodeType":"YulAssignment","src":"26843:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26877:9:65","nodeType":"YulIdentifier","src":"26877:9:65"},{"name":"offset","nativeSrc":"26888:6:65","nodeType":"YulIdentifier","src":"26888:6:65"}],"functionName":{"name":"add","nativeSrc":"26873:3:65","nodeType":"YulIdentifier","src":"26873:3:65"},"nativeSrc":"26873:22:65","nodeType":"YulFunctionCall","src":"26873:22:65"},{"name":"dataEnd","nativeSrc":"26897:7:65","nodeType":"YulIdentifier","src":"26897:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"26853:19:65","nodeType":"YulIdentifier","src":"26853:19:65"},"nativeSrc":"26853:52:65","nodeType":"YulFunctionCall","src":"26853:52:65"},"variableNames":[{"name":"value1","nativeSrc":"26843:6:65","nodeType":"YulIdentifier","src":"26843:6:65"}]}]},{"nativeSrc":"26925:118:65","nodeType":"YulBlock","src":"26925:118:65","statements":[{"nativeSrc":"26940:16:65","nodeType":"YulVariableDeclaration","src":"26940:16:65","value":{"kind":"number","nativeSrc":"26954:2:65","nodeType":"YulLiteral","src":"26954:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"26944:6:65","nodeType":"YulTypedName","src":"26944:6:65","type":""}]},{"nativeSrc":"26970:63:65","nodeType":"YulAssignment","src":"26970:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27005:9:65","nodeType":"YulIdentifier","src":"27005:9:65"},{"name":"offset","nativeSrc":"27016:6:65","nodeType":"YulIdentifier","src":"27016:6:65"}],"functionName":{"name":"add","nativeSrc":"27001:3:65","nodeType":"YulIdentifier","src":"27001:3:65"},"nativeSrc":"27001:22:65","nodeType":"YulFunctionCall","src":"27001:22:65"},{"name":"dataEnd","nativeSrc":"27025:7:65","nodeType":"YulIdentifier","src":"27025:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"26980:20:65","nodeType":"YulIdentifier","src":"26980:20:65"},"nativeSrc":"26980:53:65","nodeType":"YulFunctionCall","src":"26980:53:65"},"variableNames":[{"name":"value2","nativeSrc":"26970:6:65","nodeType":"YulIdentifier","src":"26970:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_uint256","nativeSrc":"26435:615:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26487:9:65","nodeType":"YulTypedName","src":"26487:9:65","type":""},{"name":"dataEnd","nativeSrc":"26498:7:65","nodeType":"YulTypedName","src":"26498:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26510:6:65","nodeType":"YulTypedName","src":"26510:6:65","type":""},{"name":"value1","nativeSrc":"26518:6:65","nodeType":"YulTypedName","src":"26518:6:65","type":""},{"name":"value2","nativeSrc":"26526:6:65","nodeType":"YulTypedName","src":"26526:6:65","type":""}],"src":"26435:615:65"},{"body":{"nativeSrc":"27277:1520:65","nodeType":"YulBlock","src":"27277:1520:65","statements":[{"body":{"nativeSrc":"27324:83:65","nodeType":"YulBlock","src":"27324:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"27326:77:65","nodeType":"YulIdentifier","src":"27326:77:65"},"nativeSrc":"27326:79:65","nodeType":"YulFunctionCall","src":"27326:79:65"},"nativeSrc":"27326:79:65","nodeType":"YulExpressionStatement","src":"27326:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27298:7:65","nodeType":"YulIdentifier","src":"27298:7:65"},{"name":"headStart","nativeSrc":"27307:9:65","nodeType":"YulIdentifier","src":"27307:9:65"}],"functionName":{"name":"sub","nativeSrc":"27294:3:65","nodeType":"YulIdentifier","src":"27294:3:65"},"nativeSrc":"27294:23:65","nodeType":"YulFunctionCall","src":"27294:23:65"},{"kind":"number","nativeSrc":"27319:3:65","nodeType":"YulLiteral","src":"27319:3:65","type":"","value":"256"}],"functionName":{"name":"slt","nativeSrc":"27290:3:65","nodeType":"YulIdentifier","src":"27290:3:65"},"nativeSrc":"27290:33:65","nodeType":"YulFunctionCall","src":"27290:33:65"},"nativeSrc":"27287:120:65","nodeType":"YulIf","src":"27287:120:65"},{"nativeSrc":"27417:116:65","nodeType":"YulBlock","src":"27417:116:65","statements":[{"nativeSrc":"27432:15:65","nodeType":"YulVariableDeclaration","src":"27432:15:65","value":{"kind":"number","nativeSrc":"27446:1:65","nodeType":"YulLiteral","src":"27446:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"27436:6:65","nodeType":"YulTypedName","src":"27436:6:65","type":""}]},{"nativeSrc":"27461:62:65","nodeType":"YulAssignment","src":"27461:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27495:9:65","nodeType":"YulIdentifier","src":"27495:9:65"},{"name":"offset","nativeSrc":"27506:6:65","nodeType":"YulIdentifier","src":"27506:6:65"}],"functionName":{"name":"add","nativeSrc":"27491:3:65","nodeType":"YulIdentifier","src":"27491:3:65"},"nativeSrc":"27491:22:65","nodeType":"YulFunctionCall","src":"27491:22:65"},{"name":"dataEnd","nativeSrc":"27515:7:65","nodeType":"YulIdentifier","src":"27515:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"27471:19:65","nodeType":"YulIdentifier","src":"27471:19:65"},"nativeSrc":"27471:52:65","nodeType":"YulFunctionCall","src":"27471:52:65"},"variableNames":[{"name":"value0","nativeSrc":"27461:6:65","nodeType":"YulIdentifier","src":"27461:6:65"}]}]},{"nativeSrc":"27543:297:65","nodeType":"YulBlock","src":"27543:297:65","statements":[{"nativeSrc":"27558:46:65","nodeType":"YulVariableDeclaration","src":"27558:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27589:9:65","nodeType":"YulIdentifier","src":"27589:9:65"},{"kind":"number","nativeSrc":"27600:2:65","nodeType":"YulLiteral","src":"27600:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27585:3:65","nodeType":"YulIdentifier","src":"27585:3:65"},"nativeSrc":"27585:18:65","nodeType":"YulFunctionCall","src":"27585:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"27572:12:65","nodeType":"YulIdentifier","src":"27572:12:65"},"nativeSrc":"27572:32:65","nodeType":"YulFunctionCall","src":"27572:32:65"},"variables":[{"name":"offset","nativeSrc":"27562:6:65","nodeType":"YulTypedName","src":"27562:6:65","type":""}]},{"body":{"nativeSrc":"27651:83:65","nodeType":"YulBlock","src":"27651:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27653:77:65","nodeType":"YulIdentifier","src":"27653:77:65"},"nativeSrc":"27653:79:65","nodeType":"YulFunctionCall","src":"27653:79:65"},"nativeSrc":"27653:79:65","nodeType":"YulExpressionStatement","src":"27653:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27623:6:65","nodeType":"YulIdentifier","src":"27623:6:65"},{"kind":"number","nativeSrc":"27631:18:65","nodeType":"YulLiteral","src":"27631:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27620:2:65","nodeType":"YulIdentifier","src":"27620:2:65"},"nativeSrc":"27620:30:65","nodeType":"YulFunctionCall","src":"27620:30:65"},"nativeSrc":"27617:117:65","nodeType":"YulIf","src":"27617:117:65"},{"nativeSrc":"27748:82:65","nodeType":"YulAssignment","src":"27748:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27802:9:65","nodeType":"YulIdentifier","src":"27802:9:65"},{"name":"offset","nativeSrc":"27813:6:65","nodeType":"YulIdentifier","src":"27813:6:65"}],"functionName":{"name":"add","nativeSrc":"27798:3:65","nodeType":"YulIdentifier","src":"27798:3:65"},"nativeSrc":"27798:22:65","nodeType":"YulFunctionCall","src":"27798:22:65"},{"name":"dataEnd","nativeSrc":"27822:7:65","nodeType":"YulIdentifier","src":"27822:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"27766:31:65","nodeType":"YulIdentifier","src":"27766:31:65"},"nativeSrc":"27766:64:65","nodeType":"YulFunctionCall","src":"27766:64:65"},"variableNames":[{"name":"value1","nativeSrc":"27748:6:65","nodeType":"YulIdentifier","src":"27748:6:65"},{"name":"value2","nativeSrc":"27756:6:65","nodeType":"YulIdentifier","src":"27756:6:65"}]}]},{"nativeSrc":"27850:117:65","nodeType":"YulBlock","src":"27850:117:65","statements":[{"nativeSrc":"27865:16:65","nodeType":"YulVariableDeclaration","src":"27865:16:65","value":{"kind":"number","nativeSrc":"27879:2:65","nodeType":"YulLiteral","src":"27879:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"27869:6:65","nodeType":"YulTypedName","src":"27869:6:65","type":""}]},{"nativeSrc":"27895:62:65","nodeType":"YulAssignment","src":"27895:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27929:9:65","nodeType":"YulIdentifier","src":"27929:9:65"},{"name":"offset","nativeSrc":"27940:6:65","nodeType":"YulIdentifier","src":"27940:6:65"}],"functionName":{"name":"add","nativeSrc":"27925:3:65","nodeType":"YulIdentifier","src":"27925:3:65"},"nativeSrc":"27925:22:65","nodeType":"YulFunctionCall","src":"27925:22:65"},{"name":"dataEnd","nativeSrc":"27949:7:65","nodeType":"YulIdentifier","src":"27949:7:65"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"27905:19:65","nodeType":"YulIdentifier","src":"27905:19:65"},"nativeSrc":"27905:52:65","nodeType":"YulFunctionCall","src":"27905:52:65"},"variableNames":[{"name":"value3","nativeSrc":"27895:6:65","nodeType":"YulIdentifier","src":"27895:6:65"}]}]},{"nativeSrc":"27977:118:65","nodeType":"YulBlock","src":"27977:118:65","statements":[{"nativeSrc":"27992:16:65","nodeType":"YulVariableDeclaration","src":"27992:16:65","value":{"kind":"number","nativeSrc":"28006:2:65","nodeType":"YulLiteral","src":"28006:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"27996:6:65","nodeType":"YulTypedName","src":"27996:6:65","type":""}]},{"nativeSrc":"28022:63:65","nodeType":"YulAssignment","src":"28022:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28057:9:65","nodeType":"YulIdentifier","src":"28057:9:65"},{"name":"offset","nativeSrc":"28068:6:65","nodeType":"YulIdentifier","src":"28068:6:65"}],"functionName":{"name":"add","nativeSrc":"28053:3:65","nodeType":"YulIdentifier","src":"28053:3:65"},"nativeSrc":"28053:22:65","nodeType":"YulFunctionCall","src":"28053:22:65"},{"name":"dataEnd","nativeSrc":"28077:7:65","nodeType":"YulIdentifier","src":"28077:7:65"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"28032:20:65","nodeType":"YulIdentifier","src":"28032:20:65"},"nativeSrc":"28032:53:65","nodeType":"YulFunctionCall","src":"28032:53:65"},"variableNames":[{"name":"value4","nativeSrc":"28022:6:65","nodeType":"YulIdentifier","src":"28022:6:65"}]}]},{"nativeSrc":"28105:119:65","nodeType":"YulBlock","src":"28105:119:65","statements":[{"nativeSrc":"28120:17:65","nodeType":"YulVariableDeclaration","src":"28120:17:65","value":{"kind":"number","nativeSrc":"28134:3:65","nodeType":"YulLiteral","src":"28134:3:65","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"28124:6:65","nodeType":"YulTypedName","src":"28124:6:65","type":""}]},{"nativeSrc":"28151:63:65","nodeType":"YulAssignment","src":"28151:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28186:9:65","nodeType":"YulIdentifier","src":"28186:9:65"},{"name":"offset","nativeSrc":"28197:6:65","nodeType":"YulIdentifier","src":"28197:6:65"}],"functionName":{"name":"add","nativeSrc":"28182:3:65","nodeType":"YulIdentifier","src":"28182:3:65"},"nativeSrc":"28182:22:65","nodeType":"YulFunctionCall","src":"28182:22:65"},{"name":"dataEnd","nativeSrc":"28206:7:65","nodeType":"YulIdentifier","src":"28206:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"28161:20:65","nodeType":"YulIdentifier","src":"28161:20:65"},"nativeSrc":"28161:53:65","nodeType":"YulFunctionCall","src":"28161:53:65"},"variableNames":[{"name":"value5","nativeSrc":"28151:6:65","nodeType":"YulIdentifier","src":"28151:6:65"}]}]},{"nativeSrc":"28234:119:65","nodeType":"YulBlock","src":"28234:119:65","statements":[{"nativeSrc":"28249:17:65","nodeType":"YulVariableDeclaration","src":"28249:17:65","value":{"kind":"number","nativeSrc":"28263:3:65","nodeType":"YulLiteral","src":"28263:3:65","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"28253:6:65","nodeType":"YulTypedName","src":"28253:6:65","type":""}]},{"nativeSrc":"28280:63:65","nodeType":"YulAssignment","src":"28280:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28315:9:65","nodeType":"YulIdentifier","src":"28315:9:65"},{"name":"offset","nativeSrc":"28326:6:65","nodeType":"YulIdentifier","src":"28326:6:65"}],"functionName":{"name":"add","nativeSrc":"28311:3:65","nodeType":"YulIdentifier","src":"28311:3:65"},"nativeSrc":"28311:22:65","nodeType":"YulFunctionCall","src":"28311:22:65"},{"name":"dataEnd","nativeSrc":"28335:7:65","nodeType":"YulIdentifier","src":"28335:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"28290:20:65","nodeType":"YulIdentifier","src":"28290:20:65"},"nativeSrc":"28290:53:65","nodeType":"YulFunctionCall","src":"28290:53:65"},"variableNames":[{"name":"value6","nativeSrc":"28280:6:65","nodeType":"YulIdentifier","src":"28280:6:65"}]}]},{"nativeSrc":"28363:298:65","nodeType":"YulBlock","src":"28363:298:65","statements":[{"nativeSrc":"28378:47:65","nodeType":"YulVariableDeclaration","src":"28378:47:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28409:9:65","nodeType":"YulIdentifier","src":"28409:9:65"},{"kind":"number","nativeSrc":"28420:3:65","nodeType":"YulLiteral","src":"28420:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"28405:3:65","nodeType":"YulIdentifier","src":"28405:3:65"},"nativeSrc":"28405:19:65","nodeType":"YulFunctionCall","src":"28405:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"28392:12:65","nodeType":"YulIdentifier","src":"28392:12:65"},"nativeSrc":"28392:33:65","nodeType":"YulFunctionCall","src":"28392:33:65"},"variables":[{"name":"offset","nativeSrc":"28382:6:65","nodeType":"YulTypedName","src":"28382:6:65","type":""}]},{"body":{"nativeSrc":"28472:83:65","nodeType":"YulBlock","src":"28472:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"28474:77:65","nodeType":"YulIdentifier","src":"28474:77:65"},"nativeSrc":"28474:79:65","nodeType":"YulFunctionCall","src":"28474:79:65"},"nativeSrc":"28474:79:65","nodeType":"YulExpressionStatement","src":"28474:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"28444:6:65","nodeType":"YulIdentifier","src":"28444:6:65"},{"kind":"number","nativeSrc":"28452:18:65","nodeType":"YulLiteral","src":"28452:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"28441:2:65","nodeType":"YulIdentifier","src":"28441:2:65"},"nativeSrc":"28441:30:65","nodeType":"YulFunctionCall","src":"28441:30:65"},"nativeSrc":"28438:117:65","nodeType":"YulIf","src":"28438:117:65"},{"nativeSrc":"28569:82:65","nodeType":"YulAssignment","src":"28569:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28623:9:65","nodeType":"YulIdentifier","src":"28623:9:65"},{"name":"offset","nativeSrc":"28634:6:65","nodeType":"YulIdentifier","src":"28634:6:65"}],"functionName":{"name":"add","nativeSrc":"28619:3:65","nodeType":"YulIdentifier","src":"28619:3:65"},"nativeSrc":"28619:22:65","nodeType":"YulFunctionCall","src":"28619:22:65"},{"name":"dataEnd","nativeSrc":"28643:7:65","nodeType":"YulIdentifier","src":"28643:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"28587:31:65","nodeType":"YulIdentifier","src":"28587:31:65"},"nativeSrc":"28587:64:65","nodeType":"YulFunctionCall","src":"28587:64:65"},"variableNames":[{"name":"value7","nativeSrc":"28569:6:65","nodeType":"YulIdentifier","src":"28569:6:65"},{"name":"value8","nativeSrc":"28577:6:65","nodeType":"YulIdentifier","src":"28577:6:65"}]}]},{"nativeSrc":"28671:119:65","nodeType":"YulBlock","src":"28671:119:65","statements":[{"nativeSrc":"28686:17:65","nodeType":"YulVariableDeclaration","src":"28686:17:65","value":{"kind":"number","nativeSrc":"28700:3:65","nodeType":"YulLiteral","src":"28700:3:65","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"28690:6:65","nodeType":"YulTypedName","src":"28690:6:65","type":""}]},{"nativeSrc":"28717:63:65","nodeType":"YulAssignment","src":"28717:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28752:9:65","nodeType":"YulIdentifier","src":"28752:9:65"},{"name":"offset","nativeSrc":"28763:6:65","nodeType":"YulIdentifier","src":"28763:6:65"}],"functionName":{"name":"add","nativeSrc":"28748:3:65","nodeType":"YulIdentifier","src":"28748:3:65"},"nativeSrc":"28748:22:65","nodeType":"YulFunctionCall","src":"28748:22:65"},{"name":"dataEnd","nativeSrc":"28772:7:65","nodeType":"YulIdentifier","src":"28772:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"28727:20:65","nodeType":"YulIdentifier","src":"28727:20:65"},"nativeSrc":"28727:53:65","nodeType":"YulFunctionCall","src":"28727:53:65"},"variableNames":[{"name":"value9","nativeSrc":"28717:6:65","nodeType":"YulIdentifier","src":"28717:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256","nativeSrc":"27056:1741:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27175:9:65","nodeType":"YulTypedName","src":"27175:9:65","type":""},{"name":"dataEnd","nativeSrc":"27186:7:65","nodeType":"YulTypedName","src":"27186:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27198:6:65","nodeType":"YulTypedName","src":"27198:6:65","type":""},{"name":"value1","nativeSrc":"27206:6:65","nodeType":"YulTypedName","src":"27206:6:65","type":""},{"name":"value2","nativeSrc":"27214:6:65","nodeType":"YulTypedName","src":"27214:6:65","type":""},{"name":"value3","nativeSrc":"27222:6:65","nodeType":"YulTypedName","src":"27222:6:65","type":""},{"name":"value4","nativeSrc":"27230:6:65","nodeType":"YulTypedName","src":"27230:6:65","type":""},{"name":"value5","nativeSrc":"27238:6:65","nodeType":"YulTypedName","src":"27238:6:65","type":""},{"name":"value6","nativeSrc":"27246:6:65","nodeType":"YulTypedName","src":"27246:6:65","type":""},{"name":"value7","nativeSrc":"27254:6:65","nodeType":"YulTypedName","src":"27254:6:65","type":""},{"name":"value8","nativeSrc":"27262:6:65","nodeType":"YulTypedName","src":"27262:6:65","type":""},{"name":"value9","nativeSrc":"27270:6:65","nodeType":"YulTypedName","src":"27270:6:65","type":""}],"src":"27056:1741:65"},{"body":{"nativeSrc":"28918:646:65","nodeType":"YulBlock","src":"28918:646:65","statements":[{"body":{"nativeSrc":"28965:83:65","nodeType":"YulBlock","src":"28965:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"28967:77:65","nodeType":"YulIdentifier","src":"28967:77:65"},"nativeSrc":"28967:79:65","nodeType":"YulFunctionCall","src":"28967:79:65"},"nativeSrc":"28967:79:65","nodeType":"YulExpressionStatement","src":"28967:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"28939:7:65","nodeType":"YulIdentifier","src":"28939:7:65"},{"name":"headStart","nativeSrc":"28948:9:65","nodeType":"YulIdentifier","src":"28948:9:65"}],"functionName":{"name":"sub","nativeSrc":"28935:3:65","nodeType":"YulIdentifier","src":"28935:3:65"},"nativeSrc":"28935:23:65","nodeType":"YulFunctionCall","src":"28935:23:65"},{"kind":"number","nativeSrc":"28960:3:65","nodeType":"YulLiteral","src":"28960:3:65","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"28931:3:65","nodeType":"YulIdentifier","src":"28931:3:65"},"nativeSrc":"28931:33:65","nodeType":"YulFunctionCall","src":"28931:33:65"},"nativeSrc":"28928:120:65","nodeType":"YulIf","src":"28928:120:65"},{"nativeSrc":"29058:116:65","nodeType":"YulBlock","src":"29058:116:65","statements":[{"nativeSrc":"29073:15:65","nodeType":"YulVariableDeclaration","src":"29073:15:65","value":{"kind":"number","nativeSrc":"29087:1:65","nodeType":"YulLiteral","src":"29087:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"29077:6:65","nodeType":"YulTypedName","src":"29077:6:65","type":""}]},{"nativeSrc":"29102:62:65","nodeType":"YulAssignment","src":"29102:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29136:9:65","nodeType":"YulIdentifier","src":"29136:9:65"},{"name":"offset","nativeSrc":"29147:6:65","nodeType":"YulIdentifier","src":"29147:6:65"}],"functionName":{"name":"add","nativeSrc":"29132:3:65","nodeType":"YulIdentifier","src":"29132:3:65"},"nativeSrc":"29132:22:65","nodeType":"YulFunctionCall","src":"29132:22:65"},{"name":"dataEnd","nativeSrc":"29156:7:65","nodeType":"YulIdentifier","src":"29156:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"29112:19:65","nodeType":"YulIdentifier","src":"29112:19:65"},"nativeSrc":"29112:52:65","nodeType":"YulFunctionCall","src":"29112:52:65"},"variableNames":[{"name":"value0","nativeSrc":"29102:6:65","nodeType":"YulIdentifier","src":"29102:6:65"}]}]},{"nativeSrc":"29184:117:65","nodeType":"YulBlock","src":"29184:117:65","statements":[{"nativeSrc":"29199:16:65","nodeType":"YulVariableDeclaration","src":"29199:16:65","value":{"kind":"number","nativeSrc":"29213:2:65","nodeType":"YulLiteral","src":"29213:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"29203:6:65","nodeType":"YulTypedName","src":"29203:6:65","type":""}]},{"nativeSrc":"29229:62:65","nodeType":"YulAssignment","src":"29229:62:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29263:9:65","nodeType":"YulIdentifier","src":"29263:9:65"},{"name":"offset","nativeSrc":"29274:6:65","nodeType":"YulIdentifier","src":"29274:6:65"}],"functionName":{"name":"add","nativeSrc":"29259:3:65","nodeType":"YulIdentifier","src":"29259:3:65"},"nativeSrc":"29259:22:65","nodeType":"YulFunctionCall","src":"29259:22:65"},{"name":"dataEnd","nativeSrc":"29283:7:65","nodeType":"YulIdentifier","src":"29283:7:65"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"29239:19:65","nodeType":"YulIdentifier","src":"29239:19:65"},"nativeSrc":"29239:52:65","nodeType":"YulFunctionCall","src":"29239:52:65"},"variableNames":[{"name":"value1","nativeSrc":"29229:6:65","nodeType":"YulIdentifier","src":"29229:6:65"}]}]},{"nativeSrc":"29311:118:65","nodeType":"YulBlock","src":"29311:118:65","statements":[{"nativeSrc":"29326:16:65","nodeType":"YulVariableDeclaration","src":"29326:16:65","value":{"kind":"number","nativeSrc":"29340:2:65","nodeType":"YulLiteral","src":"29340:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"29330:6:65","nodeType":"YulTypedName","src":"29330:6:65","type":""}]},{"nativeSrc":"29356:63:65","nodeType":"YulAssignment","src":"29356:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29391:9:65","nodeType":"YulIdentifier","src":"29391:9:65"},{"name":"offset","nativeSrc":"29402:6:65","nodeType":"YulIdentifier","src":"29402:6:65"}],"functionName":{"name":"add","nativeSrc":"29387:3:65","nodeType":"YulIdentifier","src":"29387:3:65"},"nativeSrc":"29387:22:65","nodeType":"YulFunctionCall","src":"29387:22:65"},{"name":"dataEnd","nativeSrc":"29411:7:65","nodeType":"YulIdentifier","src":"29411:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"29366:20:65","nodeType":"YulIdentifier","src":"29366:20:65"},"nativeSrc":"29366:53:65","nodeType":"YulFunctionCall","src":"29366:53:65"},"variableNames":[{"name":"value2","nativeSrc":"29356:6:65","nodeType":"YulIdentifier","src":"29356:6:65"}]}]},{"nativeSrc":"29439:118:65","nodeType":"YulBlock","src":"29439:118:65","statements":[{"nativeSrc":"29454:16:65","nodeType":"YulVariableDeclaration","src":"29454:16:65","value":{"kind":"number","nativeSrc":"29468:2:65","nodeType":"YulLiteral","src":"29468:2:65","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"29458:6:65","nodeType":"YulTypedName","src":"29458:6:65","type":""}]},{"nativeSrc":"29484:63:65","nodeType":"YulAssignment","src":"29484:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29519:9:65","nodeType":"YulIdentifier","src":"29519:9:65"},{"name":"offset","nativeSrc":"29530:6:65","nodeType":"YulIdentifier","src":"29530:6:65"}],"functionName":{"name":"add","nativeSrc":"29515:3:65","nodeType":"YulIdentifier","src":"29515:3:65"},"nativeSrc":"29515:22:65","nodeType":"YulFunctionCall","src":"29515:22:65"},{"name":"dataEnd","nativeSrc":"29539:7:65","nodeType":"YulIdentifier","src":"29539:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"29494:20:65","nodeType":"YulIdentifier","src":"29494:20:65"},"nativeSrc":"29494:53:65","nodeType":"YulFunctionCall","src":"29494:53:65"},"variableNames":[{"name":"value3","nativeSrc":"29484:6:65","nodeType":"YulIdentifier","src":"29484:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint16t_uint16t_addresst_uint256","nativeSrc":"28803:761:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28864:9:65","nodeType":"YulTypedName","src":"28864:9:65","type":""},{"name":"dataEnd","nativeSrc":"28875:7:65","nodeType":"YulTypedName","src":"28875:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"28887:6:65","nodeType":"YulTypedName","src":"28887:6:65","type":""},{"name":"value1","nativeSrc":"28895:6:65","nodeType":"YulTypedName","src":"28895:6:65","type":""},{"name":"value2","nativeSrc":"28903:6:65","nodeType":"YulTypedName","src":"28903:6:65","type":""},{"name":"value3","nativeSrc":"28911:6:65","nodeType":"YulTypedName","src":"28911:6:65","type":""}],"src":"28803:761:65"},{"body":{"nativeSrc":"29666:73:65","nodeType":"YulBlock","src":"29666:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"29683:3:65","nodeType":"YulIdentifier","src":"29683:3:65"},{"name":"length","nativeSrc":"29688:6:65","nodeType":"YulIdentifier","src":"29688:6:65"}],"functionName":{"name":"mstore","nativeSrc":"29676:6:65","nodeType":"YulIdentifier","src":"29676:6:65"},"nativeSrc":"29676:19:65","nodeType":"YulFunctionCall","src":"29676:19:65"},"nativeSrc":"29676:19:65","nodeType":"YulExpressionStatement","src":"29676:19:65"},{"nativeSrc":"29704:29:65","nodeType":"YulAssignment","src":"29704:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"29723:3:65","nodeType":"YulIdentifier","src":"29723:3:65"},{"kind":"number","nativeSrc":"29728:4:65","nodeType":"YulLiteral","src":"29728:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29719:3:65","nodeType":"YulIdentifier","src":"29719:3:65"},"nativeSrc":"29719:14:65","nodeType":"YulFunctionCall","src":"29719:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"29704:11:65","nodeType":"YulIdentifier","src":"29704:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"29570:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29638:3:65","nodeType":"YulTypedName","src":"29638:3:65","type":""},{"name":"length","nativeSrc":"29643:6:65","nodeType":"YulTypedName","src":"29643:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"29654:11:65","nodeType":"YulTypedName","src":"29654:11:65","type":""}],"src":"29570:169:65"},{"body":{"nativeSrc":"29851:74:65","nodeType":"YulBlock","src":"29851:74:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"29873:6:65","nodeType":"YulIdentifier","src":"29873:6:65"},{"kind":"number","nativeSrc":"29881:1:65","nodeType":"YulLiteral","src":"29881:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29869:3:65","nodeType":"YulIdentifier","src":"29869:3:65"},"nativeSrc":"29869:14:65","nodeType":"YulFunctionCall","src":"29869:14:65"},{"hexValue":"4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572","kind":"string","nativeSrc":"29885:32:65","nodeType":"YulLiteral","src":"29885:32:65","type":"","value":"LzApp: invalid endpoint caller"}],"functionName":{"name":"mstore","nativeSrc":"29862:6:65","nodeType":"YulIdentifier","src":"29862:6:65"},"nativeSrc":"29862:56:65","nodeType":"YulFunctionCall","src":"29862:56:65"},"nativeSrc":"29862:56:65","nodeType":"YulExpressionStatement","src":"29862:56:65"}]},"name":"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","nativeSrc":"29745:180:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"29843:6:65","nodeType":"YulTypedName","src":"29843:6:65","type":""}],"src":"29745:180:65"},{"body":{"nativeSrc":"30077:220:65","nodeType":"YulBlock","src":"30077:220:65","statements":[{"nativeSrc":"30087:74:65","nodeType":"YulAssignment","src":"30087:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"30153:3:65","nodeType":"YulIdentifier","src":"30153:3:65"},{"kind":"number","nativeSrc":"30158:2:65","nodeType":"YulLiteral","src":"30158:2:65","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"30094:58:65","nodeType":"YulIdentifier","src":"30094:58:65"},"nativeSrc":"30094:67:65","nodeType":"YulFunctionCall","src":"30094:67:65"},"variableNames":[{"name":"pos","nativeSrc":"30087:3:65","nodeType":"YulIdentifier","src":"30087:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"30259:3:65","nodeType":"YulIdentifier","src":"30259:3:65"}],"functionName":{"name":"store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9","nativeSrc":"30170:88:65","nodeType":"YulIdentifier","src":"30170:88:65"},"nativeSrc":"30170:93:65","nodeType":"YulFunctionCall","src":"30170:93:65"},"nativeSrc":"30170:93:65","nodeType":"YulExpressionStatement","src":"30170:93:65"},{"nativeSrc":"30272:19:65","nodeType":"YulAssignment","src":"30272:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"30283:3:65","nodeType":"YulIdentifier","src":"30283:3:65"},{"kind":"number","nativeSrc":"30288:2:65","nodeType":"YulLiteral","src":"30288:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30279:3:65","nodeType":"YulIdentifier","src":"30279:3:65"},"nativeSrc":"30279:12:65","nodeType":"YulFunctionCall","src":"30279:12:65"},"variableNames":[{"name":"end","nativeSrc":"30272:3:65","nodeType":"YulIdentifier","src":"30272:3:65"}]}]},"name":"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack","nativeSrc":"29931:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30065:3:65","nodeType":"YulTypedName","src":"30065:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30073:3:65","nodeType":"YulTypedName","src":"30073:3:65","type":""}],"src":"29931:366:65"},{"body":{"nativeSrc":"30474:248:65","nodeType":"YulBlock","src":"30474:248:65","statements":[{"nativeSrc":"30484:26:65","nodeType":"YulAssignment","src":"30484:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"30496:9:65","nodeType":"YulIdentifier","src":"30496:9:65"},{"kind":"number","nativeSrc":"30507:2:65","nodeType":"YulLiteral","src":"30507:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30492:3:65","nodeType":"YulIdentifier","src":"30492:3:65"},"nativeSrc":"30492:18:65","nodeType":"YulFunctionCall","src":"30492:18:65"},"variableNames":[{"name":"tail","nativeSrc":"30484:4:65","nodeType":"YulIdentifier","src":"30484:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30531:9:65","nodeType":"YulIdentifier","src":"30531:9:65"},{"kind":"number","nativeSrc":"30542:1:65","nodeType":"YulLiteral","src":"30542:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30527:3:65","nodeType":"YulIdentifier","src":"30527:3:65"},"nativeSrc":"30527:17:65","nodeType":"YulFunctionCall","src":"30527:17:65"},{"arguments":[{"name":"tail","nativeSrc":"30550:4:65","nodeType":"YulIdentifier","src":"30550:4:65"},{"name":"headStart","nativeSrc":"30556:9:65","nodeType":"YulIdentifier","src":"30556:9:65"}],"functionName":{"name":"sub","nativeSrc":"30546:3:65","nodeType":"YulIdentifier","src":"30546:3:65"},"nativeSrc":"30546:20:65","nodeType":"YulFunctionCall","src":"30546:20:65"}],"functionName":{"name":"mstore","nativeSrc":"30520:6:65","nodeType":"YulIdentifier","src":"30520:6:65"},"nativeSrc":"30520:47:65","nodeType":"YulFunctionCall","src":"30520:47:65"},"nativeSrc":"30520:47:65","nodeType":"YulExpressionStatement","src":"30520:47:65"},{"nativeSrc":"30576:139:65","nodeType":"YulAssignment","src":"30576:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"30710:4:65","nodeType":"YulIdentifier","src":"30710:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack","nativeSrc":"30584:124:65","nodeType":"YulIdentifier","src":"30584:124:65"},"nativeSrc":"30584:131:65","nodeType":"YulFunctionCall","src":"30584:131:65"},"variableNames":[{"name":"tail","nativeSrc":"30576:4:65","nodeType":"YulIdentifier","src":"30576:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"30303:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30454:9:65","nodeType":"YulTypedName","src":"30454:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"30469:4:65","nodeType":"YulTypedName","src":"30469:4:65","type":""}],"src":"30303:419:65"},{"body":{"nativeSrc":"30756:152:65","nodeType":"YulBlock","src":"30756:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30773:1:65","nodeType":"YulLiteral","src":"30773:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"30776:77:65","nodeType":"YulLiteral","src":"30776:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"30766:6:65","nodeType":"YulIdentifier","src":"30766:6:65"},"nativeSrc":"30766:88:65","nodeType":"YulFunctionCall","src":"30766:88:65"},"nativeSrc":"30766:88:65","nodeType":"YulExpressionStatement","src":"30766:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30870:1:65","nodeType":"YulLiteral","src":"30870:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"30873:4:65","nodeType":"YulLiteral","src":"30873:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"30863:6:65","nodeType":"YulIdentifier","src":"30863:6:65"},"nativeSrc":"30863:15:65","nodeType":"YulFunctionCall","src":"30863:15:65"},"nativeSrc":"30863:15:65","nodeType":"YulExpressionStatement","src":"30863:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30894:1:65","nodeType":"YulLiteral","src":"30894:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"30897:4:65","nodeType":"YulLiteral","src":"30897:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30887:6:65","nodeType":"YulIdentifier","src":"30887:6:65"},"nativeSrc":"30887:15:65","nodeType":"YulFunctionCall","src":"30887:15:65"},"nativeSrc":"30887:15:65","nodeType":"YulExpressionStatement","src":"30887:15:65"}]},"name":"panic_error_0x22","nativeSrc":"30728:180:65","nodeType":"YulFunctionDefinition","src":"30728:180:65"},{"body":{"nativeSrc":"30965:269:65","nodeType":"YulBlock","src":"30965:269:65","statements":[{"nativeSrc":"30975:22:65","nodeType":"YulAssignment","src":"30975:22:65","value":{"arguments":[{"name":"data","nativeSrc":"30989:4:65","nodeType":"YulIdentifier","src":"30989:4:65"},{"kind":"number","nativeSrc":"30995:1:65","nodeType":"YulLiteral","src":"30995:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"30985:3:65","nodeType":"YulIdentifier","src":"30985:3:65"},"nativeSrc":"30985:12:65","nodeType":"YulFunctionCall","src":"30985:12:65"},"variableNames":[{"name":"length","nativeSrc":"30975:6:65","nodeType":"YulIdentifier","src":"30975:6:65"}]},{"nativeSrc":"31006:38:65","nodeType":"YulVariableDeclaration","src":"31006:38:65","value":{"arguments":[{"name":"data","nativeSrc":"31036:4:65","nodeType":"YulIdentifier","src":"31036:4:65"},{"kind":"number","nativeSrc":"31042:1:65","nodeType":"YulLiteral","src":"31042:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"31032:3:65","nodeType":"YulIdentifier","src":"31032:3:65"},"nativeSrc":"31032:12:65","nodeType":"YulFunctionCall","src":"31032:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"31010:18:65","nodeType":"YulTypedName","src":"31010:18:65","type":""}]},{"body":{"nativeSrc":"31083:51:65","nodeType":"YulBlock","src":"31083:51:65","statements":[{"nativeSrc":"31097:27:65","nodeType":"YulAssignment","src":"31097:27:65","value":{"arguments":[{"name":"length","nativeSrc":"31111:6:65","nodeType":"YulIdentifier","src":"31111:6:65"},{"kind":"number","nativeSrc":"31119:4:65","nodeType":"YulLiteral","src":"31119:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"31107:3:65","nodeType":"YulIdentifier","src":"31107:3:65"},"nativeSrc":"31107:17:65","nodeType":"YulFunctionCall","src":"31107:17:65"},"variableNames":[{"name":"length","nativeSrc":"31097:6:65","nodeType":"YulIdentifier","src":"31097:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"31063:18:65","nodeType":"YulIdentifier","src":"31063:18:65"}],"functionName":{"name":"iszero","nativeSrc":"31056:6:65","nodeType":"YulIdentifier","src":"31056:6:65"},"nativeSrc":"31056:26:65","nodeType":"YulFunctionCall","src":"31056:26:65"},"nativeSrc":"31053:81:65","nodeType":"YulIf","src":"31053:81:65"},{"body":{"nativeSrc":"31186:42:65","nodeType":"YulBlock","src":"31186:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"31200:16:65","nodeType":"YulIdentifier","src":"31200:16:65"},"nativeSrc":"31200:18:65","nodeType":"YulFunctionCall","src":"31200:18:65"},"nativeSrc":"31200:18:65","nodeType":"YulExpressionStatement","src":"31200:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"31150:18:65","nodeType":"YulIdentifier","src":"31150:18:65"},{"arguments":[{"name":"length","nativeSrc":"31173:6:65","nodeType":"YulIdentifier","src":"31173:6:65"},{"kind":"number","nativeSrc":"31181:2:65","nodeType":"YulLiteral","src":"31181:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"31170:2:65","nodeType":"YulIdentifier","src":"31170:2:65"},"nativeSrc":"31170:14:65","nodeType":"YulFunctionCall","src":"31170:14:65"}],"functionName":{"name":"eq","nativeSrc":"31147:2:65","nodeType":"YulIdentifier","src":"31147:2:65"},"nativeSrc":"31147:38:65","nodeType":"YulFunctionCall","src":"31147:38:65"},"nativeSrc":"31144:84:65","nodeType":"YulIf","src":"31144:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"30914:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"30949:4:65","nodeType":"YulTypedName","src":"30949:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"30958:6:65","nodeType":"YulTypedName","src":"30958:6:65","type":""}],"src":"30914:320:65"},{"body":{"nativeSrc":"31353:34:65","nodeType":"YulBlock","src":"31353:34:65","statements":[{"nativeSrc":"31363:18:65","nodeType":"YulAssignment","src":"31363:18:65","value":{"name":"pos","nativeSrc":"31378:3:65","nodeType":"YulIdentifier","src":"31378:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"31363:11:65","nodeType":"YulIdentifier","src":"31363:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31240:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31325:3:65","nodeType":"YulTypedName","src":"31325:3:65","type":""},{"name":"length","nativeSrc":"31330:6:65","nodeType":"YulTypedName","src":"31330:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"31341:11:65","nodeType":"YulTypedName","src":"31341:11:65","type":""}],"src":"31240:147:65"},{"body":{"nativeSrc":"31533:209:65","nodeType":"YulBlock","src":"31533:209:65","statements":[{"nativeSrc":"31543:95:65","nodeType":"YulAssignment","src":"31543:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"31626:3:65","nodeType":"YulIdentifier","src":"31626:3:65"},{"name":"length","nativeSrc":"31631:6:65","nodeType":"YulIdentifier","src":"31631:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31550:75:65","nodeType":"YulIdentifier","src":"31550:75:65"},"nativeSrc":"31550:88:65","nodeType":"YulFunctionCall","src":"31550:88:65"},"variableNames":[{"name":"pos","nativeSrc":"31543:3:65","nodeType":"YulIdentifier","src":"31543:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"31685:5:65","nodeType":"YulIdentifier","src":"31685:5:65"},{"name":"pos","nativeSrc":"31692:3:65","nodeType":"YulIdentifier","src":"31692:3:65"},{"name":"length","nativeSrc":"31697:6:65","nodeType":"YulIdentifier","src":"31697:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"31648:36:65","nodeType":"YulIdentifier","src":"31648:36:65"},"nativeSrc":"31648:56:65","nodeType":"YulFunctionCall","src":"31648:56:65"},"nativeSrc":"31648:56:65","nodeType":"YulExpressionStatement","src":"31648:56:65"},{"nativeSrc":"31713:23:65","nodeType":"YulAssignment","src":"31713:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"31724:3:65","nodeType":"YulIdentifier","src":"31724:3:65"},{"name":"length","nativeSrc":"31729:6:65","nodeType":"YulIdentifier","src":"31729:6:65"}],"functionName":{"name":"add","nativeSrc":"31720:3:65","nodeType":"YulIdentifier","src":"31720:3:65"},"nativeSrc":"31720:16:65","nodeType":"YulFunctionCall","src":"31720:16:65"},"variableNames":[{"name":"end","nativeSrc":"31713:3:65","nodeType":"YulIdentifier","src":"31713:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31415:327:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"31506:5:65","nodeType":"YulTypedName","src":"31506:5:65","type":""},{"name":"length","nativeSrc":"31513:6:65","nodeType":"YulTypedName","src":"31513:6:65","type":""},{"name":"pos","nativeSrc":"31521:3:65","nodeType":"YulTypedName","src":"31521:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31529:3:65","nodeType":"YulTypedName","src":"31529:3:65","type":""}],"src":"31415:327:65"},{"body":{"nativeSrc":"31892:147:65","nodeType":"YulBlock","src":"31892:147:65","statements":[{"nativeSrc":"31903:110:65","nodeType":"YulAssignment","src":"31903:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"31992:6:65","nodeType":"YulIdentifier","src":"31992:6:65"},{"name":"value1","nativeSrc":"32000:6:65","nodeType":"YulIdentifier","src":"32000:6:65"},{"name":"pos","nativeSrc":"32009:3:65","nodeType":"YulIdentifier","src":"32009:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31910:81:65","nodeType":"YulIdentifier","src":"31910:81:65"},"nativeSrc":"31910:103:65","nodeType":"YulFunctionCall","src":"31910:103:65"},"variableNames":[{"name":"pos","nativeSrc":"31903:3:65","nodeType":"YulIdentifier","src":"31903:3:65"}]},{"nativeSrc":"32023:10:65","nodeType":"YulAssignment","src":"32023:10:65","value":{"name":"pos","nativeSrc":"32030:3:65","nodeType":"YulIdentifier","src":"32030:3:65"},"variableNames":[{"name":"end","nativeSrc":"32023:3:65","nodeType":"YulIdentifier","src":"32023:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31748:291:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31863:3:65","nodeType":"YulTypedName","src":"31863:3:65","type":""},{"name":"value1","nativeSrc":"31869:6:65","nodeType":"YulTypedName","src":"31869:6:65","type":""},{"name":"value0","nativeSrc":"31877:6:65","nodeType":"YulTypedName","src":"31877:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31888:3:65","nodeType":"YulTypedName","src":"31888:3:65","type":""}],"src":"31748:291:65"},{"body":{"nativeSrc":"32151:119:65","nodeType":"YulBlock","src":"32151:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"32173:6:65","nodeType":"YulIdentifier","src":"32173:6:65"},{"kind":"number","nativeSrc":"32181:1:65","nodeType":"YulLiteral","src":"32181:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32169:3:65","nodeType":"YulIdentifier","src":"32169:3:65"},"nativeSrc":"32169:14:65","nodeType":"YulFunctionCall","src":"32169:14:65"},{"hexValue":"4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f","kind":"string","nativeSrc":"32185:34:65","nodeType":"YulLiteral","src":"32185:34:65","type":"","value":"LzApp: invalid source sending co"}],"functionName":{"name":"mstore","nativeSrc":"32162:6:65","nodeType":"YulIdentifier","src":"32162:6:65"},"nativeSrc":"32162:58:65","nodeType":"YulFunctionCall","src":"32162:58:65"},"nativeSrc":"32162:58:65","nodeType":"YulExpressionStatement","src":"32162:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"32241:6:65","nodeType":"YulIdentifier","src":"32241:6:65"},{"kind":"number","nativeSrc":"32249:2:65","nodeType":"YulLiteral","src":"32249:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32237:3:65","nodeType":"YulIdentifier","src":"32237:3:65"},"nativeSrc":"32237:15:65","nodeType":"YulFunctionCall","src":"32237:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"32254:8:65","nodeType":"YulLiteral","src":"32254:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"32230:6:65","nodeType":"YulIdentifier","src":"32230:6:65"},"nativeSrc":"32230:33:65","nodeType":"YulFunctionCall","src":"32230:33:65"},"nativeSrc":"32230:33:65","nodeType":"YulExpressionStatement","src":"32230:33:65"}]},"name":"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","nativeSrc":"32045:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"32143:6:65","nodeType":"YulTypedName","src":"32143:6:65","type":""}],"src":"32045:225:65"},{"body":{"nativeSrc":"32422:220:65","nodeType":"YulBlock","src":"32422:220:65","statements":[{"nativeSrc":"32432:74:65","nodeType":"YulAssignment","src":"32432:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"32498:3:65","nodeType":"YulIdentifier","src":"32498:3:65"},{"kind":"number","nativeSrc":"32503:2:65","nodeType":"YulLiteral","src":"32503:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"32439:58:65","nodeType":"YulIdentifier","src":"32439:58:65"},"nativeSrc":"32439:67:65","nodeType":"YulFunctionCall","src":"32439:67:65"},"variableNames":[{"name":"pos","nativeSrc":"32432:3:65","nodeType":"YulIdentifier","src":"32432:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"32604:3:65","nodeType":"YulIdentifier","src":"32604:3:65"}],"functionName":{"name":"store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815","nativeSrc":"32515:88:65","nodeType":"YulIdentifier","src":"32515:88:65"},"nativeSrc":"32515:93:65","nodeType":"YulFunctionCall","src":"32515:93:65"},"nativeSrc":"32515:93:65","nodeType":"YulExpressionStatement","src":"32515:93:65"},{"nativeSrc":"32617:19:65","nodeType":"YulAssignment","src":"32617:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"32628:3:65","nodeType":"YulIdentifier","src":"32628:3:65"},{"kind":"number","nativeSrc":"32633:2:65","nodeType":"YulLiteral","src":"32633:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"32624:3:65","nodeType":"YulIdentifier","src":"32624:3:65"},"nativeSrc":"32624:12:65","nodeType":"YulFunctionCall","src":"32624:12:65"},"variableNames":[{"name":"end","nativeSrc":"32617:3:65","nodeType":"YulIdentifier","src":"32617:3:65"}]}]},"name":"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack","nativeSrc":"32276:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"32410:3:65","nodeType":"YulTypedName","src":"32410:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32418:3:65","nodeType":"YulTypedName","src":"32418:3:65","type":""}],"src":"32276:366:65"},{"body":{"nativeSrc":"32819:248:65","nodeType":"YulBlock","src":"32819:248:65","statements":[{"nativeSrc":"32829:26:65","nodeType":"YulAssignment","src":"32829:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"32841:9:65","nodeType":"YulIdentifier","src":"32841:9:65"},{"kind":"number","nativeSrc":"32852:2:65","nodeType":"YulLiteral","src":"32852:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32837:3:65","nodeType":"YulIdentifier","src":"32837:3:65"},"nativeSrc":"32837:18:65","nodeType":"YulFunctionCall","src":"32837:18:65"},"variableNames":[{"name":"tail","nativeSrc":"32829:4:65","nodeType":"YulIdentifier","src":"32829:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32876:9:65","nodeType":"YulIdentifier","src":"32876:9:65"},{"kind":"number","nativeSrc":"32887:1:65","nodeType":"YulLiteral","src":"32887:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32872:3:65","nodeType":"YulIdentifier","src":"32872:3:65"},"nativeSrc":"32872:17:65","nodeType":"YulFunctionCall","src":"32872:17:65"},{"arguments":[{"name":"tail","nativeSrc":"32895:4:65","nodeType":"YulIdentifier","src":"32895:4:65"},{"name":"headStart","nativeSrc":"32901:9:65","nodeType":"YulIdentifier","src":"32901:9:65"}],"functionName":{"name":"sub","nativeSrc":"32891:3:65","nodeType":"YulIdentifier","src":"32891:3:65"},"nativeSrc":"32891:20:65","nodeType":"YulFunctionCall","src":"32891:20:65"}],"functionName":{"name":"mstore","nativeSrc":"32865:6:65","nodeType":"YulIdentifier","src":"32865:6:65"},"nativeSrc":"32865:47:65","nodeType":"YulFunctionCall","src":"32865:47:65"},"nativeSrc":"32865:47:65","nodeType":"YulExpressionStatement","src":"32865:47:65"},{"nativeSrc":"32921:139:65","nodeType":"YulAssignment","src":"32921:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"33055:4:65","nodeType":"YulIdentifier","src":"33055:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack","nativeSrc":"32929:124:65","nodeType":"YulIdentifier","src":"32929:124:65"},"nativeSrc":"32929:131:65","nodeType":"YulFunctionCall","src":"32929:131:65"},"variableNames":[{"name":"tail","nativeSrc":"32921:4:65","nodeType":"YulIdentifier","src":"32921:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"32648:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32799:9:65","nodeType":"YulTypedName","src":"32799:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32814:4:65","nodeType":"YulTypedName","src":"32814:4:65","type":""}],"src":"32648:419:65"},{"body":{"nativeSrc":"33136:52:65","nodeType":"YulBlock","src":"33136:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"33153:3:65","nodeType":"YulIdentifier","src":"33153:3:65"},{"arguments":[{"name":"value","nativeSrc":"33175:5:65","nodeType":"YulIdentifier","src":"33175:5:65"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"33158:16:65","nodeType":"YulIdentifier","src":"33158:16:65"},"nativeSrc":"33158:23:65","nodeType":"YulFunctionCall","src":"33158:23:65"}],"functionName":{"name":"mstore","nativeSrc":"33146:6:65","nodeType":"YulIdentifier","src":"33146:6:65"},"nativeSrc":"33146:36:65","nodeType":"YulFunctionCall","src":"33146:36:65"},"nativeSrc":"33146:36:65","nodeType":"YulExpressionStatement","src":"33146:36:65"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"33073:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"33124:5:65","nodeType":"YulTypedName","src":"33124:5:65","type":""},{"name":"pos","nativeSrc":"33131:3:65","nodeType":"YulTypedName","src":"33131:3:65","type":""}],"src":"33073:115:65"},{"body":{"nativeSrc":"33290:122:65","nodeType":"YulBlock","src":"33290:122:65","statements":[{"nativeSrc":"33300:26:65","nodeType":"YulAssignment","src":"33300:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"33312:9:65","nodeType":"YulIdentifier","src":"33312:9:65"},{"kind":"number","nativeSrc":"33323:2:65","nodeType":"YulLiteral","src":"33323:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33308:3:65","nodeType":"YulIdentifier","src":"33308:3:65"},"nativeSrc":"33308:18:65","nodeType":"YulFunctionCall","src":"33308:18:65"},"variableNames":[{"name":"tail","nativeSrc":"33300:4:65","nodeType":"YulIdentifier","src":"33300:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33378:6:65","nodeType":"YulIdentifier","src":"33378:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"33391:9:65","nodeType":"YulIdentifier","src":"33391:9:65"},{"kind":"number","nativeSrc":"33402:1:65","nodeType":"YulLiteral","src":"33402:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33387:3:65","nodeType":"YulIdentifier","src":"33387:3:65"},"nativeSrc":"33387:17:65","nodeType":"YulFunctionCall","src":"33387:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"33336:41:65","nodeType":"YulIdentifier","src":"33336:41:65"},"nativeSrc":"33336:69:65","nodeType":"YulFunctionCall","src":"33336:69:65"},"nativeSrc":"33336:69:65","nodeType":"YulExpressionStatement","src":"33336:69:65"}]},"name":"abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed","nativeSrc":"33194:218:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33262:9:65","nodeType":"YulTypedName","src":"33262:9:65","type":""},{"name":"value0","nativeSrc":"33274:6:65","nodeType":"YulTypedName","src":"33274:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33285:4:65","nodeType":"YulTypedName","src":"33285:4:65","type":""}],"src":"33194:218:65"},{"body":{"nativeSrc":"33481:80:65","nodeType":"YulBlock","src":"33481:80:65","statements":[{"nativeSrc":"33491:22:65","nodeType":"YulAssignment","src":"33491:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"33506:6:65","nodeType":"YulIdentifier","src":"33506:6:65"}],"functionName":{"name":"mload","nativeSrc":"33500:5:65","nodeType":"YulIdentifier","src":"33500:5:65"},"nativeSrc":"33500:13:65","nodeType":"YulFunctionCall","src":"33500:13:65"},"variableNames":[{"name":"value","nativeSrc":"33491:5:65","nodeType":"YulIdentifier","src":"33491:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"33549:5:65","nodeType":"YulIdentifier","src":"33549:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"33522:26:65","nodeType":"YulIdentifier","src":"33522:26:65"},"nativeSrc":"33522:33:65","nodeType":"YulFunctionCall","src":"33522:33:65"},"nativeSrc":"33522:33:65","nodeType":"YulExpressionStatement","src":"33522:33:65"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"33418:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"33459:6:65","nodeType":"YulTypedName","src":"33459:6:65","type":""},{"name":"end","nativeSrc":"33467:3:65","nodeType":"YulTypedName","src":"33467:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"33475:5:65","nodeType":"YulTypedName","src":"33475:5:65","type":""}],"src":"33418:143:65"},{"body":{"nativeSrc":"33644:274:65","nodeType":"YulBlock","src":"33644:274:65","statements":[{"body":{"nativeSrc":"33690:83:65","nodeType":"YulBlock","src":"33690:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"33692:77:65","nodeType":"YulIdentifier","src":"33692:77:65"},"nativeSrc":"33692:79:65","nodeType":"YulFunctionCall","src":"33692:79:65"},"nativeSrc":"33692:79:65","nodeType":"YulExpressionStatement","src":"33692:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33665:7:65","nodeType":"YulIdentifier","src":"33665:7:65"},{"name":"headStart","nativeSrc":"33674:9:65","nodeType":"YulIdentifier","src":"33674:9:65"}],"functionName":{"name":"sub","nativeSrc":"33661:3:65","nodeType":"YulIdentifier","src":"33661:3:65"},"nativeSrc":"33661:23:65","nodeType":"YulFunctionCall","src":"33661:23:65"},{"kind":"number","nativeSrc":"33686:2:65","nodeType":"YulLiteral","src":"33686:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33657:3:65","nodeType":"YulIdentifier","src":"33657:3:65"},"nativeSrc":"33657:32:65","nodeType":"YulFunctionCall","src":"33657:32:65"},"nativeSrc":"33654:119:65","nodeType":"YulIf","src":"33654:119:65"},{"nativeSrc":"33783:128:65","nodeType":"YulBlock","src":"33783:128:65","statements":[{"nativeSrc":"33798:15:65","nodeType":"YulVariableDeclaration","src":"33798:15:65","value":{"kind":"number","nativeSrc":"33812:1:65","nodeType":"YulLiteral","src":"33812:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"33802:6:65","nodeType":"YulTypedName","src":"33802:6:65","type":""}]},{"nativeSrc":"33827:74:65","nodeType":"YulAssignment","src":"33827:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33873:9:65","nodeType":"YulIdentifier","src":"33873:9:65"},{"name":"offset","nativeSrc":"33884:6:65","nodeType":"YulIdentifier","src":"33884:6:65"}],"functionName":{"name":"add","nativeSrc":"33869:3:65","nodeType":"YulIdentifier","src":"33869:3:65"},"nativeSrc":"33869:22:65","nodeType":"YulFunctionCall","src":"33869:22:65"},{"name":"dataEnd","nativeSrc":"33893:7:65","nodeType":"YulIdentifier","src":"33893:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"33837:31:65","nodeType":"YulIdentifier","src":"33837:31:65"},"nativeSrc":"33837:64:65","nodeType":"YulFunctionCall","src":"33837:64:65"},"variableNames":[{"name":"value0","nativeSrc":"33827:6:65","nodeType":"YulIdentifier","src":"33827:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"33567:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33614:9:65","nodeType":"YulTypedName","src":"33614:9:65","type":""},{"name":"dataEnd","nativeSrc":"33625:7:65","nodeType":"YulTypedName","src":"33625:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33637:6:65","nodeType":"YulTypedName","src":"33637:6:65","type":""}],"src":"33567:351:65"},{"body":{"nativeSrc":"33952:152:65","nodeType":"YulBlock","src":"33952:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33969:1:65","nodeType":"YulLiteral","src":"33969:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"33972:77:65","nodeType":"YulLiteral","src":"33972:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"33962:6:65","nodeType":"YulIdentifier","src":"33962:6:65"},"nativeSrc":"33962:88:65","nodeType":"YulFunctionCall","src":"33962:88:65"},"nativeSrc":"33962:88:65","nodeType":"YulExpressionStatement","src":"33962:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34066:1:65","nodeType":"YulLiteral","src":"34066:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"34069:4:65","nodeType":"YulLiteral","src":"34069:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"34059:6:65","nodeType":"YulIdentifier","src":"34059:6:65"},"nativeSrc":"34059:15:65","nodeType":"YulFunctionCall","src":"34059:15:65"},"nativeSrc":"34059:15:65","nodeType":"YulExpressionStatement","src":"34059:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34090:1:65","nodeType":"YulLiteral","src":"34090:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"34093:4:65","nodeType":"YulLiteral","src":"34093:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"34083:6:65","nodeType":"YulIdentifier","src":"34083:6:65"},"nativeSrc":"34083:15:65","nodeType":"YulFunctionCall","src":"34083:15:65"},"nativeSrc":"34083:15:65","nodeType":"YulExpressionStatement","src":"34083:15:65"}]},"name":"panic_error_0x11","nativeSrc":"33924:180:65","nodeType":"YulFunctionDefinition","src":"33924:180:65"},{"body":{"nativeSrc":"34155:149:65","nodeType":"YulBlock","src":"34155:149:65","statements":[{"nativeSrc":"34165:25:65","nodeType":"YulAssignment","src":"34165:25:65","value":{"arguments":[{"name":"x","nativeSrc":"34188:1:65","nodeType":"YulIdentifier","src":"34188:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34170:17:65","nodeType":"YulIdentifier","src":"34170:17:65"},"nativeSrc":"34170:20:65","nodeType":"YulFunctionCall","src":"34170:20:65"},"variableNames":[{"name":"x","nativeSrc":"34165:1:65","nodeType":"YulIdentifier","src":"34165:1:65"}]},{"nativeSrc":"34199:25:65","nodeType":"YulAssignment","src":"34199:25:65","value":{"arguments":[{"name":"y","nativeSrc":"34222:1:65","nodeType":"YulIdentifier","src":"34222:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34204:17:65","nodeType":"YulIdentifier","src":"34204:17:65"},"nativeSrc":"34204:20:65","nodeType":"YulFunctionCall","src":"34204:20:65"},"variableNames":[{"name":"y","nativeSrc":"34199:1:65","nodeType":"YulIdentifier","src":"34199:1:65"}]},{"nativeSrc":"34233:17:65","nodeType":"YulAssignment","src":"34233:17:65","value":{"arguments":[{"name":"x","nativeSrc":"34245:1:65","nodeType":"YulIdentifier","src":"34245:1:65"},{"name":"y","nativeSrc":"34248:1:65","nodeType":"YulIdentifier","src":"34248:1:65"}],"functionName":{"name":"sub","nativeSrc":"34241:3:65","nodeType":"YulIdentifier","src":"34241:3:65"},"nativeSrc":"34241:9:65","nodeType":"YulFunctionCall","src":"34241:9:65"},"variableNames":[{"name":"diff","nativeSrc":"34233:4:65","nodeType":"YulIdentifier","src":"34233:4:65"}]},{"body":{"nativeSrc":"34275:22:65","nodeType":"YulBlock","src":"34275:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"34277:16:65","nodeType":"YulIdentifier","src":"34277:16:65"},"nativeSrc":"34277:18:65","nodeType":"YulFunctionCall","src":"34277:18:65"},"nativeSrc":"34277:18:65","nodeType":"YulExpressionStatement","src":"34277:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"34266:4:65","nodeType":"YulIdentifier","src":"34266:4:65"},{"name":"x","nativeSrc":"34272:1:65","nodeType":"YulIdentifier","src":"34272:1:65"}],"functionName":{"name":"gt","nativeSrc":"34263:2:65","nodeType":"YulIdentifier","src":"34263:2:65"},"nativeSrc":"34263:11:65","nodeType":"YulFunctionCall","src":"34263:11:65"},"nativeSrc":"34260:37:65","nodeType":"YulIf","src":"34260:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"34110:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"34141:1:65","nodeType":"YulTypedName","src":"34141:1:65","type":""},{"name":"y","nativeSrc":"34144:1:65","nodeType":"YulTypedName","src":"34144:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"34150:4:65","nodeType":"YulTypedName","src":"34150:4:65","type":""}],"src":"34110:194:65"},{"body":{"nativeSrc":"34354:147:65","nodeType":"YulBlock","src":"34354:147:65","statements":[{"nativeSrc":"34364:25:65","nodeType":"YulAssignment","src":"34364:25:65","value":{"arguments":[{"name":"x","nativeSrc":"34387:1:65","nodeType":"YulIdentifier","src":"34387:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34369:17:65","nodeType":"YulIdentifier","src":"34369:17:65"},"nativeSrc":"34369:20:65","nodeType":"YulFunctionCall","src":"34369:20:65"},"variableNames":[{"name":"x","nativeSrc":"34364:1:65","nodeType":"YulIdentifier","src":"34364:1:65"}]},{"nativeSrc":"34398:25:65","nodeType":"YulAssignment","src":"34398:25:65","value":{"arguments":[{"name":"y","nativeSrc":"34421:1:65","nodeType":"YulIdentifier","src":"34421:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"34403:17:65","nodeType":"YulIdentifier","src":"34403:17:65"},"nativeSrc":"34403:20:65","nodeType":"YulFunctionCall","src":"34403:20:65"},"variableNames":[{"name":"y","nativeSrc":"34398:1:65","nodeType":"YulIdentifier","src":"34398:1:65"}]},{"nativeSrc":"34432:16:65","nodeType":"YulAssignment","src":"34432:16:65","value":{"arguments":[{"name":"x","nativeSrc":"34443:1:65","nodeType":"YulIdentifier","src":"34443:1:65"},{"name":"y","nativeSrc":"34446:1:65","nodeType":"YulIdentifier","src":"34446:1:65"}],"functionName":{"name":"add","nativeSrc":"34439:3:65","nodeType":"YulIdentifier","src":"34439:3:65"},"nativeSrc":"34439:9:65","nodeType":"YulFunctionCall","src":"34439:9:65"},"variableNames":[{"name":"sum","nativeSrc":"34432:3:65","nodeType":"YulIdentifier","src":"34432:3:65"}]},{"body":{"nativeSrc":"34472:22:65","nodeType":"YulBlock","src":"34472:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"34474:16:65","nodeType":"YulIdentifier","src":"34474:16:65"},"nativeSrc":"34474:18:65","nodeType":"YulFunctionCall","src":"34474:18:65"},"nativeSrc":"34474:18:65","nodeType":"YulExpressionStatement","src":"34474:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"34464:1:65","nodeType":"YulIdentifier","src":"34464:1:65"},{"name":"sum","nativeSrc":"34467:3:65","nodeType":"YulIdentifier","src":"34467:3:65"}],"functionName":{"name":"gt","nativeSrc":"34461:2:65","nodeType":"YulIdentifier","src":"34461:2:65"},"nativeSrc":"34461:10:65","nodeType":"YulFunctionCall","src":"34461:10:65"},"nativeSrc":"34458:36:65","nodeType":"YulIf","src":"34458:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"34310:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"34341:1:65","nodeType":"YulTypedName","src":"34341:1:65","type":""},{"name":"y","nativeSrc":"34344:1:65","nodeType":"YulTypedName","src":"34344:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"34350:3:65","nodeType":"YulTypedName","src":"34350:3:65","type":""}],"src":"34310:191:65"},{"body":{"nativeSrc":"34613:119:65","nodeType":"YulBlock","src":"34613:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34635:6:65","nodeType":"YulIdentifier","src":"34635:6:65"},{"kind":"number","nativeSrc":"34643:1:65","nodeType":"YulLiteral","src":"34643:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34631:3:65","nodeType":"YulIdentifier","src":"34631:3:65"},"nativeSrc":"34631:14:65","nodeType":"YulFunctionCall","src":"34631:14:65"},{"hexValue":"4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e","kind":"string","nativeSrc":"34647:34:65","nodeType":"YulLiteral","src":"34647:34:65","type":"","value":"Daily limit < single transaction"}],"functionName":{"name":"mstore","nativeSrc":"34624:6:65","nodeType":"YulIdentifier","src":"34624:6:65"},"nativeSrc":"34624:58:65","nodeType":"YulFunctionCall","src":"34624:58:65"},"nativeSrc":"34624:58:65","nodeType":"YulExpressionStatement","src":"34624:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"34703:6:65","nodeType":"YulIdentifier","src":"34703:6:65"},{"kind":"number","nativeSrc":"34711:2:65","nodeType":"YulLiteral","src":"34711:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34699:3:65","nodeType":"YulIdentifier","src":"34699:3:65"},"nativeSrc":"34699:15:65","nodeType":"YulFunctionCall","src":"34699:15:65"},{"hexValue":"206c696d6974","kind":"string","nativeSrc":"34716:8:65","nodeType":"YulLiteral","src":"34716:8:65","type":"","value":" limit"}],"functionName":{"name":"mstore","nativeSrc":"34692:6:65","nodeType":"YulIdentifier","src":"34692:6:65"},"nativeSrc":"34692:33:65","nodeType":"YulFunctionCall","src":"34692:33:65"},"nativeSrc":"34692:33:65","nodeType":"YulExpressionStatement","src":"34692:33:65"}]},"name":"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","nativeSrc":"34507:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"34605:6:65","nodeType":"YulTypedName","src":"34605:6:65","type":""}],"src":"34507:225:65"},{"body":{"nativeSrc":"34884:220:65","nodeType":"YulBlock","src":"34884:220:65","statements":[{"nativeSrc":"34894:74:65","nodeType":"YulAssignment","src":"34894:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"34960:3:65","nodeType":"YulIdentifier","src":"34960:3:65"},{"kind":"number","nativeSrc":"34965:2:65","nodeType":"YulLiteral","src":"34965:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"34901:58:65","nodeType":"YulIdentifier","src":"34901:58:65"},"nativeSrc":"34901:67:65","nodeType":"YulFunctionCall","src":"34901:67:65"},"variableNames":[{"name":"pos","nativeSrc":"34894:3:65","nodeType":"YulIdentifier","src":"34894:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"35066:3:65","nodeType":"YulIdentifier","src":"35066:3:65"}],"functionName":{"name":"store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da","nativeSrc":"34977:88:65","nodeType":"YulIdentifier","src":"34977:88:65"},"nativeSrc":"34977:93:65","nodeType":"YulFunctionCall","src":"34977:93:65"},"nativeSrc":"34977:93:65","nodeType":"YulExpressionStatement","src":"34977:93:65"},{"nativeSrc":"35079:19:65","nodeType":"YulAssignment","src":"35079:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"35090:3:65","nodeType":"YulIdentifier","src":"35090:3:65"},{"kind":"number","nativeSrc":"35095:2:65","nodeType":"YulLiteral","src":"35095:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35086:3:65","nodeType":"YulIdentifier","src":"35086:3:65"},"nativeSrc":"35086:12:65","nodeType":"YulFunctionCall","src":"35086:12:65"},"variableNames":[{"name":"end","nativeSrc":"35079:3:65","nodeType":"YulIdentifier","src":"35079:3:65"}]}]},"name":"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack","nativeSrc":"34738:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"34872:3:65","nodeType":"YulTypedName","src":"34872:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34880:3:65","nodeType":"YulTypedName","src":"34880:3:65","type":""}],"src":"34738:366:65"},{"body":{"nativeSrc":"35281:248:65","nodeType":"YulBlock","src":"35281:248:65","statements":[{"nativeSrc":"35291:26:65","nodeType":"YulAssignment","src":"35291:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"35303:9:65","nodeType":"YulIdentifier","src":"35303:9:65"},{"kind":"number","nativeSrc":"35314:2:65","nodeType":"YulLiteral","src":"35314:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35299:3:65","nodeType":"YulIdentifier","src":"35299:3:65"},"nativeSrc":"35299:18:65","nodeType":"YulFunctionCall","src":"35299:18:65"},"variableNames":[{"name":"tail","nativeSrc":"35291:4:65","nodeType":"YulIdentifier","src":"35291:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35338:9:65","nodeType":"YulIdentifier","src":"35338:9:65"},{"kind":"number","nativeSrc":"35349:1:65","nodeType":"YulLiteral","src":"35349:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35334:3:65","nodeType":"YulIdentifier","src":"35334:3:65"},"nativeSrc":"35334:17:65","nodeType":"YulFunctionCall","src":"35334:17:65"},{"arguments":[{"name":"tail","nativeSrc":"35357:4:65","nodeType":"YulIdentifier","src":"35357:4:65"},{"name":"headStart","nativeSrc":"35363:9:65","nodeType":"YulIdentifier","src":"35363:9:65"}],"functionName":{"name":"sub","nativeSrc":"35353:3:65","nodeType":"YulIdentifier","src":"35353:3:65"},"nativeSrc":"35353:20:65","nodeType":"YulFunctionCall","src":"35353:20:65"}],"functionName":{"name":"mstore","nativeSrc":"35327:6:65","nodeType":"YulIdentifier","src":"35327:6:65"},"nativeSrc":"35327:47:65","nodeType":"YulFunctionCall","src":"35327:47:65"},"nativeSrc":"35327:47:65","nodeType":"YulExpressionStatement","src":"35327:47:65"},{"nativeSrc":"35383:139:65","nodeType":"YulAssignment","src":"35383:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"35517:4:65","nodeType":"YulIdentifier","src":"35517:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack","nativeSrc":"35391:124:65","nodeType":"YulIdentifier","src":"35391:124:65"},"nativeSrc":"35391:131:65","nodeType":"YulFunctionCall","src":"35391:131:65"},"variableNames":[{"name":"tail","nativeSrc":"35383:4:65","nodeType":"YulIdentifier","src":"35383:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"35110:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35261:9:65","nodeType":"YulTypedName","src":"35261:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35276:4:65","nodeType":"YulTypedName","src":"35276:4:65","type":""}],"src":"35110:419:65"},{"body":{"nativeSrc":"35687:286:65","nodeType":"YulBlock","src":"35687:286:65","statements":[{"nativeSrc":"35697:26:65","nodeType":"YulAssignment","src":"35697:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"35709:9:65","nodeType":"YulIdentifier","src":"35709:9:65"},{"kind":"number","nativeSrc":"35720:2:65","nodeType":"YulLiteral","src":"35720:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"35705:3:65","nodeType":"YulIdentifier","src":"35705:3:65"},"nativeSrc":"35705:18:65","nodeType":"YulFunctionCall","src":"35705:18:65"},"variableNames":[{"name":"tail","nativeSrc":"35697:4:65","nodeType":"YulIdentifier","src":"35697:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"35775:6:65","nodeType":"YulIdentifier","src":"35775:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35788:9:65","nodeType":"YulIdentifier","src":"35788:9:65"},{"kind":"number","nativeSrc":"35799:1:65","nodeType":"YulLiteral","src":"35799:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35784:3:65","nodeType":"YulIdentifier","src":"35784:3:65"},"nativeSrc":"35784:17:65","nodeType":"YulFunctionCall","src":"35784:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"35733:41:65","nodeType":"YulIdentifier","src":"35733:41:65"},"nativeSrc":"35733:69:65","nodeType":"YulFunctionCall","src":"35733:69:65"},"nativeSrc":"35733:69:65","nodeType":"YulExpressionStatement","src":"35733:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"35856:6:65","nodeType":"YulIdentifier","src":"35856:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35869:9:65","nodeType":"YulIdentifier","src":"35869:9:65"},{"kind":"number","nativeSrc":"35880:2:65","nodeType":"YulLiteral","src":"35880:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35865:3:65","nodeType":"YulIdentifier","src":"35865:3:65"},"nativeSrc":"35865:18:65","nodeType":"YulFunctionCall","src":"35865:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"35812:43:65","nodeType":"YulIdentifier","src":"35812:43:65"},"nativeSrc":"35812:72:65","nodeType":"YulFunctionCall","src":"35812:72:65"},"nativeSrc":"35812:72:65","nodeType":"YulExpressionStatement","src":"35812:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"35938:6:65","nodeType":"YulIdentifier","src":"35938:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"35951:9:65","nodeType":"YulIdentifier","src":"35951:9:65"},{"kind":"number","nativeSrc":"35962:2:65","nodeType":"YulLiteral","src":"35962:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"35947:3:65","nodeType":"YulIdentifier","src":"35947:3:65"},"nativeSrc":"35947:18:65","nodeType":"YulFunctionCall","src":"35947:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"35894:43:65","nodeType":"YulIdentifier","src":"35894:43:65"},"nativeSrc":"35894:72:65","nodeType":"YulFunctionCall","src":"35894:72:65"},"nativeSrc":"35894:72:65","nodeType":"YulExpressionStatement","src":"35894:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"35535:438:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35643:9:65","nodeType":"YulTypedName","src":"35643:9:65","type":""},{"name":"value2","nativeSrc":"35655:6:65","nodeType":"YulTypedName","src":"35655:6:65","type":""},{"name":"value1","nativeSrc":"35663:6:65","nodeType":"YulTypedName","src":"35663:6:65","type":""},{"name":"value0","nativeSrc":"35671:6:65","nodeType":"YulTypedName","src":"35671:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35682:4:65","nodeType":"YulTypedName","src":"35682:4:65","type":""}],"src":"35535:438:65"},{"body":{"nativeSrc":"36101:214:65","nodeType":"YulBlock","src":"36101:214:65","statements":[{"nativeSrc":"36111:77:65","nodeType":"YulAssignment","src":"36111:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"36176:3:65","nodeType":"YulIdentifier","src":"36176:3:65"},{"name":"length","nativeSrc":"36181:6:65","nodeType":"YulIdentifier","src":"36181:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"36118:57:65","nodeType":"YulIdentifier","src":"36118:57:65"},"nativeSrc":"36118:70:65","nodeType":"YulFunctionCall","src":"36118:70:65"},"variableNames":[{"name":"pos","nativeSrc":"36111:3:65","nodeType":"YulIdentifier","src":"36111:3:65"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"36235:5:65","nodeType":"YulIdentifier","src":"36235:5:65"},{"name":"pos","nativeSrc":"36242:3:65","nodeType":"YulIdentifier","src":"36242:3:65"},{"name":"length","nativeSrc":"36247:6:65","nodeType":"YulIdentifier","src":"36247:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"36198:36:65","nodeType":"YulIdentifier","src":"36198:36:65"},"nativeSrc":"36198:56:65","nodeType":"YulFunctionCall","src":"36198:56:65"},"nativeSrc":"36198:56:65","nodeType":"YulExpressionStatement","src":"36198:56:65"},{"nativeSrc":"36263:46:65","nodeType":"YulAssignment","src":"36263:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"36274:3:65","nodeType":"YulIdentifier","src":"36274:3:65"},{"arguments":[{"name":"length","nativeSrc":"36301:6:65","nodeType":"YulIdentifier","src":"36301:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"36279:21:65","nodeType":"YulIdentifier","src":"36279:21:65"},"nativeSrc":"36279:29:65","nodeType":"YulFunctionCall","src":"36279:29:65"}],"functionName":{"name":"add","nativeSrc":"36270:3:65","nodeType":"YulIdentifier","src":"36270:3:65"},"nativeSrc":"36270:39:65","nodeType":"YulFunctionCall","src":"36270:39:65"},"variableNames":[{"name":"end","nativeSrc":"36263:3:65","nodeType":"YulIdentifier","src":"36263:3:65"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"36001:314:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"36074:5:65","nodeType":"YulTypedName","src":"36074:5:65","type":""},{"name":"length","nativeSrc":"36081:6:65","nodeType":"YulTypedName","src":"36081:6:65","type":""},{"name":"pos","nativeSrc":"36089:3:65","nodeType":"YulTypedName","src":"36089:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"36097:3:65","nodeType":"YulTypedName","src":"36097:3:65","type":""}],"src":"36001:314:65"},{"body":{"nativeSrc":"36473:283:65","nodeType":"YulBlock","src":"36473:283:65","statements":[{"nativeSrc":"36483:26:65","nodeType":"YulAssignment","src":"36483:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"36495:9:65","nodeType":"YulIdentifier","src":"36495:9:65"},{"kind":"number","nativeSrc":"36506:2:65","nodeType":"YulLiteral","src":"36506:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"36491:3:65","nodeType":"YulIdentifier","src":"36491:3:65"},"nativeSrc":"36491:18:65","nodeType":"YulFunctionCall","src":"36491:18:65"},"variableNames":[{"name":"tail","nativeSrc":"36483:4:65","nodeType":"YulIdentifier","src":"36483:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"36561:6:65","nodeType":"YulIdentifier","src":"36561:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"36574:9:65","nodeType":"YulIdentifier","src":"36574:9:65"},{"kind":"number","nativeSrc":"36585:1:65","nodeType":"YulLiteral","src":"36585:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36570:3:65","nodeType":"YulIdentifier","src":"36570:3:65"},"nativeSrc":"36570:17:65","nodeType":"YulFunctionCall","src":"36570:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"36519:41:65","nodeType":"YulIdentifier","src":"36519:41:65"},"nativeSrc":"36519:69:65","nodeType":"YulFunctionCall","src":"36519:69:65"},"nativeSrc":"36519:69:65","nodeType":"YulExpressionStatement","src":"36519:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36609:9:65","nodeType":"YulIdentifier","src":"36609:9:65"},{"kind":"number","nativeSrc":"36620:2:65","nodeType":"YulLiteral","src":"36620:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36605:3:65","nodeType":"YulIdentifier","src":"36605:3:65"},"nativeSrc":"36605:18:65","nodeType":"YulFunctionCall","src":"36605:18:65"},{"arguments":[{"name":"tail","nativeSrc":"36629:4:65","nodeType":"YulIdentifier","src":"36629:4:65"},{"name":"headStart","nativeSrc":"36635:9:65","nodeType":"YulIdentifier","src":"36635:9:65"}],"functionName":{"name":"sub","nativeSrc":"36625:3:65","nodeType":"YulIdentifier","src":"36625:3:65"},"nativeSrc":"36625:20:65","nodeType":"YulFunctionCall","src":"36625:20:65"}],"functionName":{"name":"mstore","nativeSrc":"36598:6:65","nodeType":"YulIdentifier","src":"36598:6:65"},"nativeSrc":"36598:48:65","nodeType":"YulFunctionCall","src":"36598:48:65"},"nativeSrc":"36598:48:65","nodeType":"YulExpressionStatement","src":"36598:48:65"},{"nativeSrc":"36655:94:65","nodeType":"YulAssignment","src":"36655:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"36727:6:65","nodeType":"YulIdentifier","src":"36727:6:65"},{"name":"value2","nativeSrc":"36735:6:65","nodeType":"YulIdentifier","src":"36735:6:65"},{"name":"tail","nativeSrc":"36744:4:65","nodeType":"YulIdentifier","src":"36744:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"36663:63:65","nodeType":"YulIdentifier","src":"36663:63:65"},"nativeSrc":"36663:86:65","nodeType":"YulFunctionCall","src":"36663:86:65"},"variableNames":[{"name":"tail","nativeSrc":"36655:4:65","nodeType":"YulIdentifier","src":"36655:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"36321:435:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"36429:9:65","nodeType":"YulTypedName","src":"36429:9:65","type":""},{"name":"value2","nativeSrc":"36441:6:65","nodeType":"YulTypedName","src":"36441:6:65","type":""},{"name":"value1","nativeSrc":"36449:6:65","nodeType":"YulTypedName","src":"36449:6:65","type":""},{"name":"value0","nativeSrc":"36457:6:65","nodeType":"YulTypedName","src":"36457:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"36468:4:65","nodeType":"YulTypedName","src":"36468:4:65","type":""}],"src":"36321:435:65"},{"body":{"nativeSrc":"36868:132:65","nodeType":"YulBlock","src":"36868:132:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"36890:6:65","nodeType":"YulIdentifier","src":"36890:6:65"},{"kind":"number","nativeSrc":"36898:1:65","nodeType":"YulLiteral","src":"36898:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"36886:3:65","nodeType":"YulIdentifier","src":"36886:3:65"},"nativeSrc":"36886:14:65","nodeType":"YulFunctionCall","src":"36886:14:65"},{"hexValue":"576974686472617720616d6f756e742073686f756c64206265206c6573732074","kind":"string","nativeSrc":"36902:34:65","nodeType":"YulLiteral","src":"36902:34:65","type":"","value":"Withdraw amount should be less t"}],"functionName":{"name":"mstore","nativeSrc":"36879:6:65","nodeType":"YulIdentifier","src":"36879:6:65"},"nativeSrc":"36879:58:65","nodeType":"YulFunctionCall","src":"36879:58:65"},"nativeSrc":"36879:58:65","nodeType":"YulExpressionStatement","src":"36879:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"36958:6:65","nodeType":"YulIdentifier","src":"36958:6:65"},{"kind":"number","nativeSrc":"36966:2:65","nodeType":"YulLiteral","src":"36966:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"36954:3:65","nodeType":"YulIdentifier","src":"36954:3:65"},"nativeSrc":"36954:15:65","nodeType":"YulFunctionCall","src":"36954:15:65"},{"hexValue":"68616e206f7574626f756e6420616d6f756e74","kind":"string","nativeSrc":"36971:21:65","nodeType":"YulLiteral","src":"36971:21:65","type":"","value":"han outbound amount"}],"functionName":{"name":"mstore","nativeSrc":"36947:6:65","nodeType":"YulIdentifier","src":"36947:6:65"},"nativeSrc":"36947:46:65","nodeType":"YulFunctionCall","src":"36947:46:65"},"nativeSrc":"36947:46:65","nodeType":"YulExpressionStatement","src":"36947:46:65"}]},"name":"store_literal_in_memory_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea","nativeSrc":"36762:238:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"36860:6:65","nodeType":"YulTypedName","src":"36860:6:65","type":""}],"src":"36762:238:65"},{"body":{"nativeSrc":"37152:220:65","nodeType":"YulBlock","src":"37152:220:65","statements":[{"nativeSrc":"37162:74:65","nodeType":"YulAssignment","src":"37162:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"37228:3:65","nodeType":"YulIdentifier","src":"37228:3:65"},{"kind":"number","nativeSrc":"37233:2:65","nodeType":"YulLiteral","src":"37233:2:65","type":"","value":"51"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"37169:58:65","nodeType":"YulIdentifier","src":"37169:58:65"},"nativeSrc":"37169:67:65","nodeType":"YulFunctionCall","src":"37169:67:65"},"variableNames":[{"name":"pos","nativeSrc":"37162:3:65","nodeType":"YulIdentifier","src":"37162:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"37334:3:65","nodeType":"YulIdentifier","src":"37334:3:65"}],"functionName":{"name":"store_literal_in_memory_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea","nativeSrc":"37245:88:65","nodeType":"YulIdentifier","src":"37245:88:65"},"nativeSrc":"37245:93:65","nodeType":"YulFunctionCall","src":"37245:93:65"},"nativeSrc":"37245:93:65","nodeType":"YulExpressionStatement","src":"37245:93:65"},{"nativeSrc":"37347:19:65","nodeType":"YulAssignment","src":"37347:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"37358:3:65","nodeType":"YulIdentifier","src":"37358:3:65"},{"kind":"number","nativeSrc":"37363:2:65","nodeType":"YulLiteral","src":"37363:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"37354:3:65","nodeType":"YulIdentifier","src":"37354:3:65"},"nativeSrc":"37354:12:65","nodeType":"YulFunctionCall","src":"37354:12:65"},"variableNames":[{"name":"end","nativeSrc":"37347:3:65","nodeType":"YulIdentifier","src":"37347:3:65"}]}]},"name":"abi_encode_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea_to_t_string_memory_ptr_fromStack","nativeSrc":"37006:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"37140:3:65","nodeType":"YulTypedName","src":"37140:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"37148:3:65","nodeType":"YulTypedName","src":"37148:3:65","type":""}],"src":"37006:366:65"},{"body":{"nativeSrc":"37549:248:65","nodeType":"YulBlock","src":"37549:248:65","statements":[{"nativeSrc":"37559:26:65","nodeType":"YulAssignment","src":"37559:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"37571:9:65","nodeType":"YulIdentifier","src":"37571:9:65"},{"kind":"number","nativeSrc":"37582:2:65","nodeType":"YulLiteral","src":"37582:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37567:3:65","nodeType":"YulIdentifier","src":"37567:3:65"},"nativeSrc":"37567:18:65","nodeType":"YulFunctionCall","src":"37567:18:65"},"variableNames":[{"name":"tail","nativeSrc":"37559:4:65","nodeType":"YulIdentifier","src":"37559:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"37606:9:65","nodeType":"YulIdentifier","src":"37606:9:65"},{"kind":"number","nativeSrc":"37617:1:65","nodeType":"YulLiteral","src":"37617:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"37602:3:65","nodeType":"YulIdentifier","src":"37602:3:65"},"nativeSrc":"37602:17:65","nodeType":"YulFunctionCall","src":"37602:17:65"},{"arguments":[{"name":"tail","nativeSrc":"37625:4:65","nodeType":"YulIdentifier","src":"37625:4:65"},{"name":"headStart","nativeSrc":"37631:9:65","nodeType":"YulIdentifier","src":"37631:9:65"}],"functionName":{"name":"sub","nativeSrc":"37621:3:65","nodeType":"YulIdentifier","src":"37621:3:65"},"nativeSrc":"37621:20:65","nodeType":"YulFunctionCall","src":"37621:20:65"}],"functionName":{"name":"mstore","nativeSrc":"37595:6:65","nodeType":"YulIdentifier","src":"37595:6:65"},"nativeSrc":"37595:47:65","nodeType":"YulFunctionCall","src":"37595:47:65"},"nativeSrc":"37595:47:65","nodeType":"YulExpressionStatement","src":"37595:47:65"},{"nativeSrc":"37651:139:65","nodeType":"YulAssignment","src":"37651:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"37785:4:65","nodeType":"YulIdentifier","src":"37785:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea_to_t_string_memory_ptr_fromStack","nativeSrc":"37659:124:65","nodeType":"YulIdentifier","src":"37659:124:65"},"nativeSrc":"37659:131:65","nodeType":"YulFunctionCall","src":"37659:131:65"},"variableNames":[{"name":"tail","nativeSrc":"37651:4:65","nodeType":"YulIdentifier","src":"37651:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"37378:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"37529:9:65","nodeType":"YulTypedName","src":"37529:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"37544:4:65","nodeType":"YulTypedName","src":"37544:4:65","type":""}],"src":"37378:419:65"},{"body":{"nativeSrc":"37909:114:65","nodeType":"YulBlock","src":"37909:114:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"37931:6:65","nodeType":"YulIdentifier","src":"37931:6:65"},{"kind":"number","nativeSrc":"37939:1:65","nodeType":"YulLiteral","src":"37939:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"37927:3:65","nodeType":"YulIdentifier","src":"37927:3:65"},"nativeSrc":"37927:14:65","nodeType":"YulFunctionCall","src":"37927:14:65"},{"hexValue":"50726f78794f46543a206f7574626f756e64416d6f756e74206f766572666c6f","kind":"string","nativeSrc":"37943:34:65","nodeType":"YulLiteral","src":"37943:34:65","type":"","value":"ProxyOFT: outboundAmount overflo"}],"functionName":{"name":"mstore","nativeSrc":"37920:6:65","nodeType":"YulIdentifier","src":"37920:6:65"},"nativeSrc":"37920:58:65","nodeType":"YulFunctionCall","src":"37920:58:65"},"nativeSrc":"37920:58:65","nodeType":"YulExpressionStatement","src":"37920:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"37999:6:65","nodeType":"YulIdentifier","src":"37999:6:65"},{"kind":"number","nativeSrc":"38007:2:65","nodeType":"YulLiteral","src":"38007:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"37995:3:65","nodeType":"YulIdentifier","src":"37995:3:65"},"nativeSrc":"37995:15:65","nodeType":"YulFunctionCall","src":"37995:15:65"},{"hexValue":"77","kind":"string","nativeSrc":"38012:3:65","nodeType":"YulLiteral","src":"38012:3:65","type":"","value":"w"}],"functionName":{"name":"mstore","nativeSrc":"37988:6:65","nodeType":"YulIdentifier","src":"37988:6:65"},"nativeSrc":"37988:28:65","nodeType":"YulFunctionCall","src":"37988:28:65"},"nativeSrc":"37988:28:65","nodeType":"YulExpressionStatement","src":"37988:28:65"}]},"name":"store_literal_in_memory_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","nativeSrc":"37803:220:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"37901:6:65","nodeType":"YulTypedName","src":"37901:6:65","type":""}],"src":"37803:220:65"},{"body":{"nativeSrc":"38175:220:65","nodeType":"YulBlock","src":"38175:220:65","statements":[{"nativeSrc":"38185:74:65","nodeType":"YulAssignment","src":"38185:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"38251:3:65","nodeType":"YulIdentifier","src":"38251:3:65"},{"kind":"number","nativeSrc":"38256:2:65","nodeType":"YulLiteral","src":"38256:2:65","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"38192:58:65","nodeType":"YulIdentifier","src":"38192:58:65"},"nativeSrc":"38192:67:65","nodeType":"YulFunctionCall","src":"38192:67:65"},"variableNames":[{"name":"pos","nativeSrc":"38185:3:65","nodeType":"YulIdentifier","src":"38185:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"38357:3:65","nodeType":"YulIdentifier","src":"38357:3:65"}],"functionName":{"name":"store_literal_in_memory_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044","nativeSrc":"38268:88:65","nodeType":"YulIdentifier","src":"38268:88:65"},"nativeSrc":"38268:93:65","nodeType":"YulFunctionCall","src":"38268:93:65"},"nativeSrc":"38268:93:65","nodeType":"YulExpressionStatement","src":"38268:93:65"},{"nativeSrc":"38370:19:65","nodeType":"YulAssignment","src":"38370:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"38381:3:65","nodeType":"YulIdentifier","src":"38381:3:65"},{"kind":"number","nativeSrc":"38386:2:65","nodeType":"YulLiteral","src":"38386:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"38377:3:65","nodeType":"YulIdentifier","src":"38377:3:65"},"nativeSrc":"38377:12:65","nodeType":"YulFunctionCall","src":"38377:12:65"},"variableNames":[{"name":"end","nativeSrc":"38370:3:65","nodeType":"YulIdentifier","src":"38370:3:65"}]}]},"name":"abi_encode_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044_to_t_string_memory_ptr_fromStack","nativeSrc":"38029:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"38163:3:65","nodeType":"YulTypedName","src":"38163:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"38171:3:65","nodeType":"YulTypedName","src":"38171:3:65","type":""}],"src":"38029:366:65"},{"body":{"nativeSrc":"38572:248:65","nodeType":"YulBlock","src":"38572:248:65","statements":[{"nativeSrc":"38582:26:65","nodeType":"YulAssignment","src":"38582:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"38594:9:65","nodeType":"YulIdentifier","src":"38594:9:65"},{"kind":"number","nativeSrc":"38605:2:65","nodeType":"YulLiteral","src":"38605:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"38590:3:65","nodeType":"YulIdentifier","src":"38590:3:65"},"nativeSrc":"38590:18:65","nodeType":"YulFunctionCall","src":"38590:18:65"},"variableNames":[{"name":"tail","nativeSrc":"38582:4:65","nodeType":"YulIdentifier","src":"38582:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38629:9:65","nodeType":"YulIdentifier","src":"38629:9:65"},{"kind":"number","nativeSrc":"38640:1:65","nodeType":"YulLiteral","src":"38640:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"38625:3:65","nodeType":"YulIdentifier","src":"38625:3:65"},"nativeSrc":"38625:17:65","nodeType":"YulFunctionCall","src":"38625:17:65"},{"arguments":[{"name":"tail","nativeSrc":"38648:4:65","nodeType":"YulIdentifier","src":"38648:4:65"},{"name":"headStart","nativeSrc":"38654:9:65","nodeType":"YulIdentifier","src":"38654:9:65"}],"functionName":{"name":"sub","nativeSrc":"38644:3:65","nodeType":"YulIdentifier","src":"38644:3:65"},"nativeSrc":"38644:20:65","nodeType":"YulFunctionCall","src":"38644:20:65"}],"functionName":{"name":"mstore","nativeSrc":"38618:6:65","nodeType":"YulIdentifier","src":"38618:6:65"},"nativeSrc":"38618:47:65","nodeType":"YulFunctionCall","src":"38618:47:65"},"nativeSrc":"38618:47:65","nodeType":"YulExpressionStatement","src":"38618:47:65"},{"nativeSrc":"38674:139:65","nodeType":"YulAssignment","src":"38674:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"38808:4:65","nodeType":"YulIdentifier","src":"38808:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044_to_t_string_memory_ptr_fromStack","nativeSrc":"38682:124:65","nodeType":"YulIdentifier","src":"38682:124:65"},"nativeSrc":"38682:131:65","nodeType":"YulFunctionCall","src":"38682:131:65"},"variableNames":[{"name":"tail","nativeSrc":"38674:4:65","nodeType":"YulIdentifier","src":"38674:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"38401:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38552:9:65","nodeType":"YulTypedName","src":"38552:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"38567:4:65","nodeType":"YulTypedName","src":"38567:4:65","type":""}],"src":"38401:419:65"},{"body":{"nativeSrc":"38932:119:65","nodeType":"YulBlock","src":"38932:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"38954:6:65","nodeType":"YulIdentifier","src":"38954:6:65"},{"kind":"number","nativeSrc":"38962:1:65","nodeType":"YulLiteral","src":"38962:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"38950:3:65","nodeType":"YulIdentifier","src":"38950:3:65"},"nativeSrc":"38950:14:65","nodeType":"YulFunctionCall","src":"38950:14:65"},{"hexValue":"53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79","kind":"string","nativeSrc":"38966:34:65","nodeType":"YulLiteral","src":"38966:34:65","type":"","value":"Single transaction limit > Daily"}],"functionName":{"name":"mstore","nativeSrc":"38943:6:65","nodeType":"YulIdentifier","src":"38943:6:65"},"nativeSrc":"38943:58:65","nodeType":"YulFunctionCall","src":"38943:58:65"},"nativeSrc":"38943:58:65","nodeType":"YulExpressionStatement","src":"38943:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"39022:6:65","nodeType":"YulIdentifier","src":"39022:6:65"},{"kind":"number","nativeSrc":"39030:2:65","nodeType":"YulLiteral","src":"39030:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39018:3:65","nodeType":"YulIdentifier","src":"39018:3:65"},"nativeSrc":"39018:15:65","nodeType":"YulFunctionCall","src":"39018:15:65"},{"hexValue":"206c696d6974","kind":"string","nativeSrc":"39035:8:65","nodeType":"YulLiteral","src":"39035:8:65","type":"","value":" limit"}],"functionName":{"name":"mstore","nativeSrc":"39011:6:65","nodeType":"YulIdentifier","src":"39011:6:65"},"nativeSrc":"39011:33:65","nodeType":"YulFunctionCall","src":"39011:33:65"},"nativeSrc":"39011:33:65","nodeType":"YulExpressionStatement","src":"39011:33:65"}]},"name":"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","nativeSrc":"38826:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"38924:6:65","nodeType":"YulTypedName","src":"38924:6:65","type":""}],"src":"38826:225:65"},{"body":{"nativeSrc":"39203:220:65","nodeType":"YulBlock","src":"39203:220:65","statements":[{"nativeSrc":"39213:74:65","nodeType":"YulAssignment","src":"39213:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"39279:3:65","nodeType":"YulIdentifier","src":"39279:3:65"},{"kind":"number","nativeSrc":"39284:2:65","nodeType":"YulLiteral","src":"39284:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"39220:58:65","nodeType":"YulIdentifier","src":"39220:58:65"},"nativeSrc":"39220:67:65","nodeType":"YulFunctionCall","src":"39220:67:65"},"variableNames":[{"name":"pos","nativeSrc":"39213:3:65","nodeType":"YulIdentifier","src":"39213:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"39385:3:65","nodeType":"YulIdentifier","src":"39385:3:65"}],"functionName":{"name":"store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972","nativeSrc":"39296:88:65","nodeType":"YulIdentifier","src":"39296:88:65"},"nativeSrc":"39296:93:65","nodeType":"YulFunctionCall","src":"39296:93:65"},"nativeSrc":"39296:93:65","nodeType":"YulExpressionStatement","src":"39296:93:65"},{"nativeSrc":"39398:19:65","nodeType":"YulAssignment","src":"39398:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"39409:3:65","nodeType":"YulIdentifier","src":"39409:3:65"},{"kind":"number","nativeSrc":"39414:2:65","nodeType":"YulLiteral","src":"39414:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"39405:3:65","nodeType":"YulIdentifier","src":"39405:3:65"},"nativeSrc":"39405:12:65","nodeType":"YulFunctionCall","src":"39405:12:65"},"variableNames":[{"name":"end","nativeSrc":"39398:3:65","nodeType":"YulIdentifier","src":"39398:3:65"}]}]},"name":"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack","nativeSrc":"39057:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"39191:3:65","nodeType":"YulTypedName","src":"39191:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"39199:3:65","nodeType":"YulTypedName","src":"39199:3:65","type":""}],"src":"39057:366:65"},{"body":{"nativeSrc":"39600:248:65","nodeType":"YulBlock","src":"39600:248:65","statements":[{"nativeSrc":"39610:26:65","nodeType":"YulAssignment","src":"39610:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"39622:9:65","nodeType":"YulIdentifier","src":"39622:9:65"},{"kind":"number","nativeSrc":"39633:2:65","nodeType":"YulLiteral","src":"39633:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"39618:3:65","nodeType":"YulIdentifier","src":"39618:3:65"},"nativeSrc":"39618:18:65","nodeType":"YulFunctionCall","src":"39618:18:65"},"variableNames":[{"name":"tail","nativeSrc":"39610:4:65","nodeType":"YulIdentifier","src":"39610:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39657:9:65","nodeType":"YulIdentifier","src":"39657:9:65"},{"kind":"number","nativeSrc":"39668:1:65","nodeType":"YulLiteral","src":"39668:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"39653:3:65","nodeType":"YulIdentifier","src":"39653:3:65"},"nativeSrc":"39653:17:65","nodeType":"YulFunctionCall","src":"39653:17:65"},{"arguments":[{"name":"tail","nativeSrc":"39676:4:65","nodeType":"YulIdentifier","src":"39676:4:65"},{"name":"headStart","nativeSrc":"39682:9:65","nodeType":"YulIdentifier","src":"39682:9:65"}],"functionName":{"name":"sub","nativeSrc":"39672:3:65","nodeType":"YulIdentifier","src":"39672:3:65"},"nativeSrc":"39672:20:65","nodeType":"YulFunctionCall","src":"39672:20:65"}],"functionName":{"name":"mstore","nativeSrc":"39646:6:65","nodeType":"YulIdentifier","src":"39646:6:65"},"nativeSrc":"39646:47:65","nodeType":"YulFunctionCall","src":"39646:47:65"},"nativeSrc":"39646:47:65","nodeType":"YulExpressionStatement","src":"39646:47:65"},{"nativeSrc":"39702:139:65","nodeType":"YulAssignment","src":"39702:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"39836:4:65","nodeType":"YulIdentifier","src":"39836:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack","nativeSrc":"39710:124:65","nodeType":"YulIdentifier","src":"39710:124:65"},"nativeSrc":"39710:131:65","nodeType":"YulFunctionCall","src":"39710:131:65"},"variableNames":[{"name":"tail","nativeSrc":"39702:4:65","nodeType":"YulIdentifier","src":"39702:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"39429:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"39580:9:65","nodeType":"YulTypedName","src":"39580:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"39595:4:65","nodeType":"YulTypedName","src":"39595:4:65","type":""}],"src":"39429:419:65"},{"body":{"nativeSrc":"39960:119:65","nodeType":"YulBlock","src":"39960:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"39982:6:65","nodeType":"YulIdentifier","src":"39982:6:65"},{"kind":"number","nativeSrc":"39990:1:65","nodeType":"YulLiteral","src":"39990:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"39978:3:65","nodeType":"YulIdentifier","src":"39978:3:65"},"nativeSrc":"39978:14:65","nodeType":"YulFunctionCall","src":"39978:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265","kind":"string","nativeSrc":"39994:34:65","nodeType":"YulLiteral","src":"39994:34:65","type":"","value":"NonblockingLzApp: caller must be"}],"functionName":{"name":"mstore","nativeSrc":"39971:6:65","nodeType":"YulIdentifier","src":"39971:6:65"},"nativeSrc":"39971:58:65","nodeType":"YulFunctionCall","src":"39971:58:65"},"nativeSrc":"39971:58:65","nodeType":"YulExpressionStatement","src":"39971:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"40050:6:65","nodeType":"YulIdentifier","src":"40050:6:65"},{"kind":"number","nativeSrc":"40058:2:65","nodeType":"YulLiteral","src":"40058:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40046:3:65","nodeType":"YulIdentifier","src":"40046:3:65"},"nativeSrc":"40046:15:65","nodeType":"YulFunctionCall","src":"40046:15:65"},{"hexValue":"204c7a417070","kind":"string","nativeSrc":"40063:8:65","nodeType":"YulLiteral","src":"40063:8:65","type":"","value":" LzApp"}],"functionName":{"name":"mstore","nativeSrc":"40039:6:65","nodeType":"YulIdentifier","src":"40039:6:65"},"nativeSrc":"40039:33:65","nodeType":"YulFunctionCall","src":"40039:33:65"},"nativeSrc":"40039:33:65","nodeType":"YulExpressionStatement","src":"40039:33:65"}]},"name":"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","nativeSrc":"39854:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"39952:6:65","nodeType":"YulTypedName","src":"39952:6:65","type":""}],"src":"39854:225:65"},{"body":{"nativeSrc":"40231:220:65","nodeType":"YulBlock","src":"40231:220:65","statements":[{"nativeSrc":"40241:74:65","nodeType":"YulAssignment","src":"40241:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"40307:3:65","nodeType":"YulIdentifier","src":"40307:3:65"},{"kind":"number","nativeSrc":"40312:2:65","nodeType":"YulLiteral","src":"40312:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"40248:58:65","nodeType":"YulIdentifier","src":"40248:58:65"},"nativeSrc":"40248:67:65","nodeType":"YulFunctionCall","src":"40248:67:65"},"variableNames":[{"name":"pos","nativeSrc":"40241:3:65","nodeType":"YulIdentifier","src":"40241:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"40413:3:65","nodeType":"YulIdentifier","src":"40413:3:65"}],"functionName":{"name":"store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa","nativeSrc":"40324:88:65","nodeType":"YulIdentifier","src":"40324:88:65"},"nativeSrc":"40324:93:65","nodeType":"YulFunctionCall","src":"40324:93:65"},"nativeSrc":"40324:93:65","nodeType":"YulExpressionStatement","src":"40324:93:65"},{"nativeSrc":"40426:19:65","nodeType":"YulAssignment","src":"40426:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"40437:3:65","nodeType":"YulIdentifier","src":"40437:3:65"},{"kind":"number","nativeSrc":"40442:2:65","nodeType":"YulLiteral","src":"40442:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"40433:3:65","nodeType":"YulIdentifier","src":"40433:3:65"},"nativeSrc":"40433:12:65","nodeType":"YulFunctionCall","src":"40433:12:65"},"variableNames":[{"name":"end","nativeSrc":"40426:3:65","nodeType":"YulIdentifier","src":"40426:3:65"}]}]},"name":"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack","nativeSrc":"40085:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"40219:3:65","nodeType":"YulTypedName","src":"40219:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"40227:3:65","nodeType":"YulTypedName","src":"40227:3:65","type":""}],"src":"40085:366:65"},{"body":{"nativeSrc":"40628:248:65","nodeType":"YulBlock","src":"40628:248:65","statements":[{"nativeSrc":"40638:26:65","nodeType":"YulAssignment","src":"40638:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"40650:9:65","nodeType":"YulIdentifier","src":"40650:9:65"},{"kind":"number","nativeSrc":"40661:2:65","nodeType":"YulLiteral","src":"40661:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"40646:3:65","nodeType":"YulIdentifier","src":"40646:3:65"},"nativeSrc":"40646:18:65","nodeType":"YulFunctionCall","src":"40646:18:65"},"variableNames":[{"name":"tail","nativeSrc":"40638:4:65","nodeType":"YulIdentifier","src":"40638:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"40685:9:65","nodeType":"YulIdentifier","src":"40685:9:65"},{"kind":"number","nativeSrc":"40696:1:65","nodeType":"YulLiteral","src":"40696:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"40681:3:65","nodeType":"YulIdentifier","src":"40681:3:65"},"nativeSrc":"40681:17:65","nodeType":"YulFunctionCall","src":"40681:17:65"},{"arguments":[{"name":"tail","nativeSrc":"40704:4:65","nodeType":"YulIdentifier","src":"40704:4:65"},{"name":"headStart","nativeSrc":"40710:9:65","nodeType":"YulIdentifier","src":"40710:9:65"}],"functionName":{"name":"sub","nativeSrc":"40700:3:65","nodeType":"YulIdentifier","src":"40700:3:65"},"nativeSrc":"40700:20:65","nodeType":"YulFunctionCall","src":"40700:20:65"}],"functionName":{"name":"mstore","nativeSrc":"40674:6:65","nodeType":"YulIdentifier","src":"40674:6:65"},"nativeSrc":"40674:47:65","nodeType":"YulFunctionCall","src":"40674:47:65"},"nativeSrc":"40674:47:65","nodeType":"YulExpressionStatement","src":"40674:47:65"},{"nativeSrc":"40730:139:65","nodeType":"YulAssignment","src":"40730:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"40864:4:65","nodeType":"YulIdentifier","src":"40864:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack","nativeSrc":"40738:124:65","nodeType":"YulIdentifier","src":"40738:124:65"},"nativeSrc":"40738:131:65","nodeType":"YulFunctionCall","src":"40738:131:65"},"variableNames":[{"name":"tail","nativeSrc":"40730:4:65","nodeType":"YulIdentifier","src":"40730:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"40457:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40608:9:65","nodeType":"YulTypedName","src":"40608:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"40623:4:65","nodeType":"YulTypedName","src":"40623:4:65","type":""}],"src":"40457:419:65"},{"body":{"nativeSrc":"40935:51:65","nodeType":"YulBlock","src":"40935:51:65","statements":[{"nativeSrc":"40945:35:65","nodeType":"YulAssignment","src":"40945:35:65","value":{"arguments":[{"name":"value","nativeSrc":"40974:5:65","nodeType":"YulIdentifier","src":"40974:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"40956:17:65","nodeType":"YulIdentifier","src":"40956:17:65"},"nativeSrc":"40956:24:65","nodeType":"YulFunctionCall","src":"40956:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"40945:7:65","nodeType":"YulIdentifier","src":"40945:7:65"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"40882:104:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"40917:5:65","nodeType":"YulTypedName","src":"40917:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"40927:7:65","nodeType":"YulTypedName","src":"40927:7:65","type":""}],"src":"40882:104:65"},{"body":{"nativeSrc":"41043:87:65","nodeType":"YulBlock","src":"41043:87:65","statements":[{"body":{"nativeSrc":"41108:16:65","nodeType":"YulBlock","src":"41108:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41117:1:65","nodeType":"YulLiteral","src":"41117:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"41120:1:65","nodeType":"YulLiteral","src":"41120:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41110:6:65","nodeType":"YulIdentifier","src":"41110:6:65"},"nativeSrc":"41110:12:65","nodeType":"YulFunctionCall","src":"41110:12:65"},"nativeSrc":"41110:12:65","nodeType":"YulExpressionStatement","src":"41110:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41066:5:65","nodeType":"YulIdentifier","src":"41066:5:65"},{"arguments":[{"name":"value","nativeSrc":"41099:5:65","nodeType":"YulIdentifier","src":"41099:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"41073:25:65","nodeType":"YulIdentifier","src":"41073:25:65"},"nativeSrc":"41073:32:65","nodeType":"YulFunctionCall","src":"41073:32:65"}],"functionName":{"name":"eq","nativeSrc":"41063:2:65","nodeType":"YulIdentifier","src":"41063:2:65"},"nativeSrc":"41063:43:65","nodeType":"YulFunctionCall","src":"41063:43:65"}],"functionName":{"name":"iszero","nativeSrc":"41056:6:65","nodeType":"YulIdentifier","src":"41056:6:65"},"nativeSrc":"41056:51:65","nodeType":"YulFunctionCall","src":"41056:51:65"},"nativeSrc":"41053:71:65","nodeType":"YulIf","src":"41053:71:65"}]},"name":"validator_revert_t_address_payable","nativeSrc":"40992:138:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"41036:5:65","nodeType":"YulTypedName","src":"41036:5:65","type":""}],"src":"40992:138:65"},{"body":{"nativeSrc":"41196:95:65","nodeType":"YulBlock","src":"41196:95:65","statements":[{"nativeSrc":"41206:29:65","nodeType":"YulAssignment","src":"41206:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"41228:6:65","nodeType":"YulIdentifier","src":"41228:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"41215:12:65","nodeType":"YulIdentifier","src":"41215:12:65"},"nativeSrc":"41215:20:65","nodeType":"YulFunctionCall","src":"41215:20:65"},"variableNames":[{"name":"value","nativeSrc":"41206:5:65","nodeType":"YulIdentifier","src":"41206:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"41279:5:65","nodeType":"YulIdentifier","src":"41279:5:65"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"41244:34:65","nodeType":"YulIdentifier","src":"41244:34:65"},"nativeSrc":"41244:41:65","nodeType":"YulFunctionCall","src":"41244:41:65"},"nativeSrc":"41244:41:65","nodeType":"YulExpressionStatement","src":"41244:41:65"}]},"name":"abi_decode_t_address_payable","nativeSrc":"41136:155:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"41174:6:65","nodeType":"YulTypedName","src":"41174:6:65","type":""},{"name":"end","nativeSrc":"41182:3:65","nodeType":"YulTypedName","src":"41182:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"41190:5:65","nodeType":"YulTypedName","src":"41190:5:65","type":""}],"src":"41136:155:65"},{"body":{"nativeSrc":"41371:271:65","nodeType":"YulBlock","src":"41371:271:65","statements":[{"body":{"nativeSrc":"41417:83:65","nodeType":"YulBlock","src":"41417:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"41419:77:65","nodeType":"YulIdentifier","src":"41419:77:65"},"nativeSrc":"41419:79:65","nodeType":"YulFunctionCall","src":"41419:79:65"},"nativeSrc":"41419:79:65","nodeType":"YulExpressionStatement","src":"41419:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"41392:7:65","nodeType":"YulIdentifier","src":"41392:7:65"},{"name":"headStart","nativeSrc":"41401:9:65","nodeType":"YulIdentifier","src":"41401:9:65"}],"functionName":{"name":"sub","nativeSrc":"41388:3:65","nodeType":"YulIdentifier","src":"41388:3:65"},"nativeSrc":"41388:23:65","nodeType":"YulFunctionCall","src":"41388:23:65"},{"kind":"number","nativeSrc":"41413:2:65","nodeType":"YulLiteral","src":"41413:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"41384:3:65","nodeType":"YulIdentifier","src":"41384:3:65"},"nativeSrc":"41384:32:65","nodeType":"YulFunctionCall","src":"41384:32:65"},"nativeSrc":"41381:119:65","nodeType":"YulIf","src":"41381:119:65"},{"nativeSrc":"41510:125:65","nodeType":"YulBlock","src":"41510:125:65","statements":[{"nativeSrc":"41525:15:65","nodeType":"YulVariableDeclaration","src":"41525:15:65","value":{"kind":"number","nativeSrc":"41539:1:65","nodeType":"YulLiteral","src":"41539:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"41529:6:65","nodeType":"YulTypedName","src":"41529:6:65","type":""}]},{"nativeSrc":"41554:71:65","nodeType":"YulAssignment","src":"41554:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41597:9:65","nodeType":"YulIdentifier","src":"41597:9:65"},{"name":"offset","nativeSrc":"41608:6:65","nodeType":"YulIdentifier","src":"41608:6:65"}],"functionName":{"name":"add","nativeSrc":"41593:3:65","nodeType":"YulIdentifier","src":"41593:3:65"},"nativeSrc":"41593:22:65","nodeType":"YulFunctionCall","src":"41593:22:65"},{"name":"dataEnd","nativeSrc":"41617:7:65","nodeType":"YulIdentifier","src":"41617:7:65"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"41564:28:65","nodeType":"YulIdentifier","src":"41564:28:65"},"nativeSrc":"41564:61:65","nodeType":"YulFunctionCall","src":"41564:61:65"},"variableNames":[{"name":"value0","nativeSrc":"41554:6:65","nodeType":"YulIdentifier","src":"41554:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_payable","nativeSrc":"41297:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41341:9:65","nodeType":"YulTypedName","src":"41341:9:65","type":""},{"name":"dataEnd","nativeSrc":"41352:7:65","nodeType":"YulTypedName","src":"41352:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"41364:6:65","nodeType":"YulTypedName","src":"41364:6:65","type":""}],"src":"41297:345:65"},{"body":{"nativeSrc":"41737:28:65","nodeType":"YulBlock","src":"41737:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41754:1:65","nodeType":"YulLiteral","src":"41754:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"41757:1:65","nodeType":"YulLiteral","src":"41757:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41747:6:65","nodeType":"YulIdentifier","src":"41747:6:65"},"nativeSrc":"41747:12:65","nodeType":"YulFunctionCall","src":"41747:12:65"},"nativeSrc":"41747:12:65","nodeType":"YulExpressionStatement","src":"41747:12:65"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"41648:117:65","nodeType":"YulFunctionDefinition","src":"41648:117:65"},{"body":{"nativeSrc":"41860:28:65","nodeType":"YulBlock","src":"41860:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41877:1:65","nodeType":"YulLiteral","src":"41877:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"41880:1:65","nodeType":"YulLiteral","src":"41880:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41870:6:65","nodeType":"YulIdentifier","src":"41870:6:65"},"nativeSrc":"41870:12:65","nodeType":"YulFunctionCall","src":"41870:12:65"},"nativeSrc":"41870:12:65","nodeType":"YulExpressionStatement","src":"41870:12:65"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"41771:117:65","nodeType":"YulFunctionDefinition","src":"41771:117:65"},{"body":{"nativeSrc":"41983:28:65","nodeType":"YulBlock","src":"41983:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42000:1:65","nodeType":"YulLiteral","src":"42000:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"42003:1:65","nodeType":"YulLiteral","src":"42003:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"41993:6:65","nodeType":"YulIdentifier","src":"41993:6:65"},"nativeSrc":"41993:12:65","nodeType":"YulFunctionCall","src":"41993:12:65"},"nativeSrc":"41993:12:65","nodeType":"YulExpressionStatement","src":"41993:12:65"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"41894:117:65","nodeType":"YulFunctionDefinition","src":"41894:117:65"},{"body":{"nativeSrc":"42107:634:65","nodeType":"YulBlock","src":"42107:634:65","statements":[{"nativeSrc":"42117:51:65","nodeType":"YulVariableDeclaration","src":"42117:51:65","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"42156:11:65","nodeType":"YulIdentifier","src":"42156:11:65"}],"functionName":{"name":"calldataload","nativeSrc":"42143:12:65","nodeType":"YulIdentifier","src":"42143:12:65"},"nativeSrc":"42143:25:65","nodeType":"YulFunctionCall","src":"42143:25:65"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"42121:18:65","nodeType":"YulTypedName","src":"42121:18:65","type":""}]},{"body":{"nativeSrc":"42262:83:65","nodeType":"YulBlock","src":"42262:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"42264:77:65","nodeType":"YulIdentifier","src":"42264:77:65"},"nativeSrc":"42264:79:65","nodeType":"YulFunctionCall","src":"42264:79:65"},"nativeSrc":"42264:79:65","nodeType":"YulExpressionStatement","src":"42264:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"42191:18:65","nodeType":"YulIdentifier","src":"42191:18:65"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42219:12:65","nodeType":"YulIdentifier","src":"42219:12:65"},"nativeSrc":"42219:14:65","nodeType":"YulFunctionCall","src":"42219:14:65"},{"name":"base_ref","nativeSrc":"42235:8:65","nodeType":"YulIdentifier","src":"42235:8:65"}],"functionName":{"name":"sub","nativeSrc":"42215:3:65","nodeType":"YulIdentifier","src":"42215:3:65"},"nativeSrc":"42215:29:65","nodeType":"YulFunctionCall","src":"42215:29:65"},{"arguments":[{"kind":"number","nativeSrc":"42250:4:65","nodeType":"YulLiteral","src":"42250:4:65","type":"","value":"0x20"},{"kind":"number","nativeSrc":"42256:1:65","nodeType":"YulLiteral","src":"42256:1:65","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"42246:3:65","nodeType":"YulIdentifier","src":"42246:3:65"},"nativeSrc":"42246:12:65","nodeType":"YulFunctionCall","src":"42246:12:65"}],"functionName":{"name":"sub","nativeSrc":"42211:3:65","nodeType":"YulIdentifier","src":"42211:3:65"},"nativeSrc":"42211:48:65","nodeType":"YulFunctionCall","src":"42211:48:65"}],"functionName":{"name":"slt","nativeSrc":"42187:3:65","nodeType":"YulIdentifier","src":"42187:3:65"},"nativeSrc":"42187:73:65","nodeType":"YulFunctionCall","src":"42187:73:65"}],"functionName":{"name":"iszero","nativeSrc":"42180:6:65","nodeType":"YulIdentifier","src":"42180:6:65"},"nativeSrc":"42180:81:65","nodeType":"YulFunctionCall","src":"42180:81:65"},"nativeSrc":"42177:168:65","nodeType":"YulIf","src":"42177:168:65"},{"nativeSrc":"42354:41:65","nodeType":"YulAssignment","src":"42354:41:65","value":{"arguments":[{"name":"base_ref","nativeSrc":"42366:8:65","nodeType":"YulIdentifier","src":"42366:8:65"},{"name":"rel_offset_of_tail","nativeSrc":"42376:18:65","nodeType":"YulIdentifier","src":"42376:18:65"}],"functionName":{"name":"add","nativeSrc":"42362:3:65","nodeType":"YulIdentifier","src":"42362:3:65"},"nativeSrc":"42362:33:65","nodeType":"YulFunctionCall","src":"42362:33:65"},"variableNames":[{"name":"addr","nativeSrc":"42354:4:65","nodeType":"YulIdentifier","src":"42354:4:65"}]},{"nativeSrc":"42405:28:65","nodeType":"YulAssignment","src":"42405:28:65","value":{"arguments":[{"name":"addr","nativeSrc":"42428:4:65","nodeType":"YulIdentifier","src":"42428:4:65"}],"functionName":{"name":"calldataload","nativeSrc":"42415:12:65","nodeType":"YulIdentifier","src":"42415:12:65"},"nativeSrc":"42415:18:65","nodeType":"YulFunctionCall","src":"42415:18:65"},"variableNames":[{"name":"length","nativeSrc":"42405:6:65","nodeType":"YulIdentifier","src":"42405:6:65"}]},{"body":{"nativeSrc":"42476:83:65","nodeType":"YulBlock","src":"42476:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"42478:77:65","nodeType":"YulIdentifier","src":"42478:77:65"},"nativeSrc":"42478:79:65","nodeType":"YulFunctionCall","src":"42478:79:65"},"nativeSrc":"42478:79:65","nodeType":"YulExpressionStatement","src":"42478:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"42448:6:65","nodeType":"YulIdentifier","src":"42448:6:65"},{"kind":"number","nativeSrc":"42456:18:65","nodeType":"YulLiteral","src":"42456:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"42445:2:65","nodeType":"YulIdentifier","src":"42445:2:65"},"nativeSrc":"42445:30:65","nodeType":"YulFunctionCall","src":"42445:30:65"},"nativeSrc":"42442:117:65","nodeType":"YulIf","src":"42442:117:65"},{"nativeSrc":"42568:21:65","nodeType":"YulAssignment","src":"42568:21:65","value":{"arguments":[{"name":"addr","nativeSrc":"42580:4:65","nodeType":"YulIdentifier","src":"42580:4:65"},{"kind":"number","nativeSrc":"42586:2:65","nodeType":"YulLiteral","src":"42586:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42576:3:65","nodeType":"YulIdentifier","src":"42576:3:65"},"nativeSrc":"42576:13:65","nodeType":"YulFunctionCall","src":"42576:13:65"},"variableNames":[{"name":"addr","nativeSrc":"42568:4:65","nodeType":"YulIdentifier","src":"42568:4:65"}]},{"body":{"nativeSrc":"42651:83:65","nodeType":"YulBlock","src":"42651:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"42653:77:65","nodeType":"YulIdentifier","src":"42653:77:65"},"nativeSrc":"42653:79:65","nodeType":"YulFunctionCall","src":"42653:79:65"},"nativeSrc":"42653:79:65","nodeType":"YulExpressionStatement","src":"42653:79:65"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"42605:4:65","nodeType":"YulIdentifier","src":"42605:4:65"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"42615:12:65","nodeType":"YulIdentifier","src":"42615:12:65"},"nativeSrc":"42615:14:65","nodeType":"YulFunctionCall","src":"42615:14:65"},{"arguments":[{"name":"length","nativeSrc":"42635:6:65","nodeType":"YulIdentifier","src":"42635:6:65"},{"kind":"number","nativeSrc":"42643:4:65","nodeType":"YulLiteral","src":"42643:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"42631:3:65","nodeType":"YulIdentifier","src":"42631:3:65"},"nativeSrc":"42631:17:65","nodeType":"YulFunctionCall","src":"42631:17:65"}],"functionName":{"name":"sub","nativeSrc":"42611:3:65","nodeType":"YulIdentifier","src":"42611:3:65"},"nativeSrc":"42611:38:65","nodeType":"YulFunctionCall","src":"42611:38:65"}],"functionName":{"name":"sgt","nativeSrc":"42601:3:65","nodeType":"YulIdentifier","src":"42601:3:65"},"nativeSrc":"42601:49:65","nodeType":"YulFunctionCall","src":"42601:49:65"},"nativeSrc":"42598:136:65","nodeType":"YulIf","src":"42598:136:65"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"42017:724:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"42068:8:65","nodeType":"YulTypedName","src":"42068:8:65","type":""},{"name":"ptr_to_tail","nativeSrc":"42078:11:65","nodeType":"YulTypedName","src":"42078:11:65","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"42094:4:65","nodeType":"YulTypedName","src":"42094:4:65","type":""},{"name":"length","nativeSrc":"42100:6:65","nodeType":"YulTypedName","src":"42100:6:65","type":""}],"src":"42017:724:65"},{"body":{"nativeSrc":"42853:127:65","nodeType":"YulBlock","src":"42853:127:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"42875:6:65","nodeType":"YulIdentifier","src":"42875:6:65"},{"kind":"number","nativeSrc":"42883:1:65","nodeType":"YulLiteral","src":"42883:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"42871:3:65","nodeType":"YulIdentifier","src":"42871:3:65"},"nativeSrc":"42871:14:65","nodeType":"YulFunctionCall","src":"42871:14:65"},{"hexValue":"4461696c79206c696d6974203c2073696e676c65207265636569766520747261","kind":"string","nativeSrc":"42887:34:65","nodeType":"YulLiteral","src":"42887:34:65","type":"","value":"Daily limit < single receive tra"}],"functionName":{"name":"mstore","nativeSrc":"42864:6:65","nodeType":"YulIdentifier","src":"42864:6:65"},"nativeSrc":"42864:58:65","nodeType":"YulFunctionCall","src":"42864:58:65"},"nativeSrc":"42864:58:65","nodeType":"YulExpressionStatement","src":"42864:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"42943:6:65","nodeType":"YulIdentifier","src":"42943:6:65"},{"kind":"number","nativeSrc":"42951:2:65","nodeType":"YulLiteral","src":"42951:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"42939:3:65","nodeType":"YulIdentifier","src":"42939:3:65"},"nativeSrc":"42939:15:65","nodeType":"YulFunctionCall","src":"42939:15:65"},{"hexValue":"6e73616374696f6e206c696d6974","kind":"string","nativeSrc":"42956:16:65","nodeType":"YulLiteral","src":"42956:16:65","type":"","value":"nsaction limit"}],"functionName":{"name":"mstore","nativeSrc":"42932:6:65","nodeType":"YulIdentifier","src":"42932:6:65"},"nativeSrc":"42932:41:65","nodeType":"YulFunctionCall","src":"42932:41:65"},"nativeSrc":"42932:41:65","nodeType":"YulExpressionStatement","src":"42932:41:65"}]},"name":"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","nativeSrc":"42747:233:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"42845:6:65","nodeType":"YulTypedName","src":"42845:6:65","type":""}],"src":"42747:233:65"},{"body":{"nativeSrc":"43132:220:65","nodeType":"YulBlock","src":"43132:220:65","statements":[{"nativeSrc":"43142:74:65","nodeType":"YulAssignment","src":"43142:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"43208:3:65","nodeType":"YulIdentifier","src":"43208:3:65"},{"kind":"number","nativeSrc":"43213:2:65","nodeType":"YulLiteral","src":"43213:2:65","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"43149:58:65","nodeType":"YulIdentifier","src":"43149:58:65"},"nativeSrc":"43149:67:65","nodeType":"YulFunctionCall","src":"43149:67:65"},"variableNames":[{"name":"pos","nativeSrc":"43142:3:65","nodeType":"YulIdentifier","src":"43142:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"43314:3:65","nodeType":"YulIdentifier","src":"43314:3:65"}],"functionName":{"name":"store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039","nativeSrc":"43225:88:65","nodeType":"YulIdentifier","src":"43225:88:65"},"nativeSrc":"43225:93:65","nodeType":"YulFunctionCall","src":"43225:93:65"},"nativeSrc":"43225:93:65","nodeType":"YulExpressionStatement","src":"43225:93:65"},{"nativeSrc":"43327:19:65","nodeType":"YulAssignment","src":"43327:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"43338:3:65","nodeType":"YulIdentifier","src":"43338:3:65"},{"kind":"number","nativeSrc":"43343:2:65","nodeType":"YulLiteral","src":"43343:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"43334:3:65","nodeType":"YulIdentifier","src":"43334:3:65"},"nativeSrc":"43334:12:65","nodeType":"YulFunctionCall","src":"43334:12:65"},"variableNames":[{"name":"end","nativeSrc":"43327:3:65","nodeType":"YulIdentifier","src":"43327:3:65"}]}]},"name":"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack","nativeSrc":"42986:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"43120:3:65","nodeType":"YulTypedName","src":"43120:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"43128:3:65","nodeType":"YulTypedName","src":"43128:3:65","type":""}],"src":"42986:366:65"},{"body":{"nativeSrc":"43529:248:65","nodeType":"YulBlock","src":"43529:248:65","statements":[{"nativeSrc":"43539:26:65","nodeType":"YulAssignment","src":"43539:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"43551:9:65","nodeType":"YulIdentifier","src":"43551:9:65"},{"kind":"number","nativeSrc":"43562:2:65","nodeType":"YulLiteral","src":"43562:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43547:3:65","nodeType":"YulIdentifier","src":"43547:3:65"},"nativeSrc":"43547:18:65","nodeType":"YulFunctionCall","src":"43547:18:65"},"variableNames":[{"name":"tail","nativeSrc":"43539:4:65","nodeType":"YulIdentifier","src":"43539:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43586:9:65","nodeType":"YulIdentifier","src":"43586:9:65"},{"kind":"number","nativeSrc":"43597:1:65","nodeType":"YulLiteral","src":"43597:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43582:3:65","nodeType":"YulIdentifier","src":"43582:3:65"},"nativeSrc":"43582:17:65","nodeType":"YulFunctionCall","src":"43582:17:65"},{"arguments":[{"name":"tail","nativeSrc":"43605:4:65","nodeType":"YulIdentifier","src":"43605:4:65"},{"name":"headStart","nativeSrc":"43611:9:65","nodeType":"YulIdentifier","src":"43611:9:65"}],"functionName":{"name":"sub","nativeSrc":"43601:3:65","nodeType":"YulIdentifier","src":"43601:3:65"},"nativeSrc":"43601:20:65","nodeType":"YulFunctionCall","src":"43601:20:65"}],"functionName":{"name":"mstore","nativeSrc":"43575:6:65","nodeType":"YulIdentifier","src":"43575:6:65"},"nativeSrc":"43575:47:65","nodeType":"YulFunctionCall","src":"43575:47:65"},"nativeSrc":"43575:47:65","nodeType":"YulExpressionStatement","src":"43575:47:65"},{"nativeSrc":"43631:139:65","nodeType":"YulAssignment","src":"43631:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"43765:4:65","nodeType":"YulIdentifier","src":"43765:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack","nativeSrc":"43639:124:65","nodeType":"YulIdentifier","src":"43639:124:65"},"nativeSrc":"43639:131:65","nodeType":"YulFunctionCall","src":"43639:131:65"},"variableNames":[{"name":"tail","nativeSrc":"43631:4:65","nodeType":"YulIdentifier","src":"43631:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"43358:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43509:9:65","nodeType":"YulTypedName","src":"43509:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43524:4:65","nodeType":"YulTypedName","src":"43524:4:65","type":""}],"src":"43358:419:65"},{"body":{"nativeSrc":"43889:67:65","nodeType":"YulBlock","src":"43889:67:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"43911:6:65","nodeType":"YulIdentifier","src":"43911:6:65"},{"kind":"number","nativeSrc":"43919:1:65","nodeType":"YulLiteral","src":"43919:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43907:3:65","nodeType":"YulIdentifier","src":"43907:3:65"},"nativeSrc":"43907:14:65","nodeType":"YulFunctionCall","src":"43907:14:65"},{"hexValue":"73656e64416e6443616c6c2069732064697361626c6564","kind":"string","nativeSrc":"43923:25:65","nodeType":"YulLiteral","src":"43923:25:65","type":"","value":"sendAndCall is disabled"}],"functionName":{"name":"mstore","nativeSrc":"43900:6:65","nodeType":"YulIdentifier","src":"43900:6:65"},"nativeSrc":"43900:49:65","nodeType":"YulFunctionCall","src":"43900:49:65"},"nativeSrc":"43900:49:65","nodeType":"YulExpressionStatement","src":"43900:49:65"}]},"name":"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","nativeSrc":"43783:173:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"43881:6:65","nodeType":"YulTypedName","src":"43881:6:65","type":""}],"src":"43783:173:65"},{"body":{"nativeSrc":"44108:220:65","nodeType":"YulBlock","src":"44108:220:65","statements":[{"nativeSrc":"44118:74:65","nodeType":"YulAssignment","src":"44118:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"44184:3:65","nodeType":"YulIdentifier","src":"44184:3:65"},{"kind":"number","nativeSrc":"44189:2:65","nodeType":"YulLiteral","src":"44189:2:65","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"44125:58:65","nodeType":"YulIdentifier","src":"44125:58:65"},"nativeSrc":"44125:67:65","nodeType":"YulFunctionCall","src":"44125:67:65"},"variableNames":[{"name":"pos","nativeSrc":"44118:3:65","nodeType":"YulIdentifier","src":"44118:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"44290:3:65","nodeType":"YulIdentifier","src":"44290:3:65"}],"functionName":{"name":"store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef","nativeSrc":"44201:88:65","nodeType":"YulIdentifier","src":"44201:88:65"},"nativeSrc":"44201:93:65","nodeType":"YulFunctionCall","src":"44201:93:65"},"nativeSrc":"44201:93:65","nodeType":"YulExpressionStatement","src":"44201:93:65"},{"nativeSrc":"44303:19:65","nodeType":"YulAssignment","src":"44303:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"44314:3:65","nodeType":"YulIdentifier","src":"44314:3:65"},{"kind":"number","nativeSrc":"44319:2:65","nodeType":"YulLiteral","src":"44319:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44310:3:65","nodeType":"YulIdentifier","src":"44310:3:65"},"nativeSrc":"44310:12:65","nodeType":"YulFunctionCall","src":"44310:12:65"},"variableNames":[{"name":"end","nativeSrc":"44303:3:65","nodeType":"YulIdentifier","src":"44303:3:65"}]}]},"name":"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack","nativeSrc":"43962:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"44096:3:65","nodeType":"YulTypedName","src":"44096:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"44104:3:65","nodeType":"YulTypedName","src":"44104:3:65","type":""}],"src":"43962:366:65"},{"body":{"nativeSrc":"44505:248:65","nodeType":"YulBlock","src":"44505:248:65","statements":[{"nativeSrc":"44515:26:65","nodeType":"YulAssignment","src":"44515:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"44527:9:65","nodeType":"YulIdentifier","src":"44527:9:65"},{"kind":"number","nativeSrc":"44538:2:65","nodeType":"YulLiteral","src":"44538:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44523:3:65","nodeType":"YulIdentifier","src":"44523:3:65"},"nativeSrc":"44523:18:65","nodeType":"YulFunctionCall","src":"44523:18:65"},"variableNames":[{"name":"tail","nativeSrc":"44515:4:65","nodeType":"YulIdentifier","src":"44515:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44562:9:65","nodeType":"YulIdentifier","src":"44562:9:65"},{"kind":"number","nativeSrc":"44573:1:65","nodeType":"YulLiteral","src":"44573:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"44558:3:65","nodeType":"YulIdentifier","src":"44558:3:65"},"nativeSrc":"44558:17:65","nodeType":"YulFunctionCall","src":"44558:17:65"},{"arguments":[{"name":"tail","nativeSrc":"44581:4:65","nodeType":"YulIdentifier","src":"44581:4:65"},{"name":"headStart","nativeSrc":"44587:9:65","nodeType":"YulIdentifier","src":"44587:9:65"}],"functionName":{"name":"sub","nativeSrc":"44577:3:65","nodeType":"YulIdentifier","src":"44577:3:65"},"nativeSrc":"44577:20:65","nodeType":"YulFunctionCall","src":"44577:20:65"}],"functionName":{"name":"mstore","nativeSrc":"44551:6:65","nodeType":"YulIdentifier","src":"44551:6:65"},"nativeSrc":"44551:47:65","nodeType":"YulFunctionCall","src":"44551:47:65"},"nativeSrc":"44551:47:65","nodeType":"YulExpressionStatement","src":"44551:47:65"},{"nativeSrc":"44607:139:65","nodeType":"YulAssignment","src":"44607:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"44741:4:65","nodeType":"YulIdentifier","src":"44741:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack","nativeSrc":"44615:124:65","nodeType":"YulIdentifier","src":"44615:124:65"},"nativeSrc":"44615:131:65","nodeType":"YulFunctionCall","src":"44615:131:65"},"variableNames":[{"name":"tail","nativeSrc":"44607:4:65","nodeType":"YulIdentifier","src":"44607:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"44334:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44485:9:65","nodeType":"YulTypedName","src":"44485:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"44500:4:65","nodeType":"YulTypedName","src":"44500:4:65","type":""}],"src":"44334:419:65"},{"body":{"nativeSrc":"44867:278:65","nodeType":"YulBlock","src":"44867:278:65","statements":[{"nativeSrc":"44877:52:65","nodeType":"YulVariableDeclaration","src":"44877:52:65","value":{"arguments":[{"name":"value","nativeSrc":"44923:5:65","nodeType":"YulIdentifier","src":"44923:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"44891:31:65","nodeType":"YulIdentifier","src":"44891:31:65"},"nativeSrc":"44891:38:65","nodeType":"YulFunctionCall","src":"44891:38:65"},"variables":[{"name":"length","nativeSrc":"44881:6:65","nodeType":"YulTypedName","src":"44881:6:65","type":""}]},{"nativeSrc":"44938:95:65","nodeType":"YulAssignment","src":"44938:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"45021:3:65","nodeType":"YulIdentifier","src":"45021:3:65"},{"name":"length","nativeSrc":"45026:6:65","nodeType":"YulIdentifier","src":"45026:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"44945:75:65","nodeType":"YulIdentifier","src":"44945:75:65"},"nativeSrc":"44945:88:65","nodeType":"YulFunctionCall","src":"44945:88:65"},"variableNames":[{"name":"pos","nativeSrc":"44938:3:65","nodeType":"YulIdentifier","src":"44938:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"45081:5:65","nodeType":"YulIdentifier","src":"45081:5:65"},{"kind":"number","nativeSrc":"45088:4:65","nodeType":"YulLiteral","src":"45088:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45077:3:65","nodeType":"YulIdentifier","src":"45077:3:65"},"nativeSrc":"45077:16:65","nodeType":"YulFunctionCall","src":"45077:16:65"},{"name":"pos","nativeSrc":"45095:3:65","nodeType":"YulIdentifier","src":"45095:3:65"},{"name":"length","nativeSrc":"45100:6:65","nodeType":"YulIdentifier","src":"45100:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"45042:34:65","nodeType":"YulIdentifier","src":"45042:34:65"},"nativeSrc":"45042:65:65","nodeType":"YulFunctionCall","src":"45042:65:65"},"nativeSrc":"45042:65:65","nodeType":"YulExpressionStatement","src":"45042:65:65"},{"nativeSrc":"45116:23:65","nodeType":"YulAssignment","src":"45116:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"45127:3:65","nodeType":"YulIdentifier","src":"45127:3:65"},{"name":"length","nativeSrc":"45132:6:65","nodeType":"YulIdentifier","src":"45132:6:65"}],"functionName":{"name":"add","nativeSrc":"45123:3:65","nodeType":"YulIdentifier","src":"45123:3:65"},"nativeSrc":"45123:16:65","nodeType":"YulFunctionCall","src":"45123:16:65"},"variableNames":[{"name":"end","nativeSrc":"45116:3:65","nodeType":"YulIdentifier","src":"45116:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"44759:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"44848:5:65","nodeType":"YulTypedName","src":"44848:5:65","type":""},{"name":"pos","nativeSrc":"44855:3:65","nodeType":"YulTypedName","src":"44855:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"44863:3:65","nodeType":"YulTypedName","src":"44863:3:65","type":""}],"src":"44759:386:65"},{"body":{"nativeSrc":"45285:137:65","nodeType":"YulBlock","src":"45285:137:65","statements":[{"nativeSrc":"45296:100:65","nodeType":"YulAssignment","src":"45296:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"45383:6:65","nodeType":"YulIdentifier","src":"45383:6:65"},{"name":"pos","nativeSrc":"45392:3:65","nodeType":"YulIdentifier","src":"45392:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"45303:79:65","nodeType":"YulIdentifier","src":"45303:79:65"},"nativeSrc":"45303:93:65","nodeType":"YulFunctionCall","src":"45303:93:65"},"variableNames":[{"name":"pos","nativeSrc":"45296:3:65","nodeType":"YulIdentifier","src":"45296:3:65"}]},{"nativeSrc":"45406:10:65","nodeType":"YulAssignment","src":"45406:10:65","value":{"name":"pos","nativeSrc":"45413:3:65","nodeType":"YulIdentifier","src":"45413:3:65"},"variableNames":[{"name":"end","nativeSrc":"45406:3:65","nodeType":"YulIdentifier","src":"45406:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"45151:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"45264:3:65","nodeType":"YulTypedName","src":"45264:3:65","type":""},{"name":"value0","nativeSrc":"45270:6:65","nodeType":"YulTypedName","src":"45270:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"45281:3:65","nodeType":"YulTypedName","src":"45281:3:65","type":""}],"src":"45151:271:65"},{"body":{"nativeSrc":"45491:52:65","nodeType":"YulBlock","src":"45491:52:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"45508:3:65","nodeType":"YulIdentifier","src":"45508:3:65"},{"arguments":[{"name":"value","nativeSrc":"45530:5:65","nodeType":"YulIdentifier","src":"45530:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"45513:16:65","nodeType":"YulIdentifier","src":"45513:16:65"},"nativeSrc":"45513:23:65","nodeType":"YulFunctionCall","src":"45513:23:65"}],"functionName":{"name":"mstore","nativeSrc":"45501:6:65","nodeType":"YulIdentifier","src":"45501:6:65"},"nativeSrc":"45501:36:65","nodeType":"YulFunctionCall","src":"45501:36:65"},"nativeSrc":"45501:36:65","nodeType":"YulExpressionStatement","src":"45501:36:65"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"45428:115:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45479:5:65","nodeType":"YulTypedName","src":"45479:5:65","type":""},{"name":"pos","nativeSrc":"45486:3:65","nodeType":"YulTypedName","src":"45486:3:65","type":""}],"src":"45428:115:65"},{"body":{"nativeSrc":"45671:202:65","nodeType":"YulBlock","src":"45671:202:65","statements":[{"nativeSrc":"45681:26:65","nodeType":"YulAssignment","src":"45681:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"45693:9:65","nodeType":"YulIdentifier","src":"45693:9:65"},{"kind":"number","nativeSrc":"45704:2:65","nodeType":"YulLiteral","src":"45704:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"45689:3:65","nodeType":"YulIdentifier","src":"45689:3:65"},"nativeSrc":"45689:18:65","nodeType":"YulFunctionCall","src":"45689:18:65"},"variableNames":[{"name":"tail","nativeSrc":"45681:4:65","nodeType":"YulIdentifier","src":"45681:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"45759:6:65","nodeType":"YulIdentifier","src":"45759:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"45772:9:65","nodeType":"YulIdentifier","src":"45772:9:65"},{"kind":"number","nativeSrc":"45783:1:65","nodeType":"YulLiteral","src":"45783:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"45768:3:65","nodeType":"YulIdentifier","src":"45768:3:65"},"nativeSrc":"45768:17:65","nodeType":"YulFunctionCall","src":"45768:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"45717:41:65","nodeType":"YulIdentifier","src":"45717:41:65"},"nativeSrc":"45717:69:65","nodeType":"YulFunctionCall","src":"45717:69:65"},"nativeSrc":"45717:69:65","nodeType":"YulExpressionStatement","src":"45717:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"45838:6:65","nodeType":"YulIdentifier","src":"45838:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"45851:9:65","nodeType":"YulIdentifier","src":"45851:9:65"},{"kind":"number","nativeSrc":"45862:2:65","nodeType":"YulLiteral","src":"45862:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"45847:3:65","nodeType":"YulIdentifier","src":"45847:3:65"},"nativeSrc":"45847:18:65","nodeType":"YulFunctionCall","src":"45847:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"45796:41:65","nodeType":"YulIdentifier","src":"45796:41:65"},"nativeSrc":"45796:70:65","nodeType":"YulFunctionCall","src":"45796:70:65"},"nativeSrc":"45796:70:65","nodeType":"YulExpressionStatement","src":"45796:70:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed","nativeSrc":"45549:324:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"45635:9:65","nodeType":"YulTypedName","src":"45635:9:65","type":""},{"name":"value1","nativeSrc":"45647:6:65","nodeType":"YulTypedName","src":"45647:6:65","type":""},{"name":"value0","nativeSrc":"45655:6:65","nodeType":"YulTypedName","src":"45655:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"45666:4:65","nodeType":"YulTypedName","src":"45666:4:65","type":""}],"src":"45549:324:65"},{"body":{"nativeSrc":"45985:73:65","nodeType":"YulBlock","src":"45985:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"46007:6:65","nodeType":"YulIdentifier","src":"46007:6:65"},{"kind":"number","nativeSrc":"46015:1:65","nodeType":"YulLiteral","src":"46015:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"46003:3:65","nodeType":"YulIdentifier","src":"46003:3:65"},"nativeSrc":"46003:14:65","nodeType":"YulFunctionCall","src":"46003:14:65"},{"hexValue":"4c7a4170703a206e6f20747275737465642070617468207265636f7264","kind":"string","nativeSrc":"46019:31:65","nodeType":"YulLiteral","src":"46019:31:65","type":"","value":"LzApp: no trusted path record"}],"functionName":{"name":"mstore","nativeSrc":"45996:6:65","nodeType":"YulIdentifier","src":"45996:6:65"},"nativeSrc":"45996:55:65","nodeType":"YulFunctionCall","src":"45996:55:65"},"nativeSrc":"45996:55:65","nodeType":"YulExpressionStatement","src":"45996:55:65"}]},"name":"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","nativeSrc":"45879:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"45977:6:65","nodeType":"YulTypedName","src":"45977:6:65","type":""}],"src":"45879:179:65"},{"body":{"nativeSrc":"46210:220:65","nodeType":"YulBlock","src":"46210:220:65","statements":[{"nativeSrc":"46220:74:65","nodeType":"YulAssignment","src":"46220:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"46286:3:65","nodeType":"YulIdentifier","src":"46286:3:65"},{"kind":"number","nativeSrc":"46291:2:65","nodeType":"YulLiteral","src":"46291:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"46227:58:65","nodeType":"YulIdentifier","src":"46227:58:65"},"nativeSrc":"46227:67:65","nodeType":"YulFunctionCall","src":"46227:67:65"},"variableNames":[{"name":"pos","nativeSrc":"46220:3:65","nodeType":"YulIdentifier","src":"46220:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"46392:3:65","nodeType":"YulIdentifier","src":"46392:3:65"}],"functionName":{"name":"store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552","nativeSrc":"46303:88:65","nodeType":"YulIdentifier","src":"46303:88:65"},"nativeSrc":"46303:93:65","nodeType":"YulFunctionCall","src":"46303:93:65"},"nativeSrc":"46303:93:65","nodeType":"YulExpressionStatement","src":"46303:93:65"},{"nativeSrc":"46405:19:65","nodeType":"YulAssignment","src":"46405:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"46416:3:65","nodeType":"YulIdentifier","src":"46416:3:65"},{"kind":"number","nativeSrc":"46421:2:65","nodeType":"YulLiteral","src":"46421:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46412:3:65","nodeType":"YulIdentifier","src":"46412:3:65"},"nativeSrc":"46412:12:65","nodeType":"YulFunctionCall","src":"46412:12:65"},"variableNames":[{"name":"end","nativeSrc":"46405:3:65","nodeType":"YulIdentifier","src":"46405:3:65"}]}]},"name":"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack","nativeSrc":"46064:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"46198:3:65","nodeType":"YulTypedName","src":"46198:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"46206:3:65","nodeType":"YulTypedName","src":"46206:3:65","type":""}],"src":"46064:366:65"},{"body":{"nativeSrc":"46607:248:65","nodeType":"YulBlock","src":"46607:248:65","statements":[{"nativeSrc":"46617:26:65","nodeType":"YulAssignment","src":"46617:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"46629:9:65","nodeType":"YulIdentifier","src":"46629:9:65"},{"kind":"number","nativeSrc":"46640:2:65","nodeType":"YulLiteral","src":"46640:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"46625:3:65","nodeType":"YulIdentifier","src":"46625:3:65"},"nativeSrc":"46625:18:65","nodeType":"YulFunctionCall","src":"46625:18:65"},"variableNames":[{"name":"tail","nativeSrc":"46617:4:65","nodeType":"YulIdentifier","src":"46617:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46664:9:65","nodeType":"YulIdentifier","src":"46664:9:65"},{"kind":"number","nativeSrc":"46675:1:65","nodeType":"YulLiteral","src":"46675:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"46660:3:65","nodeType":"YulIdentifier","src":"46660:3:65"},"nativeSrc":"46660:17:65","nodeType":"YulFunctionCall","src":"46660:17:65"},{"arguments":[{"name":"tail","nativeSrc":"46683:4:65","nodeType":"YulIdentifier","src":"46683:4:65"},{"name":"headStart","nativeSrc":"46689:9:65","nodeType":"YulIdentifier","src":"46689:9:65"}],"functionName":{"name":"sub","nativeSrc":"46679:3:65","nodeType":"YulIdentifier","src":"46679:3:65"},"nativeSrc":"46679:20:65","nodeType":"YulFunctionCall","src":"46679:20:65"}],"functionName":{"name":"mstore","nativeSrc":"46653:6:65","nodeType":"YulIdentifier","src":"46653:6:65"},"nativeSrc":"46653:47:65","nodeType":"YulFunctionCall","src":"46653:47:65"},"nativeSrc":"46653:47:65","nodeType":"YulExpressionStatement","src":"46653:47:65"},{"nativeSrc":"46709:139:65","nodeType":"YulAssignment","src":"46709:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"46843:4:65","nodeType":"YulIdentifier","src":"46843:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack","nativeSrc":"46717:124:65","nodeType":"YulIdentifier","src":"46717:124:65"},"nativeSrc":"46717:131:65","nodeType":"YulFunctionCall","src":"46717:131:65"},"variableNames":[{"name":"tail","nativeSrc":"46709:4:65","nodeType":"YulIdentifier","src":"46709:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"46436:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46587:9:65","nodeType":"YulTypedName","src":"46587:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46602:4:65","nodeType":"YulTypedName","src":"46602:4:65","type":""}],"src":"46436:419:65"},{"body":{"nativeSrc":"46903:52:65","nodeType":"YulBlock","src":"46903:52:65","statements":[{"nativeSrc":"46913:35:65","nodeType":"YulAssignment","src":"46913:35:65","value":{"arguments":[{"kind":"number","nativeSrc":"46938:2:65","nodeType":"YulLiteral","src":"46938:2:65","type":"","value":"96"},{"name":"value","nativeSrc":"46942:5:65","nodeType":"YulIdentifier","src":"46942:5:65"}],"functionName":{"name":"shl","nativeSrc":"46934:3:65","nodeType":"YulIdentifier","src":"46934:3:65"},"nativeSrc":"46934:14:65","nodeType":"YulFunctionCall","src":"46934:14:65"},"variableNames":[{"name":"newValue","nativeSrc":"46913:8:65","nodeType":"YulIdentifier","src":"46913:8:65"}]}]},"name":"shift_left_96","nativeSrc":"46861:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"46884:5:65","nodeType":"YulTypedName","src":"46884:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"46894:8:65","nodeType":"YulTypedName","src":"46894:8:65","type":""}],"src":"46861:94:65"},{"body":{"nativeSrc":"47008:47:65","nodeType":"YulBlock","src":"47008:47:65","statements":[{"nativeSrc":"47018:31:65","nodeType":"YulAssignment","src":"47018:31:65","value":{"arguments":[{"name":"value","nativeSrc":"47043:5:65","nodeType":"YulIdentifier","src":"47043:5:65"}],"functionName":{"name":"shift_left_96","nativeSrc":"47029:13:65","nodeType":"YulIdentifier","src":"47029:13:65"},"nativeSrc":"47029:20:65","nodeType":"YulFunctionCall","src":"47029:20:65"},"variableNames":[{"name":"aligned","nativeSrc":"47018:7:65","nodeType":"YulIdentifier","src":"47018:7:65"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"46961:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"46990:5:65","nodeType":"YulTypedName","src":"46990:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"47000:7:65","nodeType":"YulTypedName","src":"47000:7:65","type":""}],"src":"46961:94:65"},{"body":{"nativeSrc":"47108:53:65","nodeType":"YulBlock","src":"47108:53:65","statements":[{"nativeSrc":"47118:37:65","nodeType":"YulAssignment","src":"47118:37:65","value":{"arguments":[{"name":"value","nativeSrc":"47149:5:65","nodeType":"YulIdentifier","src":"47149:5:65"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"47129:19:65","nodeType":"YulIdentifier","src":"47129:19:65"},"nativeSrc":"47129:26:65","nodeType":"YulFunctionCall","src":"47129:26:65"},"variableNames":[{"name":"aligned","nativeSrc":"47118:7:65","nodeType":"YulIdentifier","src":"47118:7:65"}]}]},"name":"leftAlign_t_address","nativeSrc":"47061:100:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47090:5:65","nodeType":"YulTypedName","src":"47090:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"47100:7:65","nodeType":"YulTypedName","src":"47100:7:65","type":""}],"src":"47061:100:65"},{"body":{"nativeSrc":"47250:74:65","nodeType":"YulBlock","src":"47250:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"47267:3:65","nodeType":"YulIdentifier","src":"47267:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"47310:5:65","nodeType":"YulIdentifier","src":"47310:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"47292:17:65","nodeType":"YulIdentifier","src":"47292:17:65"},"nativeSrc":"47292:24:65","nodeType":"YulFunctionCall","src":"47292:24:65"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"47272:19:65","nodeType":"YulIdentifier","src":"47272:19:65"},"nativeSrc":"47272:45:65","nodeType":"YulFunctionCall","src":"47272:45:65"}],"functionName":{"name":"mstore","nativeSrc":"47260:6:65","nodeType":"YulIdentifier","src":"47260:6:65"},"nativeSrc":"47260:58:65","nodeType":"YulFunctionCall","src":"47260:58:65"},"nativeSrc":"47260:58:65","nodeType":"YulExpressionStatement","src":"47260:58:65"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"47167:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47238:5:65","nodeType":"YulTypedName","src":"47238:5:65","type":""},{"name":"pos","nativeSrc":"47245:3:65","nodeType":"YulTypedName","src":"47245:3:65","type":""}],"src":"47167:157:65"},{"body":{"nativeSrc":"47502:260:65","nodeType":"YulBlock","src":"47502:260:65","statements":[{"nativeSrc":"47513:110:65","nodeType":"YulAssignment","src":"47513:110:65","value":{"arguments":[{"name":"value0","nativeSrc":"47602:6:65","nodeType":"YulIdentifier","src":"47602:6:65"},{"name":"value1","nativeSrc":"47610:6:65","nodeType":"YulIdentifier","src":"47610:6:65"},{"name":"pos","nativeSrc":"47619:3:65","nodeType":"YulIdentifier","src":"47619:3:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"47520:81:65","nodeType":"YulIdentifier","src":"47520:81:65"},"nativeSrc":"47520:103:65","nodeType":"YulFunctionCall","src":"47520:103:65"},"variableNames":[{"name":"pos","nativeSrc":"47513:3:65","nodeType":"YulIdentifier","src":"47513:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"47695:6:65","nodeType":"YulIdentifier","src":"47695:6:65"},{"name":"pos","nativeSrc":"47704:3:65","nodeType":"YulIdentifier","src":"47704:3:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"47633:61:65","nodeType":"YulIdentifier","src":"47633:61:65"},"nativeSrc":"47633:75:65","nodeType":"YulFunctionCall","src":"47633:75:65"},"nativeSrc":"47633:75:65","nodeType":"YulExpressionStatement","src":"47633:75:65"},{"nativeSrc":"47717:19:65","nodeType":"YulAssignment","src":"47717:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"47728:3:65","nodeType":"YulIdentifier","src":"47728:3:65"},{"kind":"number","nativeSrc":"47733:2:65","nodeType":"YulLiteral","src":"47733:2:65","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"47724:3:65","nodeType":"YulIdentifier","src":"47724:3:65"},"nativeSrc":"47724:12:65","nodeType":"YulFunctionCall","src":"47724:12:65"},"variableNames":[{"name":"pos","nativeSrc":"47717:3:65","nodeType":"YulIdentifier","src":"47717:3:65"}]},{"nativeSrc":"47746:10:65","nodeType":"YulAssignment","src":"47746:10:65","value":{"name":"pos","nativeSrc":"47753:3:65","nodeType":"YulIdentifier","src":"47753:3:65"},"variableNames":[{"name":"end","nativeSrc":"47746:3:65","nodeType":"YulIdentifier","src":"47746:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"47330:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"47465:3:65","nodeType":"YulTypedName","src":"47465:3:65","type":""},{"name":"value2","nativeSrc":"47471:6:65","nodeType":"YulTypedName","src":"47471:6:65","type":""},{"name":"value1","nativeSrc":"47479:6:65","nodeType":"YulTypedName","src":"47479:6:65","type":""},{"name":"value0","nativeSrc":"47487:6:65","nodeType":"YulTypedName","src":"47487:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"47498:3:65","nodeType":"YulTypedName","src":"47498:3:65","type":""}],"src":"47330:432:65"},{"body":{"nativeSrc":"47821:87:65","nodeType":"YulBlock","src":"47821:87:65","statements":[{"nativeSrc":"47831:11:65","nodeType":"YulAssignment","src":"47831:11:65","value":{"name":"ptr","nativeSrc":"47839:3:65","nodeType":"YulIdentifier","src":"47839:3:65"},"variableNames":[{"name":"data","nativeSrc":"47831:4:65","nodeType":"YulIdentifier","src":"47831:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47859:1:65","nodeType":"YulLiteral","src":"47859:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"47862:3:65","nodeType":"YulIdentifier","src":"47862:3:65"}],"functionName":{"name":"mstore","nativeSrc":"47852:6:65","nodeType":"YulIdentifier","src":"47852:6:65"},"nativeSrc":"47852:14:65","nodeType":"YulFunctionCall","src":"47852:14:65"},"nativeSrc":"47852:14:65","nodeType":"YulExpressionStatement","src":"47852:14:65"},{"nativeSrc":"47875:26:65","nodeType":"YulAssignment","src":"47875:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"47893:1:65","nodeType":"YulLiteral","src":"47893:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"47896:4:65","nodeType":"YulLiteral","src":"47896:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"47883:9:65","nodeType":"YulIdentifier","src":"47883:9:65"},"nativeSrc":"47883:18:65","nodeType":"YulFunctionCall","src":"47883:18:65"},"variableNames":[{"name":"data","nativeSrc":"47875:4:65","nodeType":"YulIdentifier","src":"47875:4:65"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"47768:140:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"47808:3:65","nodeType":"YulTypedName","src":"47808:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"47816:4:65","nodeType":"YulTypedName","src":"47816:4:65","type":""}],"src":"47768:140:65"},{"body":{"nativeSrc":"47958:49:65","nodeType":"YulBlock","src":"47958:49:65","statements":[{"nativeSrc":"47968:33:65","nodeType":"YulAssignment","src":"47968:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"47986:5:65","nodeType":"YulIdentifier","src":"47986:5:65"},{"kind":"number","nativeSrc":"47993:2:65","nodeType":"YulLiteral","src":"47993:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"47982:3:65","nodeType":"YulIdentifier","src":"47982:3:65"},"nativeSrc":"47982:14:65","nodeType":"YulFunctionCall","src":"47982:14:65"},{"kind":"number","nativeSrc":"47998:2:65","nodeType":"YulLiteral","src":"47998:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"47978:3:65","nodeType":"YulIdentifier","src":"47978:3:65"},"nativeSrc":"47978:23:65","nodeType":"YulFunctionCall","src":"47978:23:65"},"variableNames":[{"name":"result","nativeSrc":"47968:6:65","nodeType":"YulIdentifier","src":"47968:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"47914:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47941:5:65","nodeType":"YulTypedName","src":"47941:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"47951:6:65","nodeType":"YulTypedName","src":"47951:6:65","type":""}],"src":"47914:93:65"},{"body":{"nativeSrc":"48066:54:65","nodeType":"YulBlock","src":"48066:54:65","statements":[{"nativeSrc":"48076:37:65","nodeType":"YulAssignment","src":"48076:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"48101:4:65","nodeType":"YulIdentifier","src":"48101:4:65"},{"name":"value","nativeSrc":"48107:5:65","nodeType":"YulIdentifier","src":"48107:5:65"}],"functionName":{"name":"shl","nativeSrc":"48097:3:65","nodeType":"YulIdentifier","src":"48097:3:65"},"nativeSrc":"48097:16:65","nodeType":"YulFunctionCall","src":"48097:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"48076:8:65","nodeType":"YulIdentifier","src":"48076:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"48013:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"48041:4:65","nodeType":"YulTypedName","src":"48041:4:65","type":""},{"name":"value","nativeSrc":"48047:5:65","nodeType":"YulTypedName","src":"48047:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"48057:8:65","nodeType":"YulTypedName","src":"48057:8:65","type":""}],"src":"48013:107:65"},{"body":{"nativeSrc":"48202:317:65","nodeType":"YulBlock","src":"48202:317:65","statements":[{"nativeSrc":"48212:35:65","nodeType":"YulVariableDeclaration","src":"48212:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"48233:10:65","nodeType":"YulIdentifier","src":"48233:10:65"},{"kind":"number","nativeSrc":"48245:1:65","nodeType":"YulLiteral","src":"48245:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"48229:3:65","nodeType":"YulIdentifier","src":"48229:3:65"},"nativeSrc":"48229:18:65","nodeType":"YulFunctionCall","src":"48229:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"48216:9:65","nodeType":"YulTypedName","src":"48216:9:65","type":""}]},{"nativeSrc":"48256:109:65","nodeType":"YulVariableDeclaration","src":"48256:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"48287:9:65","nodeType":"YulIdentifier","src":"48287:9:65"},{"kind":"number","nativeSrc":"48298:66:65","nodeType":"YulLiteral","src":"48298:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"48268:18:65","nodeType":"YulIdentifier","src":"48268:18:65"},"nativeSrc":"48268:97:65","nodeType":"YulFunctionCall","src":"48268:97:65"},"variables":[{"name":"mask","nativeSrc":"48260:4:65","nodeType":"YulTypedName","src":"48260:4:65","type":""}]},{"nativeSrc":"48374:51:65","nodeType":"YulAssignment","src":"48374:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"48405:9:65","nodeType":"YulIdentifier","src":"48405:9:65"},{"name":"toInsert","nativeSrc":"48416:8:65","nodeType":"YulIdentifier","src":"48416:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"48386:18:65","nodeType":"YulIdentifier","src":"48386:18:65"},"nativeSrc":"48386:39:65","nodeType":"YulFunctionCall","src":"48386:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"48374:8:65","nodeType":"YulIdentifier","src":"48374:8:65"}]},{"nativeSrc":"48434:30:65","nodeType":"YulAssignment","src":"48434:30:65","value":{"arguments":[{"name":"value","nativeSrc":"48447:5:65","nodeType":"YulIdentifier","src":"48447:5:65"},{"arguments":[{"name":"mask","nativeSrc":"48458:4:65","nodeType":"YulIdentifier","src":"48458:4:65"}],"functionName":{"name":"not","nativeSrc":"48454:3:65","nodeType":"YulIdentifier","src":"48454:3:65"},"nativeSrc":"48454:9:65","nodeType":"YulFunctionCall","src":"48454:9:65"}],"functionName":{"name":"and","nativeSrc":"48443:3:65","nodeType":"YulIdentifier","src":"48443:3:65"},"nativeSrc":"48443:21:65","nodeType":"YulFunctionCall","src":"48443:21:65"},"variableNames":[{"name":"value","nativeSrc":"48434:5:65","nodeType":"YulIdentifier","src":"48434:5:65"}]},{"nativeSrc":"48473:40:65","nodeType":"YulAssignment","src":"48473:40:65","value":{"arguments":[{"name":"value","nativeSrc":"48486:5:65","nodeType":"YulIdentifier","src":"48486:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"48497:8:65","nodeType":"YulIdentifier","src":"48497:8:65"},{"name":"mask","nativeSrc":"48507:4:65","nodeType":"YulIdentifier","src":"48507:4:65"}],"functionName":{"name":"and","nativeSrc":"48493:3:65","nodeType":"YulIdentifier","src":"48493:3:65"},"nativeSrc":"48493:19:65","nodeType":"YulFunctionCall","src":"48493:19:65"}],"functionName":{"name":"or","nativeSrc":"48483:2:65","nodeType":"YulIdentifier","src":"48483:2:65"},"nativeSrc":"48483:30:65","nodeType":"YulFunctionCall","src":"48483:30:65"},"variableNames":[{"name":"result","nativeSrc":"48473:6:65","nodeType":"YulIdentifier","src":"48473:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"48126:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48163:5:65","nodeType":"YulTypedName","src":"48163:5:65","type":""},{"name":"shiftBytes","nativeSrc":"48170:10:65","nodeType":"YulTypedName","src":"48170:10:65","type":""},{"name":"toInsert","nativeSrc":"48182:8:65","nodeType":"YulTypedName","src":"48182:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"48195:6:65","nodeType":"YulTypedName","src":"48195:6:65","type":""}],"src":"48126:393:65"},{"body":{"nativeSrc":"48585:82:65","nodeType":"YulBlock","src":"48585:82:65","statements":[{"nativeSrc":"48595:66:65","nodeType":"YulAssignment","src":"48595:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"48653:5:65","nodeType":"YulIdentifier","src":"48653:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"48635:17:65","nodeType":"YulIdentifier","src":"48635:17:65"},"nativeSrc":"48635:24:65","nodeType":"YulFunctionCall","src":"48635:24:65"}],"functionName":{"name":"identity","nativeSrc":"48626:8:65","nodeType":"YulIdentifier","src":"48626:8:65"},"nativeSrc":"48626:34:65","nodeType":"YulFunctionCall","src":"48626:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"48608:17:65","nodeType":"YulIdentifier","src":"48608:17:65"},"nativeSrc":"48608:53:65","nodeType":"YulFunctionCall","src":"48608:53:65"},"variableNames":[{"name":"converted","nativeSrc":"48595:9:65","nodeType":"YulIdentifier","src":"48595:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"48525:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48565:5:65","nodeType":"YulTypedName","src":"48565:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"48575:9:65","nodeType":"YulTypedName","src":"48575:9:65","type":""}],"src":"48525:142:65"},{"body":{"nativeSrc":"48720:28:65","nodeType":"YulBlock","src":"48720:28:65","statements":[{"nativeSrc":"48730:12:65","nodeType":"YulAssignment","src":"48730:12:65","value":{"name":"value","nativeSrc":"48737:5:65","nodeType":"YulIdentifier","src":"48737:5:65"},"variableNames":[{"name":"ret","nativeSrc":"48730:3:65","nodeType":"YulIdentifier","src":"48730:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"48673:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"48706:5:65","nodeType":"YulTypedName","src":"48706:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"48716:3:65","nodeType":"YulTypedName","src":"48716:3:65","type":""}],"src":"48673:75:65"},{"body":{"nativeSrc":"48830:193:65","nodeType":"YulBlock","src":"48830:193:65","statements":[{"nativeSrc":"48840:63:65","nodeType":"YulVariableDeclaration","src":"48840:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"48895:7:65","nodeType":"YulIdentifier","src":"48895:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"48864:30:65","nodeType":"YulIdentifier","src":"48864:30:65"},"nativeSrc":"48864:39:65","nodeType":"YulFunctionCall","src":"48864:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"48844:16:65","nodeType":"YulTypedName","src":"48844:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"48919:4:65","nodeType":"YulIdentifier","src":"48919:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"48959:4:65","nodeType":"YulIdentifier","src":"48959:4:65"}],"functionName":{"name":"sload","nativeSrc":"48953:5:65","nodeType":"YulIdentifier","src":"48953:5:65"},"nativeSrc":"48953:11:65","nodeType":"YulFunctionCall","src":"48953:11:65"},{"name":"offset","nativeSrc":"48966:6:65","nodeType":"YulIdentifier","src":"48966:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"48998:16:65","nodeType":"YulIdentifier","src":"48998:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"48974:23:65","nodeType":"YulIdentifier","src":"48974:23:65"},"nativeSrc":"48974:41:65","nodeType":"YulFunctionCall","src":"48974:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"48925:27:65","nodeType":"YulIdentifier","src":"48925:27:65"},"nativeSrc":"48925:91:65","nodeType":"YulFunctionCall","src":"48925:91:65"}],"functionName":{"name":"sstore","nativeSrc":"48912:6:65","nodeType":"YulIdentifier","src":"48912:6:65"},"nativeSrc":"48912:105:65","nodeType":"YulFunctionCall","src":"48912:105:65"},"nativeSrc":"48912:105:65","nodeType":"YulExpressionStatement","src":"48912:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"48754:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"48807:4:65","nodeType":"YulTypedName","src":"48807:4:65","type":""},{"name":"offset","nativeSrc":"48813:6:65","nodeType":"YulTypedName","src":"48813:6:65","type":""},{"name":"value_0","nativeSrc":"48821:7:65","nodeType":"YulTypedName","src":"48821:7:65","type":""}],"src":"48754:269:65"},{"body":{"nativeSrc":"49078:24:65","nodeType":"YulBlock","src":"49078:24:65","statements":[{"nativeSrc":"49088:8:65","nodeType":"YulAssignment","src":"49088:8:65","value":{"kind":"number","nativeSrc":"49095:1:65","nodeType":"YulLiteral","src":"49095:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"49088:3:65","nodeType":"YulIdentifier","src":"49088:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"49029:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"49074:3:65","nodeType":"YulTypedName","src":"49074:3:65","type":""}],"src":"49029:73:65"},{"body":{"nativeSrc":"49161:136:65","nodeType":"YulBlock","src":"49161:136:65","statements":[{"nativeSrc":"49171:46:65","nodeType":"YulVariableDeclaration","src":"49171:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"49185:30:65","nodeType":"YulIdentifier","src":"49185:30:65"},"nativeSrc":"49185:32:65","nodeType":"YulFunctionCall","src":"49185:32:65"},"variables":[{"name":"zero_0","nativeSrc":"49175:6:65","nodeType":"YulTypedName","src":"49175:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"49270:4:65","nodeType":"YulIdentifier","src":"49270:4:65"},{"name":"offset","nativeSrc":"49276:6:65","nodeType":"YulIdentifier","src":"49276:6:65"},{"name":"zero_0","nativeSrc":"49284:6:65","nodeType":"YulIdentifier","src":"49284:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"49226:43:65","nodeType":"YulIdentifier","src":"49226:43:65"},"nativeSrc":"49226:65:65","nodeType":"YulFunctionCall","src":"49226:65:65"},"nativeSrc":"49226:65:65","nodeType":"YulExpressionStatement","src":"49226:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"49108:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"49147:4:65","nodeType":"YulTypedName","src":"49147:4:65","type":""},{"name":"offset","nativeSrc":"49153:6:65","nodeType":"YulTypedName","src":"49153:6:65","type":""}],"src":"49108:189:65"},{"body":{"nativeSrc":"49353:136:65","nodeType":"YulBlock","src":"49353:136:65","statements":[{"body":{"nativeSrc":"49420:63:65","nodeType":"YulBlock","src":"49420:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"49464:5:65","nodeType":"YulIdentifier","src":"49464:5:65"},{"kind":"number","nativeSrc":"49471:1:65","nodeType":"YulLiteral","src":"49471:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"49434:29:65","nodeType":"YulIdentifier","src":"49434:29:65"},"nativeSrc":"49434:39:65","nodeType":"YulFunctionCall","src":"49434:39:65"},"nativeSrc":"49434:39:65","nodeType":"YulExpressionStatement","src":"49434:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"49373:5:65","nodeType":"YulIdentifier","src":"49373:5:65"},{"name":"end","nativeSrc":"49380:3:65","nodeType":"YulIdentifier","src":"49380:3:65"}],"functionName":{"name":"lt","nativeSrc":"49370:2:65","nodeType":"YulIdentifier","src":"49370:2:65"},"nativeSrc":"49370:14:65","nodeType":"YulFunctionCall","src":"49370:14:65"},"nativeSrc":"49363:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"49385:26:65","nodeType":"YulBlock","src":"49385:26:65","statements":[{"nativeSrc":"49387:22:65","nodeType":"YulAssignment","src":"49387:22:65","value":{"arguments":[{"name":"start","nativeSrc":"49400:5:65","nodeType":"YulIdentifier","src":"49400:5:65"},{"kind":"number","nativeSrc":"49407:1:65","nodeType":"YulLiteral","src":"49407:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"49396:3:65","nodeType":"YulIdentifier","src":"49396:3:65"},"nativeSrc":"49396:13:65","nodeType":"YulFunctionCall","src":"49396:13:65"},"variableNames":[{"name":"start","nativeSrc":"49387:5:65","nodeType":"YulIdentifier","src":"49387:5:65"}]}]},"pre":{"nativeSrc":"49367:2:65","nodeType":"YulBlock","src":"49367:2:65","statements":[]},"src":"49363:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"49303:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"49341:5:65","nodeType":"YulTypedName","src":"49341:5:65","type":""},{"name":"end","nativeSrc":"49348:3:65","nodeType":"YulTypedName","src":"49348:3:65","type":""}],"src":"49303:186:65"},{"body":{"nativeSrc":"49573:463:65","nodeType":"YulBlock","src":"49573:463:65","statements":[{"body":{"nativeSrc":"49599:430:65","nodeType":"YulBlock","src":"49599:430:65","statements":[{"nativeSrc":"49613:53:65","nodeType":"YulVariableDeclaration","src":"49613:53:65","value":{"arguments":[{"name":"array","nativeSrc":"49660:5:65","nodeType":"YulIdentifier","src":"49660:5:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"49629:30:65","nodeType":"YulIdentifier","src":"49629:30:65"},"nativeSrc":"49629:37:65","nodeType":"YulFunctionCall","src":"49629:37:65"},"variables":[{"name":"dataArea","nativeSrc":"49617:8:65","nodeType":"YulTypedName","src":"49617:8:65","type":""}]},{"nativeSrc":"49679:63:65","nodeType":"YulVariableDeclaration","src":"49679:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"49702:8:65","nodeType":"YulIdentifier","src":"49702:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"49730:10:65","nodeType":"YulIdentifier","src":"49730:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"49712:17:65","nodeType":"YulIdentifier","src":"49712:17:65"},"nativeSrc":"49712:29:65","nodeType":"YulFunctionCall","src":"49712:29:65"}],"functionName":{"name":"add","nativeSrc":"49698:3:65","nodeType":"YulIdentifier","src":"49698:3:65"},"nativeSrc":"49698:44:65","nodeType":"YulFunctionCall","src":"49698:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"49683:11:65","nodeType":"YulTypedName","src":"49683:11:65","type":""}]},{"body":{"nativeSrc":"49899:27:65","nodeType":"YulBlock","src":"49899:27:65","statements":[{"nativeSrc":"49901:23:65","nodeType":"YulAssignment","src":"49901:23:65","value":{"name":"dataArea","nativeSrc":"49916:8:65","nodeType":"YulIdentifier","src":"49916:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"49901:11:65","nodeType":"YulIdentifier","src":"49901:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"49883:10:65","nodeType":"YulIdentifier","src":"49883:10:65"},{"kind":"number","nativeSrc":"49895:2:65","nodeType":"YulLiteral","src":"49895:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"49880:2:65","nodeType":"YulIdentifier","src":"49880:2:65"},"nativeSrc":"49880:18:65","nodeType":"YulFunctionCall","src":"49880:18:65"},"nativeSrc":"49877:49:65","nodeType":"YulIf","src":"49877:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"49968:11:65","nodeType":"YulIdentifier","src":"49968:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"49985:8:65","nodeType":"YulIdentifier","src":"49985:8:65"},{"arguments":[{"name":"len","nativeSrc":"50013:3:65","nodeType":"YulIdentifier","src":"50013:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"49995:17:65","nodeType":"YulIdentifier","src":"49995:17:65"},"nativeSrc":"49995:22:65","nodeType":"YulFunctionCall","src":"49995:22:65"}],"functionName":{"name":"add","nativeSrc":"49981:3:65","nodeType":"YulIdentifier","src":"49981:3:65"},"nativeSrc":"49981:37:65","nodeType":"YulFunctionCall","src":"49981:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"49939:28:65","nodeType":"YulIdentifier","src":"49939:28:65"},"nativeSrc":"49939:80:65","nodeType":"YulFunctionCall","src":"49939:80:65"},"nativeSrc":"49939:80:65","nodeType":"YulExpressionStatement","src":"49939:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"49590:3:65","nodeType":"YulIdentifier","src":"49590:3:65"},{"kind":"number","nativeSrc":"49595:2:65","nodeType":"YulLiteral","src":"49595:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"49587:2:65","nodeType":"YulIdentifier","src":"49587:2:65"},"nativeSrc":"49587:11:65","nodeType":"YulFunctionCall","src":"49587:11:65"},"nativeSrc":"49584:445:65","nodeType":"YulIf","src":"49584:445:65"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"49495:541:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"49549:5:65","nodeType":"YulTypedName","src":"49549:5:65","type":""},{"name":"len","nativeSrc":"49556:3:65","nodeType":"YulTypedName","src":"49556:3:65","type":""},{"name":"startIndex","nativeSrc":"49561:10:65","nodeType":"YulTypedName","src":"49561:10:65","type":""}],"src":"49495:541:65"},{"body":{"nativeSrc":"50105:54:65","nodeType":"YulBlock","src":"50105:54:65","statements":[{"nativeSrc":"50115:37:65","nodeType":"YulAssignment","src":"50115:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"50140:4:65","nodeType":"YulIdentifier","src":"50140:4:65"},{"name":"value","nativeSrc":"50146:5:65","nodeType":"YulIdentifier","src":"50146:5:65"}],"functionName":{"name":"shr","nativeSrc":"50136:3:65","nodeType":"YulIdentifier","src":"50136:3:65"},"nativeSrc":"50136:16:65","nodeType":"YulFunctionCall","src":"50136:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"50115:8:65","nodeType":"YulIdentifier","src":"50115:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"50042:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"50080:4:65","nodeType":"YulTypedName","src":"50080:4:65","type":""},{"name":"value","nativeSrc":"50086:5:65","nodeType":"YulTypedName","src":"50086:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"50096:8:65","nodeType":"YulTypedName","src":"50096:8:65","type":""}],"src":"50042:117:65"},{"body":{"nativeSrc":"50216:118:65","nodeType":"YulBlock","src":"50216:118:65","statements":[{"nativeSrc":"50226:68:65","nodeType":"YulVariableDeclaration","src":"50226:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"50275:1:65","nodeType":"YulLiteral","src":"50275:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"50278:5:65","nodeType":"YulIdentifier","src":"50278:5:65"}],"functionName":{"name":"mul","nativeSrc":"50271:3:65","nodeType":"YulIdentifier","src":"50271:3:65"},"nativeSrc":"50271:13:65","nodeType":"YulFunctionCall","src":"50271:13:65"},{"arguments":[{"kind":"number","nativeSrc":"50290:1:65","nodeType":"YulLiteral","src":"50290:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"50286:3:65","nodeType":"YulIdentifier","src":"50286:3:65"},"nativeSrc":"50286:6:65","nodeType":"YulFunctionCall","src":"50286:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"50242:28:65","nodeType":"YulIdentifier","src":"50242:28:65"},"nativeSrc":"50242:51:65","nodeType":"YulFunctionCall","src":"50242:51:65"}],"functionName":{"name":"not","nativeSrc":"50238:3:65","nodeType":"YulIdentifier","src":"50238:3:65"},"nativeSrc":"50238:56:65","nodeType":"YulFunctionCall","src":"50238:56:65"},"variables":[{"name":"mask","nativeSrc":"50230:4:65","nodeType":"YulTypedName","src":"50230:4:65","type":""}]},{"nativeSrc":"50303:25:65","nodeType":"YulAssignment","src":"50303:25:65","value":{"arguments":[{"name":"data","nativeSrc":"50317:4:65","nodeType":"YulIdentifier","src":"50317:4:65"},{"name":"mask","nativeSrc":"50323:4:65","nodeType":"YulIdentifier","src":"50323:4:65"}],"functionName":{"name":"and","nativeSrc":"50313:3:65","nodeType":"YulIdentifier","src":"50313:3:65"},"nativeSrc":"50313:15:65","nodeType":"YulFunctionCall","src":"50313:15:65"},"variableNames":[{"name":"result","nativeSrc":"50303:6:65","nodeType":"YulIdentifier","src":"50303:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"50165:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"50193:4:65","nodeType":"YulTypedName","src":"50193:4:65","type":""},{"name":"bytes","nativeSrc":"50199:5:65","nodeType":"YulTypedName","src":"50199:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"50209:6:65","nodeType":"YulTypedName","src":"50209:6:65","type":""}],"src":"50165:169:65"},{"body":{"nativeSrc":"50420:214:65","nodeType":"YulBlock","src":"50420:214:65","statements":[{"nativeSrc":"50553:37:65","nodeType":"YulAssignment","src":"50553:37:65","value":{"arguments":[{"name":"data","nativeSrc":"50580:4:65","nodeType":"YulIdentifier","src":"50580:4:65"},{"name":"len","nativeSrc":"50586:3:65","nodeType":"YulIdentifier","src":"50586:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"50561:18:65","nodeType":"YulIdentifier","src":"50561:18:65"},"nativeSrc":"50561:29:65","nodeType":"YulFunctionCall","src":"50561:29:65"},"variableNames":[{"name":"data","nativeSrc":"50553:4:65","nodeType":"YulIdentifier","src":"50553:4:65"}]},{"nativeSrc":"50599:29:65","nodeType":"YulAssignment","src":"50599:29:65","value":{"arguments":[{"name":"data","nativeSrc":"50610:4:65","nodeType":"YulIdentifier","src":"50610:4:65"},{"arguments":[{"kind":"number","nativeSrc":"50620:1:65","nodeType":"YulLiteral","src":"50620:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"50623:3:65","nodeType":"YulIdentifier","src":"50623:3:65"}],"functionName":{"name":"mul","nativeSrc":"50616:3:65","nodeType":"YulIdentifier","src":"50616:3:65"},"nativeSrc":"50616:11:65","nodeType":"YulFunctionCall","src":"50616:11:65"}],"functionName":{"name":"or","nativeSrc":"50607:2:65","nodeType":"YulIdentifier","src":"50607:2:65"},"nativeSrc":"50607:21:65","nodeType":"YulFunctionCall","src":"50607:21:65"},"variableNames":[{"name":"used","nativeSrc":"50599:4:65","nodeType":"YulIdentifier","src":"50599:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"50339:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"50401:4:65","nodeType":"YulTypedName","src":"50401:4:65","type":""},{"name":"len","nativeSrc":"50407:3:65","nodeType":"YulTypedName","src":"50407:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"50415:4:65","nodeType":"YulTypedName","src":"50415:4:65","type":""}],"src":"50339:295:65"},{"body":{"nativeSrc":"50729:1300:65","nodeType":"YulBlock","src":"50729:1300:65","statements":[{"nativeSrc":"50740:50:65","nodeType":"YulVariableDeclaration","src":"50740:50:65","value":{"arguments":[{"name":"src","nativeSrc":"50786:3:65","nodeType":"YulIdentifier","src":"50786:3:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"50754:31:65","nodeType":"YulIdentifier","src":"50754:31:65"},"nativeSrc":"50754:36:65","nodeType":"YulFunctionCall","src":"50754:36:65"},"variables":[{"name":"newLen","nativeSrc":"50744:6:65","nodeType":"YulTypedName","src":"50744:6:65","type":""}]},{"body":{"nativeSrc":"50875:22:65","nodeType":"YulBlock","src":"50875:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"50877:16:65","nodeType":"YulIdentifier","src":"50877:16:65"},"nativeSrc":"50877:18:65","nodeType":"YulFunctionCall","src":"50877:18:65"},"nativeSrc":"50877:18:65","nodeType":"YulExpressionStatement","src":"50877:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"50847:6:65","nodeType":"YulIdentifier","src":"50847:6:65"},{"kind":"number","nativeSrc":"50855:18:65","nodeType":"YulLiteral","src":"50855:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"50844:2:65","nodeType":"YulIdentifier","src":"50844:2:65"},"nativeSrc":"50844:30:65","nodeType":"YulFunctionCall","src":"50844:30:65"},"nativeSrc":"50841:56:65","nodeType":"YulIf","src":"50841:56:65"},{"nativeSrc":"50907:52:65","nodeType":"YulVariableDeclaration","src":"50907:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"50953:4:65","nodeType":"YulIdentifier","src":"50953:4:65"}],"functionName":{"name":"sload","nativeSrc":"50947:5:65","nodeType":"YulIdentifier","src":"50947:5:65"},"nativeSrc":"50947:11:65","nodeType":"YulFunctionCall","src":"50947:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"50921:25:65","nodeType":"YulIdentifier","src":"50921:25:65"},"nativeSrc":"50921:38:65","nodeType":"YulFunctionCall","src":"50921:38:65"},"variables":[{"name":"oldLen","nativeSrc":"50911:6:65","nodeType":"YulTypedName","src":"50911:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"51051:4:65","nodeType":"YulIdentifier","src":"51051:4:65"},{"name":"oldLen","nativeSrc":"51057:6:65","nodeType":"YulIdentifier","src":"51057:6:65"},{"name":"newLen","nativeSrc":"51065:6:65","nodeType":"YulIdentifier","src":"51065:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"51006:44:65","nodeType":"YulIdentifier","src":"51006:44:65"},"nativeSrc":"51006:66:65","nodeType":"YulFunctionCall","src":"51006:66:65"},"nativeSrc":"51006:66:65","nodeType":"YulExpressionStatement","src":"51006:66:65"},{"nativeSrc":"51082:18:65","nodeType":"YulVariableDeclaration","src":"51082:18:65","value":{"kind":"number","nativeSrc":"51099:1:65","nodeType":"YulLiteral","src":"51099:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"51086:9:65","nodeType":"YulTypedName","src":"51086:9:65","type":""}]},{"nativeSrc":"51110:17:65","nodeType":"YulAssignment","src":"51110:17:65","value":{"kind":"number","nativeSrc":"51123:4:65","nodeType":"YulLiteral","src":"51123:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"51110:9:65","nodeType":"YulIdentifier","src":"51110:9:65"}]},{"cases":[{"body":{"nativeSrc":"51174:610:65","nodeType":"YulBlock","src":"51174:610:65","statements":[{"nativeSrc":"51188:37:65","nodeType":"YulVariableDeclaration","src":"51188:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"51207:6:65","nodeType":"YulIdentifier","src":"51207:6:65"},{"arguments":[{"kind":"number","nativeSrc":"51219:4:65","nodeType":"YulLiteral","src":"51219:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"51215:3:65","nodeType":"YulIdentifier","src":"51215:3:65"},"nativeSrc":"51215:9:65","nodeType":"YulFunctionCall","src":"51215:9:65"}],"functionName":{"name":"and","nativeSrc":"51203:3:65","nodeType":"YulIdentifier","src":"51203:3:65"},"nativeSrc":"51203:22:65","nodeType":"YulFunctionCall","src":"51203:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"51192:7:65","nodeType":"YulTypedName","src":"51192:7:65","type":""}]},{"nativeSrc":"51239:50:65","nodeType":"YulVariableDeclaration","src":"51239:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"51284:4:65","nodeType":"YulIdentifier","src":"51284:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"51253:30:65","nodeType":"YulIdentifier","src":"51253:30:65"},"nativeSrc":"51253:36:65","nodeType":"YulFunctionCall","src":"51253:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"51243:6:65","nodeType":"YulTypedName","src":"51243:6:65","type":""}]},{"nativeSrc":"51302:10:65","nodeType":"YulVariableDeclaration","src":"51302:10:65","value":{"kind":"number","nativeSrc":"51311:1:65","nodeType":"YulLiteral","src":"51311:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"51306:1:65","nodeType":"YulTypedName","src":"51306:1:65","type":""}]},{"body":{"nativeSrc":"51370:163:65","nodeType":"YulBlock","src":"51370:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"51395:6:65","nodeType":"YulIdentifier","src":"51395:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"51413:3:65","nodeType":"YulIdentifier","src":"51413:3:65"},{"name":"srcOffset","nativeSrc":"51418:9:65","nodeType":"YulIdentifier","src":"51418:9:65"}],"functionName":{"name":"add","nativeSrc":"51409:3:65","nodeType":"YulIdentifier","src":"51409:3:65"},"nativeSrc":"51409:19:65","nodeType":"YulFunctionCall","src":"51409:19:65"}],"functionName":{"name":"mload","nativeSrc":"51403:5:65","nodeType":"YulIdentifier","src":"51403:5:65"},"nativeSrc":"51403:26:65","nodeType":"YulFunctionCall","src":"51403:26:65"}],"functionName":{"name":"sstore","nativeSrc":"51388:6:65","nodeType":"YulIdentifier","src":"51388:6:65"},"nativeSrc":"51388:42:65","nodeType":"YulFunctionCall","src":"51388:42:65"},"nativeSrc":"51388:42:65","nodeType":"YulExpressionStatement","src":"51388:42:65"},{"nativeSrc":"51447:24:65","nodeType":"YulAssignment","src":"51447:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"51461:6:65","nodeType":"YulIdentifier","src":"51461:6:65"},{"kind":"number","nativeSrc":"51469:1:65","nodeType":"YulLiteral","src":"51469:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"51457:3:65","nodeType":"YulIdentifier","src":"51457:3:65"},"nativeSrc":"51457:14:65","nodeType":"YulFunctionCall","src":"51457:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"51447:6:65","nodeType":"YulIdentifier","src":"51447:6:65"}]},{"nativeSrc":"51488:31:65","nodeType":"YulAssignment","src":"51488:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"51505:9:65","nodeType":"YulIdentifier","src":"51505:9:65"},{"kind":"number","nativeSrc":"51516:2:65","nodeType":"YulLiteral","src":"51516:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"51501:3:65","nodeType":"YulIdentifier","src":"51501:3:65"},"nativeSrc":"51501:18:65","nodeType":"YulFunctionCall","src":"51501:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"51488:9:65","nodeType":"YulIdentifier","src":"51488:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"51336:1:65","nodeType":"YulIdentifier","src":"51336:1:65"},{"name":"loopEnd","nativeSrc":"51339:7:65","nodeType":"YulIdentifier","src":"51339:7:65"}],"functionName":{"name":"lt","nativeSrc":"51333:2:65","nodeType":"YulIdentifier","src":"51333:2:65"},"nativeSrc":"51333:14:65","nodeType":"YulFunctionCall","src":"51333:14:65"},"nativeSrc":"51325:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"51348:21:65","nodeType":"YulBlock","src":"51348:21:65","statements":[{"nativeSrc":"51350:17:65","nodeType":"YulAssignment","src":"51350:17:65","value":{"arguments":[{"name":"i","nativeSrc":"51359:1:65","nodeType":"YulIdentifier","src":"51359:1:65"},{"kind":"number","nativeSrc":"51362:4:65","nodeType":"YulLiteral","src":"51362:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51355:3:65","nodeType":"YulIdentifier","src":"51355:3:65"},"nativeSrc":"51355:12:65","nodeType":"YulFunctionCall","src":"51355:12:65"},"variableNames":[{"name":"i","nativeSrc":"51350:1:65","nodeType":"YulIdentifier","src":"51350:1:65"}]}]},"pre":{"nativeSrc":"51329:3:65","nodeType":"YulBlock","src":"51329:3:65","statements":[]},"src":"51325:208:65"},{"body":{"nativeSrc":"51569:156:65","nodeType":"YulBlock","src":"51569:156:65","statements":[{"nativeSrc":"51587:43:65","nodeType":"YulVariableDeclaration","src":"51587:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"51614:3:65","nodeType":"YulIdentifier","src":"51614:3:65"},{"name":"srcOffset","nativeSrc":"51619:9:65","nodeType":"YulIdentifier","src":"51619:9:65"}],"functionName":{"name":"add","nativeSrc":"51610:3:65","nodeType":"YulIdentifier","src":"51610:3:65"},"nativeSrc":"51610:19:65","nodeType":"YulFunctionCall","src":"51610:19:65"}],"functionName":{"name":"mload","nativeSrc":"51604:5:65","nodeType":"YulIdentifier","src":"51604:5:65"},"nativeSrc":"51604:26:65","nodeType":"YulFunctionCall","src":"51604:26:65"},"variables":[{"name":"lastValue","nativeSrc":"51591:9:65","nodeType":"YulTypedName","src":"51591:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"51654:6:65","nodeType":"YulIdentifier","src":"51654:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"51681:9:65","nodeType":"YulIdentifier","src":"51681:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"51696:6:65","nodeType":"YulIdentifier","src":"51696:6:65"},{"kind":"number","nativeSrc":"51704:4:65","nodeType":"YulLiteral","src":"51704:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"51692:3:65","nodeType":"YulIdentifier","src":"51692:3:65"},"nativeSrc":"51692:17:65","nodeType":"YulFunctionCall","src":"51692:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"51662:18:65","nodeType":"YulIdentifier","src":"51662:18:65"},"nativeSrc":"51662:48:65","nodeType":"YulFunctionCall","src":"51662:48:65"}],"functionName":{"name":"sstore","nativeSrc":"51647:6:65","nodeType":"YulIdentifier","src":"51647:6:65"},"nativeSrc":"51647:64:65","nodeType":"YulFunctionCall","src":"51647:64:65"},"nativeSrc":"51647:64:65","nodeType":"YulExpressionStatement","src":"51647:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"51552:7:65","nodeType":"YulIdentifier","src":"51552:7:65"},{"name":"newLen","nativeSrc":"51561:6:65","nodeType":"YulIdentifier","src":"51561:6:65"}],"functionName":{"name":"lt","nativeSrc":"51549:2:65","nodeType":"YulIdentifier","src":"51549:2:65"},"nativeSrc":"51549:19:65","nodeType":"YulFunctionCall","src":"51549:19:65"},"nativeSrc":"51546:179:65","nodeType":"YulIf","src":"51546:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"51745:4:65","nodeType":"YulIdentifier","src":"51745:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"51759:6:65","nodeType":"YulIdentifier","src":"51759:6:65"},{"kind":"number","nativeSrc":"51767:1:65","nodeType":"YulLiteral","src":"51767:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"51755:3:65","nodeType":"YulIdentifier","src":"51755:3:65"},"nativeSrc":"51755:14:65","nodeType":"YulFunctionCall","src":"51755:14:65"},{"kind":"number","nativeSrc":"51771:1:65","nodeType":"YulLiteral","src":"51771:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"51751:3:65","nodeType":"YulIdentifier","src":"51751:3:65"},"nativeSrc":"51751:22:65","nodeType":"YulFunctionCall","src":"51751:22:65"}],"functionName":{"name":"sstore","nativeSrc":"51738:6:65","nodeType":"YulIdentifier","src":"51738:6:65"},"nativeSrc":"51738:36:65","nodeType":"YulFunctionCall","src":"51738:36:65"},"nativeSrc":"51738:36:65","nodeType":"YulExpressionStatement","src":"51738:36:65"}]},"nativeSrc":"51167:617:65","nodeType":"YulCase","src":"51167:617:65","value":{"kind":"number","nativeSrc":"51172:1:65","nodeType":"YulLiteral","src":"51172:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"51801:222:65","nodeType":"YulBlock","src":"51801:222:65","statements":[{"nativeSrc":"51815:14:65","nodeType":"YulVariableDeclaration","src":"51815:14:65","value":{"kind":"number","nativeSrc":"51828:1:65","nodeType":"YulLiteral","src":"51828:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"51819:5:65","nodeType":"YulTypedName","src":"51819:5:65","type":""}]},{"body":{"nativeSrc":"51852:67:65","nodeType":"YulBlock","src":"51852:67:65","statements":[{"nativeSrc":"51870:35:65","nodeType":"YulAssignment","src":"51870:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"51889:3:65","nodeType":"YulIdentifier","src":"51889:3:65"},{"name":"srcOffset","nativeSrc":"51894:9:65","nodeType":"YulIdentifier","src":"51894:9:65"}],"functionName":{"name":"add","nativeSrc":"51885:3:65","nodeType":"YulIdentifier","src":"51885:3:65"},"nativeSrc":"51885:19:65","nodeType":"YulFunctionCall","src":"51885:19:65"}],"functionName":{"name":"mload","nativeSrc":"51879:5:65","nodeType":"YulIdentifier","src":"51879:5:65"},"nativeSrc":"51879:26:65","nodeType":"YulFunctionCall","src":"51879:26:65"},"variableNames":[{"name":"value","nativeSrc":"51870:5:65","nodeType":"YulIdentifier","src":"51870:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"51845:6:65","nodeType":"YulIdentifier","src":"51845:6:65"},"nativeSrc":"51842:77:65","nodeType":"YulIf","src":"51842:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"51939:4:65","nodeType":"YulIdentifier","src":"51939:4:65"},{"arguments":[{"name":"value","nativeSrc":"51998:5:65","nodeType":"YulIdentifier","src":"51998:5:65"},{"name":"newLen","nativeSrc":"52005:6:65","nodeType":"YulIdentifier","src":"52005:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"51945:52:65","nodeType":"YulIdentifier","src":"51945:52:65"},"nativeSrc":"51945:67:65","nodeType":"YulFunctionCall","src":"51945:67:65"}],"functionName":{"name":"sstore","nativeSrc":"51932:6:65","nodeType":"YulIdentifier","src":"51932:6:65"},"nativeSrc":"51932:81:65","nodeType":"YulFunctionCall","src":"51932:81:65"},"nativeSrc":"51932:81:65","nodeType":"YulExpressionStatement","src":"51932:81:65"}]},"nativeSrc":"51793:230:65","nodeType":"YulCase","src":"51793:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"51147:6:65","nodeType":"YulIdentifier","src":"51147:6:65"},{"kind":"number","nativeSrc":"51155:2:65","nodeType":"YulLiteral","src":"51155:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"51144:2:65","nodeType":"YulIdentifier","src":"51144:2:65"},"nativeSrc":"51144:14:65","nodeType":"YulFunctionCall","src":"51144:14:65"},"nativeSrc":"51137:886:65","nodeType":"YulSwitch","src":"51137:886:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"50639:1390:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"50718:4:65","nodeType":"YulTypedName","src":"50718:4:65","type":""},{"name":"src","nativeSrc":"50724:3:65","nodeType":"YulTypedName","src":"50724:3:65","type":""}],"src":"50639:1390:65"},{"body":{"nativeSrc":"52241:446:65","nodeType":"YulBlock","src":"52241:446:65","statements":[{"nativeSrc":"52251:27:65","nodeType":"YulAssignment","src":"52251:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"52263:9:65","nodeType":"YulIdentifier","src":"52263:9:65"},{"kind":"number","nativeSrc":"52274:3:65","nodeType":"YulLiteral","src":"52274:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"52259:3:65","nodeType":"YulIdentifier","src":"52259:3:65"},"nativeSrc":"52259:19:65","nodeType":"YulFunctionCall","src":"52259:19:65"},"variableNames":[{"name":"tail","nativeSrc":"52251:4:65","nodeType":"YulIdentifier","src":"52251:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"52330:6:65","nodeType":"YulIdentifier","src":"52330:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"52343:9:65","nodeType":"YulIdentifier","src":"52343:9:65"},{"kind":"number","nativeSrc":"52354:1:65","nodeType":"YulLiteral","src":"52354:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52339:3:65","nodeType":"YulIdentifier","src":"52339:3:65"},"nativeSrc":"52339:17:65","nodeType":"YulFunctionCall","src":"52339:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"52288:41:65","nodeType":"YulIdentifier","src":"52288:41:65"},"nativeSrc":"52288:69:65","nodeType":"YulFunctionCall","src":"52288:69:65"},"nativeSrc":"52288:69:65","nodeType":"YulExpressionStatement","src":"52288:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"52409:6:65","nodeType":"YulIdentifier","src":"52409:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"52422:9:65","nodeType":"YulIdentifier","src":"52422:9:65"},{"kind":"number","nativeSrc":"52433:2:65","nodeType":"YulLiteral","src":"52433:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52418:3:65","nodeType":"YulIdentifier","src":"52418:3:65"},"nativeSrc":"52418:18:65","nodeType":"YulFunctionCall","src":"52418:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"52367:41:65","nodeType":"YulIdentifier","src":"52367:41:65"},"nativeSrc":"52367:70:65","nodeType":"YulFunctionCall","src":"52367:70:65"},"nativeSrc":"52367:70:65","nodeType":"YulExpressionStatement","src":"52367:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"52491:6:65","nodeType":"YulIdentifier","src":"52491:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"52504:9:65","nodeType":"YulIdentifier","src":"52504:9:65"},{"kind":"number","nativeSrc":"52515:2:65","nodeType":"YulLiteral","src":"52515:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"52500:3:65","nodeType":"YulIdentifier","src":"52500:3:65"},"nativeSrc":"52500:18:65","nodeType":"YulFunctionCall","src":"52500:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"52447:43:65","nodeType":"YulIdentifier","src":"52447:43:65"},"nativeSrc":"52447:72:65","nodeType":"YulFunctionCall","src":"52447:72:65"},"nativeSrc":"52447:72:65","nodeType":"YulExpressionStatement","src":"52447:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52540:9:65","nodeType":"YulIdentifier","src":"52540:9:65"},{"kind":"number","nativeSrc":"52551:2:65","nodeType":"YulLiteral","src":"52551:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"52536:3:65","nodeType":"YulIdentifier","src":"52536:3:65"},"nativeSrc":"52536:18:65","nodeType":"YulFunctionCall","src":"52536:18:65"},{"arguments":[{"name":"tail","nativeSrc":"52560:4:65","nodeType":"YulIdentifier","src":"52560:4:65"},{"name":"headStart","nativeSrc":"52566:9:65","nodeType":"YulIdentifier","src":"52566:9:65"}],"functionName":{"name":"sub","nativeSrc":"52556:3:65","nodeType":"YulIdentifier","src":"52556:3:65"},"nativeSrc":"52556:20:65","nodeType":"YulFunctionCall","src":"52556:20:65"}],"functionName":{"name":"mstore","nativeSrc":"52529:6:65","nodeType":"YulIdentifier","src":"52529:6:65"},"nativeSrc":"52529:48:65","nodeType":"YulFunctionCall","src":"52529:48:65"},"nativeSrc":"52529:48:65","nodeType":"YulExpressionStatement","src":"52529:48:65"},{"nativeSrc":"52586:94:65","nodeType":"YulAssignment","src":"52586:94:65","value":{"arguments":[{"name":"value3","nativeSrc":"52658:6:65","nodeType":"YulIdentifier","src":"52658:6:65"},{"name":"value4","nativeSrc":"52666:6:65","nodeType":"YulIdentifier","src":"52666:6:65"},{"name":"tail","nativeSrc":"52675:4:65","nodeType":"YulIdentifier","src":"52675:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"52594:63:65","nodeType":"YulIdentifier","src":"52594:63:65"},"nativeSrc":"52594:86:65","nodeType":"YulFunctionCall","src":"52594:86:65"},"variableNames":[{"name":"tail","nativeSrc":"52586:4:65","nodeType":"YulIdentifier","src":"52586:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"52035:652:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"52181:9:65","nodeType":"YulTypedName","src":"52181:9:65","type":""},{"name":"value4","nativeSrc":"52193:6:65","nodeType":"YulTypedName","src":"52193:6:65","type":""},{"name":"value3","nativeSrc":"52201:6:65","nodeType":"YulTypedName","src":"52201:6:65","type":""},{"name":"value2","nativeSrc":"52209:6:65","nodeType":"YulTypedName","src":"52209:6:65","type":""},{"name":"value1","nativeSrc":"52217:6:65","nodeType":"YulTypedName","src":"52217:6:65","type":""},{"name":"value0","nativeSrc":"52225:6:65","nodeType":"YulTypedName","src":"52225:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"52236:4:65","nodeType":"YulTypedName","src":"52236:4:65","type":""}],"src":"52035:652:65"},{"body":{"nativeSrc":"52799:127:65","nodeType":"YulBlock","src":"52799:127:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"52821:6:65","nodeType":"YulIdentifier","src":"52821:6:65"},{"kind":"number","nativeSrc":"52829:1:65","nodeType":"YulLiteral","src":"52829:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52817:3:65","nodeType":"YulIdentifier","src":"52817:3:65"},"nativeSrc":"52817:14:65","nodeType":"YulFunctionCall","src":"52817:14:65"},{"hexValue":"73696e676c652072656365697665207472616e73616374696f6e206c696d6974","kind":"string","nativeSrc":"52833:34:65","nodeType":"YulLiteral","src":"52833:34:65","type":"","value":"single receive transaction limit"}],"functionName":{"name":"mstore","nativeSrc":"52810:6:65","nodeType":"YulIdentifier","src":"52810:6:65"},"nativeSrc":"52810:58:65","nodeType":"YulFunctionCall","src":"52810:58:65"},"nativeSrc":"52810:58:65","nodeType":"YulExpressionStatement","src":"52810:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"52889:6:65","nodeType":"YulIdentifier","src":"52889:6:65"},{"kind":"number","nativeSrc":"52897:2:65","nodeType":"YulLiteral","src":"52897:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52885:3:65","nodeType":"YulIdentifier","src":"52885:3:65"},"nativeSrc":"52885:15:65","nodeType":"YulFunctionCall","src":"52885:15:65"},{"hexValue":"203e204461696c79206c696d6974","kind":"string","nativeSrc":"52902:16:65","nodeType":"YulLiteral","src":"52902:16:65","type":"","value":" > Daily limit"}],"functionName":{"name":"mstore","nativeSrc":"52878:6:65","nodeType":"YulIdentifier","src":"52878:6:65"},"nativeSrc":"52878:41:65","nodeType":"YulFunctionCall","src":"52878:41:65"},"nativeSrc":"52878:41:65","nodeType":"YulExpressionStatement","src":"52878:41:65"}]},"name":"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","nativeSrc":"52693:233:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"52791:6:65","nodeType":"YulTypedName","src":"52791:6:65","type":""}],"src":"52693:233:65"},{"body":{"nativeSrc":"53078:220:65","nodeType":"YulBlock","src":"53078:220:65","statements":[{"nativeSrc":"53088:74:65","nodeType":"YulAssignment","src":"53088:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"53154:3:65","nodeType":"YulIdentifier","src":"53154:3:65"},{"kind":"number","nativeSrc":"53159:2:65","nodeType":"YulLiteral","src":"53159:2:65","type":"","value":"46"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"53095:58:65","nodeType":"YulIdentifier","src":"53095:58:65"},"nativeSrc":"53095:67:65","nodeType":"YulFunctionCall","src":"53095:67:65"},"variableNames":[{"name":"pos","nativeSrc":"53088:3:65","nodeType":"YulIdentifier","src":"53088:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"53260:3:65","nodeType":"YulIdentifier","src":"53260:3:65"}],"functionName":{"name":"store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc","nativeSrc":"53171:88:65","nodeType":"YulIdentifier","src":"53171:88:65"},"nativeSrc":"53171:93:65","nodeType":"YulFunctionCall","src":"53171:93:65"},"nativeSrc":"53171:93:65","nodeType":"YulExpressionStatement","src":"53171:93:65"},{"nativeSrc":"53273:19:65","nodeType":"YulAssignment","src":"53273:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"53284:3:65","nodeType":"YulIdentifier","src":"53284:3:65"},{"kind":"number","nativeSrc":"53289:2:65","nodeType":"YulLiteral","src":"53289:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"53280:3:65","nodeType":"YulIdentifier","src":"53280:3:65"},"nativeSrc":"53280:12:65","nodeType":"YulFunctionCall","src":"53280:12:65"},"variableNames":[{"name":"end","nativeSrc":"53273:3:65","nodeType":"YulIdentifier","src":"53273:3:65"}]}]},"name":"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack","nativeSrc":"52932:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"53066:3:65","nodeType":"YulTypedName","src":"53066:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"53074:3:65","nodeType":"YulTypedName","src":"53074:3:65","type":""}],"src":"52932:366:65"},{"body":{"nativeSrc":"53475:248:65","nodeType":"YulBlock","src":"53475:248:65","statements":[{"nativeSrc":"53485:26:65","nodeType":"YulAssignment","src":"53485:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"53497:9:65","nodeType":"YulIdentifier","src":"53497:9:65"},{"kind":"number","nativeSrc":"53508:2:65","nodeType":"YulLiteral","src":"53508:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"53493:3:65","nodeType":"YulIdentifier","src":"53493:3:65"},"nativeSrc":"53493:18:65","nodeType":"YulFunctionCall","src":"53493:18:65"},"variableNames":[{"name":"tail","nativeSrc":"53485:4:65","nodeType":"YulIdentifier","src":"53485:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"53532:9:65","nodeType":"YulIdentifier","src":"53532:9:65"},{"kind":"number","nativeSrc":"53543:1:65","nodeType":"YulLiteral","src":"53543:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"53528:3:65","nodeType":"YulIdentifier","src":"53528:3:65"},"nativeSrc":"53528:17:65","nodeType":"YulFunctionCall","src":"53528:17:65"},{"arguments":[{"name":"tail","nativeSrc":"53551:4:65","nodeType":"YulIdentifier","src":"53551:4:65"},{"name":"headStart","nativeSrc":"53557:9:65","nodeType":"YulIdentifier","src":"53557:9:65"}],"functionName":{"name":"sub","nativeSrc":"53547:3:65","nodeType":"YulIdentifier","src":"53547:3:65"},"nativeSrc":"53547:20:65","nodeType":"YulFunctionCall","src":"53547:20:65"}],"functionName":{"name":"mstore","nativeSrc":"53521:6:65","nodeType":"YulIdentifier","src":"53521:6:65"},"nativeSrc":"53521:47:65","nodeType":"YulFunctionCall","src":"53521:47:65"},"nativeSrc":"53521:47:65","nodeType":"YulExpressionStatement","src":"53521:47:65"},{"nativeSrc":"53577:139:65","nodeType":"YulAssignment","src":"53577:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"53711:4:65","nodeType":"YulIdentifier","src":"53711:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack","nativeSrc":"53585:124:65","nodeType":"YulIdentifier","src":"53585:124:65"},"nativeSrc":"53585:131:65","nodeType":"YulFunctionCall","src":"53585:131:65"},"variableNames":[{"name":"tail","nativeSrc":"53577:4:65","nodeType":"YulIdentifier","src":"53577:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"53304:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"53455:9:65","nodeType":"YulTypedName","src":"53455:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"53470:4:65","nodeType":"YulTypedName","src":"53470:4:65","type":""}],"src":"53304:419:65"},{"body":{"nativeSrc":"53879:284:65","nodeType":"YulBlock","src":"53879:284:65","statements":[{"nativeSrc":"53889:26:65","nodeType":"YulAssignment","src":"53889:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"53901:9:65","nodeType":"YulIdentifier","src":"53901:9:65"},{"kind":"number","nativeSrc":"53912:2:65","nodeType":"YulLiteral","src":"53912:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"53897:3:65","nodeType":"YulIdentifier","src":"53897:3:65"},"nativeSrc":"53897:18:65","nodeType":"YulFunctionCall","src":"53897:18:65"},"variableNames":[{"name":"tail","nativeSrc":"53889:4:65","nodeType":"YulIdentifier","src":"53889:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"53967:6:65","nodeType":"YulIdentifier","src":"53967:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"53980:9:65","nodeType":"YulIdentifier","src":"53980:9:65"},{"kind":"number","nativeSrc":"53991:1:65","nodeType":"YulLiteral","src":"53991:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"53976:3:65","nodeType":"YulIdentifier","src":"53976:3:65"},"nativeSrc":"53976:17:65","nodeType":"YulFunctionCall","src":"53976:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"53925:41:65","nodeType":"YulIdentifier","src":"53925:41:65"},"nativeSrc":"53925:69:65","nodeType":"YulFunctionCall","src":"53925:69:65"},"nativeSrc":"53925:69:65","nodeType":"YulExpressionStatement","src":"53925:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"54046:6:65","nodeType":"YulIdentifier","src":"54046:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"54059:9:65","nodeType":"YulIdentifier","src":"54059:9:65"},{"kind":"number","nativeSrc":"54070:2:65","nodeType":"YulLiteral","src":"54070:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54055:3:65","nodeType":"YulIdentifier","src":"54055:3:65"},"nativeSrc":"54055:18:65","nodeType":"YulFunctionCall","src":"54055:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"54004:41:65","nodeType":"YulIdentifier","src":"54004:41:65"},"nativeSrc":"54004:70:65","nodeType":"YulFunctionCall","src":"54004:70:65"},"nativeSrc":"54004:70:65","nodeType":"YulExpressionStatement","src":"54004:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"54128:6:65","nodeType":"YulIdentifier","src":"54128:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"54141:9:65","nodeType":"YulIdentifier","src":"54141:9:65"},{"kind":"number","nativeSrc":"54152:2:65","nodeType":"YulLiteral","src":"54152:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"54137:3:65","nodeType":"YulIdentifier","src":"54137:3:65"},"nativeSrc":"54137:18:65","nodeType":"YulFunctionCall","src":"54137:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"54084:43:65","nodeType":"YulIdentifier","src":"54084:43:65"},"nativeSrc":"54084:72:65","nodeType":"YulFunctionCall","src":"54084:72:65"},"nativeSrc":"54084:72:65","nodeType":"YulExpressionStatement","src":"54084:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed","nativeSrc":"53729:434:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"53835:9:65","nodeType":"YulTypedName","src":"53835:9:65","type":""},{"name":"value2","nativeSrc":"53847:6:65","nodeType":"YulTypedName","src":"53847:6:65","type":""},{"name":"value1","nativeSrc":"53855:6:65","nodeType":"YulTypedName","src":"53855:6:65","type":""},{"name":"value0","nativeSrc":"53863:6:65","nodeType":"YulTypedName","src":"53863:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"53874:4:65","nodeType":"YulTypedName","src":"53874:4:65","type":""}],"src":"53729:434:65"},{"body":{"nativeSrc":"54275:75:65","nodeType":"YulBlock","src":"54275:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"54297:6:65","nodeType":"YulIdentifier","src":"54297:6:65"},{"kind":"number","nativeSrc":"54305:1:65","nodeType":"YulLiteral","src":"54305:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"54293:3:65","nodeType":"YulIdentifier","src":"54293:3:65"},"nativeSrc":"54293:14:65","nodeType":"YulFunctionCall","src":"54293:14:65"},{"hexValue":"4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265","kind":"string","nativeSrc":"54309:33:65","nodeType":"YulLiteral","src":"54309:33:65","type":"","value":"OFTCore: caller must be OFTCore"}],"functionName":{"name":"mstore","nativeSrc":"54286:6:65","nodeType":"YulIdentifier","src":"54286:6:65"},"nativeSrc":"54286:57:65","nodeType":"YulFunctionCall","src":"54286:57:65"},"nativeSrc":"54286:57:65","nodeType":"YulExpressionStatement","src":"54286:57:65"}]},"name":"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","nativeSrc":"54169:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"54267:6:65","nodeType":"YulTypedName","src":"54267:6:65","type":""}],"src":"54169:181:65"},{"body":{"nativeSrc":"54502:220:65","nodeType":"YulBlock","src":"54502:220:65","statements":[{"nativeSrc":"54512:74:65","nodeType":"YulAssignment","src":"54512:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"54578:3:65","nodeType":"YulIdentifier","src":"54578:3:65"},{"kind":"number","nativeSrc":"54583:2:65","nodeType":"YulLiteral","src":"54583:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"54519:58:65","nodeType":"YulIdentifier","src":"54519:58:65"},"nativeSrc":"54519:67:65","nodeType":"YulFunctionCall","src":"54519:67:65"},"variableNames":[{"name":"pos","nativeSrc":"54512:3:65","nodeType":"YulIdentifier","src":"54512:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"54684:3:65","nodeType":"YulIdentifier","src":"54684:3:65"}],"functionName":{"name":"store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4","nativeSrc":"54595:88:65","nodeType":"YulIdentifier","src":"54595:88:65"},"nativeSrc":"54595:93:65","nodeType":"YulFunctionCall","src":"54595:93:65"},"nativeSrc":"54595:93:65","nodeType":"YulExpressionStatement","src":"54595:93:65"},{"nativeSrc":"54697:19:65","nodeType":"YulAssignment","src":"54697:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"54708:3:65","nodeType":"YulIdentifier","src":"54708:3:65"},{"kind":"number","nativeSrc":"54713:2:65","nodeType":"YulLiteral","src":"54713:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54704:3:65","nodeType":"YulIdentifier","src":"54704:3:65"},"nativeSrc":"54704:12:65","nodeType":"YulFunctionCall","src":"54704:12:65"},"variableNames":[{"name":"end","nativeSrc":"54697:3:65","nodeType":"YulIdentifier","src":"54697:3:65"}]}]},"name":"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack","nativeSrc":"54356:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"54490:3:65","nodeType":"YulTypedName","src":"54490:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"54498:3:65","nodeType":"YulTypedName","src":"54498:3:65","type":""}],"src":"54356:366:65"},{"body":{"nativeSrc":"54899:248:65","nodeType":"YulBlock","src":"54899:248:65","statements":[{"nativeSrc":"54909:26:65","nodeType":"YulAssignment","src":"54909:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"54921:9:65","nodeType":"YulIdentifier","src":"54921:9:65"},{"kind":"number","nativeSrc":"54932:2:65","nodeType":"YulLiteral","src":"54932:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54917:3:65","nodeType":"YulIdentifier","src":"54917:3:65"},"nativeSrc":"54917:18:65","nodeType":"YulFunctionCall","src":"54917:18:65"},"variableNames":[{"name":"tail","nativeSrc":"54909:4:65","nodeType":"YulIdentifier","src":"54909:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"54956:9:65","nodeType":"YulIdentifier","src":"54956:9:65"},{"kind":"number","nativeSrc":"54967:1:65","nodeType":"YulLiteral","src":"54967:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"54952:3:65","nodeType":"YulIdentifier","src":"54952:3:65"},"nativeSrc":"54952:17:65","nodeType":"YulFunctionCall","src":"54952:17:65"},{"arguments":[{"name":"tail","nativeSrc":"54975:4:65","nodeType":"YulIdentifier","src":"54975:4:65"},{"name":"headStart","nativeSrc":"54981:9:65","nodeType":"YulIdentifier","src":"54981:9:65"}],"functionName":{"name":"sub","nativeSrc":"54971:3:65","nodeType":"YulIdentifier","src":"54971:3:65"},"nativeSrc":"54971:20:65","nodeType":"YulFunctionCall","src":"54971:20:65"}],"functionName":{"name":"mstore","nativeSrc":"54945:6:65","nodeType":"YulIdentifier","src":"54945:6:65"},"nativeSrc":"54945:47:65","nodeType":"YulFunctionCall","src":"54945:47:65"},"nativeSrc":"54945:47:65","nodeType":"YulExpressionStatement","src":"54945:47:65"},{"nativeSrc":"55001:139:65","nodeType":"YulAssignment","src":"55001:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"55135:4:65","nodeType":"YulIdentifier","src":"55135:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack","nativeSrc":"55009:124:65","nodeType":"YulIdentifier","src":"55009:124:65"},"nativeSrc":"55009:131:65","nodeType":"YulFunctionCall","src":"55009:131:65"},"variableNames":[{"name":"tail","nativeSrc":"55001:4:65","nodeType":"YulIdentifier","src":"55001:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"54728:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"54879:9:65","nodeType":"YulTypedName","src":"54879:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"54894:4:65","nodeType":"YulTypedName","src":"54894:4:65","type":""}],"src":"54728:419:65"},{"body":{"nativeSrc":"55443:691:65","nodeType":"YulBlock","src":"55443:691:65","statements":[{"nativeSrc":"55453:27:65","nodeType":"YulAssignment","src":"55453:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"55465:9:65","nodeType":"YulIdentifier","src":"55465:9:65"},{"kind":"number","nativeSrc":"55476:3:65","nodeType":"YulLiteral","src":"55476:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"55461:3:65","nodeType":"YulIdentifier","src":"55461:3:65"},"nativeSrc":"55461:19:65","nodeType":"YulFunctionCall","src":"55461:19:65"},"variableNames":[{"name":"tail","nativeSrc":"55453:4:65","nodeType":"YulIdentifier","src":"55453:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"55532:6:65","nodeType":"YulIdentifier","src":"55532:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"55545:9:65","nodeType":"YulIdentifier","src":"55545:9:65"},{"kind":"number","nativeSrc":"55556:1:65","nodeType":"YulLiteral","src":"55556:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"55541:3:65","nodeType":"YulIdentifier","src":"55541:3:65"},"nativeSrc":"55541:17:65","nodeType":"YulFunctionCall","src":"55541:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"55490:41:65","nodeType":"YulIdentifier","src":"55490:41:65"},"nativeSrc":"55490:69:65","nodeType":"YulFunctionCall","src":"55490:69:65"},"nativeSrc":"55490:69:65","nodeType":"YulExpressionStatement","src":"55490:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"55580:9:65","nodeType":"YulIdentifier","src":"55580:9:65"},{"kind":"number","nativeSrc":"55591:2:65","nodeType":"YulLiteral","src":"55591:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"55576:3:65","nodeType":"YulIdentifier","src":"55576:3:65"},"nativeSrc":"55576:18:65","nodeType":"YulFunctionCall","src":"55576:18:65"},{"arguments":[{"name":"tail","nativeSrc":"55600:4:65","nodeType":"YulIdentifier","src":"55600:4:65"},{"name":"headStart","nativeSrc":"55606:9:65","nodeType":"YulIdentifier","src":"55606:9:65"}],"functionName":{"name":"sub","nativeSrc":"55596:3:65","nodeType":"YulIdentifier","src":"55596:3:65"},"nativeSrc":"55596:20:65","nodeType":"YulFunctionCall","src":"55596:20:65"}],"functionName":{"name":"mstore","nativeSrc":"55569:6:65","nodeType":"YulIdentifier","src":"55569:6:65"},"nativeSrc":"55569:48:65","nodeType":"YulFunctionCall","src":"55569:48:65"},"nativeSrc":"55569:48:65","nodeType":"YulExpressionStatement","src":"55569:48:65"},{"nativeSrc":"55626:94:65","nodeType":"YulAssignment","src":"55626:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"55698:6:65","nodeType":"YulIdentifier","src":"55698:6:65"},{"name":"value2","nativeSrc":"55706:6:65","nodeType":"YulIdentifier","src":"55706:6:65"},{"name":"tail","nativeSrc":"55715:4:65","nodeType":"YulIdentifier","src":"55715:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"55634:63:65","nodeType":"YulIdentifier","src":"55634:63:65"},"nativeSrc":"55634:86:65","nodeType":"YulFunctionCall","src":"55634:86:65"},"variableNames":[{"name":"tail","nativeSrc":"55626:4:65","nodeType":"YulIdentifier","src":"55626:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"55772:6:65","nodeType":"YulIdentifier","src":"55772:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"55785:9:65","nodeType":"YulIdentifier","src":"55785:9:65"},{"kind":"number","nativeSrc":"55796:2:65","nodeType":"YulLiteral","src":"55796:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"55781:3:65","nodeType":"YulIdentifier","src":"55781:3:65"},"nativeSrc":"55781:18:65","nodeType":"YulFunctionCall","src":"55781:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"55730:41:65","nodeType":"YulIdentifier","src":"55730:41:65"},"nativeSrc":"55730:70:65","nodeType":"YulFunctionCall","src":"55730:70:65"},"nativeSrc":"55730:70:65","nodeType":"YulExpressionStatement","src":"55730:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"55854:6:65","nodeType":"YulIdentifier","src":"55854:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"55867:9:65","nodeType":"YulIdentifier","src":"55867:9:65"},{"kind":"number","nativeSrc":"55878:2:65","nodeType":"YulLiteral","src":"55878:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"55863:3:65","nodeType":"YulIdentifier","src":"55863:3:65"},"nativeSrc":"55863:18:65","nodeType":"YulFunctionCall","src":"55863:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"55810:43:65","nodeType":"YulIdentifier","src":"55810:43:65"},"nativeSrc":"55810:72:65","nodeType":"YulFunctionCall","src":"55810:72:65"},"nativeSrc":"55810:72:65","nodeType":"YulExpressionStatement","src":"55810:72:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"55936:6:65","nodeType":"YulIdentifier","src":"55936:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"55949:9:65","nodeType":"YulIdentifier","src":"55949:9:65"},{"kind":"number","nativeSrc":"55960:3:65","nodeType":"YulLiteral","src":"55960:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"55945:3:65","nodeType":"YulIdentifier","src":"55945:3:65"},"nativeSrc":"55945:19:65","nodeType":"YulFunctionCall","src":"55945:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"55892:43:65","nodeType":"YulIdentifier","src":"55892:43:65"},"nativeSrc":"55892:73:65","nodeType":"YulFunctionCall","src":"55892:73:65"},"nativeSrc":"55892:73:65","nodeType":"YulExpressionStatement","src":"55892:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"55986:9:65","nodeType":"YulIdentifier","src":"55986:9:65"},{"kind":"number","nativeSrc":"55997:3:65","nodeType":"YulLiteral","src":"55997:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"55982:3:65","nodeType":"YulIdentifier","src":"55982:3:65"},"nativeSrc":"55982:19:65","nodeType":"YulFunctionCall","src":"55982:19:65"},{"arguments":[{"name":"tail","nativeSrc":"56007:4:65","nodeType":"YulIdentifier","src":"56007:4:65"},{"name":"headStart","nativeSrc":"56013:9:65","nodeType":"YulIdentifier","src":"56013:9:65"}],"functionName":{"name":"sub","nativeSrc":"56003:3:65","nodeType":"YulIdentifier","src":"56003:3:65"},"nativeSrc":"56003:20:65","nodeType":"YulFunctionCall","src":"56003:20:65"}],"functionName":{"name":"mstore","nativeSrc":"55975:6:65","nodeType":"YulIdentifier","src":"55975:6:65"},"nativeSrc":"55975:49:65","nodeType":"YulFunctionCall","src":"55975:49:65"},"nativeSrc":"55975:49:65","nodeType":"YulExpressionStatement","src":"55975:49:65"},{"nativeSrc":"56033:94:65","nodeType":"YulAssignment","src":"56033:94:65","value":{"arguments":[{"name":"value6","nativeSrc":"56105:6:65","nodeType":"YulIdentifier","src":"56105:6:65"},{"name":"value7","nativeSrc":"56113:6:65","nodeType":"YulIdentifier","src":"56113:6:65"},{"name":"tail","nativeSrc":"56122:4:65","nodeType":"YulIdentifier","src":"56122:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"56041:63:65","nodeType":"YulIdentifier","src":"56041:63:65"},"nativeSrc":"56041:86:65","nodeType":"YulFunctionCall","src":"56041:86:65"},"variableNames":[{"name":"tail","nativeSrc":"56033:4:65","nodeType":"YulIdentifier","src":"56033:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"55153:981:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"55359:9:65","nodeType":"YulTypedName","src":"55359:9:65","type":""},{"name":"value7","nativeSrc":"55371:6:65","nodeType":"YulTypedName","src":"55371:6:65","type":""},{"name":"value6","nativeSrc":"55379:6:65","nodeType":"YulTypedName","src":"55379:6:65","type":""},{"name":"value5","nativeSrc":"55387:6:65","nodeType":"YulTypedName","src":"55387:6:65","type":""},{"name":"value4","nativeSrc":"55395:6:65","nodeType":"YulTypedName","src":"55395:6:65","type":""},{"name":"value3","nativeSrc":"55403:6:65","nodeType":"YulTypedName","src":"55403:6:65","type":""},{"name":"value2","nativeSrc":"55411:6:65","nodeType":"YulTypedName","src":"55411:6:65","type":""},{"name":"value1","nativeSrc":"55419:6:65","nodeType":"YulTypedName","src":"55419:6:65","type":""},{"name":"value0","nativeSrc":"55427:6:65","nodeType":"YulTypedName","src":"55427:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"55438:4:65","nodeType":"YulTypedName","src":"55438:4:65","type":""}],"src":"55153:981:65"},{"body":{"nativeSrc":"56205:31:65","nodeType":"YulBlock","src":"56205:31:65","statements":[{"nativeSrc":"56216:13:65","nodeType":"YulAssignment","src":"56216:13:65","value":{"name":"len","nativeSrc":"56226:3:65","nodeType":"YulIdentifier","src":"56226:3:65"},"variableNames":[{"name":"length","nativeSrc":"56216:6:65","nodeType":"YulIdentifier","src":"56216:6:65"}]}]},"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"56140:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"56183:5:65","nodeType":"YulTypedName","src":"56183:5:65","type":""},{"name":"len","nativeSrc":"56190:3:65","nodeType":"YulTypedName","src":"56190:3:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"56198:6:65","nodeType":"YulTypedName","src":"56198:6:65","type":""}],"src":"56140:96:65"},{"body":{"nativeSrc":"56339:1301:65","nodeType":"YulBlock","src":"56339:1301:65","statements":[{"nativeSrc":"56350:57:65","nodeType":"YulVariableDeclaration","src":"56350:57:65","value":{"arguments":[{"name":"src","nativeSrc":"56398:3:65","nodeType":"YulIdentifier","src":"56398:3:65"},{"name":"len","nativeSrc":"56403:3:65","nodeType":"YulIdentifier","src":"56403:3:65"}],"functionName":{"name":"array_length_t_bytes_calldata_ptr","nativeSrc":"56364:33:65","nodeType":"YulIdentifier","src":"56364:33:65"},"nativeSrc":"56364:43:65","nodeType":"YulFunctionCall","src":"56364:43:65"},"variables":[{"name":"newLen","nativeSrc":"56354:6:65","nodeType":"YulTypedName","src":"56354:6:65","type":""}]},{"body":{"nativeSrc":"56492:22:65","nodeType":"YulBlock","src":"56492:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"56494:16:65","nodeType":"YulIdentifier","src":"56494:16:65"},"nativeSrc":"56494:18:65","nodeType":"YulFunctionCall","src":"56494:18:65"},"nativeSrc":"56494:18:65","nodeType":"YulExpressionStatement","src":"56494:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"56464:6:65","nodeType":"YulIdentifier","src":"56464:6:65"},{"kind":"number","nativeSrc":"56472:18:65","nodeType":"YulLiteral","src":"56472:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"56461:2:65","nodeType":"YulIdentifier","src":"56461:2:65"},"nativeSrc":"56461:30:65","nodeType":"YulFunctionCall","src":"56461:30:65"},"nativeSrc":"56458:56:65","nodeType":"YulIf","src":"56458:56:65"},{"nativeSrc":"56524:52:65","nodeType":"YulVariableDeclaration","src":"56524:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"56570:4:65","nodeType":"YulIdentifier","src":"56570:4:65"}],"functionName":{"name":"sload","nativeSrc":"56564:5:65","nodeType":"YulIdentifier","src":"56564:5:65"},"nativeSrc":"56564:11:65","nodeType":"YulFunctionCall","src":"56564:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"56538:25:65","nodeType":"YulIdentifier","src":"56538:25:65"},"nativeSrc":"56538:38:65","nodeType":"YulFunctionCall","src":"56538:38:65"},"variables":[{"name":"oldLen","nativeSrc":"56528:6:65","nodeType":"YulTypedName","src":"56528:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"56668:4:65","nodeType":"YulIdentifier","src":"56668:4:65"},{"name":"oldLen","nativeSrc":"56674:6:65","nodeType":"YulIdentifier","src":"56674:6:65"},{"name":"newLen","nativeSrc":"56682:6:65","nodeType":"YulIdentifier","src":"56682:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"56623:44:65","nodeType":"YulIdentifier","src":"56623:44:65"},"nativeSrc":"56623:66:65","nodeType":"YulFunctionCall","src":"56623:66:65"},"nativeSrc":"56623:66:65","nodeType":"YulExpressionStatement","src":"56623:66:65"},{"nativeSrc":"56699:18:65","nodeType":"YulVariableDeclaration","src":"56699:18:65","value":{"kind":"number","nativeSrc":"56716:1:65","nodeType":"YulLiteral","src":"56716:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"56703:9:65","nodeType":"YulTypedName","src":"56703:9:65","type":""}]},{"cases":[{"body":{"nativeSrc":"56764:624:65","nodeType":"YulBlock","src":"56764:624:65","statements":[{"nativeSrc":"56778:37:65","nodeType":"YulVariableDeclaration","src":"56778:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"56797:6:65","nodeType":"YulIdentifier","src":"56797:6:65"},{"arguments":[{"kind":"number","nativeSrc":"56809:4:65","nodeType":"YulLiteral","src":"56809:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"56805:3:65","nodeType":"YulIdentifier","src":"56805:3:65"},"nativeSrc":"56805:9:65","nodeType":"YulFunctionCall","src":"56805:9:65"}],"functionName":{"name":"and","nativeSrc":"56793:3:65","nodeType":"YulIdentifier","src":"56793:3:65"},"nativeSrc":"56793:22:65","nodeType":"YulFunctionCall","src":"56793:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"56782:7:65","nodeType":"YulTypedName","src":"56782:7:65","type":""}]},{"nativeSrc":"56829:50:65","nodeType":"YulVariableDeclaration","src":"56829:50:65","value":{"arguments":[{"name":"slot","nativeSrc":"56874:4:65","nodeType":"YulIdentifier","src":"56874:4:65"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"56843:30:65","nodeType":"YulIdentifier","src":"56843:30:65"},"nativeSrc":"56843:36:65","nodeType":"YulFunctionCall","src":"56843:36:65"},"variables":[{"name":"dstPtr","nativeSrc":"56833:6:65","nodeType":"YulTypedName","src":"56833:6:65","type":""}]},{"nativeSrc":"56892:10:65","nodeType":"YulVariableDeclaration","src":"56892:10:65","value":{"kind":"number","nativeSrc":"56901:1:65","nodeType":"YulLiteral","src":"56901:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"56896:1:65","nodeType":"YulTypedName","src":"56896:1:65","type":""}]},{"body":{"nativeSrc":"56960:170:65","nodeType":"YulBlock","src":"56960:170:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"56985:6:65","nodeType":"YulIdentifier","src":"56985:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"57010:3:65","nodeType":"YulIdentifier","src":"57010:3:65"},{"name":"srcOffset","nativeSrc":"57015:9:65","nodeType":"YulIdentifier","src":"57015:9:65"}],"functionName":{"name":"add","nativeSrc":"57006:3:65","nodeType":"YulIdentifier","src":"57006:3:65"},"nativeSrc":"57006:19:65","nodeType":"YulFunctionCall","src":"57006:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"56993:12:65","nodeType":"YulIdentifier","src":"56993:12:65"},"nativeSrc":"56993:33:65","nodeType":"YulFunctionCall","src":"56993:33:65"}],"functionName":{"name":"sstore","nativeSrc":"56978:6:65","nodeType":"YulIdentifier","src":"56978:6:65"},"nativeSrc":"56978:49:65","nodeType":"YulFunctionCall","src":"56978:49:65"},"nativeSrc":"56978:49:65","nodeType":"YulExpressionStatement","src":"56978:49:65"},{"nativeSrc":"57044:24:65","nodeType":"YulAssignment","src":"57044:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"57058:6:65","nodeType":"YulIdentifier","src":"57058:6:65"},{"kind":"number","nativeSrc":"57066:1:65","nodeType":"YulLiteral","src":"57066:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"57054:3:65","nodeType":"YulIdentifier","src":"57054:3:65"},"nativeSrc":"57054:14:65","nodeType":"YulFunctionCall","src":"57054:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"57044:6:65","nodeType":"YulIdentifier","src":"57044:6:65"}]},{"nativeSrc":"57085:31:65","nodeType":"YulAssignment","src":"57085:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"57102:9:65","nodeType":"YulIdentifier","src":"57102:9:65"},{"kind":"number","nativeSrc":"57113:2:65","nodeType":"YulLiteral","src":"57113:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"57098:3:65","nodeType":"YulIdentifier","src":"57098:3:65"},"nativeSrc":"57098:18:65","nodeType":"YulFunctionCall","src":"57098:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"57085:9:65","nodeType":"YulIdentifier","src":"57085:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"56926:1:65","nodeType":"YulIdentifier","src":"56926:1:65"},{"name":"loopEnd","nativeSrc":"56929:7:65","nodeType":"YulIdentifier","src":"56929:7:65"}],"functionName":{"name":"lt","nativeSrc":"56923:2:65","nodeType":"YulIdentifier","src":"56923:2:65"},"nativeSrc":"56923:14:65","nodeType":"YulFunctionCall","src":"56923:14:65"},"nativeSrc":"56915:215:65","nodeType":"YulForLoop","post":{"nativeSrc":"56938:21:65","nodeType":"YulBlock","src":"56938:21:65","statements":[{"nativeSrc":"56940:17:65","nodeType":"YulAssignment","src":"56940:17:65","value":{"arguments":[{"name":"i","nativeSrc":"56949:1:65","nodeType":"YulIdentifier","src":"56949:1:65"},{"kind":"number","nativeSrc":"56952:4:65","nodeType":"YulLiteral","src":"56952:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56945:3:65","nodeType":"YulIdentifier","src":"56945:3:65"},"nativeSrc":"56945:12:65","nodeType":"YulFunctionCall","src":"56945:12:65"},"variableNames":[{"name":"i","nativeSrc":"56940:1:65","nodeType":"YulIdentifier","src":"56940:1:65"}]}]},"pre":{"nativeSrc":"56919:3:65","nodeType":"YulBlock","src":"56919:3:65","statements":[]},"src":"56915:215:65"},{"body":{"nativeSrc":"57166:163:65","nodeType":"YulBlock","src":"57166:163:65","statements":[{"nativeSrc":"57184:50:65","nodeType":"YulVariableDeclaration","src":"57184:50:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"57218:3:65","nodeType":"YulIdentifier","src":"57218:3:65"},{"name":"srcOffset","nativeSrc":"57223:9:65","nodeType":"YulIdentifier","src":"57223:9:65"}],"functionName":{"name":"add","nativeSrc":"57214:3:65","nodeType":"YulIdentifier","src":"57214:3:65"},"nativeSrc":"57214:19:65","nodeType":"YulFunctionCall","src":"57214:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"57201:12:65","nodeType":"YulIdentifier","src":"57201:12:65"},"nativeSrc":"57201:33:65","nodeType":"YulFunctionCall","src":"57201:33:65"},"variables":[{"name":"lastValue","nativeSrc":"57188:9:65","nodeType":"YulTypedName","src":"57188:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"57258:6:65","nodeType":"YulIdentifier","src":"57258:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"57285:9:65","nodeType":"YulIdentifier","src":"57285:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"57300:6:65","nodeType":"YulIdentifier","src":"57300:6:65"},{"kind":"number","nativeSrc":"57308:4:65","nodeType":"YulLiteral","src":"57308:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"57296:3:65","nodeType":"YulIdentifier","src":"57296:3:65"},"nativeSrc":"57296:17:65","nodeType":"YulFunctionCall","src":"57296:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"57266:18:65","nodeType":"YulIdentifier","src":"57266:18:65"},"nativeSrc":"57266:48:65","nodeType":"YulFunctionCall","src":"57266:48:65"}],"functionName":{"name":"sstore","nativeSrc":"57251:6:65","nodeType":"YulIdentifier","src":"57251:6:65"},"nativeSrc":"57251:64:65","nodeType":"YulFunctionCall","src":"57251:64:65"},"nativeSrc":"57251:64:65","nodeType":"YulExpressionStatement","src":"57251:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"57149:7:65","nodeType":"YulIdentifier","src":"57149:7:65"},{"name":"newLen","nativeSrc":"57158:6:65","nodeType":"YulIdentifier","src":"57158:6:65"}],"functionName":{"name":"lt","nativeSrc":"57146:2:65","nodeType":"YulIdentifier","src":"57146:2:65"},"nativeSrc":"57146:19:65","nodeType":"YulFunctionCall","src":"57146:19:65"},"nativeSrc":"57143:186:65","nodeType":"YulIf","src":"57143:186:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"57349:4:65","nodeType":"YulIdentifier","src":"57349:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"57363:6:65","nodeType":"YulIdentifier","src":"57363:6:65"},{"kind":"number","nativeSrc":"57371:1:65","nodeType":"YulLiteral","src":"57371:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"57359:3:65","nodeType":"YulIdentifier","src":"57359:3:65"},"nativeSrc":"57359:14:65","nodeType":"YulFunctionCall","src":"57359:14:65"},{"kind":"number","nativeSrc":"57375:1:65","nodeType":"YulLiteral","src":"57375:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"57355:3:65","nodeType":"YulIdentifier","src":"57355:3:65"},"nativeSrc":"57355:22:65","nodeType":"YulFunctionCall","src":"57355:22:65"}],"functionName":{"name":"sstore","nativeSrc":"57342:6:65","nodeType":"YulIdentifier","src":"57342:6:65"},"nativeSrc":"57342:36:65","nodeType":"YulFunctionCall","src":"57342:36:65"},"nativeSrc":"57342:36:65","nodeType":"YulExpressionStatement","src":"57342:36:65"}]},"nativeSrc":"56757:631:65","nodeType":"YulCase","src":"56757:631:65","value":{"kind":"number","nativeSrc":"56762:1:65","nodeType":"YulLiteral","src":"56762:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"57405:229:65","nodeType":"YulBlock","src":"57405:229:65","statements":[{"nativeSrc":"57419:14:65","nodeType":"YulVariableDeclaration","src":"57419:14:65","value":{"kind":"number","nativeSrc":"57432:1:65","nodeType":"YulLiteral","src":"57432:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"57423:5:65","nodeType":"YulTypedName","src":"57423:5:65","type":""}]},{"body":{"nativeSrc":"57456:74:65","nodeType":"YulBlock","src":"57456:74:65","statements":[{"nativeSrc":"57474:42:65","nodeType":"YulAssignment","src":"57474:42:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"57500:3:65","nodeType":"YulIdentifier","src":"57500:3:65"},{"name":"srcOffset","nativeSrc":"57505:9:65","nodeType":"YulIdentifier","src":"57505:9:65"}],"functionName":{"name":"add","nativeSrc":"57496:3:65","nodeType":"YulIdentifier","src":"57496:3:65"},"nativeSrc":"57496:19:65","nodeType":"YulFunctionCall","src":"57496:19:65"}],"functionName":{"name":"calldataload","nativeSrc":"57483:12:65","nodeType":"YulIdentifier","src":"57483:12:65"},"nativeSrc":"57483:33:65","nodeType":"YulFunctionCall","src":"57483:33:65"},"variableNames":[{"name":"value","nativeSrc":"57474:5:65","nodeType":"YulIdentifier","src":"57474:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"57449:6:65","nodeType":"YulIdentifier","src":"57449:6:65"},"nativeSrc":"57446:84:65","nodeType":"YulIf","src":"57446:84:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"57550:4:65","nodeType":"YulIdentifier","src":"57550:4:65"},{"arguments":[{"name":"value","nativeSrc":"57609:5:65","nodeType":"YulIdentifier","src":"57609:5:65"},{"name":"newLen","nativeSrc":"57616:6:65","nodeType":"YulIdentifier","src":"57616:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"57556:52:65","nodeType":"YulIdentifier","src":"57556:52:65"},"nativeSrc":"57556:67:65","nodeType":"YulFunctionCall","src":"57556:67:65"}],"functionName":{"name":"sstore","nativeSrc":"57543:6:65","nodeType":"YulIdentifier","src":"57543:6:65"},"nativeSrc":"57543:81:65","nodeType":"YulFunctionCall","src":"57543:81:65"},"nativeSrc":"57543:81:65","nodeType":"YulExpressionStatement","src":"57543:81:65"}]},"nativeSrc":"57397:237:65","nodeType":"YulCase","src":"57397:237:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"56737:6:65","nodeType":"YulIdentifier","src":"56737:6:65"},{"kind":"number","nativeSrc":"56745:2:65","nodeType":"YulLiteral","src":"56745:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"56734:2:65","nodeType":"YulIdentifier","src":"56734:2:65"},"nativeSrc":"56734:14:65","nodeType":"YulFunctionCall","src":"56734:14:65"},"nativeSrc":"56727:907:65","nodeType":"YulSwitch","src":"56727:907:65"}]},"name":"copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage","nativeSrc":"56242:1398:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"56323:4:65","nodeType":"YulTypedName","src":"56323:4:65","type":""},{"name":"src","nativeSrc":"56329:3:65","nodeType":"YulTypedName","src":"56329:3:65","type":""},{"name":"len","nativeSrc":"56334:3:65","nodeType":"YulTypedName","src":"56334:3:65","type":""}],"src":"56242:1398:65"},{"body":{"nativeSrc":"57752:119:65","nodeType":"YulBlock","src":"57752:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"57774:6:65","nodeType":"YulIdentifier","src":"57774:6:65"},{"kind":"number","nativeSrc":"57782:1:65","nodeType":"YulLiteral","src":"57782:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"57770:3:65","nodeType":"YulIdentifier","src":"57770:3:65"},"nativeSrc":"57770:14:65","nodeType":"YulFunctionCall","src":"57770:14:65"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"57786:34:65","nodeType":"YulLiteral","src":"57786:34:65","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"57763:6:65","nodeType":"YulIdentifier","src":"57763:6:65"},"nativeSrc":"57763:58:65","nodeType":"YulFunctionCall","src":"57763:58:65"},"nativeSrc":"57763:58:65","nodeType":"YulExpressionStatement","src":"57763:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"57842:6:65","nodeType":"YulIdentifier","src":"57842:6:65"},{"kind":"number","nativeSrc":"57850:2:65","nodeType":"YulLiteral","src":"57850:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"57838:3:65","nodeType":"YulIdentifier","src":"57838:3:65"},"nativeSrc":"57838:15:65","nodeType":"YulFunctionCall","src":"57838:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"57855:8:65","nodeType":"YulLiteral","src":"57855:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"57831:6:65","nodeType":"YulIdentifier","src":"57831:6:65"},"nativeSrc":"57831:33:65","nodeType":"YulFunctionCall","src":"57831:33:65"},"nativeSrc":"57831:33:65","nodeType":"YulExpressionStatement","src":"57831:33:65"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"57646:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"57744:6:65","nodeType":"YulTypedName","src":"57744:6:65","type":""}],"src":"57646:225:65"},{"body":{"nativeSrc":"58023:220:65","nodeType":"YulBlock","src":"58023:220:65","statements":[{"nativeSrc":"58033:74:65","nodeType":"YulAssignment","src":"58033:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"58099:3:65","nodeType":"YulIdentifier","src":"58099:3:65"},{"kind":"number","nativeSrc":"58104:2:65","nodeType":"YulLiteral","src":"58104:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"58040:58:65","nodeType":"YulIdentifier","src":"58040:58:65"},"nativeSrc":"58040:67:65","nodeType":"YulFunctionCall","src":"58040:67:65"},"variableNames":[{"name":"pos","nativeSrc":"58033:3:65","nodeType":"YulIdentifier","src":"58033:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"58205:3:65","nodeType":"YulIdentifier","src":"58205:3:65"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"58116:88:65","nodeType":"YulIdentifier","src":"58116:88:65"},"nativeSrc":"58116:93:65","nodeType":"YulFunctionCall","src":"58116:93:65"},"nativeSrc":"58116:93:65","nodeType":"YulExpressionStatement","src":"58116:93:65"},{"nativeSrc":"58218:19:65","nodeType":"YulAssignment","src":"58218:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"58229:3:65","nodeType":"YulIdentifier","src":"58229:3:65"},{"kind":"number","nativeSrc":"58234:2:65","nodeType":"YulLiteral","src":"58234:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"58225:3:65","nodeType":"YulIdentifier","src":"58225:3:65"},"nativeSrc":"58225:12:65","nodeType":"YulFunctionCall","src":"58225:12:65"},"variableNames":[{"name":"end","nativeSrc":"58218:3:65","nodeType":"YulIdentifier","src":"58218:3:65"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"57877:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"58011:3:65","nodeType":"YulTypedName","src":"58011:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"58019:3:65","nodeType":"YulTypedName","src":"58019:3:65","type":""}],"src":"57877:366:65"},{"body":{"nativeSrc":"58420:248:65","nodeType":"YulBlock","src":"58420:248:65","statements":[{"nativeSrc":"58430:26:65","nodeType":"YulAssignment","src":"58430:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"58442:9:65","nodeType":"YulIdentifier","src":"58442:9:65"},{"kind":"number","nativeSrc":"58453:2:65","nodeType":"YulLiteral","src":"58453:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"58438:3:65","nodeType":"YulIdentifier","src":"58438:3:65"},"nativeSrc":"58438:18:65","nodeType":"YulFunctionCall","src":"58438:18:65"},"variableNames":[{"name":"tail","nativeSrc":"58430:4:65","nodeType":"YulIdentifier","src":"58430:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"58477:9:65","nodeType":"YulIdentifier","src":"58477:9:65"},{"kind":"number","nativeSrc":"58488:1:65","nodeType":"YulLiteral","src":"58488:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"58473:3:65","nodeType":"YulIdentifier","src":"58473:3:65"},"nativeSrc":"58473:17:65","nodeType":"YulFunctionCall","src":"58473:17:65"},{"arguments":[{"name":"tail","nativeSrc":"58496:4:65","nodeType":"YulIdentifier","src":"58496:4:65"},{"name":"headStart","nativeSrc":"58502:9:65","nodeType":"YulIdentifier","src":"58502:9:65"}],"functionName":{"name":"sub","nativeSrc":"58492:3:65","nodeType":"YulIdentifier","src":"58492:3:65"},"nativeSrc":"58492:20:65","nodeType":"YulFunctionCall","src":"58492:20:65"}],"functionName":{"name":"mstore","nativeSrc":"58466:6:65","nodeType":"YulIdentifier","src":"58466:6:65"},"nativeSrc":"58466:47:65","nodeType":"YulFunctionCall","src":"58466:47:65"},"nativeSrc":"58466:47:65","nodeType":"YulExpressionStatement","src":"58466:47:65"},{"nativeSrc":"58522:139:65","nodeType":"YulAssignment","src":"58522:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"58656:4:65","nodeType":"YulIdentifier","src":"58656:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"58530:124:65","nodeType":"YulIdentifier","src":"58530:124:65"},"nativeSrc":"58530:131:65","nodeType":"YulFunctionCall","src":"58530:131:65"},"variableNames":[{"name":"tail","nativeSrc":"58522:4:65","nodeType":"YulIdentifier","src":"58522:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"58249:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"58400:9:65","nodeType":"YulTypedName","src":"58400:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"58415:4:65","nodeType":"YulTypedName","src":"58415:4:65","type":""}],"src":"58249:419:65"},{"body":{"nativeSrc":"58852:367:65","nodeType":"YulBlock","src":"58852:367:65","statements":[{"nativeSrc":"58862:27:65","nodeType":"YulAssignment","src":"58862:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"58874:9:65","nodeType":"YulIdentifier","src":"58874:9:65"},{"kind":"number","nativeSrc":"58885:3:65","nodeType":"YulLiteral","src":"58885:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"58870:3:65","nodeType":"YulIdentifier","src":"58870:3:65"},"nativeSrc":"58870:19:65","nodeType":"YulFunctionCall","src":"58870:19:65"},"variableNames":[{"name":"tail","nativeSrc":"58862:4:65","nodeType":"YulIdentifier","src":"58862:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"58941:6:65","nodeType":"YulIdentifier","src":"58941:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"58954:9:65","nodeType":"YulIdentifier","src":"58954:9:65"},{"kind":"number","nativeSrc":"58965:1:65","nodeType":"YulLiteral","src":"58965:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"58950:3:65","nodeType":"YulIdentifier","src":"58950:3:65"},"nativeSrc":"58950:17:65","nodeType":"YulFunctionCall","src":"58950:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"58899:41:65","nodeType":"YulIdentifier","src":"58899:41:65"},"nativeSrc":"58899:69:65","nodeType":"YulFunctionCall","src":"58899:69:65"},"nativeSrc":"58899:69:65","nodeType":"YulExpressionStatement","src":"58899:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"59020:6:65","nodeType":"YulIdentifier","src":"59020:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"59033:9:65","nodeType":"YulIdentifier","src":"59033:9:65"},{"kind":"number","nativeSrc":"59044:2:65","nodeType":"YulLiteral","src":"59044:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"59029:3:65","nodeType":"YulIdentifier","src":"59029:3:65"},"nativeSrc":"59029:18:65","nodeType":"YulFunctionCall","src":"59029:18:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"58978:41:65","nodeType":"YulIdentifier","src":"58978:41:65"},"nativeSrc":"58978:70:65","nodeType":"YulFunctionCall","src":"58978:70:65"},"nativeSrc":"58978:70:65","nodeType":"YulExpressionStatement","src":"58978:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"59102:6:65","nodeType":"YulIdentifier","src":"59102:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"59115:9:65","nodeType":"YulIdentifier","src":"59115:9:65"},{"kind":"number","nativeSrc":"59126:2:65","nodeType":"YulLiteral","src":"59126:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"59111:3:65","nodeType":"YulIdentifier","src":"59111:3:65"},"nativeSrc":"59111:18:65","nodeType":"YulFunctionCall","src":"59111:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"59058:43:65","nodeType":"YulIdentifier","src":"59058:43:65"},"nativeSrc":"59058:72:65","nodeType":"YulFunctionCall","src":"59058:72:65"},"nativeSrc":"59058:72:65","nodeType":"YulExpressionStatement","src":"59058:72:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"59184:6:65","nodeType":"YulIdentifier","src":"59184:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"59197:9:65","nodeType":"YulIdentifier","src":"59197:9:65"},{"kind":"number","nativeSrc":"59208:2:65","nodeType":"YulLiteral","src":"59208:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"59193:3:65","nodeType":"YulIdentifier","src":"59193:3:65"},"nativeSrc":"59193:18:65","nodeType":"YulFunctionCall","src":"59193:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"59140:43:65","nodeType":"YulIdentifier","src":"59140:43:65"},"nativeSrc":"59140:72:65","nodeType":"YulFunctionCall","src":"59140:72:65"},"nativeSrc":"59140:72:65","nodeType":"YulExpressionStatement","src":"59140:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed","nativeSrc":"58674:545:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"58800:9:65","nodeType":"YulTypedName","src":"58800:9:65","type":""},{"name":"value3","nativeSrc":"58812:6:65","nodeType":"YulTypedName","src":"58812:6:65","type":""},{"name":"value2","nativeSrc":"58820:6:65","nodeType":"YulTypedName","src":"58820:6:65","type":""},{"name":"value1","nativeSrc":"58828:6:65","nodeType":"YulTypedName","src":"58828:6:65","type":""},{"name":"value0","nativeSrc":"58836:6:65","nodeType":"YulTypedName","src":"58836:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"58847:4:65","nodeType":"YulTypedName","src":"58847:4:65","type":""}],"src":"58674:545:65"},{"body":{"nativeSrc":"59319:338:65","nodeType":"YulBlock","src":"59319:338:65","statements":[{"nativeSrc":"59329:74:65","nodeType":"YulAssignment","src":"59329:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"59395:6:65","nodeType":"YulIdentifier","src":"59395:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"59354:40:65","nodeType":"YulIdentifier","src":"59354:40:65"},"nativeSrc":"59354:48:65","nodeType":"YulFunctionCall","src":"59354:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"59338:15:65","nodeType":"YulIdentifier","src":"59338:15:65"},"nativeSrc":"59338:65:65","nodeType":"YulFunctionCall","src":"59338:65:65"},"variableNames":[{"name":"array","nativeSrc":"59329:5:65","nodeType":"YulIdentifier","src":"59329:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"59419:5:65","nodeType":"YulIdentifier","src":"59419:5:65"},{"name":"length","nativeSrc":"59426:6:65","nodeType":"YulIdentifier","src":"59426:6:65"}],"functionName":{"name":"mstore","nativeSrc":"59412:6:65","nodeType":"YulIdentifier","src":"59412:6:65"},"nativeSrc":"59412:21:65","nodeType":"YulFunctionCall","src":"59412:21:65"},"nativeSrc":"59412:21:65","nodeType":"YulExpressionStatement","src":"59412:21:65"},{"nativeSrc":"59442:27:65","nodeType":"YulVariableDeclaration","src":"59442:27:65","value":{"arguments":[{"name":"array","nativeSrc":"59457:5:65","nodeType":"YulIdentifier","src":"59457:5:65"},{"kind":"number","nativeSrc":"59464:4:65","nodeType":"YulLiteral","src":"59464:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"59453:3:65","nodeType":"YulIdentifier","src":"59453:3:65"},"nativeSrc":"59453:16:65","nodeType":"YulFunctionCall","src":"59453:16:65"},"variables":[{"name":"dst","nativeSrc":"59446:3:65","nodeType":"YulTypedName","src":"59446:3:65","type":""}]},{"body":{"nativeSrc":"59507:83:65","nodeType":"YulBlock","src":"59507:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"59509:77:65","nodeType":"YulIdentifier","src":"59509:77:65"},"nativeSrc":"59509:79:65","nodeType":"YulFunctionCall","src":"59509:79:65"},"nativeSrc":"59509:79:65","nodeType":"YulExpressionStatement","src":"59509:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"59488:3:65","nodeType":"YulIdentifier","src":"59488:3:65"},{"name":"length","nativeSrc":"59493:6:65","nodeType":"YulIdentifier","src":"59493:6:65"}],"functionName":{"name":"add","nativeSrc":"59484:3:65","nodeType":"YulIdentifier","src":"59484:3:65"},"nativeSrc":"59484:16:65","nodeType":"YulFunctionCall","src":"59484:16:65"},{"name":"end","nativeSrc":"59502:3:65","nodeType":"YulIdentifier","src":"59502:3:65"}],"functionName":{"name":"gt","nativeSrc":"59481:2:65","nodeType":"YulIdentifier","src":"59481:2:65"},"nativeSrc":"59481:25:65","nodeType":"YulFunctionCall","src":"59481:25:65"},"nativeSrc":"59478:112:65","nodeType":"YulIf","src":"59478:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"59634:3:65","nodeType":"YulIdentifier","src":"59634:3:65"},{"name":"dst","nativeSrc":"59639:3:65","nodeType":"YulIdentifier","src":"59639:3:65"},{"name":"length","nativeSrc":"59644:6:65","nodeType":"YulIdentifier","src":"59644:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"59599:34:65","nodeType":"YulIdentifier","src":"59599:34:65"},"nativeSrc":"59599:52:65","nodeType":"YulFunctionCall","src":"59599:52:65"},"nativeSrc":"59599:52:65","nodeType":"YulExpressionStatement","src":"59599:52:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"59225:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"59292:3:65","nodeType":"YulTypedName","src":"59292:3:65","type":""},{"name":"length","nativeSrc":"59297:6:65","nodeType":"YulTypedName","src":"59297:6:65","type":""},{"name":"end","nativeSrc":"59305:3:65","nodeType":"YulTypedName","src":"59305:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"59313:5:65","nodeType":"YulTypedName","src":"59313:5:65","type":""}],"src":"59225:432:65"},{"body":{"nativeSrc":"59748:281:65","nodeType":"YulBlock","src":"59748:281:65","statements":[{"body":{"nativeSrc":"59797:83:65","nodeType":"YulBlock","src":"59797:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"59799:77:65","nodeType":"YulIdentifier","src":"59799:77:65"},"nativeSrc":"59799:79:65","nodeType":"YulFunctionCall","src":"59799:79:65"},"nativeSrc":"59799:79:65","nodeType":"YulExpressionStatement","src":"59799:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"59776:6:65","nodeType":"YulIdentifier","src":"59776:6:65"},{"kind":"number","nativeSrc":"59784:4:65","nodeType":"YulLiteral","src":"59784:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"59772:3:65","nodeType":"YulIdentifier","src":"59772:3:65"},"nativeSrc":"59772:17:65","nodeType":"YulFunctionCall","src":"59772:17:65"},{"name":"end","nativeSrc":"59791:3:65","nodeType":"YulIdentifier","src":"59791:3:65"}],"functionName":{"name":"slt","nativeSrc":"59768:3:65","nodeType":"YulIdentifier","src":"59768:3:65"},"nativeSrc":"59768:27:65","nodeType":"YulFunctionCall","src":"59768:27:65"}],"functionName":{"name":"iszero","nativeSrc":"59761:6:65","nodeType":"YulIdentifier","src":"59761:6:65"},"nativeSrc":"59761:35:65","nodeType":"YulFunctionCall","src":"59761:35:65"},"nativeSrc":"59758:122:65","nodeType":"YulIf","src":"59758:122:65"},{"nativeSrc":"59889:27:65","nodeType":"YulVariableDeclaration","src":"59889:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"59909:6:65","nodeType":"YulIdentifier","src":"59909:6:65"}],"functionName":{"name":"mload","nativeSrc":"59903:5:65","nodeType":"YulIdentifier","src":"59903:5:65"},"nativeSrc":"59903:13:65","nodeType":"YulFunctionCall","src":"59903:13:65"},"variables":[{"name":"length","nativeSrc":"59893:6:65","nodeType":"YulTypedName","src":"59893:6:65","type":""}]},{"nativeSrc":"59925:98:65","nodeType":"YulAssignment","src":"59925:98:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"59996:6:65","nodeType":"YulIdentifier","src":"59996:6:65"},{"kind":"number","nativeSrc":"60004:4:65","nodeType":"YulLiteral","src":"60004:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"59992:3:65","nodeType":"YulIdentifier","src":"59992:3:65"},"nativeSrc":"59992:17:65","nodeType":"YulFunctionCall","src":"59992:17:65"},{"name":"length","nativeSrc":"60011:6:65","nodeType":"YulIdentifier","src":"60011:6:65"},{"name":"end","nativeSrc":"60019:3:65","nodeType":"YulIdentifier","src":"60019:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"59934:57:65","nodeType":"YulIdentifier","src":"59934:57:65"},"nativeSrc":"59934:89:65","nodeType":"YulFunctionCall","src":"59934:89:65"},"variableNames":[{"name":"array","nativeSrc":"59925:5:65","nodeType":"YulIdentifier","src":"59925:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"59676:353:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"59726:6:65","nodeType":"YulTypedName","src":"59726:6:65","type":""},{"name":"end","nativeSrc":"59734:3:65","nodeType":"YulTypedName","src":"59734:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"59742:5:65","nodeType":"YulTypedName","src":"59742:5:65","type":""}],"src":"59676:353:65"},{"body":{"nativeSrc":"60121:436:65","nodeType":"YulBlock","src":"60121:436:65","statements":[{"body":{"nativeSrc":"60167:83:65","nodeType":"YulBlock","src":"60167:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"60169:77:65","nodeType":"YulIdentifier","src":"60169:77:65"},"nativeSrc":"60169:79:65","nodeType":"YulFunctionCall","src":"60169:79:65"},"nativeSrc":"60169:79:65","nodeType":"YulExpressionStatement","src":"60169:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"60142:7:65","nodeType":"YulIdentifier","src":"60142:7:65"},{"name":"headStart","nativeSrc":"60151:9:65","nodeType":"YulIdentifier","src":"60151:9:65"}],"functionName":{"name":"sub","nativeSrc":"60138:3:65","nodeType":"YulIdentifier","src":"60138:3:65"},"nativeSrc":"60138:23:65","nodeType":"YulFunctionCall","src":"60138:23:65"},{"kind":"number","nativeSrc":"60163:2:65","nodeType":"YulLiteral","src":"60163:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"60134:3:65","nodeType":"YulIdentifier","src":"60134:3:65"},"nativeSrc":"60134:32:65","nodeType":"YulFunctionCall","src":"60134:32:65"},"nativeSrc":"60131:119:65","nodeType":"YulIf","src":"60131:119:65"},{"nativeSrc":"60260:290:65","nodeType":"YulBlock","src":"60260:290:65","statements":[{"nativeSrc":"60275:38:65","nodeType":"YulVariableDeclaration","src":"60275:38:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60299:9:65","nodeType":"YulIdentifier","src":"60299:9:65"},{"kind":"number","nativeSrc":"60310:1:65","nodeType":"YulLiteral","src":"60310:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"60295:3:65","nodeType":"YulIdentifier","src":"60295:3:65"},"nativeSrc":"60295:17:65","nodeType":"YulFunctionCall","src":"60295:17:65"}],"functionName":{"name":"mload","nativeSrc":"60289:5:65","nodeType":"YulIdentifier","src":"60289:5:65"},"nativeSrc":"60289:24:65","nodeType":"YulFunctionCall","src":"60289:24:65"},"variables":[{"name":"offset","nativeSrc":"60279:6:65","nodeType":"YulTypedName","src":"60279:6:65","type":""}]},{"body":{"nativeSrc":"60360:83:65","nodeType":"YulBlock","src":"60360:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"60362:77:65","nodeType":"YulIdentifier","src":"60362:77:65"},"nativeSrc":"60362:79:65","nodeType":"YulFunctionCall","src":"60362:79:65"},"nativeSrc":"60362:79:65","nodeType":"YulExpressionStatement","src":"60362:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"60332:6:65","nodeType":"YulIdentifier","src":"60332:6:65"},{"kind":"number","nativeSrc":"60340:18:65","nodeType":"YulLiteral","src":"60340:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"60329:2:65","nodeType":"YulIdentifier","src":"60329:2:65"},"nativeSrc":"60329:30:65","nodeType":"YulFunctionCall","src":"60329:30:65"},"nativeSrc":"60326:117:65","nodeType":"YulIf","src":"60326:117:65"},{"nativeSrc":"60457:83:65","nodeType":"YulAssignment","src":"60457:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60512:9:65","nodeType":"YulIdentifier","src":"60512:9:65"},{"name":"offset","nativeSrc":"60523:6:65","nodeType":"YulIdentifier","src":"60523:6:65"}],"functionName":{"name":"add","nativeSrc":"60508:3:65","nodeType":"YulIdentifier","src":"60508:3:65"},"nativeSrc":"60508:22:65","nodeType":"YulFunctionCall","src":"60508:22:65"},{"name":"dataEnd","nativeSrc":"60532:7:65","nodeType":"YulIdentifier","src":"60532:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"60467:40:65","nodeType":"YulIdentifier","src":"60467:40:65"},"nativeSrc":"60467:73:65","nodeType":"YulFunctionCall","src":"60467:73:65"},"variableNames":[{"name":"value0","nativeSrc":"60457:6:65","nodeType":"YulIdentifier","src":"60457:6:65"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"60035:522:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60091:9:65","nodeType":"YulTypedName","src":"60091:9:65","type":""},{"name":"dataEnd","nativeSrc":"60102:7:65","nodeType":"YulTypedName","src":"60102:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"60114:6:65","nodeType":"YulTypedName","src":"60114:6:65","type":""}],"src":"60035:522:65"},{"body":{"nativeSrc":"60777:505:65","nodeType":"YulBlock","src":"60777:505:65","statements":[{"nativeSrc":"60787:27:65","nodeType":"YulAssignment","src":"60787:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"60799:9:65","nodeType":"YulIdentifier","src":"60799:9:65"},{"kind":"number","nativeSrc":"60810:3:65","nodeType":"YulLiteral","src":"60810:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"60795:3:65","nodeType":"YulIdentifier","src":"60795:3:65"},"nativeSrc":"60795:19:65","nodeType":"YulFunctionCall","src":"60795:19:65"},"variableNames":[{"name":"tail","nativeSrc":"60787:4:65","nodeType":"YulIdentifier","src":"60787:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"60866:6:65","nodeType":"YulIdentifier","src":"60866:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"60879:9:65","nodeType":"YulIdentifier","src":"60879:9:65"},{"kind":"number","nativeSrc":"60890:1:65","nodeType":"YulLiteral","src":"60890:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"60875:3:65","nodeType":"YulIdentifier","src":"60875:3:65"},"nativeSrc":"60875:17:65","nodeType":"YulFunctionCall","src":"60875:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"60824:41:65","nodeType":"YulIdentifier","src":"60824:41:65"},"nativeSrc":"60824:69:65","nodeType":"YulFunctionCall","src":"60824:69:65"},"nativeSrc":"60824:69:65","nodeType":"YulExpressionStatement","src":"60824:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60914:9:65","nodeType":"YulIdentifier","src":"60914:9:65"},{"kind":"number","nativeSrc":"60925:2:65","nodeType":"YulLiteral","src":"60925:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"60910:3:65","nodeType":"YulIdentifier","src":"60910:3:65"},"nativeSrc":"60910:18:65","nodeType":"YulFunctionCall","src":"60910:18:65"},{"arguments":[{"name":"tail","nativeSrc":"60934:4:65","nodeType":"YulIdentifier","src":"60934:4:65"},{"name":"headStart","nativeSrc":"60940:9:65","nodeType":"YulIdentifier","src":"60940:9:65"}],"functionName":{"name":"sub","nativeSrc":"60930:3:65","nodeType":"YulIdentifier","src":"60930:3:65"},"nativeSrc":"60930:20:65","nodeType":"YulFunctionCall","src":"60930:20:65"}],"functionName":{"name":"mstore","nativeSrc":"60903:6:65","nodeType":"YulIdentifier","src":"60903:6:65"},"nativeSrc":"60903:48:65","nodeType":"YulFunctionCall","src":"60903:48:65"},"nativeSrc":"60903:48:65","nodeType":"YulExpressionStatement","src":"60903:48:65"},{"nativeSrc":"60960:84:65","nodeType":"YulAssignment","src":"60960:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"61030:6:65","nodeType":"YulIdentifier","src":"61030:6:65"},{"name":"tail","nativeSrc":"61039:4:65","nodeType":"YulIdentifier","src":"61039:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"60968:61:65","nodeType":"YulIdentifier","src":"60968:61:65"},"nativeSrc":"60968:76:65","nodeType":"YulFunctionCall","src":"60968:76:65"},"variableNames":[{"name":"tail","nativeSrc":"60960:4:65","nodeType":"YulIdentifier","src":"60960:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"61096:6:65","nodeType":"YulIdentifier","src":"61096:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"61109:9:65","nodeType":"YulIdentifier","src":"61109:9:65"},{"kind":"number","nativeSrc":"61120:2:65","nodeType":"YulLiteral","src":"61120:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"61105:3:65","nodeType":"YulIdentifier","src":"61105:3:65"},"nativeSrc":"61105:18:65","nodeType":"YulFunctionCall","src":"61105:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"61054:41:65","nodeType":"YulIdentifier","src":"61054:41:65"},"nativeSrc":"61054:70:65","nodeType":"YulFunctionCall","src":"61054:70:65"},"nativeSrc":"61054:70:65","nodeType":"YulExpressionStatement","src":"61054:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"61145:9:65","nodeType":"YulIdentifier","src":"61145:9:65"},{"kind":"number","nativeSrc":"61156:2:65","nodeType":"YulLiteral","src":"61156:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"61141:3:65","nodeType":"YulIdentifier","src":"61141:3:65"},"nativeSrc":"61141:18:65","nodeType":"YulFunctionCall","src":"61141:18:65"},{"arguments":[{"name":"tail","nativeSrc":"61165:4:65","nodeType":"YulIdentifier","src":"61165:4:65"},{"name":"headStart","nativeSrc":"61171:9:65","nodeType":"YulIdentifier","src":"61171:9:65"}],"functionName":{"name":"sub","nativeSrc":"61161:3:65","nodeType":"YulIdentifier","src":"61161:3:65"},"nativeSrc":"61161:20:65","nodeType":"YulFunctionCall","src":"61161:20:65"}],"functionName":{"name":"mstore","nativeSrc":"61134:6:65","nodeType":"YulIdentifier","src":"61134:6:65"},"nativeSrc":"61134:48:65","nodeType":"YulFunctionCall","src":"61134:48:65"},"nativeSrc":"61134:48:65","nodeType":"YulExpressionStatement","src":"61134:48:65"},{"nativeSrc":"61191:84:65","nodeType":"YulAssignment","src":"61191:84:65","value":{"arguments":[{"name":"value3","nativeSrc":"61261:6:65","nodeType":"YulIdentifier","src":"61261:6:65"},{"name":"tail","nativeSrc":"61270:4:65","nodeType":"YulIdentifier","src":"61270:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"61199:61:65","nodeType":"YulIdentifier","src":"61199:61:65"},"nativeSrc":"61199:76:65","nodeType":"YulFunctionCall","src":"61199:76:65"},"variableNames":[{"name":"tail","nativeSrc":"61191:4:65","nodeType":"YulIdentifier","src":"61191:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"60563:719:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60725:9:65","nodeType":"YulTypedName","src":"60725:9:65","type":""},{"name":"value3","nativeSrc":"60737:6:65","nodeType":"YulTypedName","src":"60737:6:65","type":""},{"name":"value2","nativeSrc":"60745:6:65","nodeType":"YulTypedName","src":"60745:6:65","type":""},{"name":"value1","nativeSrc":"60753:6:65","nodeType":"YulTypedName","src":"60753:6:65","type":""},{"name":"value0","nativeSrc":"60761:6:65","nodeType":"YulTypedName","src":"60761:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"60772:4:65","nodeType":"YulTypedName","src":"60772:4:65","type":""}],"src":"60563:719:65"},{"body":{"nativeSrc":"61394:76:65","nodeType":"YulBlock","src":"61394:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"61416:6:65","nodeType":"YulIdentifier","src":"61416:6:65"},{"kind":"number","nativeSrc":"61424:1:65","nodeType":"YulLiteral","src":"61424:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"61412:3:65","nodeType":"YulIdentifier","src":"61412:3:65"},"nativeSrc":"61412:14:65","nodeType":"YulFunctionCall","src":"61412:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"61428:34:65","nodeType":"YulLiteral","src":"61428:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"61405:6:65","nodeType":"YulIdentifier","src":"61405:6:65"},"nativeSrc":"61405:58:65","nodeType":"YulFunctionCall","src":"61405:58:65"},"nativeSrc":"61405:58:65","nodeType":"YulExpressionStatement","src":"61405:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"61288:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"61386:6:65","nodeType":"YulTypedName","src":"61386:6:65","type":""}],"src":"61288:182:65"},{"body":{"nativeSrc":"61622:220:65","nodeType":"YulBlock","src":"61622:220:65","statements":[{"nativeSrc":"61632:74:65","nodeType":"YulAssignment","src":"61632:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"61698:3:65","nodeType":"YulIdentifier","src":"61698:3:65"},{"kind":"number","nativeSrc":"61703:2:65","nodeType":"YulLiteral","src":"61703:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"61639:58:65","nodeType":"YulIdentifier","src":"61639:58:65"},"nativeSrc":"61639:67:65","nodeType":"YulFunctionCall","src":"61639:67:65"},"variableNames":[{"name":"pos","nativeSrc":"61632:3:65","nodeType":"YulIdentifier","src":"61632:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"61804:3:65","nodeType":"YulIdentifier","src":"61804:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"61715:88:65","nodeType":"YulIdentifier","src":"61715:88:65"},"nativeSrc":"61715:93:65","nodeType":"YulFunctionCall","src":"61715:93:65"},"nativeSrc":"61715:93:65","nodeType":"YulExpressionStatement","src":"61715:93:65"},{"nativeSrc":"61817:19:65","nodeType":"YulAssignment","src":"61817:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"61828:3:65","nodeType":"YulIdentifier","src":"61828:3:65"},{"kind":"number","nativeSrc":"61833:2:65","nodeType":"YulLiteral","src":"61833:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"61824:3:65","nodeType":"YulIdentifier","src":"61824:3:65"},"nativeSrc":"61824:12:65","nodeType":"YulFunctionCall","src":"61824:12:65"},"variableNames":[{"name":"end","nativeSrc":"61817:3:65","nodeType":"YulIdentifier","src":"61817:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"61476:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"61610:3:65","nodeType":"YulTypedName","src":"61610:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"61618:3:65","nodeType":"YulTypedName","src":"61618:3:65","type":""}],"src":"61476:366:65"},{"body":{"nativeSrc":"62019:248:65","nodeType":"YulBlock","src":"62019:248:65","statements":[{"nativeSrc":"62029:26:65","nodeType":"YulAssignment","src":"62029:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"62041:9:65","nodeType":"YulIdentifier","src":"62041:9:65"},{"kind":"number","nativeSrc":"62052:2:65","nodeType":"YulLiteral","src":"62052:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62037:3:65","nodeType":"YulIdentifier","src":"62037:3:65"},"nativeSrc":"62037:18:65","nodeType":"YulFunctionCall","src":"62037:18:65"},"variableNames":[{"name":"tail","nativeSrc":"62029:4:65","nodeType":"YulIdentifier","src":"62029:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62076:9:65","nodeType":"YulIdentifier","src":"62076:9:65"},{"kind":"number","nativeSrc":"62087:1:65","nodeType":"YulLiteral","src":"62087:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"62072:3:65","nodeType":"YulIdentifier","src":"62072:3:65"},"nativeSrc":"62072:17:65","nodeType":"YulFunctionCall","src":"62072:17:65"},{"arguments":[{"name":"tail","nativeSrc":"62095:4:65","nodeType":"YulIdentifier","src":"62095:4:65"},{"name":"headStart","nativeSrc":"62101:9:65","nodeType":"YulIdentifier","src":"62101:9:65"}],"functionName":{"name":"sub","nativeSrc":"62091:3:65","nodeType":"YulIdentifier","src":"62091:3:65"},"nativeSrc":"62091:20:65","nodeType":"YulFunctionCall","src":"62091:20:65"}],"functionName":{"name":"mstore","nativeSrc":"62065:6:65","nodeType":"YulIdentifier","src":"62065:6:65"},"nativeSrc":"62065:47:65","nodeType":"YulFunctionCall","src":"62065:47:65"},"nativeSrc":"62065:47:65","nodeType":"YulExpressionStatement","src":"62065:47:65"},{"nativeSrc":"62121:139:65","nodeType":"YulAssignment","src":"62121:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"62255:4:65","nodeType":"YulIdentifier","src":"62255:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"62129:124:65","nodeType":"YulIdentifier","src":"62129:124:65"},"nativeSrc":"62129:131:65","nodeType":"YulFunctionCall","src":"62129:131:65"},"variableNames":[{"name":"tail","nativeSrc":"62121:4:65","nodeType":"YulIdentifier","src":"62121:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"61848:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"61999:9:65","nodeType":"YulTypedName","src":"61999:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62014:4:65","nodeType":"YulTypedName","src":"62014:4:65","type":""}],"src":"61848:419:65"},{"body":{"nativeSrc":"62511:584:65","nodeType":"YulBlock","src":"62511:584:65","statements":[{"nativeSrc":"62521:27:65","nodeType":"YulAssignment","src":"62521:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"62533:9:65","nodeType":"YulIdentifier","src":"62533:9:65"},{"kind":"number","nativeSrc":"62544:3:65","nodeType":"YulLiteral","src":"62544:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"62529:3:65","nodeType":"YulIdentifier","src":"62529:3:65"},"nativeSrc":"62529:19:65","nodeType":"YulFunctionCall","src":"62529:19:65"},"variableNames":[{"name":"tail","nativeSrc":"62521:4:65","nodeType":"YulIdentifier","src":"62521:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"62600:6:65","nodeType":"YulIdentifier","src":"62600:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"62613:9:65","nodeType":"YulIdentifier","src":"62613:9:65"},{"kind":"number","nativeSrc":"62624:1:65","nodeType":"YulLiteral","src":"62624:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"62609:3:65","nodeType":"YulIdentifier","src":"62609:3:65"},"nativeSrc":"62609:17:65","nodeType":"YulFunctionCall","src":"62609:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"62558:41:65","nodeType":"YulIdentifier","src":"62558:41:65"},"nativeSrc":"62558:69:65","nodeType":"YulFunctionCall","src":"62558:69:65"},"nativeSrc":"62558:69:65","nodeType":"YulExpressionStatement","src":"62558:69:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"62681:6:65","nodeType":"YulIdentifier","src":"62681:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"62694:9:65","nodeType":"YulIdentifier","src":"62694:9:65"},{"kind":"number","nativeSrc":"62705:2:65","nodeType":"YulLiteral","src":"62705:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62690:3:65","nodeType":"YulIdentifier","src":"62690:3:65"},"nativeSrc":"62690:18:65","nodeType":"YulFunctionCall","src":"62690:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"62637:43:65","nodeType":"YulIdentifier","src":"62637:43:65"},"nativeSrc":"62637:72:65","nodeType":"YulFunctionCall","src":"62637:72:65"},"nativeSrc":"62637:72:65","nodeType":"YulExpressionStatement","src":"62637:72:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62730:9:65","nodeType":"YulIdentifier","src":"62730:9:65"},{"kind":"number","nativeSrc":"62741:2:65","nodeType":"YulLiteral","src":"62741:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"62726:3:65","nodeType":"YulIdentifier","src":"62726:3:65"},"nativeSrc":"62726:18:65","nodeType":"YulFunctionCall","src":"62726:18:65"},{"arguments":[{"name":"tail","nativeSrc":"62750:4:65","nodeType":"YulIdentifier","src":"62750:4:65"},{"name":"headStart","nativeSrc":"62756:9:65","nodeType":"YulIdentifier","src":"62756:9:65"}],"functionName":{"name":"sub","nativeSrc":"62746:3:65","nodeType":"YulIdentifier","src":"62746:3:65"},"nativeSrc":"62746:20:65","nodeType":"YulFunctionCall","src":"62746:20:65"}],"functionName":{"name":"mstore","nativeSrc":"62719:6:65","nodeType":"YulIdentifier","src":"62719:6:65"},"nativeSrc":"62719:48:65","nodeType":"YulFunctionCall","src":"62719:48:65"},"nativeSrc":"62719:48:65","nodeType":"YulExpressionStatement","src":"62719:48:65"},{"nativeSrc":"62776:84:65","nodeType":"YulAssignment","src":"62776:84:65","value":{"arguments":[{"name":"value2","nativeSrc":"62846:6:65","nodeType":"YulIdentifier","src":"62846:6:65"},{"name":"tail","nativeSrc":"62855:4:65","nodeType":"YulIdentifier","src":"62855:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"62784:61:65","nodeType":"YulIdentifier","src":"62784:61:65"},"nativeSrc":"62784:76:65","nodeType":"YulFunctionCall","src":"62784:76:65"},"variableNames":[{"name":"tail","nativeSrc":"62776:4:65","nodeType":"YulIdentifier","src":"62776:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"62908:6:65","nodeType":"YulIdentifier","src":"62908:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"62921:9:65","nodeType":"YulIdentifier","src":"62921:9:65"},{"kind":"number","nativeSrc":"62932:2:65","nodeType":"YulLiteral","src":"62932:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"62917:3:65","nodeType":"YulIdentifier","src":"62917:3:65"},"nativeSrc":"62917:18:65","nodeType":"YulFunctionCall","src":"62917:18:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"62870:37:65","nodeType":"YulIdentifier","src":"62870:37:65"},"nativeSrc":"62870:66:65","nodeType":"YulFunctionCall","src":"62870:66:65"},"nativeSrc":"62870:66:65","nodeType":"YulExpressionStatement","src":"62870:66:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62957:9:65","nodeType":"YulIdentifier","src":"62957:9:65"},{"kind":"number","nativeSrc":"62968:3:65","nodeType":"YulLiteral","src":"62968:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"62953:3:65","nodeType":"YulIdentifier","src":"62953:3:65"},"nativeSrc":"62953:19:65","nodeType":"YulFunctionCall","src":"62953:19:65"},{"arguments":[{"name":"tail","nativeSrc":"62978:4:65","nodeType":"YulIdentifier","src":"62978:4:65"},{"name":"headStart","nativeSrc":"62984:9:65","nodeType":"YulIdentifier","src":"62984:9:65"}],"functionName":{"name":"sub","nativeSrc":"62974:3:65","nodeType":"YulIdentifier","src":"62974:3:65"},"nativeSrc":"62974:20:65","nodeType":"YulFunctionCall","src":"62974:20:65"}],"functionName":{"name":"mstore","nativeSrc":"62946:6:65","nodeType":"YulIdentifier","src":"62946:6:65"},"nativeSrc":"62946:49:65","nodeType":"YulFunctionCall","src":"62946:49:65"},"nativeSrc":"62946:49:65","nodeType":"YulExpressionStatement","src":"62946:49:65"},{"nativeSrc":"63004:84:65","nodeType":"YulAssignment","src":"63004:84:65","value":{"arguments":[{"name":"value4","nativeSrc":"63074:6:65","nodeType":"YulIdentifier","src":"63074:6:65"},{"name":"tail","nativeSrc":"63083:4:65","nodeType":"YulIdentifier","src":"63083:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"63012:61:65","nodeType":"YulIdentifier","src":"63012:61:65"},"nativeSrc":"63012:76:65","nodeType":"YulFunctionCall","src":"63012:76:65"},"variableNames":[{"name":"tail","nativeSrc":"63004:4:65","nodeType":"YulIdentifier","src":"63004:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"62273:822:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"62451:9:65","nodeType":"YulTypedName","src":"62451:9:65","type":""},{"name":"value4","nativeSrc":"62463:6:65","nodeType":"YulTypedName","src":"62463:6:65","type":""},{"name":"value3","nativeSrc":"62471:6:65","nodeType":"YulTypedName","src":"62471:6:65","type":""},{"name":"value2","nativeSrc":"62479:6:65","nodeType":"YulTypedName","src":"62479:6:65","type":""},{"name":"value1","nativeSrc":"62487:6:65","nodeType":"YulTypedName","src":"62487:6:65","type":""},{"name":"value0","nativeSrc":"62495:6:65","nodeType":"YulTypedName","src":"62495:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62506:4:65","nodeType":"YulTypedName","src":"62506:4:65","type":""}],"src":"62273:822:65"},{"body":{"nativeSrc":"63195:413:65","nodeType":"YulBlock","src":"63195:413:65","statements":[{"body":{"nativeSrc":"63241:83:65","nodeType":"YulBlock","src":"63241:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"63243:77:65","nodeType":"YulIdentifier","src":"63243:77:65"},"nativeSrc":"63243:79:65","nodeType":"YulFunctionCall","src":"63243:79:65"},"nativeSrc":"63243:79:65","nodeType":"YulExpressionStatement","src":"63243:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"63216:7:65","nodeType":"YulIdentifier","src":"63216:7:65"},{"name":"headStart","nativeSrc":"63225:9:65","nodeType":"YulIdentifier","src":"63225:9:65"}],"functionName":{"name":"sub","nativeSrc":"63212:3:65","nodeType":"YulIdentifier","src":"63212:3:65"},"nativeSrc":"63212:23:65","nodeType":"YulFunctionCall","src":"63212:23:65"},{"kind":"number","nativeSrc":"63237:2:65","nodeType":"YulLiteral","src":"63237:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"63208:3:65","nodeType":"YulIdentifier","src":"63208:3:65"},"nativeSrc":"63208:32:65","nodeType":"YulFunctionCall","src":"63208:32:65"},"nativeSrc":"63205:119:65","nodeType":"YulIf","src":"63205:119:65"},{"nativeSrc":"63334:128:65","nodeType":"YulBlock","src":"63334:128:65","statements":[{"nativeSrc":"63349:15:65","nodeType":"YulVariableDeclaration","src":"63349:15:65","value":{"kind":"number","nativeSrc":"63363:1:65","nodeType":"YulLiteral","src":"63363:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"63353:6:65","nodeType":"YulTypedName","src":"63353:6:65","type":""}]},{"nativeSrc":"63378:74:65","nodeType":"YulAssignment","src":"63378:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"63424:9:65","nodeType":"YulIdentifier","src":"63424:9:65"},{"name":"offset","nativeSrc":"63435:6:65","nodeType":"YulIdentifier","src":"63435:6:65"}],"functionName":{"name":"add","nativeSrc":"63420:3:65","nodeType":"YulIdentifier","src":"63420:3:65"},"nativeSrc":"63420:22:65","nodeType":"YulFunctionCall","src":"63420:22:65"},{"name":"dataEnd","nativeSrc":"63444:7:65","nodeType":"YulIdentifier","src":"63444:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"63388:31:65","nodeType":"YulIdentifier","src":"63388:31:65"},"nativeSrc":"63388:64:65","nodeType":"YulFunctionCall","src":"63388:64:65"},"variableNames":[{"name":"value0","nativeSrc":"63378:6:65","nodeType":"YulIdentifier","src":"63378:6:65"}]}]},{"nativeSrc":"63472:129:65","nodeType":"YulBlock","src":"63472:129:65","statements":[{"nativeSrc":"63487:16:65","nodeType":"YulVariableDeclaration","src":"63487:16:65","value":{"kind":"number","nativeSrc":"63501:2:65","nodeType":"YulLiteral","src":"63501:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"63491:6:65","nodeType":"YulTypedName","src":"63491:6:65","type":""}]},{"nativeSrc":"63517:74:65","nodeType":"YulAssignment","src":"63517:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"63563:9:65","nodeType":"YulIdentifier","src":"63563:9:65"},{"name":"offset","nativeSrc":"63574:6:65","nodeType":"YulIdentifier","src":"63574:6:65"}],"functionName":{"name":"add","nativeSrc":"63559:3:65","nodeType":"YulIdentifier","src":"63559:3:65"},"nativeSrc":"63559:22:65","nodeType":"YulFunctionCall","src":"63559:22:65"},{"name":"dataEnd","nativeSrc":"63583:7:65","nodeType":"YulIdentifier","src":"63583:7:65"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"63527:31:65","nodeType":"YulIdentifier","src":"63527:31:65"},"nativeSrc":"63527:64:65","nodeType":"YulFunctionCall","src":"63527:64:65"},"variableNames":[{"name":"value1","nativeSrc":"63517:6:65","nodeType":"YulIdentifier","src":"63517:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nativeSrc":"63101:507:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"63157:9:65","nodeType":"YulTypedName","src":"63157:9:65","type":""},{"name":"dataEnd","nativeSrc":"63168:7:65","nodeType":"YulTypedName","src":"63168:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"63180:6:65","nodeType":"YulTypedName","src":"63180:6:65","type":""},{"name":"value1","nativeSrc":"63188:6:65","nodeType":"YulTypedName","src":"63188:6:65","type":""}],"src":"63101:507:65"},{"body":{"nativeSrc":"63642:152:65","nodeType":"YulBlock","src":"63642:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63659:1:65","nodeType":"YulLiteral","src":"63659:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"63662:77:65","nodeType":"YulLiteral","src":"63662:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"63652:6:65","nodeType":"YulIdentifier","src":"63652:6:65"},"nativeSrc":"63652:88:65","nodeType":"YulFunctionCall","src":"63652:88:65"},"nativeSrc":"63652:88:65","nodeType":"YulExpressionStatement","src":"63652:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63756:1:65","nodeType":"YulLiteral","src":"63756:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"63759:4:65","nodeType":"YulLiteral","src":"63759:4:65","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"63749:6:65","nodeType":"YulIdentifier","src":"63749:6:65"},"nativeSrc":"63749:15:65","nodeType":"YulFunctionCall","src":"63749:15:65"},"nativeSrc":"63749:15:65","nodeType":"YulExpressionStatement","src":"63749:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63780:1:65","nodeType":"YulLiteral","src":"63780:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"63783:4:65","nodeType":"YulLiteral","src":"63783:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"63773:6:65","nodeType":"YulIdentifier","src":"63773:6:65"},"nativeSrc":"63773:15:65","nodeType":"YulFunctionCall","src":"63773:15:65"},"nativeSrc":"63773:15:65","nodeType":"YulExpressionStatement","src":"63773:15:65"}]},"name":"panic_error_0x12","nativeSrc":"63614:180:65","nodeType":"YulFunctionDefinition","src":"63614:180:65"},{"body":{"nativeSrc":"63834:142:65","nodeType":"YulBlock","src":"63834:142:65","statements":[{"nativeSrc":"63844:25:65","nodeType":"YulAssignment","src":"63844:25:65","value":{"arguments":[{"name":"x","nativeSrc":"63867:1:65","nodeType":"YulIdentifier","src":"63867:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"63849:17:65","nodeType":"YulIdentifier","src":"63849:17:65"},"nativeSrc":"63849:20:65","nodeType":"YulFunctionCall","src":"63849:20:65"},"variableNames":[{"name":"x","nativeSrc":"63844:1:65","nodeType":"YulIdentifier","src":"63844:1:65"}]},{"nativeSrc":"63878:25:65","nodeType":"YulAssignment","src":"63878:25:65","value":{"arguments":[{"name":"y","nativeSrc":"63901:1:65","nodeType":"YulIdentifier","src":"63901:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"63883:17:65","nodeType":"YulIdentifier","src":"63883:17:65"},"nativeSrc":"63883:20:65","nodeType":"YulFunctionCall","src":"63883:20:65"},"variableNames":[{"name":"y","nativeSrc":"63878:1:65","nodeType":"YulIdentifier","src":"63878:1:65"}]},{"body":{"nativeSrc":"63925:22:65","nodeType":"YulBlock","src":"63925:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"63927:16:65","nodeType":"YulIdentifier","src":"63927:16:65"},"nativeSrc":"63927:18:65","nodeType":"YulFunctionCall","src":"63927:18:65"},"nativeSrc":"63927:18:65","nodeType":"YulExpressionStatement","src":"63927:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"63922:1:65","nodeType":"YulIdentifier","src":"63922:1:65"}],"functionName":{"name":"iszero","nativeSrc":"63915:6:65","nodeType":"YulIdentifier","src":"63915:6:65"},"nativeSrc":"63915:9:65","nodeType":"YulFunctionCall","src":"63915:9:65"},"nativeSrc":"63912:35:65","nodeType":"YulIf","src":"63912:35:65"},{"nativeSrc":"63956:14:65","nodeType":"YulAssignment","src":"63956:14:65","value":{"arguments":[{"name":"x","nativeSrc":"63965:1:65","nodeType":"YulIdentifier","src":"63965:1:65"},{"name":"y","nativeSrc":"63968:1:65","nodeType":"YulIdentifier","src":"63968:1:65"}],"functionName":{"name":"mod","nativeSrc":"63961:3:65","nodeType":"YulIdentifier","src":"63961:3:65"},"nativeSrc":"63961:9:65","nodeType":"YulFunctionCall","src":"63961:9:65"},"variableNames":[{"name":"r","nativeSrc":"63956:1:65","nodeType":"YulIdentifier","src":"63956:1:65"}]}]},"name":"mod_t_uint256","nativeSrc":"63800:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"63823:1:65","nodeType":"YulTypedName","src":"63823:1:65","type":""},{"name":"y","nativeSrc":"63826:1:65","nodeType":"YulTypedName","src":"63826:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"63832:1:65","nodeType":"YulTypedName","src":"63832:1:65","type":""}],"src":"63800:176:65"},{"body":{"nativeSrc":"64030:362:65","nodeType":"YulBlock","src":"64030:362:65","statements":[{"nativeSrc":"64040:25:65","nodeType":"YulAssignment","src":"64040:25:65","value":{"arguments":[{"name":"x","nativeSrc":"64063:1:65","nodeType":"YulIdentifier","src":"64063:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"64045:17:65","nodeType":"YulIdentifier","src":"64045:17:65"},"nativeSrc":"64045:20:65","nodeType":"YulFunctionCall","src":"64045:20:65"},"variableNames":[{"name":"x","nativeSrc":"64040:1:65","nodeType":"YulIdentifier","src":"64040:1:65"}]},{"nativeSrc":"64074:25:65","nodeType":"YulAssignment","src":"64074:25:65","value":{"arguments":[{"name":"y","nativeSrc":"64097:1:65","nodeType":"YulIdentifier","src":"64097:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"64079:17:65","nodeType":"YulIdentifier","src":"64079:17:65"},"nativeSrc":"64079:20:65","nodeType":"YulFunctionCall","src":"64079:20:65"},"variableNames":[{"name":"y","nativeSrc":"64074:1:65","nodeType":"YulIdentifier","src":"64074:1:65"}]},{"nativeSrc":"64108:28:65","nodeType":"YulVariableDeclaration","src":"64108:28:65","value":{"arguments":[{"name":"x","nativeSrc":"64131:1:65","nodeType":"YulIdentifier","src":"64131:1:65"},{"name":"y","nativeSrc":"64134:1:65","nodeType":"YulIdentifier","src":"64134:1:65"}],"functionName":{"name":"mul","nativeSrc":"64127:3:65","nodeType":"YulIdentifier","src":"64127:3:65"},"nativeSrc":"64127:9:65","nodeType":"YulFunctionCall","src":"64127:9:65"},"variables":[{"name":"product_raw","nativeSrc":"64112:11:65","nodeType":"YulTypedName","src":"64112:11:65","type":""}]},{"nativeSrc":"64145:41:65","nodeType":"YulAssignment","src":"64145:41:65","value":{"arguments":[{"name":"product_raw","nativeSrc":"64174:11:65","nodeType":"YulIdentifier","src":"64174:11:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"64156:17:65","nodeType":"YulIdentifier","src":"64156:17:65"},"nativeSrc":"64156:30:65","nodeType":"YulFunctionCall","src":"64156:30:65"},"variableNames":[{"name":"product","nativeSrc":"64145:7:65","nodeType":"YulIdentifier","src":"64145:7:65"}]},{"body":{"nativeSrc":"64363:22:65","nodeType":"YulBlock","src":"64363:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"64365:16:65","nodeType":"YulIdentifier","src":"64365:16:65"},"nativeSrc":"64365:18:65","nodeType":"YulFunctionCall","src":"64365:18:65"},"nativeSrc":"64365:18:65","nodeType":"YulExpressionStatement","src":"64365:18:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"64296:1:65","nodeType":"YulIdentifier","src":"64296:1:65"}],"functionName":{"name":"iszero","nativeSrc":"64289:6:65","nodeType":"YulIdentifier","src":"64289:6:65"},"nativeSrc":"64289:9:65","nodeType":"YulFunctionCall","src":"64289:9:65"},{"arguments":[{"name":"y","nativeSrc":"64319:1:65","nodeType":"YulIdentifier","src":"64319:1:65"},{"arguments":[{"name":"product","nativeSrc":"64326:7:65","nodeType":"YulIdentifier","src":"64326:7:65"},{"name":"x","nativeSrc":"64335:1:65","nodeType":"YulIdentifier","src":"64335:1:65"}],"functionName":{"name":"div","nativeSrc":"64322:3:65","nodeType":"YulIdentifier","src":"64322:3:65"},"nativeSrc":"64322:15:65","nodeType":"YulFunctionCall","src":"64322:15:65"}],"functionName":{"name":"eq","nativeSrc":"64316:2:65","nodeType":"YulIdentifier","src":"64316:2:65"},"nativeSrc":"64316:22:65","nodeType":"YulFunctionCall","src":"64316:22:65"}],"functionName":{"name":"or","nativeSrc":"64269:2:65","nodeType":"YulIdentifier","src":"64269:2:65"},"nativeSrc":"64269:83:65","nodeType":"YulFunctionCall","src":"64269:83:65"}],"functionName":{"name":"iszero","nativeSrc":"64249:6:65","nodeType":"YulIdentifier","src":"64249:6:65"},"nativeSrc":"64249:113:65","nodeType":"YulFunctionCall","src":"64249:113:65"},"nativeSrc":"64246:139:65","nodeType":"YulIf","src":"64246:139:65"}]},"name":"checked_mul_t_uint256","nativeSrc":"63982:410:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"64013:1:65","nodeType":"YulTypedName","src":"64013:1:65","type":""},{"name":"y","nativeSrc":"64016:1:65","nodeType":"YulTypedName","src":"64016:1:65","type":""}],"returnVariables":[{"name":"product","nativeSrc":"64022:7:65","nodeType":"YulTypedName","src":"64022:7:65","type":""}],"src":"63982:410:65"},{"body":{"nativeSrc":"64524:206:65","nodeType":"YulBlock","src":"64524:206:65","statements":[{"nativeSrc":"64534:26:65","nodeType":"YulAssignment","src":"64534:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"64546:9:65","nodeType":"YulIdentifier","src":"64546:9:65"},{"kind":"number","nativeSrc":"64557:2:65","nodeType":"YulLiteral","src":"64557:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"64542:3:65","nodeType":"YulIdentifier","src":"64542:3:65"},"nativeSrc":"64542:18:65","nodeType":"YulFunctionCall","src":"64542:18:65"},"variableNames":[{"name":"tail","nativeSrc":"64534:4:65","nodeType":"YulIdentifier","src":"64534:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"64614:6:65","nodeType":"YulIdentifier","src":"64614:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"64627:9:65","nodeType":"YulIdentifier","src":"64627:9:65"},{"kind":"number","nativeSrc":"64638:1:65","nodeType":"YulLiteral","src":"64638:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"64623:3:65","nodeType":"YulIdentifier","src":"64623:3:65"},"nativeSrc":"64623:17:65","nodeType":"YulFunctionCall","src":"64623:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"64570:43:65","nodeType":"YulIdentifier","src":"64570:43:65"},"nativeSrc":"64570:71:65","nodeType":"YulFunctionCall","src":"64570:71:65"},"nativeSrc":"64570:71:65","nodeType":"YulExpressionStatement","src":"64570:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"64695:6:65","nodeType":"YulIdentifier","src":"64695:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"64708:9:65","nodeType":"YulIdentifier","src":"64708:9:65"},{"kind":"number","nativeSrc":"64719:2:65","nodeType":"YulLiteral","src":"64719:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"64704:3:65","nodeType":"YulIdentifier","src":"64704:3:65"},"nativeSrc":"64704:18:65","nodeType":"YulFunctionCall","src":"64704:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"64651:43:65","nodeType":"YulIdentifier","src":"64651:43:65"},"nativeSrc":"64651:72:65","nodeType":"YulFunctionCall","src":"64651:72:65"},"nativeSrc":"64651:72:65","nodeType":"YulExpressionStatement","src":"64651:72:65"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"64398:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"64488:9:65","nodeType":"YulTypedName","src":"64488:9:65","type":""},{"name":"value1","nativeSrc":"64500:6:65","nodeType":"YulTypedName","src":"64500:6:65","type":""},{"name":"value0","nativeSrc":"64508:6:65","nodeType":"YulTypedName","src":"64508:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"64519:4:65","nodeType":"YulTypedName","src":"64519:4:65","type":""}],"src":"64398:332:65"},{"body":{"nativeSrc":"64842:72:65","nodeType":"YulBlock","src":"64842:72:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"64864:6:65","nodeType":"YulIdentifier","src":"64864:6:65"},{"kind":"number","nativeSrc":"64872:1:65","nodeType":"YulLiteral","src":"64872:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"64860:3:65","nodeType":"YulIdentifier","src":"64860:3:65"},"nativeSrc":"64860:14:65","nodeType":"YulFunctionCall","src":"64860:14:65"},{"hexValue":"4f4654436f72653a20756e6b6e6f776e207061636b65742074797065","kind":"string","nativeSrc":"64876:30:65","nodeType":"YulLiteral","src":"64876:30:65","type":"","value":"OFTCore: unknown packet type"}],"functionName":{"name":"mstore","nativeSrc":"64853:6:65","nodeType":"YulIdentifier","src":"64853:6:65"},"nativeSrc":"64853:54:65","nodeType":"YulFunctionCall","src":"64853:54:65"},"nativeSrc":"64853:54:65","nodeType":"YulExpressionStatement","src":"64853:54:65"}]},"name":"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","nativeSrc":"64736:178:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"64834:6:65","nodeType":"YulTypedName","src":"64834:6:65","type":""}],"src":"64736:178:65"},{"body":{"nativeSrc":"65066:220:65","nodeType":"YulBlock","src":"65066:220:65","statements":[{"nativeSrc":"65076:74:65","nodeType":"YulAssignment","src":"65076:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"65142:3:65","nodeType":"YulIdentifier","src":"65142:3:65"},{"kind":"number","nativeSrc":"65147:2:65","nodeType":"YulLiteral","src":"65147:2:65","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"65083:58:65","nodeType":"YulIdentifier","src":"65083:58:65"},"nativeSrc":"65083:67:65","nodeType":"YulFunctionCall","src":"65083:67:65"},"variableNames":[{"name":"pos","nativeSrc":"65076:3:65","nodeType":"YulIdentifier","src":"65076:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"65248:3:65","nodeType":"YulIdentifier","src":"65248:3:65"}],"functionName":{"name":"store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e","nativeSrc":"65159:88:65","nodeType":"YulIdentifier","src":"65159:88:65"},"nativeSrc":"65159:93:65","nodeType":"YulFunctionCall","src":"65159:93:65"},"nativeSrc":"65159:93:65","nodeType":"YulExpressionStatement","src":"65159:93:65"},{"nativeSrc":"65261:19:65","nodeType":"YulAssignment","src":"65261:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"65272:3:65","nodeType":"YulIdentifier","src":"65272:3:65"},{"kind":"number","nativeSrc":"65277:2:65","nodeType":"YulLiteral","src":"65277:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"65268:3:65","nodeType":"YulIdentifier","src":"65268:3:65"},"nativeSrc":"65268:12:65","nodeType":"YulFunctionCall","src":"65268:12:65"},"variableNames":[{"name":"end","nativeSrc":"65261:3:65","nodeType":"YulIdentifier","src":"65261:3:65"}]}]},"name":"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack","nativeSrc":"64920:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"65054:3:65","nodeType":"YulTypedName","src":"65054:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"65062:3:65","nodeType":"YulTypedName","src":"65062:3:65","type":""}],"src":"64920:366:65"},{"body":{"nativeSrc":"65463:248:65","nodeType":"YulBlock","src":"65463:248:65","statements":[{"nativeSrc":"65473:26:65","nodeType":"YulAssignment","src":"65473:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"65485:9:65","nodeType":"YulIdentifier","src":"65485:9:65"},{"kind":"number","nativeSrc":"65496:2:65","nodeType":"YulLiteral","src":"65496:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"65481:3:65","nodeType":"YulIdentifier","src":"65481:3:65"},"nativeSrc":"65481:18:65","nodeType":"YulFunctionCall","src":"65481:18:65"},"variableNames":[{"name":"tail","nativeSrc":"65473:4:65","nodeType":"YulIdentifier","src":"65473:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"65520:9:65","nodeType":"YulIdentifier","src":"65520:9:65"},{"kind":"number","nativeSrc":"65531:1:65","nodeType":"YulLiteral","src":"65531:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"65516:3:65","nodeType":"YulIdentifier","src":"65516:3:65"},"nativeSrc":"65516:17:65","nodeType":"YulFunctionCall","src":"65516:17:65"},{"arguments":[{"name":"tail","nativeSrc":"65539:4:65","nodeType":"YulIdentifier","src":"65539:4:65"},{"name":"headStart","nativeSrc":"65545:9:65","nodeType":"YulIdentifier","src":"65545:9:65"}],"functionName":{"name":"sub","nativeSrc":"65535:3:65","nodeType":"YulIdentifier","src":"65535:3:65"},"nativeSrc":"65535:20:65","nodeType":"YulFunctionCall","src":"65535:20:65"}],"functionName":{"name":"mstore","nativeSrc":"65509:6:65","nodeType":"YulIdentifier","src":"65509:6:65"},"nativeSrc":"65509:47:65","nodeType":"YulFunctionCall","src":"65509:47:65"},"nativeSrc":"65509:47:65","nodeType":"YulExpressionStatement","src":"65509:47:65"},{"nativeSrc":"65565:139:65","nodeType":"YulAssignment","src":"65565:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"65699:4:65","nodeType":"YulIdentifier","src":"65699:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack","nativeSrc":"65573:124:65","nodeType":"YulIdentifier","src":"65573:124:65"},"nativeSrc":"65573:131:65","nodeType":"YulFunctionCall","src":"65573:131:65"},"variableNames":[{"name":"tail","nativeSrc":"65565:4:65","nodeType":"YulIdentifier","src":"65565:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"65292:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"65443:9:65","nodeType":"YulTypedName","src":"65443:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"65458:4:65","nodeType":"YulTypedName","src":"65458:4:65","type":""}],"src":"65292:419:65"},{"body":{"nativeSrc":"65823:69:65","nodeType":"YulBlock","src":"65823:69:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"65845:6:65","nodeType":"YulIdentifier","src":"65845:6:65"},{"kind":"number","nativeSrc":"65853:1:65","nodeType":"YulLiteral","src":"65853:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"65841:3:65","nodeType":"YulIdentifier","src":"65841:3:65"},"nativeSrc":"65841:14:65","nodeType":"YulFunctionCall","src":"65841:14:65"},{"hexValue":"4f4654436f72653a20616d6f756e7420746f6f20736d616c6c","kind":"string","nativeSrc":"65857:27:65","nodeType":"YulLiteral","src":"65857:27:65","type":"","value":"OFTCore: amount too small"}],"functionName":{"name":"mstore","nativeSrc":"65834:6:65","nodeType":"YulIdentifier","src":"65834:6:65"},"nativeSrc":"65834:51:65","nodeType":"YulFunctionCall","src":"65834:51:65"},"nativeSrc":"65834:51:65","nodeType":"YulExpressionStatement","src":"65834:51:65"}]},"name":"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","nativeSrc":"65717:175:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"65815:6:65","nodeType":"YulTypedName","src":"65815:6:65","type":""}],"src":"65717:175:65"},{"body":{"nativeSrc":"66044:220:65","nodeType":"YulBlock","src":"66044:220:65","statements":[{"nativeSrc":"66054:74:65","nodeType":"YulAssignment","src":"66054:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"66120:3:65","nodeType":"YulIdentifier","src":"66120:3:65"},{"kind":"number","nativeSrc":"66125:2:65","nodeType":"YulLiteral","src":"66125:2:65","type":"","value":"25"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"66061:58:65","nodeType":"YulIdentifier","src":"66061:58:65"},"nativeSrc":"66061:67:65","nodeType":"YulFunctionCall","src":"66061:67:65"},"variableNames":[{"name":"pos","nativeSrc":"66054:3:65","nodeType":"YulIdentifier","src":"66054:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"66226:3:65","nodeType":"YulIdentifier","src":"66226:3:65"}],"functionName":{"name":"store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67","nativeSrc":"66137:88:65","nodeType":"YulIdentifier","src":"66137:88:65"},"nativeSrc":"66137:93:65","nodeType":"YulFunctionCall","src":"66137:93:65"},"nativeSrc":"66137:93:65","nodeType":"YulExpressionStatement","src":"66137:93:65"},{"nativeSrc":"66239:19:65","nodeType":"YulAssignment","src":"66239:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"66250:3:65","nodeType":"YulIdentifier","src":"66250:3:65"},{"kind":"number","nativeSrc":"66255:2:65","nodeType":"YulLiteral","src":"66255:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"66246:3:65","nodeType":"YulIdentifier","src":"66246:3:65"},"nativeSrc":"66246:12:65","nodeType":"YulFunctionCall","src":"66246:12:65"},"variableNames":[{"name":"end","nativeSrc":"66239:3:65","nodeType":"YulIdentifier","src":"66239:3:65"}]}]},"name":"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack","nativeSrc":"65898:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"66032:3:65","nodeType":"YulTypedName","src":"66032:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"66040:3:65","nodeType":"YulTypedName","src":"66040:3:65","type":""}],"src":"65898:366:65"},{"body":{"nativeSrc":"66441:248:65","nodeType":"YulBlock","src":"66441:248:65","statements":[{"nativeSrc":"66451:26:65","nodeType":"YulAssignment","src":"66451:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"66463:9:65","nodeType":"YulIdentifier","src":"66463:9:65"},{"kind":"number","nativeSrc":"66474:2:65","nodeType":"YulLiteral","src":"66474:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"66459:3:65","nodeType":"YulIdentifier","src":"66459:3:65"},"nativeSrc":"66459:18:65","nodeType":"YulFunctionCall","src":"66459:18:65"},"variableNames":[{"name":"tail","nativeSrc":"66451:4:65","nodeType":"YulIdentifier","src":"66451:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"66498:9:65","nodeType":"YulIdentifier","src":"66498:9:65"},{"kind":"number","nativeSrc":"66509:1:65","nodeType":"YulLiteral","src":"66509:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"66494:3:65","nodeType":"YulIdentifier","src":"66494:3:65"},"nativeSrc":"66494:17:65","nodeType":"YulFunctionCall","src":"66494:17:65"},{"arguments":[{"name":"tail","nativeSrc":"66517:4:65","nodeType":"YulIdentifier","src":"66517:4:65"},{"name":"headStart","nativeSrc":"66523:9:65","nodeType":"YulIdentifier","src":"66523:9:65"}],"functionName":{"name":"sub","nativeSrc":"66513:3:65","nodeType":"YulIdentifier","src":"66513:3:65"},"nativeSrc":"66513:20:65","nodeType":"YulFunctionCall","src":"66513:20:65"}],"functionName":{"name":"mstore","nativeSrc":"66487:6:65","nodeType":"YulIdentifier","src":"66487:6:65"},"nativeSrc":"66487:47:65","nodeType":"YulFunctionCall","src":"66487:47:65"},"nativeSrc":"66487:47:65","nodeType":"YulExpressionStatement","src":"66487:47:65"},{"nativeSrc":"66543:139:65","nodeType":"YulAssignment","src":"66543:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"66677:4:65","nodeType":"YulIdentifier","src":"66677:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack","nativeSrc":"66551:124:65","nodeType":"YulIdentifier","src":"66551:124:65"},"nativeSrc":"66551:131:65","nodeType":"YulFunctionCall","src":"66551:131:65"},"variableNames":[{"name":"tail","nativeSrc":"66543:4:65","nodeType":"YulIdentifier","src":"66543:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"66270:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"66421:9:65","nodeType":"YulTypedName","src":"66421:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"66436:4:65","nodeType":"YulTypedName","src":"66436:4:65","type":""}],"src":"66270:419:65"},{"body":{"nativeSrc":"66801:58:65","nodeType":"YulBlock","src":"66801:58:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"66823:6:65","nodeType":"YulIdentifier","src":"66823:6:65"},{"kind":"number","nativeSrc":"66831:1:65","nodeType":"YulLiteral","src":"66831:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"66819:3:65","nodeType":"YulIdentifier","src":"66819:3:65"},"nativeSrc":"66819:14:65","nodeType":"YulFunctionCall","src":"66819:14:65"},{"hexValue":"736c6963655f6f766572666c6f77","kind":"string","nativeSrc":"66835:16:65","nodeType":"YulLiteral","src":"66835:16:65","type":"","value":"slice_overflow"}],"functionName":{"name":"mstore","nativeSrc":"66812:6:65","nodeType":"YulIdentifier","src":"66812:6:65"},"nativeSrc":"66812:40:65","nodeType":"YulFunctionCall","src":"66812:40:65"},"nativeSrc":"66812:40:65","nodeType":"YulExpressionStatement","src":"66812:40:65"}]},"name":"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","nativeSrc":"66695:164:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"66793:6:65","nodeType":"YulTypedName","src":"66793:6:65","type":""}],"src":"66695:164:65"},{"body":{"nativeSrc":"67011:220:65","nodeType":"YulBlock","src":"67011:220:65","statements":[{"nativeSrc":"67021:74:65","nodeType":"YulAssignment","src":"67021:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"67087:3:65","nodeType":"YulIdentifier","src":"67087:3:65"},{"kind":"number","nativeSrc":"67092:2:65","nodeType":"YulLiteral","src":"67092:2:65","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"67028:58:65","nodeType":"YulIdentifier","src":"67028:58:65"},"nativeSrc":"67028:67:65","nodeType":"YulFunctionCall","src":"67028:67:65"},"variableNames":[{"name":"pos","nativeSrc":"67021:3:65","nodeType":"YulIdentifier","src":"67021:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"67193:3:65","nodeType":"YulIdentifier","src":"67193:3:65"}],"functionName":{"name":"store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e","nativeSrc":"67104:88:65","nodeType":"YulIdentifier","src":"67104:88:65"},"nativeSrc":"67104:93:65","nodeType":"YulFunctionCall","src":"67104:93:65"},"nativeSrc":"67104:93:65","nodeType":"YulExpressionStatement","src":"67104:93:65"},{"nativeSrc":"67206:19:65","nodeType":"YulAssignment","src":"67206:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"67217:3:65","nodeType":"YulIdentifier","src":"67217:3:65"},{"kind":"number","nativeSrc":"67222:2:65","nodeType":"YulLiteral","src":"67222:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67213:3:65","nodeType":"YulIdentifier","src":"67213:3:65"},"nativeSrc":"67213:12:65","nodeType":"YulFunctionCall","src":"67213:12:65"},"variableNames":[{"name":"end","nativeSrc":"67206:3:65","nodeType":"YulIdentifier","src":"67206:3:65"}]}]},"name":"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack","nativeSrc":"66865:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"66999:3:65","nodeType":"YulTypedName","src":"66999:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"67007:3:65","nodeType":"YulTypedName","src":"67007:3:65","type":""}],"src":"66865:366:65"},{"body":{"nativeSrc":"67408:248:65","nodeType":"YulBlock","src":"67408:248:65","statements":[{"nativeSrc":"67418:26:65","nodeType":"YulAssignment","src":"67418:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"67430:9:65","nodeType":"YulIdentifier","src":"67430:9:65"},{"kind":"number","nativeSrc":"67441:2:65","nodeType":"YulLiteral","src":"67441:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67426:3:65","nodeType":"YulIdentifier","src":"67426:3:65"},"nativeSrc":"67426:18:65","nodeType":"YulFunctionCall","src":"67426:18:65"},"variableNames":[{"name":"tail","nativeSrc":"67418:4:65","nodeType":"YulIdentifier","src":"67418:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"67465:9:65","nodeType":"YulIdentifier","src":"67465:9:65"},{"kind":"number","nativeSrc":"67476:1:65","nodeType":"YulLiteral","src":"67476:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"67461:3:65","nodeType":"YulIdentifier","src":"67461:3:65"},"nativeSrc":"67461:17:65","nodeType":"YulFunctionCall","src":"67461:17:65"},{"arguments":[{"name":"tail","nativeSrc":"67484:4:65","nodeType":"YulIdentifier","src":"67484:4:65"},{"name":"headStart","nativeSrc":"67490:9:65","nodeType":"YulIdentifier","src":"67490:9:65"}],"functionName":{"name":"sub","nativeSrc":"67480:3:65","nodeType":"YulIdentifier","src":"67480:3:65"},"nativeSrc":"67480:20:65","nodeType":"YulFunctionCall","src":"67480:20:65"}],"functionName":{"name":"mstore","nativeSrc":"67454:6:65","nodeType":"YulIdentifier","src":"67454:6:65"},"nativeSrc":"67454:47:65","nodeType":"YulFunctionCall","src":"67454:47:65"},"nativeSrc":"67454:47:65","nodeType":"YulExpressionStatement","src":"67454:47:65"},{"nativeSrc":"67510:139:65","nodeType":"YulAssignment","src":"67510:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"67644:4:65","nodeType":"YulIdentifier","src":"67644:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack","nativeSrc":"67518:124:65","nodeType":"YulIdentifier","src":"67518:124:65"},"nativeSrc":"67518:131:65","nodeType":"YulFunctionCall","src":"67518:131:65"},"variableNames":[{"name":"tail","nativeSrc":"67510:4:65","nodeType":"YulIdentifier","src":"67510:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"67237:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"67388:9:65","nodeType":"YulTypedName","src":"67388:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"67403:4:65","nodeType":"YulTypedName","src":"67403:4:65","type":""}],"src":"67237:419:65"},{"body":{"nativeSrc":"67768:61:65","nodeType":"YulBlock","src":"67768:61:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"67790:6:65","nodeType":"YulIdentifier","src":"67790:6:65"},{"kind":"number","nativeSrc":"67798:1:65","nodeType":"YulLiteral","src":"67798:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"67786:3:65","nodeType":"YulIdentifier","src":"67786:3:65"},"nativeSrc":"67786:14:65","nodeType":"YulFunctionCall","src":"67786:14:65"},{"hexValue":"736c6963655f6f75744f66426f756e6473","kind":"string","nativeSrc":"67802:19:65","nodeType":"YulLiteral","src":"67802:19:65","type":"","value":"slice_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"67779:6:65","nodeType":"YulIdentifier","src":"67779:6:65"},"nativeSrc":"67779:43:65","nodeType":"YulFunctionCall","src":"67779:43:65"},"nativeSrc":"67779:43:65","nodeType":"YulExpressionStatement","src":"67779:43:65"}]},"name":"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","nativeSrc":"67662:167:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"67760:6:65","nodeType":"YulTypedName","src":"67760:6:65","type":""}],"src":"67662:167:65"},{"body":{"nativeSrc":"67981:220:65","nodeType":"YulBlock","src":"67981:220:65","statements":[{"nativeSrc":"67991:74:65","nodeType":"YulAssignment","src":"67991:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"68057:3:65","nodeType":"YulIdentifier","src":"68057:3:65"},{"kind":"number","nativeSrc":"68062:2:65","nodeType":"YulLiteral","src":"68062:2:65","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"67998:58:65","nodeType":"YulIdentifier","src":"67998:58:65"},"nativeSrc":"67998:67:65","nodeType":"YulFunctionCall","src":"67998:67:65"},"variableNames":[{"name":"pos","nativeSrc":"67991:3:65","nodeType":"YulIdentifier","src":"67991:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"68163:3:65","nodeType":"YulIdentifier","src":"68163:3:65"}],"functionName":{"name":"store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0","nativeSrc":"68074:88:65","nodeType":"YulIdentifier","src":"68074:88:65"},"nativeSrc":"68074:93:65","nodeType":"YulFunctionCall","src":"68074:93:65"},"nativeSrc":"68074:93:65","nodeType":"YulExpressionStatement","src":"68074:93:65"},{"nativeSrc":"68176:19:65","nodeType":"YulAssignment","src":"68176:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"68187:3:65","nodeType":"YulIdentifier","src":"68187:3:65"},{"kind":"number","nativeSrc":"68192:2:65","nodeType":"YulLiteral","src":"68192:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68183:3:65","nodeType":"YulIdentifier","src":"68183:3:65"},"nativeSrc":"68183:12:65","nodeType":"YulFunctionCall","src":"68183:12:65"},"variableNames":[{"name":"end","nativeSrc":"68176:3:65","nodeType":"YulIdentifier","src":"68176:3:65"}]}]},"name":"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack","nativeSrc":"67835:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"67969:3:65","nodeType":"YulTypedName","src":"67969:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"67977:3:65","nodeType":"YulTypedName","src":"67977:3:65","type":""}],"src":"67835:366:65"},{"body":{"nativeSrc":"68378:248:65","nodeType":"YulBlock","src":"68378:248:65","statements":[{"nativeSrc":"68388:26:65","nodeType":"YulAssignment","src":"68388:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"68400:9:65","nodeType":"YulIdentifier","src":"68400:9:65"},{"kind":"number","nativeSrc":"68411:2:65","nodeType":"YulLiteral","src":"68411:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68396:3:65","nodeType":"YulIdentifier","src":"68396:3:65"},"nativeSrc":"68396:18:65","nodeType":"YulFunctionCall","src":"68396:18:65"},"variableNames":[{"name":"tail","nativeSrc":"68388:4:65","nodeType":"YulIdentifier","src":"68388:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68435:9:65","nodeType":"YulIdentifier","src":"68435:9:65"},{"kind":"number","nativeSrc":"68446:1:65","nodeType":"YulLiteral","src":"68446:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"68431:3:65","nodeType":"YulIdentifier","src":"68431:3:65"},"nativeSrc":"68431:17:65","nodeType":"YulFunctionCall","src":"68431:17:65"},{"arguments":[{"name":"tail","nativeSrc":"68454:4:65","nodeType":"YulIdentifier","src":"68454:4:65"},{"name":"headStart","nativeSrc":"68460:9:65","nodeType":"YulIdentifier","src":"68460:9:65"}],"functionName":{"name":"sub","nativeSrc":"68450:3:65","nodeType":"YulIdentifier","src":"68450:3:65"},"nativeSrc":"68450:20:65","nodeType":"YulFunctionCall","src":"68450:20:65"}],"functionName":{"name":"mstore","nativeSrc":"68424:6:65","nodeType":"YulIdentifier","src":"68424:6:65"},"nativeSrc":"68424:47:65","nodeType":"YulFunctionCall","src":"68424:47:65"},"nativeSrc":"68424:47:65","nodeType":"YulExpressionStatement","src":"68424:47:65"},{"nativeSrc":"68480:139:65","nodeType":"YulAssignment","src":"68480:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"68614:4:65","nodeType":"YulIdentifier","src":"68614:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack","nativeSrc":"68488:124:65","nodeType":"YulIdentifier","src":"68488:124:65"},"nativeSrc":"68488:131:65","nodeType":"YulFunctionCall","src":"68488:131:65"},"variableNames":[{"name":"tail","nativeSrc":"68480:4:65","nodeType":"YulIdentifier","src":"68480:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"68207:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"68358:9:65","nodeType":"YulTypedName","src":"68358:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"68373:4:65","nodeType":"YulTypedName","src":"68373:4:65","type":""}],"src":"68207:419:65"},{"body":{"nativeSrc":"68738:116:65","nodeType":"YulBlock","src":"68738:116:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68760:6:65","nodeType":"YulIdentifier","src":"68760:6:65"},{"kind":"number","nativeSrc":"68768:1:65","nodeType":"YulLiteral","src":"68768:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"68756:3:65","nodeType":"YulIdentifier","src":"68756:3:65"},"nativeSrc":"68756:14:65","nodeType":"YulFunctionCall","src":"68756:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373","kind":"string","nativeSrc":"68772:34:65","nodeType":"YulLiteral","src":"68772:34:65","type":"","value":"NonblockingLzApp: no stored mess"}],"functionName":{"name":"mstore","nativeSrc":"68749:6:65","nodeType":"YulIdentifier","src":"68749:6:65"},"nativeSrc":"68749:58:65","nodeType":"YulFunctionCall","src":"68749:58:65"},"nativeSrc":"68749:58:65","nodeType":"YulExpressionStatement","src":"68749:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"68828:6:65","nodeType":"YulIdentifier","src":"68828:6:65"},{"kind":"number","nativeSrc":"68836:2:65","nodeType":"YulLiteral","src":"68836:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"68824:3:65","nodeType":"YulIdentifier","src":"68824:3:65"},"nativeSrc":"68824:15:65","nodeType":"YulFunctionCall","src":"68824:15:65"},{"hexValue":"616765","kind":"string","nativeSrc":"68841:5:65","nodeType":"YulLiteral","src":"68841:5:65","type":"","value":"age"}],"functionName":{"name":"mstore","nativeSrc":"68817:6:65","nodeType":"YulIdentifier","src":"68817:6:65"},"nativeSrc":"68817:30:65","nodeType":"YulFunctionCall","src":"68817:30:65"},"nativeSrc":"68817:30:65","nodeType":"YulExpressionStatement","src":"68817:30:65"}]},"name":"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","nativeSrc":"68632:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"68730:6:65","nodeType":"YulTypedName","src":"68730:6:65","type":""}],"src":"68632:222:65"},{"body":{"nativeSrc":"69006:220:65","nodeType":"YulBlock","src":"69006:220:65","statements":[{"nativeSrc":"69016:74:65","nodeType":"YulAssignment","src":"69016:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"69082:3:65","nodeType":"YulIdentifier","src":"69082:3:65"},{"kind":"number","nativeSrc":"69087:2:65","nodeType":"YulLiteral","src":"69087:2:65","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"69023:58:65","nodeType":"YulIdentifier","src":"69023:58:65"},"nativeSrc":"69023:67:65","nodeType":"YulFunctionCall","src":"69023:67:65"},"variableNames":[{"name":"pos","nativeSrc":"69016:3:65","nodeType":"YulIdentifier","src":"69016:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"69188:3:65","nodeType":"YulIdentifier","src":"69188:3:65"}],"functionName":{"name":"store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894","nativeSrc":"69099:88:65","nodeType":"YulIdentifier","src":"69099:88:65"},"nativeSrc":"69099:93:65","nodeType":"YulFunctionCall","src":"69099:93:65"},"nativeSrc":"69099:93:65","nodeType":"YulExpressionStatement","src":"69099:93:65"},{"nativeSrc":"69201:19:65","nodeType":"YulAssignment","src":"69201:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"69212:3:65","nodeType":"YulIdentifier","src":"69212:3:65"},{"kind":"number","nativeSrc":"69217:2:65","nodeType":"YulLiteral","src":"69217:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"69208:3:65","nodeType":"YulIdentifier","src":"69208:3:65"},"nativeSrc":"69208:12:65","nodeType":"YulFunctionCall","src":"69208:12:65"},"variableNames":[{"name":"end","nativeSrc":"69201:3:65","nodeType":"YulIdentifier","src":"69201:3:65"}]}]},"name":"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack","nativeSrc":"68860:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"68994:3:65","nodeType":"YulTypedName","src":"68994:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"69002:3:65","nodeType":"YulTypedName","src":"69002:3:65","type":""}],"src":"68860:366:65"},{"body":{"nativeSrc":"69403:248:65","nodeType":"YulBlock","src":"69403:248:65","statements":[{"nativeSrc":"69413:26:65","nodeType":"YulAssignment","src":"69413:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"69425:9:65","nodeType":"YulIdentifier","src":"69425:9:65"},{"kind":"number","nativeSrc":"69436:2:65","nodeType":"YulLiteral","src":"69436:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"69421:3:65","nodeType":"YulIdentifier","src":"69421:3:65"},"nativeSrc":"69421:18:65","nodeType":"YulFunctionCall","src":"69421:18:65"},"variableNames":[{"name":"tail","nativeSrc":"69413:4:65","nodeType":"YulIdentifier","src":"69413:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"69460:9:65","nodeType":"YulIdentifier","src":"69460:9:65"},{"kind":"number","nativeSrc":"69471:1:65","nodeType":"YulLiteral","src":"69471:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"69456:3:65","nodeType":"YulIdentifier","src":"69456:3:65"},"nativeSrc":"69456:17:65","nodeType":"YulFunctionCall","src":"69456:17:65"},{"arguments":[{"name":"tail","nativeSrc":"69479:4:65","nodeType":"YulIdentifier","src":"69479:4:65"},{"name":"headStart","nativeSrc":"69485:9:65","nodeType":"YulIdentifier","src":"69485:9:65"}],"functionName":{"name":"sub","nativeSrc":"69475:3:65","nodeType":"YulIdentifier","src":"69475:3:65"},"nativeSrc":"69475:20:65","nodeType":"YulFunctionCall","src":"69475:20:65"}],"functionName":{"name":"mstore","nativeSrc":"69449:6:65","nodeType":"YulIdentifier","src":"69449:6:65"},"nativeSrc":"69449:47:65","nodeType":"YulFunctionCall","src":"69449:47:65"},"nativeSrc":"69449:47:65","nodeType":"YulExpressionStatement","src":"69449:47:65"},{"nativeSrc":"69505:139:65","nodeType":"YulAssignment","src":"69505:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"69639:4:65","nodeType":"YulIdentifier","src":"69639:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack","nativeSrc":"69513:124:65","nodeType":"YulIdentifier","src":"69513:124:65"},"nativeSrc":"69513:131:65","nodeType":"YulFunctionCall","src":"69513:131:65"},"variableNames":[{"name":"tail","nativeSrc":"69505:4:65","nodeType":"YulIdentifier","src":"69505:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"69232:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69383:9:65","nodeType":"YulTypedName","src":"69383:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"69398:4:65","nodeType":"YulTypedName","src":"69398:4:65","type":""}],"src":"69232:419:65"},{"body":{"nativeSrc":"69763:114:65","nodeType":"YulBlock","src":"69763:114:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"69785:6:65","nodeType":"YulIdentifier","src":"69785:6:65"},{"kind":"number","nativeSrc":"69793:1:65","nodeType":"YulLiteral","src":"69793:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"69781:3:65","nodeType":"YulIdentifier","src":"69781:3:65"},"nativeSrc":"69781:14:65","nodeType":"YulFunctionCall","src":"69781:14:65"},{"hexValue":"4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61","kind":"string","nativeSrc":"69797:34:65","nodeType":"YulLiteral","src":"69797:34:65","type":"","value":"NonblockingLzApp: invalid payloa"}],"functionName":{"name":"mstore","nativeSrc":"69774:6:65","nodeType":"YulIdentifier","src":"69774:6:65"},"nativeSrc":"69774:58:65","nodeType":"YulFunctionCall","src":"69774:58:65"},"nativeSrc":"69774:58:65","nodeType":"YulExpressionStatement","src":"69774:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"69853:6:65","nodeType":"YulIdentifier","src":"69853:6:65"},{"kind":"number","nativeSrc":"69861:2:65","nodeType":"YulLiteral","src":"69861:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"69849:3:65","nodeType":"YulIdentifier","src":"69849:3:65"},"nativeSrc":"69849:15:65","nodeType":"YulFunctionCall","src":"69849:15:65"},{"hexValue":"64","kind":"string","nativeSrc":"69866:3:65","nodeType":"YulLiteral","src":"69866:3:65","type":"","value":"d"}],"functionName":{"name":"mstore","nativeSrc":"69842:6:65","nodeType":"YulIdentifier","src":"69842:6:65"},"nativeSrc":"69842:28:65","nodeType":"YulFunctionCall","src":"69842:28:65"},"nativeSrc":"69842:28:65","nodeType":"YulExpressionStatement","src":"69842:28:65"}]},"name":"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","nativeSrc":"69657:220:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"69755:6:65","nodeType":"YulTypedName","src":"69755:6:65","type":""}],"src":"69657:220:65"},{"body":{"nativeSrc":"70029:220:65","nodeType":"YulBlock","src":"70029:220:65","statements":[{"nativeSrc":"70039:74:65","nodeType":"YulAssignment","src":"70039:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"70105:3:65","nodeType":"YulIdentifier","src":"70105:3:65"},{"kind":"number","nativeSrc":"70110:2:65","nodeType":"YulLiteral","src":"70110:2:65","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"70046:58:65","nodeType":"YulIdentifier","src":"70046:58:65"},"nativeSrc":"70046:67:65","nodeType":"YulFunctionCall","src":"70046:67:65"},"variableNames":[{"name":"pos","nativeSrc":"70039:3:65","nodeType":"YulIdentifier","src":"70039:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"70211:3:65","nodeType":"YulIdentifier","src":"70211:3:65"}],"functionName":{"name":"store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3","nativeSrc":"70122:88:65","nodeType":"YulIdentifier","src":"70122:88:65"},"nativeSrc":"70122:93:65","nodeType":"YulFunctionCall","src":"70122:93:65"},"nativeSrc":"70122:93:65","nodeType":"YulExpressionStatement","src":"70122:93:65"},{"nativeSrc":"70224:19:65","nodeType":"YulAssignment","src":"70224:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"70235:3:65","nodeType":"YulIdentifier","src":"70235:3:65"},{"kind":"number","nativeSrc":"70240:2:65","nodeType":"YulLiteral","src":"70240:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"70231:3:65","nodeType":"YulIdentifier","src":"70231:3:65"},"nativeSrc":"70231:12:65","nodeType":"YulFunctionCall","src":"70231:12:65"},"variableNames":[{"name":"end","nativeSrc":"70224:3:65","nodeType":"YulIdentifier","src":"70224:3:65"}]}]},"name":"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack","nativeSrc":"69883:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"70017:3:65","nodeType":"YulTypedName","src":"70017:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"70025:3:65","nodeType":"YulTypedName","src":"70025:3:65","type":""}],"src":"69883:366:65"},{"body":{"nativeSrc":"70426:248:65","nodeType":"YulBlock","src":"70426:248:65","statements":[{"nativeSrc":"70436:26:65","nodeType":"YulAssignment","src":"70436:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"70448:9:65","nodeType":"YulIdentifier","src":"70448:9:65"},{"kind":"number","nativeSrc":"70459:2:65","nodeType":"YulLiteral","src":"70459:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70444:3:65","nodeType":"YulIdentifier","src":"70444:3:65"},"nativeSrc":"70444:18:65","nodeType":"YulFunctionCall","src":"70444:18:65"},"variableNames":[{"name":"tail","nativeSrc":"70436:4:65","nodeType":"YulIdentifier","src":"70436:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"70483:9:65","nodeType":"YulIdentifier","src":"70483:9:65"},{"kind":"number","nativeSrc":"70494:1:65","nodeType":"YulLiteral","src":"70494:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"70479:3:65","nodeType":"YulIdentifier","src":"70479:3:65"},"nativeSrc":"70479:17:65","nodeType":"YulFunctionCall","src":"70479:17:65"},{"arguments":[{"name":"tail","nativeSrc":"70502:4:65","nodeType":"YulIdentifier","src":"70502:4:65"},{"name":"headStart","nativeSrc":"70508:9:65","nodeType":"YulIdentifier","src":"70508:9:65"}],"functionName":{"name":"sub","nativeSrc":"70498:3:65","nodeType":"YulIdentifier","src":"70498:3:65"},"nativeSrc":"70498:20:65","nodeType":"YulFunctionCall","src":"70498:20:65"}],"functionName":{"name":"mstore","nativeSrc":"70472:6:65","nodeType":"YulIdentifier","src":"70472:6:65"},"nativeSrc":"70472:47:65","nodeType":"YulFunctionCall","src":"70472:47:65"},"nativeSrc":"70472:47:65","nodeType":"YulExpressionStatement","src":"70472:47:65"},{"nativeSrc":"70528:139:65","nodeType":"YulAssignment","src":"70528:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"70662:4:65","nodeType":"YulIdentifier","src":"70662:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack","nativeSrc":"70536:124:65","nodeType":"YulIdentifier","src":"70536:124:65"},"nativeSrc":"70536:131:65","nodeType":"YulFunctionCall","src":"70536:131:65"},"variableNames":[{"name":"tail","nativeSrc":"70528:4:65","nodeType":"YulIdentifier","src":"70528:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"70255:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70406:9:65","nodeType":"YulTypedName","src":"70406:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70421:4:65","nodeType":"YulTypedName","src":"70421:4:65","type":""}],"src":"70255:419:65"},{"body":{"nativeSrc":"70886:446:65","nodeType":"YulBlock","src":"70886:446:65","statements":[{"nativeSrc":"70896:27:65","nodeType":"YulAssignment","src":"70896:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"70908:9:65","nodeType":"YulIdentifier","src":"70908:9:65"},{"kind":"number","nativeSrc":"70919:3:65","nodeType":"YulLiteral","src":"70919:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"70904:3:65","nodeType":"YulIdentifier","src":"70904:3:65"},"nativeSrc":"70904:19:65","nodeType":"YulFunctionCall","src":"70904:19:65"},"variableNames":[{"name":"tail","nativeSrc":"70896:4:65","nodeType":"YulIdentifier","src":"70896:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"70975:6:65","nodeType":"YulIdentifier","src":"70975:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"70988:9:65","nodeType":"YulIdentifier","src":"70988:9:65"},{"kind":"number","nativeSrc":"70999:1:65","nodeType":"YulLiteral","src":"70999:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"70984:3:65","nodeType":"YulIdentifier","src":"70984:3:65"},"nativeSrc":"70984:17:65","nodeType":"YulFunctionCall","src":"70984:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"70933:41:65","nodeType":"YulIdentifier","src":"70933:41:65"},"nativeSrc":"70933:69:65","nodeType":"YulFunctionCall","src":"70933:69:65"},"nativeSrc":"70933:69:65","nodeType":"YulExpressionStatement","src":"70933:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"71023:9:65","nodeType":"YulIdentifier","src":"71023:9:65"},{"kind":"number","nativeSrc":"71034:2:65","nodeType":"YulLiteral","src":"71034:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"71019:3:65","nodeType":"YulIdentifier","src":"71019:3:65"},"nativeSrc":"71019:18:65","nodeType":"YulFunctionCall","src":"71019:18:65"},{"arguments":[{"name":"tail","nativeSrc":"71043:4:65","nodeType":"YulIdentifier","src":"71043:4:65"},{"name":"headStart","nativeSrc":"71049:9:65","nodeType":"YulIdentifier","src":"71049:9:65"}],"functionName":{"name":"sub","nativeSrc":"71039:3:65","nodeType":"YulIdentifier","src":"71039:3:65"},"nativeSrc":"71039:20:65","nodeType":"YulFunctionCall","src":"71039:20:65"}],"functionName":{"name":"mstore","nativeSrc":"71012:6:65","nodeType":"YulIdentifier","src":"71012:6:65"},"nativeSrc":"71012:48:65","nodeType":"YulFunctionCall","src":"71012:48:65"},"nativeSrc":"71012:48:65","nodeType":"YulExpressionStatement","src":"71012:48:65"},{"nativeSrc":"71069:94:65","nodeType":"YulAssignment","src":"71069:94:65","value":{"arguments":[{"name":"value1","nativeSrc":"71141:6:65","nodeType":"YulIdentifier","src":"71141:6:65"},{"name":"value2","nativeSrc":"71149:6:65","nodeType":"YulIdentifier","src":"71149:6:65"},{"name":"tail","nativeSrc":"71158:4:65","nodeType":"YulIdentifier","src":"71158:4:65"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"71077:63:65","nodeType":"YulIdentifier","src":"71077:63:65"},"nativeSrc":"71077:86:65","nodeType":"YulFunctionCall","src":"71077:86:65"},"variableNames":[{"name":"tail","nativeSrc":"71069:4:65","nodeType":"YulIdentifier","src":"71069:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"71215:6:65","nodeType":"YulIdentifier","src":"71215:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"71228:9:65","nodeType":"YulIdentifier","src":"71228:9:65"},{"kind":"number","nativeSrc":"71239:2:65","nodeType":"YulLiteral","src":"71239:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"71224:3:65","nodeType":"YulIdentifier","src":"71224:3:65"},"nativeSrc":"71224:18:65","nodeType":"YulFunctionCall","src":"71224:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"71173:41:65","nodeType":"YulIdentifier","src":"71173:41:65"},"nativeSrc":"71173:70:65","nodeType":"YulFunctionCall","src":"71173:70:65"},"nativeSrc":"71173:70:65","nodeType":"YulExpressionStatement","src":"71173:70:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"71297:6:65","nodeType":"YulIdentifier","src":"71297:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"71310:9:65","nodeType":"YulIdentifier","src":"71310:9:65"},{"kind":"number","nativeSrc":"71321:2:65","nodeType":"YulLiteral","src":"71321:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"71306:3:65","nodeType":"YulIdentifier","src":"71306:3:65"},"nativeSrc":"71306:18:65","nodeType":"YulFunctionCall","src":"71306:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"71253:43:65","nodeType":"YulIdentifier","src":"71253:43:65"},"nativeSrc":"71253:72:65","nodeType":"YulFunctionCall","src":"71253:72:65"},"nativeSrc":"71253:72:65","nodeType":"YulExpressionStatement","src":"71253:72:65"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"70680:652:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70826:9:65","nodeType":"YulTypedName","src":"70826:9:65","type":""},{"name":"value4","nativeSrc":"70838:6:65","nodeType":"YulTypedName","src":"70838:6:65","type":""},{"name":"value3","nativeSrc":"70846:6:65","nodeType":"YulTypedName","src":"70846:6:65","type":""},{"name":"value2","nativeSrc":"70854:6:65","nodeType":"YulTypedName","src":"70854:6:65","type":""},{"name":"value1","nativeSrc":"70862:6:65","nodeType":"YulTypedName","src":"70862:6:65","type":""},{"name":"value0","nativeSrc":"70870:6:65","nodeType":"YulTypedName","src":"70870:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70881:4:65","nodeType":"YulTypedName","src":"70881:4:65","type":""}],"src":"70680:652:65"},{"body":{"nativeSrc":"71598:657:65","nodeType":"YulBlock","src":"71598:657:65","statements":[{"nativeSrc":"71608:27:65","nodeType":"YulAssignment","src":"71608:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"71620:9:65","nodeType":"YulIdentifier","src":"71620:9:65"},{"kind":"number","nativeSrc":"71631:3:65","nodeType":"YulLiteral","src":"71631:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"71616:3:65","nodeType":"YulIdentifier","src":"71616:3:65"},"nativeSrc":"71616:19:65","nodeType":"YulFunctionCall","src":"71616:19:65"},"variableNames":[{"name":"tail","nativeSrc":"71608:4:65","nodeType":"YulIdentifier","src":"71608:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"71687:6:65","nodeType":"YulIdentifier","src":"71687:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"71700:9:65","nodeType":"YulIdentifier","src":"71700:9:65"},{"kind":"number","nativeSrc":"71711:1:65","nodeType":"YulLiteral","src":"71711:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"71696:3:65","nodeType":"YulIdentifier","src":"71696:3:65"},"nativeSrc":"71696:17:65","nodeType":"YulFunctionCall","src":"71696:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"71645:41:65","nodeType":"YulIdentifier","src":"71645:41:65"},"nativeSrc":"71645:69:65","nodeType":"YulFunctionCall","src":"71645:69:65"},"nativeSrc":"71645:69:65","nodeType":"YulExpressionStatement","src":"71645:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"71735:9:65","nodeType":"YulIdentifier","src":"71735:9:65"},{"kind":"number","nativeSrc":"71746:2:65","nodeType":"YulLiteral","src":"71746:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"71731:3:65","nodeType":"YulIdentifier","src":"71731:3:65"},"nativeSrc":"71731:18:65","nodeType":"YulFunctionCall","src":"71731:18:65"},{"arguments":[{"name":"tail","nativeSrc":"71755:4:65","nodeType":"YulIdentifier","src":"71755:4:65"},{"name":"headStart","nativeSrc":"71761:9:65","nodeType":"YulIdentifier","src":"71761:9:65"}],"functionName":{"name":"sub","nativeSrc":"71751:3:65","nodeType":"YulIdentifier","src":"71751:3:65"},"nativeSrc":"71751:20:65","nodeType":"YulFunctionCall","src":"71751:20:65"}],"functionName":{"name":"mstore","nativeSrc":"71724:6:65","nodeType":"YulIdentifier","src":"71724:6:65"},"nativeSrc":"71724:48:65","nodeType":"YulFunctionCall","src":"71724:48:65"},"nativeSrc":"71724:48:65","nodeType":"YulExpressionStatement","src":"71724:48:65"},{"nativeSrc":"71781:84:65","nodeType":"YulAssignment","src":"71781:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"71851:6:65","nodeType":"YulIdentifier","src":"71851:6:65"},{"name":"tail","nativeSrc":"71860:4:65","nodeType":"YulIdentifier","src":"71860:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"71789:61:65","nodeType":"YulIdentifier","src":"71789:61:65"},"nativeSrc":"71789:76:65","nodeType":"YulFunctionCall","src":"71789:76:65"},"variableNames":[{"name":"tail","nativeSrc":"71781:4:65","nodeType":"YulIdentifier","src":"71781:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"71917:6:65","nodeType":"YulIdentifier","src":"71917:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"71930:9:65","nodeType":"YulIdentifier","src":"71930:9:65"},{"kind":"number","nativeSrc":"71941:2:65","nodeType":"YulLiteral","src":"71941:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"71926:3:65","nodeType":"YulIdentifier","src":"71926:3:65"},"nativeSrc":"71926:18:65","nodeType":"YulFunctionCall","src":"71926:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"71875:41:65","nodeType":"YulIdentifier","src":"71875:41:65"},"nativeSrc":"71875:70:65","nodeType":"YulFunctionCall","src":"71875:70:65"},"nativeSrc":"71875:70:65","nodeType":"YulExpressionStatement","src":"71875:70:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"71966:9:65","nodeType":"YulIdentifier","src":"71966:9:65"},{"kind":"number","nativeSrc":"71977:2:65","nodeType":"YulLiteral","src":"71977:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"71962:3:65","nodeType":"YulIdentifier","src":"71962:3:65"},"nativeSrc":"71962:18:65","nodeType":"YulFunctionCall","src":"71962:18:65"},{"arguments":[{"name":"tail","nativeSrc":"71986:4:65","nodeType":"YulIdentifier","src":"71986:4:65"},{"name":"headStart","nativeSrc":"71992:9:65","nodeType":"YulIdentifier","src":"71992:9:65"}],"functionName":{"name":"sub","nativeSrc":"71982:3:65","nodeType":"YulIdentifier","src":"71982:3:65"},"nativeSrc":"71982:20:65","nodeType":"YulFunctionCall","src":"71982:20:65"}],"functionName":{"name":"mstore","nativeSrc":"71955:6:65","nodeType":"YulIdentifier","src":"71955:6:65"},"nativeSrc":"71955:48:65","nodeType":"YulFunctionCall","src":"71955:48:65"},"nativeSrc":"71955:48:65","nodeType":"YulExpressionStatement","src":"71955:48:65"},{"nativeSrc":"72012:84:65","nodeType":"YulAssignment","src":"72012:84:65","value":{"arguments":[{"name":"value3","nativeSrc":"72082:6:65","nodeType":"YulIdentifier","src":"72082:6:65"},{"name":"tail","nativeSrc":"72091:4:65","nodeType":"YulIdentifier","src":"72091:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"72020:61:65","nodeType":"YulIdentifier","src":"72020:61:65"},"nativeSrc":"72020:76:65","nodeType":"YulFunctionCall","src":"72020:76:65"},"variableNames":[{"name":"tail","nativeSrc":"72012:4:65","nodeType":"YulIdentifier","src":"72012:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"72117:9:65","nodeType":"YulIdentifier","src":"72117:9:65"},{"kind":"number","nativeSrc":"72128:3:65","nodeType":"YulLiteral","src":"72128:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"72113:3:65","nodeType":"YulIdentifier","src":"72113:3:65"},"nativeSrc":"72113:19:65","nodeType":"YulFunctionCall","src":"72113:19:65"},{"arguments":[{"name":"tail","nativeSrc":"72138:4:65","nodeType":"YulIdentifier","src":"72138:4:65"},{"name":"headStart","nativeSrc":"72144:9:65","nodeType":"YulIdentifier","src":"72144:9:65"}],"functionName":{"name":"sub","nativeSrc":"72134:3:65","nodeType":"YulIdentifier","src":"72134:3:65"},"nativeSrc":"72134:20:65","nodeType":"YulFunctionCall","src":"72134:20:65"}],"functionName":{"name":"mstore","nativeSrc":"72106:6:65","nodeType":"YulIdentifier","src":"72106:6:65"},"nativeSrc":"72106:49:65","nodeType":"YulFunctionCall","src":"72106:49:65"},"nativeSrc":"72106:49:65","nodeType":"YulExpressionStatement","src":"72106:49:65"},{"nativeSrc":"72164:84:65","nodeType":"YulAssignment","src":"72164:84:65","value":{"arguments":[{"name":"value4","nativeSrc":"72234:6:65","nodeType":"YulIdentifier","src":"72234:6:65"},{"name":"tail","nativeSrc":"72243:4:65","nodeType":"YulIdentifier","src":"72243:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"72172:61:65","nodeType":"YulIdentifier","src":"72172:61:65"},"nativeSrc":"72172:76:65","nodeType":"YulFunctionCall","src":"72172:76:65"},"variableNames":[{"name":"tail","nativeSrc":"72164:4:65","nodeType":"YulIdentifier","src":"72164:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"71338:917:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"71538:9:65","nodeType":"YulTypedName","src":"71538:9:65","type":""},{"name":"value4","nativeSrc":"71550:6:65","nodeType":"YulTypedName","src":"71550:6:65","type":""},{"name":"value3","nativeSrc":"71558:6:65","nodeType":"YulTypedName","src":"71558:6:65","type":""},{"name":"value2","nativeSrc":"71566:6:65","nodeType":"YulTypedName","src":"71566:6:65","type":""},{"name":"value1","nativeSrc":"71574:6:65","nodeType":"YulTypedName","src":"71574:6:65","type":""},{"name":"value0","nativeSrc":"71582:6:65","nodeType":"YulTypedName","src":"71582:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"71593:4:65","nodeType":"YulTypedName","src":"71593:4:65","type":""}],"src":"71338:917:65"},{"body":{"nativeSrc":"72303:143:65","nodeType":"YulBlock","src":"72303:143:65","statements":[{"nativeSrc":"72313:25:65","nodeType":"YulAssignment","src":"72313:25:65","value":{"arguments":[{"name":"x","nativeSrc":"72336:1:65","nodeType":"YulIdentifier","src":"72336:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"72318:17:65","nodeType":"YulIdentifier","src":"72318:17:65"},"nativeSrc":"72318:20:65","nodeType":"YulFunctionCall","src":"72318:20:65"},"variableNames":[{"name":"x","nativeSrc":"72313:1:65","nodeType":"YulIdentifier","src":"72313:1:65"}]},{"nativeSrc":"72347:25:65","nodeType":"YulAssignment","src":"72347:25:65","value":{"arguments":[{"name":"y","nativeSrc":"72370:1:65","nodeType":"YulIdentifier","src":"72370:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"72352:17:65","nodeType":"YulIdentifier","src":"72352:17:65"},"nativeSrc":"72352:20:65","nodeType":"YulFunctionCall","src":"72352:20:65"},"variableNames":[{"name":"y","nativeSrc":"72347:1:65","nodeType":"YulIdentifier","src":"72347:1:65"}]},{"body":{"nativeSrc":"72394:22:65","nodeType":"YulBlock","src":"72394:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"72396:16:65","nodeType":"YulIdentifier","src":"72396:16:65"},"nativeSrc":"72396:18:65","nodeType":"YulFunctionCall","src":"72396:18:65"},"nativeSrc":"72396:18:65","nodeType":"YulExpressionStatement","src":"72396:18:65"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"72391:1:65","nodeType":"YulIdentifier","src":"72391:1:65"}],"functionName":{"name":"iszero","nativeSrc":"72384:6:65","nodeType":"YulIdentifier","src":"72384:6:65"},"nativeSrc":"72384:9:65","nodeType":"YulFunctionCall","src":"72384:9:65"},"nativeSrc":"72381:35:65","nodeType":"YulIf","src":"72381:35:65"},{"nativeSrc":"72426:14:65","nodeType":"YulAssignment","src":"72426:14:65","value":{"arguments":[{"name":"x","nativeSrc":"72435:1:65","nodeType":"YulIdentifier","src":"72435:1:65"},{"name":"y","nativeSrc":"72438:1:65","nodeType":"YulIdentifier","src":"72438:1:65"}],"functionName":{"name":"div","nativeSrc":"72431:3:65","nodeType":"YulIdentifier","src":"72431:3:65"},"nativeSrc":"72431:9:65","nodeType":"YulFunctionCall","src":"72431:9:65"},"variableNames":[{"name":"r","nativeSrc":"72426:1:65","nodeType":"YulIdentifier","src":"72426:1:65"}]}]},"name":"checked_div_t_uint256","nativeSrc":"72261:185:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"72292:1:65","nodeType":"YulTypedName","src":"72292:1:65","type":""},{"name":"y","nativeSrc":"72295:1:65","nodeType":"YulTypedName","src":"72295:1:65","type":""}],"returnVariables":[{"name":"r","nativeSrc":"72301:1:65","nodeType":"YulTypedName","src":"72301:1:65","type":""}],"src":"72261:185:65"},{"body":{"nativeSrc":"72558:70:65","nodeType":"YulBlock","src":"72558:70:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"72580:6:65","nodeType":"YulIdentifier","src":"72580:6:65"},{"kind":"number","nativeSrc":"72588:1:65","nodeType":"YulLiteral","src":"72588:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"72576:3:65","nodeType":"YulIdentifier","src":"72576:3:65"},"nativeSrc":"72576:14:65","nodeType":"YulFunctionCall","src":"72576:14:65"},{"hexValue":"4f4654436f72653a20616d6f756e745344206f766572666c6f77","kind":"string","nativeSrc":"72592:28:65","nodeType":"YulLiteral","src":"72592:28:65","type":"","value":"OFTCore: amountSD overflow"}],"functionName":{"name":"mstore","nativeSrc":"72569:6:65","nodeType":"YulIdentifier","src":"72569:6:65"},"nativeSrc":"72569:52:65","nodeType":"YulFunctionCall","src":"72569:52:65"},"nativeSrc":"72569:52:65","nodeType":"YulExpressionStatement","src":"72569:52:65"}]},"name":"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","nativeSrc":"72452:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"72550:6:65","nodeType":"YulTypedName","src":"72550:6:65","type":""}],"src":"72452:176:65"},{"body":{"nativeSrc":"72780:220:65","nodeType":"YulBlock","src":"72780:220:65","statements":[{"nativeSrc":"72790:74:65","nodeType":"YulAssignment","src":"72790:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"72856:3:65","nodeType":"YulIdentifier","src":"72856:3:65"},{"kind":"number","nativeSrc":"72861:2:65","nodeType":"YulLiteral","src":"72861:2:65","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"72797:58:65","nodeType":"YulIdentifier","src":"72797:58:65"},"nativeSrc":"72797:67:65","nodeType":"YulFunctionCall","src":"72797:67:65"},"variableNames":[{"name":"pos","nativeSrc":"72790:3:65","nodeType":"YulIdentifier","src":"72790:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"72962:3:65","nodeType":"YulIdentifier","src":"72962:3:65"}],"functionName":{"name":"store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364","nativeSrc":"72873:88:65","nodeType":"YulIdentifier","src":"72873:88:65"},"nativeSrc":"72873:93:65","nodeType":"YulFunctionCall","src":"72873:93:65"},"nativeSrc":"72873:93:65","nodeType":"YulExpressionStatement","src":"72873:93:65"},{"nativeSrc":"72975:19:65","nodeType":"YulAssignment","src":"72975:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"72986:3:65","nodeType":"YulIdentifier","src":"72986:3:65"},{"kind":"number","nativeSrc":"72991:2:65","nodeType":"YulLiteral","src":"72991:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"72982:3:65","nodeType":"YulIdentifier","src":"72982:3:65"},"nativeSrc":"72982:12:65","nodeType":"YulFunctionCall","src":"72982:12:65"},"variableNames":[{"name":"end","nativeSrc":"72975:3:65","nodeType":"YulIdentifier","src":"72975:3:65"}]}]},"name":"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack","nativeSrc":"72634:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"72768:3:65","nodeType":"YulTypedName","src":"72768:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"72776:3:65","nodeType":"YulTypedName","src":"72776:3:65","type":""}],"src":"72634:366:65"},{"body":{"nativeSrc":"73177:248:65","nodeType":"YulBlock","src":"73177:248:65","statements":[{"nativeSrc":"73187:26:65","nodeType":"YulAssignment","src":"73187:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"73199:9:65","nodeType":"YulIdentifier","src":"73199:9:65"},{"kind":"number","nativeSrc":"73210:2:65","nodeType":"YulLiteral","src":"73210:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"73195:3:65","nodeType":"YulIdentifier","src":"73195:3:65"},"nativeSrc":"73195:18:65","nodeType":"YulFunctionCall","src":"73195:18:65"},"variableNames":[{"name":"tail","nativeSrc":"73187:4:65","nodeType":"YulIdentifier","src":"73187:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"73234:9:65","nodeType":"YulIdentifier","src":"73234:9:65"},{"kind":"number","nativeSrc":"73245:1:65","nodeType":"YulLiteral","src":"73245:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"73230:3:65","nodeType":"YulIdentifier","src":"73230:3:65"},"nativeSrc":"73230:17:65","nodeType":"YulFunctionCall","src":"73230:17:65"},{"arguments":[{"name":"tail","nativeSrc":"73253:4:65","nodeType":"YulIdentifier","src":"73253:4:65"},{"name":"headStart","nativeSrc":"73259:9:65","nodeType":"YulIdentifier","src":"73259:9:65"}],"functionName":{"name":"sub","nativeSrc":"73249:3:65","nodeType":"YulIdentifier","src":"73249:3:65"},"nativeSrc":"73249:20:65","nodeType":"YulFunctionCall","src":"73249:20:65"}],"functionName":{"name":"mstore","nativeSrc":"73223:6:65","nodeType":"YulIdentifier","src":"73223:6:65"},"nativeSrc":"73223:47:65","nodeType":"YulFunctionCall","src":"73223:47:65"},"nativeSrc":"73223:47:65","nodeType":"YulExpressionStatement","src":"73223:47:65"},{"nativeSrc":"73279:139:65","nodeType":"YulAssignment","src":"73279:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"73413:4:65","nodeType":"YulIdentifier","src":"73413:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack","nativeSrc":"73287:124:65","nodeType":"YulIdentifier","src":"73287:124:65"},"nativeSrc":"73287:131:65","nodeType":"YulFunctionCall","src":"73287:131:65"},"variableNames":[{"name":"tail","nativeSrc":"73279:4:65","nodeType":"YulIdentifier","src":"73279:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"73006:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"73157:9:65","nodeType":"YulTypedName","src":"73157:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"73172:4:65","nodeType":"YulTypedName","src":"73172:4:65","type":""}],"src":"73006:419:65"},{"body":{"nativeSrc":"73474:53:65","nodeType":"YulBlock","src":"73474:53:65","statements":[{"nativeSrc":"73484:36:65","nodeType":"YulAssignment","src":"73484:36:65","value":{"arguments":[{"kind":"number","nativeSrc":"73509:3:65","nodeType":"YulLiteral","src":"73509:3:65","type":"","value":"248"},{"name":"value","nativeSrc":"73514:5:65","nodeType":"YulIdentifier","src":"73514:5:65"}],"functionName":{"name":"shl","nativeSrc":"73505:3:65","nodeType":"YulIdentifier","src":"73505:3:65"},"nativeSrc":"73505:15:65","nodeType":"YulFunctionCall","src":"73505:15:65"},"variableNames":[{"name":"newValue","nativeSrc":"73484:8:65","nodeType":"YulIdentifier","src":"73484:8:65"}]}]},"name":"shift_left_248","nativeSrc":"73431:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"73455:5:65","nodeType":"YulTypedName","src":"73455:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"73465:8:65","nodeType":"YulTypedName","src":"73465:8:65","type":""}],"src":"73431:96:65"},{"body":{"nativeSrc":"73578:48:65","nodeType":"YulBlock","src":"73578:48:65","statements":[{"nativeSrc":"73588:32:65","nodeType":"YulAssignment","src":"73588:32:65","value":{"arguments":[{"name":"value","nativeSrc":"73614:5:65","nodeType":"YulIdentifier","src":"73614:5:65"}],"functionName":{"name":"shift_left_248","nativeSrc":"73599:14:65","nodeType":"YulIdentifier","src":"73599:14:65"},"nativeSrc":"73599:21:65","nodeType":"YulFunctionCall","src":"73599:21:65"},"variableNames":[{"name":"aligned","nativeSrc":"73588:7:65","nodeType":"YulIdentifier","src":"73588:7:65"}]}]},"name":"leftAlign_t_uint8","nativeSrc":"73533:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"73560:5:65","nodeType":"YulTypedName","src":"73560:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"73570:7:65","nodeType":"YulTypedName","src":"73570:7:65","type":""}],"src":"73533:93:65"},{"body":{"nativeSrc":"73711:70:65","nodeType":"YulBlock","src":"73711:70:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"73728:3:65","nodeType":"YulIdentifier","src":"73728:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"73767:5:65","nodeType":"YulIdentifier","src":"73767:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"73751:15:65","nodeType":"YulIdentifier","src":"73751:15:65"},"nativeSrc":"73751:22:65","nodeType":"YulFunctionCall","src":"73751:22:65"}],"functionName":{"name":"leftAlign_t_uint8","nativeSrc":"73733:17:65","nodeType":"YulIdentifier","src":"73733:17:65"},"nativeSrc":"73733:41:65","nodeType":"YulFunctionCall","src":"73733:41:65"}],"functionName":{"name":"mstore","nativeSrc":"73721:6:65","nodeType":"YulIdentifier","src":"73721:6:65"},"nativeSrc":"73721:54:65","nodeType":"YulFunctionCall","src":"73721:54:65"},"nativeSrc":"73721:54:65","nodeType":"YulExpressionStatement","src":"73721:54:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"73632:149:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"73699:5:65","nodeType":"YulTypedName","src":"73699:5:65","type":""},{"name":"pos","nativeSrc":"73706:3:65","nodeType":"YulTypedName","src":"73706:3:65","type":""}],"src":"73632:149:65"},{"body":{"nativeSrc":"73834:32:65","nodeType":"YulBlock","src":"73834:32:65","statements":[{"nativeSrc":"73844:16:65","nodeType":"YulAssignment","src":"73844:16:65","value":{"name":"value","nativeSrc":"73855:5:65","nodeType":"YulIdentifier","src":"73855:5:65"},"variableNames":[{"name":"aligned","nativeSrc":"73844:7:65","nodeType":"YulIdentifier","src":"73844:7:65"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"73787:79:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"73816:5:65","nodeType":"YulTypedName","src":"73816:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"73826:7:65","nodeType":"YulTypedName","src":"73826:7:65","type":""}],"src":"73787:79:65"},{"body":{"nativeSrc":"73955:74:65","nodeType":"YulBlock","src":"73955:74:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"73972:3:65","nodeType":"YulIdentifier","src":"73972:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"74015:5:65","nodeType":"YulIdentifier","src":"74015:5:65"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"73997:17:65","nodeType":"YulIdentifier","src":"73997:17:65"},"nativeSrc":"73997:24:65","nodeType":"YulFunctionCall","src":"73997:24:65"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"73977:19:65","nodeType":"YulIdentifier","src":"73977:19:65"},"nativeSrc":"73977:45:65","nodeType":"YulFunctionCall","src":"73977:45:65"}],"functionName":{"name":"mstore","nativeSrc":"73965:6:65","nodeType":"YulIdentifier","src":"73965:6:65"},"nativeSrc":"73965:58:65","nodeType":"YulFunctionCall","src":"73965:58:65"},"nativeSrc":"73965:58:65","nodeType":"YulExpressionStatement","src":"73965:58:65"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"73872:157:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"73943:5:65","nodeType":"YulTypedName","src":"73943:5:65","type":""},{"name":"pos","nativeSrc":"73950:3:65","nodeType":"YulTypedName","src":"73950:3:65","type":""}],"src":"73872:157:65"},{"body":{"nativeSrc":"74078:53:65","nodeType":"YulBlock","src":"74078:53:65","statements":[{"nativeSrc":"74088:36:65","nodeType":"YulAssignment","src":"74088:36:65","value":{"arguments":[{"kind":"number","nativeSrc":"74113:3:65","nodeType":"YulLiteral","src":"74113:3:65","type":"","value":"192"},{"name":"value","nativeSrc":"74118:5:65","nodeType":"YulIdentifier","src":"74118:5:65"}],"functionName":{"name":"shl","nativeSrc":"74109:3:65","nodeType":"YulIdentifier","src":"74109:3:65"},"nativeSrc":"74109:15:65","nodeType":"YulFunctionCall","src":"74109:15:65"},"variableNames":[{"name":"newValue","nativeSrc":"74088:8:65","nodeType":"YulIdentifier","src":"74088:8:65"}]}]},"name":"shift_left_192","nativeSrc":"74035:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"74059:5:65","nodeType":"YulTypedName","src":"74059:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"74069:8:65","nodeType":"YulTypedName","src":"74069:8:65","type":""}],"src":"74035:96:65"},{"body":{"nativeSrc":"74183:48:65","nodeType":"YulBlock","src":"74183:48:65","statements":[{"nativeSrc":"74193:32:65","nodeType":"YulAssignment","src":"74193:32:65","value":{"arguments":[{"name":"value","nativeSrc":"74219:5:65","nodeType":"YulIdentifier","src":"74219:5:65"}],"functionName":{"name":"shift_left_192","nativeSrc":"74204:14:65","nodeType":"YulIdentifier","src":"74204:14:65"},"nativeSrc":"74204:21:65","nodeType":"YulFunctionCall","src":"74204:21:65"},"variableNames":[{"name":"aligned","nativeSrc":"74193:7:65","nodeType":"YulIdentifier","src":"74193:7:65"}]}]},"name":"leftAlign_t_uint64","nativeSrc":"74137:94:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"74165:5:65","nodeType":"YulTypedName","src":"74165:5:65","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"74175:7:65","nodeType":"YulTypedName","src":"74175:7:65","type":""}],"src":"74137:94:65"},{"body":{"nativeSrc":"74318:72:65","nodeType":"YulBlock","src":"74318:72:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"74335:3:65","nodeType":"YulIdentifier","src":"74335:3:65"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"74376:5:65","nodeType":"YulIdentifier","src":"74376:5:65"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"74359:16:65","nodeType":"YulIdentifier","src":"74359:16:65"},"nativeSrc":"74359:23:65","nodeType":"YulFunctionCall","src":"74359:23:65"}],"functionName":{"name":"leftAlign_t_uint64","nativeSrc":"74340:18:65","nodeType":"YulIdentifier","src":"74340:18:65"},"nativeSrc":"74340:43:65","nodeType":"YulFunctionCall","src":"74340:43:65"}],"functionName":{"name":"mstore","nativeSrc":"74328:6:65","nodeType":"YulIdentifier","src":"74328:6:65"},"nativeSrc":"74328:56:65","nodeType":"YulFunctionCall","src":"74328:56:65"},"nativeSrc":"74328:56:65","nodeType":"YulExpressionStatement","src":"74328:56:65"}]},"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"74237:153:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"74306:5:65","nodeType":"YulTypedName","src":"74306:5:65","type":""},{"name":"pos","nativeSrc":"74313:3:65","nodeType":"YulTypedName","src":"74313:3:65","type":""}],"src":"74237:153:65"},{"body":{"nativeSrc":"74562:358:65","nodeType":"YulBlock","src":"74562:358:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"74631:6:65","nodeType":"YulIdentifier","src":"74631:6:65"},{"name":"pos","nativeSrc":"74640:3:65","nodeType":"YulIdentifier","src":"74640:3:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"74573:57:65","nodeType":"YulIdentifier","src":"74573:57:65"},"nativeSrc":"74573:71:65","nodeType":"YulFunctionCall","src":"74573:71:65"},"nativeSrc":"74573:71:65","nodeType":"YulExpressionStatement","src":"74573:71:65"},{"nativeSrc":"74653:18:65","nodeType":"YulAssignment","src":"74653:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"74664:3:65","nodeType":"YulIdentifier","src":"74664:3:65"},{"kind":"number","nativeSrc":"74669:1:65","nodeType":"YulLiteral","src":"74669:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"74660:3:65","nodeType":"YulIdentifier","src":"74660:3:65"},"nativeSrc":"74660:11:65","nodeType":"YulFunctionCall","src":"74660:11:65"},"variableNames":[{"name":"pos","nativeSrc":"74653:3:65","nodeType":"YulIdentifier","src":"74653:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"74743:6:65","nodeType":"YulIdentifier","src":"74743:6:65"},{"name":"pos","nativeSrc":"74752:3:65","nodeType":"YulIdentifier","src":"74752:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"74681:61:65","nodeType":"YulIdentifier","src":"74681:61:65"},"nativeSrc":"74681:75:65","nodeType":"YulFunctionCall","src":"74681:75:65"},"nativeSrc":"74681:75:65","nodeType":"YulExpressionStatement","src":"74681:75:65"},{"nativeSrc":"74765:19:65","nodeType":"YulAssignment","src":"74765:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"74776:3:65","nodeType":"YulIdentifier","src":"74776:3:65"},{"kind":"number","nativeSrc":"74781:2:65","nodeType":"YulLiteral","src":"74781:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"74772:3:65","nodeType":"YulIdentifier","src":"74772:3:65"},"nativeSrc":"74772:12:65","nodeType":"YulFunctionCall","src":"74772:12:65"},"variableNames":[{"name":"pos","nativeSrc":"74765:3:65","nodeType":"YulIdentifier","src":"74765:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"74854:6:65","nodeType":"YulIdentifier","src":"74854:6:65"},{"name":"pos","nativeSrc":"74863:3:65","nodeType":"YulIdentifier","src":"74863:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"74794:59:65","nodeType":"YulIdentifier","src":"74794:59:65"},"nativeSrc":"74794:73:65","nodeType":"YulFunctionCall","src":"74794:73:65"},"nativeSrc":"74794:73:65","nodeType":"YulExpressionStatement","src":"74794:73:65"},{"nativeSrc":"74876:18:65","nodeType":"YulAssignment","src":"74876:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"74887:3:65","nodeType":"YulIdentifier","src":"74887:3:65"},{"kind":"number","nativeSrc":"74892:1:65","nodeType":"YulLiteral","src":"74892:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"74883:3:65","nodeType":"YulIdentifier","src":"74883:3:65"},"nativeSrc":"74883:11:65","nodeType":"YulFunctionCall","src":"74883:11:65"},"variableNames":[{"name":"pos","nativeSrc":"74876:3:65","nodeType":"YulIdentifier","src":"74876:3:65"}]},{"nativeSrc":"74904:10:65","nodeType":"YulAssignment","src":"74904:10:65","value":{"name":"pos","nativeSrc":"74911:3:65","nodeType":"YulIdentifier","src":"74911:3:65"},"variableNames":[{"name":"end","nativeSrc":"74904:3:65","nodeType":"YulIdentifier","src":"74904:3:65"}]}]},"name":"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed","nativeSrc":"74396:524:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"74525:3:65","nodeType":"YulTypedName","src":"74525:3:65","type":""},{"name":"value2","nativeSrc":"74531:6:65","nodeType":"YulTypedName","src":"74531:6:65","type":""},{"name":"value1","nativeSrc":"74539:6:65","nodeType":"YulTypedName","src":"74539:6:65","type":""},{"name":"value0","nativeSrc":"74547:6:65","nodeType":"YulTypedName","src":"74547:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"74558:3:65","nodeType":"YulTypedName","src":"74558:3:65","type":""}],"src":"74396:524:65"},{"body":{"nativeSrc":"75032:64:65","nodeType":"YulBlock","src":"75032:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"75054:6:65","nodeType":"YulIdentifier","src":"75054:6:65"},{"kind":"number","nativeSrc":"75062:1:65","nodeType":"YulLiteral","src":"75062:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"75050:3:65","nodeType":"YulIdentifier","src":"75050:3:65"},"nativeSrc":"75050:14:65","nodeType":"YulFunctionCall","src":"75050:14:65"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"75066:22:65","nodeType":"YulLiteral","src":"75066:22:65","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"75043:6:65","nodeType":"YulIdentifier","src":"75043:6:65"},"nativeSrc":"75043:46:65","nodeType":"YulFunctionCall","src":"75043:46:65"},"nativeSrc":"75043:46:65","nodeType":"YulExpressionStatement","src":"75043:46:65"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"74926:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"75024:6:65","nodeType":"YulTypedName","src":"75024:6:65","type":""}],"src":"74926:170:65"},{"body":{"nativeSrc":"75248:220:65","nodeType":"YulBlock","src":"75248:220:65","statements":[{"nativeSrc":"75258:74:65","nodeType":"YulAssignment","src":"75258:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"75324:3:65","nodeType":"YulIdentifier","src":"75324:3:65"},{"kind":"number","nativeSrc":"75329:2:65","nodeType":"YulLiteral","src":"75329:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"75265:58:65","nodeType":"YulIdentifier","src":"75265:58:65"},"nativeSrc":"75265:67:65","nodeType":"YulFunctionCall","src":"75265:67:65"},"variableNames":[{"name":"pos","nativeSrc":"75258:3:65","nodeType":"YulIdentifier","src":"75258:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"75430:3:65","nodeType":"YulIdentifier","src":"75430:3:65"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"75341:88:65","nodeType":"YulIdentifier","src":"75341:88:65"},"nativeSrc":"75341:93:65","nodeType":"YulFunctionCall","src":"75341:93:65"},"nativeSrc":"75341:93:65","nodeType":"YulExpressionStatement","src":"75341:93:65"},{"nativeSrc":"75443:19:65","nodeType":"YulAssignment","src":"75443:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"75454:3:65","nodeType":"YulIdentifier","src":"75454:3:65"},{"kind":"number","nativeSrc":"75459:2:65","nodeType":"YulLiteral","src":"75459:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75450:3:65","nodeType":"YulIdentifier","src":"75450:3:65"},"nativeSrc":"75450:12:65","nodeType":"YulFunctionCall","src":"75450:12:65"},"variableNames":[{"name":"end","nativeSrc":"75443:3:65","nodeType":"YulIdentifier","src":"75443:3:65"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"75102:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75236:3:65","nodeType":"YulTypedName","src":"75236:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"75244:3:65","nodeType":"YulTypedName","src":"75244:3:65","type":""}],"src":"75102:366:65"},{"body":{"nativeSrc":"75645:248:65","nodeType":"YulBlock","src":"75645:248:65","statements":[{"nativeSrc":"75655:26:65","nodeType":"YulAssignment","src":"75655:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"75667:9:65","nodeType":"YulIdentifier","src":"75667:9:65"},{"kind":"number","nativeSrc":"75678:2:65","nodeType":"YulLiteral","src":"75678:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"75663:3:65","nodeType":"YulIdentifier","src":"75663:3:65"},"nativeSrc":"75663:18:65","nodeType":"YulFunctionCall","src":"75663:18:65"},"variableNames":[{"name":"tail","nativeSrc":"75655:4:65","nodeType":"YulIdentifier","src":"75655:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"75702:9:65","nodeType":"YulIdentifier","src":"75702:9:65"},{"kind":"number","nativeSrc":"75713:1:65","nodeType":"YulLiteral","src":"75713:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"75698:3:65","nodeType":"YulIdentifier","src":"75698:3:65"},"nativeSrc":"75698:17:65","nodeType":"YulFunctionCall","src":"75698:17:65"},{"arguments":[{"name":"tail","nativeSrc":"75721:4:65","nodeType":"YulIdentifier","src":"75721:4:65"},{"name":"headStart","nativeSrc":"75727:9:65","nodeType":"YulIdentifier","src":"75727:9:65"}],"functionName":{"name":"sub","nativeSrc":"75717:3:65","nodeType":"YulIdentifier","src":"75717:3:65"},"nativeSrc":"75717:20:65","nodeType":"YulFunctionCall","src":"75717:20:65"}],"functionName":{"name":"mstore","nativeSrc":"75691:6:65","nodeType":"YulIdentifier","src":"75691:6:65"},"nativeSrc":"75691:47:65","nodeType":"YulFunctionCall","src":"75691:47:65"},"nativeSrc":"75691:47:65","nodeType":"YulExpressionStatement","src":"75691:47:65"},{"nativeSrc":"75747:139:65","nodeType":"YulAssignment","src":"75747:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"75881:4:65","nodeType":"YulIdentifier","src":"75881:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"75755:124:65","nodeType":"YulIdentifier","src":"75755:124:65"},"nativeSrc":"75755:131:65","nodeType":"YulFunctionCall","src":"75755:131:65"},"variableNames":[{"name":"tail","nativeSrc":"75747:4:65","nodeType":"YulIdentifier","src":"75747:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"75474:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75625:9:65","nodeType":"YulTypedName","src":"75625:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"75640:4:65","nodeType":"YulTypedName","src":"75640:4:65","type":""}],"src":"75474:419:65"},{"body":{"nativeSrc":"76005:60:65","nodeType":"YulBlock","src":"76005:60:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"76027:6:65","nodeType":"YulIdentifier","src":"76027:6:65"},{"kind":"number","nativeSrc":"76035:1:65","nodeType":"YulLiteral","src":"76035:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"76023:3:65","nodeType":"YulIdentifier","src":"76023:3:65"},"nativeSrc":"76023:14:65","nodeType":"YulFunctionCall","src":"76023:14:65"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"76039:18:65","nodeType":"YulLiteral","src":"76039:18:65","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"76016:6:65","nodeType":"YulIdentifier","src":"76016:6:65"},"nativeSrc":"76016:42:65","nodeType":"YulFunctionCall","src":"76016:42:65"},"nativeSrc":"76016:42:65","nodeType":"YulExpressionStatement","src":"76016:42:65"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"75899:166:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"75997:6:65","nodeType":"YulTypedName","src":"75997:6:65","type":""}],"src":"75899:166:65"},{"body":{"nativeSrc":"76217:220:65","nodeType":"YulBlock","src":"76217:220:65","statements":[{"nativeSrc":"76227:74:65","nodeType":"YulAssignment","src":"76227:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"76293:3:65","nodeType":"YulIdentifier","src":"76293:3:65"},{"kind":"number","nativeSrc":"76298:2:65","nodeType":"YulLiteral","src":"76298:2:65","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"76234:58:65","nodeType":"YulIdentifier","src":"76234:58:65"},"nativeSrc":"76234:67:65","nodeType":"YulFunctionCall","src":"76234:67:65"},"variableNames":[{"name":"pos","nativeSrc":"76227:3:65","nodeType":"YulIdentifier","src":"76227:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"76399:3:65","nodeType":"YulIdentifier","src":"76399:3:65"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"76310:88:65","nodeType":"YulIdentifier","src":"76310:88:65"},"nativeSrc":"76310:93:65","nodeType":"YulFunctionCall","src":"76310:93:65"},"nativeSrc":"76310:93:65","nodeType":"YulExpressionStatement","src":"76310:93:65"},{"nativeSrc":"76412:19:65","nodeType":"YulAssignment","src":"76412:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"76423:3:65","nodeType":"YulIdentifier","src":"76423:3:65"},{"kind":"number","nativeSrc":"76428:2:65","nodeType":"YulLiteral","src":"76428:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"76419:3:65","nodeType":"YulIdentifier","src":"76419:3:65"},"nativeSrc":"76419:12:65","nodeType":"YulFunctionCall","src":"76419:12:65"},"variableNames":[{"name":"end","nativeSrc":"76412:3:65","nodeType":"YulIdentifier","src":"76412:3:65"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"76071:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"76205:3:65","nodeType":"YulTypedName","src":"76205:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"76213:3:65","nodeType":"YulTypedName","src":"76213:3:65","type":""}],"src":"76071:366:65"},{"body":{"nativeSrc":"76614:248:65","nodeType":"YulBlock","src":"76614:248:65","statements":[{"nativeSrc":"76624:26:65","nodeType":"YulAssignment","src":"76624:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"76636:9:65","nodeType":"YulIdentifier","src":"76636:9:65"},{"kind":"number","nativeSrc":"76647:2:65","nodeType":"YulLiteral","src":"76647:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"76632:3:65","nodeType":"YulIdentifier","src":"76632:3:65"},"nativeSrc":"76632:18:65","nodeType":"YulFunctionCall","src":"76632:18:65"},"variableNames":[{"name":"tail","nativeSrc":"76624:4:65","nodeType":"YulIdentifier","src":"76624:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"76671:9:65","nodeType":"YulIdentifier","src":"76671:9:65"},{"kind":"number","nativeSrc":"76682:1:65","nodeType":"YulLiteral","src":"76682:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"76667:3:65","nodeType":"YulIdentifier","src":"76667:3:65"},"nativeSrc":"76667:17:65","nodeType":"YulFunctionCall","src":"76667:17:65"},{"arguments":[{"name":"tail","nativeSrc":"76690:4:65","nodeType":"YulIdentifier","src":"76690:4:65"},{"name":"headStart","nativeSrc":"76696:9:65","nodeType":"YulIdentifier","src":"76696:9:65"}],"functionName":{"name":"sub","nativeSrc":"76686:3:65","nodeType":"YulIdentifier","src":"76686:3:65"},"nativeSrc":"76686:20:65","nodeType":"YulFunctionCall","src":"76686:20:65"}],"functionName":{"name":"mstore","nativeSrc":"76660:6:65","nodeType":"YulIdentifier","src":"76660:6:65"},"nativeSrc":"76660:47:65","nodeType":"YulFunctionCall","src":"76660:47:65"},"nativeSrc":"76660:47:65","nodeType":"YulExpressionStatement","src":"76660:47:65"},{"nativeSrc":"76716:139:65","nodeType":"YulAssignment","src":"76716:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"76850:4:65","nodeType":"YulIdentifier","src":"76850:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"76724:124:65","nodeType":"YulIdentifier","src":"76724:124:65"},"nativeSrc":"76724:131:65","nodeType":"YulFunctionCall","src":"76724:131:65"},"variableNames":[{"name":"tail","nativeSrc":"76716:4:65","nodeType":"YulIdentifier","src":"76716:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"76443:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"76594:9:65","nodeType":"YulTypedName","src":"76594:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"76609:4:65","nodeType":"YulTypedName","src":"76609:4:65","type":""}],"src":"76443:419:65"},{"body":{"nativeSrc":"77022:288:65","nodeType":"YulBlock","src":"77022:288:65","statements":[{"nativeSrc":"77032:26:65","nodeType":"YulAssignment","src":"77032:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"77044:9:65","nodeType":"YulIdentifier","src":"77044:9:65"},{"kind":"number","nativeSrc":"77055:2:65","nodeType":"YulLiteral","src":"77055:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"77040:3:65","nodeType":"YulIdentifier","src":"77040:3:65"},"nativeSrc":"77040:18:65","nodeType":"YulFunctionCall","src":"77040:18:65"},"variableNames":[{"name":"tail","nativeSrc":"77032:4:65","nodeType":"YulIdentifier","src":"77032:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"77112:6:65","nodeType":"YulIdentifier","src":"77112:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"77125:9:65","nodeType":"YulIdentifier","src":"77125:9:65"},{"kind":"number","nativeSrc":"77136:1:65","nodeType":"YulLiteral","src":"77136:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"77121:3:65","nodeType":"YulIdentifier","src":"77121:3:65"},"nativeSrc":"77121:17:65","nodeType":"YulFunctionCall","src":"77121:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"77068:43:65","nodeType":"YulIdentifier","src":"77068:43:65"},"nativeSrc":"77068:71:65","nodeType":"YulFunctionCall","src":"77068:71:65"},"nativeSrc":"77068:71:65","nodeType":"YulExpressionStatement","src":"77068:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"77193:6:65","nodeType":"YulIdentifier","src":"77193:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"77206:9:65","nodeType":"YulIdentifier","src":"77206:9:65"},{"kind":"number","nativeSrc":"77217:2:65","nodeType":"YulLiteral","src":"77217:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"77202:3:65","nodeType":"YulIdentifier","src":"77202:3:65"},"nativeSrc":"77202:18:65","nodeType":"YulFunctionCall","src":"77202:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"77149:43:65","nodeType":"YulIdentifier","src":"77149:43:65"},"nativeSrc":"77149:72:65","nodeType":"YulFunctionCall","src":"77149:72:65"},"nativeSrc":"77149:72:65","nodeType":"YulExpressionStatement","src":"77149:72:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"77275:6:65","nodeType":"YulIdentifier","src":"77275:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"77288:9:65","nodeType":"YulIdentifier","src":"77288:9:65"},{"kind":"number","nativeSrc":"77299:2:65","nodeType":"YulLiteral","src":"77299:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"77284:3:65","nodeType":"YulIdentifier","src":"77284:3:65"},"nativeSrc":"77284:18:65","nodeType":"YulFunctionCall","src":"77284:18:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"77231:43:65","nodeType":"YulIdentifier","src":"77231:43:65"},"nativeSrc":"77231:72:65","nodeType":"YulFunctionCall","src":"77231:72:65"},"nativeSrc":"77231:72:65","nodeType":"YulExpressionStatement","src":"77231:72:65"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"76868:442:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"76978:9:65","nodeType":"YulTypedName","src":"76978:9:65","type":""},{"name":"value2","nativeSrc":"76990:6:65","nodeType":"YulTypedName","src":"76990:6:65","type":""},{"name":"value1","nativeSrc":"76998:6:65","nodeType":"YulTypedName","src":"76998:6:65","type":""},{"name":"value0","nativeSrc":"77006:6:65","nodeType":"YulTypedName","src":"77006:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"77017:4:65","nodeType":"YulTypedName","src":"77017:4:65","type":""}],"src":"76868:442:65"},{"body":{"nativeSrc":"77376:77:65","nodeType":"YulBlock","src":"77376:77:65","statements":[{"nativeSrc":"77386:22:65","nodeType":"YulAssignment","src":"77386:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"77401:6:65","nodeType":"YulIdentifier","src":"77401:6:65"}],"functionName":{"name":"mload","nativeSrc":"77395:5:65","nodeType":"YulIdentifier","src":"77395:5:65"},"nativeSrc":"77395:13:65","nodeType":"YulFunctionCall","src":"77395:13:65"},"variableNames":[{"name":"value","nativeSrc":"77386:5:65","nodeType":"YulIdentifier","src":"77386:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"77441:5:65","nodeType":"YulIdentifier","src":"77441:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"77417:23:65","nodeType":"YulIdentifier","src":"77417:23:65"},"nativeSrc":"77417:30:65","nodeType":"YulFunctionCall","src":"77417:30:65"},"nativeSrc":"77417:30:65","nodeType":"YulExpressionStatement","src":"77417:30:65"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"77316:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"77354:6:65","nodeType":"YulTypedName","src":"77354:6:65","type":""},{"name":"end","nativeSrc":"77362:3:65","nodeType":"YulTypedName","src":"77362:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"77370:5:65","nodeType":"YulTypedName","src":"77370:5:65","type":""}],"src":"77316:137:65"},{"body":{"nativeSrc":"77533:271:65","nodeType":"YulBlock","src":"77533:271:65","statements":[{"body":{"nativeSrc":"77579:83:65","nodeType":"YulBlock","src":"77579:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"77581:77:65","nodeType":"YulIdentifier","src":"77581:77:65"},"nativeSrc":"77581:79:65","nodeType":"YulFunctionCall","src":"77581:79:65"},"nativeSrc":"77581:79:65","nodeType":"YulExpressionStatement","src":"77581:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"77554:7:65","nodeType":"YulIdentifier","src":"77554:7:65"},{"name":"headStart","nativeSrc":"77563:9:65","nodeType":"YulIdentifier","src":"77563:9:65"}],"functionName":{"name":"sub","nativeSrc":"77550:3:65","nodeType":"YulIdentifier","src":"77550:3:65"},"nativeSrc":"77550:23:65","nodeType":"YulFunctionCall","src":"77550:23:65"},{"kind":"number","nativeSrc":"77575:2:65","nodeType":"YulLiteral","src":"77575:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"77546:3:65","nodeType":"YulIdentifier","src":"77546:3:65"},"nativeSrc":"77546:32:65","nodeType":"YulFunctionCall","src":"77546:32:65"},"nativeSrc":"77543:119:65","nodeType":"YulIf","src":"77543:119:65"},{"nativeSrc":"77672:125:65","nodeType":"YulBlock","src":"77672:125:65","statements":[{"nativeSrc":"77687:15:65","nodeType":"YulVariableDeclaration","src":"77687:15:65","value":{"kind":"number","nativeSrc":"77701:1:65","nodeType":"YulLiteral","src":"77701:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"77691:6:65","nodeType":"YulTypedName","src":"77691:6:65","type":""}]},{"nativeSrc":"77716:71:65","nodeType":"YulAssignment","src":"77716:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"77759:9:65","nodeType":"YulIdentifier","src":"77759:9:65"},{"name":"offset","nativeSrc":"77770:6:65","nodeType":"YulIdentifier","src":"77770:6:65"}],"functionName":{"name":"add","nativeSrc":"77755:3:65","nodeType":"YulIdentifier","src":"77755:3:65"},"nativeSrc":"77755:22:65","nodeType":"YulFunctionCall","src":"77755:22:65"},{"name":"dataEnd","nativeSrc":"77779:7:65","nodeType":"YulIdentifier","src":"77779:7:65"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"77726:28:65","nodeType":"YulIdentifier","src":"77726:28:65"},"nativeSrc":"77726:61:65","nodeType":"YulFunctionCall","src":"77726:61:65"},"variableNames":[{"name":"value0","nativeSrc":"77716:6:65","nodeType":"YulIdentifier","src":"77716:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"77459:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"77503:9:65","nodeType":"YulTypedName","src":"77503:9:65","type":""},{"name":"dataEnd","nativeSrc":"77514:7:65","nodeType":"YulTypedName","src":"77514:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"77526:6:65","nodeType":"YulTypedName","src":"77526:6:65","type":""}],"src":"77459:345:65"},{"body":{"nativeSrc":"77916:123:65","nodeType":"YulBlock","src":"77916:123:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"77938:6:65","nodeType":"YulIdentifier","src":"77938:6:65"},{"kind":"number","nativeSrc":"77946:1:65","nodeType":"YulLiteral","src":"77946:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"77934:3:65","nodeType":"YulIdentifier","src":"77934:3:65"},"nativeSrc":"77934:14:65","nodeType":"YulFunctionCall","src":"77934:14:65"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"77950:34:65","nodeType":"YulLiteral","src":"77950:34:65","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"77927:6:65","nodeType":"YulIdentifier","src":"77927:6:65"},"nativeSrc":"77927:58:65","nodeType":"YulFunctionCall","src":"77927:58:65"},"nativeSrc":"77927:58:65","nodeType":"YulExpressionStatement","src":"77927:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"78006:6:65","nodeType":"YulIdentifier","src":"78006:6:65"},{"kind":"number","nativeSrc":"78014:2:65","nodeType":"YulLiteral","src":"78014:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"78002:3:65","nodeType":"YulIdentifier","src":"78002:3:65"},"nativeSrc":"78002:15:65","nodeType":"YulFunctionCall","src":"78002:15:65"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"78019:12:65","nodeType":"YulLiteral","src":"78019:12:65","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"77995:6:65","nodeType":"YulIdentifier","src":"77995:6:65"},"nativeSrc":"77995:37:65","nodeType":"YulFunctionCall","src":"77995:37:65"},"nativeSrc":"77995:37:65","nodeType":"YulExpressionStatement","src":"77995:37:65"}]},"name":"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","nativeSrc":"77810:229:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"77908:6:65","nodeType":"YulTypedName","src":"77908:6:65","type":""}],"src":"77810:229:65"},{"body":{"nativeSrc":"78191:220:65","nodeType":"YulBlock","src":"78191:220:65","statements":[{"nativeSrc":"78201:74:65","nodeType":"YulAssignment","src":"78201:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"78267:3:65","nodeType":"YulIdentifier","src":"78267:3:65"},{"kind":"number","nativeSrc":"78272:2:65","nodeType":"YulLiteral","src":"78272:2:65","type":"","value":"42"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"78208:58:65","nodeType":"YulIdentifier","src":"78208:58:65"},"nativeSrc":"78208:67:65","nodeType":"YulFunctionCall","src":"78208:67:65"},"variableNames":[{"name":"pos","nativeSrc":"78201:3:65","nodeType":"YulIdentifier","src":"78201:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"78373:3:65","nodeType":"YulIdentifier","src":"78373:3:65"}],"functionName":{"name":"store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","nativeSrc":"78284:88:65","nodeType":"YulIdentifier","src":"78284:88:65"},"nativeSrc":"78284:93:65","nodeType":"YulFunctionCall","src":"78284:93:65"},"nativeSrc":"78284:93:65","nodeType":"YulExpressionStatement","src":"78284:93:65"},{"nativeSrc":"78386:19:65","nodeType":"YulAssignment","src":"78386:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"78397:3:65","nodeType":"YulIdentifier","src":"78397:3:65"},{"kind":"number","nativeSrc":"78402:2:65","nodeType":"YulLiteral","src":"78402:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"78393:3:65","nodeType":"YulIdentifier","src":"78393:3:65"},"nativeSrc":"78393:12:65","nodeType":"YulFunctionCall","src":"78393:12:65"},"variableNames":[{"name":"end","nativeSrc":"78386:3:65","nodeType":"YulIdentifier","src":"78386:3:65"}]}]},"name":"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack","nativeSrc":"78045:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"78179:3:65","nodeType":"YulTypedName","src":"78179:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"78187:3:65","nodeType":"YulTypedName","src":"78187:3:65","type":""}],"src":"78045:366:65"},{"body":{"nativeSrc":"78588:248:65","nodeType":"YulBlock","src":"78588:248:65","statements":[{"nativeSrc":"78598:26:65","nodeType":"YulAssignment","src":"78598:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"78610:9:65","nodeType":"YulIdentifier","src":"78610:9:65"},{"kind":"number","nativeSrc":"78621:2:65","nodeType":"YulLiteral","src":"78621:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"78606:3:65","nodeType":"YulIdentifier","src":"78606:3:65"},"nativeSrc":"78606:18:65","nodeType":"YulFunctionCall","src":"78606:18:65"},"variableNames":[{"name":"tail","nativeSrc":"78598:4:65","nodeType":"YulIdentifier","src":"78598:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"78645:9:65","nodeType":"YulIdentifier","src":"78645:9:65"},{"kind":"number","nativeSrc":"78656:1:65","nodeType":"YulLiteral","src":"78656:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"78641:3:65","nodeType":"YulIdentifier","src":"78641:3:65"},"nativeSrc":"78641:17:65","nodeType":"YulFunctionCall","src":"78641:17:65"},{"arguments":[{"name":"tail","nativeSrc":"78664:4:65","nodeType":"YulIdentifier","src":"78664:4:65"},{"name":"headStart","nativeSrc":"78670:9:65","nodeType":"YulIdentifier","src":"78670:9:65"}],"functionName":{"name":"sub","nativeSrc":"78660:3:65","nodeType":"YulIdentifier","src":"78660:3:65"},"nativeSrc":"78660:20:65","nodeType":"YulFunctionCall","src":"78660:20:65"}],"functionName":{"name":"mstore","nativeSrc":"78634:6:65","nodeType":"YulIdentifier","src":"78634:6:65"},"nativeSrc":"78634:47:65","nodeType":"YulFunctionCall","src":"78634:47:65"},"nativeSrc":"78634:47:65","nodeType":"YulExpressionStatement","src":"78634:47:65"},{"nativeSrc":"78690:139:65","nodeType":"YulAssignment","src":"78690:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"78824:4:65","nodeType":"YulIdentifier","src":"78824:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack","nativeSrc":"78698:124:65","nodeType":"YulIdentifier","src":"78698:124:65"},"nativeSrc":"78698:131:65","nodeType":"YulFunctionCall","src":"78698:131:65"},"variableNames":[{"name":"tail","nativeSrc":"78690:4:65","nodeType":"YulIdentifier","src":"78690:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"78417:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"78568:9:65","nodeType":"YulTypedName","src":"78568:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"78583:4:65","nodeType":"YulTypedName","src":"78583:4:65","type":""}],"src":"78417:419:65"},{"body":{"nativeSrc":"78948:63:65","nodeType":"YulBlock","src":"78948:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"78970:6:65","nodeType":"YulIdentifier","src":"78970:6:65"},{"kind":"number","nativeSrc":"78978:1:65","nodeType":"YulLiteral","src":"78978:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"78966:3:65","nodeType":"YulIdentifier","src":"78966:3:65"},"nativeSrc":"78966:14:65","nodeType":"YulFunctionCall","src":"78966:14:65"},{"hexValue":"746f55696e74385f6f75744f66426f756e6473","kind":"string","nativeSrc":"78982:21:65","nodeType":"YulLiteral","src":"78982:21:65","type":"","value":"toUint8_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"78959:6:65","nodeType":"YulIdentifier","src":"78959:6:65"},"nativeSrc":"78959:45:65","nodeType":"YulFunctionCall","src":"78959:45:65"},"nativeSrc":"78959:45:65","nodeType":"YulExpressionStatement","src":"78959:45:65"}]},"name":"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","nativeSrc":"78842:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"78940:6:65","nodeType":"YulTypedName","src":"78940:6:65","type":""}],"src":"78842:169:65"},{"body":{"nativeSrc":"79163:220:65","nodeType":"YulBlock","src":"79163:220:65","statements":[{"nativeSrc":"79173:74:65","nodeType":"YulAssignment","src":"79173:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"79239:3:65","nodeType":"YulIdentifier","src":"79239:3:65"},{"kind":"number","nativeSrc":"79244:2:65","nodeType":"YulLiteral","src":"79244:2:65","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"79180:58:65","nodeType":"YulIdentifier","src":"79180:58:65"},"nativeSrc":"79180:67:65","nodeType":"YulFunctionCall","src":"79180:67:65"},"variableNames":[{"name":"pos","nativeSrc":"79173:3:65","nodeType":"YulIdentifier","src":"79173:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"79345:3:65","nodeType":"YulIdentifier","src":"79345:3:65"}],"functionName":{"name":"store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1","nativeSrc":"79256:88:65","nodeType":"YulIdentifier","src":"79256:88:65"},"nativeSrc":"79256:93:65","nodeType":"YulFunctionCall","src":"79256:93:65"},"nativeSrc":"79256:93:65","nodeType":"YulExpressionStatement","src":"79256:93:65"},{"nativeSrc":"79358:19:65","nodeType":"YulAssignment","src":"79358:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"79369:3:65","nodeType":"YulIdentifier","src":"79369:3:65"},{"kind":"number","nativeSrc":"79374:2:65","nodeType":"YulLiteral","src":"79374:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"79365:3:65","nodeType":"YulIdentifier","src":"79365:3:65"},"nativeSrc":"79365:12:65","nodeType":"YulFunctionCall","src":"79365:12:65"},"variableNames":[{"name":"end","nativeSrc":"79358:3:65","nodeType":"YulIdentifier","src":"79358:3:65"}]}]},"name":"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack","nativeSrc":"79017:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"79151:3:65","nodeType":"YulTypedName","src":"79151:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"79159:3:65","nodeType":"YulTypedName","src":"79159:3:65","type":""}],"src":"79017:366:65"},{"body":{"nativeSrc":"79560:248:65","nodeType":"YulBlock","src":"79560:248:65","statements":[{"nativeSrc":"79570:26:65","nodeType":"YulAssignment","src":"79570:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"79582:9:65","nodeType":"YulIdentifier","src":"79582:9:65"},{"kind":"number","nativeSrc":"79593:2:65","nodeType":"YulLiteral","src":"79593:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"79578:3:65","nodeType":"YulIdentifier","src":"79578:3:65"},"nativeSrc":"79578:18:65","nodeType":"YulFunctionCall","src":"79578:18:65"},"variableNames":[{"name":"tail","nativeSrc":"79570:4:65","nodeType":"YulIdentifier","src":"79570:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"79617:9:65","nodeType":"YulIdentifier","src":"79617:9:65"},{"kind":"number","nativeSrc":"79628:1:65","nodeType":"YulLiteral","src":"79628:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"79613:3:65","nodeType":"YulIdentifier","src":"79613:3:65"},"nativeSrc":"79613:17:65","nodeType":"YulFunctionCall","src":"79613:17:65"},{"arguments":[{"name":"tail","nativeSrc":"79636:4:65","nodeType":"YulIdentifier","src":"79636:4:65"},{"name":"headStart","nativeSrc":"79642:9:65","nodeType":"YulIdentifier","src":"79642:9:65"}],"functionName":{"name":"sub","nativeSrc":"79632:3:65","nodeType":"YulIdentifier","src":"79632:3:65"},"nativeSrc":"79632:20:65","nodeType":"YulFunctionCall","src":"79632:20:65"}],"functionName":{"name":"mstore","nativeSrc":"79606:6:65","nodeType":"YulIdentifier","src":"79606:6:65"},"nativeSrc":"79606:47:65","nodeType":"YulFunctionCall","src":"79606:47:65"},"nativeSrc":"79606:47:65","nodeType":"YulExpressionStatement","src":"79606:47:65"},{"nativeSrc":"79662:139:65","nodeType":"YulAssignment","src":"79662:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"79796:4:65","nodeType":"YulIdentifier","src":"79796:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack","nativeSrc":"79670:124:65","nodeType":"YulIdentifier","src":"79670:124:65"},"nativeSrc":"79670:131:65","nodeType":"YulFunctionCall","src":"79670:131:65"},"variableNames":[{"name":"tail","nativeSrc":"79662:4:65","nodeType":"YulIdentifier","src":"79662:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"79389:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"79540:9:65","nodeType":"YulTypedName","src":"79540:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"79555:4:65","nodeType":"YulTypedName","src":"79555:4:65","type":""}],"src":"79389:419:65"},{"body":{"nativeSrc":"80140:837:65","nodeType":"YulBlock","src":"80140:837:65","statements":[{"nativeSrc":"80150:27:65","nodeType":"YulAssignment","src":"80150:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"80162:9:65","nodeType":"YulIdentifier","src":"80162:9:65"},{"kind":"number","nativeSrc":"80173:3:65","nodeType":"YulLiteral","src":"80173:3:65","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"80158:3:65","nodeType":"YulIdentifier","src":"80158:3:65"},"nativeSrc":"80158:19:65","nodeType":"YulFunctionCall","src":"80158:19:65"},"variableNames":[{"name":"tail","nativeSrc":"80150:4:65","nodeType":"YulIdentifier","src":"80150:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"80229:6:65","nodeType":"YulIdentifier","src":"80229:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80242:9:65","nodeType":"YulIdentifier","src":"80242:9:65"},{"kind":"number","nativeSrc":"80253:1:65","nodeType":"YulLiteral","src":"80253:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"80238:3:65","nodeType":"YulIdentifier","src":"80238:3:65"},"nativeSrc":"80238:17:65","nodeType":"YulFunctionCall","src":"80238:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"80187:41:65","nodeType":"YulIdentifier","src":"80187:41:65"},"nativeSrc":"80187:69:65","nodeType":"YulFunctionCall","src":"80187:69:65"},"nativeSrc":"80187:69:65","nodeType":"YulExpressionStatement","src":"80187:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"80277:9:65","nodeType":"YulIdentifier","src":"80277:9:65"},{"kind":"number","nativeSrc":"80288:2:65","nodeType":"YulLiteral","src":"80288:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"80273:3:65","nodeType":"YulIdentifier","src":"80273:3:65"},"nativeSrc":"80273:18:65","nodeType":"YulFunctionCall","src":"80273:18:65"},{"arguments":[{"name":"tail","nativeSrc":"80297:4:65","nodeType":"YulIdentifier","src":"80297:4:65"},{"name":"headStart","nativeSrc":"80303:9:65","nodeType":"YulIdentifier","src":"80303:9:65"}],"functionName":{"name":"sub","nativeSrc":"80293:3:65","nodeType":"YulIdentifier","src":"80293:3:65"},"nativeSrc":"80293:20:65","nodeType":"YulFunctionCall","src":"80293:20:65"}],"functionName":{"name":"mstore","nativeSrc":"80266:6:65","nodeType":"YulIdentifier","src":"80266:6:65"},"nativeSrc":"80266:48:65","nodeType":"YulFunctionCall","src":"80266:48:65"},"nativeSrc":"80266:48:65","nodeType":"YulExpressionStatement","src":"80266:48:65"},{"nativeSrc":"80323:84:65","nodeType":"YulAssignment","src":"80323:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"80393:6:65","nodeType":"YulIdentifier","src":"80393:6:65"},{"name":"tail","nativeSrc":"80402:4:65","nodeType":"YulIdentifier","src":"80402:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"80331:61:65","nodeType":"YulIdentifier","src":"80331:61:65"},"nativeSrc":"80331:76:65","nodeType":"YulFunctionCall","src":"80331:76:65"},"variableNames":[{"name":"tail","nativeSrc":"80323:4:65","nodeType":"YulIdentifier","src":"80323:4:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"80459:6:65","nodeType":"YulIdentifier","src":"80459:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80472:9:65","nodeType":"YulIdentifier","src":"80472:9:65"},{"kind":"number","nativeSrc":"80483:2:65","nodeType":"YulLiteral","src":"80483:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"80468:3:65","nodeType":"YulIdentifier","src":"80468:3:65"},"nativeSrc":"80468:18:65","nodeType":"YulFunctionCall","src":"80468:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"80417:41:65","nodeType":"YulIdentifier","src":"80417:41:65"},"nativeSrc":"80417:70:65","nodeType":"YulFunctionCall","src":"80417:70:65"},"nativeSrc":"80417:70:65","nodeType":"YulExpressionStatement","src":"80417:70:65"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"80541:6:65","nodeType":"YulIdentifier","src":"80541:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80554:9:65","nodeType":"YulIdentifier","src":"80554:9:65"},{"kind":"number","nativeSrc":"80565:2:65","nodeType":"YulLiteral","src":"80565:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"80550:3:65","nodeType":"YulIdentifier","src":"80550:3:65"},"nativeSrc":"80550:18:65","nodeType":"YulFunctionCall","src":"80550:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"80497:43:65","nodeType":"YulIdentifier","src":"80497:43:65"},"nativeSrc":"80497:72:65","nodeType":"YulFunctionCall","src":"80497:72:65"},"nativeSrc":"80497:72:65","nodeType":"YulExpressionStatement","src":"80497:72:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"80623:6:65","nodeType":"YulIdentifier","src":"80623:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80636:9:65","nodeType":"YulIdentifier","src":"80636:9:65"},{"kind":"number","nativeSrc":"80647:3:65","nodeType":"YulLiteral","src":"80647:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"80632:3:65","nodeType":"YulIdentifier","src":"80632:3:65"},"nativeSrc":"80632:19:65","nodeType":"YulFunctionCall","src":"80632:19:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"80579:43:65","nodeType":"YulIdentifier","src":"80579:43:65"},"nativeSrc":"80579:73:65","nodeType":"YulFunctionCall","src":"80579:73:65"},"nativeSrc":"80579:73:65","nodeType":"YulExpressionStatement","src":"80579:73:65"},{"expression":{"arguments":[{"name":"value5","nativeSrc":"80706:6:65","nodeType":"YulIdentifier","src":"80706:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80719:9:65","nodeType":"YulIdentifier","src":"80719:9:65"},{"kind":"number","nativeSrc":"80730:3:65","nodeType":"YulLiteral","src":"80730:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"80715:3:65","nodeType":"YulIdentifier","src":"80715:3:65"},"nativeSrc":"80715:19:65","nodeType":"YulFunctionCall","src":"80715:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"80662:43:65","nodeType":"YulIdentifier","src":"80662:43:65"},"nativeSrc":"80662:73:65","nodeType":"YulFunctionCall","src":"80662:73:65"},"nativeSrc":"80662:73:65","nodeType":"YulExpressionStatement","src":"80662:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"80756:9:65","nodeType":"YulIdentifier","src":"80756:9:65"},{"kind":"number","nativeSrc":"80767:3:65","nodeType":"YulLiteral","src":"80767:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"80752:3:65","nodeType":"YulIdentifier","src":"80752:3:65"},"nativeSrc":"80752:19:65","nodeType":"YulFunctionCall","src":"80752:19:65"},{"arguments":[{"name":"tail","nativeSrc":"80777:4:65","nodeType":"YulIdentifier","src":"80777:4:65"},{"name":"headStart","nativeSrc":"80783:9:65","nodeType":"YulIdentifier","src":"80783:9:65"}],"functionName":{"name":"sub","nativeSrc":"80773:3:65","nodeType":"YulIdentifier","src":"80773:3:65"},"nativeSrc":"80773:20:65","nodeType":"YulFunctionCall","src":"80773:20:65"}],"functionName":{"name":"mstore","nativeSrc":"80745:6:65","nodeType":"YulIdentifier","src":"80745:6:65"},"nativeSrc":"80745:49:65","nodeType":"YulFunctionCall","src":"80745:49:65"},"nativeSrc":"80745:49:65","nodeType":"YulExpressionStatement","src":"80745:49:65"},{"nativeSrc":"80803:84:65","nodeType":"YulAssignment","src":"80803:84:65","value":{"arguments":[{"name":"value6","nativeSrc":"80873:6:65","nodeType":"YulIdentifier","src":"80873:6:65"},{"name":"tail","nativeSrc":"80882:4:65","nodeType":"YulIdentifier","src":"80882:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"80811:61:65","nodeType":"YulIdentifier","src":"80811:61:65"},"nativeSrc":"80811:76:65","nodeType":"YulFunctionCall","src":"80811:76:65"},"variableNames":[{"name":"tail","nativeSrc":"80803:4:65","nodeType":"YulIdentifier","src":"80803:4:65"}]},{"expression":{"arguments":[{"name":"value7","nativeSrc":"80941:6:65","nodeType":"YulIdentifier","src":"80941:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"80954:9:65","nodeType":"YulIdentifier","src":"80954:9:65"},{"kind":"number","nativeSrc":"80965:3:65","nodeType":"YulLiteral","src":"80965:3:65","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"80950:3:65","nodeType":"YulIdentifier","src":"80950:3:65"},"nativeSrc":"80950:19:65","nodeType":"YulFunctionCall","src":"80950:19:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"80897:43:65","nodeType":"YulIdentifier","src":"80897:43:65"},"nativeSrc":"80897:73:65","nodeType":"YulFunctionCall","src":"80897:73:65"},"nativeSrc":"80897:73:65","nodeType":"YulExpressionStatement","src":"80897:73:65"}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"79814:1163:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"80056:9:65","nodeType":"YulTypedName","src":"80056:9:65","type":""},{"name":"value7","nativeSrc":"80068:6:65","nodeType":"YulTypedName","src":"80068:6:65","type":""},{"name":"value6","nativeSrc":"80076:6:65","nodeType":"YulTypedName","src":"80076:6:65","type":""},{"name":"value5","nativeSrc":"80084:6:65","nodeType":"YulTypedName","src":"80084:6:65","type":""},{"name":"value4","nativeSrc":"80092:6:65","nodeType":"YulTypedName","src":"80092:6:65","type":""},{"name":"value3","nativeSrc":"80100:6:65","nodeType":"YulTypedName","src":"80100:6:65","type":""},{"name":"value2","nativeSrc":"80108:6:65","nodeType":"YulTypedName","src":"80108:6:65","type":""},{"name":"value1","nativeSrc":"80116:6:65","nodeType":"YulTypedName","src":"80116:6:65","type":""},{"name":"value0","nativeSrc":"80124:6:65","nodeType":"YulTypedName","src":"80124:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"80135:4:65","nodeType":"YulTypedName","src":"80135:4:65","type":""}],"src":"79814:1163:65"},{"body":{"nativeSrc":"81153:355:65","nodeType":"YulBlock","src":"81153:355:65","statements":[{"nativeSrc":"81163:26:65","nodeType":"YulAssignment","src":"81163:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"81175:9:65","nodeType":"YulIdentifier","src":"81175:9:65"},{"kind":"number","nativeSrc":"81186:2:65","nodeType":"YulLiteral","src":"81186:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"81171:3:65","nodeType":"YulIdentifier","src":"81171:3:65"},"nativeSrc":"81171:18:65","nodeType":"YulFunctionCall","src":"81171:18:65"},"variableNames":[{"name":"tail","nativeSrc":"81163:4:65","nodeType":"YulIdentifier","src":"81163:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"81210:9:65","nodeType":"YulIdentifier","src":"81210:9:65"},{"kind":"number","nativeSrc":"81221:1:65","nodeType":"YulLiteral","src":"81221:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"81206:3:65","nodeType":"YulIdentifier","src":"81206:3:65"},"nativeSrc":"81206:17:65","nodeType":"YulFunctionCall","src":"81206:17:65"},{"arguments":[{"name":"tail","nativeSrc":"81229:4:65","nodeType":"YulIdentifier","src":"81229:4:65"},{"name":"headStart","nativeSrc":"81235:9:65","nodeType":"YulIdentifier","src":"81235:9:65"}],"functionName":{"name":"sub","nativeSrc":"81225:3:65","nodeType":"YulIdentifier","src":"81225:3:65"},"nativeSrc":"81225:20:65","nodeType":"YulFunctionCall","src":"81225:20:65"}],"functionName":{"name":"mstore","nativeSrc":"81199:6:65","nodeType":"YulIdentifier","src":"81199:6:65"},"nativeSrc":"81199:47:65","nodeType":"YulFunctionCall","src":"81199:47:65"},"nativeSrc":"81199:47:65","nodeType":"YulExpressionStatement","src":"81199:47:65"},{"nativeSrc":"81255:84:65","nodeType":"YulAssignment","src":"81255:84:65","value":{"arguments":[{"name":"value0","nativeSrc":"81325:6:65","nodeType":"YulIdentifier","src":"81325:6:65"},{"name":"tail","nativeSrc":"81334:4:65","nodeType":"YulIdentifier","src":"81334:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"81263:61:65","nodeType":"YulIdentifier","src":"81263:61:65"},"nativeSrc":"81263:76:65","nodeType":"YulFunctionCall","src":"81263:76:65"},"variableNames":[{"name":"tail","nativeSrc":"81255:4:65","nodeType":"YulIdentifier","src":"81255:4:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"81391:6:65","nodeType":"YulIdentifier","src":"81391:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"81404:9:65","nodeType":"YulIdentifier","src":"81404:9:65"},{"kind":"number","nativeSrc":"81415:2:65","nodeType":"YulLiteral","src":"81415:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"81400:3:65","nodeType":"YulIdentifier","src":"81400:3:65"},"nativeSrc":"81400:18:65","nodeType":"YulFunctionCall","src":"81400:18:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"81349:41:65","nodeType":"YulIdentifier","src":"81349:41:65"},"nativeSrc":"81349:70:65","nodeType":"YulFunctionCall","src":"81349:70:65"},"nativeSrc":"81349:70:65","nodeType":"YulExpressionStatement","src":"81349:70:65"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"81473:6:65","nodeType":"YulIdentifier","src":"81473:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"81486:9:65","nodeType":"YulIdentifier","src":"81486:9:65"},{"kind":"number","nativeSrc":"81497:2:65","nodeType":"YulLiteral","src":"81497:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"81482:3:65","nodeType":"YulIdentifier","src":"81482:3:65"},"nativeSrc":"81482:18:65","nodeType":"YulFunctionCall","src":"81482:18:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"81429:43:65","nodeType":"YulIdentifier","src":"81429:43:65"},"nativeSrc":"81429:72:65","nodeType":"YulFunctionCall","src":"81429:72:65"},"nativeSrc":"81429:72:65","nodeType":"YulExpressionStatement","src":"81429:72:65"}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed","nativeSrc":"80983:525:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"81109:9:65","nodeType":"YulTypedName","src":"81109:9:65","type":""},{"name":"value2","nativeSrc":"81121:6:65","nodeType":"YulTypedName","src":"81121:6:65","type":""},{"name":"value1","nativeSrc":"81129:6:65","nodeType":"YulTypedName","src":"81129:6:65","type":""},{"name":"value0","nativeSrc":"81137:6:65","nodeType":"YulTypedName","src":"81137:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"81148:4:65","nodeType":"YulTypedName","src":"81148:4:65","type":""}],"src":"80983:525:65"},{"body":{"nativeSrc":"81620:70:65","nodeType":"YulBlock","src":"81620:70:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"81642:6:65","nodeType":"YulIdentifier","src":"81642:6:65"},{"kind":"number","nativeSrc":"81650:1:65","nodeType":"YulLiteral","src":"81650:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"81638:3:65","nodeType":"YulIdentifier","src":"81638:3:65"},"nativeSrc":"81638:14:65","nodeType":"YulFunctionCall","src":"81638:14:65"},{"hexValue":"4c7a4170703a206d696e4761734c696d6974206e6f7420736574","kind":"string","nativeSrc":"81654:28:65","nodeType":"YulLiteral","src":"81654:28:65","type":"","value":"LzApp: minGasLimit not set"}],"functionName":{"name":"mstore","nativeSrc":"81631:6:65","nodeType":"YulIdentifier","src":"81631:6:65"},"nativeSrc":"81631:52:65","nodeType":"YulFunctionCall","src":"81631:52:65"},"nativeSrc":"81631:52:65","nodeType":"YulExpressionStatement","src":"81631:52:65"}]},"name":"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","nativeSrc":"81514:176:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"81612:6:65","nodeType":"YulTypedName","src":"81612:6:65","type":""}],"src":"81514:176:65"},{"body":{"nativeSrc":"81842:220:65","nodeType":"YulBlock","src":"81842:220:65","statements":[{"nativeSrc":"81852:74:65","nodeType":"YulAssignment","src":"81852:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"81918:3:65","nodeType":"YulIdentifier","src":"81918:3:65"},{"kind":"number","nativeSrc":"81923:2:65","nodeType":"YulLiteral","src":"81923:2:65","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"81859:58:65","nodeType":"YulIdentifier","src":"81859:58:65"},"nativeSrc":"81859:67:65","nodeType":"YulFunctionCall","src":"81859:67:65"},"variableNames":[{"name":"pos","nativeSrc":"81852:3:65","nodeType":"YulIdentifier","src":"81852:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"82024:3:65","nodeType":"YulIdentifier","src":"82024:3:65"}],"functionName":{"name":"store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01","nativeSrc":"81935:88:65","nodeType":"YulIdentifier","src":"81935:88:65"},"nativeSrc":"81935:93:65","nodeType":"YulFunctionCall","src":"81935:93:65"},"nativeSrc":"81935:93:65","nodeType":"YulExpressionStatement","src":"81935:93:65"},{"nativeSrc":"82037:19:65","nodeType":"YulAssignment","src":"82037:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"82048:3:65","nodeType":"YulIdentifier","src":"82048:3:65"},{"kind":"number","nativeSrc":"82053:2:65","nodeType":"YulLiteral","src":"82053:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"82044:3:65","nodeType":"YulIdentifier","src":"82044:3:65"},"nativeSrc":"82044:12:65","nodeType":"YulFunctionCall","src":"82044:12:65"},"variableNames":[{"name":"end","nativeSrc":"82037:3:65","nodeType":"YulIdentifier","src":"82037:3:65"}]}]},"name":"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack","nativeSrc":"81696:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"81830:3:65","nodeType":"YulTypedName","src":"81830:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"81838:3:65","nodeType":"YulTypedName","src":"81838:3:65","type":""}],"src":"81696:366:65"},{"body":{"nativeSrc":"82239:248:65","nodeType":"YulBlock","src":"82239:248:65","statements":[{"nativeSrc":"82249:26:65","nodeType":"YulAssignment","src":"82249:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"82261:9:65","nodeType":"YulIdentifier","src":"82261:9:65"},{"kind":"number","nativeSrc":"82272:2:65","nodeType":"YulLiteral","src":"82272:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"82257:3:65","nodeType":"YulIdentifier","src":"82257:3:65"},"nativeSrc":"82257:18:65","nodeType":"YulFunctionCall","src":"82257:18:65"},"variableNames":[{"name":"tail","nativeSrc":"82249:4:65","nodeType":"YulIdentifier","src":"82249:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"82296:9:65","nodeType":"YulIdentifier","src":"82296:9:65"},{"kind":"number","nativeSrc":"82307:1:65","nodeType":"YulLiteral","src":"82307:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"82292:3:65","nodeType":"YulIdentifier","src":"82292:3:65"},"nativeSrc":"82292:17:65","nodeType":"YulFunctionCall","src":"82292:17:65"},{"arguments":[{"name":"tail","nativeSrc":"82315:4:65","nodeType":"YulIdentifier","src":"82315:4:65"},{"name":"headStart","nativeSrc":"82321:9:65","nodeType":"YulIdentifier","src":"82321:9:65"}],"functionName":{"name":"sub","nativeSrc":"82311:3:65","nodeType":"YulIdentifier","src":"82311:3:65"},"nativeSrc":"82311:20:65","nodeType":"YulFunctionCall","src":"82311:20:65"}],"functionName":{"name":"mstore","nativeSrc":"82285:6:65","nodeType":"YulIdentifier","src":"82285:6:65"},"nativeSrc":"82285:47:65","nodeType":"YulFunctionCall","src":"82285:47:65"},"nativeSrc":"82285:47:65","nodeType":"YulExpressionStatement","src":"82285:47:65"},{"nativeSrc":"82341:139:65","nodeType":"YulAssignment","src":"82341:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"82475:4:65","nodeType":"YulIdentifier","src":"82475:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack","nativeSrc":"82349:124:65","nodeType":"YulIdentifier","src":"82349:124:65"},"nativeSrc":"82349:131:65","nodeType":"YulFunctionCall","src":"82349:131:65"},"variableNames":[{"name":"tail","nativeSrc":"82341:4:65","nodeType":"YulIdentifier","src":"82341:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"82068:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82219:9:65","nodeType":"YulTypedName","src":"82219:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"82234:4:65","nodeType":"YulTypedName","src":"82234:4:65","type":""}],"src":"82068:419:65"},{"body":{"nativeSrc":"82599:71:65","nodeType":"YulBlock","src":"82599:71:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"82621:6:65","nodeType":"YulIdentifier","src":"82621:6:65"},{"kind":"number","nativeSrc":"82629:1:65","nodeType":"YulLiteral","src":"82629:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"82617:3:65","nodeType":"YulIdentifier","src":"82617:3:65"},"nativeSrc":"82617:14:65","nodeType":"YulFunctionCall","src":"82617:14:65"},{"hexValue":"4c7a4170703a20676173206c696d697420697320746f6f206c6f77","kind":"string","nativeSrc":"82633:29:65","nodeType":"YulLiteral","src":"82633:29:65","type":"","value":"LzApp: gas limit is too low"}],"functionName":{"name":"mstore","nativeSrc":"82610:6:65","nodeType":"YulIdentifier","src":"82610:6:65"},"nativeSrc":"82610:53:65","nodeType":"YulFunctionCall","src":"82610:53:65"},"nativeSrc":"82610:53:65","nodeType":"YulExpressionStatement","src":"82610:53:65"}]},"name":"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","nativeSrc":"82493:177:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"82591:6:65","nodeType":"YulTypedName","src":"82591:6:65","type":""}],"src":"82493:177:65"},{"body":{"nativeSrc":"82822:220:65","nodeType":"YulBlock","src":"82822:220:65","statements":[{"nativeSrc":"82832:74:65","nodeType":"YulAssignment","src":"82832:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"82898:3:65","nodeType":"YulIdentifier","src":"82898:3:65"},{"kind":"number","nativeSrc":"82903:2:65","nodeType":"YulLiteral","src":"82903:2:65","type":"","value":"27"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"82839:58:65","nodeType":"YulIdentifier","src":"82839:58:65"},"nativeSrc":"82839:67:65","nodeType":"YulFunctionCall","src":"82839:67:65"},"variableNames":[{"name":"pos","nativeSrc":"82832:3:65","nodeType":"YulIdentifier","src":"82832:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"83004:3:65","nodeType":"YulIdentifier","src":"83004:3:65"}],"functionName":{"name":"store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1","nativeSrc":"82915:88:65","nodeType":"YulIdentifier","src":"82915:88:65"},"nativeSrc":"82915:93:65","nodeType":"YulFunctionCall","src":"82915:93:65"},"nativeSrc":"82915:93:65","nodeType":"YulExpressionStatement","src":"82915:93:65"},{"nativeSrc":"83017:19:65","nodeType":"YulAssignment","src":"83017:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"83028:3:65","nodeType":"YulIdentifier","src":"83028:3:65"},{"kind":"number","nativeSrc":"83033:2:65","nodeType":"YulLiteral","src":"83033:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"83024:3:65","nodeType":"YulIdentifier","src":"83024:3:65"},"nativeSrc":"83024:12:65","nodeType":"YulFunctionCall","src":"83024:12:65"},"variableNames":[{"name":"end","nativeSrc":"83017:3:65","nodeType":"YulIdentifier","src":"83017:3:65"}]}]},"name":"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack","nativeSrc":"82676:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"82810:3:65","nodeType":"YulTypedName","src":"82810:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"82818:3:65","nodeType":"YulTypedName","src":"82818:3:65","type":""}],"src":"82676:366:65"},{"body":{"nativeSrc":"83219:248:65","nodeType":"YulBlock","src":"83219:248:65","statements":[{"nativeSrc":"83229:26:65","nodeType":"YulAssignment","src":"83229:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"83241:9:65","nodeType":"YulIdentifier","src":"83241:9:65"},{"kind":"number","nativeSrc":"83252:2:65","nodeType":"YulLiteral","src":"83252:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"83237:3:65","nodeType":"YulIdentifier","src":"83237:3:65"},"nativeSrc":"83237:18:65","nodeType":"YulFunctionCall","src":"83237:18:65"},"variableNames":[{"name":"tail","nativeSrc":"83229:4:65","nodeType":"YulIdentifier","src":"83229:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"83276:9:65","nodeType":"YulIdentifier","src":"83276:9:65"},{"kind":"number","nativeSrc":"83287:1:65","nodeType":"YulLiteral","src":"83287:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"83272:3:65","nodeType":"YulIdentifier","src":"83272:3:65"},"nativeSrc":"83272:17:65","nodeType":"YulFunctionCall","src":"83272:17:65"},{"arguments":[{"name":"tail","nativeSrc":"83295:4:65","nodeType":"YulIdentifier","src":"83295:4:65"},{"name":"headStart","nativeSrc":"83301:9:65","nodeType":"YulIdentifier","src":"83301:9:65"}],"functionName":{"name":"sub","nativeSrc":"83291:3:65","nodeType":"YulIdentifier","src":"83291:3:65"},"nativeSrc":"83291:20:65","nodeType":"YulFunctionCall","src":"83291:20:65"}],"functionName":{"name":"mstore","nativeSrc":"83265:6:65","nodeType":"YulIdentifier","src":"83265:6:65"},"nativeSrc":"83265:47:65","nodeType":"YulFunctionCall","src":"83265:47:65"},"nativeSrc":"83265:47:65","nodeType":"YulExpressionStatement","src":"83265:47:65"},{"nativeSrc":"83321:139:65","nodeType":"YulAssignment","src":"83321:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"83455:4:65","nodeType":"YulIdentifier","src":"83455:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack","nativeSrc":"83329:124:65","nodeType":"YulIdentifier","src":"83329:124:65"},"nativeSrc":"83329:131:65","nodeType":"YulFunctionCall","src":"83329:131:65"},"variableNames":[{"name":"tail","nativeSrc":"83321:4:65","nodeType":"YulIdentifier","src":"83321:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"83048:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"83199:9:65","nodeType":"YulTypedName","src":"83199:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"83214:4:65","nodeType":"YulTypedName","src":"83214:4:65","type":""}],"src":"83048:419:65"},{"body":{"nativeSrc":"83579:115:65","nodeType":"YulBlock","src":"83579:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"83601:6:65","nodeType":"YulIdentifier","src":"83601:6:65"},{"kind":"number","nativeSrc":"83609:1:65","nodeType":"YulLiteral","src":"83609:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"83597:3:65","nodeType":"YulIdentifier","src":"83597:3:65"},"nativeSrc":"83597:14:65","nodeType":"YulFunctionCall","src":"83597:14:65"},{"hexValue":"50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c","kind":"string","nativeSrc":"83613:34:65","nodeType":"YulLiteral","src":"83613:34:65","type":"","value":"ProxyOFT: owner is not send call"}],"functionName":{"name":"mstore","nativeSrc":"83590:6:65","nodeType":"YulIdentifier","src":"83590:6:65"},"nativeSrc":"83590:58:65","nodeType":"YulFunctionCall","src":"83590:58:65"},"nativeSrc":"83590:58:65","nodeType":"YulExpressionStatement","src":"83590:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"83669:6:65","nodeType":"YulIdentifier","src":"83669:6:65"},{"kind":"number","nativeSrc":"83677:2:65","nodeType":"YulLiteral","src":"83677:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"83665:3:65","nodeType":"YulIdentifier","src":"83665:3:65"},"nativeSrc":"83665:15:65","nodeType":"YulFunctionCall","src":"83665:15:65"},{"hexValue":"6572","kind":"string","nativeSrc":"83682:4:65","nodeType":"YulLiteral","src":"83682:4:65","type":"","value":"er"}],"functionName":{"name":"mstore","nativeSrc":"83658:6:65","nodeType":"YulIdentifier","src":"83658:6:65"},"nativeSrc":"83658:29:65","nodeType":"YulFunctionCall","src":"83658:29:65"},"nativeSrc":"83658:29:65","nodeType":"YulExpressionStatement","src":"83658:29:65"}]},"name":"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","nativeSrc":"83473:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"83571:6:65","nodeType":"YulTypedName","src":"83571:6:65","type":""}],"src":"83473:221:65"},{"body":{"nativeSrc":"83846:220:65","nodeType":"YulBlock","src":"83846:220:65","statements":[{"nativeSrc":"83856:74:65","nodeType":"YulAssignment","src":"83856:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"83922:3:65","nodeType":"YulIdentifier","src":"83922:3:65"},{"kind":"number","nativeSrc":"83927:2:65","nodeType":"YulLiteral","src":"83927:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"83863:58:65","nodeType":"YulIdentifier","src":"83863:58:65"},"nativeSrc":"83863:67:65","nodeType":"YulFunctionCall","src":"83863:67:65"},"variableNames":[{"name":"pos","nativeSrc":"83856:3:65","nodeType":"YulIdentifier","src":"83856:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"84028:3:65","nodeType":"YulIdentifier","src":"84028:3:65"}],"functionName":{"name":"store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2","nativeSrc":"83939:88:65","nodeType":"YulIdentifier","src":"83939:88:65"},"nativeSrc":"83939:93:65","nodeType":"YulFunctionCall","src":"83939:93:65"},"nativeSrc":"83939:93:65","nodeType":"YulExpressionStatement","src":"83939:93:65"},{"nativeSrc":"84041:19:65","nodeType":"YulAssignment","src":"84041:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"84052:3:65","nodeType":"YulIdentifier","src":"84052:3:65"},{"kind":"number","nativeSrc":"84057:2:65","nodeType":"YulLiteral","src":"84057:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"84048:3:65","nodeType":"YulIdentifier","src":"84048:3:65"},"nativeSrc":"84048:12:65","nodeType":"YulFunctionCall","src":"84048:12:65"},"variableNames":[{"name":"end","nativeSrc":"84041:3:65","nodeType":"YulIdentifier","src":"84041:3:65"}]}]},"name":"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack","nativeSrc":"83700:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"83834:3:65","nodeType":"YulTypedName","src":"83834:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"83842:3:65","nodeType":"YulTypedName","src":"83842:3:65","type":""}],"src":"83700:366:65"},{"body":{"nativeSrc":"84243:248:65","nodeType":"YulBlock","src":"84243:248:65","statements":[{"nativeSrc":"84253:26:65","nodeType":"YulAssignment","src":"84253:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"84265:9:65","nodeType":"YulIdentifier","src":"84265:9:65"},{"kind":"number","nativeSrc":"84276:2:65","nodeType":"YulLiteral","src":"84276:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"84261:3:65","nodeType":"YulIdentifier","src":"84261:3:65"},"nativeSrc":"84261:18:65","nodeType":"YulFunctionCall","src":"84261:18:65"},"variableNames":[{"name":"tail","nativeSrc":"84253:4:65","nodeType":"YulIdentifier","src":"84253:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"84300:9:65","nodeType":"YulIdentifier","src":"84300:9:65"},{"kind":"number","nativeSrc":"84311:1:65","nodeType":"YulLiteral","src":"84311:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"84296:3:65","nodeType":"YulIdentifier","src":"84296:3:65"},"nativeSrc":"84296:17:65","nodeType":"YulFunctionCall","src":"84296:17:65"},{"arguments":[{"name":"tail","nativeSrc":"84319:4:65","nodeType":"YulIdentifier","src":"84319:4:65"},{"name":"headStart","nativeSrc":"84325:9:65","nodeType":"YulIdentifier","src":"84325:9:65"}],"functionName":{"name":"sub","nativeSrc":"84315:3:65","nodeType":"YulIdentifier","src":"84315:3:65"},"nativeSrc":"84315:20:65","nodeType":"YulFunctionCall","src":"84315:20:65"}],"functionName":{"name":"mstore","nativeSrc":"84289:6:65","nodeType":"YulIdentifier","src":"84289:6:65"},"nativeSrc":"84289:47:65","nodeType":"YulFunctionCall","src":"84289:47:65"},"nativeSrc":"84289:47:65","nodeType":"YulExpressionStatement","src":"84289:47:65"},{"nativeSrc":"84345:139:65","nodeType":"YulAssignment","src":"84345:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"84479:4:65","nodeType":"YulIdentifier","src":"84479:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack","nativeSrc":"84353:124:65","nodeType":"YulIdentifier","src":"84353:124:65"},"nativeSrc":"84353:131:65","nodeType":"YulFunctionCall","src":"84353:131:65"},"variableNames":[{"name":"tail","nativeSrc":"84345:4:65","nodeType":"YulIdentifier","src":"84345:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"84072:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"84223:9:65","nodeType":"YulTypedName","src":"84223:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"84238:4:65","nodeType":"YulTypedName","src":"84238:4:65","type":""}],"src":"84072:419:65"},{"body":{"nativeSrc":"84603:129:65","nodeType":"YulBlock","src":"84603:129:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"84625:6:65","nodeType":"YulIdentifier","src":"84625:6:65"},{"kind":"number","nativeSrc":"84633:1:65","nodeType":"YulLiteral","src":"84633:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"84621:3:65","nodeType":"YulIdentifier","src":"84621:3:65"},"nativeSrc":"84621:14:65","nodeType":"YulFunctionCall","src":"84621:14:65"},{"hexValue":"4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420","kind":"string","nativeSrc":"84637:34:65","nodeType":"YulLiteral","src":"84637:34:65","type":"","value":"LzApp: destination chain is not "}],"functionName":{"name":"mstore","nativeSrc":"84614:6:65","nodeType":"YulIdentifier","src":"84614:6:65"},"nativeSrc":"84614:58:65","nodeType":"YulFunctionCall","src":"84614:58:65"},"nativeSrc":"84614:58:65","nodeType":"YulExpressionStatement","src":"84614:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"84693:6:65","nodeType":"YulIdentifier","src":"84693:6:65"},{"kind":"number","nativeSrc":"84701:2:65","nodeType":"YulLiteral","src":"84701:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"84689:3:65","nodeType":"YulIdentifier","src":"84689:3:65"},"nativeSrc":"84689:15:65","nodeType":"YulFunctionCall","src":"84689:15:65"},{"hexValue":"61207472757374656420736f75726365","kind":"string","nativeSrc":"84706:18:65","nodeType":"YulLiteral","src":"84706:18:65","type":"","value":"a trusted source"}],"functionName":{"name":"mstore","nativeSrc":"84682:6:65","nodeType":"YulIdentifier","src":"84682:6:65"},"nativeSrc":"84682:43:65","nodeType":"YulFunctionCall","src":"84682:43:65"},"nativeSrc":"84682:43:65","nodeType":"YulExpressionStatement","src":"84682:43:65"}]},"name":"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","nativeSrc":"84497:235:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"84595:6:65","nodeType":"YulTypedName","src":"84595:6:65","type":""}],"src":"84497:235:65"},{"body":{"nativeSrc":"84884:220:65","nodeType":"YulBlock","src":"84884:220:65","statements":[{"nativeSrc":"84894:74:65","nodeType":"YulAssignment","src":"84894:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"84960:3:65","nodeType":"YulIdentifier","src":"84960:3:65"},{"kind":"number","nativeSrc":"84965:2:65","nodeType":"YulLiteral","src":"84965:2:65","type":"","value":"48"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"84901:58:65","nodeType":"YulIdentifier","src":"84901:58:65"},"nativeSrc":"84901:67:65","nodeType":"YulFunctionCall","src":"84901:67:65"},"variableNames":[{"name":"pos","nativeSrc":"84894:3:65","nodeType":"YulIdentifier","src":"84894:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"85066:3:65","nodeType":"YulIdentifier","src":"85066:3:65"}],"functionName":{"name":"store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7","nativeSrc":"84977:88:65","nodeType":"YulIdentifier","src":"84977:88:65"},"nativeSrc":"84977:93:65","nodeType":"YulFunctionCall","src":"84977:93:65"},"nativeSrc":"84977:93:65","nodeType":"YulExpressionStatement","src":"84977:93:65"},{"nativeSrc":"85079:19:65","nodeType":"YulAssignment","src":"85079:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"85090:3:65","nodeType":"YulIdentifier","src":"85090:3:65"},{"kind":"number","nativeSrc":"85095:2:65","nodeType":"YulLiteral","src":"85095:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"85086:3:65","nodeType":"YulIdentifier","src":"85086:3:65"},"nativeSrc":"85086:12:65","nodeType":"YulFunctionCall","src":"85086:12:65"},"variableNames":[{"name":"end","nativeSrc":"85079:3:65","nodeType":"YulIdentifier","src":"85079:3:65"}]}]},"name":"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack","nativeSrc":"84738:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"84872:3:65","nodeType":"YulTypedName","src":"84872:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"84880:3:65","nodeType":"YulTypedName","src":"84880:3:65","type":""}],"src":"84738:366:65"},{"body":{"nativeSrc":"85281:248:65","nodeType":"YulBlock","src":"85281:248:65","statements":[{"nativeSrc":"85291:26:65","nodeType":"YulAssignment","src":"85291:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"85303:9:65","nodeType":"YulIdentifier","src":"85303:9:65"},{"kind":"number","nativeSrc":"85314:2:65","nodeType":"YulLiteral","src":"85314:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"85299:3:65","nodeType":"YulIdentifier","src":"85299:3:65"},"nativeSrc":"85299:18:65","nodeType":"YulFunctionCall","src":"85299:18:65"},"variableNames":[{"name":"tail","nativeSrc":"85291:4:65","nodeType":"YulIdentifier","src":"85291:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"85338:9:65","nodeType":"YulIdentifier","src":"85338:9:65"},{"kind":"number","nativeSrc":"85349:1:65","nodeType":"YulLiteral","src":"85349:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"85334:3:65","nodeType":"YulIdentifier","src":"85334:3:65"},"nativeSrc":"85334:17:65","nodeType":"YulFunctionCall","src":"85334:17:65"},{"arguments":[{"name":"tail","nativeSrc":"85357:4:65","nodeType":"YulIdentifier","src":"85357:4:65"},{"name":"headStart","nativeSrc":"85363:9:65","nodeType":"YulIdentifier","src":"85363:9:65"}],"functionName":{"name":"sub","nativeSrc":"85353:3:65","nodeType":"YulIdentifier","src":"85353:3:65"},"nativeSrc":"85353:20:65","nodeType":"YulFunctionCall","src":"85353:20:65"}],"functionName":{"name":"mstore","nativeSrc":"85327:6:65","nodeType":"YulIdentifier","src":"85327:6:65"},"nativeSrc":"85327:47:65","nodeType":"YulFunctionCall","src":"85327:47:65"},"nativeSrc":"85327:47:65","nodeType":"YulExpressionStatement","src":"85327:47:65"},{"nativeSrc":"85383:139:65","nodeType":"YulAssignment","src":"85383:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"85517:4:65","nodeType":"YulIdentifier","src":"85517:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack","nativeSrc":"85391:124:65","nodeType":"YulIdentifier","src":"85391:124:65"},"nativeSrc":"85391:131:65","nodeType":"YulFunctionCall","src":"85391:131:65"},"variableNames":[{"name":"tail","nativeSrc":"85383:4:65","nodeType":"YulIdentifier","src":"85383:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"85110:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"85261:9:65","nodeType":"YulTypedName","src":"85261:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"85276:4:65","nodeType":"YulTypedName","src":"85276:4:65","type":""}],"src":"85110:419:65"},{"body":{"nativeSrc":"85616:61:65","nodeType":"YulBlock","src":"85616:61:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"85633:3:65","nodeType":"YulIdentifier","src":"85633:3:65"},{"arguments":[{"name":"value","nativeSrc":"85664:5:65","nodeType":"YulIdentifier","src":"85664:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"85638:25:65","nodeType":"YulIdentifier","src":"85638:25:65"},"nativeSrc":"85638:32:65","nodeType":"YulFunctionCall","src":"85638:32:65"}],"functionName":{"name":"mstore","nativeSrc":"85626:6:65","nodeType":"YulIdentifier","src":"85626:6:65"},"nativeSrc":"85626:45:65","nodeType":"YulFunctionCall","src":"85626:45:65"},"nativeSrc":"85626:45:65","nodeType":"YulExpressionStatement","src":"85626:45:65"}]},"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"85535:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"85604:5:65","nodeType":"YulTypedName","src":"85604:5:65","type":""},{"name":"pos","nativeSrc":"85611:3:65","nodeType":"YulTypedName","src":"85611:3:65","type":""}],"src":"85535:142:65"},{"body":{"nativeSrc":"85989:758:65","nodeType":"YulBlock","src":"85989:758:65","statements":[{"nativeSrc":"85999:27:65","nodeType":"YulAssignment","src":"85999:27:65","value":{"arguments":[{"name":"headStart","nativeSrc":"86011:9:65","nodeType":"YulIdentifier","src":"86011:9:65"},{"kind":"number","nativeSrc":"86022:3:65","nodeType":"YulLiteral","src":"86022:3:65","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"86007:3:65","nodeType":"YulIdentifier","src":"86007:3:65"},"nativeSrc":"86007:19:65","nodeType":"YulFunctionCall","src":"86007:19:65"},"variableNames":[{"name":"tail","nativeSrc":"85999:4:65","nodeType":"YulIdentifier","src":"85999:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"86078:6:65","nodeType":"YulIdentifier","src":"86078:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"86091:9:65","nodeType":"YulIdentifier","src":"86091:9:65"},{"kind":"number","nativeSrc":"86102:1:65","nodeType":"YulLiteral","src":"86102:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"86087:3:65","nodeType":"YulIdentifier","src":"86087:3:65"},"nativeSrc":"86087:17:65","nodeType":"YulFunctionCall","src":"86087:17:65"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"86036:41:65","nodeType":"YulIdentifier","src":"86036:41:65"},"nativeSrc":"86036:69:65","nodeType":"YulFunctionCall","src":"86036:69:65"},"nativeSrc":"86036:69:65","nodeType":"YulExpressionStatement","src":"86036:69:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"86126:9:65","nodeType":"YulIdentifier","src":"86126:9:65"},{"kind":"number","nativeSrc":"86137:2:65","nodeType":"YulLiteral","src":"86137:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"86122:3:65","nodeType":"YulIdentifier","src":"86122:3:65"},"nativeSrc":"86122:18:65","nodeType":"YulFunctionCall","src":"86122:18:65"},{"arguments":[{"name":"tail","nativeSrc":"86146:4:65","nodeType":"YulIdentifier","src":"86146:4:65"},{"name":"headStart","nativeSrc":"86152:9:65","nodeType":"YulIdentifier","src":"86152:9:65"}],"functionName":{"name":"sub","nativeSrc":"86142:3:65","nodeType":"YulIdentifier","src":"86142:3:65"},"nativeSrc":"86142:20:65","nodeType":"YulFunctionCall","src":"86142:20:65"}],"functionName":{"name":"mstore","nativeSrc":"86115:6:65","nodeType":"YulIdentifier","src":"86115:6:65"},"nativeSrc":"86115:48:65","nodeType":"YulFunctionCall","src":"86115:48:65"},"nativeSrc":"86115:48:65","nodeType":"YulExpressionStatement","src":"86115:48:65"},{"nativeSrc":"86172:84:65","nodeType":"YulAssignment","src":"86172:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"86242:6:65","nodeType":"YulIdentifier","src":"86242:6:65"},{"name":"tail","nativeSrc":"86251:4:65","nodeType":"YulIdentifier","src":"86251:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"86180:61:65","nodeType":"YulIdentifier","src":"86180:61:65"},"nativeSrc":"86180:76:65","nodeType":"YulFunctionCall","src":"86180:76:65"},"variableNames":[{"name":"tail","nativeSrc":"86172:4:65","nodeType":"YulIdentifier","src":"86172:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"86277:9:65","nodeType":"YulIdentifier","src":"86277:9:65"},{"kind":"number","nativeSrc":"86288:2:65","nodeType":"YulLiteral","src":"86288:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"86273:3:65","nodeType":"YulIdentifier","src":"86273:3:65"},"nativeSrc":"86273:18:65","nodeType":"YulFunctionCall","src":"86273:18:65"},{"arguments":[{"name":"tail","nativeSrc":"86297:4:65","nodeType":"YulIdentifier","src":"86297:4:65"},{"name":"headStart","nativeSrc":"86303:9:65","nodeType":"YulIdentifier","src":"86303:9:65"}],"functionName":{"name":"sub","nativeSrc":"86293:3:65","nodeType":"YulIdentifier","src":"86293:3:65"},"nativeSrc":"86293:20:65","nodeType":"YulFunctionCall","src":"86293:20:65"}],"functionName":{"name":"mstore","nativeSrc":"86266:6:65","nodeType":"YulIdentifier","src":"86266:6:65"},"nativeSrc":"86266:48:65","nodeType":"YulFunctionCall","src":"86266:48:65"},"nativeSrc":"86266:48:65","nodeType":"YulExpressionStatement","src":"86266:48:65"},{"nativeSrc":"86323:84:65","nodeType":"YulAssignment","src":"86323:84:65","value":{"arguments":[{"name":"value2","nativeSrc":"86393:6:65","nodeType":"YulIdentifier","src":"86393:6:65"},{"name":"tail","nativeSrc":"86402:4:65","nodeType":"YulIdentifier","src":"86402:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"86331:61:65","nodeType":"YulIdentifier","src":"86331:61:65"},"nativeSrc":"86331:76:65","nodeType":"YulFunctionCall","src":"86331:76:65"},"variableNames":[{"name":"tail","nativeSrc":"86323:4:65","nodeType":"YulIdentifier","src":"86323:4:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"86477:6:65","nodeType":"YulIdentifier","src":"86477:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"86490:9:65","nodeType":"YulIdentifier","src":"86490:9:65"},{"kind":"number","nativeSrc":"86501:2:65","nodeType":"YulLiteral","src":"86501:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"86486:3:65","nodeType":"YulIdentifier","src":"86486:3:65"},"nativeSrc":"86486:18:65","nodeType":"YulFunctionCall","src":"86486:18:65"}],"functionName":{"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"86417:59:65","nodeType":"YulIdentifier","src":"86417:59:65"},"nativeSrc":"86417:88:65","nodeType":"YulFunctionCall","src":"86417:88:65"},"nativeSrc":"86417:88:65","nodeType":"YulExpressionStatement","src":"86417:88:65"},{"expression":{"arguments":[{"name":"value4","nativeSrc":"86559:6:65","nodeType":"YulIdentifier","src":"86559:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"86572:9:65","nodeType":"YulIdentifier","src":"86572:9:65"},{"kind":"number","nativeSrc":"86583:3:65","nodeType":"YulLiteral","src":"86583:3:65","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"86568:3:65","nodeType":"YulIdentifier","src":"86568:3:65"},"nativeSrc":"86568:19:65","nodeType":"YulFunctionCall","src":"86568:19:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"86515:43:65","nodeType":"YulIdentifier","src":"86515:43:65"},"nativeSrc":"86515:73:65","nodeType":"YulFunctionCall","src":"86515:73:65"},"nativeSrc":"86515:73:65","nodeType":"YulExpressionStatement","src":"86515:73:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"86609:9:65","nodeType":"YulIdentifier","src":"86609:9:65"},{"kind":"number","nativeSrc":"86620:3:65","nodeType":"YulLiteral","src":"86620:3:65","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"86605:3:65","nodeType":"YulIdentifier","src":"86605:3:65"},"nativeSrc":"86605:19:65","nodeType":"YulFunctionCall","src":"86605:19:65"},{"arguments":[{"name":"tail","nativeSrc":"86630:4:65","nodeType":"YulIdentifier","src":"86630:4:65"},{"name":"headStart","nativeSrc":"86636:9:65","nodeType":"YulIdentifier","src":"86636:9:65"}],"functionName":{"name":"sub","nativeSrc":"86626:3:65","nodeType":"YulIdentifier","src":"86626:3:65"},"nativeSrc":"86626:20:65","nodeType":"YulFunctionCall","src":"86626:20:65"}],"functionName":{"name":"mstore","nativeSrc":"86598:6:65","nodeType":"YulIdentifier","src":"86598:6:65"},"nativeSrc":"86598:49:65","nodeType":"YulFunctionCall","src":"86598:49:65"},"nativeSrc":"86598:49:65","nodeType":"YulExpressionStatement","src":"86598:49:65"},{"nativeSrc":"86656:84:65","nodeType":"YulAssignment","src":"86656:84:65","value":{"arguments":[{"name":"value5","nativeSrc":"86726:6:65","nodeType":"YulIdentifier","src":"86726:6:65"},{"name":"tail","nativeSrc":"86735:4:65","nodeType":"YulIdentifier","src":"86735:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"86664:61:65","nodeType":"YulIdentifier","src":"86664:61:65"},"nativeSrc":"86664:76:65","nodeType":"YulFunctionCall","src":"86664:76:65"},"variableNames":[{"name":"tail","nativeSrc":"86656:4:65","nodeType":"YulIdentifier","src":"86656:4:65"}]}]},"name":"abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"85683:1064:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"85921:9:65","nodeType":"YulTypedName","src":"85921:9:65","type":""},{"name":"value5","nativeSrc":"85933:6:65","nodeType":"YulTypedName","src":"85933:6:65","type":""},{"name":"value4","nativeSrc":"85941:6:65","nodeType":"YulTypedName","src":"85941:6:65","type":""},{"name":"value3","nativeSrc":"85949:6:65","nodeType":"YulTypedName","src":"85949:6:65","type":""},{"name":"value2","nativeSrc":"85957:6:65","nodeType":"YulTypedName","src":"85957:6:65","type":""},{"name":"value1","nativeSrc":"85965:6:65","nodeType":"YulTypedName","src":"85965:6:65","type":""},{"name":"value0","nativeSrc":"85973:6:65","nodeType":"YulTypedName","src":"85973:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"85984:4:65","nodeType":"YulTypedName","src":"85984:4:65","type":""}],"src":"85683:1064:65"},{"body":{"nativeSrc":"87019:691:65","nodeType":"YulBlock","src":"87019:691:65","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"87088:6:65","nodeType":"YulIdentifier","src":"87088:6:65"},{"name":"pos","nativeSrc":"87097:3:65","nodeType":"YulIdentifier","src":"87097:3:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"87030:57:65","nodeType":"YulIdentifier","src":"87030:57:65"},"nativeSrc":"87030:71:65","nodeType":"YulFunctionCall","src":"87030:71:65"},"nativeSrc":"87030:71:65","nodeType":"YulExpressionStatement","src":"87030:71:65"},{"nativeSrc":"87110:18:65","nodeType":"YulAssignment","src":"87110:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"87121:3:65","nodeType":"YulIdentifier","src":"87121:3:65"},{"kind":"number","nativeSrc":"87126:1:65","nodeType":"YulLiteral","src":"87126:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"87117:3:65","nodeType":"YulIdentifier","src":"87117:3:65"},"nativeSrc":"87117:11:65","nodeType":"YulFunctionCall","src":"87117:11:65"},"variableNames":[{"name":"pos","nativeSrc":"87110:3:65","nodeType":"YulIdentifier","src":"87110:3:65"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"87200:6:65","nodeType":"YulIdentifier","src":"87200:6:65"},{"name":"pos","nativeSrc":"87209:3:65","nodeType":"YulIdentifier","src":"87209:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"87138:61:65","nodeType":"YulIdentifier","src":"87138:61:65"},"nativeSrc":"87138:75:65","nodeType":"YulFunctionCall","src":"87138:75:65"},"nativeSrc":"87138:75:65","nodeType":"YulExpressionStatement","src":"87138:75:65"},{"nativeSrc":"87222:19:65","nodeType":"YulAssignment","src":"87222:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"87233:3:65","nodeType":"YulIdentifier","src":"87233:3:65"},{"kind":"number","nativeSrc":"87238:2:65","nodeType":"YulLiteral","src":"87238:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"87229:3:65","nodeType":"YulIdentifier","src":"87229:3:65"},"nativeSrc":"87229:12:65","nodeType":"YulFunctionCall","src":"87229:12:65"},"variableNames":[{"name":"pos","nativeSrc":"87222:3:65","nodeType":"YulIdentifier","src":"87222:3:65"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"87311:6:65","nodeType":"YulIdentifier","src":"87311:6:65"},{"name":"pos","nativeSrc":"87320:3:65","nodeType":"YulIdentifier","src":"87320:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"87251:59:65","nodeType":"YulIdentifier","src":"87251:59:65"},"nativeSrc":"87251:73:65","nodeType":"YulFunctionCall","src":"87251:73:65"},"nativeSrc":"87251:73:65","nodeType":"YulExpressionStatement","src":"87251:73:65"},{"nativeSrc":"87333:18:65","nodeType":"YulAssignment","src":"87333:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"87344:3:65","nodeType":"YulIdentifier","src":"87344:3:65"},{"kind":"number","nativeSrc":"87349:1:65","nodeType":"YulLiteral","src":"87349:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"87340:3:65","nodeType":"YulIdentifier","src":"87340:3:65"},"nativeSrc":"87340:11:65","nodeType":"YulFunctionCall","src":"87340:11:65"},"variableNames":[{"name":"pos","nativeSrc":"87333:3:65","nodeType":"YulIdentifier","src":"87333:3:65"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"87423:6:65","nodeType":"YulIdentifier","src":"87423:6:65"},{"name":"pos","nativeSrc":"87432:3:65","nodeType":"YulIdentifier","src":"87432:3:65"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"87361:61:65","nodeType":"YulIdentifier","src":"87361:61:65"},"nativeSrc":"87361:75:65","nodeType":"YulFunctionCall","src":"87361:75:65"},"nativeSrc":"87361:75:65","nodeType":"YulExpressionStatement","src":"87361:75:65"},{"nativeSrc":"87445:19:65","nodeType":"YulAssignment","src":"87445:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"87456:3:65","nodeType":"YulIdentifier","src":"87456:3:65"},{"kind":"number","nativeSrc":"87461:2:65","nodeType":"YulLiteral","src":"87461:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"87452:3:65","nodeType":"YulIdentifier","src":"87452:3:65"},"nativeSrc":"87452:12:65","nodeType":"YulFunctionCall","src":"87452:12:65"},"variableNames":[{"name":"pos","nativeSrc":"87445:3:65","nodeType":"YulIdentifier","src":"87445:3:65"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"87534:6:65","nodeType":"YulIdentifier","src":"87534:6:65"},{"name":"pos","nativeSrc":"87543:3:65","nodeType":"YulIdentifier","src":"87543:3:65"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack","nativeSrc":"87474:59:65","nodeType":"YulIdentifier","src":"87474:59:65"},"nativeSrc":"87474:73:65","nodeType":"YulFunctionCall","src":"87474:73:65"},"nativeSrc":"87474:73:65","nodeType":"YulExpressionStatement","src":"87474:73:65"},{"nativeSrc":"87556:18:65","nodeType":"YulAssignment","src":"87556:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"87567:3:65","nodeType":"YulIdentifier","src":"87567:3:65"},{"kind":"number","nativeSrc":"87572:1:65","nodeType":"YulLiteral","src":"87572:1:65","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"87563:3:65","nodeType":"YulIdentifier","src":"87563:3:65"},"nativeSrc":"87563:11:65","nodeType":"YulFunctionCall","src":"87563:11:65"},"variableNames":[{"name":"pos","nativeSrc":"87556:3:65","nodeType":"YulIdentifier","src":"87556:3:65"}]},{"nativeSrc":"87584:100:65","nodeType":"YulAssignment","src":"87584:100:65","value":{"arguments":[{"name":"value5","nativeSrc":"87671:6:65","nodeType":"YulIdentifier","src":"87671:6:65"},{"name":"pos","nativeSrc":"87680:3:65","nodeType":"YulIdentifier","src":"87680:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"87591:79:65","nodeType":"YulIdentifier","src":"87591:79:65"},"nativeSrc":"87591:93:65","nodeType":"YulFunctionCall","src":"87591:93:65"},"variableNames":[{"name":"pos","nativeSrc":"87584:3:65","nodeType":"YulIdentifier","src":"87584:3:65"}]},{"nativeSrc":"87694:10:65","nodeType":"YulAssignment","src":"87694:10:65","value":{"name":"pos","nativeSrc":"87701:3:65","nodeType":"YulIdentifier","src":"87701:3:65"},"variableNames":[{"name":"end","nativeSrc":"87694:3:65","nodeType":"YulIdentifier","src":"87694:3:65"}]}]},"name":"abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"86753:957:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"86958:3:65","nodeType":"YulTypedName","src":"86958:3:65","type":""},{"name":"value5","nativeSrc":"86964:6:65","nodeType":"YulTypedName","src":"86964:6:65","type":""},{"name":"value4","nativeSrc":"86972:6:65","nodeType":"YulTypedName","src":"86972:6:65","type":""},{"name":"value3","nativeSrc":"86980:6:65","nodeType":"YulTypedName","src":"86980:6:65","type":""},{"name":"value2","nativeSrc":"86988:6:65","nodeType":"YulTypedName","src":"86988:6:65","type":""},{"name":"value1","nativeSrc":"86996:6:65","nodeType":"YulTypedName","src":"86996:6:65","type":""},{"name":"value0","nativeSrc":"87004:6:65","nodeType":"YulTypedName","src":"87004:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"87015:3:65","nodeType":"YulTypedName","src":"87015:3:65","type":""}],"src":"86753:957:65"},{"body":{"nativeSrc":"87822:68:65","nodeType":"YulBlock","src":"87822:68:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"87844:6:65","nodeType":"YulIdentifier","src":"87844:6:65"},{"kind":"number","nativeSrc":"87852:1:65","nodeType":"YulLiteral","src":"87852:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"87840:3:65","nodeType":"YulIdentifier","src":"87840:3:65"},"nativeSrc":"87840:14:65","nodeType":"YulFunctionCall","src":"87840:14:65"},{"hexValue":"4f4654436f72653a20696e76616c6964207061796c6f6164","kind":"string","nativeSrc":"87856:26:65","nodeType":"YulLiteral","src":"87856:26:65","type":"","value":"OFTCore: invalid payload"}],"functionName":{"name":"mstore","nativeSrc":"87833:6:65","nodeType":"YulIdentifier","src":"87833:6:65"},"nativeSrc":"87833:50:65","nodeType":"YulFunctionCall","src":"87833:50:65"},"nativeSrc":"87833:50:65","nodeType":"YulExpressionStatement","src":"87833:50:65"}]},"name":"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","nativeSrc":"87716:174:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"87814:6:65","nodeType":"YulTypedName","src":"87814:6:65","type":""}],"src":"87716:174:65"},{"body":{"nativeSrc":"88042:220:65","nodeType":"YulBlock","src":"88042:220:65","statements":[{"nativeSrc":"88052:74:65","nodeType":"YulAssignment","src":"88052:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"88118:3:65","nodeType":"YulIdentifier","src":"88118:3:65"},{"kind":"number","nativeSrc":"88123:2:65","nodeType":"YulLiteral","src":"88123:2:65","type":"","value":"24"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"88059:58:65","nodeType":"YulIdentifier","src":"88059:58:65"},"nativeSrc":"88059:67:65","nodeType":"YulFunctionCall","src":"88059:67:65"},"variableNames":[{"name":"pos","nativeSrc":"88052:3:65","nodeType":"YulIdentifier","src":"88052:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"88224:3:65","nodeType":"YulIdentifier","src":"88224:3:65"}],"functionName":{"name":"store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934","nativeSrc":"88135:88:65","nodeType":"YulIdentifier","src":"88135:88:65"},"nativeSrc":"88135:93:65","nodeType":"YulFunctionCall","src":"88135:93:65"},"nativeSrc":"88135:93:65","nodeType":"YulExpressionStatement","src":"88135:93:65"},{"nativeSrc":"88237:19:65","nodeType":"YulAssignment","src":"88237:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"88248:3:65","nodeType":"YulIdentifier","src":"88248:3:65"},{"kind":"number","nativeSrc":"88253:2:65","nodeType":"YulLiteral","src":"88253:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"88244:3:65","nodeType":"YulIdentifier","src":"88244:3:65"},"nativeSrc":"88244:12:65","nodeType":"YulFunctionCall","src":"88244:12:65"},"variableNames":[{"name":"end","nativeSrc":"88237:3:65","nodeType":"YulIdentifier","src":"88237:3:65"}]}]},"name":"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack","nativeSrc":"87896:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"88030:3:65","nodeType":"YulTypedName","src":"88030:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"88038:3:65","nodeType":"YulTypedName","src":"88038:3:65","type":""}],"src":"87896:366:65"},{"body":{"nativeSrc":"88439:248:65","nodeType":"YulBlock","src":"88439:248:65","statements":[{"nativeSrc":"88449:26:65","nodeType":"YulAssignment","src":"88449:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"88461:9:65","nodeType":"YulIdentifier","src":"88461:9:65"},{"kind":"number","nativeSrc":"88472:2:65","nodeType":"YulLiteral","src":"88472:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"88457:3:65","nodeType":"YulIdentifier","src":"88457:3:65"},"nativeSrc":"88457:18:65","nodeType":"YulFunctionCall","src":"88457:18:65"},"variableNames":[{"name":"tail","nativeSrc":"88449:4:65","nodeType":"YulIdentifier","src":"88449:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"88496:9:65","nodeType":"YulIdentifier","src":"88496:9:65"},{"kind":"number","nativeSrc":"88507:1:65","nodeType":"YulLiteral","src":"88507:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"88492:3:65","nodeType":"YulIdentifier","src":"88492:3:65"},"nativeSrc":"88492:17:65","nodeType":"YulFunctionCall","src":"88492:17:65"},{"arguments":[{"name":"tail","nativeSrc":"88515:4:65","nodeType":"YulIdentifier","src":"88515:4:65"},{"name":"headStart","nativeSrc":"88521:9:65","nodeType":"YulIdentifier","src":"88521:9:65"}],"functionName":{"name":"sub","nativeSrc":"88511:3:65","nodeType":"YulIdentifier","src":"88511:3:65"},"nativeSrc":"88511:20:65","nodeType":"YulFunctionCall","src":"88511:20:65"}],"functionName":{"name":"mstore","nativeSrc":"88485:6:65","nodeType":"YulIdentifier","src":"88485:6:65"},"nativeSrc":"88485:47:65","nodeType":"YulFunctionCall","src":"88485:47:65"},"nativeSrc":"88485:47:65","nodeType":"YulExpressionStatement","src":"88485:47:65"},{"nativeSrc":"88541:139:65","nodeType":"YulAssignment","src":"88541:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"88675:4:65","nodeType":"YulIdentifier","src":"88675:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack","nativeSrc":"88549:124:65","nodeType":"YulIdentifier","src":"88549:124:65"},"nativeSrc":"88549:131:65","nodeType":"YulFunctionCall","src":"88549:131:65"},"variableNames":[{"name":"tail","nativeSrc":"88541:4:65","nodeType":"YulIdentifier","src":"88541:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"88268:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"88419:9:65","nodeType":"YulTypedName","src":"88419:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"88434:4:65","nodeType":"YulTypedName","src":"88434:4:65","type":""}],"src":"88268:419:65"},{"body":{"nativeSrc":"88799:72:65","nodeType":"YulBlock","src":"88799:72:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"88821:6:65","nodeType":"YulIdentifier","src":"88821:6:65"},{"kind":"number","nativeSrc":"88829:1:65","nodeType":"YulLiteral","src":"88829:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"88817:3:65","nodeType":"YulIdentifier","src":"88817:3:65"},"nativeSrc":"88817:14:65","nodeType":"YulFunctionCall","src":"88817:14:65"},{"hexValue":"4c7a4170703a20696e76616c69642061646170746572506172616d73","kind":"string","nativeSrc":"88833:30:65","nodeType":"YulLiteral","src":"88833:30:65","type":"","value":"LzApp: invalid adapterParams"}],"functionName":{"name":"mstore","nativeSrc":"88810:6:65","nodeType":"YulIdentifier","src":"88810:6:65"},"nativeSrc":"88810:54:65","nodeType":"YulFunctionCall","src":"88810:54:65"},"nativeSrc":"88810:54:65","nodeType":"YulExpressionStatement","src":"88810:54:65"}]},"name":"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","nativeSrc":"88693:178:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"88791:6:65","nodeType":"YulTypedName","src":"88791:6:65","type":""}],"src":"88693:178:65"},{"body":{"nativeSrc":"89023:220:65","nodeType":"YulBlock","src":"89023:220:65","statements":[{"nativeSrc":"89033:74:65","nodeType":"YulAssignment","src":"89033:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"89099:3:65","nodeType":"YulIdentifier","src":"89099:3:65"},{"kind":"number","nativeSrc":"89104:2:65","nodeType":"YulLiteral","src":"89104:2:65","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"89040:58:65","nodeType":"YulIdentifier","src":"89040:58:65"},"nativeSrc":"89040:67:65","nodeType":"YulFunctionCall","src":"89040:67:65"},"variableNames":[{"name":"pos","nativeSrc":"89033:3:65","nodeType":"YulIdentifier","src":"89033:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"89205:3:65","nodeType":"YulIdentifier","src":"89205:3:65"}],"functionName":{"name":"store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d","nativeSrc":"89116:88:65","nodeType":"YulIdentifier","src":"89116:88:65"},"nativeSrc":"89116:93:65","nodeType":"YulFunctionCall","src":"89116:93:65"},"nativeSrc":"89116:93:65","nodeType":"YulExpressionStatement","src":"89116:93:65"},{"nativeSrc":"89218:19:65","nodeType":"YulAssignment","src":"89218:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"89229:3:65","nodeType":"YulIdentifier","src":"89229:3:65"},{"kind":"number","nativeSrc":"89234:2:65","nodeType":"YulLiteral","src":"89234:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"89225:3:65","nodeType":"YulIdentifier","src":"89225:3:65"},"nativeSrc":"89225:12:65","nodeType":"YulFunctionCall","src":"89225:12:65"},"variableNames":[{"name":"end","nativeSrc":"89218:3:65","nodeType":"YulIdentifier","src":"89218:3:65"}]}]},"name":"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack","nativeSrc":"88877:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"89011:3:65","nodeType":"YulTypedName","src":"89011:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"89019:3:65","nodeType":"YulTypedName","src":"89019:3:65","type":""}],"src":"88877:366:65"},{"body":{"nativeSrc":"89420:248:65","nodeType":"YulBlock","src":"89420:248:65","statements":[{"nativeSrc":"89430:26:65","nodeType":"YulAssignment","src":"89430:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"89442:9:65","nodeType":"YulIdentifier","src":"89442:9:65"},{"kind":"number","nativeSrc":"89453:2:65","nodeType":"YulLiteral","src":"89453:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"89438:3:65","nodeType":"YulIdentifier","src":"89438:3:65"},"nativeSrc":"89438:18:65","nodeType":"YulFunctionCall","src":"89438:18:65"},"variableNames":[{"name":"tail","nativeSrc":"89430:4:65","nodeType":"YulIdentifier","src":"89430:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"89477:9:65","nodeType":"YulIdentifier","src":"89477:9:65"},{"kind":"number","nativeSrc":"89488:1:65","nodeType":"YulLiteral","src":"89488:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"89473:3:65","nodeType":"YulIdentifier","src":"89473:3:65"},"nativeSrc":"89473:17:65","nodeType":"YulFunctionCall","src":"89473:17:65"},{"arguments":[{"name":"tail","nativeSrc":"89496:4:65","nodeType":"YulIdentifier","src":"89496:4:65"},{"name":"headStart","nativeSrc":"89502:9:65","nodeType":"YulIdentifier","src":"89502:9:65"}],"functionName":{"name":"sub","nativeSrc":"89492:3:65","nodeType":"YulIdentifier","src":"89492:3:65"},"nativeSrc":"89492:20:65","nodeType":"YulFunctionCall","src":"89492:20:65"}],"functionName":{"name":"mstore","nativeSrc":"89466:6:65","nodeType":"YulIdentifier","src":"89466:6:65"},"nativeSrc":"89466:47:65","nodeType":"YulFunctionCall","src":"89466:47:65"},"nativeSrc":"89466:47:65","nodeType":"YulExpressionStatement","src":"89466:47:65"},{"nativeSrc":"89522:139:65","nodeType":"YulAssignment","src":"89522:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"89656:4:65","nodeType":"YulIdentifier","src":"89656:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack","nativeSrc":"89530:124:65","nodeType":"YulIdentifier","src":"89530:124:65"},"nativeSrc":"89530:131:65","nodeType":"YulFunctionCall","src":"89530:131:65"},"variableNames":[{"name":"tail","nativeSrc":"89522:4:65","nodeType":"YulIdentifier","src":"89522:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"89249:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"89400:9:65","nodeType":"YulTypedName","src":"89400:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"89415:4:65","nodeType":"YulTypedName","src":"89415:4:65","type":""}],"src":"89249:419:65"},{"body":{"nativeSrc":"89780:75:65","nodeType":"YulBlock","src":"89780:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"89802:6:65","nodeType":"YulIdentifier","src":"89802:6:65"},{"kind":"number","nativeSrc":"89810:1:65","nodeType":"YulLiteral","src":"89810:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"89798:3:65","nodeType":"YulIdentifier","src":"89798:3:65"},"nativeSrc":"89798:14:65","nodeType":"YulFunctionCall","src":"89798:14:65"},{"hexValue":"53696e676c65205472616e73616374696f6e204c696d697420457863656564","kind":"string","nativeSrc":"89814:33:65","nodeType":"YulLiteral","src":"89814:33:65","type":"","value":"Single Transaction Limit Exceed"}],"functionName":{"name":"mstore","nativeSrc":"89791:6:65","nodeType":"YulIdentifier","src":"89791:6:65"},"nativeSrc":"89791:57:65","nodeType":"YulFunctionCall","src":"89791:57:65"},"nativeSrc":"89791:57:65","nodeType":"YulExpressionStatement","src":"89791:57:65"}]},"name":"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","nativeSrc":"89674:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"89772:6:65","nodeType":"YulTypedName","src":"89772:6:65","type":""}],"src":"89674:181:65"},{"body":{"nativeSrc":"90007:220:65","nodeType":"YulBlock","src":"90007:220:65","statements":[{"nativeSrc":"90017:74:65","nodeType":"YulAssignment","src":"90017:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"90083:3:65","nodeType":"YulIdentifier","src":"90083:3:65"},{"kind":"number","nativeSrc":"90088:2:65","nodeType":"YulLiteral","src":"90088:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"90024:58:65","nodeType":"YulIdentifier","src":"90024:58:65"},"nativeSrc":"90024:67:65","nodeType":"YulFunctionCall","src":"90024:67:65"},"variableNames":[{"name":"pos","nativeSrc":"90017:3:65","nodeType":"YulIdentifier","src":"90017:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"90189:3:65","nodeType":"YulIdentifier","src":"90189:3:65"}],"functionName":{"name":"store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756","nativeSrc":"90100:88:65","nodeType":"YulIdentifier","src":"90100:88:65"},"nativeSrc":"90100:93:65","nodeType":"YulFunctionCall","src":"90100:93:65"},"nativeSrc":"90100:93:65","nodeType":"YulExpressionStatement","src":"90100:93:65"},{"nativeSrc":"90202:19:65","nodeType":"YulAssignment","src":"90202:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"90213:3:65","nodeType":"YulIdentifier","src":"90213:3:65"},{"kind":"number","nativeSrc":"90218:2:65","nodeType":"YulLiteral","src":"90218:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"90209:3:65","nodeType":"YulIdentifier","src":"90209:3:65"},"nativeSrc":"90209:12:65","nodeType":"YulFunctionCall","src":"90209:12:65"},"variableNames":[{"name":"end","nativeSrc":"90202:3:65","nodeType":"YulIdentifier","src":"90202:3:65"}]}]},"name":"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack","nativeSrc":"89861:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"89995:3:65","nodeType":"YulTypedName","src":"89995:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"90003:3:65","nodeType":"YulTypedName","src":"90003:3:65","type":""}],"src":"89861:366:65"},{"body":{"nativeSrc":"90404:248:65","nodeType":"YulBlock","src":"90404:248:65","statements":[{"nativeSrc":"90414:26:65","nodeType":"YulAssignment","src":"90414:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"90426:9:65","nodeType":"YulIdentifier","src":"90426:9:65"},{"kind":"number","nativeSrc":"90437:2:65","nodeType":"YulLiteral","src":"90437:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"90422:3:65","nodeType":"YulIdentifier","src":"90422:3:65"},"nativeSrc":"90422:18:65","nodeType":"YulFunctionCall","src":"90422:18:65"},"variableNames":[{"name":"tail","nativeSrc":"90414:4:65","nodeType":"YulIdentifier","src":"90414:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"90461:9:65","nodeType":"YulIdentifier","src":"90461:9:65"},{"kind":"number","nativeSrc":"90472:1:65","nodeType":"YulLiteral","src":"90472:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"90457:3:65","nodeType":"YulIdentifier","src":"90457:3:65"},"nativeSrc":"90457:17:65","nodeType":"YulFunctionCall","src":"90457:17:65"},{"arguments":[{"name":"tail","nativeSrc":"90480:4:65","nodeType":"YulIdentifier","src":"90480:4:65"},{"name":"headStart","nativeSrc":"90486:9:65","nodeType":"YulIdentifier","src":"90486:9:65"}],"functionName":{"name":"sub","nativeSrc":"90476:3:65","nodeType":"YulIdentifier","src":"90476:3:65"},"nativeSrc":"90476:20:65","nodeType":"YulFunctionCall","src":"90476:20:65"}],"functionName":{"name":"mstore","nativeSrc":"90450:6:65","nodeType":"YulIdentifier","src":"90450:6:65"},"nativeSrc":"90450:47:65","nodeType":"YulFunctionCall","src":"90450:47:65"},"nativeSrc":"90450:47:65","nodeType":"YulExpressionStatement","src":"90450:47:65"},{"nativeSrc":"90506:139:65","nodeType":"YulAssignment","src":"90506:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"90640:4:65","nodeType":"YulIdentifier","src":"90640:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack","nativeSrc":"90514:124:65","nodeType":"YulIdentifier","src":"90514:124:65"},"nativeSrc":"90514:131:65","nodeType":"YulFunctionCall","src":"90514:131:65"},"variableNames":[{"name":"tail","nativeSrc":"90506:4:65","nodeType":"YulIdentifier","src":"90506:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"90233:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"90384:9:65","nodeType":"YulTypedName","src":"90384:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"90399:4:65","nodeType":"YulTypedName","src":"90399:4:65","type":""}],"src":"90233:419:65"},{"body":{"nativeSrc":"90764:74:65","nodeType":"YulBlock","src":"90764:74:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"90786:6:65","nodeType":"YulIdentifier","src":"90786:6:65"},{"kind":"number","nativeSrc":"90794:1:65","nodeType":"YulLiteral","src":"90794:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"90782:3:65","nodeType":"YulIdentifier","src":"90782:3:65"},"nativeSrc":"90782:14:65","nodeType":"YulFunctionCall","src":"90782:14:65"},{"hexValue":"4461696c79205472616e73616374696f6e204c696d697420457863656564","kind":"string","nativeSrc":"90798:32:65","nodeType":"YulLiteral","src":"90798:32:65","type":"","value":"Daily Transaction Limit Exceed"}],"functionName":{"name":"mstore","nativeSrc":"90775:6:65","nodeType":"YulIdentifier","src":"90775:6:65"},"nativeSrc":"90775:56:65","nodeType":"YulFunctionCall","src":"90775:56:65"},"nativeSrc":"90775:56:65","nodeType":"YulExpressionStatement","src":"90775:56:65"}]},"name":"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","nativeSrc":"90658:180:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"90756:6:65","nodeType":"YulTypedName","src":"90756:6:65","type":""}],"src":"90658:180:65"},{"body":{"nativeSrc":"90990:220:65","nodeType":"YulBlock","src":"90990:220:65","statements":[{"nativeSrc":"91000:74:65","nodeType":"YulAssignment","src":"91000:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"91066:3:65","nodeType":"YulIdentifier","src":"91066:3:65"},{"kind":"number","nativeSrc":"91071:2:65","nodeType":"YulLiteral","src":"91071:2:65","type":"","value":"30"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"91007:58:65","nodeType":"YulIdentifier","src":"91007:58:65"},"nativeSrc":"91007:67:65","nodeType":"YulFunctionCall","src":"91007:67:65"},"variableNames":[{"name":"pos","nativeSrc":"91000:3:65","nodeType":"YulIdentifier","src":"91000:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"91172:3:65","nodeType":"YulIdentifier","src":"91172:3:65"}],"functionName":{"name":"store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe","nativeSrc":"91083:88:65","nodeType":"YulIdentifier","src":"91083:88:65"},"nativeSrc":"91083:93:65","nodeType":"YulFunctionCall","src":"91083:93:65"},"nativeSrc":"91083:93:65","nodeType":"YulExpressionStatement","src":"91083:93:65"},{"nativeSrc":"91185:19:65","nodeType":"YulAssignment","src":"91185:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"91196:3:65","nodeType":"YulIdentifier","src":"91196:3:65"},{"kind":"number","nativeSrc":"91201:2:65","nodeType":"YulLiteral","src":"91201:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"91192:3:65","nodeType":"YulIdentifier","src":"91192:3:65"},"nativeSrc":"91192:12:65","nodeType":"YulFunctionCall","src":"91192:12:65"},"variableNames":[{"name":"end","nativeSrc":"91185:3:65","nodeType":"YulIdentifier","src":"91185:3:65"}]}]},"name":"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack","nativeSrc":"90844:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"90978:3:65","nodeType":"YulTypedName","src":"90978:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"90986:3:65","nodeType":"YulTypedName","src":"90986:3:65","type":""}],"src":"90844:366:65"},{"body":{"nativeSrc":"91387:248:65","nodeType":"YulBlock","src":"91387:248:65","statements":[{"nativeSrc":"91397:26:65","nodeType":"YulAssignment","src":"91397:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"91409:9:65","nodeType":"YulIdentifier","src":"91409:9:65"},{"kind":"number","nativeSrc":"91420:2:65","nodeType":"YulLiteral","src":"91420:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"91405:3:65","nodeType":"YulIdentifier","src":"91405:3:65"},"nativeSrc":"91405:18:65","nodeType":"YulFunctionCall","src":"91405:18:65"},"variableNames":[{"name":"tail","nativeSrc":"91397:4:65","nodeType":"YulIdentifier","src":"91397:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"91444:9:65","nodeType":"YulIdentifier","src":"91444:9:65"},{"kind":"number","nativeSrc":"91455:1:65","nodeType":"YulLiteral","src":"91455:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"91440:3:65","nodeType":"YulIdentifier","src":"91440:3:65"},"nativeSrc":"91440:17:65","nodeType":"YulFunctionCall","src":"91440:17:65"},{"arguments":[{"name":"tail","nativeSrc":"91463:4:65","nodeType":"YulIdentifier","src":"91463:4:65"},{"name":"headStart","nativeSrc":"91469:9:65","nodeType":"YulIdentifier","src":"91469:9:65"}],"functionName":{"name":"sub","nativeSrc":"91459:3:65","nodeType":"YulIdentifier","src":"91459:3:65"},"nativeSrc":"91459:20:65","nodeType":"YulFunctionCall","src":"91459:20:65"}],"functionName":{"name":"mstore","nativeSrc":"91433:6:65","nodeType":"YulIdentifier","src":"91433:6:65"},"nativeSrc":"91433:47:65","nodeType":"YulFunctionCall","src":"91433:47:65"},"nativeSrc":"91433:47:65","nodeType":"YulExpressionStatement","src":"91433:47:65"},{"nativeSrc":"91489:139:65","nodeType":"YulAssignment","src":"91489:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"91623:4:65","nodeType":"YulIdentifier","src":"91623:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack","nativeSrc":"91497:124:65","nodeType":"YulIdentifier","src":"91497:124:65"},"nativeSrc":"91497:131:65","nodeType":"YulFunctionCall","src":"91497:131:65"},"variableNames":[{"name":"tail","nativeSrc":"91489:4:65","nodeType":"YulIdentifier","src":"91489:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"91216:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"91367:9:65","nodeType":"YulTypedName","src":"91367:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"91382:4:65","nodeType":"YulTypedName","src":"91382:4:65","type":""}],"src":"91216:419:65"},{"body":{"nativeSrc":"91747:76:65","nodeType":"YulBlock","src":"91747:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"91769:6:65","nodeType":"YulIdentifier","src":"91769:6:65"},{"kind":"number","nativeSrc":"91777:1:65","nodeType":"YulLiteral","src":"91777:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"91765:3:65","nodeType":"YulIdentifier","src":"91765:3:65"},"nativeSrc":"91765:14:65","nodeType":"YulFunctionCall","src":"91765:14:65"},{"hexValue":"4c7a4170703a207061796c6f61642073697a6520697320746f6f206c61726765","kind":"string","nativeSrc":"91781:34:65","nodeType":"YulLiteral","src":"91781:34:65","type":"","value":"LzApp: payload size is too large"}],"functionName":{"name":"mstore","nativeSrc":"91758:6:65","nodeType":"YulIdentifier","src":"91758:6:65"},"nativeSrc":"91758:58:65","nodeType":"YulFunctionCall","src":"91758:58:65"},"nativeSrc":"91758:58:65","nodeType":"YulExpressionStatement","src":"91758:58:65"}]},"name":"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","nativeSrc":"91641:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"91739:6:65","nodeType":"YulTypedName","src":"91739:6:65","type":""}],"src":"91641:182:65"},{"body":{"nativeSrc":"91975:220:65","nodeType":"YulBlock","src":"91975:220:65","statements":[{"nativeSrc":"91985:74:65","nodeType":"YulAssignment","src":"91985:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"92051:3:65","nodeType":"YulIdentifier","src":"92051:3:65"},{"kind":"number","nativeSrc":"92056:2:65","nodeType":"YulLiteral","src":"92056:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"91992:58:65","nodeType":"YulIdentifier","src":"91992:58:65"},"nativeSrc":"91992:67:65","nodeType":"YulFunctionCall","src":"91992:67:65"},"variableNames":[{"name":"pos","nativeSrc":"91985:3:65","nodeType":"YulIdentifier","src":"91985:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"92157:3:65","nodeType":"YulIdentifier","src":"92157:3:65"}],"functionName":{"name":"store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd","nativeSrc":"92068:88:65","nodeType":"YulIdentifier","src":"92068:88:65"},"nativeSrc":"92068:93:65","nodeType":"YulFunctionCall","src":"92068:93:65"},"nativeSrc":"92068:93:65","nodeType":"YulExpressionStatement","src":"92068:93:65"},{"nativeSrc":"92170:19:65","nodeType":"YulAssignment","src":"92170:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"92181:3:65","nodeType":"YulIdentifier","src":"92181:3:65"},{"kind":"number","nativeSrc":"92186:2:65","nodeType":"YulLiteral","src":"92186:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"92177:3:65","nodeType":"YulIdentifier","src":"92177:3:65"},"nativeSrc":"92177:12:65","nodeType":"YulFunctionCall","src":"92177:12:65"},"variableNames":[{"name":"end","nativeSrc":"92170:3:65","nodeType":"YulIdentifier","src":"92170:3:65"}]}]},"name":"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack","nativeSrc":"91829:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"91963:3:65","nodeType":"YulTypedName","src":"91963:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"91971:3:65","nodeType":"YulTypedName","src":"91971:3:65","type":""}],"src":"91829:366:65"},{"body":{"nativeSrc":"92372:248:65","nodeType":"YulBlock","src":"92372:248:65","statements":[{"nativeSrc":"92382:26:65","nodeType":"YulAssignment","src":"92382:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"92394:9:65","nodeType":"YulIdentifier","src":"92394:9:65"},{"kind":"number","nativeSrc":"92405:2:65","nodeType":"YulLiteral","src":"92405:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"92390:3:65","nodeType":"YulIdentifier","src":"92390:3:65"},"nativeSrc":"92390:18:65","nodeType":"YulFunctionCall","src":"92390:18:65"},"variableNames":[{"name":"tail","nativeSrc":"92382:4:65","nodeType":"YulIdentifier","src":"92382:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"92429:9:65","nodeType":"YulIdentifier","src":"92429:9:65"},{"kind":"number","nativeSrc":"92440:1:65","nodeType":"YulLiteral","src":"92440:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"92425:3:65","nodeType":"YulIdentifier","src":"92425:3:65"},"nativeSrc":"92425:17:65","nodeType":"YulFunctionCall","src":"92425:17:65"},{"arguments":[{"name":"tail","nativeSrc":"92448:4:65","nodeType":"YulIdentifier","src":"92448:4:65"},{"name":"headStart","nativeSrc":"92454:9:65","nodeType":"YulIdentifier","src":"92454:9:65"}],"functionName":{"name":"sub","nativeSrc":"92444:3:65","nodeType":"YulIdentifier","src":"92444:3:65"},"nativeSrc":"92444:20:65","nodeType":"YulFunctionCall","src":"92444:20:65"}],"functionName":{"name":"mstore","nativeSrc":"92418:6:65","nodeType":"YulIdentifier","src":"92418:6:65"},"nativeSrc":"92418:47:65","nodeType":"YulFunctionCall","src":"92418:47:65"},"nativeSrc":"92418:47:65","nodeType":"YulExpressionStatement","src":"92418:47:65"},{"nativeSrc":"92474:139:65","nodeType":"YulAssignment","src":"92474:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"92608:4:65","nodeType":"YulIdentifier","src":"92608:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack","nativeSrc":"92482:124:65","nodeType":"YulIdentifier","src":"92482:124:65"},"nativeSrc":"92482:131:65","nodeType":"YulFunctionCall","src":"92482:131:65"},"variableNames":[{"name":"tail","nativeSrc":"92474:4:65","nodeType":"YulIdentifier","src":"92474:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"92201:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"92352:9:65","nodeType":"YulTypedName","src":"92352:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"92367:4:65","nodeType":"YulTypedName","src":"92367:4:65","type":""}],"src":"92201:419:65"},{"body":{"nativeSrc":"92732:119:65","nodeType":"YulBlock","src":"92732:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"92754:6:65","nodeType":"YulIdentifier","src":"92754:6:65"},{"kind":"number","nativeSrc":"92762:1:65","nodeType":"YulLiteral","src":"92762:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"92750:3:65","nodeType":"YulIdentifier","src":"92750:3:65"},"nativeSrc":"92750:14:65","nodeType":"YulFunctionCall","src":"92750:14:65"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"92766:34:65","nodeType":"YulLiteral","src":"92766:34:65","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"92743:6:65","nodeType":"YulIdentifier","src":"92743:6:65"},"nativeSrc":"92743:58:65","nodeType":"YulFunctionCall","src":"92743:58:65"},"nativeSrc":"92743:58:65","nodeType":"YulExpressionStatement","src":"92743:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"92822:6:65","nodeType":"YulIdentifier","src":"92822:6:65"},{"kind":"number","nativeSrc":"92830:2:65","nodeType":"YulLiteral","src":"92830:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"92818:3:65","nodeType":"YulIdentifier","src":"92818:3:65"},"nativeSrc":"92818:15:65","nodeType":"YulFunctionCall","src":"92818:15:65"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"92835:8:65","nodeType":"YulLiteral","src":"92835:8:65","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"92811:6:65","nodeType":"YulIdentifier","src":"92811:6:65"},"nativeSrc":"92811:33:65","nodeType":"YulFunctionCall","src":"92811:33:65"},"nativeSrc":"92811:33:65","nodeType":"YulExpressionStatement","src":"92811:33:65"}]},"name":"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","nativeSrc":"92626:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"92724:6:65","nodeType":"YulTypedName","src":"92724:6:65","type":""}],"src":"92626:225:65"},{"body":{"nativeSrc":"93003:220:65","nodeType":"YulBlock","src":"93003:220:65","statements":[{"nativeSrc":"93013:74:65","nodeType":"YulAssignment","src":"93013:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"93079:3:65","nodeType":"YulIdentifier","src":"93079:3:65"},{"kind":"number","nativeSrc":"93084:2:65","nodeType":"YulLiteral","src":"93084:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"93020:58:65","nodeType":"YulIdentifier","src":"93020:58:65"},"nativeSrc":"93020:67:65","nodeType":"YulFunctionCall","src":"93020:67:65"},"variableNames":[{"name":"pos","nativeSrc":"93013:3:65","nodeType":"YulIdentifier","src":"93013:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"93185:3:65","nodeType":"YulIdentifier","src":"93185:3:65"}],"functionName":{"name":"store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","nativeSrc":"93096:88:65","nodeType":"YulIdentifier","src":"93096:88:65"},"nativeSrc":"93096:93:65","nodeType":"YulFunctionCall","src":"93096:93:65"},"nativeSrc":"93096:93:65","nodeType":"YulExpressionStatement","src":"93096:93:65"},{"nativeSrc":"93198:19:65","nodeType":"YulAssignment","src":"93198:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"93209:3:65","nodeType":"YulIdentifier","src":"93209:3:65"},{"kind":"number","nativeSrc":"93214:2:65","nodeType":"YulLiteral","src":"93214:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"93205:3:65","nodeType":"YulIdentifier","src":"93205:3:65"},"nativeSrc":"93205:12:65","nodeType":"YulFunctionCall","src":"93205:12:65"},"variableNames":[{"name":"end","nativeSrc":"93198:3:65","nodeType":"YulIdentifier","src":"93198:3:65"}]}]},"name":"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack","nativeSrc":"92857:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"92991:3:65","nodeType":"YulTypedName","src":"92991:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"92999:3:65","nodeType":"YulTypedName","src":"92999:3:65","type":""}],"src":"92857:366:65"},{"body":{"nativeSrc":"93400:248:65","nodeType":"YulBlock","src":"93400:248:65","statements":[{"nativeSrc":"93410:26:65","nodeType":"YulAssignment","src":"93410:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"93422:9:65","nodeType":"YulIdentifier","src":"93422:9:65"},{"kind":"number","nativeSrc":"93433:2:65","nodeType":"YulLiteral","src":"93433:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"93418:3:65","nodeType":"YulIdentifier","src":"93418:3:65"},"nativeSrc":"93418:18:65","nodeType":"YulFunctionCall","src":"93418:18:65"},"variableNames":[{"name":"tail","nativeSrc":"93410:4:65","nodeType":"YulIdentifier","src":"93410:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"93457:9:65","nodeType":"YulIdentifier","src":"93457:9:65"},{"kind":"number","nativeSrc":"93468:1:65","nodeType":"YulLiteral","src":"93468:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"93453:3:65","nodeType":"YulIdentifier","src":"93453:3:65"},"nativeSrc":"93453:17:65","nodeType":"YulFunctionCall","src":"93453:17:65"},{"arguments":[{"name":"tail","nativeSrc":"93476:4:65","nodeType":"YulIdentifier","src":"93476:4:65"},{"name":"headStart","nativeSrc":"93482:9:65","nodeType":"YulIdentifier","src":"93482:9:65"}],"functionName":{"name":"sub","nativeSrc":"93472:3:65","nodeType":"YulIdentifier","src":"93472:3:65"},"nativeSrc":"93472:20:65","nodeType":"YulFunctionCall","src":"93472:20:65"}],"functionName":{"name":"mstore","nativeSrc":"93446:6:65","nodeType":"YulIdentifier","src":"93446:6:65"},"nativeSrc":"93446:47:65","nodeType":"YulFunctionCall","src":"93446:47:65"},"nativeSrc":"93446:47:65","nodeType":"YulExpressionStatement","src":"93446:47:65"},{"nativeSrc":"93502:139:65","nodeType":"YulAssignment","src":"93502:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"93636:4:65","nodeType":"YulIdentifier","src":"93636:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack","nativeSrc":"93510:124:65","nodeType":"YulIdentifier","src":"93510:124:65"},"nativeSrc":"93510:131:65","nodeType":"YulFunctionCall","src":"93510:131:65"},"variableNames":[{"name":"tail","nativeSrc":"93502:4:65","nodeType":"YulIdentifier","src":"93502:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"93229:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"93380:9:65","nodeType":"YulTypedName","src":"93380:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"93395:4:65","nodeType":"YulTypedName","src":"93395:4:65","type":""}],"src":"93229:419:65"},{"body":{"nativeSrc":"93760:65:65","nodeType":"YulBlock","src":"93760:65:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"93782:6:65","nodeType":"YulIdentifier","src":"93782:6:65"},{"kind":"number","nativeSrc":"93790:1:65","nodeType":"YulLiteral","src":"93790:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"93778:3:65","nodeType":"YulIdentifier","src":"93778:3:65"},"nativeSrc":"93778:14:65","nodeType":"YulFunctionCall","src":"93778:14:65"},{"hexValue":"746f416464726573735f6f75744f66426f756e6473","kind":"string","nativeSrc":"93794:23:65","nodeType":"YulLiteral","src":"93794:23:65","type":"","value":"toAddress_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"93771:6:65","nodeType":"YulIdentifier","src":"93771:6:65"},"nativeSrc":"93771:47:65","nodeType":"YulFunctionCall","src":"93771:47:65"},"nativeSrc":"93771:47:65","nodeType":"YulExpressionStatement","src":"93771:47:65"}]},"name":"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","nativeSrc":"93654:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"93752:6:65","nodeType":"YulTypedName","src":"93752:6:65","type":""}],"src":"93654:171:65"},{"body":{"nativeSrc":"93977:220:65","nodeType":"YulBlock","src":"93977:220:65","statements":[{"nativeSrc":"93987:74:65","nodeType":"YulAssignment","src":"93987:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"94053:3:65","nodeType":"YulIdentifier","src":"94053:3:65"},{"kind":"number","nativeSrc":"94058:2:65","nodeType":"YulLiteral","src":"94058:2:65","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"93994:58:65","nodeType":"YulIdentifier","src":"93994:58:65"},"nativeSrc":"93994:67:65","nodeType":"YulFunctionCall","src":"93994:67:65"},"variableNames":[{"name":"pos","nativeSrc":"93987:3:65","nodeType":"YulIdentifier","src":"93987:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"94159:3:65","nodeType":"YulIdentifier","src":"94159:3:65"}],"functionName":{"name":"store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d","nativeSrc":"94070:88:65","nodeType":"YulIdentifier","src":"94070:88:65"},"nativeSrc":"94070:93:65","nodeType":"YulFunctionCall","src":"94070:93:65"},"nativeSrc":"94070:93:65","nodeType":"YulExpressionStatement","src":"94070:93:65"},{"nativeSrc":"94172:19:65","nodeType":"YulAssignment","src":"94172:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"94183:3:65","nodeType":"YulIdentifier","src":"94183:3:65"},{"kind":"number","nativeSrc":"94188:2:65","nodeType":"YulLiteral","src":"94188:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"94179:3:65","nodeType":"YulIdentifier","src":"94179:3:65"},"nativeSrc":"94179:12:65","nodeType":"YulFunctionCall","src":"94179:12:65"},"variableNames":[{"name":"end","nativeSrc":"94172:3:65","nodeType":"YulIdentifier","src":"94172:3:65"}]}]},"name":"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack","nativeSrc":"93831:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"93965:3:65","nodeType":"YulTypedName","src":"93965:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"93973:3:65","nodeType":"YulTypedName","src":"93973:3:65","type":""}],"src":"93831:366:65"},{"body":{"nativeSrc":"94374:248:65","nodeType":"YulBlock","src":"94374:248:65","statements":[{"nativeSrc":"94384:26:65","nodeType":"YulAssignment","src":"94384:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"94396:9:65","nodeType":"YulIdentifier","src":"94396:9:65"},{"kind":"number","nativeSrc":"94407:2:65","nodeType":"YulLiteral","src":"94407:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"94392:3:65","nodeType":"YulIdentifier","src":"94392:3:65"},"nativeSrc":"94392:18:65","nodeType":"YulFunctionCall","src":"94392:18:65"},"variableNames":[{"name":"tail","nativeSrc":"94384:4:65","nodeType":"YulIdentifier","src":"94384:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"94431:9:65","nodeType":"YulIdentifier","src":"94431:9:65"},{"kind":"number","nativeSrc":"94442:1:65","nodeType":"YulLiteral","src":"94442:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"94427:3:65","nodeType":"YulIdentifier","src":"94427:3:65"},"nativeSrc":"94427:17:65","nodeType":"YulFunctionCall","src":"94427:17:65"},{"arguments":[{"name":"tail","nativeSrc":"94450:4:65","nodeType":"YulIdentifier","src":"94450:4:65"},{"name":"headStart","nativeSrc":"94456:9:65","nodeType":"YulIdentifier","src":"94456:9:65"}],"functionName":{"name":"sub","nativeSrc":"94446:3:65","nodeType":"YulIdentifier","src":"94446:3:65"},"nativeSrc":"94446:20:65","nodeType":"YulFunctionCall","src":"94446:20:65"}],"functionName":{"name":"mstore","nativeSrc":"94420:6:65","nodeType":"YulIdentifier","src":"94420:6:65"},"nativeSrc":"94420:47:65","nodeType":"YulFunctionCall","src":"94420:47:65"},"nativeSrc":"94420:47:65","nodeType":"YulExpressionStatement","src":"94420:47:65"},{"nativeSrc":"94476:139:65","nodeType":"YulAssignment","src":"94476:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"94610:4:65","nodeType":"YulIdentifier","src":"94610:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack","nativeSrc":"94484:124:65","nodeType":"YulIdentifier","src":"94484:124:65"},"nativeSrc":"94484:131:65","nodeType":"YulFunctionCall","src":"94484:131:65"},"variableNames":[{"name":"tail","nativeSrc":"94476:4:65","nodeType":"YulIdentifier","src":"94476:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"94203:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"94354:9:65","nodeType":"YulTypedName","src":"94354:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"94369:4:65","nodeType":"YulTypedName","src":"94369:4:65","type":""}],"src":"94203:419:65"},{"body":{"nativeSrc":"94734:64:65","nodeType":"YulBlock","src":"94734:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"94756:6:65","nodeType":"YulIdentifier","src":"94756:6:65"},{"kind":"number","nativeSrc":"94764:1:65","nodeType":"YulLiteral","src":"94764:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"94752:3:65","nodeType":"YulIdentifier","src":"94752:3:65"},"nativeSrc":"94752:14:65","nodeType":"YulFunctionCall","src":"94752:14:65"},{"hexValue":"746f55696e7436345f6f75744f66426f756e6473","kind":"string","nativeSrc":"94768:22:65","nodeType":"YulLiteral","src":"94768:22:65","type":"","value":"toUint64_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"94745:6:65","nodeType":"YulIdentifier","src":"94745:6:65"},"nativeSrc":"94745:46:65","nodeType":"YulFunctionCall","src":"94745:46:65"},"nativeSrc":"94745:46:65","nodeType":"YulExpressionStatement","src":"94745:46:65"}]},"name":"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","nativeSrc":"94628:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"94726:6:65","nodeType":"YulTypedName","src":"94726:6:65","type":""}],"src":"94628:170:65"},{"body":{"nativeSrc":"94950:220:65","nodeType":"YulBlock","src":"94950:220:65","statements":[{"nativeSrc":"94960:74:65","nodeType":"YulAssignment","src":"94960:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"95026:3:65","nodeType":"YulIdentifier","src":"95026:3:65"},{"kind":"number","nativeSrc":"95031:2:65","nodeType":"YulLiteral","src":"95031:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"94967:58:65","nodeType":"YulIdentifier","src":"94967:58:65"},"nativeSrc":"94967:67:65","nodeType":"YulFunctionCall","src":"94967:67:65"},"variableNames":[{"name":"pos","nativeSrc":"94960:3:65","nodeType":"YulIdentifier","src":"94960:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"95132:3:65","nodeType":"YulIdentifier","src":"95132:3:65"}],"functionName":{"name":"store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145","nativeSrc":"95043:88:65","nodeType":"YulIdentifier","src":"95043:88:65"},"nativeSrc":"95043:93:65","nodeType":"YulFunctionCall","src":"95043:93:65"},"nativeSrc":"95043:93:65","nodeType":"YulExpressionStatement","src":"95043:93:65"},{"nativeSrc":"95145:19:65","nodeType":"YulAssignment","src":"95145:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"95156:3:65","nodeType":"YulIdentifier","src":"95156:3:65"},{"kind":"number","nativeSrc":"95161:2:65","nodeType":"YulLiteral","src":"95161:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"95152:3:65","nodeType":"YulIdentifier","src":"95152:3:65"},"nativeSrc":"95152:12:65","nodeType":"YulFunctionCall","src":"95152:12:65"},"variableNames":[{"name":"end","nativeSrc":"95145:3:65","nodeType":"YulIdentifier","src":"95145:3:65"}]}]},"name":"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack","nativeSrc":"94804:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"94938:3:65","nodeType":"YulTypedName","src":"94938:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"94946:3:65","nodeType":"YulTypedName","src":"94946:3:65","type":""}],"src":"94804:366:65"},{"body":{"nativeSrc":"95347:248:65","nodeType":"YulBlock","src":"95347:248:65","statements":[{"nativeSrc":"95357:26:65","nodeType":"YulAssignment","src":"95357:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"95369:9:65","nodeType":"YulIdentifier","src":"95369:9:65"},{"kind":"number","nativeSrc":"95380:2:65","nodeType":"YulLiteral","src":"95380:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"95365:3:65","nodeType":"YulIdentifier","src":"95365:3:65"},"nativeSrc":"95365:18:65","nodeType":"YulFunctionCall","src":"95365:18:65"},"variableNames":[{"name":"tail","nativeSrc":"95357:4:65","nodeType":"YulIdentifier","src":"95357:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"95404:9:65","nodeType":"YulIdentifier","src":"95404:9:65"},{"kind":"number","nativeSrc":"95415:1:65","nodeType":"YulLiteral","src":"95415:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"95400:3:65","nodeType":"YulIdentifier","src":"95400:3:65"},"nativeSrc":"95400:17:65","nodeType":"YulFunctionCall","src":"95400:17:65"},{"arguments":[{"name":"tail","nativeSrc":"95423:4:65","nodeType":"YulIdentifier","src":"95423:4:65"},{"name":"headStart","nativeSrc":"95429:9:65","nodeType":"YulIdentifier","src":"95429:9:65"}],"functionName":{"name":"sub","nativeSrc":"95419:3:65","nodeType":"YulIdentifier","src":"95419:3:65"},"nativeSrc":"95419:20:65","nodeType":"YulFunctionCall","src":"95419:20:65"}],"functionName":{"name":"mstore","nativeSrc":"95393:6:65","nodeType":"YulIdentifier","src":"95393:6:65"},"nativeSrc":"95393:47:65","nodeType":"YulFunctionCall","src":"95393:47:65"},"nativeSrc":"95393:47:65","nodeType":"YulExpressionStatement","src":"95393:47:65"},{"nativeSrc":"95449:139:65","nodeType":"YulAssignment","src":"95449:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"95583:4:65","nodeType":"YulIdentifier","src":"95583:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack","nativeSrc":"95457:124:65","nodeType":"YulIdentifier","src":"95457:124:65"},"nativeSrc":"95457:131:65","nodeType":"YulFunctionCall","src":"95457:131:65"},"variableNames":[{"name":"tail","nativeSrc":"95449:4:65","nodeType":"YulIdentifier","src":"95449:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"95176:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"95327:9:65","nodeType":"YulTypedName","src":"95327:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"95342:4:65","nodeType":"YulTypedName","src":"95342:4:65","type":""}],"src":"95176:419:65"},{"body":{"nativeSrc":"95707:65:65","nodeType":"YulBlock","src":"95707:65:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"95729:6:65","nodeType":"YulIdentifier","src":"95729:6:65"},{"kind":"number","nativeSrc":"95737:1:65","nodeType":"YulLiteral","src":"95737:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"95725:3:65","nodeType":"YulIdentifier","src":"95725:3:65"},"nativeSrc":"95725:14:65","nodeType":"YulFunctionCall","src":"95725:14:65"},{"hexValue":"746f427974657333325f6f75744f66426f756e6473","kind":"string","nativeSrc":"95741:23:65","nodeType":"YulLiteral","src":"95741:23:65","type":"","value":"toBytes32_outOfBounds"}],"functionName":{"name":"mstore","nativeSrc":"95718:6:65","nodeType":"YulIdentifier","src":"95718:6:65"},"nativeSrc":"95718:47:65","nodeType":"YulFunctionCall","src":"95718:47:65"},"nativeSrc":"95718:47:65","nodeType":"YulExpressionStatement","src":"95718:47:65"}]},"name":"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","nativeSrc":"95601:171:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"95699:6:65","nodeType":"YulTypedName","src":"95699:6:65","type":""}],"src":"95601:171:65"},{"body":{"nativeSrc":"95924:220:65","nodeType":"YulBlock","src":"95924:220:65","statements":[{"nativeSrc":"95934:74:65","nodeType":"YulAssignment","src":"95934:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"96000:3:65","nodeType":"YulIdentifier","src":"96000:3:65"},{"kind":"number","nativeSrc":"96005:2:65","nodeType":"YulLiteral","src":"96005:2:65","type":"","value":"21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"95941:58:65","nodeType":"YulIdentifier","src":"95941:58:65"},"nativeSrc":"95941:67:65","nodeType":"YulFunctionCall","src":"95941:67:65"},"variableNames":[{"name":"pos","nativeSrc":"95934:3:65","nodeType":"YulIdentifier","src":"95934:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"96106:3:65","nodeType":"YulIdentifier","src":"96106:3:65"}],"functionName":{"name":"store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2","nativeSrc":"96017:88:65","nodeType":"YulIdentifier","src":"96017:88:65"},"nativeSrc":"96017:93:65","nodeType":"YulFunctionCall","src":"96017:93:65"},"nativeSrc":"96017:93:65","nodeType":"YulExpressionStatement","src":"96017:93:65"},{"nativeSrc":"96119:19:65","nodeType":"YulAssignment","src":"96119:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"96130:3:65","nodeType":"YulIdentifier","src":"96130:3:65"},{"kind":"number","nativeSrc":"96135:2:65","nodeType":"YulLiteral","src":"96135:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"96126:3:65","nodeType":"YulIdentifier","src":"96126:3:65"},"nativeSrc":"96126:12:65","nodeType":"YulFunctionCall","src":"96126:12:65"},"variableNames":[{"name":"end","nativeSrc":"96119:3:65","nodeType":"YulIdentifier","src":"96119:3:65"}]}]},"name":"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack","nativeSrc":"95778:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"95912:3:65","nodeType":"YulTypedName","src":"95912:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"95920:3:65","nodeType":"YulTypedName","src":"95920:3:65","type":""}],"src":"95778:366:65"},{"body":{"nativeSrc":"96321:248:65","nodeType":"YulBlock","src":"96321:248:65","statements":[{"nativeSrc":"96331:26:65","nodeType":"YulAssignment","src":"96331:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"96343:9:65","nodeType":"YulIdentifier","src":"96343:9:65"},{"kind":"number","nativeSrc":"96354:2:65","nodeType":"YulLiteral","src":"96354:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"96339:3:65","nodeType":"YulIdentifier","src":"96339:3:65"},"nativeSrc":"96339:18:65","nodeType":"YulFunctionCall","src":"96339:18:65"},"variableNames":[{"name":"tail","nativeSrc":"96331:4:65","nodeType":"YulIdentifier","src":"96331:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"96378:9:65","nodeType":"YulIdentifier","src":"96378:9:65"},{"kind":"number","nativeSrc":"96389:1:65","nodeType":"YulLiteral","src":"96389:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"96374:3:65","nodeType":"YulIdentifier","src":"96374:3:65"},"nativeSrc":"96374:17:65","nodeType":"YulFunctionCall","src":"96374:17:65"},{"arguments":[{"name":"tail","nativeSrc":"96397:4:65","nodeType":"YulIdentifier","src":"96397:4:65"},{"name":"headStart","nativeSrc":"96403:9:65","nodeType":"YulIdentifier","src":"96403:9:65"}],"functionName":{"name":"sub","nativeSrc":"96393:3:65","nodeType":"YulIdentifier","src":"96393:3:65"},"nativeSrc":"96393:20:65","nodeType":"YulFunctionCall","src":"96393:20:65"}],"functionName":{"name":"mstore","nativeSrc":"96367:6:65","nodeType":"YulIdentifier","src":"96367:6:65"},"nativeSrc":"96367:47:65","nodeType":"YulFunctionCall","src":"96367:47:65"},"nativeSrc":"96367:47:65","nodeType":"YulExpressionStatement","src":"96367:47:65"},{"nativeSrc":"96423:139:65","nodeType":"YulAssignment","src":"96423:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"96557:4:65","nodeType":"YulIdentifier","src":"96557:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack","nativeSrc":"96431:124:65","nodeType":"YulIdentifier","src":"96431:124:65"},"nativeSrc":"96431:131:65","nodeType":"YulFunctionCall","src":"96431:131:65"},"variableNames":[{"name":"tail","nativeSrc":"96423:4:65","nodeType":"YulIdentifier","src":"96423:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"96150:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"96301:9:65","nodeType":"YulTypedName","src":"96301:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"96316:4:65","nodeType":"YulTypedName","src":"96316:4:65","type":""}],"src":"96150:419:65"},{"body":{"nativeSrc":"96681:73:65","nodeType":"YulBlock","src":"96681:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"96703:6:65","nodeType":"YulIdentifier","src":"96703:6:65"},{"kind":"number","nativeSrc":"96711:1:65","nodeType":"YulLiteral","src":"96711:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"96699:3:65","nodeType":"YulIdentifier","src":"96699:3:65"},"nativeSrc":"96699:14:65","nodeType":"YulFunctionCall","src":"96699:14:65"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"96715:31:65","nodeType":"YulLiteral","src":"96715:31:65","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"96692:6:65","nodeType":"YulIdentifier","src":"96692:6:65"},"nativeSrc":"96692:55:65","nodeType":"YulFunctionCall","src":"96692:55:65"},"nativeSrc":"96692:55:65","nodeType":"YulExpressionStatement","src":"96692:55:65"}]},"name":"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","nativeSrc":"96575:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"96673:6:65","nodeType":"YulTypedName","src":"96673:6:65","type":""}],"src":"96575:179:65"},{"body":{"nativeSrc":"96906:220:65","nodeType":"YulBlock","src":"96906:220:65","statements":[{"nativeSrc":"96916:74:65","nodeType":"YulAssignment","src":"96916:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"96982:3:65","nodeType":"YulIdentifier","src":"96982:3:65"},{"kind":"number","nativeSrc":"96987:2:65","nodeType":"YulLiteral","src":"96987:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"96923:58:65","nodeType":"YulIdentifier","src":"96923:58:65"},"nativeSrc":"96923:67:65","nodeType":"YulFunctionCall","src":"96923:67:65"},"variableNames":[{"name":"pos","nativeSrc":"96916:3:65","nodeType":"YulIdentifier","src":"96916:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"97088:3:65","nodeType":"YulIdentifier","src":"97088:3:65"}],"functionName":{"name":"store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","nativeSrc":"96999:88:65","nodeType":"YulIdentifier","src":"96999:88:65"},"nativeSrc":"96999:93:65","nodeType":"YulFunctionCall","src":"96999:93:65"},"nativeSrc":"96999:93:65","nodeType":"YulExpressionStatement","src":"96999:93:65"},{"nativeSrc":"97101:19:65","nodeType":"YulAssignment","src":"97101:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"97112:3:65","nodeType":"YulIdentifier","src":"97112:3:65"},{"kind":"number","nativeSrc":"97117:2:65","nodeType":"YulLiteral","src":"97117:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"97108:3:65","nodeType":"YulIdentifier","src":"97108:3:65"},"nativeSrc":"97108:12:65","nodeType":"YulFunctionCall","src":"97108:12:65"},"variableNames":[{"name":"end","nativeSrc":"97101:3:65","nodeType":"YulIdentifier","src":"97101:3:65"}]}]},"name":"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack","nativeSrc":"96760:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"96894:3:65","nodeType":"YulTypedName","src":"96894:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"96902:3:65","nodeType":"YulTypedName","src":"96902:3:65","type":""}],"src":"96760:366:65"},{"body":{"nativeSrc":"97303:248:65","nodeType":"YulBlock","src":"97303:248:65","statements":[{"nativeSrc":"97313:26:65","nodeType":"YulAssignment","src":"97313:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"97325:9:65","nodeType":"YulIdentifier","src":"97325:9:65"},{"kind":"number","nativeSrc":"97336:2:65","nodeType":"YulLiteral","src":"97336:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"97321:3:65","nodeType":"YulIdentifier","src":"97321:3:65"},"nativeSrc":"97321:18:65","nodeType":"YulFunctionCall","src":"97321:18:65"},"variableNames":[{"name":"tail","nativeSrc":"97313:4:65","nodeType":"YulIdentifier","src":"97313:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"97360:9:65","nodeType":"YulIdentifier","src":"97360:9:65"},{"kind":"number","nativeSrc":"97371:1:65","nodeType":"YulLiteral","src":"97371:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"97356:3:65","nodeType":"YulIdentifier","src":"97356:3:65"},"nativeSrc":"97356:17:65","nodeType":"YulFunctionCall","src":"97356:17:65"},{"arguments":[{"name":"tail","nativeSrc":"97379:4:65","nodeType":"YulIdentifier","src":"97379:4:65"},{"name":"headStart","nativeSrc":"97385:9:65","nodeType":"YulIdentifier","src":"97385:9:65"}],"functionName":{"name":"sub","nativeSrc":"97375:3:65","nodeType":"YulIdentifier","src":"97375:3:65"},"nativeSrc":"97375:20:65","nodeType":"YulFunctionCall","src":"97375:20:65"}],"functionName":{"name":"mstore","nativeSrc":"97349:6:65","nodeType":"YulIdentifier","src":"97349:6:65"},"nativeSrc":"97349:47:65","nodeType":"YulFunctionCall","src":"97349:47:65"},"nativeSrc":"97349:47:65","nodeType":"YulExpressionStatement","src":"97349:47:65"},{"nativeSrc":"97405:139:65","nodeType":"YulAssignment","src":"97405:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"97539:4:65","nodeType":"YulIdentifier","src":"97539:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack","nativeSrc":"97413:124:65","nodeType":"YulIdentifier","src":"97413:124:65"},"nativeSrc":"97413:131:65","nodeType":"YulFunctionCall","src":"97413:131:65"},"variableNames":[{"name":"tail","nativeSrc":"97405:4:65","nodeType":"YulIdentifier","src":"97405:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"97132:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"97283:9:65","nodeType":"YulTypedName","src":"97283:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"97298:4:65","nodeType":"YulTypedName","src":"97298:4:65","type":""}],"src":"97132:419:65"},{"body":{"nativeSrc":"97616:40:65","nodeType":"YulBlock","src":"97616:40:65","statements":[{"nativeSrc":"97627:22:65","nodeType":"YulAssignment","src":"97627:22:65","value":{"arguments":[{"name":"value","nativeSrc":"97643:5:65","nodeType":"YulIdentifier","src":"97643:5:65"}],"functionName":{"name":"mload","nativeSrc":"97637:5:65","nodeType":"YulIdentifier","src":"97637:5:65"},"nativeSrc":"97637:12:65","nodeType":"YulFunctionCall","src":"97637:12:65"},"variableNames":[{"name":"length","nativeSrc":"97627:6:65","nodeType":"YulIdentifier","src":"97627:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"97557:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"97599:5:65","nodeType":"YulTypedName","src":"97599:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"97609:6:65","nodeType":"YulTypedName","src":"97609:6:65","type":""}],"src":"97557:99:65"},{"body":{"nativeSrc":"97754:285:65","nodeType":"YulBlock","src":"97754:285:65","statements":[{"nativeSrc":"97764:53:65","nodeType":"YulVariableDeclaration","src":"97764:53:65","value":{"arguments":[{"name":"value","nativeSrc":"97811:5:65","nodeType":"YulIdentifier","src":"97811:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"97778:32:65","nodeType":"YulIdentifier","src":"97778:32:65"},"nativeSrc":"97778:39:65","nodeType":"YulFunctionCall","src":"97778:39:65"},"variables":[{"name":"length","nativeSrc":"97768:6:65","nodeType":"YulTypedName","src":"97768:6:65","type":""}]},{"nativeSrc":"97826:78:65","nodeType":"YulAssignment","src":"97826:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"97892:3:65","nodeType":"YulIdentifier","src":"97892:3:65"},{"name":"length","nativeSrc":"97897:6:65","nodeType":"YulIdentifier","src":"97897:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"97833:58:65","nodeType":"YulIdentifier","src":"97833:58:65"},"nativeSrc":"97833:71:65","nodeType":"YulFunctionCall","src":"97833:71:65"},"variableNames":[{"name":"pos","nativeSrc":"97826:3:65","nodeType":"YulIdentifier","src":"97826:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"97952:5:65","nodeType":"YulIdentifier","src":"97952:5:65"},{"kind":"number","nativeSrc":"97959:4:65","nodeType":"YulLiteral","src":"97959:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"97948:3:65","nodeType":"YulIdentifier","src":"97948:3:65"},"nativeSrc":"97948:16:65","nodeType":"YulFunctionCall","src":"97948:16:65"},{"name":"pos","nativeSrc":"97966:3:65","nodeType":"YulIdentifier","src":"97966:3:65"},{"name":"length","nativeSrc":"97971:6:65","nodeType":"YulIdentifier","src":"97971:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"97913:34:65","nodeType":"YulIdentifier","src":"97913:34:65"},"nativeSrc":"97913:65:65","nodeType":"YulFunctionCall","src":"97913:65:65"},"nativeSrc":"97913:65:65","nodeType":"YulExpressionStatement","src":"97913:65:65"},{"nativeSrc":"97987:46:65","nodeType":"YulAssignment","src":"97987:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"97998:3:65","nodeType":"YulIdentifier","src":"97998:3:65"},{"arguments":[{"name":"length","nativeSrc":"98025:6:65","nodeType":"YulIdentifier","src":"98025:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"98003:21:65","nodeType":"YulIdentifier","src":"98003:21:65"},"nativeSrc":"98003:29:65","nodeType":"YulFunctionCall","src":"98003:29:65"}],"functionName":{"name":"add","nativeSrc":"97994:3:65","nodeType":"YulIdentifier","src":"97994:3:65"},"nativeSrc":"97994:39:65","nodeType":"YulFunctionCall","src":"97994:39:65"},"variableNames":[{"name":"end","nativeSrc":"97987:3:65","nodeType":"YulIdentifier","src":"97987:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"97662:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"97735:5:65","nodeType":"YulTypedName","src":"97735:5:65","type":""},{"name":"pos","nativeSrc":"97742:3:65","nodeType":"YulTypedName","src":"97742:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"97750:3:65","nodeType":"YulTypedName","src":"97750:3:65","type":""}],"src":"97662:377:65"},{"body":{"nativeSrc":"98163:195:65","nodeType":"YulBlock","src":"98163:195:65","statements":[{"nativeSrc":"98173:26:65","nodeType":"YulAssignment","src":"98173:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"98185:9:65","nodeType":"YulIdentifier","src":"98185:9:65"},{"kind":"number","nativeSrc":"98196:2:65","nodeType":"YulLiteral","src":"98196:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"98181:3:65","nodeType":"YulIdentifier","src":"98181:3:65"},"nativeSrc":"98181:18:65","nodeType":"YulFunctionCall","src":"98181:18:65"},"variableNames":[{"name":"tail","nativeSrc":"98173:4:65","nodeType":"YulIdentifier","src":"98173:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"98220:9:65","nodeType":"YulIdentifier","src":"98220:9:65"},{"kind":"number","nativeSrc":"98231:1:65","nodeType":"YulLiteral","src":"98231:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"98216:3:65","nodeType":"YulIdentifier","src":"98216:3:65"},"nativeSrc":"98216:17:65","nodeType":"YulFunctionCall","src":"98216:17:65"},{"arguments":[{"name":"tail","nativeSrc":"98239:4:65","nodeType":"YulIdentifier","src":"98239:4:65"},{"name":"headStart","nativeSrc":"98245:9:65","nodeType":"YulIdentifier","src":"98245:9:65"}],"functionName":{"name":"sub","nativeSrc":"98235:3:65","nodeType":"YulIdentifier","src":"98235:3:65"},"nativeSrc":"98235:20:65","nodeType":"YulFunctionCall","src":"98235:20:65"}],"functionName":{"name":"mstore","nativeSrc":"98209:6:65","nodeType":"YulIdentifier","src":"98209:6:65"},"nativeSrc":"98209:47:65","nodeType":"YulFunctionCall","src":"98209:47:65"},"nativeSrc":"98209:47:65","nodeType":"YulExpressionStatement","src":"98209:47:65"},{"nativeSrc":"98265:86:65","nodeType":"YulAssignment","src":"98265:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"98337:6:65","nodeType":"YulIdentifier","src":"98337:6:65"},{"name":"tail","nativeSrc":"98346:4:65","nodeType":"YulIdentifier","src":"98346:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"98273:63:65","nodeType":"YulIdentifier","src":"98273:63:65"},"nativeSrc":"98273:78:65","nodeType":"YulFunctionCall","src":"98273:78:65"},"variableNames":[{"name":"tail","nativeSrc":"98265:4:65","nodeType":"YulIdentifier","src":"98265:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"98045:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"98135:9:65","nodeType":"YulTypedName","src":"98135:9:65","type":""},{"name":"value0","nativeSrc":"98147:6:65","nodeType":"YulTypedName","src":"98147:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"98158:4:65","nodeType":"YulTypedName","src":"98158:4:65","type":""}],"src":"98045:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function cleanup_t_uint64(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffff)\n    }\n\n    function validator_revert_t_uint64(value) {\n        if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint64(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint64(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bytes4(value) -> cleaned {\n        cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n    }\n\n    function validator_revert_t_bytes4(value) {\n        if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes4(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes4(value)\n    }\n\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__to_t_bool_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 224)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value6,  add(headStart, 192))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes32t_uint256t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_contract$_IERC20_$6261(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IERC20_$6261(value) {\n        if iszero(eq(value, cleanup_t_contract$_IERC20_$6261(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IERC20_$6261(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IERC20_$6261(value)\n    }\n\n    function abi_decode_tuple_t_contract$_IERC20_$6261t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_IERC20_$6261(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() {\n        revert(0, 0)\n    }\n\n    // struct ICommonOFT.LzCallParams\n    function abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(offset, end) -> value {\n        if slt(sub(end, offset), 96) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n        value := offset\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_struct$_LzCallParams_$4096_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4 := abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_struct$_LzCallParams_$4096_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7 := abi_decode_t_struct$_LzCallParams_$4096_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ResilientOracleInterface_$8694_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ResilientOracleInterface_$8694_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ResilientOracleInterface_$8694__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ResilientOracleInterface_$8694_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes32t_uint256t_bytes_calldata_ptrt_uint64t_boolt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8 {\n        if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7, value8 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ILayerZeroEndpoint_$1357_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ILayerZeroEndpoint_$1357__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ILayerZeroEndpoint_$1357_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_calldata_ptrt_uint64t_bytes32t_addresst_uint256t_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n        if slt(sub(dataEnd, headStart), 256) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value4 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 160\n\n            value6 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 192))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value7, value8 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 224\n\n            value9 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid endpoint caller\")\n\n    }\n\n    function abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c76d352ff891dcabaed1e1ebf3c88e97f49052956ad0c09feadb4b7d40c688f9_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid source sending co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f2c5f1a596d749e8a7585a60b880c2626f8dc4e8dd0b6f11ae55e0b2b1061815_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily limit < single transaction\")\n\n        mstore(add(memPtr, 32), \" limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4c0ca5619e9dfce49ab4c132a53f262952787391ad9a5763dafe8f30852864da_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint256_t_uint256__to_t_uint16_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n    }\n\n    function store_literal_in_memory_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea(memPtr) {\n\n        mstore(add(memPtr, 0), \"Withdraw amount should be less t\")\n\n        mstore(add(memPtr, 32), \"han outbound amount\")\n\n    }\n\n    function abi_encode_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 51)\n        store_literal_in_memory_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e10481b9b9708a279485c111dc70d51c0b44b80bcc20421a787f5d39b8ba55ea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: outboundAmount overflo\")\n\n        mstore(add(memPtr, 32), \"w\")\n\n    }\n\n    function abi_encode_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n        store_literal_in_memory_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_121380b4e6be82c982540a13c25897bf0dd82082472ee269944eefc495fd8044_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972(memPtr) {\n\n        mstore(add(memPtr, 0), \"Single transaction limit > Daily\")\n\n        mstore(add(memPtr, 32), \" limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2c98ac361099d8fc1305c07233c2f5d0d69fa78ba4ccbb1556d31d09056fc972_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: caller must be\")\n\n        mstore(add(memPtr, 32), \" LzApp\")\n\n    }\n\n    function abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_040dbcd22d0c850129389688c2109073ca44dde7f3a3f87432ca92b23d42a4fa_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n        revert(0, 0)\n    }\n\n    function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n        revert(0, 0)\n    }\n\n    function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n        revert(0, 0)\n    }\n\n    function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n        addr := add(base_ref, rel_offset_of_tail)\n\n        length := calldataload(addr)\n        if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n        addr := add(addr, 32)\n        if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n    }\n\n    function store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily limit < single receive tra\")\n\n        mstore(add(memPtr, 32), \"nsaction limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1dae30e00204e6c275902ae9c98fb705b15c84d9c4a8f61a6fe4cdab55be4039_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef(memPtr) {\n\n        mstore(add(memPtr, 0), \"sendAndCall is disabled\")\n\n    }\n\n    function abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c53a4b91cc5ef6c34dfb2a10252320067afedbf0a5712a34b5d890e95872d9ef_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint64(value))\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint64__to_t_uint16_t_uint64__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: no trusted path record\")\n\n    }\n\n    function abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_090ffd986411f3003f8dc74b3284ca36e66b7183a1b08562ef7e5313ae219552_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function array_dataslot_t_bytes_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_bytes_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n        let newLen := array_length_t_bytes_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_uint16_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value3, value4,  tail)\n\n    }\n\n    function store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc(memPtr) {\n\n        mstore(add(memPtr, 0), \"single receive transaction limit\")\n\n        mstore(add(memPtr, 32), \" > Daily limit\")\n\n    }\n\n    function abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n        store_literal_in_memory_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2b0d299ee424b5b51b115bad24ca50a99f576c4cd6a81e28ed331b88d126f5fc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint256__to_t_uint16_t_uint16_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: caller must be OFTCore\")\n\n    }\n\n    function abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_761caddc38b33421ec877fe4cdada3f8e50382b3eded6c861d92158d5dc76da4_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value4,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 128))\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value6, value7,  tail)\n\n    }\n\n    function array_length_t_bytes_calldata_ptr(value, len) -> length {\n\n        length := len\n\n    }\n\n    function copy_byte_array_to_storage_from_t_bytes_calldata_ptr_to_t_bytes_storage(slot, src, len) {\n\n        let newLen := array_length_t_bytes_calldata_ptr(src, len)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_bytes_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := calldataload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_address_t_uint256__to_t_uint16_t_uint16_t_address_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3,  tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_uint16_t_address_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value3,  add(headStart, 96))\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4,  tail)\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function mod_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: unknown packet type\")\n\n    }\n\n    function abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_00223df73feb3ce9b4f827638a64dad1e051e5de88d399cc504c1dc228e49f1e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: amount too small\")\n\n    }\n\n    function abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n        store_literal_in_memory_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ed9d86ee3de381adb259b24bed61dfc922f9ed6424b8df4d88b8ce02d2616b67_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e(memPtr) {\n\n        mstore(add(memPtr, 0), \"slice_overflow\")\n\n    }\n\n    function abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0(memPtr) {\n\n        mstore(add(memPtr, 0), \"slice_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: no stored mess\")\n\n        mstore(add(memPtr, 32), \"age\")\n\n    }\n\n    function abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_2f696afe693778252c14fa484dbc5c908ccf2058495ef32014aba88a3b963894_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3(memPtr) {\n\n        mstore(add(memPtr, 0), \"NonblockingLzApp: invalid payloa\")\n\n        mstore(add(memPtr, 32), \"d\")\n\n    }\n\n    function abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n        store_literal_in_memory_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e38e13663a917dea0c771faed9aebf77b2adba5435a5cc4f7207d4f2c63ce6a3_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_calldata_ptr_t_uint64_t_bytes32__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value3,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value4,  add(headStart, 96))\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value3,  tail)\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4,  tail)\n\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: amountSD overflow\")\n\n    }\n\n    function abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5ca1d28903f9a1076bea739202193cdb11b216c83d96e79bf6f95648d22b3364_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_left_248(value) -> newValue {\n        newValue :=\n\n        shl(248, value)\n\n    }\n\n    function leftAlign_t_uint8(value) -> aligned {\n        aligned := shift_left_248(value)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint8(cleanup_t_uint8(value)))\n    }\n\n    function leftAlign_t_bytes32(value) -> aligned {\n        aligned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n    }\n\n    function shift_left_192(value) -> newValue {\n        newValue :=\n\n        shl(192, value)\n\n    }\n\n    function leftAlign_t_uint64(value) -> aligned {\n        aligned := shift_left_192(value)\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_uint64(cleanup_t_uint64(value)))\n    }\n\n    function abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64__to_t_uint8_t_bytes32_t_uint64__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n        abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 8)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n        mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n        mstore(add(memPtr, 32), \"ot succeed\")\n\n    }\n\n    function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n        store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1(memPtr) {\n\n        mstore(add(memPtr, 0), \"toUint8_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__to_t_uint16_t_bytes_memory_ptr_t_uint64_t_bytes32_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 256)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        mstore(add(headStart, 192), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value6,  tail)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value7,  add(headStart, 224))\n\n    }\n\n    function abi_encode_tuple_t_bytes_memory_ptr_t_uint64_t_bytes32__to_t_bytes_memory_ptr_t_uint64_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: minGasLimit not set\")\n\n    }\n\n    function abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1c12f4398e5982835c19ea43197ffa859493a10bdc288c7cacc6a2d6df414b01_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: gas limit is too low\")\n\n    }\n\n    function abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n        store_literal_in_memory_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0cfbfb89d1bd60ee521649a7dce886710cc0992622f97b32d8e555a9c7073be1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2(memPtr) {\n\n        mstore(add(memPtr, 0), \"ProxyOFT: owner is not send call\")\n\n        mstore(add(memPtr, 32), \"er\")\n\n    }\n\n    function abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_363784ebed9e0cd0c9dec0de77f71c357d0844240d20896b7cf4a1a4b2ff9bd2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: destination chain is not \")\n\n        mstore(add(memPtr, 32), \"a trusted source\")\n\n    }\n\n    function abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 48)\n        store_literal_in_memory_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_65511ce9fb02a17101879c9b581e54d0cddc37b781936a67d4a6ef307ad5afd7_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address_payable(value))\n    }\n\n    function abi_encode_tuple_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__to_t_uint16_t_bytes_memory_ptr_t_bytes_memory_ptr_t_address_payable_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 192)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n        abi_encode_t_address_payable_to_t_address_payable_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        mstore(add(headStart, 160), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value5,  tail)\n\n    }\n\n    function abi_encode_tuple_packed_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__to_t_uint8_t_bytes32_t_uint64_t_bytes32_t_uint64_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value5, value4, value3, value2, value1, value0) -> end {\n\n        abi_encode_t_uint8_to_t_uint8_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 1)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value2,  pos)\n        pos := add(pos, 8)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_uint64_to_t_uint64_nonPadded_inplace_fromStack(value4,  pos)\n        pos := add(pos, 8)\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value5,  pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934(memPtr) {\n\n        mstore(add(memPtr, 0), \"OFTCore: invalid payload\")\n\n    }\n\n    function abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n        store_literal_in_memory_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a259b130d69326eaceb62530690c9badb7d2dea72379156ef0529425db785934_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: invalid adapterParams\")\n\n    }\n\n    function abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n        store_literal_in_memory_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6e109d210c1f1e494c2d731512d3fcc1ea597f69de36a4fccbe193d9ece27e6d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756(memPtr) {\n\n        mstore(add(memPtr, 0), \"Single Transaction Limit Exceed\")\n\n    }\n\n    function abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9ce88d2fadfa673fa6768d3a923b275d0f0b4469e4fb53ee61bb97e4b86ab756_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Daily Transaction Limit Exceed\")\n\n    }\n\n    function abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n        store_literal_in_memory_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ee924d8fb40cf1ed3d7396af45e831576eda8272fa4475688da6abe1d8f509fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd(memPtr) {\n\n        mstore(add(memPtr, 0), \"LzApp: payload size is too large\")\n\n    }\n\n    function abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fdfeef12c0e20d028b50cab1ee288ba9867f56b726ecc8cd0c9ed3048ec177dd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n        mstore(add(memPtr, 32), \"r call\")\n\n    }\n\n    function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d(memPtr) {\n\n        mstore(add(memPtr, 0), \"toAddress_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145(memPtr) {\n\n        mstore(add(memPtr, 0), \"toUint64_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2(memPtr) {\n\n        mstore(add(memPtr, 0), \"toBytes32_outOfBounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n        store_literal_in_memory_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"451":[{"length":32,"start":2817},{"length":32,"start":3384},{"length":32,"start":3921},{"length":32,"start":4089},{"length":32,"start":5094},{"length":32,"start":7824},{"length":32,"start":8870},{"length":32,"start":9251},{"length":32,"start":10908},{"length":32,"start":13526}],"3153":[{"length":32,"start":2274}],"9377":[{"length":32,"start":3300},{"length":32,"start":4232},{"length":32,"start":7064},{"length":32,"start":9503},{"length":32,"start":9652},{"length":32,"start":9709},{"length":32,"start":9774},{"length":32,"start":14391},{"length":32,"start":15163}],"9379":[{"length":32,"start":9919},{"length":32,"start":9982},{"length":32,"start":11931}]},"linkReferences":{},"object":"6080604052600436106103d85760003560e01c80637dc0d1d0116101fd578063b353aaa711610118578063d708a468116100ab578063eb8d72b71161007a578063eb8d72b714610c75578063f2fde38b14610c95578063f5ecbdbc14610cb5578063fc0c546a14610cd5578063fdff235b14610d0857600080fd5b8063d708a46814610bf3578063df2a5b3b14610c20578063e6a20ae614610c40578063eaffd49a14610c5557600080fd5b8063cbed8b9c116100e7578063cbed8b9c14610b73578063cc01e9b614610b93578063cc7015ae14610bb3578063d1deba1f14610be057600080fd5b8063b353aaa714610aef578063baf3292d14610b23578063c1e9132e14610b43578063c446183414610b5d57600080fd5b806393a61d6c116101905780639bdb98121161015f5780639bdb981214610a3d5780639f38369a14610a8f578063a4c51df514610aaf578063a6c3d16514610acf57600080fd5b806393a61d6c146109aa578063950c8a74146109d75780639689cb05146109f75780639b19251a14610a0d57600080fd5b80638cfd8f5c116101cc5780638cfd8f5c146109045780638da5cb5b1461093c57806390436567146109685780639358928b1461099557600080fd5b80637dc0d1d0146108695780638456cb591461089b57806384e69c69146108b0578063857749b0146108d057600080fd5b80634be66720116102f85780635c975abb1161028b57806369c1e7b81161025a57806369c1e7b8146107dd578063715018a6146107fd5780637533d7881461080957806376203b48146108365780637adbf9731461084957600080fd5b80635c975abb1461077257806364aff9ec1461078a57806366ad5c8a146107aa578063695ef6bf146107ca57600080fd5b80634f4ba0f4116102c75780634f4ba0f4146106b657806353489d6c146106e357806353d6fd59146107035780635b8c41e61461072357600080fd5b80634be66720146106275780634c42899a146106475780634cec6256146106695780634ed2c6621461069657600080fd5b8063365260b4116103705780633f4ba83a1161033f5780633f4ba83a146105bd57806342d65a8d146105d257806344770515146105f257806348e4a04a1461060757600080fd5b8063365260b4146105085780633c4ec39b146105365780633d8b38f6146105705780633f1f4fa41461059057600080fd5b806310ddb137116103ac57806310ddb13714610475578063182b4b89146104955780632488eec8146104c85780632dbbec08146104e857600080fd5b80621d3567146103dd57806301ffc9a7146103ff57806307e0db17146104355780630df3748314610455575b600080fd5b3480156103e957600080fd5b506103fd6103f8366004613e0a565b610d35565b005b34801561040b57600080fd5b5061041f61041a366004613ec5565b610efb565b60405161042c9190613ef0565b60405180910390f35b34801561044157600080fd5b506103fd610450366004613efe565b610f32565b34801561046157600080fd5b506103fd610470366004613f30565b610fbb565b34801561048157600080fd5b506103fd610490366004613efe565b610fda565b3480156104a157600080fd5b506104b56104b0366004613f92565b61102e565b60405161042c9796959493929190613fe8565b3480156104d457600080fd5b506103fd6104e3366004613f30565b611193565b3480156104f457600080fd5b506103fd610503366004613efe565b611235565b34801561051457600080fd5b50610528610523366004614063565b611293565b60405161042c9291906140dd565b34801561054257600080fd5b50610563610551366004613efe565b600d6020526000908152604090205481565b60405161042c91906140f8565b34801561057c57600080fd5b5061041f61058b366004614106565b6112e8565b34801561059c57600080fd5b506105636105ab366004613efe565b60036020526000908152604090205481565b3480156105c957600080fd5b506103fd6113b5565b3480156105de57600080fd5b506103fd6105ed366004614106565b6113c7565b3480156105fe57600080fd5b50610563600081565b34801561061357600080fd5b506103fd610622366004614161565b61144d565b34801561063357600080fd5b506103fd610642366004614161565b6114d1565b34801561065357600080fd5b5061065c600081565b60405161042c919061418c565b34801561067557600080fd5b50610563610684366004613efe565b600a6020526000908152604090205481565b3480156106a257600080fd5b506103fd6106b136600461419a565b611588565b3480156106c257600080fd5b506105636106d1366004613efe565b60096020526000908152604090205481565b3480156106ef57600080fd5b506103fd6106fe366004613f30565b6115cd565b34801561070f57600080fd5b506103fd61071e3660046141bb565b61166f565b34801561072f57600080fd5b5061056361073e3660046142e7565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561077e57600080fd5b5060005460ff1661041f565b34801561079657600080fd5b506103fd6107a5366004614366565b6116e3565b3480156107b657600080fd5b506103fd6107c5366004613e0a565b6117e7565b6103fd6107d83660046143b6565b611884565b3480156107e957600080fd5b506103fd6107f8366004613f30565b6118ef565b3480156103fd57600080fd5b34801561081557600080fd5b50610829610824366004613efe565b611991565b60405161042c91906144a0565b6103fd6108443660046144b1565b611a2b565b34801561085557600080fd5b506103fd610864366004614588565b611a67565b34801561087557600080fd5b5060075461088e9061010090046001600160a01b031681565b60405161042c91906145eb565b3480156108a757600080fd5b506103fd611adf565b3480156108bc57600080fd5b506103fd6108cb3660046142e7565b611aef565b3480156108dc57600080fd5b5061065c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561091057600080fd5b5061056361091f3660046145f9565b600260209081526000928352604080842090915290825290205481565b34801561094857600080fd5b5060005461010090046001600160a01b03165b60405161042c9190614635565b34801561097457600080fd5b50610563610983366004613efe565b600c6020526000908152604090205481565b3480156109a157600080fd5b50610563611b91565b3480156109b657600080fd5b506105636109c5366004613efe565b600b6020526000908152604090205481565b3480156109e357600080fd5b5060045461095b906001600160a01b031681565b348015610a0357600080fd5b5061056360115481565b348015610a1957600080fd5b5061041f610a28366004614588565b60106020526000908152604090205460ff1681565b348015610a4957600080fd5b5061041f610a583660046142e7565b6006602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b348015610a9b57600080fd5b50610829610aaa366004613efe565b611c27565b348015610abb57600080fd5b50610528610aca366004614643565b611d06565b348015610adb57600080fd5b506103fd610aea366004614106565b611d95565b348015610afb57600080fd5b5061088e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610b2f57600080fd5b506103fd610b3e366004614588565b611e1e565b348015610b4f57600080fd5b5060075461041f9060ff1681565b348015610b6957600080fd5b5061056361271081565b348015610b7f57600080fd5b506103fd610b8e36600461471e565b611e71565b348015610b9f57600080fd5b506103fd610bae366004613f30565b611f06565b348015610bbf57600080fd5b50610563610bce366004613efe565b60086020526000908152604090205481565b6103fd610bee366004613e0a565b611fa8565b348015610bff57600080fd5b50610563610c0e366004613efe565b600e6020526000908152604090205481565b348015610c2c57600080fd5b506103fd610c3b3660046147a1565b6120ac565b348015610c4c57600080fd5b5061065c600181565b348015610c6157600080fd5b506103fd610c703660046147c5565b61210b565b348015610c8157600080fd5b506103fd610c90366004614106565b6121f8565b348015610ca157600080fd5b506103fd610cb0366004614588565b612252565b348015610cc157600080fd5b50610829610cd03660046148b5565b61228c565b348015610ce157600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061095b565b348015610d1457600080fd5b50610563610d23366004613efe565b600f6020526000908152604090205481565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d865760405162461bcd60e51b8152600401610d7d90614950565b60405180910390fd5b61ffff861660009081526001602052604081208054610da490614976565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd090614976565b8015610e1d5780601f10610df257610100808354040283529160200191610e1d565b820191906000526020600020905b815481529060010190602001808311610e0057829003601f168201915b50505050509050805186869050148015610e38575060008151115b8015610e60575080516020820120604051610e5690889088906149af565b6040518091039020145b610e7c5760405162461bcd60e51b8152600401610d7d90614a02565b610ef28787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061233192505050565b50505050505050565b60006001600160e01b03198216631f7ecdf760e01b1480610f2c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610f3a6123aa565b6040516307e0db1760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906307e0db1790610f86908490600401614a1c565b600060405180830381600087803b158015610fa057600080fd5b505af1158015610fb4573d6000803e3d6000fd5b5050505050565b610fc36123aa565b61ffff909116600090815260036020526040902055565b610fe26123aa565b6040516310ddb13760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906310ddb13790610f86908490600401614a1c565b6001600160a01b038381166000908152601060209081526040808320548151928301918290526007546341976e0960e01b90925292938493849384938493849360ff16928492909182916101009004166341976e096110b07f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190614a35565b905290506110ff818a6123da565b61ffff8b166000908152600b6020908152604080832054600a835281842054600884528285205460099094529190932054919a509098509196509094509250426201518061114d8583614a6c565b111561115e5785945080935061116b565b6111688686614a7f565b94505b828061118257508786111580156111825750868511155b985050509397509397509397909450565b61119b6123aa565b61ffff82166000908152600860205260409020548110156111ce5760405162461bcd60e51b8152600401610d7d90614ad5565b61ffff8216600090815260096020526040908190205490517f4dd31065e259d5284e44d1f9265710da72eafcf78dc925e3881189fc3b71f69391611216918591908590614ae5565b60405180910390a161ffff909116600090815260096020526040902055565b61123d6123aa565b61ffff8116600090815260016020526040812061125991613d35565b7f6d5075c81d4d9e75bec6052f4e44f58f8a8cf1327544addbbf015fb06f83bd37816040516112889190614a1c565b60405180910390a150565b6000806112d98888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123f292505050565b91509150965096945050505050565b61ffff83166000908152600160205260408120805482919061130990614976565b80601f016020809104026020016040519081016040528092919081815260200182805461133590614976565b80156113825780601f1061135757610100808354040283529160200191611382565b820191906000526020600020905b81548152906001019060200180831161136557829003601f168201915b5050505050905083836040516113999291906149af565b60405180910390208180519060200120149150505b9392505050565b6113bd6123aa565b6113c56124af565b565b6113cf6123aa565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061141f90869086908690600401614b30565b600060405180830381600087803b15801561143957600080fd5b505af1158015610ef2573d6000803e3d6000fd5b6114556123aa565b8060115410156114775760405162461bcd60e51b8152600401610d7d90614ba1565b60118054829003905561148b3083836124fb565b50816001600160a01b03167f22fe8e8ead80ad0961d77107e806ba9bcf9ca3b175a9d446145646d39c36ab96826040516114c591906140f8565b60405180910390a25050565b6114d96123aa565b60006114e4826126b7565b50905080601160008282546114f99190614a7f565b90915550600090506115116001600160401b036126f7565b90506011548110156115355760405162461bcd60e51b8152600401610d7d90614bef565b6115408430846124fb565b50836001600160a01b03167f5e6172210489e8382b0281a3e17233598e143c96f8ac1f90923540b554cea1128360405161157a91906140f8565b60405180910390a250505050565b6115906123aa565b6007805460ff19168215159081179091556040517fe628f01c6f4e6340598d3a2913390db68e8859379eebff349e170f2b16baed0090600090a250565b6115d56123aa565b61ffff82166000908152600960205260409020548111156116085760405162461bcd60e51b8152600401610d7d90614c42565b61ffff8216600090815260086020526040908190205490517f7babeac42ccbb33537ee421fedc4db7b5f251b5d2a3fa5c0ff4b35b2d783be8791611650918591908590614ae5565b60405180910390a161ffff909116600090815260086020526040902055565b6116776123aa565b816001600160a01b03167ff6019ec0a78d156d249a1ec7579e2321f6ac7521d6e1d2eacf90ba4a184dcceb826040516116b09190613ef0565b60405180910390a26001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6116eb6123aa565b6040516370a0823160e01b81526000906001600160a01b038516906370a082319061171a903090600401614635565b602060405180830381865afa158015611737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175b9190614a35565b90508082111561178257818160405163cf47918160e01b8152600401610d7d9291906140dd565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5846040516117c591906140f8565b60405180910390a36117e16001600160a01b038516848461272c565b50505050565b3330146118065760405162461bcd60e51b8152600401610d7d90614c95565b61187c8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061278792505050565b505050505050565b61187c858585856118986020870187614588565b6118a86040880160208901614588565b6118b56040890189614ca5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127de92505050565b6118f76123aa565b61ffff82166000908152600c602052604090205481101561192a5760405162461bcd60e51b8152600401610d7d90614d4e565b61ffff82166000908152600d6020526040908190205490517f95dc51094cd27cf4ee3fd0dbb50cf96f8df1629c822f5434c4a34d7eb03c972491611972918591908590614ae5565b60405180910390a161ffff9091166000908152600d6020526040902055565b600160205260009081526040902080546119aa90614976565b80601f01602080910402602001604051908101604052809291908181526020018280546119d690614976565b8015611a235780601f106119f857610100808354040283529160200191611a23565b820191906000526020600020905b815481529060010190602001808311611a0657829003601f168201915b505050505081565b60075460ff16611a4d5760405162461bcd60e51b8152600401610d7d90614d92565b611a5d8888888888888888612898565b5050505050505050565b611a6f6123aa565b611a788161293c565b6007546040516001600160a01b0380841692610100900416907f05cd89403c6bdeac21c2ff33de395121a31fa1bc2bf3adf4825f1f86e79969dd90600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b611ae76123aa565b6113c5612963565b611af76123aa565b61ffff83166000908152600560205260408082209051611b18908590614dc4565b9081526040805191829003602090810183206001600160401b038616600090815291522091909155611b4b908390614dc4565b60405180910390207f48a980eea4ea1c540209e2f9f32a4c2edf51fab37b1d21f453868301ecb6e2ee8483604051611b84929190614ddf565b60405180910390a2505050565b60006011547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c189190614a35565b611c229190614a6c565b905090565b61ffff8116600090815260016020526040812080546060929190611c4a90614976565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7690614976565b8015611cc35780601f10611c9857610100808354040283529160200191611cc3565b820191906000526020600020905b815481529060010190602001808311611ca657829003601f168201915b505050505090508051600003611ceb5760405162461bcd60e51b8152600401610d7d90614e2e565b6113ae600060148351611cfe9190614a6c565b8391906129a0565b600080611d838b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c9081908401838280828437600092019190915250612a6892505050565b91509150995099975050505050505050565b611d9d6123aa565b818130604051602001611db293929190614e66565b60408051601f1981840301815291815261ffff8516600090815260016020522090611ddd9082614f1b565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051611e1193929190614b30565b60405180910390a1505050565b611e266123aa565b600480546001600160a01b0319166001600160a01b0383161790556040517f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b90611288908390614635565b611e796123aa565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90611ecd9088908890889088908890600401614fdd565b600060405180830381600087803b158015611ee757600080fd5b505af1158015611efb573d6000803e3d6000fd5b505050505050505050565b611f0e6123aa565b61ffff82166000908152600d6020526040902054811115611f415760405162461bcd60e51b8152600401610d7d90615063565b61ffff82166000908152600c6020526040908190205490517f2c42997a938a029910a78e7c28d762b349c28e70f3a89c1fbccbb1a46020b15991611f89918591908590614ae5565b60405180910390a161ffff9091166000908152600c6020526040902055565b61ffff861660009081526001602052604081208054611fc690614976565b80601f0160208091040260200160405190810160405280929190818152602001828054611ff290614976565b801561203f5780601f106120145761010080835404028352916020019161203f565b820191906000526020600020905b81548152906001019060200180831161202257829003601f168201915b5050505050905080518686905014801561205a575060008151115b801561208257508051602082012060405161207890889088906149af565b6040518091039020145b61209e5760405162461bcd60e51b8152600401610d7d90614a02565b610ef2878787878787612b2a565b6120b46123aa565b61ffff80841660009081526002602090815260408083209386168352929052819020829055517f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090611e1190859085908590615073565b33301461212a5760405162461bcd60e51b8152600401610d7d906150c2565b6121353086866124fb565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8660405161217591906140f8565b60405180910390a3604051633fe79aed60e11b81526001600160a01b03861690637fcf35da9083906121b9908e908e908e908e908e908d908d908d906004016150d2565b600060405180830381600088803b1580156121d357600080fd5b5087f11580156121e7573d6000803e3d6000fd5b505050505050505050505050505050565b6122006123aa565b61ffff8316600090815260016020526040902061221e82848361513d565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051611e1193929190614b30565b61225a6123aa565b6001600160a01b0381166122805760405162461bcd60e51b8152600401610d7d90615242565b61228981612cca565b50565b604051633d7b2f6f60e21b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f5ecbdbc906122e1908890889030908890600401615252565b600060405180830381865afa1580156122fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261232691908101906152df565b90505b949350505050565b6000806123945a60966366ad5c8a60e01b898989896040516024016123599493929190615319565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915230929190612d23565b915091508161187c5761187c8686868685612dad565b6000546001600160a01b036101009091041633146113c55760405162461bcd60e51b8152600401610d7d90615396565b6000806123e78484612e4a565b905061232981612e7b565b60008060006124098761240488612e93565b612ee9565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090612460908b90309086908b908b906004016153a6565b6040805180830381865afa15801561247c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a091906153f4565b92509250509550959350505050565b6124b7612f18565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516124f19190614635565b60405180910390a1565b6000612505612f3a565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612554908790600401614635565b602060405180830381865afa158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125959190614a35565b9050306001600160a01b038616036125e0576125db6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858561272c565b612615565b6126156001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868686612f5d565b6040516370a0823160e01b815281906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190612663908890600401614635565b602060405180830381865afa158015612680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a49190614a35565b6126ae9190614a6c565b95945050505050565b6000806126e47f00000000000000000000000000000000000000000000000000000000000000008461543d565b90506126f08184614a6c565b9150915091565b6000610f2c7f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416615451565b6127828363a9059cbb60e01b848460405160240161274b929190615470565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f7e565b505050565b60006127938282613010565b905060ff81166127ae576127a985858585613046565b610fb4565b60001960ff8216016127c6576127a9858585856130d4565b60405162461bcd60e51b8152600401610d7d906154b2565b60006127ec878284816132dd565b6127f5856126b7565b50905061280488888884613352565b9050600081116128265760405162461bcd60e51b8152600401610d7d906154f6565b60006128358761240484612e93565b90506128458882878787346133f6565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161288491906140f8565b60405180910390a450979650505050505050565b611efb8888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506128e59150506020890189614588565b6128f560408a0160208b01614588565b61290260408b018b614ca5565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061355292505050565b6001600160a01b038116612289576040516342bcdf7f60e11b815260040160405180910390fd5b61296b612f3a565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124e43390565b6060816129ae81601f614a7f565b10156129cc5760405162461bcd60e51b8152600401610d7d9061552b565b6129d68284614a7f565b845110156129f65760405162461bcd60e51b8152600401610d7d90615563565b606082158015612a155760405191506000825260208201604052612a5f565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612a4e578051835260209283019201612a36565b5050858452601f01601f1916604052505b50949350505050565b6000806000612a82338a612a7b8b612e93565b8a8a613619565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090612ad9908d90309086908b908b906004016153a6565b6040805180830381865afa158015612af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1991906153f4565b925092505097509795505050505050565b61ffff86166000908152600560205260408082209051612b4d90889088906149af565b90815260408051602092819003830190206001600160401b03871660009081529252902054905080612b915760405162461bcd60e51b8152600401610d7d906155b3565b808383604051612ba29291906149af565b604051809103902014612bc75760405162461bcd60e51b8152600401610d7d90615601565b61ffff87166000908152600560205260408082209051612bea90899089906149af565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f88018290048202830182019052868252612c82918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061278792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612cb9959493929190615611565b60405180910390a150505050505050565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6000606060008060008661ffff166001600160401b03811115612d4857612d486141ee565b6040519080825280601f01601f191660200182016040528015612d72576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612d94578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612dde9190614dc4565b9081526040805191829003602090810183206001600160401b0388166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612e3b908790879087908790879061564e565b60405180910390a15050505050565b6040805160208101909152600081526040518060200160405280612e7285600001518561365a565b90529392505050565b8051600090610f2c90670de0b6b3a7640000906156a3565b600080612ec07f0000000000000000000000000000000000000000000000000000000000000000846156a3565b90506001600160401b03811115610f2c5760405162461bcd60e51b8152600401610d7d906156eb565b606060008383604051602001612f0193929190615731565b604051602081830303815290604052905092915050565b60005460ff166113c55760405162461bcd60e51b8152600401610d7d90615793565b60005460ff16156113c55760405162461bcd60e51b8152600401610d7d906157ca565b6117e1846323b872dd60e01b85858560405160240161274b939291906157da565b6000612fd3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136669092919063ffffffff16565b9050805160001480612ff4575080806020019051810190612ff49190615800565b6127825760405162461bcd60e51b8152600401610d7d90615868565b600061301d826001614a7f565b8351101561303d5760405162461bcd60e51b8152600401610d7d906158a2565b50016001015190565b60008061305283613675565b90925090506001600160a01b03821661306b5761dead91505b6000613076826126f7565b90506130838784836136cf565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf836040516130c391906140f8565b60405180910390a350505050505050565b60008060008060006130e58661371d565b945094509450945094506000600660008b61ffff1661ffff1681526020019081526020016000208960405161311a9190614dc4565b90815260408051602092819003830190206001600160401b038b166000908152925281205460ff16915061314d856126f7565b9050816131bb5761315f8b30836136cf565b61ffff8c16600090815260066020526040908190209051919250600191613187908d90614dc4565b90815260408051602092819003830190206001600160401b038d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b61320d577f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d866040516131f99190614635565b60405180910390a1505050505050506117e1565b8a8a8a8a8a8a868a60008a61322b578b6001600160401b031661322d565b5a5b905060008061325f5a609663eaffd49a60e01b8e8e8e8d8d8d8d8d6040516024016123599897969594939291906158b2565b9150915081156132b8578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd884906132aa908e908e908690615937565b60405180910390a2506132c5565b6132c58b8b8b8b85612dad565b50505050505050505050505050505050505050505050565b60006132e8836137a9565b61ffff808716600090815260026020908152604080832093891683529290522054909150806133295760405162461bcd60e51b8152600401610d7d9061598b565b6133338382614a7f565b82101561187c5760405162461bcd60e51b8152600401610d7d906159cf565b600061335c612f3a565b6001600160a01b03851633146133845760405162461bcd60e51b8152600401610d7d90615a1e565b61338f8585846137d5565b600061339c8630856124fb565b905080601160008282546133b09190614a7f565b90915550600090506133c86001600160401b036126f7565b90506011548110156133ec5760405162461bcd60e51b8152600401610d7d90614bef565b5095945050505050565b61ffff86166000908152600160205260408120805461341490614976565b80601f016020809104026020016040519081016040528092919081815260200182805461344090614976565b801561348d5780601f106134625761010080835404028352916020019161348d565b820191906000526020600020905b81548152906001019060200180831161347057829003601f168201915b5050505050905080516000036134b55760405162461bcd60e51b8152600401610d7d90615a7b565b6134c0878751613989565b60405162c5803160e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5803100908490613517908b9086908c908c908c908c90600401615a8b565b6000604051808303818588803b15801561353057600080fd5b505af1158015613544573d6000803e3d6000fd5b505050505050505050505050565b600061356a896001846001600160401b0389166132dd565b613573876126b7565b5090506135828a8a8a84613352565b9050600081116135a45760405162461bcd60e51b8152600401610d7d906154f6565b60006135b4338a612a7b85612e93565b90506135c48a82878787346133f6565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161360391906140f8565b60405180910390a4509998505050505050505050565b6060600185856001600160a01b038916858760405160200161364096959493929190615aed565b604051602081830303815290604052905095945050505050565b60006113ae8284615451565b606061232984846000856139ca565b600080806136838482613010565b60ff16148015613694575082516029145b6136b05760405162461bcd60e51b8152600401610d7d90615b7d565b6136bb83600d613a66565b91506136c8836021613aa3565b9050915091565b60006136d9612f3a565b6136e4838584613ad9565b81601160008282546136f69190614a6c565b9091555050306001600160a01b038416036137125750806113ae565b6123293084846124fb565b6000808060608160016137308783613010565b60ff16146137505760405162461bcd60e51b8152600401610d7d90615b7d565b61375b86600d613a66565b9350613768866021613aa3565b9250613775866029613c8d565b9450613782866049613aa3565b905061379e60518088516137969190614a6c565b8891906129a0565b915091939590929450565b60006022825110156137cd5760405162461bcd60e51b8152600401610d7d90615bc1565b506022015190565b6001600160a01b03831660009081526010602052604090205460ff1680156137fd5750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e0961385f7f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa15801561387c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a09190614a35565b905290506138ae81856123da565b61ffff86166000908152600b6020908152604080832054600a8352818420546008845282852054600990945291909320549395504293909190818711156139075760405162461bcd60e51b8152600401610d7d90615c05565b620151806139158587614a6c565b11156139395761ffff8a166000908152600b60205260409020859055869250613946565b6139438784614a7f565b92505b808311156139665760405162461bcd60e51b8152600401610d7d90615c49565b505061ffff9097166000908152600a602052604090209690965550505050505050565b61ffff8216600090815260036020526040812054908190036139aa57506127105b808211156127825760405162461bcd60e51b8152600401610d7d90615c8b565b6060824710156139ec5760405162461bcd60e51b8152600401610d7d90615cde565b600080866001600160a01b03168587604051613a089190614dc4565b60006040518083038185875af1925050503d8060008114613a45576040519150601f19603f3d011682016040523d82523d6000602084013e613a4a565b606091505b5091509150613a5b87838387613cc3565b979650505050505050565b6000613a73826014614a7f565b83511015613a935760405162461bcd60e51b8152600401610d7d90615d1a565b500160200151600160601b900490565b6000613ab0826008614a7f565b83511015613ad05760405162461bcd60e51b8152600401610d7d90615d55565b50016008015190565b6001600160a01b03831660009081526010602052604090205460ff168015613b015750505050565b6040805160208101918290526007546341976e0960e01b909252600091829190819061010090046001600160a01b03166341976e09613b637f000000000000000000000000000000000000000000000000000000000000000060248501614635565b602060405180830381865afa158015613b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba49190614a35565b90529050613bb281856123da565b61ffff86166000908152600f6020908152604080832054600e835281842054600c845282852054600d9094529190932054939550429390919081871115613c0b5760405162461bcd60e51b8152600401610d7d90615c05565b62015180613c198587614a6c565b1115613c3d5761ffff8a166000908152600f60205260409020859055869250613c4a565b613c478784614a7f565b92505b80831115613c6a5760405162461bcd60e51b8152600401610d7d90615c49565b505061ffff9097166000908152600e602052604090209690965550505050505050565b6000613c9a826020614a7f565b83511015613cba5760405162461bcd60e51b8152600401610d7d90615d91565b50016020015190565b60608315613d02578251600003613cfb576001600160a01b0385163b613cfb5760405162461bcd60e51b8152600401610d7d90615dd5565b5081612329565b6123298383815115613d175781518083602001fd5b8060405162461bcd60e51b8152600401610d7d91906144a0565b5050565b508054613d4190614976565b6000825580601f10613d51575050565b601f01602090049060005260206000209081019061228991905b80821115613d7f5760008155600101613d6b565b5090565b61ffff81165b811461228957600080fd5b8035610f2c81613d83565b60008083601f840112613db457613db4600080fd5b5081356001600160401b03811115613dce57613dce600080fd5b602083019150836001820283011115613de957613de9600080fd5b9250929050565b6001600160401b038116613d89565b8035610f2c81613df0565b60008060008060008060808789031215613e2657613e26600080fd5b6000613e328989613d94565b96505060208701356001600160401b03811115613e5157613e51600080fd5b613e5d89828a01613d9f565b95509550506040613e7089828a01613dff565b93505060608701356001600160401b03811115613e8f57613e8f600080fd5b613e9b89828a01613d9f565b92509250509295509295509295565b6001600160e01b03198116613d89565b8035610f2c81613eaa565b600060208284031215613eda57613eda600080fd5b60006123298484613eba565b8015155b82525050565b60208101610f2c8284613ee6565b600060208284031215613f1357613f13600080fd5b60006123298484613d94565b80613d89565b8035610f2c81613f1f565b60008060408385031215613f4657613f46600080fd5b6000613f528585613d94565b9250506020613f6385828601613f25565b9150509250929050565b60006001600160a01b038216610f2c565b613d8981613f6d565b8035610f2c81613f7e565b600080600060608486031215613faa57613faa600080fd5b6000613fb68686613f87565b9350506020613fc786828701613d94565b9250506040613fd886828701613f25565b9150509250925092565b80613eea565b60e08101613ff6828a613ee6565b6140036020830189613fe2565b6140106040830188613fe2565b61401d6060830187613fe2565b61402a6080830186613fe2565b61403760a0830185613fe2565b61404460c0830184613ee6565b98975050505050505050565b801515613d89565b8035610f2c81614050565b60008060008060008060a0878903121561407f5761407f600080fd5b600061408b8989613d94565b965050602061409c89828a01613f25565b95505060406140ad89828a01613f25565b94505060606140be89828a01614058565b93505060808701356001600160401b03811115613e8f57613e8f600080fd5b604081016140eb8285613fe2565b6113ae6020830184613fe2565b60208101610f2c8284613fe2565b60008060006040848603121561411e5761411e600080fd5b600061412a8686613d94565b93505060208401356001600160401b0381111561414957614149600080fd5b61415586828701613d9f565b92509250509250925092565b6000806040838503121561417757614177600080fd5b6000613f528585613f87565b60ff8116613eea565b60208101610f2c8284614183565b6000602082840312156141af576141af600080fd5b60006123298484614058565b600080604083850312156141d1576141d1600080fd5b60006141dd8585613f87565b9250506020613f6385828601614058565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715614229576142296141ee565b6040525050565b600061423b60405190565b90506142478282614204565b919050565b60006001600160401b03821115614265576142656141ee565b601f19601f83011660200192915050565b82818337506000910152565b60006142956142908461424c565b614230565b9050828152602081018484840111156142b0576142b0600080fd5b6142bb848285614276565b509392505050565b600082601f8301126142d7576142d7600080fd5b8135612329848260208601614282565b6000806000606084860312156142ff576142ff600080fd5b600061430b8686613d94565b93505060208401356001600160401b0381111561432a5761432a600080fd5b614336868287016142c3565b9250506040613fd886828701613dff565b6000610f2c82613f6d565b613d8981614347565b8035610f2c81614352565b60008060006060848603121561437e5761437e600080fd5b600061438a868661435b565b9350506020613fc786828701613f87565b6000606082840312156143b0576143b0600080fd5b50919050565b600080600080600060a086880312156143d1576143d1600080fd5b60006143dd8888613f87565b95505060206143ee88828901613d94565b94505060406143ff88828901613f25565b935050606061441088828901613f25565b92505060808601356001600160401b0381111561442f5761442f600080fd5b61443b8882890161439b565b9150509295509295909350565b60005b8381101561446357818101518382015260200161444b565b50506000910152565b6000614476825190565b80845260208401935061448d818560208601614448565b601f19601f8201165b9093019392505050565b602080825281016113ae818461446c565b60008060008060008060008060e0898b0312156144d0576144d0600080fd5b60006144dc8b8b613f87565b98505060206144ed8b828c01613d94565b97505060406144fe8b828c01613f25565b965050606061450f8b828c01613f25565b95505060808901356001600160401b0381111561452e5761452e600080fd5b61453a8b828c01613d9f565b945094505060a061454d8b828c01613dff565b92505060c08901356001600160401b0381111561456c5761456c600080fd5b6145788b828c0161439b565b9150509295985092959890939650565b60006020828403121561459d5761459d600080fd5b60006123298484613f87565b6000610f2c6001600160a01b0383166145c0565b90565b6001600160a01b031690565b6000610f2c826145a9565b6000610f2c826145cc565b613eea816145d7565b60208101610f2c82846145e2565b6000806040838503121561460f5761460f600080fd5b600061461b8585613d94565b9250506020613f6385828601613d94565b613eea81613f6d565b60208101610f2c828461462c565b600080600080600080600080600060e08a8c03121561466457614664600080fd5b60006146708c8c613d94565b99505060206146818c828d01613f25565b98505060406146928c828d01613f25565b97505060608a01356001600160401b038111156146b1576146b1600080fd5b6146bd8c828d01613d9f565b965096505060806146d08c828d01613dff565b94505060a06146e18c828d01614058565b93505060c08a01356001600160401b0381111561470057614700600080fd5b61470c8c828d01613d9f565b92509250509295985092959850929598565b60008060008060006080868803121561473957614739600080fd5b60006147458888613d94565b955050602061475688828901613d94565b945050604061476788828901613f25565b93505060608601356001600160401b0381111561478657614786600080fd5b61479288828901613d9f565b92509250509295509295909350565b6000806000606084860312156147b9576147b9600080fd5b6000613fb68686613d94565b6000806000806000806000806000806101008b8d0312156147e8576147e8600080fd5b60006147f48d8d613d94565b9a505060208b01356001600160401b0381111561481357614813600080fd5b61481f8d828e01613d9f565b995099505060406148328d828e01613dff565b97505060606148438d828e01613f25565b96505060806148548d828e01613f87565b95505060a06148658d828e01613f25565b94505060c08b01356001600160401b0381111561488457614884600080fd5b6148908d828e01613d9f565b935093505060e06148a38d828e01613f25565b9150509295989b9194979a5092959850565b600080600080608085870312156148ce576148ce600080fd5b60006148da8787613d94565b94505060206148eb87828801613d94565b93505060406148fc87828801613f87565b925050606061490d87828801613f25565b91505092959194509250565b601e81526000602082017f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000815291505b5060200190565b60208082528101610f2c81614919565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061498a57607f821691505b6020821081036143b0576143b0614960565b60006149a9838584614276565b50500190565b600061232982848661499c565b602681526000602082017f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f8152651b9d1c9858dd60d21b602082015291505b5060400190565b60208082528101610f2c816149bc565b61ffff8116613eea565b60208101610f2c8284614a12565b8051610f2c81613f1f565b600060208284031215614a4a57614a4a600080fd5b60006123298484614a2a565b634e487b7160e01b600052601160045260246000fd5b81810381811115610f2c57610f2c614a56565b80820180821115610f2c57610f2c614a56565b602681526000602082017f4461696c79206c696d6974203c2073696e676c65207472616e73616374696f6e815265081b1a5b5a5d60d21b602082015291506149fb565b60208082528101610f2c81614a92565b60608101614af38286614a12565b614b006020830185613fe2565b6123296040830184613fe2565b8183526000602084019350614b23838584614276565b601f19601f840116614496565b60408101614b3e8286614a12565b8181036020830152612326818486614b0d565b603381526000602082017f576974686472617720616d6f756e742073686f756c64206265206c65737320748152721a185b881bdd5d189bdd5b9908185b5bdd5b9d606a1b602082015291506149fb565b60208082528101610f2c81614b51565b602181526000602082017f50726f78794f46543a206f7574626f756e64416d6f756e74206f766572666c6f8152607760f81b602082015291506149fb565b60208082528101610f2c81614bb1565b602681526000602082017f53696e676c65207472616e73616374696f6e206c696d6974203e204461696c79815265081b1a5b5a5d60d21b602082015291506149fb565b60208082528101610f2c81614bff565b602681526000602082017f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062658152650204c7a4170760d41b602082015291506149fb565b60208082528101610f2c81614c52565b6000808335601e1936859003018112614cc057614cc0600080fd5b8084019250823591506001600160401b03821115614ce057614ce0600080fd5b602083019250600182023603831315614cfb57614cfb600080fd5b509250929050565b602e81526000602082017f4461696c79206c696d6974203c2073696e676c6520726563656976652074726181526d1b9cd858dd1a5bdb881b1a5b5a5d60921b602082015291506149fb565b60208082528101610f2c81614d03565b601781526000602082017f73656e64416e6443616c6c2069732064697361626c656400000000000000000081529150614949565b60208082528101610f2c81614d5e565b6000614dac825190565b614dba818560208601614448565b9290920192915050565b60006113ae8284614da2565b6001600160401b038116613eea565b60408101614ded8285614a12565b6113ae6020830184614dd0565b601d81526000602082017f4c7a4170703a206e6f20747275737465642070617468207265636f726400000081529150614949565b60208082528101610f2c81614dfa565b6000610f2c8260601b90565b6000610f2c82614e3e565b613eea614e6182613f6d565b614e4a565b6000614e7382858761499c565b9150614e7f8284614e55565b506014019392505050565b6000610f2c6145bd8381565b614e9f83614e8a565b815460001960089490940293841b1916921b91909117905550565b6000612782818484614e96565b81811015613d3157614eda600082614eba565b600101614ec7565b601f821115612782576000818152602090206020601f85010481016020851015614f095750805b610fb46020601f860104830182614ec7565b81516001600160401b03811115614f3457614f346141ee565b614f3e8254614976565b614f49828285614ee2565b6020601f831160018114614f7d5760008415614f655750858201515b600019600886021c198116600286021786555061187c565b600085815260208120601f198616915b82811015614fad5788850151825560209485019460019092019101614f8d565b86831015614fc95784890151600019601f89166008021c191682555b600160028802018855505050505050505050565b60808101614feb8288614a12565b614ff86020830187614a12565b6150056040830186613fe2565b8181036060830152613a5b818486614b0d565b602e81526000602082017f73696e676c652072656365697665207472616e73616374696f6e206c696d697481526d080f8811185a5b1e481b1a5b5a5d60921b602082015291506149fb565b60208082528101610f2c81615018565b606081016150818286614a12565b614b006020830185614a12565b601f81526000602082017f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f72650081529150614949565b60208082528101610f2c8161508e565b60c081016150e0828b614a12565b81810360208301526150f381898b614b0d565b90506151026040830188614dd0565b61510f6060830187613fe2565b61511c6080830186613fe2565b81810360a083015261512f818486614b0d565b9a9950505050505050505050565b826001600160401b03811115615155576151556141ee565b61515f8254614976565b61516a828285614ee2565b6000601f83116001811461519e57600084156151865750858201355b600019600886021c1981166002860217865550610ef2565b600085815260208120601f198616915b828110156151ce57888501358255602094850194600190920191016151ae565b868310156151ea57600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015291506149fb565b60208082528101610f2c816151ff565b608081016152608287614a12565b61526d6020830186614a12565b61527a604083018561462c565b6126ae6060830184613fe2565b60006152956142908461424c565b9050828152602081018484840111156152b0576152b0600080fd5b6142bb848285614448565b600082601f8301126152cf576152cf600080fd5b8151612329848260208601615287565b6000602082840312156152f4576152f4600080fd5b81516001600160401b0381111561530d5761530d600080fd5b612329848285016152bb565b608081016153278287614a12565b8181036020830152615339818661446c565b90506153486040830185614dd0565b818103606083015261535a818461446c565b9695505050505050565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000614949565b60208082528101610f2c81615364565b60a081016153b48288614a12565b6153c1602083018761462c565b81810360408301526153d3818661446c565b90506153e26060830185613ee6565b8181036080830152613a5b818461446c565b6000806040838503121561540a5761540a600080fd5b60006154168585614a2a565b9250506020613f6385828601614a2a565b634e487b7160e01b600052601260045260246000fd5b60008261544c5761544c615427565b500690565b81810280821583820485141761546957615469614a56565b5092915050565b604081016140eb828561462c565b601c81526000602082017f4f4654436f72653a20756e6b6e6f776e207061636b657420747970650000000081529150614949565b60208082528101610f2c8161547e565b601981526000602082017f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c0000000000000081529150614949565b60208082528101610f2c816154c2565b600e81526000602082016d736c6963655f6f766572666c6f7760901b81529150614949565b60208082528101610f2c81615506565b6011815260006020820170736c6963655f6f75744f66426f756e647360781b81529150614949565b60208082528101610f2c8161553b565b602381526000602082017f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737381526261676560e81b602082015291506149fb565b60208082528101610f2c81615573565b602181526000602082017f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f618152601960fa1b602082015291506149fb565b60208082528101610f2c816155c3565b6080810161561f8288614a12565b8181036020830152615632818688614b0d565b90506156416040830185614dd0565b61535a6060830184613fe2565b60a0810161565c8288614a12565b818103602083015261566e818761446c565b905061567d6040830186614dd0565b818103606083015261568f818561446c565b90508181036080830152613a5b818461446c565b6000826156b2576156b2615427565b500490565b601a81526000602082017f4f4654436f72653a20616d6f756e745344206f766572666c6f7700000000000081529150614949565b60208082528101610f2c816156b7565b6000610f2c8260f81b90565b613eea60ff82166156fb565b6000610f2c8260c01b90565b613eea6001600160401b038216615713565b600061573d8286615707565b60018201915061574d8285613fe2565b60208201915061575d828461571f565b506008019392505050565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150614949565b60208082528101610f2c81615768565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b81529150614949565b60208082528101610f2c816157a3565b606081016157e8828661462c565b614b00602083018561462c565b8051610f2c81614050565b60006020828403121561581557615815600080fd5b600061232984846157f5565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b602082015291506149fb565b60208082528101610f2c81615821565b6013815260006020820172746f55696e74385f6f75744f66426f756e647360681b81529150614949565b60208082528101610f2c81615878565b61010081016158c1828b614a12565b81810360208301526158d3818a61446c565b90506158e26040830189614dd0565b6158ef6060830188613fe2565b6158fc608083018761462c565b61590960a0830186613fe2565b81810360c083015261591b818561446c565b905061592a60e0830184613fe2565b9998505050505050505050565b60608082528101615948818661446c565b9050614b006020830185614dd0565b601a81526000602082017f4c7a4170703a206d696e4761734c696d6974206e6f742073657400000000000081529150614949565b60208082528101610f2c81615957565b601b81526000602082017f4c7a4170703a20676173206c696d697420697320746f6f206c6f77000000000081529150614949565b60208082528101610f2c8161599b565b602281526000602082017f50726f78794f46543a206f776e6572206973206e6f742073656e642063616c6c81526132b960f11b602082015291506149fb565b60208082528101610f2c816159df565b603081526000602082017f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742081526f61207472757374656420736f7572636560801b602082015291506149fb565b60208082528101610f2c81615a2e565b60c08101615a998289614a12565b8181036020830152615aab818861446c565b90508181036040830152615abf818761446c565b9050615ace606083018661462c565b615adb608083018561462c565b81810360a0830152614044818461446c565b6000615af98289615707565b600182019150615b098288613fe2565b602082019150615b19828761571f565b600882019150615b298286613fe2565b602082019150615b39828561571f565b6008820191506140448284614da2565b601881526000602082017f4f4654436f72653a20696e76616c6964207061796c6f6164000000000000000081529150614949565b60208082528101610f2c81615b49565b601c81526000602082017f4c7a4170703a20696e76616c69642061646170746572506172616d730000000081529150614949565b60208082528101610f2c81615b8d565b601f81526000602082017f53696e676c65205472616e73616374696f6e204c696d6974204578636565640081529150614949565b60208082528101610f2c81615bd1565b601e81526000602082017f4461696c79205472616e73616374696f6e204c696d697420457863656564000081529150614949565b60208082528101610f2c81615c15565b60208082527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c6172676591019081526000614949565b60208082528101610f2c81615c59565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b602082015291506149fb565b60208082528101610f2c81615c9b565b6015815260006020820174746f416464726573735f6f75744f66426f756e647360581b81529150614949565b60208082528101610f2c81615cee565b6014815260006020820173746f55696e7436345f6f75744f66426f756e647360601b81529150614949565b60208082528101610f2c81615d2a565b6015815260006020820174746f427974657333325f6f75744f66426f756e647360581b81529150614949565b60208082528101610f2c81615d65565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529150614949565b60208082528101610f2c81615da156fea264697066735822122089612b317736c92c076d6e6df96ac6a17602e56c4594d806668a81daa9cad3c664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3D8 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7DC0D1D0 GT PUSH2 0x1FD JUMPI DUP1 PUSH4 0xB353AAA7 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0xD708A468 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xEB8D72B7 GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xEB8D72B7 EQ PUSH2 0xC75 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xC95 JUMPI DUP1 PUSH4 0xF5ECBDBC EQ PUSH2 0xCB5 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xCD5 JUMPI DUP1 PUSH4 0xFDFF235B EQ PUSH2 0xD08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD708A468 EQ PUSH2 0xBF3 JUMPI DUP1 PUSH4 0xDF2A5B3B EQ PUSH2 0xC20 JUMPI DUP1 PUSH4 0xE6A20AE6 EQ PUSH2 0xC40 JUMPI DUP1 PUSH4 0xEAFFD49A EQ PUSH2 0xC55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCBED8B9C GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0xCBED8B9C EQ PUSH2 0xB73 JUMPI DUP1 PUSH4 0xCC01E9B6 EQ PUSH2 0xB93 JUMPI DUP1 PUSH4 0xCC7015AE EQ PUSH2 0xBB3 JUMPI DUP1 PUSH4 0xD1DEBA1F EQ PUSH2 0xBE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB353AAA7 EQ PUSH2 0xAEF JUMPI DUP1 PUSH4 0xBAF3292D EQ PUSH2 0xB23 JUMPI DUP1 PUSH4 0xC1E9132E EQ PUSH2 0xB43 JUMPI DUP1 PUSH4 0xC4461834 EQ PUSH2 0xB5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x9BDB9812 GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x9BDB9812 EQ PUSH2 0xA3D JUMPI DUP1 PUSH4 0x9F38369A EQ PUSH2 0xA8F JUMPI DUP1 PUSH4 0xA4C51DF5 EQ PUSH2 0xAAF JUMPI DUP1 PUSH4 0xA6C3D165 EQ PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x93A61D6C EQ PUSH2 0x9AA JUMPI DUP1 PUSH4 0x950C8A74 EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0x9689CB05 EQ PUSH2 0x9F7 JUMPI DUP1 PUSH4 0x9B19251A EQ PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8CFD8F5C GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0x8CFD8F5C EQ PUSH2 0x904 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x93C JUMPI DUP1 PUSH4 0x90436567 EQ PUSH2 0x968 JUMPI DUP1 PUSH4 0x9358928B EQ PUSH2 0x995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DC0D1D0 EQ PUSH2 0x869 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0x84E69C69 EQ PUSH2 0x8B0 JUMPI DUP1 PUSH4 0x857749B0 EQ PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4BE66720 GT PUSH2 0x2F8 JUMPI DUP1 PUSH4 0x5C975ABB GT PUSH2 0x28B JUMPI DUP1 PUSH4 0x69C1E7B8 GT PUSH2 0x25A JUMPI DUP1 PUSH4 0x69C1E7B8 EQ PUSH2 0x7DD JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0x7533D788 EQ PUSH2 0x809 JUMPI DUP1 PUSH4 0x76203B48 EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0x7ADBF973 EQ PUSH2 0x849 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0x64AFF9EC EQ PUSH2 0x78A JUMPI DUP1 PUSH4 0x66AD5C8A EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0x695EF6BF EQ PUSH2 0x7CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F4BA0F4 GT PUSH2 0x2C7 JUMPI DUP1 PUSH4 0x4F4BA0F4 EQ PUSH2 0x6B6 JUMPI DUP1 PUSH4 0x53489D6C EQ PUSH2 0x6E3 JUMPI DUP1 PUSH4 0x53D6FD59 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x5B8C41E6 EQ PUSH2 0x723 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4BE66720 EQ PUSH2 0x627 JUMPI DUP1 PUSH4 0x4C42899A EQ PUSH2 0x647 JUMPI DUP1 PUSH4 0x4CEC6256 EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x4ED2C662 EQ PUSH2 0x696 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x365260B4 GT PUSH2 0x370 JUMPI DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x33F JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x5BD JUMPI DUP1 PUSH4 0x42D65A8D EQ PUSH2 0x5D2 JUMPI DUP1 PUSH4 0x44770515 EQ PUSH2 0x5F2 JUMPI DUP1 PUSH4 0x48E4A04A EQ PUSH2 0x607 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x365260B4 EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0x3C4EC39B EQ PUSH2 0x536 JUMPI DUP1 PUSH4 0x3D8B38F6 EQ PUSH2 0x570 JUMPI DUP1 PUSH4 0x3F1F4FA4 EQ PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10DDB137 GT PUSH2 0x3AC JUMPI DUP1 PUSH4 0x10DDB137 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0x182B4B89 EQ PUSH2 0x495 JUMPI DUP1 PUSH4 0x2488EEC8 EQ PUSH2 0x4C8 JUMPI DUP1 PUSH4 0x2DBBEC08 EQ PUSH2 0x4E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x1D3567 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3FF JUMPI DUP1 PUSH4 0x7E0DB17 EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0xDF37483 EQ PUSH2 0x455 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0xD35 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x41A CALLDATASIZE PUSH1 0x4 PUSH2 0x3EC5 JUMP JUMPDEST PUSH2 0xEFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x441 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x450 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0xF32 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x470 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0xFBB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x490 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0xFDA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F92 JUMP JUMPDEST PUSH2 0x102E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FE8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x1193 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x503 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1235 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x514 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x528 PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x4063 JUMP JUMPDEST PUSH2 0x1293 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP3 SWAP2 SWAP1 PUSH2 0x40DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0x58B CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x5AB CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x13B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x5ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x13C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x613 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x622 CALLDATASIZE PUSH1 0x4 PUSH2 0x4161 JUMP JUMPDEST PUSH2 0x144D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x642 CALLDATASIZE PUSH1 0x4 PUSH2 0x4161 JUMP JUMPDEST PUSH2 0x14D1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x653 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x675 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x684 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x6B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x419A JUMP JUMPDEST PUSH2 0x1588 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x6D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x15CD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x71E CALLDATASIZE PUSH1 0x4 PUSH2 0x41BB JUMP JUMPDEST PUSH2 0x166F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x73E CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x41F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x796 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x4366 JUMP JUMPDEST PUSH2 0x16E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0x17E7 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x7D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x43B6 JUMP JUMPDEST PUSH2 0x1884 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x7F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x18EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x815 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0x824 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1991 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x44A0 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x44B1 JUMP JUMPDEST PUSH2 0x1A2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x864 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x1A67 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x875 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x88E SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x45EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x1ADF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0x8CB CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH2 0x1AEF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x91F CALLDATASIZE PUSH1 0x4 PUSH2 0x45F9 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x983 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x1B91 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x9C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x95B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0xA28 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x41F PUSH2 0xA58 CALLDATASIZE PUSH1 0x4 PUSH2 0x42E7 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 DUP5 MLOAD DUP1 DUP7 ADD DUP5 ADD DUP1 MLOAD SWAP3 DUP2 MSTORE SWAP1 DUP5 ADD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP5 MSTORE SWAP3 SWAP1 MSTORE DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0xAAA CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH2 0x1C27 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xABB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x528 PUSH2 0xACA CALLDATASIZE PUSH1 0x4 PUSH2 0x4643 JUMP JUMPDEST PUSH2 0x1D06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xAEA CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x1D95 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x88E PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xB3E CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x1E1E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH2 0x41F SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0x2710 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xB8E CALLDATASIZE PUSH1 0x4 PUSH2 0x471E JUMP JUMPDEST PUSH2 0x1E71 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xBAE CALLDATASIZE PUSH1 0x4 PUSH2 0x3F30 JUMP JUMPDEST PUSH2 0x1F06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xBCE CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0xBEE CALLDATASIZE PUSH1 0x4 PUSH2 0x3E0A JUMP JUMPDEST PUSH2 0x1FA8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xC0E CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC3B CALLDATASIZE PUSH1 0x4 PUSH2 0x47A1 JUMP JUMPDEST PUSH2 0x20AC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x65C PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC70 CALLDATASIZE PUSH1 0x4 PUSH2 0x47C5 JUMP JUMPDEST PUSH2 0x210B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xC90 CALLDATASIZE PUSH1 0x4 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x21F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FD PUSH2 0xCB0 CALLDATASIZE PUSH1 0x4 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x2252 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x829 PUSH2 0xCD0 CALLDATASIZE PUSH1 0x4 PUSH2 0x48B5 JUMP JUMPDEST PUSH2 0x228C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH32 0x0 PUSH2 0x95B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x563 PUSH2 0xD23 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EFE JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4950 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xDA4 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xDD0 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE1D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDF2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE1D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE00 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0xE38 JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0xE60 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xE56 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0xE7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4A02 JUMP JUMPDEST PUSH2 0xEF2 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2331 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1F7ECDF7 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xF2C JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF3A PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7E0DB17 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x7E0DB17 SWAP1 PUSH2 0xF86 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFC3 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFE2 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x10DDB137 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x10DDB137 SWAP1 PUSH2 0xF86 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 DUP5 SWAP4 PUSH1 0xFF AND SWAP3 DUP5 SWAP3 SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x100 SWAP1 DIV AND PUSH4 0x41976E09 PUSH2 0x10B0 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10F1 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x10FF DUP2 DUP11 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP2 SWAP11 POP SWAP1 SWAP9 POP SWAP2 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP TIMESTAMP PUSH3 0x15180 PUSH2 0x114D DUP6 DUP4 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x115E JUMPI DUP6 SWAP5 POP DUP1 SWAP4 POP PUSH2 0x116B JUMP JUMPDEST PUSH2 0x1168 DUP7 DUP7 PUSH2 0x4A7F JUMP JUMPDEST SWAP5 POP JUMPDEST DUP3 DUP1 PUSH2 0x1182 JUMPI POP DUP8 DUP7 GT ISZERO DUP1 ISZERO PUSH2 0x1182 JUMPI POP DUP7 DUP6 GT ISZERO JUMPDEST SWAP9 POP POP POP SWAP4 SWAP8 POP SWAP4 SWAP8 POP SWAP4 SWAP8 SWAP1 SWAP5 POP JUMP JUMPDEST PUSH2 0x119B PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x11CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4AD5 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x4DD31065E259D5284E44D1F9265710DA72EAFCF78DC925E3881189FC3B71F693 SWAP2 PUSH2 0x1216 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x123D PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1259 SWAP2 PUSH2 0x3D35 JUMP JUMPDEST PUSH32 0x6D5075C81D4D9E75BEC6052F4E44F58F8A8CF1327544ADDBBF015FB06F83BD37 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1288 SWAP2 SWAP1 PUSH2 0x4A1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12D9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x23F2 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH2 0x1309 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1335 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1382 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1357 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1382 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1365 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1399 SWAP3 SWAP2 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13BD PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x13C5 PUSH2 0x24AF JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x13CF PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x42D65A8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x42D65A8D SWAP1 PUSH2 0x141F SWAP1 DUP7 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4B30 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1439 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1455 PUSH2 0x23AA JUMP JUMPDEST DUP1 PUSH1 0x11 SLOAD LT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BA1 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x148B ADDRESS DUP4 DUP4 PUSH2 0x24FB JUMP JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x22FE8E8EAD80AD0961D77107E806BA9BCF9CA3B175A9D446145646D39C36AB96 DUP3 PUSH1 0x40 MLOAD PUSH2 0x14C5 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x14D9 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14E4 DUP3 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x14F9 SWAP2 SWAP1 PUSH2 0x4A7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0x1511 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x11 SLOAD DUP2 LT ISZERO PUSH2 0x1535 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BEF JUMP JUMPDEST PUSH2 0x1540 DUP5 ADDRESS DUP5 PUSH2 0x24FB JUMP JUMPDEST POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x5E6172210489E8382B0281A3E17233598E143C96F8AC1F90923540B554CEA112 DUP4 PUSH1 0x40 MLOAD PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH2 0x1590 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0xE628F01C6F4E6340598D3A2913390DB68E8859379EEBFF349E170F2B16BAED00 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x15D5 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1608 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4C42 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x7BABEAC42CCBB33537EE421FEDC4DB7B5F251B5D2A3FA5C0FF4B35B2D783BE87 SWAP2 PUSH2 0x1650 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x1677 PUSH2 0x23AA JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF6019EC0A78D156D249A1EC7579E2321F6AC7521D6E1D2EACF90BA4A184DCCEB DUP3 PUSH1 0x40 MLOAD PUSH2 0x16B0 SWAP2 SWAP1 PUSH2 0x3EF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x16EB PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x171A SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1737 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x175B SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1782 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP3 SWAP2 SWAP1 PUSH2 0x40DD JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6D25BE279134F4ECAA4770AFF0C3D916D9E7C5EF37B65ED95DBDBA411F5D54D5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x17C5 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x17E1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 DUP5 PUSH2 0x272C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x1806 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4C95 JUMP JUMPDEST PUSH2 0x187C DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP10 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP8 DUP2 MSTORE DUP10 SWAP4 POP SWAP2 POP DUP8 SWAP1 DUP8 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2787 SWAP3 POP POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x187C DUP6 DUP6 DUP6 DUP6 PUSH2 0x1898 PUSH1 0x20 DUP8 ADD DUP8 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x18A8 PUSH1 0x40 DUP9 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x18B5 PUSH1 0x40 DUP10 ADD DUP10 PUSH2 0x4CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x27DE SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x18F7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x192A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4D4E JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x95DC51094CD27CF4EE3FD0DBB50CF96F8DF1629C822F5434C4A34D7EB03C9724 SWAP2 PUSH2 0x1972 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x19AA SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x19D6 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1A23 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A23 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A06 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0xFF AND PUSH2 0x1A4D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4D92 JUMP JUMPDEST PUSH2 0x1A5D DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2898 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A6F PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x1A78 DUP2 PUSH2 0x293C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 PUSH32 0x5CD89403C6BDEAC21C2FF33DE395121A31FA1BC2BF3ADF4825F1F86E79969DD SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1AE7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0x13C5 PUSH2 0x2963 JUMP JUMPDEST PUSH2 0x1AF7 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x1B18 SWAP1 DUP6 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1B4B SWAP1 DUP4 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH32 0x48A980EEA4EA1C540209E2F9F32A4C2EDF51FAB37B1D21F453868301ECB6E2EE DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1B84 SWAP3 SWAP2 SWAP1 PUSH2 0x4DDF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C18 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST PUSH2 0x1C22 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP3 SWAP2 SWAP1 PUSH2 0x1C4A SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C76 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CC3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1C98 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CC3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CA6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1CEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x0 PUSH1 0x14 DUP4 MLOAD PUSH2 0x1CFE SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST DUP4 SWAP2 SWAP1 PUSH2 0x29A0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D83 DUP12 DUP12 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE DUP15 SWAP4 POP DUP14 SWAP3 POP SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2A68 SWAP3 POP POP POP JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP10 POP SWAP10 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D9D PUSH2 0x23AA JUMP JUMPDEST DUP2 DUP2 ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1DB2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH2 0xFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH2 0x1DDD SWAP1 DUP3 PUSH2 0x4F1B JUMP JUMPDEST POP PUSH32 0x8C0400CFE2D1199B1A725C78960BCC2A344D869B80590D0F2BD005DB15A572CE DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E11 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1E26 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5DB758E995A17EC1AD84BDEF7E8C3293A0BD6179BCCE400DFF5D4C3D87DB726B SWAP1 PUSH2 0x1288 SWAP1 DUP4 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH2 0x1E79 PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x32FB62E7 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xCBED8B9C SWAP1 PUSH2 0x1ECD SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4FDD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EFB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F0E PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x1F41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5063 JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH32 0x2C42997A938A029910A78E7C28D762B349C28E70F3A89C1FBCCBB1A46020B159 SWAP2 PUSH2 0x1F89 SWAP2 DUP6 SWAP2 SWAP1 DUP6 SWAP1 PUSH2 0x4AE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xFFFF SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x1FC6 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1FF2 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x203F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2014 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x203F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2022 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD DUP7 DUP7 SWAP1 POP EQ DUP1 ISZERO PUSH2 0x205A JUMPI POP PUSH1 0x0 DUP2 MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x2082 JUMPI POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x2078 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ JUMPDEST PUSH2 0x209E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4A02 JUMP JUMPDEST PUSH2 0xEF2 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2B2A JUMP JUMPDEST PUSH2 0x20B4 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE DUP2 SWAP1 KECCAK256 DUP3 SWAP1 SSTORE MLOAD PUSH32 0x9D5C7C0B934DA8FEFA9C7760C98383778A12DFBFC0C3B3106518F43FB9508AC0 SWAP1 PUSH2 0x1E11 SWAP1 DUP6 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x5073 JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x212A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x50C2 JUMP JUMPDEST PUSH2 0x2135 ADDRESS DUP7 DUP7 PUSH2 0x24FB JUMP JUMPDEST SWAP4 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP11 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP7 PUSH1 0x40 MLOAD PUSH2 0x2175 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x40 MLOAD PUSH4 0x3FE79AED PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x7FCF35DA SWAP1 DUP4 SWAP1 PUSH2 0x21B9 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP14 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x50D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP8 CALL ISZERO DUP1 ISZERO PUSH2 0x21E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2200 PUSH2 0x23AA JUMP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x221E DUP3 DUP5 DUP4 PUSH2 0x513D JUMP JUMPDEST POP PUSH32 0xFA41487AD5D6728F0B19276FA1EDDC16558578F5109FC39D2DC33C3230470DAB DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E11 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B30 JUMP JUMPDEST PUSH2 0x225A PUSH2 0x23AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2280 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5242 JUMP JUMPDEST PUSH2 0x2289 DUP2 PUSH2 0x2CCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3D7B2F6F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xF5ECBDBC SWAP1 PUSH2 0x22E1 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5252 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2326 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x52DF JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2394 GAS PUSH1 0x96 PUSH4 0x66AD5C8A PUSH1 0xE0 SHL DUP10 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2359 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5319 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE ADDRESS SWAP3 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x187C JUMPI PUSH2 0x187C DUP7 DUP7 DUP7 DUP7 DUP6 PUSH2 0x2DAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x100 SWAP1 SWAP2 DIV AND CALLER EQ PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5396 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E7 DUP5 DUP5 PUSH2 0x2E4A JUMP JUMPDEST SWAP1 POP PUSH2 0x2329 DUP2 PUSH2 0x2E7B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2409 DUP8 PUSH2 0x2404 DUP9 PUSH2 0x2E93 JUMP JUMPDEST PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x2460 SWAP1 DUP12 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x53A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x247C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24A0 SWAP2 SWAP1 PUSH2 0x53F4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x24B7 PUSH2 0x2F18 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F1 SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2505 PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2554 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2571 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2595 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SUB PUSH2 0x25E0 JUMPI PUSH2 0x25DB PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH2 0x2615 JUMP JUMPDEST PUSH2 0x2615 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP7 DUP7 PUSH2 0x2F5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x2663 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2680 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A4 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST PUSH2 0x26AE SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH32 0x0 DUP5 PUSH2 0x543D JUMP JUMPDEST SWAP1 POP PUSH2 0x26F0 DUP2 DUP5 PUSH2 0x4A6C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH2 0x5451 JUMP JUMPDEST PUSH2 0x2782 DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x274B SWAP3 SWAP2 SWAP1 PUSH2 0x5470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE PUSH2 0x2F7E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2793 DUP3 DUP3 PUSH2 0x3010 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP2 AND PUSH2 0x27AE JUMPI PUSH2 0x27A9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x3046 JUMP JUMPDEST PUSH2 0xFB4 JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP3 AND ADD PUSH2 0x27C6 JUMPI PUSH2 0x27A9 DUP6 DUP6 DUP6 DUP6 PUSH2 0x30D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54B2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27EC DUP8 DUP3 DUP5 DUP2 PUSH2 0x32DD JUMP JUMPDEST PUSH2 0x27F5 DUP6 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x2804 DUP9 DUP9 DUP9 DUP5 PUSH2 0x3352 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x2826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54F6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2835 DUP8 PUSH2 0x2404 DUP5 PUSH2 0x2E93 JUMP JUMPDEST SWAP1 POP PUSH2 0x2845 DUP9 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x33F6 JUMP JUMPDEST DUP7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x2884 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1EFB DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x28E5 SWAP2 POP POP PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x28F5 PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x4588 JUMP JUMPDEST PUSH2 0x2902 PUSH1 0x40 DUP12 ADD DUP12 PUSH2 0x4CA5 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x3552 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2289 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x296B PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x24E4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x29AE DUP2 PUSH1 0x1F PUSH2 0x4A7F JUMP JUMPDEST LT ISZERO PUSH2 0x29CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x552B JUMP JUMPDEST PUSH2 0x29D6 DUP3 DUP5 PUSH2 0x4A7F JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x29F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5563 JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x2A15 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2A5F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2A4E JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x2A36 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2A82 CALLER DUP11 PUSH2 0x2A7B DUP12 PUSH2 0x2E93 JUMP JUMPDEST DUP11 DUP11 PUSH2 0x3619 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40A7BB1 PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x40A7BB10 SWAP1 PUSH2 0x2AD9 SWAP1 DUP14 SWAP1 ADDRESS SWAP1 DUP7 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x53A6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B19 SWAP2 SWAP1 PUSH2 0x53F4 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP8 POP SWAP8 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2B4D SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH2 0x49AF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 POP DUP1 PUSH2 0x2B91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x55B3 JUMP JUMPDEST DUP1 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2BA2 SWAP3 SWAP2 SWAP1 PUSH2 0x49AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 EQ PUSH2 0x2BC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5601 JUMP JUMPDEST PUSH2 0xFFFF DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP1 MLOAD PUSH2 0x2BEA SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH2 0x49AF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP1 DUP5 MSTORE DUP3 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x1F DUP9 ADD DUP3 SWAP1 DIV DUP3 MUL DUP4 ADD DUP3 ADD SWAP1 MSTORE DUP7 DUP3 MSTORE PUSH2 0x2C82 SWAP2 DUP10 SWAP2 DUP10 SWAP1 DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP11 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP9 DUP2 MSTORE DUP11 SWAP4 POP SWAP2 POP DUP9 SWAP1 DUP9 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2787 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC264D91F3ADC5588250E1551F547752CA0CFA8F6B530D243B9F9F4CAB10EA8E5 DUP8 DUP8 DUP8 DUP8 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2CB9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5611 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH2 0x100 DUP2 DUP2 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT DUP6 AND OR DUP6 SSTORE PUSH1 0x40 MLOAD SWAP4 DIV SWAP2 SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D48 JUMPI PUSH2 0x2D48 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2D72 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 DUP8 MLOAD PUSH1 0x20 DUP10 ADD PUSH1 0x0 DUP14 DUP14 CALL SWAP2 POP RETURNDATASIZE SWAP3 POP DUP7 DUP4 GT ISZERO PUSH2 0x2D94 JUMPI DUP7 SWAP3 POP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x0 PUSH1 0x20 DUP4 ADD RETURNDATACOPY SWAP1 SWAP9 SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x5 PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DDE SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x20 SWAP1 DUP2 ADD DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 MSTORE KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH32 0xE183F33DE2837795525B4792CA4CD60535BD77C53B7E7030060BFCF5734D6B0C SWAP1 PUSH2 0x2E3B SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x564E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2E72 DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0x365A JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0xF2C SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 PUSH2 0x56A3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2EC0 PUSH32 0x0 DUP5 PUSH2 0x56A3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x56EB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2F01 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5731 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5793 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x57CA JUMP JUMPDEST PUSH2 0x17E1 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x274B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x57DA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3666 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x2FF4 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2FF4 SWAP2 SWAP1 PUSH2 0x5800 JUMP JUMPDEST PUSH2 0x2782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5868 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301D DUP3 PUSH1 0x1 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x303D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x58A2 JUMP JUMPDEST POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3052 DUP4 PUSH2 0x3675 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x306B JUMPI PUSH2 0xDEAD SWAP2 POP JUMPDEST PUSH1 0x0 PUSH2 0x3076 DUP3 PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH2 0x3083 DUP8 DUP5 DUP4 PUSH2 0x36CF JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH2 0xFFFF AND PUSH32 0xBF551EC93859B170F9B2141BD9298BF3F64322C6F7BEB2543A0CB669834118BF DUP4 PUSH1 0x40 MLOAD PUSH2 0x30C3 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x30E5 DUP7 PUSH2 0x371D JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP12 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP10 PUSH1 0x40 MLOAD PUSH2 0x311A SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP2 POP PUSH2 0x314D DUP6 PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x31BB JUMPI PUSH2 0x315F DUP12 ADDRESS DUP4 PUSH2 0x36CF JUMP JUMPDEST PUSH2 0xFFFF DUP13 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 PUSH2 0x3187 SWAP1 DUP14 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 SWAP3 DUP2 SWAP1 SUB DUP4 ADD SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND EXTCODESIZE PUSH2 0x320D JUMPI PUSH32 0x9AEDF5FDBA8716DB3B6705CA00150643309995D4F818A249ED6DDE6677E7792D DUP7 PUSH1 0x40 MLOAD PUSH2 0x31F9 SWAP2 SWAP1 PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH2 0x17E1 JUMP JUMPDEST DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP7 DUP11 PUSH1 0x0 DUP11 PUSH2 0x322B JUMPI DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH2 0x322D JUMP JUMPDEST GAS JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x325F GAS PUSH1 0x96 PUSH4 0xEAFFD49A PUSH1 0xE0 SHL DUP15 DUP15 DUP15 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x2359 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x58B2 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x32B8 JUMPI DUP8 MLOAD PUSH1 0x20 DUP10 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH2 0xFFFF DUP14 AND SWAP1 PUSH32 0xB8890EDBFC1C74692F527444645F95489C3703CC2DF42E4A366F5D06FA6CD884 SWAP1 PUSH2 0x32AA SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP7 SWAP1 PUSH2 0x5937 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH2 0x32C5 JUMP JUMPDEST PUSH2 0x32C5 DUP12 DUP12 DUP12 DUP12 DUP6 PUSH2 0x2DAD JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32E8 DUP4 PUSH2 0x37A9 JUMP JUMPDEST PUSH2 0xFFFF DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP10 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 PUSH2 0x3329 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x598B JUMP JUMPDEST PUSH2 0x3333 DUP4 DUP3 PUSH2 0x4A7F JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x187C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x59CF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x335C PUSH2 0x2F3A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER EQ PUSH2 0x3384 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5A1E JUMP JUMPDEST PUSH2 0x338F DUP6 DUP6 DUP5 PUSH2 0x37D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x339C DUP7 ADDRESS DUP6 PUSH2 0x24FB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x33B0 SWAP2 SWAP1 PUSH2 0x4A7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP PUSH2 0x33C8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x26F7 JUMP JUMPDEST SWAP1 POP PUSH1 0x11 SLOAD DUP2 LT ISZERO PUSH2 0x33EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x4BEF JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3414 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3440 SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x348D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3462 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x348D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3470 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x34B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5A7B JUMP JUMPDEST PUSH2 0x34C0 DUP8 DUP8 MLOAD PUSH2 0x3989 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xC58031 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xC5803100 SWAP1 DUP5 SWAP1 PUSH2 0x3517 SWAP1 DUP12 SWAP1 DUP7 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x5A8B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3544 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356A DUP10 PUSH1 0x1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP10 AND PUSH2 0x32DD JUMP JUMPDEST PUSH2 0x3573 DUP8 PUSH2 0x26B7 JUMP JUMPDEST POP SWAP1 POP PUSH2 0x3582 DUP11 DUP11 DUP11 DUP5 PUSH2 0x3352 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x35A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x54F6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35B4 CALLER DUP11 PUSH2 0x2A7B DUP6 PUSH2 0x2E93 JUMP JUMPDEST SWAP1 POP PUSH2 0x35C4 DUP11 DUP3 DUP8 DUP8 DUP8 CALLVALUE PUSH2 0x33F6 JUMP JUMPDEST DUP9 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP12 PUSH2 0xFFFF AND PUSH32 0xD81FC9B8523134ED613870ED029D6170CBB73AA6A6BC311B9A642689FB9DF59A DUP6 PUSH1 0x40 MLOAD PUSH2 0x3603 SWAP2 SWAP1 PUSH2 0x40F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP6 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3640 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5AED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AE DUP3 DUP5 PUSH2 0x5451 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2329 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x39CA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x3683 DUP5 DUP3 PUSH2 0x3010 JUMP JUMPDEST PUSH1 0xFF AND EQ DUP1 ISZERO PUSH2 0x3694 JUMPI POP DUP3 MLOAD PUSH1 0x29 EQ JUMPDEST PUSH2 0x36B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5B7D JUMP JUMPDEST PUSH2 0x36BB DUP4 PUSH1 0xD PUSH2 0x3A66 JUMP JUMPDEST SWAP2 POP PUSH2 0x36C8 DUP4 PUSH1 0x21 PUSH2 0x3AA3 JUMP JUMPDEST SWAP1 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D9 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x36E4 DUP4 DUP6 DUP5 PUSH2 0x3AD9 JUMP JUMPDEST DUP2 PUSH1 0x11 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x36F6 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x3712 JUMPI POP DUP1 PUSH2 0x13AE JUMP JUMPDEST PUSH2 0x2329 ADDRESS DUP5 DUP5 PUSH2 0x24FB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x60 DUP2 PUSH1 0x1 PUSH2 0x3730 DUP8 DUP4 PUSH2 0x3010 JUMP JUMPDEST PUSH1 0xFF AND EQ PUSH2 0x3750 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5B7D JUMP JUMPDEST PUSH2 0x375B DUP7 PUSH1 0xD PUSH2 0x3A66 JUMP JUMPDEST SWAP4 POP PUSH2 0x3768 DUP7 PUSH1 0x21 PUSH2 0x3AA3 JUMP JUMPDEST SWAP3 POP PUSH2 0x3775 DUP7 PUSH1 0x29 PUSH2 0x3C8D JUMP JUMPDEST SWAP5 POP PUSH2 0x3782 DUP7 PUSH1 0x49 PUSH2 0x3AA3 JUMP JUMPDEST SWAP1 POP PUSH2 0x379E PUSH1 0x51 DUP1 DUP9 MLOAD PUSH2 0x3796 SWAP2 SWAP1 PUSH2 0x4A6C JUMP JUMPDEST DUP9 SWAP2 SWAP1 PUSH2 0x29A0 JUMP JUMPDEST SWAP2 POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 DUP3 MLOAD LT ISZERO PUSH2 0x37CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5BC1 JUMP JUMPDEST POP PUSH1 0x22 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x37FD JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x385F PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x387C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38A0 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x38AE DUP2 DUP6 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xA DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0x8 DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3907 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C05 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3915 DUP6 DUP8 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x3939 JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3946 JUMP JUMPDEST PUSH2 0x3943 DUP8 DUP5 PUSH2 0x4A7F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3966 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C49 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 DUP2 SWAP1 SUB PUSH2 0x39AA JUMPI POP PUSH2 0x2710 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C8B JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x39EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5CDE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x3A08 SWAP2 SWAP1 PUSH2 0x4DC4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3A45 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3A4A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x3A5B DUP8 DUP4 DUP4 DUP8 PUSH2 0x3CC3 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A73 DUP3 PUSH1 0x14 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3A93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D1A JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x60 SHL SWAP1 DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB0 DUP3 PUSH1 0x8 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3AD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D55 JUMP JUMPDEST POP ADD PUSH1 0x8 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x3B01 JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x7 SLOAD PUSH4 0x41976E09 PUSH1 0xE0 SHL SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x41976E09 PUSH2 0x3B63 PUSH32 0x0 PUSH1 0x24 DUP6 ADD PUSH2 0x4635 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BA4 SWAP2 SWAP1 PUSH2 0x4A35 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x3BB2 DUP2 DUP6 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0xFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0xE DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD PUSH1 0xC DUP5 MSTORE DUP3 DUP6 KECCAK256 SLOAD PUSH1 0xD SWAP1 SWAP5 MSTORE SWAP2 SWAP1 SWAP4 KECCAK256 SLOAD SWAP4 SWAP6 POP TIMESTAMP SWAP4 SWAP1 SWAP2 SWAP1 DUP2 DUP8 GT ISZERO PUSH2 0x3C0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C05 JUMP JUMPDEST PUSH3 0x15180 PUSH2 0x3C19 DUP6 DUP8 PUSH2 0x4A6C JUMP JUMPDEST GT ISZERO PUSH2 0x3C3D JUMPI PUSH2 0xFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP7 SWAP3 POP PUSH2 0x3C4A JUMP JUMPDEST PUSH2 0x3C47 DUP8 DUP5 PUSH2 0x4A7F JUMP JUMPDEST SWAP3 POP JUMPDEST DUP1 DUP4 GT ISZERO PUSH2 0x3C6A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5C49 JUMP JUMPDEST POP POP PUSH2 0xFFFF SWAP1 SWAP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP7 SWAP1 SWAP7 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C9A DUP3 PUSH1 0x20 PUSH2 0x4A7F JUMP JUMPDEST DUP4 MLOAD LT ISZERO PUSH2 0x3CBA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5D91 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D02 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x3CFB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x3CFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP1 PUSH2 0x5DD5 JUMP JUMPDEST POP DUP2 PUSH2 0x2329 JUMP JUMPDEST PUSH2 0x2329 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x3D17 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD7D SWAP2 SWAP1 PUSH2 0x44A0 JUMP JUMPDEST POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3D41 SWAP1 PUSH2 0x4976 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3D51 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2289 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3D7F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D6B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x2289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3D83 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3DB4 JUMPI PUSH2 0x3DB4 PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3DCE JUMPI PUSH2 0x3DCE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x3DE9 JUMPI PUSH2 0x3DE9 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3DF0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x3E26 JUMPI PUSH2 0x3E26 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E32 DUP10 DUP10 PUSH2 0x3D94 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E51 JUMPI PUSH2 0x3E51 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E5D DUP10 DUP3 DUP11 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x40 PUSH2 0x3E70 DUP10 DUP3 DUP11 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E8F JUMPI PUSH2 0x3E8F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E9B DUP10 DUP3 DUP11 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3EAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3EDA JUMPI PUSH2 0x3EDA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3EBA JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x3EE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F13 JUMPI PUSH2 0x3F13 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3D94 JUMP JUMPDEST DUP1 PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3F1F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3F46 JUMPI PUSH2 0x3F46 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F52 DUP6 DUP6 PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2C JUMP JUMPDEST PUSH2 0x3D89 DUP2 PUSH2 0x3F6D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x3F7E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3FAA JUMPI PUSH2 0x3FAA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FB6 DUP7 DUP7 PUSH2 0x3F87 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3FC7 DUP7 DUP3 DUP8 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x3FF6 DUP3 DUP11 PUSH2 0x3EE6 JUMP JUMPDEST PUSH2 0x4003 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4010 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x401D PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x402A PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4037 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x4044 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x3EE6 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x3D89 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x4050 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x407F JUMPI PUSH2 0x407F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x408B DUP10 DUP10 PUSH2 0x3D94 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x409C DUP10 DUP3 DUP11 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x40AD DUP10 DUP3 DUP11 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x40BE DUP10 DUP3 DUP11 ADD PUSH2 0x4058 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E8F JUMPI PUSH2 0x3E8F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x40EB DUP3 DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x411E JUMPI PUSH2 0x411E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x412A DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4149 JUMPI PUSH2 0x4149 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4155 DUP7 DUP3 DUP8 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4177 JUMPI PUSH2 0x4177 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3F52 DUP6 DUP6 PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x4183 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41AF JUMPI PUSH2 0x41AF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x4058 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41D1 JUMPI PUSH2 0x41D1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x41DD DUP6 DUP6 PUSH2 0x3F87 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x4058 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x4229 JUMPI PUSH2 0x4229 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x423B PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x4247 DUP3 DUP3 PUSH2 0x4204 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4265 JUMPI PUSH2 0x4265 PUSH2 0x41EE JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4295 PUSH2 0x4290 DUP5 PUSH2 0x424C JUMP JUMPDEST PUSH2 0x4230 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x42B0 JUMPI PUSH2 0x42B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP5 DUP3 DUP6 PUSH2 0x4276 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42D7 JUMPI PUSH2 0x42D7 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2329 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x42FF JUMPI PUSH2 0x42FF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x430B DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x432A JUMPI PUSH2 0x432A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4336 DUP7 DUP3 DUP8 ADD PUSH2 0x42C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x3FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x3DFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x3D89 DUP2 PUSH2 0x4347 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0xF2C DUP2 PUSH2 0x4352 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x437E JUMPI PUSH2 0x437E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x438A DUP7 DUP7 PUSH2 0x435B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3FC7 DUP7 DUP3 DUP8 ADD PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43B0 JUMPI PUSH2 0x43B0 PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x43D1 JUMPI PUSH2 0x43D1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x43DD DUP9 DUP9 PUSH2 0x3F87 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x43EE DUP9 DUP3 DUP10 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x43FF DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x4410 DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x442F JUMPI PUSH2 0x442F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x443B DUP9 DUP3 DUP10 ADD PUSH2 0x439B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4463 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x444B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4476 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x448D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4448 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x13AE DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x44D0 JUMPI PUSH2 0x44D0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x44DC DUP12 DUP12 PUSH2 0x3F87 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x44ED DUP12 DUP3 DUP13 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x44FE DUP12 DUP3 DUP13 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH2 0x450F DUP12 DUP3 DUP13 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x452E JUMPI PUSH2 0x452E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x453A DUP12 DUP3 DUP13 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0xA0 PUSH2 0x454D DUP12 DUP3 DUP13 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x456C JUMPI PUSH2 0x456C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4578 DUP12 DUP3 DUP13 ADD PUSH2 0x439B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x459D JUMPI PUSH2 0x459D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x3F87 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x45C0 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x45A9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x45CC JUMP JUMPDEST PUSH2 0x3EEA DUP2 PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x45E2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x460F JUMPI PUSH2 0x460F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x461B DUP6 DUP6 PUSH2 0x3D94 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x3D94 JUMP JUMPDEST PUSH2 0x3EEA DUP2 PUSH2 0x3F6D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x4664 JUMPI PUSH2 0x4664 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4670 DUP13 DUP13 PUSH2 0x3D94 JUMP JUMPDEST SWAP10 POP POP PUSH1 0x20 PUSH2 0x4681 DUP13 DUP3 DUP14 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP9 POP POP PUSH1 0x40 PUSH2 0x4692 DUP13 DUP3 DUP14 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x46B1 JUMPI PUSH2 0x46B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46BD DUP13 DUP3 DUP14 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x80 PUSH2 0x46D0 DUP13 DUP3 DUP14 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH2 0x46E1 DUP13 DUP3 DUP14 ADD PUSH2 0x4058 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4700 JUMPI PUSH2 0x4700 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x470C DUP13 DUP3 DUP14 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4739 JUMPI PUSH2 0x4739 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4745 DUP9 DUP9 PUSH2 0x3D94 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x4756 DUP9 DUP3 DUP10 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x4767 DUP9 DUP3 DUP10 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4786 JUMPI PUSH2 0x4786 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4792 DUP9 DUP3 DUP10 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x47B9 JUMPI PUSH2 0x47B9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3FB6 DUP7 DUP7 PUSH2 0x3D94 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP12 DUP14 SUB SLT ISZERO PUSH2 0x47E8 JUMPI PUSH2 0x47E8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x47F4 DUP14 DUP14 PUSH2 0x3D94 JUMP JUMPDEST SWAP11 POP POP PUSH1 0x20 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4813 JUMPI PUSH2 0x4813 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x481F DUP14 DUP3 DUP15 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP10 POP SWAP10 POP POP PUSH1 0x40 PUSH2 0x4832 DUP14 DUP3 DUP15 ADD PUSH2 0x3DFF JUMP JUMPDEST SWAP8 POP POP PUSH1 0x60 PUSH2 0x4843 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x80 PUSH2 0x4854 DUP14 DUP3 DUP15 ADD PUSH2 0x3F87 JUMP JUMPDEST SWAP6 POP POP PUSH1 0xA0 PUSH2 0x4865 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xC0 DUP12 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4884 JUMPI PUSH2 0x4884 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4890 DUP14 DUP3 DUP15 ADD PUSH2 0x3D9F JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0xE0 PUSH2 0x48A3 DUP14 DUP3 DUP15 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x48CE JUMPI PUSH2 0x48CE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x48DA DUP8 DUP8 PUSH2 0x3D94 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x48EB DUP8 DUP3 DUP9 ADD PUSH2 0x3D94 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x48FC DUP8 DUP3 DUP9 ADD PUSH2 0x3F87 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x490D DUP8 DUP3 DUP9 ADD PUSH2 0x3F25 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420656E64706F696E742063616C6C65720000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4919 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x498A JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x43B0 JUMPI PUSH2 0x43B0 PUSH2 0x4960 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49A9 DUP4 DUP6 DUP5 PUSH2 0x4276 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP3 DUP5 DUP7 PUSH2 0x499C JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C696420736F757263652073656E64696E6720636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x49BC JUMP JUMPDEST PUSH2 0xFFFF DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xF2C DUP3 DUP5 PUSH2 0x4A12 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xF2C DUP2 PUSH2 0x3F1F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A4A JUMPI PUSH2 0x4A4A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x4A2A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0x4A56 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0x4A56 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207472616E73616374696F6E DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4A92 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AF3 DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x2329 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x4B23 DUP4 DUP6 DUP5 PUSH2 0x4276 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP5 ADD AND PUSH2 0x4496 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4B3E DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2326 DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST PUSH1 0x33 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x576974686472617720616D6F756E742073686F756C64206265206C6573732074 DUP2 MSTORE PUSH19 0x1A185B881BDD5D189BDD5B9908185B5BDD5B9D PUSH1 0x6A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4B51 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F7574626F756E64416D6F756E74206F766572666C6F DUP2 MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4BB1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65207472616E73616374696F6E206C696D6974203E204461696C79 DUP2 MSTORE PUSH6 0x81B1A5B5A5D PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4BFF JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A2063616C6C6572206D757374206265 DUP2 MSTORE PUSH6 0x204C7A41707 PUSH1 0xD4 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4C52 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT CALLDATASIZE DUP6 SWAP1 SUB ADD DUP2 SLT PUSH2 0x4CC0 JUMPI PUSH2 0x4CC0 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4CE0 JUMPI PUSH2 0x4CE0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x4CFB JUMPI PUSH2 0x4CFB PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79206C696D6974203C2073696E676C65207265636569766520747261 DUP2 MSTORE PUSH14 0x1B9CD858DD1A5BDB881B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4D03 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73656E64416E6443616C6C2069732064697361626C6564000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4DAC DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4DBA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4448 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AE DUP3 DUP5 PUSH2 0x4DA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND PUSH2 0x3EEA JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4DED DUP3 DUP6 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x13AE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4DD0 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206E6F20747275737465642070617468207265636F7264000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x4DFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0x60 SHL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH2 0x4E3E JUMP JUMPDEST PUSH2 0x3EEA PUSH2 0x4E61 DUP3 PUSH2 0x3F6D JUMP JUMPDEST PUSH2 0x4E4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E73 DUP3 DUP6 DUP8 PUSH2 0x499C JUMP JUMPDEST SWAP2 POP PUSH2 0x4E7F DUP3 DUP5 PUSH2 0x4E55 JUMP JUMPDEST POP PUSH1 0x14 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C PUSH2 0x45BD DUP4 DUP2 JUMP JUMPDEST PUSH2 0x4E9F DUP4 PUSH2 0x4E8A JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2782 DUP2 DUP5 DUP5 PUSH2 0x4E96 JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D31 JUMPI PUSH2 0x4EDA PUSH1 0x0 DUP3 PUSH2 0x4EBA JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x4EC7 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2782 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4F09 JUMPI POP DUP1 JUMPDEST PUSH2 0xFB4 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x4EC7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F34 JUMPI PUSH2 0x4F34 PUSH2 0x41EE JUMP JUMPDEST PUSH2 0x4F3E DUP3 SLOAD PUSH2 0x4976 JUMP JUMPDEST PUSH2 0x4F49 DUP3 DUP3 DUP6 PUSH2 0x4EE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F7D JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F65 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x187C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FAD JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4F8D JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x4FC9 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4FEB DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4FF8 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x5005 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST PUSH1 0x2E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x73696E676C652072656365697665207472616E73616374696F6E206C696D6974 DUP2 MSTORE PUSH14 0x80F8811185A5B1E481B1A5B5A5D PUSH1 0x92 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5018 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x5081 DUP3 DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A12 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A2063616C6C6572206D757374206265204F4654436F726500 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x508E JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x50E0 DUP3 DUP12 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x50F3 DUP2 DUP10 DUP12 PUSH2 0x4B0D JUMP JUMPDEST SWAP1 POP PUSH2 0x5102 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x510F PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x511C PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x512F DUP2 DUP5 DUP7 PUSH2 0x4B0D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5155 JUMPI PUSH2 0x5155 PUSH2 0x41EE JUMP JUMPDEST PUSH2 0x515F DUP3 SLOAD PUSH2 0x4976 JUMP JUMPDEST PUSH2 0x516A DUP3 DUP3 DUP6 PUSH2 0x4EE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x519E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x5186 JUMPI POP DUP6 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0xEF2 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x51CE JUMPI DUP9 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x51AE JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x51EA JUMPI PUSH1 0x0 NOT PUSH1 0x1F DUP9 AND PUSH1 0x8 MUL SHR NOT DUP6 DUP11 ADD CALLDATALOAD AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x51FF JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5260 DUP3 DUP8 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x526D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x527A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x26AE PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5295 PUSH2 0x4290 DUP5 PUSH2 0x424C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x52B0 JUMPI PUSH2 0x52B0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42BB DUP5 DUP3 DUP6 PUSH2 0x4448 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x52CF JUMPI PUSH2 0x52CF PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2329 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5287 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52F4 JUMPI PUSH2 0x52F4 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x530D JUMPI PUSH2 0x530D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2329 DUP5 DUP3 DUP6 ADD PUSH2 0x52BB JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x5327 DUP3 DUP8 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5339 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x5348 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x535A DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5364 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53B4 DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST PUSH2 0x53C1 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x462C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x53D3 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x53E2 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x3EE6 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x540A JUMPI PUSH2 0x540A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5416 DUP6 DUP6 PUSH2 0x4A2A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3F63 DUP6 DUP3 DUP7 ADD PUSH2 0x4A2A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x544C JUMPI PUSH2 0x544C PUSH2 0x5427 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x5469 JUMPI PUSH2 0x5469 PUSH2 0x4A56 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x40EB DUP3 DUP6 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20756E6B6E6F776E207061636B6574207479706500000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x547E JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E7420746F6F20736D616C6C00000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x54C2 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5506 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x553B JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A206E6F2073746F726564206D657373 DUP2 MSTORE PUSH3 0x616765 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5573 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4E6F6E626C6F636B696E674C7A4170703A20696E76616C6964207061796C6F61 DUP2 MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x55C3 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x561F DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5632 DUP2 DUP7 DUP9 PUSH2 0x4B0D JUMP JUMPDEST SWAP1 POP PUSH2 0x5641 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x535A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x565C DUP3 DUP9 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x566E DUP2 DUP8 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x567D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4DD0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x568F DUP2 DUP6 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3A5B DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x56B2 JUMPI PUSH2 0x56B2 PUSH2 0x5427 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20616D6F756E745344206F766572666C6F77000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x56B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0xF8 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3EEA PUSH1 0xFF DUP3 AND PUSH2 0x56FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2C DUP3 PUSH1 0xC0 SHL SWAP1 JUMP JUMPDEST PUSH2 0x3EEA PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH2 0x5713 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x573D DUP3 DUP7 PUSH2 0x5707 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x574D DUP3 DUP6 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x575D DUP3 DUP5 PUSH2 0x571F JUMP JUMPDEST POP PUSH1 0x8 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5768 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x57A3 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x57E8 DUP3 DUP7 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST DUP1 MLOAD PUSH2 0xF2C DUP2 PUSH2 0x4050 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5815 JUMPI PUSH2 0x5815 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2329 DUP5 DUP5 PUSH2 0x57F5 JUMP JUMPDEST PUSH1 0x2A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E DUP2 MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5821 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x746F55696E74385F6F75744F66426F756E6473 PUSH1 0x68 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5878 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x58C1 DUP3 DUP12 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x58D3 DUP2 DUP11 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x58E2 PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x4DD0 JUMP JUMPDEST PUSH2 0x58EF PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH2 0x58FC PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x5909 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3FE2 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x591B DUP2 DUP6 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x592A PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3FE2 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x5948 DUP2 DUP7 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x4B00 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4DD0 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A206D696E4761734C696D6974206E6F7420736574000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5957 JUMP JUMPDEST PUSH1 0x1B DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20676173206C696D697420697320746F6F206C6F770000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x599B JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x50726F78794F46543A206F776E6572206973206E6F742073656E642063616C6C DUP2 MSTORE PUSH2 0x32B9 PUSH1 0xF1 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x59DF JUMP JUMPDEST PUSH1 0x30 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A2064657374696E6174696F6E20636861696E206973206E6F7420 DUP2 MSTORE PUSH16 0x61207472757374656420736F75726365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5A2E JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x5A99 DUP3 DUP10 PUSH2 0x4A12 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x5AAB DUP2 DUP9 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x5ABF DUP2 DUP8 PUSH2 0x446C JUMP JUMPDEST SWAP1 POP PUSH2 0x5ACE PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x462C JUMP JUMPDEST PUSH2 0x5ADB PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x462C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4044 DUP2 DUP5 PUSH2 0x446C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AF9 DUP3 DUP10 PUSH2 0x5707 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x5B09 DUP3 DUP9 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x5B19 DUP3 DUP8 PUSH2 0x571F JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x5B29 DUP3 DUP7 PUSH2 0x3FE2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x5B39 DUP3 DUP6 PUSH2 0x571F JUMP JUMPDEST PUSH1 0x8 DUP3 ADD SWAP2 POP PUSH2 0x4044 DUP3 DUP5 PUSH2 0x4DA2 JUMP JUMPDEST PUSH1 0x18 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F4654436F72653A20696E76616C6964207061796C6F61640000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5B49 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4C7A4170703A20696E76616C69642061646170746572506172616D7300000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5B8D JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x53696E676C65205472616E73616374696F6E204C696D69742045786365656400 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5BD1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4461696C79205472616E73616374696F6E204C696D6974204578636565640000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C15 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4C7A4170703A207061796C6F61642073697A6520697320746F6F206C61726765 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C59 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F DUP2 MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x49FB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5C9B JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F416464726573735F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5CEE JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x746F55696E7436345F6F75744F66426F756E6473 PUSH1 0x60 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5D2A JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH21 0x746F427974657333325F6F75744F66426F756E6473 PUSH1 0x58 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5D65 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE SWAP2 POP PUSH2 0x4949 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xF2C DUP2 PUSH2 0x5DA1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 PUSH2 0x2B31 PUSH24 0x36C92C076D6E6DF96AC6A17602E56C4594D806668A81DAA9 0xCA 0xD3 0xC6 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"651:5010:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:825:2;;;;;;;;;;-1:-1:-1;1256:825:2;;;;;:::i;:::-;;:::i;:::-;;1644:211:9;;;;;;;;;;-1:-1:-1;1644:211:9;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4791:121:2;;;;;;;;;;-1:-1:-1;4791:121:2;;;;;:::i;:::-;;:::i;6649:140::-;;;;;;;;;;-1:-1:-1;6649:140:2;;;;;:::i;:::-;;:::i;4918:127::-;;;;;;;;;;-1:-1:-1;4918:127:2;;;;;:::i;:::-;;:::i;13980:1559:42:-;;;;;;;;;;-1:-1:-1;13980:1559:42;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;8423:334::-;;;;;;;;;;-1:-1:-1;8423:334:42;;;;;:::i;:::-;;:::i;12256:181::-;;;;;;;;;;-1:-1:-1;12256:181:42;;;;;:::i;:::-;;:::i;1861:336:9:-;;;;;;;;;;-1:-1:-1;1861:336:9;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2830:63:42:-;;;;;;;;;;-1:-1:-1;2830:63:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;6884:247:2:-;;;;;;;;;;-1:-1:-1;6884:247:2;;;;;:::i;:::-;;:::i;810:53::-;;;;;;;;;;-1:-1:-1;810:53:2;;;;;:::i;:::-;;;;;;;;;;;;;;11036:65:42;;;;;;;;;;;;;:::i;5051:176:2:-;;;;;;;;;;-1:-1:-1;5051:176:2;;;;;:::i;:::-;;:::i;366:37:10:-;;;;;;;;;;;;402:1;366:37;;1962:347:45;;;;;;;;;;-1:-1:-1;1962:347:45;;;;;:::i;:::-;;:::i;2665:433::-;;;;;;;;;;-1:-1:-1;2665:433:45;;;;;:::i;:::-;;:::i;429:33:10:-;;;;;;;;;;;;461:1;429:33;;;;;;;;;:::i;2255:64:42:-;;;;;;;;;;-1:-1:-1;2255:64:42;;;;;:::i;:::-;;;;;;;;;;;;;;12645:163;;;;;;;;;;-1:-1:-1;12645:163:42;;;;;:::i;:::-;;:::i;2063:56::-;;;;;;;;;;-1:-1:-1;2063:56:42;;;;;:::i;:::-;;;;;;;;;;;;;;7728:370;;;;;;;;;;-1:-1:-1;7728:370:42;;;;;:::i;:::-;;:::i;10611:147::-;;;;;;;;;;-1:-1:-1;10611:147:42;;;;;:::i;:::-;;:::i;622:85:3:-;;;;;;;;;;-1:-1:-1;622:85:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:84:22;;;;;;;;;;-1:-1:-1;1662:4:22;1685:7;;;1615:84;;11607:352:42;;;;;;;;;;-1:-1:-1;11607:352:42;;;;;:::i;:::-;;:::i;1955:380:3:-;;;;;;;;;;-1:-1:-1;1955:380:3;;;;;:::i;:::-;;:::i;532:348:9:-;;;;;;:::i;:::-;;:::i;9894:411:42:-;;;;;;;;;;-1:-1:-1;9894:411:42;;;;;:::i;:::-;;:::i;17771:47::-;;;;;;;;;682:51:2;;;;;;;;;;-1:-1:-1;682:51:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16512:441:42:-;;;;;;:::i;:::-;;:::i;7166:235::-;;;;;;;;;;-1:-1:-1;7166:235:42;;;;;:::i;:::-;;:::i;1707:38::-;;;;;;;;;;-1:-1:-1;1707:38:42;;;;;;;-1:-1:-1;;;;;1707:38:42;;;;;;;;;;:::i;10867:61::-;;;;;;;;;;;;;:::i;3457:251:45:-;;;;;;;;;;-1:-1:-1;3457:251:45;;;;;:::i;:::-;;:::i;517:37:10:-;;;;;;;;;;;;;;;739:65:2;;;;;;;;;;-1:-1:-1;739:65:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1201:85:21;;;;;;;;;;-1:-1:-1;1247:7:21;1273:6;;;;-1:-1:-1;;;;;1273:6:21;1201:85;;;;;;;:::i;2620:75:42:-;;;;;;;;;;-1:-1:-1;2620:75:42;;;;;:::i;:::-;;;;;;;;;;;;;;3936:133:45;;;;;;;;;;;;;:::i;2421:64:42:-;;;;;;;;;;-1:-1:-1;2421:64:42;;;;;:::i;:::-;;;;;;;;;;;;;;869:23:2;;;;;;;;;;-1:-1:-1;869:23:2;;;;-1:-1:-1;;;;;869:23:2;;;829:29:45;;;;;;;;;;;;;;;;3368:41:42;;;;;;;;;;-1:-1:-1;3368:41:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;561:83:10;;;;;;;;;;-1:-1:-1;561:83:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:326:2;;;;;;;;;;-1:-1:-1;5864:326:2;;;;;:::i;:::-;;:::i;2203:440:9:-;;;;;;;;;;-1:-1:-1;2203:440:9;;;;;:::i;:::-;;:::i;5580:278:2:-;;;;;;;;;;-1:-1:-1;5580:278:2;;;;;:::i;:::-;;:::i;630:46::-;;;;;;;;;;;;;;;6196:133;;;;;;;;;;-1:-1:-1;6196:133:2;;;;;:::i;:::-;;:::i;1573:30:42:-;;;;;;;;;;-1:-1:-1;1573:30:42;;;;;;;;568:55:2;;;;;;;;;;;;618:5;568:55;;4545:240;;;;;;;;;;-1:-1:-1;4545:240:2;;;;;:::i;:::-;;:::i;9122:413:42:-;;;;;;;;;;-1:-1:-1;9122:413:42;;;;;:::i;:::-;;:::i;1871:68::-;;;;;;;;;;-1:-1:-1;1871:68:42;;;;;:::i;:::-;;;;;;;;;;;;;;16959:705;;;;;;:::i;:::-;;:::i;3034:61::-;;;;;;;;;;-1:-1:-1;3034:61:42;;;;;:::i;:::-;;;;;;;;;;;;;;6335:255:2;;;;;;;;;;-1:-1:-1;6335:255:2;;;;;:::i;:::-;;:::i;468:42:10:-;;;;;;;;;;;;509:1;468:42;;1739:625;;;;;;;;;;-1:-1:-1;1739:625:10;;;;;:::i;:::-;;:::i;5370:204:2:-;;;;;;;;;;-1:-1:-1;5370:204:2;;;;;:::i;:::-;;:::i;2074:198:21:-;;;;;;;;;;-1:-1:-1;2074:198:21;;;;;:::i;:::-;;:::i;4239:247:2:-;;;;;;;;;;-1:-1:-1;4239:247:2;;;;;:::i;:::-;;:::i;17969:99:42:-;;;;;;;;;;-1:-1:-1;18050:10:42;17969:99;;3198:71;;;;;;;;;;-1:-1:-1;3198:71:42;;;;;:::i;:::-;;;;;;;;;;;;;;1256:825:2;719:10:29;1532::2;-1:-1:-1;;;;;1508:35:2;;1500:78;;;;-1:-1:-1;;;1500:78:2;;;;;;;:::i;:::-;;;;;;;;;1618:32;;;1589:26;1618:32;;;:19;:32;;;;;1589:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1835:13;:20;1813:11;;:18;;:42;:70;;;;;1882:1;1859:13;:20;:24;1813:70;:124;;;;-1:-1:-1;1913:24:2;;;;;;1887:22;;;;1897:11;;;;1887:22;:::i;:::-;;;;;;;;:50;1813:124;1792:209;;;;-1:-1:-1;;;1792:209:2;;;;;;;:::i;:::-;2012:62;2031:11;2044;;2012:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2012:62:2;;;;;;;;;;;;;;;;;;;;;;2057:6;;-1:-1:-1;2012:62:2;-1:-1:-1;2065:8:2;;;;;;2012:62;;2065:8;;;;2012:62;;;;;;;;;-1:-1:-1;2012:18:2;;-1:-1:-1;;;2012:62:2:i;:::-;1425:656;1256:825;;;;;;:::o;1644:211:9:-;1746:4;-1:-1:-1;;;;;;1769:39:9;;-1:-1:-1;;;1769:39:9;;:79;;-1:-1:-1;;;;;;;;;;937:40:31;;;1812:36:9;1762:86;1644:211;-1:-1:-1;;1644:211:9:o;4791:121:2:-;1094:13:21;:11;:13::i;:::-;4870:35:2::1;::::0;-1:-1:-1;;;4870:35:2;;-1:-1:-1;;;;;4870:10:2::1;:25;::::0;::::1;::::0;:35:::1;::::0;4896:8;;4870:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4791:121:::0;:::o;6649:140::-;1094:13:21;:11;:13::i;:::-;6739:35:2::1;::::0;;::::1;;::::0;;;:22:::1;:35;::::0;;;;:43;6649:140::o;4918:127::-;1094:13:21;:11;:13::i;:::-;5000:38:2::1;::::0;-1:-1:-1;;;5000:38:2;;-1:-1:-1;;;;;5000:10:2::1;:28;::::0;::::1;::::0;:38:::1;::::0;5029:8;;5000:38:::1;;;:::i;13980:1559:42:-:0;-1:-1:-1;;;;;14503:16:42;;;14148:19;14503:16;;;:9;:16;;;;;;;;;14617:43;;;;;;;;;14633:6;;-1:-1:-1;;;14633:24:42;;;14148:19;;;;;;;;;;;;14503:16;;;14148:19;;14617:43;;;;14503:16;14633:6;;;:15;:24;18050:10;14633:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14617:43;;14592:68;-1:-1:-1;14684:40:42;14592:68;14716:7;14684:18;:40::i;:::-;14869:43;;;14788:29;14869:43;;;:30;:43;;;;;;;;;14944:30;:43;;;;;;15025:34;:47;;;;;;15098:22;:35;;;;;;;;15025:47;;-1:-1:-1;15098:35:42;;-1:-1:-1;14670:54:42;;-1:-1:-1;14944:43:42;;-1:-1:-1;14869:43:42;-1:-1:-1;14820:15:42;15195:6;15147:45;14869:43;14820:15;15147:45;:::i;:::-;:54;15143:242;;;15239:11;15217:33;;15288:21;15264:45;;15143:242;;;15340:34;15363:11;15340:34;;:::i;:::-;;;15143:242;15412:17;:119;;;;15462:25;15447:11;:40;;15446:84;;;;;15516:13;15493:19;:36;;15446:84;15394:138;;14417:1122;;13980:1559;;;;;;;;;;;:::o;8423:334::-;1094:13:21;:11;:13::i;:::-;8529:44:42::1;::::0;::::1;;::::0;;;:34:::1;:44;::::0;;;;;8519:54;::::1;;8511:105;;;;-1:-1:-1::0;;;8511:105:42::1;;;;;;;:::i;:::-;8658:32;::::0;::::1;;::::0;;;:22:::1;:32;::::0;;;;;;;8631:68;;::::1;::::0;::::1;::::0;8648:8;;8658:32;8692:6;;8631:68:::1;:::i;:::-;;;;;;;;8709:32;::::0;;::::1;;::::0;;;:22:::1;:32;::::0;;;;:41;8423:334::o;12256:181::-;1094:13:21;:11;:13::i;:::-;12344:35:42::1;::::0;::::1;;::::0;;;:19:::1;:35;::::0;;;;12337:42:::1;::::0;::::1;:::i;:::-;12394:36;12415:14;12394:36;;;;;;:::i;:::-;;;;;;;;12256:181:::0;:::o;1861:336:9:-;2069:14;2085:11;2115:75;2132:11;2145:10;2157:7;2166;2175:14;;2115:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2115:16:9;;-1:-1:-1;;;2115:75:9:i;:::-;2108:82;;;;1861:336;;;;;;;;;:::o;6884:247:2:-;7025:32;;;6980:4;7025:32;;;:19;:32;;;;;6996:61;;6980:4;;7025:32;6996:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7112:11;;7102:22;;;;;;;:::i;:::-;;;;;;;;7084:13;7074:24;;;;;;:50;7067:57;;;6884:247;;;;;;:::o;11036:65:42:-;1094:13:21;:11;:13::i;:::-;11084:10:42::1;:8;:10::i;:::-;11036:65::o:0;5051:176:2:-;1094:13:21;:11;:13::i;:::-;5165:55:2::1;::::0;-1:-1:-1;;;5165:55:2;;-1:-1:-1;;;;;5165:10:2::1;:29;::::0;::::1;::::0;:55:::1;::::0;5195:11;;5208;;;;5165:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;1962:347:45::0;1094:13:21;:11;:13::i;:::-;2073:7:45::1;2055:14;;:25;;2047:89;;;;-1:-1:-1::0;;;2047:89:45::1;;;;;;;:::i;:::-;2170:14;:25:::0;;;;::::1;::::0;;2215:42:::1;2237:4;2244:3:::0;2188:7;2215:13:::1;:42::i;:::-;;2289:3;-1:-1:-1::0;;;;;2272:30:45::1;;2294:7;2272:30;;;;;;:::i;:::-;;;;;;;;1962:347:::0;;:::o;2665:433::-;1094:13:21;:11;:13::i;:::-;2757:20:45::1;2783;2795:7;2783:11;:20::i;:::-;2756:47;;;2832:12;2814:14;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;2854:11:45::1;::::0;-1:-1:-1;2868:24:45::1;-1:-1:-1::0;;;;;2868:6:45::1;:24::i;:::-;2854:38;;2917:14;;2910:3;:21;;2902:67;;;;-1:-1:-1::0;;;2902:67:45::1;;;;;;;:::i;:::-;2980:54;2994:10;3014:4;3021:12;2980:13;:54::i;:::-;;3066:10;-1:-1:-1::0;;;;;3050:41:45::1;;3078:12;3050:41;;;;;;:::i;:::-;;;;;;;;2746:352;;2665:433:::0;;:::o;12645:163:42:-;1094:13:21;:11;:13::i;:::-;12723:18:42::1;:29:::0;;-1:-1:-1;;12723:29:42::1;::::0;::::1;;::::0;;::::1;::::0;;;12767:34:::1;::::0;::::1;::::0;-1:-1:-1;;12767:34:42::1;12645:163:::0;:::o;7728:370::-;1094:13:21;:11;:13::i;:::-;7846:32:42::1;::::0;::::1;;::::0;;;:22:::1;:32;::::0;;;;;7836:42;::::1;;7828:93;;;;-1:-1:-1::0;;;7828:93:42::1;;;;;;;:::i;:::-;7975:44;::::0;::::1;;::::0;;;:34:::1;:44;::::0;;;;;;;7936:92;;::::1;::::0;::::1;::::0;7965:8;;7975:44;8021:6;;7936:92:::1;:::i;:::-;;;;;;;;8038:44;::::0;;::::1;;::::0;;;:34:::1;:44;::::0;;;;:53;7728:370::o;10611:147::-;1094:13:21;:11;:13::i;:::-;10706:5:42::1;-1:-1:-1::0;;;;;10693:25:42::1;;10713:4;10693:25;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;10728:16:42;;;::::1;;::::0;;;:9:::1;:16;::::0;;;;:23;;-1:-1:-1;;10728:23:42::1;::::0;::::1;;::::0;;;::::1;::::0;;10611:147::o;11607:352::-;1094:13:21;:11;:13::i;:::-;11719:31:42::1;::::0;-1:-1:-1;;;11719:31:42;;11701:15:::1;::::0;-1:-1:-1;;;;;11719:16:42;::::1;::::0;::::1;::::0;:31:::1;::::0;11744:4:::1;::::0;11719:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11701:49;;11774:7;11764;:17;11760:92;;;11824:7;11833;11804:37;;-1:-1:-1::0;;;11804:37:42::1;;;;;;;;;:::i;11760:92::-;11895:3;-1:-1:-1::0;;;;;11867:41:42::1;11886:6;-1:-1:-1::0;;;;;11867:41:42::1;;11900:7;11867:41;;;;;;:::i;:::-;;;;;;;;11919:33;-1:-1:-1::0;;;;;11919:19:42;::::1;11939:3:::0;11944:7;11919:19:::1;:33::i;:::-;11691:268;11607:352:::0;;;:::o;1955:380:3:-;719:10:29;2205:4:3;2181:29;2173:80;;;;-1:-1:-1;;;2173:80:3;;;;;;;:::i;:::-;2263:65;2285:11;2298;;2263:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2263:65:3;;;;;;;;;;;;;;;;;;;;;;2311:6;;-1:-1:-1;2263:65:3;-1:-1:-1;2319:8:3;;;;;;2263:65;;2319:8;;;;2263:65;;;;;;;;;-1:-1:-1;2263:21:3;;-1:-1:-1;;;2263:65:3:i;:::-;1955:380;;;;;;:::o;532:348:9:-;742:131;748:5;755:11;768:10;780:7;789:25;;;;:11;:25;:::i;:::-;816:29;;;;;;;;:::i;:::-;847:25;;;;:11;:25;:::i;:::-;742:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;742:5:9;;-1:-1:-1;;;742:131:9:i;9894:411:42:-;1094:13:21;:11;:13::i;:::-;10020:51:42::1;::::0;::::1;;::::0;;;:41:::1;:51;::::0;;;;;10010:61;::::1;;9989:154;;;;-1:-1:-1::0;;;9989:154:42::1;;;;;;;:::i;:::-;10192:39;::::0;::::1;;::::0;;;:29:::1;:39;::::0;;;;;;;10158:82;;::::1;::::0;::::1;::::0;10182:8;;10192:39;10233:6;;10158:82:::1;:::i;:::-;;;;;;;;10250:39;::::0;;::::1;;::::0;;;:29:::1;:39;::::0;;;;:48;9894:411::o;682:51:2:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16512:441:42:-;16792:18;;;;16784:54;;;;-1:-1:-1;;;16784:54:42;;;;;;;:::i;:::-;16849:97;16867:5;16874:11;16887:10;16899:7;16908:8;;16918:14;16934:11;16849:17;:97::i;:::-;16512:441;;;;;;;;:::o;7166:235::-;1094:13:21;:11;:13::i;:::-;7238:36:42::1;7259:14;7238:20;:36::i;:::-;7311:6;::::0;7289:46:::1;::::0;-1:-1:-1;;;;;7289:46:42;;::::1;::::0;7311:6:::1;::::0;::::1;;::::0;7289:46:::1;::::0;;;::::1;7345:6;:49:::0;;-1:-1:-1;;;;;7345:49:42;;::::1;;;-1:-1:-1::0;;;;;;7345:49:42;;::::1;::::0;;;::::1;::::0;;7166:235::o;10867:61::-;1094:13:21;:11;:13::i;:::-;10913:8:42::1;:6;:8::i;3457:251:45:-:0;1094:13:21;:11;:13::i;:::-;3574:27:45::1;::::0;::::1;3633:1;3574:27:::0;;;:14:::1;:27;::::0;;;;;:40;;::::1;::::0;3602:11;;3574:40:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;;;-1:-1:-1;;;;;3574:48:45;::::1;;::::0;;;;;;:61;;;;3650:51:::1;::::0;3681:11;;3650:51:::1;:::i;:::-;;;;;;;;;3668:11;3694:6;3650:51;;;;;;;:::i;:::-;;;;;;;;3457:251:::0;;;:::o;3936:133::-;3995:7;4048:14;;4021:10;-1:-1:-1;;;;;4021:22:45;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;;:::i;:::-;4014:48;;3936:133;:::o;5864:326:2:-;5987:35;;;5967:17;5987:35;;;:19;:35;;;;;5967:55;;5943:12;;5967:17;5987:35;5967:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:4;:11;6055:1;6040:16;6032:58;;;;-1:-1:-1;;;6032:58:2;;;;;;;:::i;:::-;6107:31;6118:1;6135:2;6121:4;:11;:16;;;;:::i;:::-;6107:4;;:31;:10;:31::i;2203:440:9:-;2482:14;2498:11;2528:108;2552:11;2565:10;2577:7;2586:8;;2528:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2528:108:9;;;;;;;;;;;;;;;;;;;;;;2596:14;;-1:-1:-1;2612:7:9;;-1:-1:-1;2528:108:9;2621:14;;;;;;2528:108;;2621:14;;;;2528:108;;;;;;;;;-1:-1:-1;2528:23:9;;-1:-1:-1;;;2528:108:9:i;:::-;2521:115;;;;2203:440;;;;;;;;;;;;:::o;5580:278:2:-;1094:13:21;:11;:13::i;:::-;5751:14:2::1;;5775:4;5734:47;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;5734:47:2;;::::1;::::0;;;;;;5696:35:::1;::::0;::::1;;::::0;;;:19:::1;5734:47;5696:35:::0;;;:85:::1;::::0;:35;:85:::1;:::i;:::-;;5796:55;5820:14;5836;;5796:55;;;;;;;;:::i;:::-;;;;;;;;5580:278:::0;;;:::o;6196:133::-;1094:13:21;:11;:13::i;:::-;6265:8:2::1;:20:::0;;-1:-1:-1;;;;;;6265:20:2::1;-1:-1:-1::0;;;;;6265:20:2;::::1;;::::0;;6300:22:::1;::::0;::::1;::::0;::::1;::::0;6265:20;;6300:22:::1;:::i;4545:240::-:0;1094:13:21;:11;:13::i;:::-;4716:62:2::1;::::0;-1:-1:-1;;;4716:62:2;;-1:-1:-1;;;;;4716:10:2::1;:20;::::0;::::1;::::0;:62:::1;::::0;4737:8;;4747;;4757:11;;4770:7;;;;4716:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4545:240:::0;;;;;:::o;9122:413:42:-;1094:13:21;:11;:13::i;:::-;9247:39:42::1;::::0;::::1;;::::0;;;:29:::1;:39;::::0;;;;;9237:49;::::1;;9229:108;;;;-1:-1:-1::0;;;9229:108:42::1;;;;;;;:::i;:::-;9398:51;::::0;::::1;;::::0;;;:41:::1;:51;::::0;;;;;;;9352:106;;::::1;::::0;::::1;::::0;9388:8;;9398:51;9451:6;;9352:106:::1;:::i;:::-;;;;;;;;9468:51;::::0;;::::1;;::::0;;;:41:::1;:51;::::0;;;;:60;9122:413::o;16959:705::-;17170:32;;;17141:26;17170:32;;;:19;:32;;;;;17141:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17387:13;:20;17365:11;;:18;;:42;:86;;;;;17450:1;17427:13;:20;:24;17365:86;:156;;;;-1:-1:-1;17497:24:42;;;;;;17471:22;;;;17481:11;;;;17471:22;:::i;:::-;;;;;;;;:50;17365:156;17344:241;;;;-1:-1:-1;;;17344:241:42;;;;;;;:::i;:::-;17595:62;17614:11;17627;;17640:6;17648:8;;17595:18;:62::i;6335:255:2:-;1094:13:21;:11;:13::i;:::-;6470:28:2::1;::::0;;::::1;;::::0;;;:15:::1;:28;::::0;;;;;;;:41;;::::1;::::0;;;;;;;;:51;;;6536:47;::::1;::::0;::::1;::::0;6486:11;;6499;;6514:7;;6536:47:::1;:::i;1739:625:10:-:0;719:10:29;2041:4:10;2017:29;2009:73;;;;-1:-1:-1;;;2009:73:10;;;;;;;:::i;:::-;2119:42;2141:4;2148:3;2153:7;2119:13;:42::i;:::-;2109:52;;2206:3;-1:-1:-1;;;;;2176:43:10;2193:11;2176:43;;;2211:7;2176:43;;;;;;:::i;:::-;;;;;;;;2246:111;;-1:-1:-1;;;2246:111:10;;-1:-1:-1;;;;;2246:33:10;;;;;2285:11;;2246:111;;2298:11;;2311;;;;2324:6;;2332:5;;2339:7;;2348:8;;;;2246:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1739:625;;;;;;;;;;:::o;5370:204:2:-;1094:13:21;:11;:13::i;:::-;5470:35:2::1;::::0;::::1;;::::0;;;:19:::1;:35;::::0;;;;:43:::1;5508:5:::0;;5470:35;:43:::1;:::i;:::-;;5528:39;5545:14;5561:5;;5528:39;;;;;;;;:::i;2074:198:21:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:21;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:21::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;4239:247:2:-;4411:68;;-1:-1:-1;;;4411:68:2;;4380:12;;-1:-1:-1;;;;;4411:10:2;:20;;;;:68;;4432:8;;4442;;4460:4;;4467:11;;4411:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4411:68:2;;;;;;;;;;;;:::i;:::-;4404:75;;4239:247;;;;;;;:::o;985:592:3:-;1172:12;1186:19;1209:199;1256:9;1279:3;1319:34;;;1355:11;1368;1381:6;1389:8;1296:102;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1296:102:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1296:102:3;-1:-1:-1;;;;;;1296:102:3;;;;;;;;;;1217:4;;1209:199;;:33;:199::i;:::-;1171:237;;;;1466:7;1461:110;;1489:71;1509:11;1522;1535:6;1543:8;1553:6;1489:19;:71::i;1359:130:21:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:21;;;;;719:10:29;1422:23:21;1414:68;;;;-1:-1:-1;;;1414:68:21;;;;;;;:::i;1369:177:39:-;1450:7;1469:18;1490:15;1495:1;1498:6;1490:4;:15::i;:::-;1469:36;;1522:17;1531:7;1522:8;:17::i;2553:461:10:-;2753:14;2769:11;2835:20;2858:47;2877:10;2889:15;2896:7;2889:6;:15::i;:::-;2858:18;:47::i;:::-;2922:85;;-1:-1:-1;;;2922:85:10;;2835:70;;-1:-1:-1;;;;;;2922:10:10;:23;;;;:85;;2946:11;;2967:4;;2835:70;;2983:7;;2992:14;;2922:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2915:92;;;;;2553:461;;;;;;;;:::o;2433:117:22:-;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;-1:-1:-1;;2491:15:22::1;::::0;;2521:22:::1;719:10:29::0;2530:12:22::1;2521:22;;;;;;:::i;:::-;;;;;;;;2433:117::o:0;22660:436:42:-;22799:7;1239:19:22;:17;:19::i;:::-;22835:25:42::1;::::0;-1:-1:-1;;;22835:25:42;;22818:14:::1;::::0;-1:-1:-1;;;;;22835:10:42::1;:20;::::0;::::1;::::0;:25:::1;::::0;22856:3;;22835:25:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22818:42:::0;-1:-1:-1;22891:4:42::1;-1:-1:-1::0;;;;;22874:22:42;::::1;::::0;22870:169:::1;;22912:37;-1:-1:-1::0;;;;;22912:10:42::1;:23;22936:3:::0;22941:7;22912:23:::1;:37::i;:::-;22870:169;;;22980:48;-1:-1:-1::0;;;;;22980:10:42::1;:27;23008:5:::0;23015:3;23020:7;22980:27:::1;:48::i;:::-;23055:25;::::0;-1:-1:-1;;;23055:25:42;;23083:6;;-1:-1:-1;;;;;23055:10:42::1;:20;::::0;::::1;::::0;:25:::1;::::0;23076:3;;23055:25:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;;:::i;:::-;23048:41:::0;22660:436;-1:-1:-1;;;;;22660:436:42:o;8755:179:10:-;8821:16;;8867:22;23323:9:42;8867:7:10;:22;:::i;:::-;8860:29;-1:-1:-1;8913:14:10;8860:29;8913:7;:14;:::i;:::-;8899:28;;8755:179;;;:::o;8630:119::-;8695:4;8718:24;23323:9:42;-1:-1:-1;;;;;8718:24:10;;;:::i;941:175:27:-;1023:86;1043:5;1073:23;;;1098:2;1102:5;1050:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1050:58:27;;;;;;;;;;;;;;-1:-1:-1;;;;;1050:58:27;-1:-1:-1;;;;;;1050:58:27;;;;;;;;;;1023:19;:86::i;:::-;941:175;;;:::o;3604:543:10:-;3793:16;3812:19;:8;3793:16;3812;:19::i;:::-;3793:38;-1:-1:-1;3846:21:10;;;3842:299;;3883:52;3892:11;3905;3918:6;3926:8;3883;:52::i;:::-;3842:299;;;-1:-1:-1;;3956:30:10;;;;3952:189;;4002:59;4018:11;4031;4044:6;4052:8;4002:15;:59::i;3952:189::-;4092:38;;-1:-1:-1;;;4092:38:10;;;;;;;:::i;4153:821::-;4414:11;4437:66;4452:11;4414;4474:14;4414:11;4437:14;:66::i;:::-;4527:20;4539:7;4527:11;:20::i;:::-;-1:-1:-1;4514:33:10;-1:-1:-1;4566:50:10;4577:5;4584:11;4597:10;4514:33;4566:10;:50::i;:::-;4557:59;;4683:1;4674:6;:10;4666:48;;;;-1:-1:-1;;;4666:48:10;;;;;;;:::i;:::-;4725:22;4750:46;4769:10;4781:14;4788:6;4781;:14::i;4750:46::-;4725:71;;4806:94;4814:11;4827:9;4838:14;4854:18;4874:14;4890:9;4806:7;:94::i;:::-;4948:10;4941:5;-1:-1:-1;;;;;4916:51:10;4928:11;4916:51;;;4960:6;4916:51;;;;;;:::i;:::-;;;;;;;;4427:547;4153:821;;;;;;;;;:::o;886:566:9:-;1163:282;1189:5;1208:11;1233:10;1257:7;1278:8;;1163:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1300:14:9;;-1:-1:-1;1328:25:9;;-1:-1:-1;;1328:25:9;;;:11;:25;:::i;:::-;1367:29;;;;;;;;:::i;:::-;1410:25;;;;:11;:25;:::i;:::-;1163:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1163:12:9;;-1:-1:-1;;;1163:282:9:i;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;2186:115:22;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;2245:14:22::1;2255:4;2245:14;::::0;;2274:20:::1;2281:12;719:10:29::0;;640:96;9258:2770:0;9374:12;9422:7;9406:12;9422:7;9416:2;9406:12;:::i;:::-;:23;;9398:50;;;;-1:-1:-1;;;9398:50:0;;;;;;;:::i;:::-;9483:16;9492:7;9483:6;:16;:::i;:::-;9466:6;:13;:33;;9458:63;;;;-1:-1:-1;;;9458:63:0;;;;;;;:::i;:::-;9532:22;9595:15;;9623:1967;;;;11731:4;11725:11;11712:24;;11917:1;11906:9;11899:20;11965:4;11954:9;11950:20;11944:4;11937:34;9588:2397;;9623:1967;9805:4;9799:11;9786:24;;10464:2;10455:7;10451:16;10846:9;10839:17;10833:4;10829:28;10817:9;10806;10802:25;10798:60;10894:7;10890:2;10886:16;11146:6;11132:9;11125:17;11119:4;11115:28;11103:9;11095:6;11091:22;11087:57;11083:70;10920:425;11179:3;11175:2;11172:11;10920:425;;;11317:9;;11306:21;;11220:4;11212:13;;;;11252;10920:425;;;-1:-1:-1;;11363:26:0;;;11571:2;11554:11;-1:-1:-1;;11550:25:0;11544:4;11537:39;-1:-1:-1;9588:2397:0;-1:-1:-1;12012:9:0;9258:2770;-1:-1:-1;;;;9258:2770:0:o;3020:578:10:-;3289:14;3305:11;3374:20;3397:92;3423:10;3435;3447:15;3454:7;3447:6;:15::i;:::-;3464:8;3474:14;3397:25;:92::i;:::-;3506:85;;-1:-1:-1;;;3506:85:10;;3374:115;;-1:-1:-1;;;;;;3506:10:10;:23;;;;:85;;3530:11;;3551:4;;3374:115;;3567:7;;3576:14;;3506:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3499:92;;;;;3020:578;;;;;;;;;;:::o;2554:795:3:-;2801:27;;;2779:19;2801:27;;;:14;:27;;;;;;:40;;;;2829:11;;;;2801:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2801:48:3;;;;;;;;;;;;-1:-1:-1;2801:48:3;2859:73;;;;-1:-1:-1;;;2859:73:3;;;;;;;:::i;:::-;2973:11;2960:8;;2950:19;;;;;;;:::i;:::-;;;;;;;;:34;2942:80;;;;-1:-1:-1;;;2942:80:3;;;;;;;:::i;:::-;3068:27;;;3127:1;3068:27;;;:14;:27;;;;;;:40;;;;3096:11;;;;3068:40;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3068:48:3;;;;;;;;;;;;:61;;;;3196:65;;;;;;;;;;;;;;;;;;;3218:11;;3231;;3196:65;;;;;;3231:11;3196:65;;3231:11;3196:65;;;;;;;;;-1:-1:-1;;3196:65:3;;;;;;;;;;;;;;;;;;;;;;3244:6;;-1:-1:-1;3196:65:3;-1:-1:-1;3252:8:3;;;;;;3196:65;;3252:8;;;;3196:65;;;;;;;;;-1:-1:-1;3196:21:3;;-1:-1:-1;;;3196:65:3:i;:::-;3276:66;3296:11;3309;;3322:6;3330:11;3276:66;;;;;;;;;;:::i;:::-;;;;;;;;2725:624;2554:795;;;;;;:::o;2426:187:21:-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;2518:6;2534:17;;;-1:-1:-1;;;;;;2534:17:21;;;;;2566:40;;2518:6;;;;;;;2534:17;;2518:6;;2566:40;;;2489:124;2426:187;:::o;1111:1274:1:-;1265:4;1271:12;1331;1353:13;1376:24;1413:8;1403:19;;-1:-1:-1;;;;;1403:19:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:19:1;;1376:46;;1919:1;1890;1853:9;1847:16;1815:4;1804:9;1800:20;1766:1;1728:7;1699:4;1677:267;1665:279;;2011:16;2000:27;;2055:8;2046:7;2043:21;2040:76;;;2094:8;2083:19;;2040:76;2201:7;2188:11;2181:28;2321:7;2318:1;2311:4;2298:11;2294:22;2279:50;2356:8;;;;-1:-1:-1;1111:1274:1;-1:-1:-1;;;;;;1111:1274:1:o;1583:366:3:-;1852:8;1842:19;;;;;;1791:14;:27;1806:11;1791:27;;;;;;;;;;;;;;;1819:11;1791:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1791:48:3;;;;;;;;;:70;;;;1876:66;;;;1890:11;;1903;;1832:6;;1924:8;;1934:7;;1876:66;:::i;:::-;;;;;;;;1583:366;;;;;:::o;3551:136:39:-;-1:-1:-1;;;;;;;;;;;;3642:38:39;;;;;;;;3658:19;3663:1;:10;;;3675:1;3658:4;:19::i;:::-;3642:38;;3635:45;3551:136;-1:-1:-1;;;3551:136:39:o;994:214::-;1177:12;;1051:7;;1177:24;;186:4:40;;1177:24:39;:::i;8390:234:10:-;8451:6;;8485:22;23323:9:42;8485:7:10;:22;:::i;:::-;8469:38;-1:-1:-1;;;;;;8525:28:10;;;8517:67;;;;-1:-1:-1;;;8517:67:10;;;;;;;:::i;8940:183::-;9037:12;461:1;9094:10;9106:9;9068:48;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9061:55;;8940:183;;;;:::o;1945:106:22:-;1662:4;1685:7;;;2003:41;;;;-1:-1:-1;;;2003:41:22;;;;;;;:::i;1767:106::-;1662:4;1685:7;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:22;;;;;;;:::i;1355:203:27:-;1455:96;1475:5;1505:27;;;1534:4;1540:2;1544:5;1482:68;;;;;;;;;;:::i;5196:642::-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:27;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:27;;;;;;;:::i;12391:298:0:-;12465:5;12507:10;:6;12516:1;12507:10;:::i;:::-;12490:6;:13;:27;;12482:59;;;;-1:-1:-1;;;12482:59:0;;;;;;;:::i;:::-;-1:-1:-1;12617:29:0;12633:3;12617:29;12611:36;;12391:298::o;4980:442:10:-;5129:10;5141:15;5160:28;5179:8;5160:18;:28::i;:::-;5128:60;;-1:-1:-1;5128:60:10;-1:-1:-1;;;;;;5202:16:10;;5198:67;;5247:6;5234:20;;5198:67;5275:11;5289:16;5296:8;5289:6;:16::i;:::-;5275:30;;5324:34;5334:11;5347:2;5351:6;5324:9;:34::i;:::-;5315:43;;5404:2;-1:-1:-1;;;;;5374:41:10;5391:11;5374:41;;;5408:6;5374:41;;;;;;:::i;:::-;;;;;;;;5118:304;;;4980:442;;;;:::o;6407:1855::-;6582:12;6596:10;6608:15;6625:27;6654:17;6675:35;6701:8;6675:25;:35::i;:::-;6581:129;;;;;;;;;;6721:13;6737:15;:28;6753:11;6737:28;;;;;;;;;;;;;;;6766:11;6737:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6737:49:10;;;;;;;;;;;;;;-1:-1:-1;6810:16:10;6817:8;6810:6;:16::i;:::-;6796:30;;6951:8;6946:164;;6984:45;6994:11;7015:4;7022:6;6984:9;:45::i;:::-;7043:28;;;;;;;:15;:28;;;;;;;:41;;6975:54;;-1:-1:-1;7095:4:10;;7043:41;;7072:11;;7043:41;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7043:49:10;;;;;;;;;;:56;;-1:-1:-1;;7043:56:10;;;;;;;;;;6946:164;-1:-1:-1;;;;;8353:20:10;;;7120:94;;7161:22;7180:2;7161:22;;;;;;:::i;:::-;;;;;;;;7197:7;;;;;;;;;7120:94;7285:11;7332;7368:6;7407:8;7441:4;7469:2;7496:6;7543:14;7265:17;7625:8;:33;;7648:10;-1:-1:-1;;;;;7625:33:10;;;;7636:9;7625:33;7614:44;;7669:12;7683:19;7706:226;7753:9;7776:3;7816:31;;;7849:10;7861;7873:5;7880;7887:3;7892:7;7901:15;7918:3;7793:129;;;;;;;;;;;;;;;:::i;7706:226::-;7668:264;;;;7947:7;7943:313;;;7985:18;;;;;;8022:59;;;;;;;;;;8057:10;;8069:5;;7985:18;;8022:59;:::i;:::-;;;;;;;;7956:136;7943:313;;;8178:67;8198:10;8210;8222:5;8229:7;8238:6;8178:19;:67::i;:::-;6571:1691;;;;;;;;;;;;;;;;;;6407:1855;;;;:::o;3011:453:2:-;3184:21;3208:28;3221:14;3208:12;:28::i;:::-;3265;;;;3246:16;3265:28;;;:15;:28;;;;;;;;:35;;;;;;;;;;3184:52;;-1:-1:-1;3318:15:2;3310:54;;;;-1:-1:-1;;;3310:54:2;;;;;;;:::i;:::-;3402:23;3416:9;3402:11;:23;:::i;:::-;3382:16;:43;;3374:83;;;;-1:-1:-1;;;3374:83:2;;;;;;;:::i;4340:566:45:-;4500:7;1239:19:22;:17;:19::i;:::-;-1:-1:-1;;;;;4527:21:45;::::1;719:10:29::0;4527:21:45::1;4519:68;;;;-1:-1:-1::0;;;4519:68:45::1;;;;;;;:::i;:::-;4597:46;4615:5;4622:11;4635:7;4597:17;:46::i;:::-;4654:14;4671:44;4685:5;4700:4;4707:7;4671:13;:44::i;:::-;4654:61;;4744:6;4726:14;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;4760:11:45::1;::::0;-1:-1:-1;4774:24:45::1;-1:-1:-1::0;;;;;4774:6:45::1;:24::i;:::-;4760:38;;4823:14;;4816:3;:21;;4808:67;;;;-1:-1:-1::0;;;4808:67:45::1;;;;;;;:::i;:::-;-1:-1:-1::0;4893:6:45;4340:566;-1:-1:-1;;;;;4340:566:45:o;2403:602:2:-;2679:32;;;2650:26;2679:32;;;:19;:32;;;;;2650:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2729:13;:20;2753:1;2729:25;2721:86;;;;-1:-1:-1;;;2721:86:2;;;;;;;:::i;:::-;2817:47;2835:11;2848:8;:15;2817:17;:47::i;:::-;2874:124;;-1:-1:-1;;;2874:124:2;;-1:-1:-1;;;;;2874:10:2;:15;;;;2897:10;;2874:124;;2909:11;;2922:13;;2937:8;;2947:14;;2963:18;;2983:14;;2874:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2640:365;2403:602;;;;;;:::o;5428:973:10:-;5758:11;5781:77;5796:11;509:1;5827:14;-1:-1:-1;;;;;5781:77:10;;:14;:77::i;:::-;5882:20;5894:7;5882:11;:20::i;:::-;-1:-1:-1;5869:33:10;-1:-1:-1;5921:50:10;5932:5;5939:11;5952:10;5869:33;5921:10;:50::i;:::-;5912:59;;5998:1;5989:6;:10;5981:48;;;;-1:-1:-1;;;5981:48:10;;;;;;;:::i;:::-;6107:22;6132:91;6158:10;6170;6182:14;6189:6;6182;:14::i;6132:91::-;6107:116;;6233:94;6241:11;6254:9;6265:14;6281:18;6301:14;6317:9;6233:7;:94::i;:::-;6375:10;6368:5;-1:-1:-1;;;;;6343:51:10;6355:11;6343:51;;;6387:6;6343:51;;;;;;:::i;:::-;;;;;;;;5771:630;5428:973;;;;;;;;;;;:::o;9473:358::-;9684:12;509:1;9750:10;9762:9;-1:-1:-1;;;;;10592:23:10;;9799:14;9815:8;9715:109;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9708:116;;9473:358;;;;;;;:::o;4295:97:39:-;4354:7;4380:5;4384:1;4380;:5;:::i;4108:223:28:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;9129:338:10:-;9211:10;;;9258:19;:8;9211:10;9258:16;:19::i;:::-;:30;;;:55;;;;;9292:8;:15;9311:2;9292:21;9258:55;9250:92;;;;-1:-1:-1;;;9250:92:10;;;;;;;:::i;:::-;9358:22;:8;9377:2;9358:18;:22::i;:::-;9353:27;-1:-1:-1;9439:21:10;:8;9457:2;9439:17;:21::i;:::-;9428:32;;9129:338;;;:::o;5178:481:45:-;5325:7;1239:19:22;:17;:19::i;:::-;5344:54:45::1;5365:10;5377:11;5390:7;5344:20;:54::i;:::-;5426:7;5408:14;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5540:4:45::1;-1:-1:-1::0;;;;;5518:27:45;::::1;::::0;5514:72:::1;;-1:-1:-1::0;5568:7:45;5561:14:::1;;5514:72;5603:49;5625:4;5632:10;5644:7;5603:13;:49::i;9837:639:10:-:0;9971:12;;;10050:20;9971:12;509:1;10137:19;:8;9971:12;10137:16;:19::i;:::-;:39;;;10129:76;;;;-1:-1:-1;;;10129:76:10;;;;;;;:::i;:::-;10221:22;:8;10240:2;10221:18;:22::i;:::-;10216:27;-1:-1:-1;10302:21:10;:8;10320:2;10302:17;:21::i;:::-;10291:32;-1:-1:-1;10340:22:10;:8;10359:2;10340:18;:22::i;:::-;10333:29;-1:-1:-1;10388:21:10;:8;10406:2;10388:17;:21::i;:::-;10372:37;;10429:40;10444:2;10466;10448:8;:15;:20;;;;:::i;:::-;10429:8;;:40;:14;:40::i;:::-;10419:50;;9837:639;;;;;;;:::o;3470:266:2:-;3552:13;3610:2;3585:14;:21;:27;;3577:68;;;;-1:-1:-1;;;3577:68:2;;;;;;;:::i;:::-;-1:-1:-1;3716:2:2;3696:23;3690:30;;3470:266::o;18321:1790:42:-;-1:-1:-1;;;;;18500:16:42;;18475:22;18500:16;;;:9;:16;;;;;;;;18589:54;;;;18626:7;18321:1790;;;:::o;18589:54::-;18769:43;;;;;;;;;;18785:6;;-1:-1:-1;;;18785:24:42;;;-1:-1:-1;;;;18769:43:42;;;18785:6;;;-1:-1:-1;;;;;18785:6:42;:15;:24;18050:10;18785:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18769:43;;18744:68;-1:-1:-1;18836:40:42;18744:68;18868:7;18836:18;:40::i;:::-;19026:43;;;18940:29;19026:43;;;:30;:43;;;;;;;;;19109:30;:43;;;;;;19198:34;:47;;;;;;19279:22;:35;;;;;;;;18822:54;;-1:-1:-1;18972:15:42;;19109:43;;19198:47;19402:40;;;;19394:84;;;;-1:-1:-1;;;19394:84:42;;;;;;;:::i;:::-;19619:6;19574:42;19598:18;19574:21;:42;:::i;:::-;:51;19570:261;;;19688:43;;;;;;;:30;:43;;;;;:67;;;19663:11;;-1:-1:-1;19570:261:42;;;19786:34;19809:11;19786:34;;:::i;:::-;;;19570:261;19928:13;19905:19;:36;;19897:79;;;;-1:-1:-1;;;19897:79:42;;;;;;;:::i;:::-;-1:-1:-1;;20039:43:42;;;;;;;;:30;:43;;;;;:65;;;;-1:-1:-1;;;;;;;18321:1790:42:o;3742:395:2:-;3864:35;;;3840:21;3864:35;;;:22;:35;;;;;;;3913:21;;;3909:135;;-1:-1:-1;618:5:2;3909:135;4077:16;4061:12;:32;;4053:77;;;;-1:-1:-1;;;4053:77:2;;;;;;;:::i;5165:446:28:-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:28;;;;;;;:::i;:::-;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:28;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:28:o;12034:351:0:-;12110:7;12154:11;:6;12163:2;12154:11;:::i;:::-;12137:6;:13;:28;;12129:62;;;;-1:-1:-1;;;12129:62:0;;;;;;;:::i;:::-;-1:-1:-1;12279:30:0;12295:4;12279:30;12273:37;-1:-1:-1;;;12269:71:0;;;12034:351::o;13311:302::-;13386:6;13429:10;:6;13438:1;13429:10;:::i;:::-;13412:6;:13;:27;;13404:60;;;;-1:-1:-1;;;13404:60:0;;;;;;;:::i;:::-;-1:-1:-1;13541:29:0;13557:3;13541:29;13535:36;;13311:302::o;20358:1970:42:-;-1:-1:-1;;;;;20556:21:42;;20531:22;20556:21;;;:9;:21;;;;;;;;20650:54;;;;20687:7;20358:1970;;;:::o;20650:54::-;20847:52;;;;;;;;;;20863:6;;-1:-1:-1;;;20863:33:42;;;-1:-1:-1;;;;20847:52:42;;;20863:6;;;-1:-1:-1;;;;;20863:6:42;:15;:33;18050:10;20863:33;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20847:52;;20822:77;-1:-1:-1;20931:48:42;20822:77;20963:15;20931:18;:48::i;:::-;21151:50;;;20990:29;21151:50;;;:37;:50;;;;;;;;;21238:27;:40;;;;;;21331:41;:54;;;;;;21426:29;:42;;;;;;;;20909:70;;-1:-1:-1;21022:15:42;;21238:40;;21331:54;21564:55;;;;21556:99;;;;-1:-1:-1;;;21556:99:42;;;;;;;:::i;:::-;21803:6;21751:49;21775:25;21751:21;:49;:::i;:::-;:58;21747:285;;;21877:50;;;;;;;:37;:50;;;;;:74;;;21844:19;;-1:-1:-1;21747:285:42;;;21982:39;22002:19;21982:39;;:::i;:::-;;;21747:285;22135:20;22115:16;:40;;22107:83;;;;-1:-1:-1;;;22107:83:42;;;;;;;:::i;:::-;-1:-1:-1;;22262:40:42;;;;;;;;:27;:40;;;;;:59;;;;-1:-1:-1;;;;;;;20358:1970:42:o;14550:317:0:-;14626:7;14670:11;:6;14679:2;14670:11;:::i;:::-;14653:6;:13;:28;;14645:62;;;;-1:-1:-1;;;14645:62:0;;;;;;;:::i;:::-;-1:-1:-1;14791:30:0;14807:4;14791:30;14785:37;;14550:317::o;7671:628:28:-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;8353:20:10;;;8113:60:28;;;;-1:-1:-1;;;8113:60:28;;;;;;;:::i;:::-;-1:-1:-1;8208:10:28;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:28;;;;;;;;:::i;8976:379::-;8821:540;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;429:120:65:-;410:6;399:18;;501:23;494:5;491:34;481:62;;539:1;536;529:12;555:137;625:20;;654:32;625:20;654:32;:::i;1080:552::-;1137:8;1147:6;1197:3;1190:4;1182:6;1178:17;1174:27;1164:122;;1205:79;651:5010:45;;;1205:79:65;-1:-1:-1;1305:20:65;;-1:-1:-1;;;;;1337:30:65;;1334:117;;;1370:79;651:5010:45;;;1370:79:65;1484:4;1476:6;1472:17;1460:29;;1538:3;1530:4;1522:6;1518:17;1508:8;1504:32;1501:41;1498:128;;;1545:79;651:5010:45;;;1545:79:65;1080:552;;;;;:::o;1745:120::-;-1:-1:-1;;;;;1703:30:65;;1817:23;1638:101;1871:137;1941:20;;1970:32;1941:20;1970:32;:::i;2014:1157::-;2120:6;2128;2136;2144;2152;2160;2209:3;2197:9;2188:7;2184:23;2180:33;2177:120;;;2216:79;651:5010:45;;;2216:79:65;2336:1;2361:52;2405:7;2385:9;2361:52;:::i;:::-;2351:62;;2307:116;2490:2;2479:9;2475:18;2462:32;-1:-1:-1;;;;;2513:6:65;2510:30;2507:117;;;2543:79;651:5010:45;;;2543:79:65;2656:64;2712:7;2703:6;2692:9;2688:22;2656:64;:::i;:::-;2638:82;;;;2433:297;2769:2;2795:52;2839:7;2830:6;2819:9;2815:22;2795:52;:::i;:::-;2785:62;;2740:117;2924:2;2913:9;2909:18;2896:32;-1:-1:-1;;;;;2947:6:65;2944:30;2941:117;;;2977:79;651:5010:45;;;2977:79:65;3090:64;3146:7;3137:6;3126:9;3122:22;3090:64;:::i;:::-;3072:82;;;;2867:297;2014:1157;;;;;;;;:::o;3332:120::-;-1:-1:-1;;;;;;3242:78:65;;3404:23;3177:149;3458:137;3528:20;;3557:32;3528:20;3557:32;:::i;3601:327::-;3659:6;3708:2;3696:9;3687:7;3683:23;3679:32;3676:119;;;3714:79;651:5010:45;;;3714:79:65;3834:1;3859:52;3903:7;3883:9;3859:52;:::i;4030:109::-;4004:13;;3997:21;4111;4106:3;4099:34;4030:109;;:::o;4145:210::-;4270:2;4255:18;;4283:65;4259:9;4321:6;4283:65;:::i;4361:327::-;4419:6;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;651:5010:45;;;4474:79:65;4594:1;4619:52;4663:7;4643:9;4619:52;:::i;4777:122::-;4868:5;4850:24;4694:77;4905:139;4976:20;;5005:33;4976:20;5005:33;:::i;5050:472::-;5117:6;5125;5174:2;5162:9;5153:7;5149:23;5145:32;5142:119;;;5180:79;651:5010:45;;;5180:79:65;5300:1;5325:52;5369:7;5349:9;5325:52;:::i;:::-;5315:62;;5271:116;5426:2;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5397:118;5050:472;;;;;:::o;5660:96::-;5697:7;-1:-1:-1;;;;;5594:54:65;;5726:24;5528:126;5762:122;5835:24;5853:5;5835:24;:::i;5890:139::-;5961:20;;5990:33;5961:20;5990:33;:::i;6035:617::-;6111:6;6119;6127;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;651:5010:45;;;6182:79:65;6302:1;6327:53;6372:7;6352:9;6327:53;:::i;:::-;6317:63;;6273:117;6429:2;6455:52;6499:7;6490:6;6479:9;6475:22;6455:52;:::i;:::-;6445:62;;6400:117;6556:2;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6527:118;6035:617;;;;;:::o;6658:118::-;6763:5;6745:24;4694:77;6782:862;7069:3;7054:19;;7083:65;7058:9;7121:6;7083:65;:::i;:::-;7158:72;7226:2;7215:9;7211:18;7202:6;7158:72;:::i;:::-;7240;7308:2;7297:9;7293:18;7284:6;7240:72;:::i;:::-;7322;7390:2;7379:9;7375:18;7366:6;7322:72;:::i;:::-;7404:73;7472:3;7461:9;7457:19;7448:6;7404:73;:::i;:::-;7487;7555:3;7544:9;7540:19;7531:6;7487:73;:::i;:::-;7570:67;7632:3;7621:9;7617:19;7608:6;7570:67;:::i;:::-;6782:862;;;;;;;;;;:::o;8006:116::-;4004:13;;3997:21;8076;3934:90;8128:133;8196:20;;8225:30;8196:20;8225:30;:::i;8267:1101::-;8369:6;8377;8385;8393;8401;8409;8458:3;8446:9;8437:7;8433:23;8429:33;8426:120;;;8465:79;651:5010:45;;;8465:79:65;8585:1;8610:52;8654:7;8634:9;8610:52;:::i;:::-;8600:62;;8556:116;8711:2;8737:53;8782:7;8773:6;8762:9;8758:22;8737:53;:::i;:::-;8727:63;;8682:118;8839:2;8865:53;8910:7;8901:6;8890:9;8886:22;8865:53;:::i;:::-;8855:63;;8810:118;8967:2;8993:50;9035:7;9026:6;9015:9;9011:22;8993:50;:::i;:::-;8983:60;;8938:115;9120:3;9109:9;9105:19;9092:33;-1:-1:-1;;;;;9144:6:65;9141:30;9138:117;;;9174:79;651:5010:45;;;9374:332:65;9533:2;9518:18;;9546:71;9522:9;9590:6;9546:71;:::i;:::-;9627:72;9695:2;9684:9;9680:18;9671:6;9627:72;:::i;9712:222::-;9843:2;9828:18;;9856:71;9832:9;9900:6;9856:71;:::i;9940:670::-;10018:6;10026;10034;10083:2;10071:9;10062:7;10058:23;10054:32;10051:119;;;10089:79;651:5010:45;;;10089:79:65;10209:1;10234:52;10278:7;10258:9;10234:52;:::i;:::-;10224:62;;10180:116;10363:2;10352:9;10348:18;10335:32;-1:-1:-1;;;;;10386:6:65;10383:30;10380:117;;;10416:79;651:5010:45;;;10416:79:65;10529:64;10585:7;10576:6;10565:9;10561:22;10529:64;:::i;:::-;10511:82;;;;10306:297;9940:670;;;;;:::o;10616:474::-;10684:6;10692;10741:2;10729:9;10720:7;10716:23;10712:32;10709:119;;;10747:79;651:5010:45;;;10747:79:65;10867:1;10892:53;10937:7;10917:9;10892:53;:::i;11188:112::-;11171:4;11160:16;;11271:22;11096:86;11306:214;11433:2;11418:18;;11446:67;11422:9;11486:6;11446:67;:::i;11526:323::-;11582:6;11631:2;11619:9;11610:7;11606:23;11602:32;11599:119;;;11637:79;651:5010:45;;;11637:79:65;11757:1;11782:50;11824:7;11804:9;11782:50;:::i;11855:468::-;11920:6;11928;11977:2;11965:9;11956:7;11952:23;11948:32;11945:119;;;11983:79;651:5010:45;;;11983:79:65;12103:1;12128:53;12173:7;12153:9;12128:53;:::i;:::-;12118:63;;12074:117;12230:2;12256:50;12298:7;12289:6;12278:9;12274:22;12256:50;:::i;12560:180::-;-1:-1:-1;;;12605:1:65;12598:88;12705:4;12702:1;12695:15;12729:4;12726:1;12719:15;12746:281;-1:-1:-1;;12544:2:65;12524:14;;12520:28;12821:6;12817:40;12959:6;12947:10;12944:22;-1:-1:-1;;;;;12911:10:65;12908:34;12905:62;12902:88;;;12970:18;;:::i;:::-;13006:2;12999:22;-1:-1:-1;;12746:281:65:o;13033:129::-;13067:6;13094:20;73:2;67:9;;7:75;13094:20;13084:30;;13123:33;13151:4;13143:6;13123:33;:::i;:::-;13033:129;;;:::o;13168:307::-;13229:4;-1:-1:-1;;;;;13311:6:65;13308:30;13305:56;;;13341:18;;:::i;:::-;-1:-1:-1;;12544:2:65;12524:14;;12520:28;13463:4;13453:15;;13168:307;-1:-1:-1;;13168:307:65:o;13481:148::-;13579:6;13574:3;13569;13556:30;-1:-1:-1;13620:1:65;13602:16;;13595:27;13481:148::o;13635:423::-;13712:5;13737:65;13753:48;13794:6;13753:48;:::i;:::-;13737:65;:::i;:::-;13728:74;;13825:6;13818:5;13811:21;13863:4;13856:5;13852:16;13901:3;13892:6;13887:3;13883:16;13880:25;13877:112;;;13908:79;651:5010:45;;;13908:79:65;13998:54;14045:6;14040:3;14035;13998:54;:::i;:::-;13718:340;13635:423;;;;;:::o;14077:338::-;14132:5;14181:3;14174:4;14166:6;14162:17;14158:27;14148:122;;14189:79;651:5010:45;;;14189:79:65;14306:6;14293:20;14331:78;14405:3;14397:6;14390:4;14382:6;14378:17;14331:78;:::i;14421:793::-;14505:6;14513;14521;14570:2;14558:9;14549:7;14545:23;14541:32;14538:119;;;14576:79;651:5010:45;;;14576:79:65;14696:1;14721:52;14765:7;14745:9;14721:52;:::i;:::-;14711:62;;14667:116;14850:2;14839:9;14835:18;14822:32;-1:-1:-1;;;;;14873:6:65;14870:30;14867:117;;;14903:79;651:5010:45;;;14903:79:65;15008:62;15062:7;15053:6;15042:9;15038:22;15008:62;:::i;:::-;14998:72;;14793:287;15119:2;15145:52;15189:7;15180:6;15169:9;15165:22;15145:52;:::i;15572:111::-;15624:7;15653:24;15671:5;15653:24;:::i;15689:152::-;15777:39;15810:5;15777:39;:::i;15847:169::-;15933:20;;15962:48;15933:20;15962:48;:::i;16022:649::-;16114:6;16122;16130;16179:2;16167:9;16158:7;16154:23;16150:32;16147:119;;;16185:79;651:5010:45;;;16185:79:65;16305:1;16330:68;16390:7;16370:9;16330:68;:::i;:::-;16320:78;;16276:132;16447:2;16473:53;16518:7;16509:6;16498:9;16494:22;16473:53;:::i;16838:236::-;16916:5;16957:2;16948:6;16943:3;16939:16;16935:25;16932:112;;;16963:79;651:5010:45;;;16963:79:65;-1:-1:-1;17062:6:65;16838:236;-1:-1:-1;16838:236:65:o;17080:1133::-;17206:6;17214;17222;17230;17238;17287:3;17275:9;17266:7;17262:23;17258:33;17255:120;;;17294:79;651:5010:45;;;17294:79:65;17414:1;17439:53;17484:7;17464:9;17439:53;:::i;:::-;17429:63;;17385:117;17541:2;17567:52;17611:7;17602:6;17591:9;17587:22;17567:52;:::i;:::-;17557:62;;17512:117;17668:2;17694:53;17739:7;17730:6;17719:9;17715:22;17694:53;:::i;:::-;17684:63;;17639:118;17796:2;17822:53;17867:7;17858:6;17847:9;17843:22;17822:53;:::i;:::-;17812:63;;17767:118;17952:3;17941:9;17937:19;17924:33;-1:-1:-1;;;;;17976:6:65;17973:30;17970:117;;;18006:79;651:5010:45;;;18006:79:65;18111:85;18188:7;18179:6;18168:9;18164:22;18111:85;:::i;:::-;18101:95;;17895:311;17080:1133;;;;;;;;:::o;18497:248::-;18579:1;18589:113;18603:6;18600:1;18597:13;18589:113;;;18679:11;;;18673:18;18660:11;;;18653:39;18625:2;18618:10;18589:113;;;-1:-1:-1;;18736:1:65;18718:16;;18711:27;18497:248::o;18751:373::-;18837:3;18865:38;18897:5;18298:12;;18219:98;18865:38;18428:19;;;18480:4;18471:14;;18912:77;;18998:65;19056:6;19051:3;19044:4;19037:5;19033:16;18998:65;:::i;:::-;-1:-1:-1;;12544:2:65;12524:14;;12520:28;19088:29;19079:39;;;;18751:373;-1:-1:-1;;;18751:373:65:o;19130:309::-;19279:2;19292:47;;;19264:18;;19356:76;19264:18;19418:6;19356:76;:::i;19445:1621::-;19599:6;19607;19615;19623;19631;19639;19647;19655;19704:3;19692:9;19683:7;19679:23;19675:33;19672:120;;;19711:79;651:5010:45;;;19711:79:65;19831:1;19856:53;19901:7;19881:9;19856:53;:::i;:::-;19846:63;;19802:117;19958:2;19984:52;20028:7;20019:6;20008:9;20004:22;19984:52;:::i;:::-;19974:62;;19929:117;20085:2;20111:53;20156:7;20147:6;20136:9;20132:22;20111:53;:::i;:::-;20101:63;;20056:118;20213:2;20239:53;20284:7;20275:6;20264:9;20260:22;20239:53;:::i;:::-;20229:63;;20184:118;20369:3;20358:9;20354:19;20341:33;-1:-1:-1;;;;;20393:6:65;20390:30;20387:117;;;20423:79;651:5010:45;;;20423:79:65;20536:64;20592:7;20583:6;20572:9;20568:22;20536:64;:::i;:::-;20518:82;;;;20312:298;20649:3;20676:52;20720:7;20711:6;20700:9;20696:22;20676:52;:::i;:::-;20666:62;;20620:118;20805:3;20794:9;20790:19;20777:33;-1:-1:-1;;;;;20829:6:65;20826:30;20823:117;;;20859:79;651:5010:45;;;20859:79:65;20964:85;21041:7;21032:6;21021:9;21017:22;20964:85;:::i;:::-;20954:95;;20748:311;19445:1621;;;;;;;;;;;:::o;21072:329::-;21131:6;21180:2;21168:9;21159:7;21155:23;21151:32;21148:119;;;21186:79;651:5010:45;;;21186:79:65;21306:1;21331:53;21376:7;21356:9;21331:53;:::i;21473:142::-;21523:9;21556:53;-1:-1:-1;;;;;5594:54:65;;21574:34;4694:77;21583:24;4760:5;4694:77;21574:34;-1:-1:-1;;;;;5594:54:65;;5528:126;21621;21671:9;21704:37;21735:5;21704:37;:::i;21753:159::-;21836:9;21869:37;21900:5;21869:37;:::i;21918:197::-;22038:70;22102:5;22038:70;:::i;22121:288::-;22285:2;22270:18;;22298:104;22274:9;22375:6;22298:104;:::i;22415:470::-;22481:6;22489;22538:2;22526:9;22517:7;22513:23;22509:32;22506:119;;;22544:79;651:5010:45;;;22544:79:65;22664:1;22689:52;22733:7;22713:9;22689:52;:::i;:::-;22679:62;;22635:116;22790:2;22816:52;22860:7;22851:6;22840:9;22836:22;22816:52;:::i;22891:118::-;22978:24;22996:5;22978:24;:::i;23015:222::-;23146:2;23131:18;;23159:71;23135:9;23203:6;23159:71;:::i;23243:1589::-;23373:6;23381;23389;23397;23405;23413;23421;23429;23437;23486:3;23474:9;23465:7;23461:23;23457:33;23454:120;;;23493:79;651:5010:45;;;23493:79:65;23613:1;23638:52;23682:7;23662:9;23638:52;:::i;:::-;23628:62;;23584:116;23739:2;23765:53;23810:7;23801:6;23790:9;23786:22;23765:53;:::i;:::-;23755:63;;23710:118;23867:2;23893:53;23938:7;23929:6;23918:9;23914:22;23893:53;:::i;:::-;23883:63;;23838:118;24023:2;24012:9;24008:18;23995:32;-1:-1:-1;;;;;24046:6:65;24043:30;24040:117;;;24076:79;651:5010:45;;;24076:79:65;24189:64;24245:7;24236:6;24225:9;24221:22;24189:64;:::i;:::-;24171:82;;;;23966:297;24302:3;24329:52;24373:7;24364:6;24353:9;24349:22;24329:52;:::i;:::-;24319:62;;24273:118;24430:3;24457:50;24499:7;24490:6;24479:9;24475:22;24457:50;:::i;:::-;24447:60;;24401:116;24584:3;24573:9;24569:19;24556:33;-1:-1:-1;;;;;24608:6:65;24605:30;24602:117;;;24638:79;651:5010:45;;;24638:79:65;24751:64;24807:7;24798:6;24787:9;24783:22;24751:64;:::i;:::-;24733:82;;;;24527:298;23243:1589;;;;;;;;;;;:::o;25470:959::-;25565:6;25573;25581;25589;25597;25646:3;25634:9;25625:7;25621:23;25617:33;25614:120;;;25653:79;651:5010:45;;;25653:79:65;25773:1;25798:52;25842:7;25822:9;25798:52;:::i;:::-;25788:62;;25744:116;25899:2;25925:52;25969:7;25960:6;25949:9;25945:22;25925:52;:::i;:::-;25915:62;;25870:117;26026:2;26052:53;26097:7;26088:6;26077:9;26073:22;26052:53;:::i;:::-;26042:63;;25997:118;26182:2;26171:9;26167:18;26154:32;-1:-1:-1;;;;;26205:6:65;26202:30;26199:117;;;26235:79;651:5010:45;;;26235:79:65;26348:64;26404:7;26395:6;26384:9;26380:22;26348:64;:::i;:::-;26330:82;;;;26125:297;25470:959;;;;;;;;:::o;26435:615::-;26510:6;26518;26526;26575:2;26563:9;26554:7;26550:23;26546:32;26543:119;;;26581:79;651:5010:45;;;26581:79:65;26701:1;26726:52;26770:7;26750:9;26726:52;:::i;27056:1741::-;27198:6;27206;27214;27222;27230;27238;27246;27254;27262;27270;27319:3;27307:9;27298:7;27294:23;27290:33;27287:120;;;27326:79;651:5010:45;;;27326:79:65;27446:1;27471:52;27515:7;27495:9;27471:52;:::i;:::-;27461:62;;27417:116;27600:2;27589:9;27585:18;27572:32;-1:-1:-1;;;;;27623:6:65;27620:30;27617:117;;;27653:79;651:5010:45;;;27653:79:65;27766:64;27822:7;27813:6;27802:9;27798:22;27766:64;:::i;:::-;27748:82;;;;27543:297;27879:2;27905:52;27949:7;27940:6;27929:9;27925:22;27905:52;:::i;:::-;27895:62;;27850:117;28006:2;28032:53;28077:7;28068:6;28057:9;28053:22;28032:53;:::i;:::-;28022:63;;27977:118;28134:3;28161:53;28206:7;28197:6;28186:9;28182:22;28161:53;:::i;:::-;28151:63;;28105:119;28263:3;28290:53;28335:7;28326:6;28315:9;28311:22;28290:53;:::i;:::-;28280:63;;28234:119;28420:3;28409:9;28405:19;28392:33;-1:-1:-1;;;;;28444:6:65;28441:30;28438:117;;;28474:79;651:5010:45;;;28474:79:65;28587:64;28643:7;28634:6;28623:9;28619:22;28587:64;:::i;:::-;28569:82;;;;28363:298;28700:3;28727:53;28772:7;28763:6;28752:9;28748:22;28727:53;:::i;:::-;28717:63;;28671:119;27056:1741;;;;;;;;;;;;;:::o;28803:761::-;28887:6;28895;28903;28911;28960:3;28948:9;28939:7;28935:23;28931:33;28928:120;;;28967:79;651:5010:45;;;28967:79:65;29087:1;29112:52;29156:7;29136:9;29112:52;:::i;:::-;29102:62;;29058:116;29213:2;29239:52;29283:7;29274:6;29263:9;29259:22;29239:52;:::i;:::-;29229:62;;29184:117;29340:2;29366:53;29411:7;29402:6;29391:9;29387:22;29366:53;:::i;:::-;29356:63;;29311:118;29468:2;29494:53;29539:7;29530:6;29519:9;29515:22;29494:53;:::i;:::-;29484:63;;29439:118;28803:761;;;;;;;:::o;29931:366::-;30158:2;18428:19;;30073:3;18480:4;18471:14;;29885:32;29862:56;;30087:74;-1:-1:-1;30170:93:65;-1:-1:-1;30288:2:65;30279:12;;29931:366::o;30303:419::-;30507:2;30520:47;;;30492:18;;30584:131;30492:18;30584:131;:::i;30728:180::-;-1:-1:-1;;;30773:1:65;30766:88;30873:4;30870:1;30863:15;30897:4;30894:1;30887:15;30914:320;30995:1;30985:12;;31042:1;31032:12;;;31053:81;;31119:4;31111:6;31107:17;31097:27;;31053:81;31181:2;31173:6;31170:14;31150:18;31147:38;31144:84;;31200:18;;:::i;31415:327::-;31529:3;31648:56;31697:6;31692:3;31685:5;31648:56;:::i;:::-;-1:-1:-1;;31720:16:65;;31415:327::o;31748:291::-;31888:3;31910:103;32009:3;32000:6;31992;31910:103;:::i;32276:366::-;32503:2;18428:19;;32418:3;18480:4;18471:14;;32185:34;32162:58;;-1:-1:-1;;;32249:2:65;32237:15;;32230:33;32432:74;-1:-1:-1;32515:93:65;-1:-1:-1;32633:2:65;32624:12;;32276:366::o;32648:419::-;32852:2;32865:47;;;32837:18;;32929:131;32837:18;32929:131;:::i;33073:115::-;410:6;399:18;;33158:23;334:89;33194:218;33323:2;33308:18;;33336:69;33312:9;33378:6;33336:69;:::i;33418:143::-;33500:13;;33522:33;33500:13;33522:33;:::i;33567:351::-;33637:6;33686:2;33674:9;33665:7;33661:23;33657:32;33654:119;;;33692:79;651:5010:45;;;33692:79:65;33812:1;33837:64;33893:7;33873:9;33837:64;:::i;33924:180::-;-1:-1:-1;;;33969:1:65;33962:88;34069:4;34066:1;34059:15;34093:4;34090:1;34083:15;34110:194;34241:9;;;34263:11;;;34260:37;;;34277:18;;:::i;34310:191::-;34439:9;;;34461:10;;;34458:36;;;34474:18;;:::i;34738:366::-;34965:2;18428:19;;34880:3;18480:4;18471:14;;34647:34;34624:58;;-1:-1:-1;;;34711:2:65;34699:15;;34692:33;34894:74;-1:-1:-1;34977:93:65;34507:225;35110:419;35314:2;35327:47;;;35299:18;;35391:131;35299:18;35391:131;:::i;35535:438::-;35720:2;35705:18;;35733:69;35709:9;35775:6;35733:69;:::i;:::-;35812:72;35880:2;35869:9;35865:18;35856:6;35812:72;:::i;:::-;35894;35962:2;35951:9;35947:18;35938:6;35894:72;:::i;36001:314::-;18428:19;;;36097:3;18480:4;18471:14;;36111:77;;36198:56;36247:6;36242:3;36235:5;36198:56;:::i;:::-;-1:-1:-1;;12544:2:65;12524:14;;12520:28;36279:29;12452:102;36321:435;36506:2;36491:18;;36519:69;36495:9;36561:6;36519:69;:::i;:::-;36635:9;36629:4;36625:20;36620:2;36609:9;36605:18;36598:48;36663:86;36744:4;36735:6;36727;36663:86;:::i;37006:366::-;37233:2;18428:19;;37148:3;18480:4;18471:14;;36902:34;36879:58;;-1:-1:-1;;;36966:2:65;36954:15;;36947:46;37162:74;-1:-1:-1;37245:93:65;36762:238;37378:419;37582:2;37595:47;;;37567:18;;37659:131;37567:18;37659:131;:::i;38029:366::-;38256:2;18428:19;;38171:3;18480:4;18471:14;;37943:34;37920:58;;-1:-1:-1;;;38007:2:65;37995:15;;37988:28;38185:74;-1:-1:-1;38268:93:65;37803:220;38401:419;38605:2;38618:47;;;38590:18;;38682:131;38590:18;38682:131;:::i;39057:366::-;39284:2;18428:19;;39199:3;18480:4;18471:14;;38966:34;38943:58;;-1:-1:-1;;;39030:2:65;39018:15;;39011:33;39213:74;-1:-1:-1;39296:93:65;38826:225;39429:419;39633:2;39646:47;;;39618:18;;39710:131;39618:18;39710:131;:::i;40085:366::-;40312:2;18428:19;;40227:3;18480:4;18471:14;;39994:34;39971:58;;-1:-1:-1;;;40058:2:65;40046:15;;40039:33;40241:74;-1:-1:-1;40324:93:65;39854:225;40457:419;40661:2;40674:47;;;40646:18;;40738:131;40646:18;40738:131;:::i;42017:724::-;42094:4;;42143:25;;-1:-1:-1;;42219:14:65;42215:29;;;42211:48;42187:73;;42177:168;;42264:79;651:5010:45;;;42264:79:65;42376:18;42366:8;42362:33;42354:41;;42428:4;42415:18;42405:28;;-1:-1:-1;;;;;42448:6:65;42445:30;42442:117;;;42478:79;651:5010:45;;;42478:79:65;42586:2;42580:4;42576:13;42568:21;;42643:4;42635:6;42631:17;42615:14;42611:38;42605:4;42601:49;42598:136;;;42653:79;651:5010:45;;;42653:79:65;42107:634;42017:724;;;;;:::o;42986:366::-;43213:2;18428:19;;43128:3;18480:4;18471:14;;42887:34;42864:58;;-1:-1:-1;;;42951:2:65;42939:15;;42932:41;43142:74;-1:-1:-1;43225:93:65;42747:233;43358:419;43562:2;43575:47;;;43547:18;;43639:131;43547:18;43639:131;:::i;43962:366::-;44189:2;18428:19;;44104:3;18480:4;18471:14;;43923:25;43900:49;;44118:74;-1:-1:-1;44201:93:65;43783:173;44334:419;44538:2;44551:47;;;44523:18;;44615:131;44523:18;44615:131;:::i;44759:386::-;44863:3;44891:38;44923:5;18298:12;;18219:98;44891:38;45042:65;45100:6;45095:3;45088:4;45081:5;45077:16;45042:65;:::i;:::-;45123:16;;;;;44759:386;-1:-1:-1;;44759:386:65:o;45151:271::-;45281:3;45303:93;45392:3;45383:6;45303:93;:::i;45428:115::-;-1:-1:-1;;;;;1703:30:65;;45513:23;1638:101;45549:324;45704:2;45689:18;;45717:69;45693:9;45759:6;45717:69;:::i;:::-;45796:70;45862:2;45851:9;45847:18;45838:6;45796:70;:::i;46064:366::-;46291:2;18428:19;;46206:3;18480:4;18471:14;;46019:31;45996:55;;46220:74;-1:-1:-1;46303:93:65;45879:179;46436:419;46640:2;46653:47;;;46625:18;;46717:131;46625:18;46717:131;:::i;46961:94::-;47000:7;47029:20;47043:5;46938:2;46934:14;;46861:94;47061:100;47100:7;47129:26;47149:5;47129:26;:::i;47167:157::-;47272:45;47292:24;47310:5;47292:24;:::i;:::-;47272:45;:::i;47330:432::-;47498:3;47520:103;47619:3;47610:6;47602;47520:103;:::i;:::-;47513:110;;47633:75;47704:3;47695:6;47633:75;:::i;:::-;-1:-1:-1;47733:2:65;47724:12;;47330:432;-1:-1:-1;;;47330:432:65:o;48525:142::-;48575:9;48608:53;48626:34;48653:5;48626:34;4694:77;48754:269;48864:39;48895:7;48864:39;:::i;:::-;48953:11;;-1:-1:-1;;48245:1:65;48229:18;;;;48097:16;;;48454:9;48443:21;48097:16;;48483:30;;;;48912:105;;-1:-1:-1;48754:269:65:o;49108:189::-;49074:3;49226:65;49284:6;49276;49270:4;49226:65;:::i;49303:186::-;49380:3;49373:5;49370:14;49363:120;;;49434:39;49471:1;49464:5;49434:39;:::i;:::-;49407:1;49396:13;49363:120;;49495:541;49595:2;49590:3;49587:11;49584:445;;;47816:4;47852:14;;;47896:4;47883:18;;47998:2;47993;47982:14;;47978:23;49702:8;49698:44;49895:2;49883:10;49880:18;49877:49;;;-1:-1:-1;49916:8:65;49877:49;49939:80;47998:2;47993;47982:14;;47978:23;49985:8;49981:37;49968:11;49939:80;:::i;50639:1390::-;18298:12;;-1:-1:-1;;;;;50847:6:65;50844:30;50841:56;;;50877:18;;:::i;:::-;50921:38;50953:4;50947:11;50921:38;:::i;:::-;51006:66;51065:6;51057;51051:4;51006:66;:::i;:::-;51123:4;51155:2;51144:14;;51172:1;51167:617;;;;51828:1;51845:6;51842:77;;;-1:-1:-1;51885:19:65;;;51879:26;51842:77;-1:-1:-1;;50275:1:65;50271:13;;50136:16;50238:56;50313:15;;50620:1;50616:11;;50607:21;51939:4;51932:81;51801:222;51137:886;;51167:617;47816:4;47852:14;;;47896:4;47883:18;;-1:-1:-1;;51203:22:65;;;51325:208;51339:7;51336:1;51333:14;51325:208;;;51409:19;;;51403:26;51388:42;;51516:2;51501:18;;;;51469:1;51457:14;;;;51355:12;51325:208;;;51561:6;51552:7;51549:19;51546:179;;;51610:19;;;51604:26;-1:-1:-1;;51704:4:65;51692:17;;50275:1;50271:13;50136:16;50238:56;50313:15;51647:64;;51546:179;51771:1;51767;51759:6;51755:14;51751:22;51745:4;51738:36;51174:610;;;51137:886;50729:1300;;;50639:1390;;:::o;52035:652::-;52274:3;52259:19;;52288:69;52263:9;52330:6;52288:69;:::i;:::-;52367:70;52433:2;52422:9;52418:18;52409:6;52367:70;:::i;:::-;52447:72;52515:2;52504:9;52500:18;52491:6;52447:72;:::i;:::-;52566:9;52560:4;52556:20;52551:2;52540:9;52536:18;52529:48;52594:86;52675:4;52666:6;52658;52594:86;:::i;52932:366::-;53159:2;18428:19;;53074:3;18480:4;18471:14;;52833:34;52810:58;;-1:-1:-1;;;52897:2:65;52885:15;;52878:41;53088:74;-1:-1:-1;53171:93:65;52693:233;53304:419;53508:2;53521:47;;;53493:18;;53585:131;53493:18;53585:131;:::i;53729:434::-;53912:2;53897:18;;53925:69;53901:9;53967:6;53925:69;:::i;:::-;54004:70;54070:2;54059:9;54055:18;54046:6;54004:70;:::i;54356:366::-;54583:2;18428:19;;54498:3;18480:4;18471:14;;54309:33;54286:57;;54512:74;-1:-1:-1;54595:93:65;54169:181;54728:419;54932:2;54945:47;;;54917:18;;55009:131;54917:18;55009:131;:::i;55153:981::-;55476:3;55461:19;;55490:69;55465:9;55532:6;55490:69;:::i;:::-;55606:9;55600:4;55596:20;55591:2;55580:9;55576:18;55569:48;55634:86;55715:4;55706:6;55698;55634:86;:::i;:::-;55626:94;;55730:70;55796:2;55785:9;55781:18;55772:6;55730:70;:::i;:::-;55810:72;55878:2;55867:9;55863:18;55854:6;55810:72;:::i;:::-;55892:73;55960:3;55949:9;55945:19;55936:6;55892:73;:::i;:::-;56013:9;56007:4;56003:20;55997:3;55986:9;55982:19;55975:49;56041:86;56122:4;56113:6;56105;56041:86;:::i;:::-;56033:94;55153:981;-1:-1:-1;;;;;;;;;;55153:981:65:o;56242:1398::-;56403:3;-1:-1:-1;;;;;56464:6:65;56461:30;56458:56;;;56494:18;;:::i;:::-;56538:38;56570:4;56564:11;56538:38;:::i;:::-;56623:66;56682:6;56674;56668:4;56623:66;:::i;:::-;56716:1;56745:2;56737:6;56734:14;56762:1;56757:631;;;;57432:1;57449:6;57446:84;;;-1:-1:-1;57496:19:65;;;57483:33;57446:84;-1:-1:-1;;50275:1:65;50271:13;;50136:16;50238:56;50313:15;;50620:1;50616:11;;50607:21;57550:4;57543:81;57405:229;56727:907;;56757:631;47816:4;47852:14;;;47896:4;47883:18;;-1:-1:-1;;56793:22:65;;;56915:215;56929:7;56926:1;56923:14;56915:215;;;57006:19;;;56993:33;56978:49;;57113:2;57098:18;;;;57066:1;57054:14;;;;56945:12;56915:215;;;57158:6;57149:7;57146:19;57143:186;;;-1:-1:-1;;57308:4:65;57296:17;;50275:1;50271:13;50136:16;50238:56;57214:19;;;57201:33;50313:15;57251:64;;57143:186;57375:1;57371;57363:6;57359:14;57355:22;57349:4;57342:36;56764:624;;;56727:907;56339:1301;;;56242:1398;;;:::o;57877:366::-;58104:2;18428:19;;58019:3;18480:4;18471:14;;57786:34;57763:58;;-1:-1:-1;;;57850:2:65;57838:15;;57831:33;58033:74;-1:-1:-1;58116:93:65;57646:225;58249:419;58453:2;58466:47;;;58438:18;;58530:131;58438:18;58530:131;:::i;58674:545::-;58885:3;58870:19;;58899:69;58874:9;58941:6;58899:69;:::i;:::-;58978:70;59044:2;59033:9;59029:18;59020:6;58978:70;:::i;:::-;59058:72;59126:2;59115:9;59111:18;59102:6;59058:72;:::i;:::-;59140;59208:2;59197:9;59193:18;59184:6;59140:72;:::i;59225:432::-;59313:5;59338:65;59354:48;59395:6;59354:48;:::i;59338:65::-;59329:74;;59426:6;59419:5;59412:21;59464:4;59457:5;59453:16;59502:3;59493:6;59488:3;59484:16;59481:25;59478:112;;;59509:79;651:5010:45;;;59509:79:65;59599:52;59644:6;59639:3;59634;59599:52;:::i;59676:353::-;59742:5;59791:3;59784:4;59776:6;59772:17;59768:27;59758:122;;59799:79;651:5010:45;;;59799:79:65;59909:6;59903:13;59934:89;60019:3;60011:6;60004:4;59996:6;59992:17;59934:89;:::i;60035:522::-;60114:6;60163:2;60151:9;60142:7;60138:23;60134:32;60131:119;;;60169:79;651:5010:45;;;60169:79:65;60289:24;;-1:-1:-1;;;;;60329:30:65;;60326:117;;;60362:79;651:5010:45;;;60362:79:65;60467:73;60532:7;60523:6;60512:9;60508:22;60467:73;:::i;60563:719::-;60810:3;60795:19;;60824:69;60799:9;60866:6;60824:69;:::i;:::-;60940:9;60934:4;60930:20;60925:2;60914:9;60910:18;60903:48;60968:76;61039:4;61030:6;60968:76;:::i;:::-;60960:84;;61054:70;61120:2;61109:9;61105:18;61096:6;61054:70;:::i;:::-;61171:9;61165:4;61161:20;61156:2;61145:9;61141:18;61134:48;61199:76;61270:4;61261:6;61199:76;:::i;:::-;61191:84;60563:719;-1:-1:-1;;;;;;60563:719:65:o;61476:366::-;61703:2;18428:19;;;61428:34;18471:14;;61405:58;;;61618:3;61715:93;61288:182;61848:419;62052:2;62065:47;;;62037:18;;62129:131;62037:18;62129:131;:::i;62273:822::-;62544:3;62529:19;;62558:69;62533:9;62600:6;62558:69;:::i;:::-;62637:72;62705:2;62694:9;62690:18;62681:6;62637:72;:::i;:::-;62756:9;62750:4;62746:20;62741:2;62730:9;62726:18;62719:48;62784:76;62855:4;62846:6;62784:76;:::i;:::-;62776:84;;62870:66;62932:2;62921:9;62917:18;62908:6;62870:66;:::i;:::-;62984:9;62978:4;62974:20;62968:3;62957:9;62953:19;62946:49;63012:76;63083:4;63074:6;63012:76;:::i;63101:507::-;63180:6;63188;63237:2;63225:9;63216:7;63212:23;63208:32;63205:119;;;63243:79;651:5010:45;;;63243:79:65;63363:1;63388:64;63444:7;63424:9;63388:64;:::i;:::-;63378:74;;63334:128;63501:2;63527:64;63583:7;63574:6;63563:9;63559:22;63527:64;:::i;63614:180::-;-1:-1:-1;;;63659:1:65;63652:88;63759:4;63756:1;63749:15;63783:4;63780:1;63773:15;63800:176;63832:1;63922;63912:35;;63927:18;;:::i;:::-;-1:-1:-1;63961:9:65;;63800:176::o;63982:410::-;64127:9;;;;64289;;64322:15;;;64316:22;;64269:83;64246:139;;64365:18;;:::i;:::-;64030:362;63982:410;;;;:::o;64398:332::-;64557:2;64542:18;;64570:71;64546:9;64614:6;64570:71;:::i;64920:366::-;65147:2;18428:19;;65062:3;18480:4;18471:14;;64876:30;64853:54;;65076:74;-1:-1:-1;65159:93:65;64736:178;65292:419;65496:2;65509:47;;;65481:18;;65573:131;65481:18;65573:131;:::i;65898:366::-;66125:2;18428:19;;66040:3;18480:4;18471:14;;65857:27;65834:51;;66054:74;-1:-1:-1;66137:93:65;65717:175;66270:419;66474:2;66487:47;;;66459:18;;66551:131;66459:18;66551:131;:::i;66865:366::-;67092:2;18428:19;;67007:3;18480:4;18471:14;;-1:-1:-1;;;66812:40:65;;67021:74;-1:-1:-1;67104:93:65;66695:164;67237:419;67441:2;67454:47;;;67426:18;;67518:131;67426:18;67518:131;:::i;67835:366::-;68062:2;18428:19;;67977:3;18480:4;18471:14;;-1:-1:-1;;;67779:43:65;;67991:74;-1:-1:-1;68074:93:65;67662:167;68207:419;68411:2;68424:47;;;68396:18;;68488:131;68396:18;68488:131;:::i;68860:366::-;69087:2;18428:19;;69002:3;18480:4;18471:14;;68772:34;68749:58;;-1:-1:-1;;;68836:2:65;68824:15;;68817:30;69016:74;-1:-1:-1;69099:93:65;68632:222;69232:419;69436:2;69449:47;;;69421:18;;69513:131;69421:18;69513:131;:::i;69883:366::-;70110:2;18428:19;;70025:3;18480:4;18471:14;;69797:34;69774:58;;-1:-1:-1;;;69861:2:65;69849:15;;69842:28;70039:74;-1:-1:-1;70122:93:65;69657:220;70255:419;70459:2;70472:47;;;70444:18;;70536:131;70444:18;70536:131;:::i;70680:652::-;70919:3;70904:19;;70933:69;70908:9;70975:6;70933:69;:::i;:::-;71049:9;71043:4;71039:20;71034:2;71023:9;71019:18;71012:48;71077:86;71158:4;71149:6;71141;71077:86;:::i;:::-;71069:94;;71173:70;71239:2;71228:9;71224:18;71215:6;71173:70;:::i;:::-;71253:72;71321:2;71310:9;71306:18;71297:6;71253:72;:::i;71338:917::-;71631:3;71616:19;;71645:69;71620:9;71687:6;71645:69;:::i;:::-;71761:9;71755:4;71751:20;71746:2;71735:9;71731:18;71724:48;71789:76;71860:4;71851:6;71789:76;:::i;:::-;71781:84;;71875:70;71941:2;71930:9;71926:18;71917:6;71875:70;:::i;:::-;71992:9;71986:4;71982:20;71977:2;71966:9;71962:18;71955:48;72020:76;72091:4;72082:6;72020:76;:::i;:::-;72012:84;;72144:9;72138:4;72134:20;72128:3;72117:9;72113:19;72106:49;72172:76;72243:4;72234:6;72172:76;:::i;72261:185::-;72301:1;72391;72381:35;;72396:18;;:::i;:::-;-1:-1:-1;72431:9:65;;72261:185::o;72634:366::-;72861:2;18428:19;;72776:3;18480:4;18471:14;;72592:28;72569:52;;72790:74;-1:-1:-1;72873:93:65;72452:176;73006:419;73210:2;73223:47;;;73195:18;;73287:131;73195:18;73287:131;:::i;73533:93::-;73570:7;73599:21;73614:5;73509:3;73505:15;;73431:96;73632:149;73733:41;11171:4;11160:16;;73733:41;:::i;74137:94::-;74175:7;74204:21;74219:5;74113:3;74109:15;;74035:96;74237:153;74340:43;-1:-1:-1;;;;;1703:30:65;;74340:43;:::i;74396:524::-;74558:3;74573:71;74640:3;74631:6;74573:71;:::i;:::-;74669:1;74664:3;74660:11;74653:18;;74681:75;74752:3;74743:6;74681:75;:::i;:::-;74781:2;74776:3;74772:12;74765:19;;74794:73;74863:3;74854:6;74794:73;:::i;:::-;-1:-1:-1;74892:1:65;74883:11;;74396:524;-1:-1:-1;;;74396:524:65:o;75102:366::-;75329:2;18428:19;;75244:3;18480:4;18471:14;;-1:-1:-1;;;75043:46:65;;75258:74;-1:-1:-1;75341:93:65;74926:170;75474:419;75678:2;75691:47;;;75663:18;;75755:131;75663:18;75755:131;:::i;76071:366::-;76298:2;18428:19;;76213:3;18480:4;18471:14;;-1:-1:-1;;;76016:42:65;;76227:74;-1:-1:-1;76310:93:65;75899:166;76443:419;76647:2;76660:47;;;76632:18;;76724:131;76632:18;76724:131;:::i;76868:442::-;77055:2;77040:18;;77068:71;77044:9;77112:6;77068:71;:::i;:::-;77149:72;77217:2;77206:9;77202:18;77193:6;77149:72;:::i;77316:137::-;77395:13;;77417:30;77395:13;77417:30;:::i;77459:345::-;77526:6;77575:2;77563:9;77554:7;77550:23;77546:32;77543:119;;;77581:79;651:5010:45;;;77581:79:65;77701:1;77726:61;77779:7;77759:9;77726:61;:::i;78045:366::-;78272:2;18428:19;;78187:3;18480:4;18471:14;;77950:34;77927:58;;-1:-1:-1;;;78014:2:65;78002:15;;77995:37;78201:74;-1:-1:-1;78284:93:65;77810:229;78417:419;78621:2;78634:47;;;78606:18;;78698:131;78606:18;78698:131;:::i;79017:366::-;79244:2;18428:19;;79159:3;18480:4;18471:14;;-1:-1:-1;;;78959:45:65;;79173:74;-1:-1:-1;79256:93:65;78842:169;79389:419;79593:2;79606:47;;;79578:18;;79670:131;79578:18;79670:131;:::i;79814:1163::-;80173:3;80158:19;;80187:69;80162:9;80229:6;80187:69;:::i;:::-;80303:9;80297:4;80293:20;80288:2;80277:9;80273:18;80266:48;80331:76;80402:4;80393:6;80331:76;:::i;:::-;80323:84;;80417:70;80483:2;80472:9;80468:18;80459:6;80417:70;:::i;:::-;80497:72;80565:2;80554:9;80550:18;80541:6;80497:72;:::i;:::-;80579:73;80647:3;80636:9;80632:19;80623:6;80579:73;:::i;:::-;80662;80730:3;80719:9;80715:19;80706:6;80662:73;:::i;:::-;80783:9;80777:4;80773:20;80767:3;80756:9;80752:19;80745:49;80811:76;80882:4;80873:6;80811:76;:::i;:::-;80803:84;;80897:73;80965:3;80954:9;80950:19;80941:6;80897:73;:::i;:::-;79814:1163;;;;;;;;;;;:::o;80983:525::-;81186:2;81199:47;;;81171:18;;81263:76;81171:18;81325:6;81263:76;:::i;:::-;81255:84;;81349:70;81415:2;81404:9;81400:18;81391:6;81349:70;:::i;81696:366::-;81923:2;18428:19;;81838:3;18480:4;18471:14;;81654:28;81631:52;;81852:74;-1:-1:-1;81935:93:65;81514:176;82068:419;82272:2;82285:47;;;82257:18;;82349:131;82257:18;82349:131;:::i;82676:366::-;82903:2;18428:19;;82818:3;18480:4;18471:14;;82633:29;82610:53;;82832:74;-1:-1:-1;82915:93:65;82493:177;83048:419;83252:2;83265:47;;;83237:18;;83329:131;83237:18;83329:131;:::i;83700:366::-;83927:2;18428:19;;83842:3;18480:4;18471:14;;83613:34;83590:58;;-1:-1:-1;;;83677:2:65;83665:15;;83658:29;83856:74;-1:-1:-1;83939:93:65;83473:221;84072:419;84276:2;84289:47;;;84261:18;;84353:131;84261:18;84353:131;:::i;84738:366::-;84965:2;18428:19;;84880:3;18480:4;18471:14;;84637:34;84614:58;;-1:-1:-1;;;84701:2:65;84689:15;;84682:43;84894:74;-1:-1:-1;84977:93:65;84497:235;85110:419;85314:2;85327:47;;;85299:18;;85391:131;85299:18;85391:131;:::i;85683:1064::-;86022:3;86007:19;;86036:69;86011:9;86078:6;86036:69;:::i;:::-;86152:9;86146:4;86142:20;86137:2;86126:9;86122:18;86115:48;86180:76;86251:4;86242:6;86180:76;:::i;:::-;86172:84;;86303:9;86297:4;86293:20;86288:2;86277:9;86273:18;86266:48;86331:76;86402:4;86393:6;86331:76;:::i;:::-;86323:84;;86417:88;86501:2;86490:9;86486:18;86477:6;86417:88;:::i;:::-;86515:73;86583:3;86572:9;86568:19;86559:6;86515:73;:::i;:::-;86636:9;86630:4;86626:20;86620:3;86609:9;86605:19;86598:49;86664:76;86735:4;86726:6;86664:76;:::i;86753:957::-;87015:3;87030:71;87097:3;87088:6;87030:71;:::i;:::-;87126:1;87121:3;87117:11;87110:18;;87138:75;87209:3;87200:6;87138:75;:::i;:::-;87238:2;87233:3;87229:12;87222:19;;87251:73;87320:3;87311:6;87251:73;:::i;:::-;87349:1;87344:3;87340:11;87333:18;;87361:75;87432:3;87423:6;87361:75;:::i;:::-;87461:2;87456:3;87452:12;87445:19;;87474:73;87543:3;87534:6;87474:73;:::i;:::-;87572:1;87567:3;87563:11;87556:18;;87591:93;87680:3;87671:6;87591:93;:::i;87896:366::-;88123:2;18428:19;;88038:3;18480:4;18471:14;;87856:26;87833:50;;88052:74;-1:-1:-1;88135:93:65;87716:174;88268:419;88472:2;88485:47;;;88457:18;;88549:131;88457:18;88549:131;:::i;88877:366::-;89104:2;18428:19;;89019:3;18480:4;18471:14;;88833:30;88810:54;;89033:74;-1:-1:-1;89116:93:65;88693:178;89249:419;89453:2;89466:47;;;89438:18;;89530:131;89438:18;89530:131;:::i;89861:366::-;90088:2;18428:19;;90003:3;18480:4;18471:14;;89814:33;89791:57;;90017:74;-1:-1:-1;90100:93:65;89674:181;90233:419;90437:2;90450:47;;;90422:18;;90514:131;90422:18;90514:131;:::i;90844:366::-;91071:2;18428:19;;90986:3;18480:4;18471:14;;90798:32;90775:56;;91000:74;-1:-1:-1;91083:93:65;90658:180;91216:419;91420:2;91433:47;;;91405:18;;91497:131;91405:18;91497:131;:::i;91829:366::-;92056:2;18428:19;;;91781:34;18471:14;;91758:58;;;91971:3;92068:93;91641:182;92201:419;92405:2;92418:47;;;92390:18;;92482:131;92390:18;92482:131;:::i;92857:366::-;93084:2;18428:19;;92999:3;18480:4;18471:14;;92766:34;92743:58;;-1:-1:-1;;;92830:2:65;92818:15;;92811:33;93013:74;-1:-1:-1;93096:93:65;92626:225;93229:419;93433:2;93446:47;;;93418:18;;93510:131;93418:18;93510:131;:::i;93831:366::-;94058:2;18428:19;;93973:3;18480:4;18471:14;;-1:-1:-1;;;93771:47:65;;93987:74;-1:-1:-1;94070:93:65;93654:171;94203:419;94407:2;94420:47;;;94392:18;;94484:131;94392:18;94484:131;:::i;94804:366::-;95031:2;18428:19;;94946:3;18480:4;18471:14;;-1:-1:-1;;;94745:46:65;;94960:74;-1:-1:-1;95043:93:65;94628:170;95176:419;95380:2;95393:47;;;95365:18;;95457:131;95365:18;95457:131;:::i;95778:366::-;96005:2;18428:19;;95920:3;18480:4;18471:14;;-1:-1:-1;;;95718:47:65;;95934:74;-1:-1:-1;96017:93:65;95601:171;96150:419;96354:2;96367:47;;;96339:18;;96431:131;96339:18;96431:131;:::i;96760:366::-;96987:2;18428:19;;96902:3;18480:4;18471:14;;96715:31;96692:55;;96916:74;-1:-1:-1;96999:93:65;96575:179;97132:419;97336:2;97349:47;;;97321:18;;97413:131;97321:18;97413:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"4818200","executionCost":"infinite","totalCost":"infinite"},"external":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"406","NO_EXTRA_GAS()":"384","PT_SEND()":"369","PT_SEND_AND_CALL()":"389","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"infinite","chainIdToLast24HourReceiveWindowStart(uint16)":"infinite","chainIdToLast24HourReceived(uint16)":"infinite","chainIdToLast24HourTransferred(uint16)":"infinite","chainIdToLast24HourWindowStart(uint16)":"infinite","chainIdToMaxDailyLimit(uint16)":"infinite","chainIdToMaxDailyReceiveLimit(uint16)":"infinite","chainIdToMaxSingleReceiveTransactionLimit(uint16)":"infinite","chainIdToMaxSingleTransactionLimit(uint16)":"infinite","circulatingSupply()":"infinite","creditedPackets(uint16,bytes,uint64)":"infinite","dropFailedMessage(uint16,bytes,uint64)":"infinite","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"infinite","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"infinite","failedMessages(uint16,bytes,uint64)":"infinite","fallbackDeposit(address,uint256)":"infinite","fallbackWithdraw(address,uint256)":"infinite","forceResumeReceive(uint16,bytes)":"infinite","getConfig(uint16,uint16,address,uint256)":"infinite","getTrustedRemoteAddress(uint16)":"infinite","isEligibleToSend(address,uint16,uint256)":"infinite","isTrustedRemote(uint16,bytes)":"infinite","lzEndpoint()":"infinite","lzReceive(uint16,bytes,uint64,bytes)":"infinite","minDstGasLookup(uint16,uint16)":"infinite","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"infinite","oracle()":"infinite","outboundAmount()":"2484","owner()":"infinite","pause()":"infinite","paused()":"2438","payloadSizeLimitLookup(uint16)":"infinite","precrime()":"infinite","removeTrustedRemote(uint16)":"infinite","renounceOwnership()":"212","retryMessage(uint16,bytes,uint64,bytes)":"infinite","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"infinite","sendAndCallEnabled()":"2488","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"infinite","setConfig(uint16,uint16,uint256,bytes)":"infinite","setMaxDailyLimit(uint16,uint256)":"infinite","setMaxDailyReceiveLimit(uint16,uint256)":"infinite","setMaxSingleReceiveTransactionLimit(uint16,uint256)":"infinite","setMaxSingleTransactionLimit(uint16,uint256)":"infinite","setMinDstGas(uint16,uint16,uint256)":"infinite","setOracle(address)":"infinite","setPayloadSizeLimit(uint16,uint256)":"infinite","setPrecrime(address)":"infinite","setReceiveVersion(uint16)":"infinite","setSendVersion(uint16)":"infinite","setTrustedRemote(uint16,bytes)":"infinite","setTrustedRemoteAddress(uint16,bytes)":"infinite","setWhitelist(address,bool)":"infinite","sharedDecimals()":"infinite","supportsInterface(bytes4)":"infinite","sweepToken(address,address,uint256)":"infinite","token()":"infinite","transferOwnership(address)":"infinite","trustedRemoteLookup(uint16)":"infinite","unpause()":"infinite","updateSendAndCallEnabled(bool)":"infinite","whitelist(address)":"infinite"},"internal":{"_creditTo(uint16,address,uint256)":"infinite","_debitFrom(address,uint16,bytes32,uint256)":"infinite"}},"methodIdentifiers":{"DEFAULT_PAYLOAD_SIZE_LIMIT()":"c4461834","NO_EXTRA_GAS()":"44770515","PT_SEND()":"4c42899a","PT_SEND_AND_CALL()":"e6a20ae6","callOnOFTReceived(uint16,bytes,uint64,bytes32,address,uint256,bytes,uint256)":"eaffd49a","chainIdToLast24HourReceiveWindowStart(uint16)":"fdff235b","chainIdToLast24HourReceived(uint16)":"d708a468","chainIdToLast24HourTransferred(uint16)":"4cec6256","chainIdToLast24HourWindowStart(uint16)":"93a61d6c","chainIdToMaxDailyLimit(uint16)":"4f4ba0f4","chainIdToMaxDailyReceiveLimit(uint16)":"3c4ec39b","chainIdToMaxSingleReceiveTransactionLimit(uint16)":"90436567","chainIdToMaxSingleTransactionLimit(uint16)":"cc7015ae","circulatingSupply()":"9358928b","creditedPackets(uint16,bytes,uint64)":"9bdb9812","dropFailedMessage(uint16,bytes,uint64)":"84e69c69","estimateSendAndCallFee(uint16,bytes32,uint256,bytes,uint64,bool,bytes)":"a4c51df5","estimateSendFee(uint16,bytes32,uint256,bool,bytes)":"365260b4","failedMessages(uint16,bytes,uint64)":"5b8c41e6","fallbackDeposit(address,uint256)":"4be66720","fallbackWithdraw(address,uint256)":"48e4a04a","forceResumeReceive(uint16,bytes)":"42d65a8d","getConfig(uint16,uint16,address,uint256)":"f5ecbdbc","getTrustedRemoteAddress(uint16)":"9f38369a","isEligibleToSend(address,uint16,uint256)":"182b4b89","isTrustedRemote(uint16,bytes)":"3d8b38f6","lzEndpoint()":"b353aaa7","lzReceive(uint16,bytes,uint64,bytes)":"001d3567","minDstGasLookup(uint16,uint16)":"8cfd8f5c","nonblockingLzReceive(uint16,bytes,uint64,bytes)":"66ad5c8a","oracle()":"7dc0d1d0","outboundAmount()":"9689cb05","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","payloadSizeLimitLookup(uint16)":"3f1f4fa4","precrime()":"950c8a74","removeTrustedRemote(uint16)":"2dbbec08","renounceOwnership()":"715018a6","retryMessage(uint16,bytes,uint64,bytes)":"d1deba1f","sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":"76203b48","sendAndCallEnabled()":"c1e9132e","sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))":"695ef6bf","setConfig(uint16,uint16,uint256,bytes)":"cbed8b9c","setMaxDailyLimit(uint16,uint256)":"2488eec8","setMaxDailyReceiveLimit(uint16,uint256)":"69c1e7b8","setMaxSingleReceiveTransactionLimit(uint16,uint256)":"cc01e9b6","setMaxSingleTransactionLimit(uint16,uint256)":"53489d6c","setMinDstGas(uint16,uint16,uint256)":"df2a5b3b","setOracle(address)":"7adbf973","setPayloadSizeLimit(uint16,uint256)":"0df37483","setPrecrime(address)":"baf3292d","setReceiveVersion(uint16)":"10ddb137","setSendVersion(uint16)":"07e0db17","setTrustedRemote(uint16,bytes)":"eb8d72b7","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","setWhitelist(address,bool)":"53d6fd59","sharedDecimals()":"857749b0","supportsInterface(bytes4)":"01ffc9a7","sweepToken(address,address,uint256)":"64aff9ec","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","trustedRemoteLookup(uint16)":"7533d788","unpause()":"3f4ba83a","updateSendAndCallEnabled(bool)":"4ed2c662","whitelist(address)":"9b19251a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress_\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"sharedDecimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"lzEndpoint_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"CallOFTReceivedSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"DropFailedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"FallbackDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FallbackWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"innerToken\",\"type\":\"address\"}],\"name\":\"InnerTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_reason\",\"type\":\"bytes\"}],\"name\":\"MessageFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"NonContractAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"OracleChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ReceiveFromChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_payloadHash\",\"type\":\"bytes32\"}],\"name\":\"RetryMessageSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"SendToChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxDailyReceiveLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleReceiveTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxLimit\",\"type\":\"uint256\"}],\"name\":\"SetMaxSingleTransactionLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_minDstGas\",\"type\":\"uint256\"}],\"name\":\"SetMinDstGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"precrime\",\"type\":\"address\"}],\"name\":\"SetPrecrime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"SetTrustedRemoteAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isWhitelist\",\"type\":\"bool\"}],\"name\":\"SetWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sweepAmount\",\"type\":\"uint256\"}],\"name\":\"SweepToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"TrustedRemoteRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"UpdateSendAndCallEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_PAYLOAD_SIZE_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NO_EXTRA_GAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PT_SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"_from\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_gasForCall\",\"type\":\"uint256\"}],\"name\":\"callOnOFTReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceiveWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourTransferred\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToLast24HourWindowStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxDailyReceiveLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleReceiveTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"chainIdToMaxSingleTransactionLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"circulatingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"creditedPackets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"srcChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"nonce_\",\"type\":\"uint64\"}],\"name\":\"dropFailedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_dstGasForCall\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendAndCallFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_useZro\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_adapterParams\",\"type\":\"bytes\"}],\"name\":\"estimateSendFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zroFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"failedMessages\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"fallbackDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"fallbackWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"forceResumeReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"}],\"name\":\"getConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"}],\"name\":\"getTrustedRemoteAddress\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"isEligibleToSend\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"eligibleToSend\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxSingleTransactionLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDailyLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInUsd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"transferredInWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"last24HourWindowStart\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isWhiteListedUser\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lzEndpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"minDstGasLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"nonblockingLzReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract ResilientOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"outboundAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"payloadSizeLimitLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"precrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId_\",\"type\":\"uint16\"}],\"name\":\"removeTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"retryMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from_\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId_\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"toAddress_\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload_\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"dstGasForCall_\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"callparams_\",\"type\":\"tuple\"}],\"name\":\"sendAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendAndCallEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"_toAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"refundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zroPaymentAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"adapterParams\",\"type\":\"bytes\"}],\"internalType\":\"struct ICommonOFT.LzCallParams\",\"name\":\"_callParams\",\"type\":\"tuple\"}],\"name\":\"sendFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_configType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_config\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxDailyReceiveLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleReceiveTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"chainId_\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"limit_\",\"type\":\"uint256\"}],\"name\":\"setMaxSingleTransactionLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"_packetType\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_minGas\",\"type\":\"uint256\"}],\"name\":\"setMinDstGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracleAddress_\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_size\",\"type\":\"uint256\"}],\"name\":\"setPayloadSizeLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_precrime\",\"type\":\"address\"}],\"name\":\"setPrecrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setReceiveVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_version\",\"type\":\"uint16\"}],\"name\":\"setSendVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_path\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_remoteAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"val_\",\"type\":\"bool\"}],\"name\":\"setWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"trustedRemoteLookup\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled_\",\"type\":\"bool\"}],\"name\":\"updateSendAndCallEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ReceiveFromChain(uint16,address,uint256)\":{\"details\":\"Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain. `_nonce` is the inbound nonce.\"},\"SendToChain(uint16,address,bytes32,uint256)\":{\"details\":\"Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`) `_nonce` is the outbound nonce\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"circulatingSupply()\":{\"returns\":{\"_0\":\"Returns difference in total supply and the outbound amount.\"}},\"dropFailedMessage(uint16,bytes,uint64)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits DropFailedMessage on clearance of failed message.\",\"params\":{\"nonce_\":\"Nonce_ of the transaction\",\"srcAddress_\":\"Address of source followed by current bridge address\",\"srcChainId_\":\"Chain id of source\"}},\"estimateSendFee(uint16,bytes32,uint256,bool,bytes)\":{\"details\":\"estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`) _dstChainId - L0 defined chain id to send tokens too _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain _amount - amount of the tokens to transfer _useZro - indicates to use zro to pay L0 fees _adapterParam - flexible bytes array to indicate messaging adapter services in L0\"},\"fallbackDeposit(address,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits FallbackDeposit, once done with transfer.\",\"params\":{\"amount_\":\"The amount of tokens to lock.\",\"depositor_\":\"Address of the depositor.\"}},\"fallbackWithdraw(address,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits FallbackWithdraw, once done with transfer.\",\"params\":{\"amount_\":\"The amount of withdrawal\",\"to_\":\"The address to withdraw to\"}},\"isEligibleToSend(address,uint16,uint256)\":{\"details\":\"This external view function assesses whether the specified sender is eligible to transfer the given amount      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\",\"params\":{\"amount_\":\"The quantity of tokens to be transferred.\",\"dstChainId_\":\"Indicates destination chain.\",\"from_\":\"The sender's address initiating the transfer.\"},\"returns\":{\"amountInUsd\":\"The equivalent amount in USD based on the oracle price.\",\"eligibleToSend\":\"A boolean indicating whether the sender is eligible to transfer the tokens.\",\"isWhiteListedUser\":\"A boolean indicating whether the sender is whitelisted.\",\"last24HourWindowStart\":\"The timestamp when the current 24-hour window started.\",\"maxDailyLimit\":\"The maximum daily limit for transactions.\",\"maxSingleTransactionLimit\":\"The maximum limit for a single transaction.\",\"transferredInWindow\":\"The total amount transferred in the current 24-hour window.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Only owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"removeTrustedRemote(uint16)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\",\"params\":{\"remoteChainId_\":\"The chain's id corresponds to setting the trusted remote to empty.\"}},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"details\":\"This internal override function enables the contract to send tokens and invoke calls on the specified      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\",\"params\":{\"amount_\":\"Amount of tokens that will be transferred.\",\"callparams_\":\"Additional parameters, including refund address, ZRO payment address,                   and adapter params.\",\"dstChainId_\":\"Destination chain id on which tokens will be send.\",\"dstGasForCall_\":\"The amount of gas allocated for the call on the destination chain.\",\"from_\":\"Address from which tokens will be debited.\",\"payload_\":\"Additional data payload for the call on the destination chain.\",\"toAddress_\":\"Address on which tokens will be credited on destination chain.\"}},\"sendFrom(address,uint16,bytes32,uint256,(address,address,bytes))\":{\"details\":\"send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from` `_from` the owner of token `_dstChainId` the destination chain identifier `_toAddress` can be any size depending on the `dstChainId`. `_amount` the quantity of tokens in wei `_refundAddress` the address LayerZero refunds if too much message fee is sent `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token) `_adapterParams` is a flexible bytes array to indicate messaging adapter services\"},\"setMaxDailyLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum daily limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"The destination chain ID.\",\"limit_\":\"The new maximum limit in USD(scaled with 18 decimals).\"}},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\",\"params\":{\"chainId_\":\"Destination chain id.\",\"limit_\":\"Amount in USD(scaled with 18 decimals).\"}},\"setOracle(address)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits OracleChanged with old and new oracle address.\",\"details\":\"Reverts if the new address is zero.\",\"params\":{\"oracleAddress_\":\"The new address of the ResilientOracle contract.\"}},\"setWhitelist(address,bool)\":{\"custom:access\":\"Only owner.\",\"custom:event\":\"Emits setWhitelist.\",\"params\":{\"user_\":\"Address to be add in whitelist.\",\"val_\":\"Boolean to be set (true for user_ address is whitelisted).\"}},\"sweepToken(address,address,uint256)\":{\"custom:access\":\"Only Owner\",\"custom:error\":\"Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\",\"custom:event\":\"Emits SweepToken event\",\"params\":{\"amount_\":\"The amount of tokens needs to transfer\",\"to_\":\"The address of the recipient\",\"token_\":\"The address of the ERC-20 token to sweep\"}},\"token()\":{\"returns\":{\"_0\":\"Address of the inner token of this bridge.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Only owner.\"},\"updateSendAndCallEnabled(bool)\":{\"params\":{\"enabled_\":\"Boolean indicating whether the sendAndCall function should be enabled or disabled.\"}}},\"title\":\"XVSProxyOFTSrc\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Error thrown when this contract balance is less than sweep amount\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"DropFailedMessage(uint16,bytes,uint64)\":{\"notice\":\"Emits when stored message dropped without successful retrying.\"},\"FallbackDeposit(address,uint256)\":{\"notice\":\"Event emitted when tokens are forcefully locked.\"},\"FallbackWithdraw(address,uint256)\":{\"notice\":\"Emits when locked token released manually by owner.\"},\"InnerTokenAdded(address)\":{\"notice\":\"Event emitted when inner token set successfully.\"},\"OracleChanged(address,address)\":{\"notice\":\"Event emitted when oracle is modified.\"},\"SetMaxDailyLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit of transactions from local chain is modified.\"},\"SetMaxDailyReceiveLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\"},\"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single receive transaction from remote chain is modified.\"},\"SetMaxSingleTransactionLimit(uint16,uint256,uint256)\":{\"notice\":\"Emitted when the maximum limit for a single transaction from local chain is modified.\"},\"SetWhitelist(address,bool)\":{\"notice\":\"Emitted when address is added to whitelist.\"},\"SweepToken(address,address,uint256)\":{\"notice\":\"Emitted on sweep token success\"},\"TrustedRemoteRemoved(uint16)\":{\"notice\":\"Event emitted when trusted remote sets to empty.\"},\"UpdateSendAndCallEnabled(bool)\":{\"notice\":\"Event emitted when SendAndCallEnabled updated successfully.\"}},\"kind\":\"user\",\"methods\":{\"chainIdToLast24HourReceiveWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from remote chain.\"},\"chainIdToLast24HourReceived(uint16)\":{\"notice\":\"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\"},\"chainIdToLast24HourTransferred(uint16)\":{\"notice\":\"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\"},\"chainIdToLast24HourWindowStart(uint16)\":{\"notice\":\"Timestamp when the last 24-hour window started from local chain.\"},\"chainIdToMaxDailyLimit(uint16)\":{\"notice\":\"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\"},\"chainIdToMaxDailyReceiveLimit(uint16)\":{\"notice\":\"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleReceiveTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\"},\"chainIdToMaxSingleTransactionLimit(uint16)\":{\"notice\":\"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\"},\"circulatingSupply()\":{\"notice\":\"Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract).\"},\"dropFailedMessage(uint16,bytes,uint64)\":{\"notice\":\"Clear failed messages from the storage.\"},\"fallbackDeposit(address,uint256)\":{\"notice\":\"Forces the lock of tokens by increasing outbound amount and transferring tokens from the sender to the contract.\"},\"fallbackWithdraw(address,uint256)\":{\"notice\":\"Only call it when there is no way to recover the failed message. `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending.\"},\"isEligibleToSend(address,uint16,uint256)\":{\"notice\":\"Checks the eligibility of a sender to initiate a cross-chain token transfer.\"},\"oracle()\":{\"notice\":\"The address of ResilientOracle contract wrapped in its interface.\"},\"outboundAmount()\":{\"notice\":\"Total amount that is transferred from this chain to other chains.\"},\"pause()\":{\"notice\":\"Triggers stopped state of the bridge.\"},\"removeTrustedRemote(uint16)\":{\"notice\":\"Remove trusted remote from storage.\"},\"renounceOwnership()\":{\"notice\":\"Empty implementation of renounce ownership to avoid any mishappening.\"},\"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))\":{\"notice\":\"Initiates a cross-chain token transfer and triggers a call on the destination chain.\"},\"setMaxDailyLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of daily (24 Hour) transactions amount.\"},\"setMaxDailyReceiveLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum daily limit for receiving transactions.\"},\"setMaxSingleReceiveTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the maximum limit for a single receive transaction.\"},\"setMaxSingleTransactionLimit(uint16,uint256)\":{\"notice\":\"Sets the limit of single transaction amount.\"},\"setOracle(address)\":{\"notice\":\"Set the address of the ResilientOracle contract.\"},\"setWhitelist(address,bool)\":{\"notice\":\"Sets the whitelist address to skip checks on transaction limit.\"},\"sweepToken(address,address,uint256)\":{\"notice\":\"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\"},\"token()\":{\"notice\":\"Return's the address of the inner token of this bridge.\"},\"unpause()\":{\"notice\":\"Triggers resume state of the bridge.\"},\"updateSendAndCallEnabled(bool)\":{\"notice\":\"It enables or disables sendAndCall functionality for the bridge.\"},\"whitelist(address)\":{\"notice\":\"Address on which cap check and bound limit is not applicable.\"}},\"notice\":\"XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions, focusing on the source side of these transactions. It monitors the total amount transferred to other chains, ensuring it complies with defined limits, and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/XVSProxyOFTSrc.sol\":\"XVSProxyOFTSrc\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/libraries/BytesLib.sol\":{\"content\":\"// SPDX-License-Identifier: Unlicense\\n/*\\n * @title Solidity Bytes Arrays Utils\\n * @author Gon\\u00e7alo S\\u00e1 <goncalo.sa@consensys.net>\\n *\\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\\n *      The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\\n */\\npragma solidity >=0.8.0 <0.9.0;\\n\\nlibrary BytesLib {\\n    function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes memory) {\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            // Get a location of some free memory and store it in tempBytes as\\n            // Solidity does for memory variables.\\n            tempBytes := mload(0x40)\\n\\n            // Store the length of the first bytes array at the beginning of\\n            // the memory for tempBytes.\\n            let length := mload(_preBytes)\\n            mstore(tempBytes, length)\\n\\n            // Maintain a memory counter for the current write location in the\\n            // temp bytes array by adding the 32 bytes for the array length to\\n            // the starting location.\\n            let mc := add(tempBytes, 0x20)\\n            // Stop copying when the memory counter reaches the length of the\\n            // first bytes array.\\n            let end := add(mc, length)\\n\\n            for {\\n                // Initialize a copy counter to the start of the _preBytes data,\\n                // 32 bytes into its memory.\\n                let cc := add(_preBytes, 0x20)\\n            } lt(mc, end) {\\n                // Increase both counters by 32 bytes each iteration.\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                // Write the _preBytes data into the tempBytes memory 32 bytes\\n                // at a time.\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Add the length of _postBytes to the current length of tempBytes\\n            // and store it as the new length in the first 32 bytes of the\\n            // tempBytes memory.\\n            length := mload(_postBytes)\\n            mstore(tempBytes, add(length, mload(tempBytes)))\\n\\n            // Move the memory counter back from a multiple of 0x20 to the\\n            // actual end of the _preBytes data.\\n            mc := end\\n            // Stop copying when the memory counter reaches the new combined\\n            // length of the arrays.\\n            end := add(mc, length)\\n\\n            for {\\n                let cc := add(_postBytes, 0x20)\\n            } lt(mc, end) {\\n                mc := add(mc, 0x20)\\n                cc := add(cc, 0x20)\\n            } {\\n                mstore(mc, mload(cc))\\n            }\\n\\n            // Update the free-memory pointer by padding our last write location\\n            // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\\n            // next 32 byte block, then round down to the nearest multiple of\\n            // 32. If the sum of the length of the two arrays is zero then add\\n            // one before rounding down to leave a blank 32 bytes (the length block with 0).\\n            mstore(\\n                0x40,\\n                and(\\n                    add(add(end, iszero(add(length, mload(_preBytes)))), 31),\\n                    not(31) // Round down to the nearest 32 bytes.\\n                )\\n            )\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\\n        assembly {\\n            // Read the first 32 bytes of _preBytes storage, which is the length\\n            // of the array. (We don't need to use the offset into the slot\\n            // because arrays use the entire slot.)\\n            let fslot := sload(_preBytes.slot)\\n            // Arrays of 31 bytes or less have an even value in their slot,\\n            // while longer arrays have an odd value. The actual length is\\n            // the slot divided by two for odd values, and the lowest order\\n            // byte divided by two for even values.\\n            // If the slot is even, bitwise and the slot with 255 and divide by\\n            // two to get the length. If the slot is odd, bitwise and the slot\\n            // with -1 and divide by two.\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n            let newlength := add(slength, mlength)\\n            // slength can contain both the length and contents of the array\\n            // if length < 32 bytes so let's prepare for that\\n            // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n            switch add(lt(slength, 32), lt(newlength, 32))\\n            case 2 {\\n                // Since the new array still fits in the slot, we just need to\\n                // update the contents of the slot.\\n                // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\\n                sstore(\\n                    _preBytes.slot,\\n                    // all the modifications to the slot are inside this\\n                    // next block\\n                    add(\\n                        // we can just add to the slot contents because the\\n                        // bytes we want to change are the LSBs\\n                        fslot,\\n                        add(\\n                            mul(\\n                                div(\\n                                    // load the bytes from memory\\n                                    mload(add(_postBytes, 0x20)),\\n                                    // zero all bytes to the right\\n                                    exp(0x100, sub(32, mlength))\\n                                ),\\n                                // and now shift left the number of bytes to\\n                                // leave space for the length in the slot\\n                                exp(0x100, sub(32, newlength))\\n                            ),\\n                            // increase length by the double of the memory\\n                            // bytes length\\n                            mul(mlength, 2)\\n                        )\\n                    )\\n                )\\n            }\\n            case 1 {\\n                // The stored value fits in the slot, but the combined value\\n                // will exceed it.\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // The contents of the _postBytes array start 32 bytes into\\n                // the structure. Our first read should obtain the `submod`\\n                // bytes that can fit into the unused space in the last word\\n                // of the stored array. To get this, we read 32 bytes starting\\n                // from `submod`, so the data we read overlaps with the array\\n                // contents by `submod` bytes. Masking the lowest-order\\n                // `submod` bytes allows us to add that value directly to the\\n                // stored value.\\n\\n                let submod := sub(32, slength)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\\n\\n                for {\\n                    mc := add(mc, 0x20)\\n                    sc := add(sc, 1)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n            default {\\n                // get the keccak hash to get the contents of the array\\n                mstore(0x0, _preBytes.slot)\\n                // Start copying to the last used word of the stored array.\\n                let sc := add(keccak256(0x0, 0x20), div(slength, 32))\\n\\n                // save new length\\n                sstore(_preBytes.slot, add(mul(newlength, 2), 1))\\n\\n                // Copy over the first `submod` bytes of the new data as in\\n                // case 1 above.\\n                let slengthmod := mod(slength, 32)\\n                let mlengthmod := mod(mlength, 32)\\n                let submod := sub(32, slengthmod)\\n                let mc := add(_postBytes, submod)\\n                let end := add(_postBytes, mlength)\\n                let mask := sub(exp(0x100, submod), 1)\\n\\n                sstore(sc, add(sload(sc), and(mload(mc), mask)))\\n\\n                for {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } lt(mc, end) {\\n                    sc := add(sc, 1)\\n                    mc := add(mc, 0x20)\\n                } {\\n                    sstore(sc, mload(mc))\\n                }\\n\\n                mask := exp(0x100, sub(mc, end))\\n\\n                sstore(sc, mul(div(mload(mc), mask), mask))\\n            }\\n        }\\n    }\\n\\n    function slice(\\n        bytes memory _bytes,\\n        uint _start,\\n        uint _length\\n    ) internal pure returns (bytes memory) {\\n        require(_length + 31 >= _length, \\\"slice_overflow\\\");\\n        require(_bytes.length >= _start + _length, \\\"slice_outOfBounds\\\");\\n\\n        bytes memory tempBytes;\\n\\n        assembly {\\n            switch iszero(_length)\\n            case 0 {\\n                // Get a location of some free memory and store it in tempBytes as\\n                // Solidity does for memory variables.\\n                tempBytes := mload(0x40)\\n\\n                // The first word of the slice result is potentially a partial\\n                // word read from the original array. To read it, we calculate\\n                // the length of that partial word and start copying that many\\n                // bytes into the array. The first word we copy will start with\\n                // data we don't care about, but the last `lengthmod` bytes will\\n                // land at the beginning of the contents of the new array. When\\n                // we're done copying, we overwrite the full first word with\\n                // the actual length of the slice.\\n                let lengthmod := and(_length, 31)\\n\\n                // The multiplication in the next line is necessary\\n                // because when slicing multiples of 32 bytes (lengthmod == 0)\\n                // the following copy loop was copying the origin's length\\n                // and then ending prematurely not copying everything it should.\\n                let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\\n                let end := add(mc, _length)\\n\\n                for {\\n                    // The multiplication in the next line has the same exact purpose\\n                    // as the one above.\\n                    let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\\n                } lt(mc, end) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    mstore(mc, mload(cc))\\n                }\\n\\n                mstore(tempBytes, _length)\\n\\n                //update free-memory pointer\\n                //allocating the array padded to 32 bytes like the compiler does now\\n                mstore(0x40, and(add(mc, 31), not(31)))\\n            }\\n            //if we want a zero-length slice let's just return a zero-length array\\n            default {\\n                tempBytes := mload(0x40)\\n                //zero out the 32 bytes slice we are about to return\\n                //we need to do it because Solidity does not garbage collect\\n                mstore(tempBytes, 0)\\n\\n                mstore(0x40, add(tempBytes, 0x20))\\n            }\\n        }\\n\\n        return tempBytes;\\n    }\\n\\n    function toAddress(bytes memory _bytes, uint _start) internal pure returns (address) {\\n        require(_bytes.length >= _start + 20, \\\"toAddress_outOfBounds\\\");\\n        address tempAddress;\\n\\n        assembly {\\n            tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\\n        }\\n\\n        return tempAddress;\\n    }\\n\\n    function toUint8(bytes memory _bytes, uint _start) internal pure returns (uint8) {\\n        require(_bytes.length >= _start + 1, \\\"toUint8_outOfBounds\\\");\\n        uint8 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x1), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint16(bytes memory _bytes, uint _start) internal pure returns (uint16) {\\n        require(_bytes.length >= _start + 2, \\\"toUint16_outOfBounds\\\");\\n        uint16 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x2), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint32(bytes memory _bytes, uint _start) internal pure returns (uint32) {\\n        require(_bytes.length >= _start + 4, \\\"toUint32_outOfBounds\\\");\\n        uint32 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x4), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint64(bytes memory _bytes, uint _start) internal pure returns (uint64) {\\n        require(_bytes.length >= _start + 8, \\\"toUint64_outOfBounds\\\");\\n        uint64 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x8), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint96(bytes memory _bytes, uint _start) internal pure returns (uint96) {\\n        require(_bytes.length >= _start + 12, \\\"toUint96_outOfBounds\\\");\\n        uint96 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0xc), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint128(bytes memory _bytes, uint _start) internal pure returns (uint128) {\\n        require(_bytes.length >= _start + 16, \\\"toUint128_outOfBounds\\\");\\n        uint128 tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x10), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toUint256(bytes memory _bytes, uint _start) internal pure returns (uint) {\\n        require(_bytes.length >= _start + 32, \\\"toUint256_outOfBounds\\\");\\n        uint tempUint;\\n\\n        assembly {\\n            tempUint := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempUint;\\n    }\\n\\n    function toBytes32(bytes memory _bytes, uint _start) internal pure returns (bytes32) {\\n        require(_bytes.length >= _start + 32, \\\"toBytes32_outOfBounds\\\");\\n        bytes32 tempBytes32;\\n\\n        assembly {\\n            tempBytes32 := mload(add(add(_bytes, 0x20), _start))\\n        }\\n\\n        return tempBytes32;\\n    }\\n\\n    function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            let length := mload(_preBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(length, mload(_postBytes))\\n            case 1 {\\n                // cb is a circuit breaker in the for loop since there's\\n                //  no said feature for inline assembly loops\\n                // cb = 1 - don't breaker\\n                // cb = 0 - break\\n                let cb := 1\\n\\n                let mc := add(_preBytes, 0x20)\\n                let end := add(mc, length)\\n\\n                for {\\n                    let cc := add(_postBytes, 0x20)\\n                    // the next line is the loop condition:\\n                    // while(uint256(mc < end) + cb == 2)\\n                } eq(add(lt(mc, end), cb), 2) {\\n                    mc := add(mc, 0x20)\\n                    cc := add(cc, 0x20)\\n                } {\\n                    // if any of these checks fails then arrays are not equal\\n                    if iszero(eq(mload(mc), mload(cc))) {\\n                        // unsuccess:\\n                        success := 0\\n                        cb := 0\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n\\n    function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) {\\n        bool success = true;\\n\\n        assembly {\\n            // we know _preBytes_offset is 0\\n            let fslot := sload(_preBytes.slot)\\n            // Decode the length of the stored array like in concatStorage().\\n            let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\\n            let mlength := mload(_postBytes)\\n\\n            // if lengths don't match the arrays are not equal\\n            switch eq(slength, mlength)\\n            case 1 {\\n                // slength can contain both the length and contents of the array\\n                // if length < 32 bytes so let's prepare for that\\n                // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\\n                if iszero(iszero(slength)) {\\n                    switch lt(slength, 32)\\n                    case 1 {\\n                        // blank the last byte which is the length\\n                        fslot := mul(div(fslot, 0x100), 0x100)\\n\\n                        if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\\n                            // unsuccess:\\n                            success := 0\\n                        }\\n                    }\\n                    default {\\n                        // cb is a circuit breaker in the for loop since there's\\n                        //  no said feature for inline assembly loops\\n                        // cb = 1 - don't breaker\\n                        // cb = 0 - break\\n                        let cb := 1\\n\\n                        // get the keccak hash to get the contents of the array\\n                        mstore(0x0, _preBytes.slot)\\n                        let sc := keccak256(0x0, 0x20)\\n\\n                        let mc := add(_postBytes, 0x20)\\n                        let end := add(mc, mlength)\\n\\n                        // the next line is the loop condition:\\n                        // while(uint256(mc < end) + cb == 2)\\n                        for {\\n\\n                        } eq(add(lt(mc, end), cb), 2) {\\n                            sc := add(sc, 1)\\n                            mc := add(mc, 0x20)\\n                        } {\\n                            if iszero(eq(sload(sc), mload(mc))) {\\n                                // unsuccess:\\n                                success := 0\\n                                cb := 0\\n                            }\\n                        }\\n                    }\\n                }\\n            }\\n            default {\\n                // unsuccess:\\n                success := 0\\n            }\\n        }\\n\\n        return success;\\n    }\\n}\\n\",\"keccak256\":\"0x7e64cccdf22a03f513d94960f2145dd801fb5ec88d971de079b5186a9f5e93c4\",\"license\":\"Unlicense\"},\"@layerzerolabs/solidity-examples/contracts/libraries/ExcessivelySafeCall.sol\":{\"content\":\"// SPDX-License-Identifier: MIT OR Apache-2.0\\npragma solidity >=0.7.6;\\n\\nlibrary ExcessivelySafeCall {\\n    uint constant LOW_28_MASK = 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := call(\\n                _gas, // gas\\n                _target, // recipient\\n                0, // ether value\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /// @notice Use when you _really_ really _really_ don't trust the called\\n    /// contract. This prevents the called contract from causing reversion of\\n    /// the caller in as many ways as we can.\\n    /// @dev The main difference between this and a solidity low-level call is\\n    /// that we limit the number of bytes that the callee can cause to be\\n    /// copied to caller memory. This prevents stupid things like malicious\\n    /// contracts returning 10,000,000 bytes causing a local OOG when copying\\n    /// to memory.\\n    /// @param _target The address to call\\n    /// @param _gas The amount of gas to forward to the remote contract\\n    /// @param _maxCopy The maximum number of bytes of returndata to copy\\n    /// to memory.\\n    /// @param _calldata The data to send to the remote contract\\n    /// @return success and returndata, as `.call()`. Returndata is capped to\\n    /// `_maxCopy` bytes.\\n    function excessivelySafeStaticCall(\\n        address _target,\\n        uint _gas,\\n        uint16 _maxCopy,\\n        bytes memory _calldata\\n    ) internal view returns (bool, bytes memory) {\\n        // set up for assembly call\\n        uint _toCopy;\\n        bool _success;\\n        bytes memory _returnData = new bytes(_maxCopy);\\n        // dispatch message to recipient\\n        // by assembly calling \\\"handle\\\" function\\n        // we call via assembly to avoid memcopying a very large returndata\\n        // returned by a malicious contract\\n        assembly {\\n            _success := staticcall(\\n                _gas, // gas\\n                _target, // recipient\\n                add(_calldata, 0x20), // inloc\\n                mload(_calldata), // inlen\\n                0, // outloc\\n                0 // outlen\\n            )\\n            // limit our copy to 256 bytes\\n            _toCopy := returndatasize()\\n            if gt(_toCopy, _maxCopy) {\\n                _toCopy := _maxCopy\\n            }\\n            // Store the length of the copied bytes\\n            mstore(_returnData, _toCopy)\\n            // copy the bytes from returndata[0:_toCopy]\\n            returndatacopy(add(_returnData, 0x20), 0, _toCopy)\\n        }\\n        return (_success, _returnData);\\n    }\\n\\n    /**\\n     * @notice Swaps function selectors in encoded contract calls\\n     * @dev Allows reuse of encoded calldata for functions with identical\\n     * argument types but different names. It simply swaps out the first 4 bytes\\n     * for the new selector. This function modifies memory in place, and should\\n     * only be used with caution.\\n     * @param _newSelector The new 4-byte selector\\n     * @param _buf The encoded contract args\\n     */\\n    function swapSelector(bytes4 _newSelector, bytes memory _buf) internal pure {\\n        require(_buf.length >= 4);\\n        uint _mask = LOW_28_MASK;\\n        assembly {\\n            // load the first word of\\n            let _word := mload(add(_buf, 0x20))\\n            // mask out the top 4 bytes\\n            // /x\\n            _word := and(_word, _mask)\\n            _word := or(_newSelector, _word)\\n            mstore(add(_buf, 0x20), _word)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd4e52af409b5ec80432292d86fb01906785eb78ac31da3bab4565aabcd6e3e56\",\"license\":\"MIT OR Apache-2.0\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/LzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport \\\"./interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"./interfaces/ILayerZeroUserApplicationConfig.sol\\\";\\nimport \\\"./interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libraries/BytesLib.sol\\\";\\n\\n/*\\n * a generic LzReceiver implementation\\n */\\nabstract contract LzApp is Ownable, ILayerZeroReceiver, ILayerZeroUserApplicationConfig {\\n    using BytesLib for bytes;\\n\\n    // ua can not send payload larger than this by default, but it can be changed by the ua owner\\n    uint public constant DEFAULT_PAYLOAD_SIZE_LIMIT = 10000;\\n\\n    ILayerZeroEndpoint public immutable lzEndpoint;\\n    mapping(uint16 => bytes) public trustedRemoteLookup;\\n    mapping(uint16 => mapping(uint16 => uint)) public minDstGasLookup;\\n    mapping(uint16 => uint) public payloadSizeLimitLookup;\\n    address public precrime;\\n\\n    event SetPrecrime(address precrime);\\n    event SetTrustedRemote(uint16 _remoteChainId, bytes _path);\\n    event SetTrustedRemoteAddress(uint16 _remoteChainId, bytes _remoteAddress);\\n    event SetMinDstGas(uint16 _dstChainId, uint16 _type, uint _minDstGas);\\n\\n    constructor(address _endpoint) {\\n        lzEndpoint = ILayerZeroEndpoint(_endpoint);\\n    }\\n\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual override {\\n        // lzReceive must be called by the endpoint for security\\n        require(_msgSender() == address(lzEndpoint), \\\"LzApp: invalid endpoint caller\\\");\\n\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // if will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length && trustedRemote.length > 0 && keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n\\n        _blockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    // abstract function - the default behaviour of LayerZero is blocking. See: NonblockingLzApp if you dont need to enforce ordered messaging\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function _lzSend(\\n        uint16 _dstChainId,\\n        bytes memory _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams,\\n        uint _nativeFee\\n    ) internal virtual {\\n        bytes memory trustedRemote = trustedRemoteLookup[_dstChainId];\\n        require(trustedRemote.length != 0, \\\"LzApp: destination chain is not a trusted source\\\");\\n        _checkPayloadSize(_dstChainId, _payload.length);\\n        lzEndpoint.send{value: _nativeFee}(_dstChainId, trustedRemote, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);\\n    }\\n\\n    function _checkGasLimit(\\n        uint16 _dstChainId,\\n        uint16 _type,\\n        bytes memory _adapterParams,\\n        uint _extraGas\\n    ) internal view virtual {\\n        uint providedGasLimit = _getGasLimit(_adapterParams);\\n        uint minGasLimit = minDstGasLookup[_dstChainId][_type];\\n        require(minGasLimit > 0, \\\"LzApp: minGasLimit not set\\\");\\n        require(providedGasLimit >= minGasLimit + _extraGas, \\\"LzApp: gas limit is too low\\\");\\n    }\\n\\n    function _getGasLimit(bytes memory _adapterParams) internal pure virtual returns (uint gasLimit) {\\n        require(_adapterParams.length >= 34, \\\"LzApp: invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    function _checkPayloadSize(uint16 _dstChainId, uint _payloadSize) internal view virtual {\\n        uint payloadSizeLimit = payloadSizeLimitLookup[_dstChainId];\\n        if (payloadSizeLimit == 0) {\\n            // use default if not set\\n            payloadSizeLimit = DEFAULT_PAYLOAD_SIZE_LIMIT;\\n        }\\n        require(_payloadSize <= payloadSizeLimit, \\\"LzApp: payload size is too large\\\");\\n    }\\n\\n    //---------------------------UserApplication config----------------------------------------\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address,\\n        uint _configType\\n    ) external view returns (bytes memory) {\\n        return lzEndpoint.getConfig(_version, _chainId, address(this), _configType);\\n    }\\n\\n    // generic config for LayerZero user Application\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external override onlyOwner {\\n        lzEndpoint.setConfig(_version, _chainId, _configType, _config);\\n    }\\n\\n    function setSendVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setSendVersion(_version);\\n    }\\n\\n    function setReceiveVersion(uint16 _version) external override onlyOwner {\\n        lzEndpoint.setReceiveVersion(_version);\\n    }\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override onlyOwner {\\n        lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress);\\n    }\\n\\n    // _path = abi.encodePacked(remoteAddress, localAddress)\\n    // this function set the trusted path for the cross-chain communication\\n    function setTrustedRemote(uint16 _remoteChainId, bytes calldata _path) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = _path;\\n        emit SetTrustedRemote(_remoteChainId, _path);\\n    }\\n\\n    function setTrustedRemoteAddress(uint16 _remoteChainId, bytes calldata _remoteAddress) external onlyOwner {\\n        trustedRemoteLookup[_remoteChainId] = abi.encodePacked(_remoteAddress, address(this));\\n        emit SetTrustedRemoteAddress(_remoteChainId, _remoteAddress);\\n    }\\n\\n    function getTrustedRemoteAddress(uint16 _remoteChainId) external view returns (bytes memory) {\\n        bytes memory path = trustedRemoteLookup[_remoteChainId];\\n        require(path.length != 0, \\\"LzApp: no trusted path record\\\");\\n        return path.slice(0, path.length - 20); // the last 20 bytes should be address(this)\\n    }\\n\\n    function setPrecrime(address _precrime) external onlyOwner {\\n        precrime = _precrime;\\n        emit SetPrecrime(_precrime);\\n    }\\n\\n    function setMinDstGas(\\n        uint16 _dstChainId,\\n        uint16 _packetType,\\n        uint _minGas\\n    ) external onlyOwner {\\n        minDstGasLookup[_dstChainId][_packetType] = _minGas;\\n        emit SetMinDstGas(_dstChainId, _packetType, _minGas);\\n    }\\n\\n    // if the size is 0, it means default size limit\\n    function setPayloadSizeLimit(uint16 _dstChainId, uint _size) external onlyOwner {\\n        payloadSizeLimitLookup[_dstChainId] = _size;\\n    }\\n\\n    //--------------------------- VIEW FUNCTION ----------------------------------------\\n    function isTrustedRemote(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool) {\\n        bytes memory trustedSource = trustedRemoteLookup[_srcChainId];\\n        return keccak256(trustedSource) == keccak256(_srcAddress);\\n    }\\n}\\n\",\"keccak256\":\"0x309c994bdcf69ad63c6789694a28eb72a773e2d9db58fe572ab2b34a475972ce\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/NonblockingLzApp.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./LzApp.sol\\\";\\nimport \\\"../libraries/ExcessivelySafeCall.sol\\\";\\n\\n/*\\n * the default LayerZero messaging behaviour is blocking, i.e. any failed message will block the channel\\n * this abstract class try-catch all fail messages and store locally for future retry. hence, non-blocking\\n * NOTE: if the srcAddress is not configured properly, it will still block the message pathway from (srcChainId, srcAddress)\\n */\\nabstract contract NonblockingLzApp is LzApp {\\n    using ExcessivelySafeCall for address;\\n\\n    constructor(address _endpoint) LzApp(_endpoint) {}\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32))) public failedMessages;\\n\\n    event MessageFailed(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes _payload, bytes _reason);\\n    event RetryMessageSuccess(uint16 _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _payloadHash);\\n\\n    // overriding the virtual function in LzReceiver\\n    function _blockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.nonblockingLzReceive.selector, _srcChainId, _srcAddress, _nonce, _payload)\\n        );\\n        // try-catch all errors/exceptions\\n        if (!success) {\\n            _storeFailedMessage(_srcChainId, _srcAddress, _nonce, _payload, reason);\\n        }\\n    }\\n\\n    function _storeFailedMessage(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload,\\n        bytes memory _reason\\n    ) internal virtual {\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = keccak256(_payload);\\n        emit MessageFailed(_srcChainId, _srcAddress, _nonce, _payload, _reason);\\n    }\\n\\n    function nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public virtual {\\n        // only internal transaction\\n        require(_msgSender() == address(this), \\\"NonblockingLzApp: caller must be LzApp\\\");\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    //@notice override this function\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual;\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable virtual {\\n        // assert there is message to retry\\n        bytes32 payloadHash = failedMessages[_srcChainId][_srcAddress][_nonce];\\n        require(payloadHash != bytes32(0), \\\"NonblockingLzApp: no stored message\\\");\\n        require(keccak256(_payload) == payloadHash, \\\"NonblockingLzApp: invalid payload\\\");\\n        // clear the stored message\\n        failedMessages[_srcChainId][_srcAddress][_nonce] = bytes32(0);\\n        // execute the message. revert if it fails again\\n        _nonblockingLzReceive(_srcChainId, _srcAddress, _nonce, _payload);\\n        emit RetryMessageSuccess(_srcChainId, _srcAddress, _nonce, payloadHash);\\n    }\\n}\\n\",\"keccak256\":\"0x612ff1f2a158b7e64e873885b5ff08afa348998fd9005f384d555d643ba7968d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./OFTCoreV2.sol\\\";\\nimport \\\"./interfaces/IOFTV2.sol\\\";\\nimport \\\"@openzeppelin/contracts/utils/introspection/ERC165.sol\\\";\\n\\nabstract contract BaseOFTV2 is OFTCoreV2, ERC165, IOFTV2 {\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) OFTCoreV2(_sharedDecimals, _lzEndpoint) {}\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function sendFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _send(_from, _dstChainId, _toAddress, _amount, _callParams.refundAddress, _callParams.zroPaymentAddress, _callParams.adapterParams);\\n    }\\n\\n    function sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        LzCallParams calldata _callParams\\n    ) public payable virtual override {\\n        _sendAndCall(\\n            _from,\\n            _dstChainId,\\n            _toAddress,\\n            _amount,\\n            _payload,\\n            _dstGasForCall,\\n            _callParams.refundAddress,\\n            _callParams.zroPaymentAddress,\\n            _callParams.adapterParams\\n        );\\n    }\\n\\n    /************************************************************************\\n     * public view functions\\n     ************************************************************************/\\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\\n        return interfaceId == type(IOFTV2).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    function estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendFee(_dstChainId, _toAddress, _amount, _useZro, _adapterParams);\\n    }\\n\\n    function estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes calldata _adapterParams\\n    ) public view virtual override returns (uint nativeFee, uint zroFee) {\\n        return _estimateSendAndCallFee(_dstChainId, _toAddress, _amount, _payload, _dstGasForCall, _useZro, _adapterParams);\\n    }\\n\\n    function circulatingSupply() public view virtual override returns (uint);\\n\\n    function token() public view virtual override returns (address);\\n}\\n\",\"keccak256\":\"0x59d2d32dd14a4f58232b126a7d69608a85f82137bd56d8ce0fc28ff646cba943\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/OFTCoreV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../../../lzApp/NonblockingLzApp.sol\\\";\\nimport \\\"../../../libraries/ExcessivelySafeCall.sol\\\";\\nimport \\\"./interfaces/ICommonOFT.sol\\\";\\nimport \\\"./interfaces/IOFTReceiverV2.sol\\\";\\n\\nabstract contract OFTCoreV2 is NonblockingLzApp {\\n    using BytesLib for bytes;\\n    using ExcessivelySafeCall for address;\\n\\n    uint public constant NO_EXTRA_GAS = 0;\\n\\n    // packet type\\n    uint8 public constant PT_SEND = 0;\\n    uint8 public constant PT_SEND_AND_CALL = 1;\\n\\n    uint8 public immutable sharedDecimals;\\n\\n    mapping(uint16 => mapping(bytes => mapping(uint64 => bool))) public creditedPackets;\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are moved from the `_sender` to (`_dstChainId`, `_toAddress`)\\n     * `_nonce` is the outbound nonce\\n     */\\n    event SendToChain(uint16 indexed _dstChainId, address indexed _from, bytes32 indexed _toAddress, uint _amount);\\n\\n    /**\\n     * @dev Emitted when `_amount` tokens are received from `_srcChainId` into the `_toAddress` on the local chain.\\n     * `_nonce` is the inbound nonce.\\n     */\\n    event ReceiveFromChain(uint16 indexed _srcChainId, address indexed _to, uint _amount);\\n\\n    event CallOFTReceivedSuccess(uint16 indexed _srcChainId, bytes _srcAddress, uint64 _nonce, bytes32 _hash);\\n\\n    event NonContractAddress(address _address);\\n\\n    // _sharedDecimals should be the minimum decimals on all chains\\n    constructor(uint8 _sharedDecimals, address _lzEndpoint) NonblockingLzApp(_lzEndpoint) {\\n        sharedDecimals = _sharedDecimals;\\n    }\\n\\n    /************************************************************************\\n     * public functions\\n     ************************************************************************/\\n    function callOnOFTReceived(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes32 _from,\\n        address _to,\\n        uint _amount,\\n        bytes calldata _payload,\\n        uint _gasForCall\\n    ) public virtual {\\n        require(_msgSender() == address(this), \\\"OFTCore: caller must be OFTCore\\\");\\n\\n        // send\\n        _amount = _transferFrom(address(this), _to, _amount);\\n        emit ReceiveFromChain(_srcChainId, _to, _amount);\\n\\n        // call\\n        IOFTReceiverV2(_to).onOFTReceived{gas: _gasForCall}(_srcChainId, _srcAddress, _nonce, _from, _amount, _payload);\\n    }\\n\\n    /************************************************************************\\n     * internal functions\\n     ************************************************************************/\\n    function _estimateSendFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendFrom()\\n        bytes memory payload = _encodeSendPayload(_toAddress, _ld2sd(_amount));\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _estimateSendAndCallFee(\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        bool _useZro,\\n        bytes memory _adapterParams\\n    ) internal view virtual returns (uint nativeFee, uint zroFee) {\\n        // mock the payload for sendAndCall()\\n        bytes memory payload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(_amount), _payload, _dstGasForCall);\\n        return lzEndpoint.estimateFees(_dstChainId, address(this), payload, _useZro, _adapterParams);\\n    }\\n\\n    function _nonblockingLzReceive(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual override {\\n        uint8 packetType = _payload.toUint8(0);\\n\\n        if (packetType == PT_SEND) {\\n            _sendAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else if (packetType == PT_SEND_AND_CALL) {\\n            _sendAndCallAck(_srcChainId, _srcAddress, _nonce, _payload);\\n        } else {\\n            revert(\\\"OFTCore: unknown packet type\\\");\\n        }\\n    }\\n\\n    function _send(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND, _adapterParams, NO_EXTRA_GAS);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount); // amount returned should not have dust\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        bytes memory lzPayload = _encodeSendPayload(_toAddress, _ld2sd(amount));\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAck(\\n        uint16 _srcChainId,\\n        bytes memory,\\n        uint64,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (address to, uint64 amountSD) = _decodeSendPayload(_payload);\\n        if (to == address(0)) {\\n            to = address(0xdead);\\n        }\\n\\n        uint amount = _sd2ld(amountSD);\\n        amount = _creditTo(_srcChainId, to, amount);\\n\\n        emit ReceiveFromChain(_srcChainId, to, amount);\\n    }\\n\\n    function _sendAndCall(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) internal virtual returns (uint amount) {\\n        _checkGasLimit(_dstChainId, PT_SEND_AND_CALL, _adapterParams, _dstGasForCall);\\n\\n        (amount, ) = _removeDust(_amount);\\n        amount = _debitFrom(_from, _dstChainId, _toAddress, amount);\\n        require(amount > 0, \\\"OFTCore: amount too small\\\");\\n\\n        // encode the msg.sender into the payload instead of _from\\n        bytes memory lzPayload = _encodeSendAndCallPayload(msg.sender, _toAddress, _ld2sd(amount), _payload, _dstGasForCall);\\n        _lzSend(_dstChainId, lzPayload, _refundAddress, _zroPaymentAddress, _adapterParams, msg.value);\\n\\n        emit SendToChain(_dstChainId, _from, _toAddress, amount);\\n    }\\n\\n    function _sendAndCallAck(\\n        uint16 _srcChainId,\\n        bytes memory _srcAddress,\\n        uint64 _nonce,\\n        bytes memory _payload\\n    ) internal virtual {\\n        (bytes32 from, address to, uint64 amountSD, bytes memory payloadForCall, uint64 gasForCall) = _decodeSendAndCallPayload(_payload);\\n\\n        bool credited = creditedPackets[_srcChainId][_srcAddress][_nonce];\\n        uint amount = _sd2ld(amountSD);\\n\\n        // credit to this contract first, and then transfer to receiver only if callOnOFTReceived() succeeds\\n        if (!credited) {\\n            amount = _creditTo(_srcChainId, address(this), amount);\\n            creditedPackets[_srcChainId][_srcAddress][_nonce] = true;\\n        }\\n\\n        if (!_isContract(to)) {\\n            emit NonContractAddress(to);\\n            return;\\n        }\\n\\n        // workaround for stack too deep\\n        uint16 srcChainId = _srcChainId;\\n        bytes memory srcAddress = _srcAddress;\\n        uint64 nonce = _nonce;\\n        bytes memory payload = _payload;\\n        bytes32 from_ = from;\\n        address to_ = to;\\n        uint amount_ = amount;\\n        bytes memory payloadForCall_ = payloadForCall;\\n\\n        // no gas limit for the call if retry\\n        uint gas = credited ? gasleft() : gasForCall;\\n        (bool success, bytes memory reason) = address(this).excessivelySafeCall(\\n            gasleft(),\\n            150,\\n            abi.encodeWithSelector(this.callOnOFTReceived.selector, srcChainId, srcAddress, nonce, from_, to_, amount_, payloadForCall_, gas)\\n        );\\n\\n        if (success) {\\n            bytes32 hash = keccak256(payload);\\n            emit CallOFTReceivedSuccess(srcChainId, srcAddress, nonce, hash);\\n        } else {\\n            // store the failed message into the nonblockingLzApp\\n            _storeFailedMessage(srcChainId, srcAddress, nonce, payload, reason);\\n        }\\n    }\\n\\n    function _isContract(address _account) internal view returns (bool) {\\n        return _account.code.length > 0;\\n    }\\n\\n    function _ld2sd(uint _amount) internal view virtual returns (uint64) {\\n        uint amountSD = _amount / _ld2sdRate();\\n        require(amountSD <= type(uint64).max, \\\"OFTCore: amountSD overflow\\\");\\n        return uint64(amountSD);\\n    }\\n\\n    function _sd2ld(uint64 _amountSD) internal view virtual returns (uint) {\\n        return _amountSD * _ld2sdRate();\\n    }\\n\\n    function _removeDust(uint _amount) internal view virtual returns (uint amountAfter, uint dust) {\\n        dust = _amount % _ld2sdRate();\\n        amountAfter = _amount - dust;\\n    }\\n\\n    function _encodeSendPayload(bytes32 _toAddress, uint64 _amountSD) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND, _toAddress, _amountSD);\\n    }\\n\\n    function _decodeSendPayload(bytes memory _payload) internal view virtual returns (address to, uint64 amountSD) {\\n        require(_payload.toUint8(0) == PT_SEND && _payload.length == 41, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n    }\\n\\n    function _encodeSendAndCallPayload(\\n        address _from,\\n        bytes32 _toAddress,\\n        uint64 _amountSD,\\n        bytes memory _payload,\\n        uint64 _dstGasForCall\\n    ) internal view virtual returns (bytes memory) {\\n        return abi.encodePacked(PT_SEND_AND_CALL, _toAddress, _amountSD, _addressToBytes32(_from), _dstGasForCall, _payload);\\n    }\\n\\n    function _decodeSendAndCallPayload(bytes memory _payload)\\n        internal\\n        view\\n        virtual\\n        returns (\\n            bytes32 from,\\n            address to,\\n            uint64 amountSD,\\n            bytes memory payload,\\n            uint64 dstGasForCall\\n        )\\n    {\\n        require(_payload.toUint8(0) == PT_SEND_AND_CALL, \\\"OFTCore: invalid payload\\\");\\n\\n        to = _payload.toAddress(13); // drop the first 12 bytes of bytes32\\n        amountSD = _payload.toUint64(33);\\n        from = _payload.toBytes32(41);\\n        dstGasForCall = _payload.toUint64(73);\\n        payload = _payload.slice(81, _payload.length - 81);\\n    }\\n\\n    function _addressToBytes32(address _address) internal pure virtual returns (bytes32) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n\\n    function _debitFrom(\\n        address _from,\\n        uint16 _dstChainId,\\n        bytes32 _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _creditTo(\\n        uint16 _srcChainId,\\n        address _toAddress,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _transferFrom(\\n        address _from,\\n        address _to,\\n        uint _amount\\n    ) internal virtual returns (uint);\\n\\n    function _ld2sdRate() internal view virtual returns (uint);\\n}\\n\",\"keccak256\":\"0x96cf7a10c5af4243822d25e77985a4a46d12264f839593ded5378cd6519a8df0\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/ICommonOFT.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"@openzeppelin/contracts/utils/introspection/IERC165.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface ICommonOFT is IERC165 {\\n\\n    struct LzCallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n        bytes adapterParams;\\n    }\\n\\n    /**\\n     * @dev estimate send token `_tokenId` to (`_dstChainId`, `_toAddress`)\\n     * _dstChainId - L0 defined chain id to send tokens too\\n     * _toAddress - dynamic bytes array which contains the address to whom you are sending tokens to on the dstChain\\n     * _amount - amount of the tokens to transfer\\n     * _useZro - indicates to use zro to pay L0 fees\\n     * _adapterParam - flexible bytes array to indicate messaging adapter services in L0\\n     */\\n    function estimateSendFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    function estimateSendAndCallFee(uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, bool _useZro, bytes calldata _adapterParams) external view returns (uint nativeFee, uint zroFee);\\n\\n    /**\\n     * @dev returns the circulating amount of tokens on current chain\\n     */\\n    function circulatingSupply() external view returns (uint);\\n\\n    /**\\n     * @dev returns the address of the ERC20 token\\n     */\\n    function token() external view returns (address);\\n}\\n\",\"keccak256\":\"0x1d034ba786436c1fce8057352c87373098bd1d8026b24c8fbc7be28636d0c15d\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTReceiverV2.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.5.0;\\n\\ninterface IOFTReceiverV2 {\\n    /**\\n     * @dev Called by the OFT contract when tokens are received from source chain.\\n     * @param _srcChainId The chain id of the source chain.\\n     * @param _srcAddress The address of the OFT token contract on the source chain.\\n     * @param _nonce The nonce of the transaction on the source chain.\\n     * @param _from The address of the account who calls the sendAndCall() on the source chain.\\n     * @param _amount The amount of tokens to transfer.\\n     * @param _payload Additional data with no specified format.\\n     */\\n    function onOFTReceived(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes32 _from, uint _amount, bytes calldata _payload) external;\\n}\\n\",\"keccak256\":\"0xf57e437ced3bc10bb333123bb49475dab47c7615b86401c4d872c29ad4928fd5\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/interfaces/IOFTV2.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ICommonOFT.sol\\\";\\n\\n/**\\n * @dev Interface of the IOFT core standard\\n */\\ninterface IOFTV2 is ICommonOFT {\\n\\n    /**\\n     * @dev send `_amount` amount of token to (`_dstChainId`, `_toAddress`) from `_from`\\n     * `_from` the owner of token\\n     * `_dstChainId` the destination chain identifier\\n     * `_toAddress` can be any size depending on the `dstChainId`.\\n     * `_amount` the quantity of tokens in wei\\n     * `_refundAddress` the address LayerZero refunds if too much message fee is sent\\n     * `_zroPaymentAddress` set to address(0x0) if not paying in ZRO (LayerZero Token)\\n     * `_adapterParams` is a flexible bytes array to indicate messaging adapter services\\n     */\\n    function sendFrom(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, LzCallParams calldata _callParams) external payable;\\n\\n    function sendAndCall(address _from, uint16 _dstChainId, bytes32 _toAddress, uint _amount, bytes calldata _payload, uint64 _dstGasForCall, LzCallParams calldata _callParams) external payable;\\n}\\n\",\"keccak256\":\"0xb1d31f341715347d49db4e2c0de27c49bbd70b5b3d9b0adb1050b2b3a305ab87\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\\n *\\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\\n * need to send a transaction, and thus is not required to hold Ether at all.\\n */\\ninterface IERC20Permit {\\n    /**\\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\\n     * given ``owner``'s signed approval.\\n     *\\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\\n     * ordering also apply here.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `deadline` must be a timestamp in the future.\\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\\n     * over the EIP712-formatted function arguments.\\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\\n     *\\n     * For more information on the signature format, see the\\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\\n     * section].\\n     */\\n    function permit(\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) external;\\n\\n    /**\\n     * @dev Returns the current nonce for `owner`. This value must be\\n     * included whenever a signature is generated for {permit}.\\n     *\\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\\n     * prevents a signature from being used multiple times.\\n     */\\n    function nonces(address owner) external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\nimport \\\"../extensions/IERC20Permit.sol\\\";\\nimport \\\"../../../utils/Address.sol\\\";\\n\\n/**\\n * @title SafeERC20\\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\\n * contract returns false). Tokens that return no value (and instead revert or\\n * throw on failure) are also supported, non-reverting calls are assumed to be\\n * successful.\\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\\n */\\nlibrary SafeERC20 {\\n    using Address for address;\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\\n    }\\n\\n    /**\\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\\n     */\\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\\n    }\\n\\n    /**\\n     * @dev Deprecated. This function has issues similar to the ones found in\\n     * {IERC20-approve}, and its usage is discouraged.\\n     *\\n     * Whenever possible, use {safeIncreaseAllowance} and\\n     * {safeDecreaseAllowance} instead.\\n     */\\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\\n        // safeApprove should only be called when setting an initial allowance,\\n        // or when resetting it to zero. To increase and decrease it, use\\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\\n        require(\\n            (value == 0) || (token.allowance(address(this), spender) == 0),\\n            \\\"SafeERC20: approve from non-zero to non-zero allowance\\\"\\n        );\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\\n    }\\n\\n    /**\\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        uint256 oldAllowance = token.allowance(address(this), spender);\\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\\n    }\\n\\n    /**\\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful.\\n     */\\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\\n        unchecked {\\n            uint256 oldAllowance = token.allowance(address(this), spender);\\n            require(oldAllowance >= value, \\\"SafeERC20: decreased allowance below zero\\\");\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\\n        }\\n    }\\n\\n    /**\\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\\n     * to be set to zero before setting it to a non-zero value, such as USDT.\\n     */\\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\\n\\n        if (!_callOptionalReturnBool(token, approvalCall)) {\\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\\n            _callOptionalReturn(token, approvalCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\\n     * Revert on invalid signature.\\n     */\\n    function safePermit(\\n        IERC20Permit token,\\n        address owner,\\n        address spender,\\n        uint256 value,\\n        uint256 deadline,\\n        uint8 v,\\n        bytes32 r,\\n        bytes32 s\\n    ) internal {\\n        uint256 nonceBefore = token.nonces(owner);\\n        token.permit(owner, spender, value, deadline, v, r, s);\\n        uint256 nonceAfter = token.nonces(owner);\\n        require(nonceAfter == nonceBefore + 1, \\\"SafeERC20: permit did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     */\\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\\n        // the target address contains contract code and also asserts for success in the low-level call.\\n\\n        bytes memory returndata = address(token).functionCall(data, \\\"SafeERC20: low-level call failed\\\");\\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\");\\n    }\\n\\n    /**\\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\\n     * @param token The token targeted by the call.\\n     * @param data The call data (encoded using abi.encode or one of its variants).\\n     *\\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\\n     */\\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\\n        // and not revert is the subcall reverts.\\n\\n        (bool success, bytes memory returndata) = address(token).call(data);\\n        return\\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\\n    }\\n}\\n\",\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     *\\n     * Furthermore, `isContract` will also return true if the target contract within\\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\\n     * which only has an effect at the end of a transaction.\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\\n     *\\n     * _Available since v4.8._\\n     */\\n    function verifyCallResultFromTarget(\\n        address target,\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        if (success) {\\n            if (returndata.length == 0) {\\n                // only check isContract if the call was successful and the return data is empty\\n                // otherwise we already know that it was a contract\\n                require(isContract(target), \\\"Address: call to non-contract\\\");\\n            }\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    /**\\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason or using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            _revert(returndata, errorMessage);\\n        }\\n    }\\n\\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\\n        // Look for revert reason and bubble it up if present\\n        if (returndata.length > 0) {\\n            // The easiest way to bubble the revert reason is using memory via assembly\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                let returndata_size := mload(returndata)\\n                revert(add(32, returndata), returndata_size)\\n            }\\n        } else {\\n            revert(errorMessage);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\ninterface OracleInterface {\\n    function getPrice(address asset) external view returns (uint256);\\n}\\n\\ninterface ResilientOracleInterface is OracleInterface {\\n    function updatePrice(address vToken) external;\\n\\n    function updateAssetPrice(address asset) external;\\n\\n    function getUnderlyingPrice(address vToken) external view returns (uint256);\\n}\\n\\ninterface BoundValidatorInterface {\\n    function validatePriceWithAnchorPrice(\\n        address asset,\\n        uint256 reporterPrice,\\n        uint256 anchorPrice\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xd3bbb7c9eef19e8f467342df6034ef95399a00964646fb8c82b438968ae3a8c0\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from \\\"./constants.sol\\\";\\n\\n/**\\n * @title Exponential module for storing fixed-precision decimals\\n * @author Compound\\n * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.\\n *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:\\n *         `Exp({mantissa: 5100000000000000000})`.\\n */\\ncontract ExponentialNoError {\\n    struct Exp {\\n        uint256 mantissa;\\n    }\\n\\n    struct Double {\\n        uint256 mantissa;\\n    }\\n\\n    uint256 internal constant EXP_SCALE = EXP_SCALE_;\\n    uint256 internal constant DOUBLE_SCALE = 1e36;\\n    uint256 internal constant HALF_EXP_SCALE = EXP_SCALE / 2;\\n    uint256 internal constant MANTISSA_ONE = MANTISSA_ONE_;\\n\\n    /**\\n     * @dev Truncates the given exp to a whole number value.\\n     *      For example, truncate(Exp{mantissa: 15 * EXP_SCALE}) = 15\\n     */\\n    function truncate(Exp memory exp) internal pure returns (uint256) {\\n        // Note: We are not using careful math here as we're performing a division that cannot fail\\n        return exp.mantissa / EXP_SCALE;\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, then truncate to return an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncate(Exp memory a, uint256 scalar) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return truncate(product);\\n    }\\n\\n    /**\\n     * @dev Multiply an Exp by a scalar, truncate, then add an to an unsigned integer, returning an unsigned integer.\\n     */\\n    // solhint-disable-next-line func-name-mixedcase\\n    function mul_ScalarTruncateAddUInt(Exp memory a, uint256 scalar, uint256 addend) internal pure returns (uint256) {\\n        Exp memory product = mul_(a, scalar);\\n        return add_(truncate(product), addend);\\n    }\\n\\n    /**\\n     * @dev Checks if first Exp is less than second Exp.\\n     */\\n    function lessThanExp(Exp memory left, Exp memory right) internal pure returns (bool) {\\n        return left.mantissa < right.mantissa;\\n    }\\n\\n    function safe224(uint256 n, string memory errorMessage) internal pure returns (uint224) {\\n        require(n <= type(uint224).max, errorMessage);\\n        return uint224(n);\\n    }\\n\\n    function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {\\n        require(n <= type(uint32).max, errorMessage);\\n        return uint32(n);\\n    }\\n\\n    function add_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: add_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function add_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a + b;\\n    }\\n\\n    function sub_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: sub_(a.mantissa, b.mantissa) });\\n    }\\n\\n    function sub_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a - b;\\n    }\\n\\n    function mul_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b.mantissa) / EXP_SCALE });\\n    }\\n\\n    function mul_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / EXP_SCALE;\\n    }\\n\\n    function mul_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b.mantissa) / DOUBLE_SCALE });\\n    }\\n\\n    function mul_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: mul_(a.mantissa, b) });\\n    }\\n\\n    function mul_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return mul_(a, b.mantissa) / DOUBLE_SCALE;\\n    }\\n\\n    function mul_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a * b;\\n    }\\n\\n    function div_(Exp memory a, Exp memory b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(mul_(a.mantissa, EXP_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Exp memory a, uint256 b) internal pure returns (Exp memory) {\\n        return Exp({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Exp memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, EXP_SCALE), b.mantissa);\\n    }\\n\\n    function div_(Double memory a, Double memory b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a.mantissa, DOUBLE_SCALE), b.mantissa) });\\n    }\\n\\n    function div_(Double memory a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(a.mantissa, b) });\\n    }\\n\\n    function div_(uint256 a, Double memory b) internal pure returns (uint256) {\\n        return div_(mul_(a, DOUBLE_SCALE), b.mantissa);\\n    }\\n\\n    function div_(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a / b;\\n    }\\n\\n    function fraction(uint256 a, uint256 b) internal pure returns (Double memory) {\\n        return Double({ mantissa: div_(mul_(a, DOUBLE_SCALE), b) });\\n    }\\n}\\n\",\"keccak256\":\"0x1b5378848f1472660fd33c260fa9b00bf59e7c2066c27cc592230d7c86a6a9f9\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/constants.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/// @dev Base unit for computations, usually used in scaling (multiplications, divisions)\\nuint256 constant EXP_SCALE = 1e18;\\n\\n/// @dev A unit (literal one) in EXP_SCALE, usually used in additions/subtractions\\nuint256 constant MANTISSA_ONE = EXP_SCALE;\\n\\n/// @dev The approximate number of seconds per year\\nuint256 constant SECONDS_PER_YEAR = 31_536_000;\\n\",\"keccak256\":\"0x14de93ead464da249af31bea0e3bcfb62ec693bea3475fb4d90f055ac81dc5eb\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/BaseXVSProxyOFT.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { ResilientOracleInterface } from \\\"@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { BaseOFTV2 } from \\\"@layerzerolabs/solidity-examples/contracts/token/oft/v2/BaseOFTV2.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\nimport { ExponentialNoError } from \\\"@venusprotocol/solidity-utilities/contracts/ExponentialNoError.sol\\\";\\n\\n/**\\n * @title BaseXVSProxyOFT\\n * @author Venus\\n * @notice The BaseXVSProxyOFT contract is tailored for facilitating cross-chain transactions with an ERC20 token.\\n * It manages transaction limits of a single and daily transactions.\\n * This contract inherits key functionalities from other contracts, including pausing capabilities and error handling.\\n * It holds state variables for the inner token and maps for tracking transaction limits and statistics across various chains and addresses.\\n * The contract allows the owner to configure limits, set whitelists, and control pausing.\\n * Internal functions conduct eligibility check of transactions, making the contract a fundamental component for cross-chain token management.\\n */\\n\\nabstract contract BaseXVSProxyOFT is Pausable, ExponentialNoError, BaseOFTV2 {\\n    using SafeERC20 for IERC20;\\n    IERC20 internal immutable innerToken;\\n    uint256 internal immutable ld2sdRate;\\n    bool public sendAndCallEnabled;\\n\\n    /**\\n     * @notice The address of ResilientOracle contract wrapped in its interface.\\n     */\\n    ResilientOracleInterface public oracle;\\n    /**\\n     * @notice Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyLimit;\\n    /**\\n     * @notice Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourTransferred;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from local chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourWindowStart;\\n    /**\\n     * @notice Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxSingleReceiveTransactionLimit;\\n    /**\\n     * @notice Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToMaxDailyReceiveLimit;\\n    /**\\n     * @notice Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceived;\\n    /**\\n     * @notice Timestamp when the last 24-hour window started from remote chain.\\n     */\\n    mapping(uint16 => uint256) public chainIdToLast24HourReceiveWindowStart;\\n    /**\\n     * @notice Address on which cap check and bound limit is not applicable.\\n     */\\n    mapping(address => bool) public whitelist;\\n\\n    /**\\n     * @notice Emitted when address is added to whitelist.\\n     */\\n    event SetWhitelist(address indexed addr, bool isWhitelist);\\n    /**\\n     * @notice  Emitted when the maximum limit for a single transaction from local chain is modified.\\n     */\\n    event SetMaxSingleTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit of transactions from local chain is modified.\\n     */\\n    event SetMaxDailyLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum limit for a single receive transaction from remote chain is modified.\\n     */\\n    event SetMaxSingleReceiveTransactionLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Emitted when the maximum daily limit for receiving transactions from remote chain is modified.\\n     */\\n    event SetMaxDailyReceiveLimit(uint16 chainId, uint256 oldMaxLimit, uint256 newMaxLimit);\\n    /**\\n     * @notice Event emitted when oracle is modified.\\n     */\\n    event OracleChanged(address indexed oldOracle, address indexed newOracle);\\n    /**\\n     * @notice Event emitted when trusted remote sets to empty.\\n     */\\n    event TrustedRemoteRemoved(uint16 chainId);\\n    /**\\n     * @notice Event emitted when inner token set successfully.\\n     */\\n    event InnerTokenAdded(address indexed innerToken);\\n    /**\\n     *@notice Emitted on sweep token success\\n     */\\n    event SweepToken(address indexed token, address indexed to, uint256 sweepAmount);\\n    /**\\n     * @notice Event emitted when SendAndCallEnabled updated successfully.\\n     */\\n    event UpdateSendAndCallEnabled(bool indexed enabled);\\n    /**\\n     *@notice Error thrown when this contract balance is less than sweep amount\\n     */\\n    error InsufficientBalance(uint256 sweepAmount, uint256 balance);\\n\\n    /**\\n     * @param tokenAddress_ Address of the inner token.\\n     * @param sharedDecimals_ Number of shared decimals.\\n     * @param lzEndpoint_ Address of the layer zero endpoint contract.\\n     * @param oracle_ Address of the price oracle.\\n     * @custom:error ZeroAddressNotAllowed is thrown when token contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when lzEndpoint contract address is zero.\\n     * @custom:error ZeroAddressNotAllowed is thrown when oracle contract address is zero.\\n     * @custom:event Emits InnerTokenAdded with token address.\\n     * @custom:event Emits OracleChanged with zero address and oracle address.\\n     */\\n    constructor(\\n        address tokenAddress_,\\n        uint8 sharedDecimals_,\\n        address lzEndpoint_,\\n        address oracle_\\n    ) BaseOFTV2(sharedDecimals_, lzEndpoint_) {\\n        ensureNonzeroAddress(tokenAddress_);\\n        ensureNonzeroAddress(lzEndpoint_);\\n        ensureNonzeroAddress(oracle_);\\n\\n        innerToken = IERC20(tokenAddress_);\\n\\n        (bool success, bytes memory data) = tokenAddress_.staticcall(abi.encodeWithSignature(\\\"decimals()\\\"));\\n        require(success, \\\"ProxyOFT: failed to get token decimals\\\");\\n        uint8 decimals = abi.decode(data, (uint8));\\n\\n        require(sharedDecimals_ <= decimals, \\\"ProxyOFT: sharedDecimals must be <= decimals\\\");\\n        ld2sdRate = 10 ** (decimals - sharedDecimals_);\\n\\n        emit InnerTokenAdded(tokenAddress_);\\n        emit OracleChanged(address(0), oracle_);\\n\\n        oracle = ResilientOracleInterface(oracle_);\\n    }\\n\\n    /**\\n     * @notice Set the address of the ResilientOracle contract.\\n     * @dev Reverts if the new address is zero.\\n     * @param oracleAddress_ The new address of the ResilientOracle contract.\\n     * @custom:access Only owner.\\n     * @custom:event Emits OracleChanged with old and new oracle address.\\n     */\\n    function setOracle(address oracleAddress_) external onlyOwner {\\n        ensureNonzeroAddress(oracleAddress_);\\n        emit OracleChanged(address(oracle), oracleAddress_);\\n        oracle = ResilientOracleInterface(oracleAddress_);\\n    }\\n\\n    /**\\n     * @notice Sets the limit of single transaction amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits SetMaxSingleTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyLimit[chainId_], \\\"Single transaction limit > Daily limit\\\");\\n        emit SetMaxSingleTransactionLimit(chainId_, chainIdToMaxSingleTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the limit of daily (24 Hour) transactions amount.\\n     * @param chainId_ Destination chain id.\\n     * @param limit_ Amount in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ >= chainIdToMaxSingleTransactionLimit[chainId_], \\\"Daily limit < single transaction limit\\\");\\n        emit SetMaxDailyLimit(chainId_, chainIdToMaxDailyLimit[chainId_], limit_);\\n        chainIdToMaxDailyLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum limit for a single receive transaction.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxSingleReceiveTransactionLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxSingleReceiveTransactionLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(limit_ <= chainIdToMaxDailyReceiveLimit[chainId_], \\\"single receive transaction limit > Daily limit\\\");\\n        emit SetMaxSingleReceiveTransactionLimit(chainId_, chainIdToMaxSingleReceiveTransactionLimit[chainId_], limit_);\\n        chainIdToMaxSingleReceiveTransactionLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the maximum daily limit for receiving transactions.\\n     * @param chainId_ The destination chain ID.\\n     * @param limit_ The new maximum daily limit in USD(scaled with 18 decimals).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setMaxDailyReceiveLimit with old and new limit associated with chain id.\\n     */\\n    function setMaxDailyReceiveLimit(uint16 chainId_, uint256 limit_) external onlyOwner {\\n        require(\\n            limit_ >= chainIdToMaxSingleReceiveTransactionLimit[chainId_],\\n            \\\"Daily limit < single receive transaction limit\\\"\\n        );\\n        emit SetMaxDailyReceiveLimit(chainId_, chainIdToMaxDailyReceiveLimit[chainId_], limit_);\\n        chainIdToMaxDailyReceiveLimit[chainId_] = limit_;\\n    }\\n\\n    /**\\n     * @notice Sets the whitelist address to skip checks on transaction limit.\\n     * @param user_ Address to be add in whitelist.\\n     * @param val_ Boolean to be set (true for user_ address is whitelisted).\\n     * @custom:access Only owner.\\n     * @custom:event Emits setWhitelist.\\n     */\\n    function setWhitelist(address user_, bool val_) external onlyOwner {\\n        emit SetWhitelist(user_, val_);\\n        whitelist[user_] = val_;\\n    }\\n\\n    /**\\n     * @notice Triggers stopped state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function pause() external onlyOwner {\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Triggers resume state of the bridge.\\n     * @custom:access Only owner.\\n     */\\n    function unpause() external onlyOwner {\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user\\n     * @param token_ The address of the ERC-20 token to sweep\\n     * @param to_ The address of the recipient\\n     * @param amount_ The amount of tokens needs to transfer\\n     * @custom:event Emits SweepToken event\\n     * @custom:error Throw InsufficientBalance if amount_ is greater than the available balance of the token in the contract\\n     * @custom:access Only Owner\\n     */\\n    function sweepToken(IERC20 token_, address to_, uint256 amount_) external onlyOwner {\\n        uint256 balance = token_.balanceOf(address(this));\\n        if (amount_ > balance) {\\n            revert InsufficientBalance(amount_, balance);\\n        }\\n\\n        emit SweepToken(address(token_), to_, amount_);\\n\\n        token_.safeTransfer(to_, amount_);\\n    }\\n\\n    /**\\n     * @notice Remove trusted remote from storage.\\n     * @param remoteChainId_ The chain's id corresponds to setting the trusted remote to empty.\\n     * @custom:access Only owner.\\n     * @custom:event Emits TrustedRemoteRemoved once chain id is removed from trusted remote.\\n     */\\n    function removeTrustedRemote(uint16 remoteChainId_) external onlyOwner {\\n        delete trustedRemoteLookup[remoteChainId_];\\n        emit TrustedRemoteRemoved(remoteChainId_);\\n    }\\n\\n    /**\\n     * @notice It enables or disables sendAndCall functionality for the bridge.\\n     * @param enabled_ Boolean indicating whether the sendAndCall function should be enabled or disabled.\\n     */\\n    function updateSendAndCallEnabled(bool enabled_) external onlyOwner {\\n        sendAndCallEnabled = enabled_;\\n        emit UpdateSendAndCallEnabled(enabled_);\\n    }\\n\\n    /**\\n     * @notice Checks the eligibility of a sender to initiate a cross-chain token transfer.\\n     * @dev This external view function assesses whether the specified sender is eligible to transfer the given amount\\n     *      to the specified destination chain. It considers factors such as whitelisting, transaction limits, and a 24-hour window.\\n     * @param from_ The sender's address initiating the transfer.\\n     * @param dstChainId_ Indicates destination chain.\\n     * @param amount_ The quantity of tokens to be transferred.\\n     * @return eligibleToSend A boolean indicating whether the sender is eligible to transfer the tokens.\\n     * @return maxSingleTransactionLimit The maximum limit for a single transaction.\\n     * @return maxDailyLimit The maximum daily limit for transactions.\\n     * @return amountInUsd The equivalent amount in USD based on the oracle price.\\n     * @return transferredInWindow The total amount transferred in the current 24-hour window.\\n     * @return last24HourWindowStart The timestamp when the current 24-hour window started.\\n     * @return isWhiteListedUser A boolean indicating whether the sender is whitelisted.\\n     */\\n    function isEligibleToSend(\\n        address from_,\\n        uint16 dstChainId_,\\n        uint256 amount_\\n    )\\n        external\\n        view\\n        returns (\\n            bool eligibleToSend,\\n            uint256 maxSingleTransactionLimit,\\n            uint256 maxDailyLimit,\\n            uint256 amountInUsd,\\n            uint256 transferredInWindow,\\n            uint256 last24HourWindowStart,\\n            bool isWhiteListedUser\\n        )\\n    {\\n        // Check if the sender's address is whitelisted\\n        isWhiteListedUser = whitelist[from_];\\n\\n        // Calculate the amount in USD using the oracle price\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        last24HourWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n        if (currentBlockTimestamp - last24HourWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            last24HourWindowStart = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n        eligibleToSend = (isWhiteListedUser ||\\n            ((amountInUsd <= maxSingleTransactionLimit) && (transferredInWindow <= maxDailyLimit)));\\n    }\\n\\n    /**\\n     * @notice Initiates a cross-chain token transfer and triggers a call on the destination chain.\\n     * @dev This internal override function enables the contract to send tokens and invoke calls on the specified\\n     *      destination chain. It checks whether the sendAndCall feature is enabled before proceeding with the transfer.\\n     * @param from_ Address from which tokens will be debited.\\n     * @param dstChainId_ Destination chain id on which tokens will be send.\\n     * @param toAddress_ Address on which tokens will be credited on destination chain.\\n     * @param amount_ Amount of tokens that will be transferred.\\n     * @param payload_ Additional data payload for the call on the destination chain.\\n     * @param dstGasForCall_ The amount of gas allocated for the call on the destination chain.\\n     * @param callparams_ Additional parameters, including refund address, ZRO payment address,\\n     *                   and adapter params.\\n     */\\n    function sendAndCall(\\n        address from_,\\n        uint16 dstChainId_,\\n        bytes32 toAddress_,\\n        uint256 amount_,\\n        bytes calldata payload_,\\n        uint64 dstGasForCall_,\\n        LzCallParams calldata callparams_\\n    ) public payable override {\\n        require(sendAndCallEnabled, \\\"sendAndCall is disabled\\\");\\n\\n        super.sendAndCall(from_, dstChainId_, toAddress_, amount_, payload_, dstGasForCall_, callparams_);\\n    }\\n\\n    function retryMessage(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) public payable override {\\n        bytes memory trustedRemote = trustedRemoteLookup[_srcChainId];\\n        // it will still block the message pathway from (srcChainId, srcAddress). should not receive message from untrusted remote.\\n        require(\\n            _srcAddress.length == trustedRemote.length &&\\n                trustedRemote.length > 0 &&\\n                keccak256(_srcAddress) == keccak256(trustedRemote),\\n            \\\"LzApp: invalid source sending contract\\\"\\n        );\\n        super.retryMessage(_srcChainId, _srcAddress, _nonce, _payload);\\n    }\\n\\n    /**\\n     * @notice Empty implementation of renounce ownership to avoid any mishappening.\\n     */\\n    function renounceOwnership() public override {}\\n\\n    /**\\n     * @notice Return's the address of the inner token of this bridge.\\n     * @return Address of the inner token of this bridge.\\n     */\\n    function token() public view override returns (address) {\\n        return address(innerToken);\\n    }\\n\\n    /**\\n     * @notice Checks if the sender is eligible to send tokens\\n     * @param from_ Sender's address sending tokens\\n     * @param dstChainId_ Chain id on which tokens should be sent\\n     * @param amount_ Amount of tokens to be sent\\n     */\\n    function _isEligibleToSend(address from_, uint16 dstChainId_, uint256 amount_) internal {\\n        // Check if the sender's address is whitelisted\\n        bool isWhiteListedUser = whitelist[from_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the amount in USD using the oracle price\\n        uint256 amountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(token()) });\\n        amountInUsd = mul_ScalarTruncate(oraclePrice, amount_);\\n\\n        // Load values for the 24-hour window checks\\n        uint256 currentBlockTimestamp = block.timestamp;\\n        uint256 lastDayWindowStart = chainIdToLast24HourWindowStart[dstChainId_];\\n        uint256 transferredInWindow = chainIdToLast24HourTransferred[dstChainId_];\\n        uint256 maxSingleTransactionLimit = chainIdToMaxSingleTransactionLimit[dstChainId_];\\n        uint256 maxDailyLimit = chainIdToMaxDailyLimit[dstChainId_];\\n\\n        // Revert if the amount exceeds the single transaction limit\\n        require(amountInUsd <= maxSingleTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayWindowStart > 1 days) {\\n            transferredInWindow = amountInUsd;\\n            chainIdToLast24HourWindowStart[dstChainId_] = currentBlockTimestamp;\\n        } else {\\n            transferredInWindow += amountInUsd;\\n        }\\n\\n        // Revert if the amount exceeds the daily limit\\n        require(transferredInWindow <= maxDailyLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the amount for the 24-hour window\\n        chainIdToLast24HourTransferred[dstChainId_] = transferredInWindow;\\n    }\\n\\n    /**\\n     * @notice Checks if receiver is able to receive tokens\\n     * @param toAddress_ Receiver address\\n     * @param srcChainId_ Source chain id from which token is send\\n     * @param receivedAmount_ Amount of tokens received\\n     */\\n    function _isEligibleToReceive(address toAddress_, uint16 srcChainId_, uint256 receivedAmount_) internal {\\n        // Check if the recipient's address is whitelisted\\n        bool isWhiteListedUser = whitelist[toAddress_];\\n        // Check if the user is whitelisted and return if true\\n        if (isWhiteListedUser) {\\n            return;\\n        }\\n\\n        // Calculate the received amount in USD using the oracle price\\n        uint256 receivedAmountInUsd;\\n        Exp memory oraclePrice = Exp({ mantissa: oracle.getPrice(address(token())) });\\n        receivedAmountInUsd = mul_ScalarTruncate(oraclePrice, receivedAmount_);\\n\\n        uint256 currentBlockTimestamp = block.timestamp;\\n\\n        // Load values for the 24-hour window checks for receiving\\n        uint256 lastDayReceiveWindowStart = chainIdToLast24HourReceiveWindowStart[srcChainId_];\\n        uint256 receivedInWindow = chainIdToLast24HourReceived[srcChainId_];\\n        uint256 maxSingleReceiveTransactionLimit = chainIdToMaxSingleReceiveTransactionLimit[srcChainId_];\\n        uint256 maxDailyReceiveLimit = chainIdToMaxDailyReceiveLimit[srcChainId_];\\n\\n        // Check if the received amount exceeds the single transaction limit\\n        require(receivedAmountInUsd <= maxSingleReceiveTransactionLimit, \\\"Single Transaction Limit Exceed\\\");\\n\\n        // Check if the time window has changed (more than 24 hours have passed)\\n        if (currentBlockTimestamp - lastDayReceiveWindowStart > 1 days) {\\n            receivedInWindow = receivedAmountInUsd;\\n            chainIdToLast24HourReceiveWindowStart[srcChainId_] = currentBlockTimestamp;\\n        } else {\\n            receivedInWindow += receivedAmountInUsd;\\n        }\\n\\n        // Revert if the received amount exceeds the daily limit\\n        require(receivedInWindow <= maxDailyReceiveLimit, \\\"Daily Transaction Limit Exceed\\\");\\n\\n        // Update the received amount for the 24-hour window\\n        chainIdToLast24HourReceived[srcChainId_] = receivedInWindow;\\n    }\\n\\n    /**\\n     * @notice Transfer tokens from sender to receiver account.\\n     * @param from_ Address from which token has to be transferred(Sender).\\n     * @param to_ Address on which token will be tranferred(Receiver).\\n     * @param amount_ Amount of token to be transferred.\\n     * @return Actual balance difference.\\n     */\\n    function _transferFrom(\\n        address from_,\\n        address to_,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        uint256 before = innerToken.balanceOf(to_);\\n        if (from_ == address(this)) {\\n            innerToken.safeTransfer(to_, amount_);\\n        } else {\\n            innerToken.safeTransferFrom(from_, to_, amount_);\\n        }\\n        return innerToken.balanceOf(to_) - before;\\n    }\\n\\n    /**\\n     * @notice Returns Conversion rate factor from large decimals to shared decimals.\\n     * @return Conversion rate factor.\\n     */\\n    function _ld2sdRate() internal view override returns (uint256) {\\n        return ld2sdRate;\\n    }\\n}\\n\",\"keccak256\":\"0x7e60e0dad246890a0f4b796aeb3fa730cd7cfde1f5616f4b10611b2f469d1e10\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/XVSProxyOFTSrc.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { SafeERC20, IERC20 } from \\\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\\\";\\nimport { BaseXVSProxyOFT } from \\\"./BaseXVSProxyOFT.sol\\\";\\n\\n/**\\n * @title XVSProxyOFTSrc\\n * @author Venus\\n * @notice XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions,\\n * focusing on the source side of these transactions.\\n * It monitors the total amount transferred to other chains, ensuring it complies with defined limits,\\n * and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain.\\n */\\n\\ncontract XVSProxyOFTSrc is BaseXVSProxyOFT {\\n    using SafeERC20 for IERC20;\\n    /**\\n     * @notice Total amount that is transferred from this chain to other chains.\\n     */\\n    uint256 public outboundAmount;\\n\\n    /**\\n     * @notice Emits when locked token released manually by owner.\\n     */\\n    event FallbackWithdraw(address indexed to, uint256 amount);\\n    /**\\n     * @notice Emits when stored message dropped without successful retrying.\\n     */\\n    event DropFailedMessage(uint16 srcChainId, bytes indexed srcAddress, uint64 nonce);\\n    /**\\n     * @notice Event emitted when tokens are forcefully locked.\\n     */\\n    event FallbackDeposit(address indexed from, uint256 amount_);\\n\\n    constructor(\\n        address tokenAddress_,\\n        uint8 sharedDecimals_,\\n        address lzEndpoint_,\\n        address oracle_\\n    ) BaseXVSProxyOFT(tokenAddress_, sharedDecimals_, lzEndpoint_, oracle_) {}\\n\\n    /**\\n     * @notice Only call it when there is no way to recover the failed message.\\n     * `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending.\\n     * @param to_ The address to withdraw to\\n     * @param amount_ The amount of withdrawal\\n     * @custom:access Only owner.\\n     * @custom:event Emits FallbackWithdraw, once done with transfer.\\n     */\\n    function fallbackWithdraw(address to_, uint256 amount_) external onlyOwner {\\n        require(outboundAmount >= amount_, \\\"Withdraw amount should be less than outbound amount\\\");\\n        unchecked {\\n            outboundAmount -= amount_;\\n        }\\n        _transferFrom(address(this), to_, amount_);\\n        emit FallbackWithdraw(to_, amount_);\\n    }\\n\\n    /**\\n     * @notice Forces the lock of tokens by increasing outbound amount and transferring tokens from the sender to the contract.\\n     * @param amount_ The amount of tokens to lock.\\n     * @param depositor_ Address of the depositor.\\n     * @custom:access Only owner.\\n     * @custom:event Emits FallbackDeposit, once done with transfer.\\n     */\\n    function fallbackDeposit(address depositor_, uint256 amount_) external onlyOwner {\\n        (uint256 actualAmount, ) = _removeDust(amount_);\\n\\n        outboundAmount += actualAmount;\\n        uint256 cap = _sd2ld(type(uint64).max);\\n        require(cap >= outboundAmount, \\\"ProxyOFT: outboundAmount overflow\\\");\\n\\n        _transferFrom(depositor_, address(this), actualAmount);\\n\\n        emit FallbackDeposit(depositor_, actualAmount);\\n    }\\n\\n    /**\\n     * @notice Clear failed messages from the storage.\\n     * @param srcChainId_ Chain id of source\\n     * @param srcAddress_ Address of source followed by current bridge address\\n     * @param nonce_ Nonce_ of the transaction\\n     * @custom:access Only owner.\\n     * @custom:event Emits DropFailedMessage on clearance of failed message.\\n     */\\n    function dropFailedMessage(uint16 srcChainId_, bytes memory srcAddress_, uint64 nonce_) external onlyOwner {\\n        failedMessages[srcChainId_][srcAddress_][nonce_] = bytes32(0);\\n        emit DropFailedMessage(srcChainId_, srcAddress_, nonce_);\\n    }\\n\\n    /**\\n     * @notice Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract).\\n     * @return Returns difference in total supply and the outbound amount.\\n     */\\n    function circulatingSupply() public view override returns (uint256) {\\n        return innerToken.totalSupply() - outboundAmount;\\n    }\\n\\n    /**\\n     * @notice Debit tokens from the given address\\n     * @param from_  Address from which tokens to be debited\\n     * @param dstChainId_ Destination chain id\\n     * @param amount_ Amount of tokens to be debited\\n     * @return Actual amount debited\\n     */\\n    function _debitFrom(\\n        address from_,\\n        uint16 dstChainId_,\\n        bytes32,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        require(from_ == _msgSender(), \\\"ProxyOFT: owner is not send caller\\\");\\n        _isEligibleToSend(from_, dstChainId_, amount_);\\n\\n        uint256 amount = _transferFrom(from_, address(this), amount_);\\n\\n        outboundAmount += amount;\\n        uint256 cap = _sd2ld(type(uint64).max);\\n        require(cap >= outboundAmount, \\\"ProxyOFT: outboundAmount overflow\\\");\\n\\n        return amount;\\n    }\\n\\n    /**\\n     * @notice Credit tokens in the given account\\n     * @param srcChainId_  Source chain id\\n     * @param toAddress_ Address on which token will be credited\\n     * @param amount_ Amount of tokens to be credited\\n     * @return Actual amount credited\\n     */\\n    function _creditTo(\\n        uint16 srcChainId_,\\n        address toAddress_,\\n        uint256 amount_\\n    ) internal override whenNotPaused returns (uint256) {\\n        _isEligibleToReceive(toAddress_, srcChainId_, amount_);\\n        outboundAmount -= amount_;\\n        // tokens are already in this contract, so no need to transfer\\n        if (toAddress_ == address(this)) {\\n            return amount_;\\n        }\\n\\n        return _transferFrom(address(this), toAddress_, amount_);\\n    }\\n}\\n\",\"keccak256\":\"0xa7c018cc449035423ff8e3082c6bf3ef9d627c2042867e705d5726b71ff7b441\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5506,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"_paused","offset":0,"slot":"0","type":"t_bool"},{"astId":5383,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"_owner","offset":1,"slot":"0","type":"t_address"},{"astId":455,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"trustedRemoteLookup","offset":0,"slot":"1","type":"t_mapping(t_uint16,t_bytes_storage)"},{"astId":461,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"minDstGasLookup","offset":0,"slot":"2","type":"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))"},{"astId":465,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"payloadSizeLimitLookup","offset":0,"slot":"3","type":"t_mapping(t_uint16,t_uint256)"},{"astId":467,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"precrime","offset":0,"slot":"4","type":"t_address"},{"astId":997,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"failedMessages","offset":0,"slot":"5","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))"},{"astId":3161,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"creditedPackets","offset":0,"slot":"6","type":"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))"},{"astId":9381,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"sendAndCallEnabled","offset":0,"slot":"7","type":"t_bool"},{"astId":9385,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"oracle","offset":1,"slot":"7","type":"t_contract(ResilientOracleInterface)8694"},{"astId":9390,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToMaxSingleTransactionLimit","offset":0,"slot":"8","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9395,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToMaxDailyLimit","offset":0,"slot":"9","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9400,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToLast24HourTransferred","offset":0,"slot":"10","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9405,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToLast24HourWindowStart","offset":0,"slot":"11","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9410,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToMaxSingleReceiveTransactionLimit","offset":0,"slot":"12","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9415,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToMaxDailyReceiveLimit","offset":0,"slot":"13","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9420,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToLast24HourReceived","offset":0,"slot":"14","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9425,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"chainIdToLast24HourReceiveWindowStart","offset":0,"slot":"15","type":"t_mapping(t_uint16,t_uint256)"},{"astId":9430,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"whitelist","offset":0,"slot":"16","type":"t_mapping(t_address,t_bool)"},{"astId":10929,"contract":"contracts/Bridge/XVSProxyOFTSrc.sol:XVSProxyOFTSrc","label":"outboundAmount","offset":0,"slot":"17","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes_memory_ptr":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(ResilientOracleInterface)8694":{"encoding":"inplace","label":"contract ResilientOracleInterface","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bool)"},"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))":{"encoding":"mapping","key":"t_bytes_memory_ptr","label":"mapping(bytes => mapping(uint64 => bytes32))","numberOfBytes":"32","value":"t_mapping(t_uint64,t_bytes32)"},"t_mapping(t_uint16,t_bytes_storage)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => bytes)","numberOfBytes":"32","value":"t_bytes_storage"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bool)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bool))"},"t_mapping(t_uint16,t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32)))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(bytes => mapping(uint64 => bytes32)))","numberOfBytes":"32","value":"t_mapping(t_bytes_memory_ptr,t_mapping(t_uint64,t_bytes32))"},"t_mapping(t_uint16,t_mapping(t_uint16,t_uint256))":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => mapping(uint16 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint16,t_uint256)"},"t_mapping(t_uint16,t_uint256)":{"encoding":"mapping","key":"t_uint16","label":"mapping(uint16 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint64,t_bool)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_uint64,t_bytes32)":{"encoding":"mapping","key":"t_uint64","label":"mapping(uint64 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint16":{"encoding":"inplace","label":"uint16","numberOfBytes":"2"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"errors":{"InsufficientBalance(uint256,uint256)":[{"notice":"Error thrown when this contract balance is less than sweep amount"}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"DropFailedMessage(uint16,bytes,uint64)":{"notice":"Emits when stored message dropped without successful retrying."},"FallbackDeposit(address,uint256)":{"notice":"Event emitted when tokens are forcefully locked."},"FallbackWithdraw(address,uint256)":{"notice":"Emits when locked token released manually by owner."},"InnerTokenAdded(address)":{"notice":"Event emitted when inner token set successfully."},"OracleChanged(address,address)":{"notice":"Event emitted when oracle is modified."},"SetMaxDailyLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit of transactions from local chain is modified."},"SetMaxDailyReceiveLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum daily limit for receiving transactions from remote chain is modified."},"SetMaxSingleReceiveTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single receive transaction from remote chain is modified."},"SetMaxSingleTransactionLimit(uint16,uint256,uint256)":{"notice":"Emitted when the maximum limit for a single transaction from local chain is modified."},"SetWhitelist(address,bool)":{"notice":"Emitted when address is added to whitelist."},"SweepToken(address,address,uint256)":{"notice":"Emitted on sweep token success"},"TrustedRemoteRemoved(uint16)":{"notice":"Event emitted when trusted remote sets to empty."},"UpdateSendAndCallEnabled(bool)":{"notice":"Event emitted when SendAndCallEnabled updated successfully."}},"kind":"user","methods":{"chainIdToLast24HourReceiveWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from remote chain."},"chainIdToLast24HourReceived(uint16)":{"notice":"Total received amount in USD(scaled with 18 decimals) within the last 24-hour window from remote chain."},"chainIdToLast24HourTransferred(uint16)":{"notice":"Total sent amount in USD(scaled with 18 decimals) within the last 24-hour window from local chain."},"chainIdToLast24HourWindowStart(uint16)":{"notice":"Timestamp when the last 24-hour window started from local chain."},"chainIdToMaxDailyLimit(uint16)":{"notice":"Maximum daily limit for transactions in USD(scaled with 18 decimals) from local chain."},"chainIdToMaxDailyReceiveLimit(uint16)":{"notice":"Maximum daily limit for receiving transactions in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleReceiveTransactionLimit(uint16)":{"notice":"Maximum limit for a single receive transaction in USD(scaled with 18 decimals) from remote chain."},"chainIdToMaxSingleTransactionLimit(uint16)":{"notice":"Maximum limit for a single transaction in USD(scaled with 18 decimals) from local chain."},"circulatingSupply()":{"notice":"Returns the total circulating supply of the token on the source chain i.e (total supply - locked in this contract)."},"dropFailedMessage(uint16,bytes,uint64)":{"notice":"Clear failed messages from the storage."},"fallbackDeposit(address,uint256)":{"notice":"Forces the lock of tokens by increasing outbound amount and transferring tokens from the sender to the contract."},"fallbackWithdraw(address,uint256)":{"notice":"Only call it when there is no way to recover the failed message. `dropFailedMessage` must be called first if transaction is from remote->local chain to avoid double spending."},"isEligibleToSend(address,uint16,uint256)":{"notice":"Checks the eligibility of a sender to initiate a cross-chain token transfer."},"oracle()":{"notice":"The address of ResilientOracle contract wrapped in its interface."},"outboundAmount()":{"notice":"Total amount that is transferred from this chain to other chains."},"pause()":{"notice":"Triggers stopped state of the bridge."},"removeTrustedRemote(uint16)":{"notice":"Remove trusted remote from storage."},"renounceOwnership()":{"notice":"Empty implementation of renounce ownership to avoid any mishappening."},"sendAndCall(address,uint16,bytes32,uint256,bytes,uint64,(address,address,bytes))":{"notice":"Initiates a cross-chain token transfer and triggers a call on the destination chain."},"setMaxDailyLimit(uint16,uint256)":{"notice":"Sets the limit of daily (24 Hour) transactions amount."},"setMaxDailyReceiveLimit(uint16,uint256)":{"notice":"Sets the maximum daily limit for receiving transactions."},"setMaxSingleReceiveTransactionLimit(uint16,uint256)":{"notice":"Sets the maximum limit for a single receive transaction."},"setMaxSingleTransactionLimit(uint16,uint256)":{"notice":"Sets the limit of single transaction amount."},"setOracle(address)":{"notice":"Set the address of the ResilientOracle contract."},"setWhitelist(address,bool)":{"notice":"Sets the whitelist address to skip checks on transaction limit."},"sweepToken(address,address,uint256)":{"notice":"A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to user"},"token()":{"notice":"Return's the address of the inner token of this bridge."},"unpause()":{"notice":"Triggers resume state of the bridge."},"updateSendAndCallEnabled(bool)":{"notice":"It enables or disables sendAndCall functionality for the bridge."},"whitelist(address)":{"notice":"Address on which cap check and bound limit is not applicable."}},"notice":"XVSProxyOFTSrc contract serves as a crucial component for cross-chain token transactions, focusing on the source side of these transactions. It monitors the total amount transferred to other chains, ensuring it complies with defined limits, and provides functions for transferring tokens while maintaining control over the circulating supply on the source chain.","version":1}}},"contracts/Bridge/interfaces/IXVS.sol":{"IXVS":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{},"title":"IXVS","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"burn(address,uint256)":"9dc29fac","mint(address,uint256)":"40c10f19"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IXVS\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface implemented by `XVS` token.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/interfaces/IXVS.sol\":\"IXVS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Bridge/interfaces/IXVS.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title IXVS\\n * @author Venus\\n * @notice Interface implemented by `XVS` token.\\n */\\ninterface IXVS {\\n    function mint(address to, uint256 amount) external;\\n\\n    function burn(address from, uint256 amount) external;\\n}\\n\",\"keccak256\":\"0xd3e26dcde753c28be8f826806c18fbf92918baa0f4f972a96916a15831ce5d03\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Interface implemented by `XVS` token.","version":1}}},"contracts/Bridge/interfaces/IXVSProxyOFT.sol":{"IXVSProxyOFT":{"abi":[{"inputs":[{"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"remoteChainId","type":"uint16"},{"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","kind":"dev","methods":{},"title":"IXVSProxyOFT","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"isTrustedRemote(uint16,bytes)":"3d8b38f6","setTrustedRemoteAddress(uint16,bytes)":"a6c3d165","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"isTrustedRemote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"remoteChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"srcAddress\",\"type\":\"bytes\"}],\"name\":\"setTrustedRemoteAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IXVSProxyOFT\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface implemented by `XVSProxyOFT`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/interfaces/IXVSProxyOFT.sol\":\"IXVSProxyOFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Bridge/interfaces/IXVSProxyOFT.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\n/**\\n * @title IXVSProxyOFT\\n * @author Venus\\n * @notice Interface implemented by `XVSProxyOFT`.\\n */\\ninterface IXVSProxyOFT {\\n    function transferOwnership(address addr) external;\\n\\n    function setTrustedRemoteAddress(uint16 remoteChainId, bytes calldata srcAddress) external;\\n\\n    function isTrustedRemote(uint16 remoteChainId, bytes calldata srcAddress) external returns (bool);\\n}\\n\",\"keccak256\":\"0xe72963d6cb0c35c473dbc43d5c761a8814015fc0f25c1d4490ef3273d5ed40b1\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"notice":"Interface implemented by `XVSProxyOFT`.","version":1}}},"contracts/Bridge/token/TokenController.sol":{"TokenController":{"abi":[{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AccountBlacklisted","type":"error"},{"inputs":[],"name":"AddressesMustDiffer","type":"error"},{"inputs":[],"name":"MintLimitExceed","type":"error"},{"inputs":[],"name":"MintedAmountExceed","type":"error"},{"inputs":[],"name":"NewCapNotGreaterThanMintedTokens","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintCapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MintLimitDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MintLimitIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"source","type":"address"},{"indexed":true,"internalType":"address","name":"destination","type":"address"}],"name":"MintedTokensMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":true,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"source_","type":"address"},{"internalType":"address","name":"destination_","type":"address"}],"name":"migrateMinterTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minterToCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minterToMintedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAccessControlAddress_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setMintCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bool","name":"value_","type":"bool"}],"name":"updateBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"constructor":{"custom:error":"ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero.","params":{"accessControlManager_":"Address of access control manager contract."}},"isBlackListed(address)":{"params":{"user_":"Address of user to check blacklist status."},"returns":{"_0":"bool status of blacklist."}},"migrateMinterTokens(address,address)":{"custom:access":"Controlled by AccessControlManager.","custom:error":"MintLimitExceed is thrown when the minting limit exceeds the cap after migration.AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.","custom:event":"Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.Emits MintedTokensMigrated.","params":{"destination_":"Minter address to migrate tokens to.","source_":"Minter address to migrate tokens from."}},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Controlled by AccessControlManager."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAccessControlManager(address)":{"custom:access":"Only owner.","custom:error":"ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.","custom:event":"Emits NewAccessControlManager.","details":"Admin function to set the access control address.","params":{"newAccessControlAddress_":"New address for the access control."}},"setMintCap(address,uint256)":{"custom:access":"Controlled by AccessControlManager.","custom:event":"Emits MintCapChanged.","params":{"amount_":"Cap for the minter.","minter_":"Minter address."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Controlled by AccessControlManager."},"updateBlacklist(address,bool)":{"custom:access":"Controlled by AccessControlManager.","custom:event":"Emits BlacklistUpdated event.","params":{"user_":"User address to be affected.","value_":"Boolean to toggle value."}}},"title":"TokenController","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11370":{"entryPoint":null,"id":11370,"parameterSlots":1,"returnSlots":0},"@_5399":{"entryPoint":null,"id":5399,"parameterSlots":0,"returnSlots":0},"@_5515":{"entryPoint":null,"id":5515,"parameterSlots":0,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":115,"id":5487,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":195,"id":9333,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":276,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":287,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":237,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":256,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:65","nodeType":"YulBlock","src":"0:1199:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"922:274:65","nodeType":"YulBlock","src":"922:274:65","statements":[{"body":{"nativeSrc":"968:83:65","nodeType":"YulBlock","src":"968:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:65","nodeType":"YulIdentifier","src":"970:77:65"},"nativeSrc":"970:79:65","nodeType":"YulFunctionCall","src":"970:79:65"},"nativeSrc":"970:79:65","nodeType":"YulExpressionStatement","src":"970:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:65","nodeType":"YulIdentifier","src":"943:7:65"},{"name":"headStart","nativeSrc":"952:9:65","nodeType":"YulIdentifier","src":"952:9:65"}],"functionName":{"name":"sub","nativeSrc":"939:3:65","nodeType":"YulIdentifier","src":"939:3:65"},"nativeSrc":"939:23:65","nodeType":"YulFunctionCall","src":"939:23:65"},{"kind":"number","nativeSrc":"964:2:65","nodeType":"YulLiteral","src":"964:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:32:65","nodeType":"YulFunctionCall","src":"935:32:65"},"nativeSrc":"932:119:65","nodeType":"YulIf","src":"932:119:65"},{"nativeSrc":"1061:128:65","nodeType":"YulBlock","src":"1061:128:65","statements":[{"nativeSrc":"1076:15:65","nodeType":"YulVariableDeclaration","src":"1076:15:65","value":{"kind":"number","nativeSrc":"1090:1:65","nodeType":"YulLiteral","src":"1090:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:65","nodeType":"YulTypedName","src":"1080:6:65","type":""}]},{"nativeSrc":"1105:74:65","nodeType":"YulAssignment","src":"1105:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:65","nodeType":"YulIdentifier","src":"1151:9:65"},{"name":"offset","nativeSrc":"1162:6:65","nodeType":"YulIdentifier","src":"1162:6:65"}],"functionName":{"name":"add","nativeSrc":"1147:3:65","nodeType":"YulIdentifier","src":"1147:3:65"},"nativeSrc":"1147:22:65","nodeType":"YulFunctionCall","src":"1147:22:65"},{"name":"dataEnd","nativeSrc":"1171:7:65","nodeType":"YulIdentifier","src":"1171:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:65","nodeType":"YulIdentifier","src":"1115:31:65"},"nativeSrc":"1115:64:65","nodeType":"YulFunctionCall","src":"1115:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:65","nodeType":"YulIdentifier","src":"1105:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:65","nodeType":"YulTypedName","src":"892:9:65","type":""},{"name":"dataEnd","nativeSrc":"903:7:65","nodeType":"YulTypedName","src":"903:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:65","nodeType":"YulTypedName","src":"915:6:65","type":""}],"src":"845:351:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610d5b380380610d5b83398101604081905261002f9161011f565b61003833610073565b6000805460ff60a01b1916905561004e816100c3565b600180546001600160a01b0319166001600160a01b0392909216919091179055610148565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100ea576040516342bcdf7f60e11b815260040160405180910390fd5b50565b60006001600160a01b0382165b92915050565b610109816100ed565b81146100ea57600080fd5b80516100fa81610100565b60006020828403121561013457610134600080fd5b60006101408484610114565b949350505050565b610c04806101576000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c06abe7711610066578063c06abe77146101cd578063d89e2dac146101e0578063e47d6060146101f3578063f2fde38b1461021f57600080fd5b80638da5cb5b1461018d5780639155e083146101a7578063b4a0bdf3146101ba57600080fd5b80635c975abb116100c85780635c975abb14610142578063715018a61461015d5780637b517334146101655780638456cb591461018557600080fd5b80630e32cb86146100ef578063391efe12146101045780633f4ba83a1461013a575b600080fd5b6101026100fd3660046108ab565b610232565b005b6101246101123660046108ab565b60036020526000908152604090205481565b60405161013191906108dc565b60405180910390f35b61010261029f565b600054600160a01b900460ff165b60405161013191906108f2565b6101026102d3565b6101246101733660046108ab565b60046020526000908152604090205481565b6101026102e5565b6000546001600160a01b03165b6040516101319190610909565b6101026101b536600461092a565b610315565b60015461019a906001600160a01b031681565b6101026101db366004610978565b6103b3565b6101026101ee3660046109ab565b610475565b6101506102013660046108ab565b6001600160a01b031660009081526002602052604090205460ff1690565b61010261022d3660046108ab565b610621565b61023a610664565b6102438161068e565b6001546040516001600160a01b038084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102c960405180604001604052806009815260200168756e7061757365282960b81b8152506106b5565b6102d1610744565b565b6102db610664565b6102d16000610793565b61030d604051806040016040528060078152602001667061757365282960c81b8152506106b5565b6102d16107e3565b6103536040518060400160405280601d81526020017f757064617465426c61636b6c69737428616464726573732c626f6f6c290000008152506106b5565b6001600160a01b03821660008181526002602052604090819020805460ff1916841515179055517f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac906103a79084906108f2565b60405180910390a25050565b6103f16040518060400160405280601b81526020017f7365744d696e7443617028616464726573732c75696e743235362900000000008152506106b5565b6001600160a01b03821660009081526004602052604090205481101561042a5760405163ce89973d60e01b815260040160405180910390fd5b6001600160a01b03821660008181526003602052604090819020839055517f01a85f4ecff52e70907e25b863010bca98a9458d9f2fe9b3efb4c47d197e6448906103a79084906108dc565b610496604051806060016040528060248152602001610bab602491396106b5565b806001600160a01b0316826001600160a01b0316036104c8576040516380ae98f560e01b815260040160405180910390fd5b6001600160a01b0380831660008181526003602090815260408083205494861680845281842054948452600490925280832054918352822054909161050d83836109f4565b90508381111561053057604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b0380881660009081526004602052604080822082905591881680825290829020839055905182860391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e619061058e9084906108dc565b60405180910390a2876001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb876040516105cf91906108dc565b60405180910390a2866001600160a01b0316886001600160a01b03167f63ce671e4a37975f0a9e340f6f72320c617a5f728b83e3860b03aa847dc26ebb60405160405180910390a35050505050505050565b610629610664565b6001600160a01b0381166106585760405162461bcd60e51b815260040161064f90610a07565b60405180910390fd5b61066181610793565b50565b6000546001600160a01b031633146102d15760405162461bcd60e51b815260040161064f90610a86565b6001600160a01b038116610661576040516342bcdf7f60e11b815260040160405180910390fd5b6001546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906106e79033908590600401610aec565b602060405180830381865afa158015610704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107289190610b17565b610661576040516282b42960e81b815260040160405180910390fd5b61074c610826565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516107899190610909565b60405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107eb61084f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861077c3390565b600054600160a01b900460ff166102d15760405162461bcd60e51b815260040161064f90610b63565b600054600160a01b900460ff16156102d15760405162461bcd60e51b815260040161064f90610b9a565b60006001600160a01b0382165b92915050565b61089581610879565b811461066157600080fd5b80356108868161088c565b6000602082840312156108c0576108c0600080fd5b60006108cc84846108a0565b949350505050565b805b82525050565b6020810161088682846108d4565b8015156108d6565b6020810161088682846108ea565b6108d681610879565b602081016108868284610900565b801515610895565b803561088681610917565b6000806040838503121561094057610940600080fd5b600061094c85856108a0565b925050602061095d8582860161091f565b9150509250929050565b80610895565b803561088681610967565b6000806040838503121561098e5761098e600080fd5b600061099a85856108a0565b925050602061095d8582860161096d565b600080604083850312156109c1576109c1600080fd5b60006109cd85856108a0565b925050602061095d858286016108a0565b634e487b7160e01b600052601160045260246000fd5b80820180821115610886576108866109de565b6020808252810161088681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b6020808252810161088681610a51565b60005b83811015610ab1578181015183820152602001610a99565b50506000910152565b6000610ac4825190565b808452602084019350610adb818560208601610a96565b601f01601f19169290920192915050565b60408101610afa8285610900565b81810360208301526108cc8184610aba565b805161088681610917565b600060208284031215610b2c57610b2c600080fd5b60006108cc8484610b0c565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150610a7f565b6020808252810161088681610b38565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b81529150610a7f565b6020808252810161088681610b7356fe6d6967726174654d696e746572546f6b656e7328616464726573732c6164647265737329a2646970667358221220b518eaca1e0056a71e2005a29642ab3b15a8248b99ac87467887abb9eee98c0964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xD5B CODESIZE SUB DUP1 PUSH2 0xD5B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x11F JUMP JUMPDEST PUSH2 0x38 CALLER PUSH2 0x73 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH2 0x4E DUP2 PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x148 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x109 DUP2 PUSH2 0xED JUMP JUMPDEST DUP2 EQ PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xFA DUP2 PUSH2 0x100 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x134 JUMPI PUSH2 0x134 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP5 DUP5 PUSH2 0x114 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC04 DUP1 PUSH2 0x157 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xC06ABE77 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xC06ABE77 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xD89E2DAC EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0xE47D6060 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x9155E083 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x7B517334 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x391EFE12 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x124 PUSH2 0x112 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x102 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x173 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x92A JUMP JUMPDEST PUSH2 0x315 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x19A SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x978 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x9AB JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x621 JUMP JUMPDEST PUSH2 0x23A PUSH2 0x664 JUMP JUMPDEST PUSH2 0x243 DUP2 PUSH2 0x68E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x744 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2DB PUSH2 0x664 JUMP JUMPDEST PUSH2 0x2D1 PUSH1 0x0 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x30D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x7E3 JUMP JUMPDEST PUSH2 0x353 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757064617465426C61636B6C69737428616464726573732C626F6F6C29000000 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP5 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH32 0x6A12B3DF6CBA4203BD7FD06B816789F87DE8C594299AED5717AE070FAC781BAC SWAP1 PUSH2 0x3A7 SWAP1 DUP5 SWAP1 PUSH2 0x8F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x3F1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D696E7443617028616464726573732C75696E74323536290000000000 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x42A JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE89973D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD PUSH32 0x1A85F4ECFF52E70907E25B863010BCA98A9458D9F2FE9B3EFB4C47D197E6448 SWAP1 PUSH2 0x3A7 SWAP1 DUP5 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x496 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBAB PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x6B5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x80AE98F5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP5 DUP7 AND DUP1 DUP5 MSTORE DUP2 DUP5 KECCAK256 SLOAD SWAP5 DUP5 MSTORE PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP2 DUP4 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x50D DUP4 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE SWAP2 DUP9 AND DUP1 DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE SWAP1 MLOAD DUP3 DUP7 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0x58E SWAP1 DUP5 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP8 PUSH1 0x40 MLOAD PUSH2 0x5CF SWAP2 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63CE671E4A37975F0A9E340F6F72320C617A5F728B83E3860B03AA847DC26EBB PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x629 PUSH2 0x664 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x661 DUP2 PUSH2 0x793 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xA86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x6E7 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x704 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x728 SWAP2 SWAP1 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH3 0x82B429 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x74C PUSH2 0x826 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x789 SWAP2 SWAP1 PUSH2 0x909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x7EB PUSH2 0x84F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x77C CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x895 DUP2 PUSH2 0x879 JUMP JUMPDEST DUP2 EQ PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x88C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8C0 JUMPI PUSH2 0x8C0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8CC DUP5 DUP5 PUSH2 0x8A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x8D4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x8D6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x8EA JUMP JUMPDEST PUSH2 0x8D6 DUP2 PUSH2 0x879 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x900 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x895 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x917 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x940 JUMPI PUSH2 0x940 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x94C DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x91F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x895 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x98E JUMPI PUSH2 0x98E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x99A DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x96D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x9CD DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x8A0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x886 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xA51 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA99 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xADB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA96 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xAFA DUP3 DUP6 PUSH2 0x900 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8CC DUP2 DUP5 PUSH2 0xABA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x886 DUP2 PUSH2 0x917 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2C JUMPI PUSH2 0xB2C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8CC DUP5 DUP5 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xB73 JUMP INVALID PUSH14 0x6967726174654D696E746572546F PUSH12 0x656E7328616464726573732C PUSH2 0x6464 PUSH19 0x65737329A2646970667358221220B518EACA1E STOP JUMP 0xA7 0x1E KECCAK256 SDIV LOG2 SWAP7 TIMESTAMP 0xAB EXTCODESIZE ISZERO 0xA8 0x24 DUP12 SWAP10 0xAC DUP8 CHAINID PUSH25 0x87ABB9EEE98C0964736F6C6343000819003300000000000000 ","sourceMap":"789:9692:48:-:0;;;3690:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:21;719:10:29;936:18:21;:32::i;:::-;1006:5:22;996:15;;-1:-1:-1;;;;996:15:22;;;3743:43:48;3764:21;3743:20;:43::i;:::-;3796:20;:44;;-1:-1:-1;;;;;;3796:44:48;-1:-1:-1;;;;;3796:44:48;;;;;;;;;;789:9692;;2426:187:21;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;-1:-1:-1;;;;;;2534:17:21;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;544:75;485:136;:::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:65:o;:::-;789:9692:48;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_5430":{"entryPoint":1636,"id":5430,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_11714":{"entryPoint":1717,"id":11714,"parameterSlots":1,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_pause_5579":{"entryPoint":2019,"id":5579,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_5552":{"entryPoint":2127,"id":5552,"parameterSlots":0,"returnSlots":0},"@_requirePaused_5563":{"entryPoint":2086,"id":5563,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_5487":{"entryPoint":1939,"id":5487,"parameterSlots":1,"returnSlots":0},"@_unpause_5595":{"entryPoint":1860,"id":5595,"parameterSlots":0,"returnSlots":0},"@accessControlManager_11278":{"entryPoint":null,"id":11278,"parameterSlots":0,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":1678,"id":9333,"parameterSlots":1,"returnSlots":0},"@isBlackListed_11583":{"entryPoint":null,"id":11583,"parameterSlots":1,"returnSlots":1},"@migrateMinterTokens_11570":{"entryPoint":1141,"id":11570,"parameterSlots":2,"returnSlots":0},"@minterToCap_11288":{"entryPoint":null,"id":11288,"parameterSlots":0,"returnSlots":0},"@minterToMintedAmount_11293":{"entryPoint":null,"id":11293,"parameterSlots":0,"returnSlots":0},"@owner_5416":{"entryPoint":null,"id":5416,"parameterSlots":0,"returnSlots":1},"@pause_11382":{"entryPoint":741,"id":11382,"parameterSlots":0,"returnSlots":0},"@paused_5540":{"entryPoint":null,"id":5540,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_5444":{"entryPoint":723,"id":5444,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_11474":{"entryPoint":562,"id":11474,"parameterSlots":1,"returnSlots":0},"@setMintCap_11452":{"entryPoint":947,"id":11452,"parameterSlots":2,"returnSlots":0},"@transferOwnership_5467":{"entryPoint":1569,"id":5467,"parameterSlots":1,"returnSlots":0},"@unpause_11394":{"entryPoint":671,"id":11394,"parameterSlots":0,"returnSlots":0},"@updateBlacklist_11418":{"entryPoint":789,"id":11418,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2208,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":2335,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":2828,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2413,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2475,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bool":{"entryPoint":2346,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2424,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2839,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2304,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2282,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2746,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":2872,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":2931,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":2641,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2260,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2313,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2796,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2915,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2567,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2970,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2694,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2268,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2548,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2169,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2710,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":2526,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2188,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":2327,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2407,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10641:65","nodeType":"YulBlock","src":"0:10641:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"748:87:65","nodeType":"YulBlock","src":"748:87:65","statements":[{"nativeSrc":"758:29:65","nodeType":"YulAssignment","src":"758:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:65","nodeType":"YulIdentifier","src":"780:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:65","nodeType":"YulIdentifier","src":"767:12:65"},"nativeSrc":"767:20:65","nodeType":"YulFunctionCall","src":"767:20:65"},"variableNames":[{"name":"value","nativeSrc":"758:5:65","nodeType":"YulIdentifier","src":"758:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:65","nodeType":"YulIdentifier","src":"823:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:65","nodeType":"YulIdentifier","src":"796:26:65"},"nativeSrc":"796:33:65","nodeType":"YulFunctionCall","src":"796:33:65"},"nativeSrc":"796:33:65","nodeType":"YulExpressionStatement","src":"796:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:65","nodeType":"YulTypedName","src":"726:6:65","type":""},{"name":"end","nativeSrc":"734:3:65","nodeType":"YulTypedName","src":"734:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:65","nodeType":"YulTypedName","src":"742:5:65","type":""}],"src":"696:139:65"},{"body":{"nativeSrc":"907:263:65","nodeType":"YulBlock","src":"907:263:65","statements":[{"body":{"nativeSrc":"953:83:65","nodeType":"YulBlock","src":"953:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:65","nodeType":"YulIdentifier","src":"955:77:65"},"nativeSrc":"955:79:65","nodeType":"YulFunctionCall","src":"955:79:65"},"nativeSrc":"955:79:65","nodeType":"YulExpressionStatement","src":"955:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:65","nodeType":"YulIdentifier","src":"928:7:65"},{"name":"headStart","nativeSrc":"937:9:65","nodeType":"YulIdentifier","src":"937:9:65"}],"functionName":{"name":"sub","nativeSrc":"924:3:65","nodeType":"YulIdentifier","src":"924:3:65"},"nativeSrc":"924:23:65","nodeType":"YulFunctionCall","src":"924:23:65"},{"kind":"number","nativeSrc":"949:2:65","nodeType":"YulLiteral","src":"949:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:65","nodeType":"YulIdentifier","src":"920:3:65"},"nativeSrc":"920:32:65","nodeType":"YulFunctionCall","src":"920:32:65"},"nativeSrc":"917:119:65","nodeType":"YulIf","src":"917:119:65"},{"nativeSrc":"1046:117:65","nodeType":"YulBlock","src":"1046:117:65","statements":[{"nativeSrc":"1061:15:65","nodeType":"YulVariableDeclaration","src":"1061:15:65","value":{"kind":"number","nativeSrc":"1075:1:65","nodeType":"YulLiteral","src":"1075:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:65","nodeType":"YulTypedName","src":"1065:6:65","type":""}]},{"nativeSrc":"1090:63:65","nodeType":"YulAssignment","src":"1090:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:65","nodeType":"YulIdentifier","src":"1125:9:65"},{"name":"offset","nativeSrc":"1136:6:65","nodeType":"YulIdentifier","src":"1136:6:65"}],"functionName":{"name":"add","nativeSrc":"1121:3:65","nodeType":"YulIdentifier","src":"1121:3:65"},"nativeSrc":"1121:22:65","nodeType":"YulFunctionCall","src":"1121:22:65"},{"name":"dataEnd","nativeSrc":"1145:7:65","nodeType":"YulIdentifier","src":"1145:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:65","nodeType":"YulIdentifier","src":"1100:20:65"},"nativeSrc":"1100:53:65","nodeType":"YulFunctionCall","src":"1100:53:65"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:65","nodeType":"YulIdentifier","src":"1090:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:65","nodeType":"YulTypedName","src":"877:9:65","type":""},{"name":"dataEnd","nativeSrc":"888:7:65","nodeType":"YulTypedName","src":"888:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:65","nodeType":"YulTypedName","src":"900:6:65","type":""}],"src":"841:329:65"},{"body":{"nativeSrc":"1221:32:65","nodeType":"YulBlock","src":"1221:32:65","statements":[{"nativeSrc":"1231:16:65","nodeType":"YulAssignment","src":"1231:16:65","value":{"name":"value","nativeSrc":"1242:5:65","nodeType":"YulIdentifier","src":"1242:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1231:7:65","nodeType":"YulIdentifier","src":"1231:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1176:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1203:5:65","nodeType":"YulTypedName","src":"1203:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1213:7:65","nodeType":"YulTypedName","src":"1213:7:65","type":""}],"src":"1176:77:65"},{"body":{"nativeSrc":"1324:53:65","nodeType":"YulBlock","src":"1324:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1341:3:65","nodeType":"YulIdentifier","src":"1341:3:65"},{"arguments":[{"name":"value","nativeSrc":"1364:5:65","nodeType":"YulIdentifier","src":"1364:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1346:17:65","nodeType":"YulIdentifier","src":"1346:17:65"},"nativeSrc":"1346:24:65","nodeType":"YulFunctionCall","src":"1346:24:65"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:65","nodeType":"YulIdentifier","src":"1334:6:65"},"nativeSrc":"1334:37:65","nodeType":"YulFunctionCall","src":"1334:37:65"},"nativeSrc":"1334:37:65","nodeType":"YulExpressionStatement","src":"1334:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1259:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1312:5:65","nodeType":"YulTypedName","src":"1312:5:65","type":""},{"name":"pos","nativeSrc":"1319:3:65","nodeType":"YulTypedName","src":"1319:3:65","type":""}],"src":"1259:118:65"},{"body":{"nativeSrc":"1481:124:65","nodeType":"YulBlock","src":"1481:124:65","statements":[{"nativeSrc":"1491:26:65","nodeType":"YulAssignment","src":"1491:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1503:9:65","nodeType":"YulIdentifier","src":"1503:9:65"},{"kind":"number","nativeSrc":"1514:2:65","nodeType":"YulLiteral","src":"1514:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1499:3:65","nodeType":"YulIdentifier","src":"1499:3:65"},"nativeSrc":"1499:18:65","nodeType":"YulFunctionCall","src":"1499:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1491:4:65","nodeType":"YulIdentifier","src":"1491:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1571:6:65","nodeType":"YulIdentifier","src":"1571:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"1584:9:65","nodeType":"YulIdentifier","src":"1584:9:65"},{"kind":"number","nativeSrc":"1595:1:65","nodeType":"YulLiteral","src":"1595:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1580:3:65","nodeType":"YulIdentifier","src":"1580:3:65"},"nativeSrc":"1580:17:65","nodeType":"YulFunctionCall","src":"1580:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1527:43:65","nodeType":"YulIdentifier","src":"1527:43:65"},"nativeSrc":"1527:71:65","nodeType":"YulFunctionCall","src":"1527:71:65"},"nativeSrc":"1527:71:65","nodeType":"YulExpressionStatement","src":"1527:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1383:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1453:9:65","nodeType":"YulTypedName","src":"1453:9:65","type":""},{"name":"value0","nativeSrc":"1465:6:65","nodeType":"YulTypedName","src":"1465:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1476:4:65","nodeType":"YulTypedName","src":"1476:4:65","type":""}],"src":"1383:222:65"},{"body":{"nativeSrc":"1653:48:65","nodeType":"YulBlock","src":"1653:48:65","statements":[{"nativeSrc":"1663:32:65","nodeType":"YulAssignment","src":"1663:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1688:5:65","nodeType":"YulIdentifier","src":"1688:5:65"}],"functionName":{"name":"iszero","nativeSrc":"1681:6:65","nodeType":"YulIdentifier","src":"1681:6:65"},"nativeSrc":"1681:13:65","nodeType":"YulFunctionCall","src":"1681:13:65"}],"functionName":{"name":"iszero","nativeSrc":"1674:6:65","nodeType":"YulIdentifier","src":"1674:6:65"},"nativeSrc":"1674:21:65","nodeType":"YulFunctionCall","src":"1674:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1663:7:65","nodeType":"YulIdentifier","src":"1663:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"1611:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1635:5:65","nodeType":"YulTypedName","src":"1635:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1645:7:65","nodeType":"YulTypedName","src":"1645:7:65","type":""}],"src":"1611:90:65"},{"body":{"nativeSrc":"1766:50:65","nodeType":"YulBlock","src":"1766:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1783:3:65","nodeType":"YulIdentifier","src":"1783:3:65"},{"arguments":[{"name":"value","nativeSrc":"1803:5:65","nodeType":"YulIdentifier","src":"1803:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1788:14:65","nodeType":"YulIdentifier","src":"1788:14:65"},"nativeSrc":"1788:21:65","nodeType":"YulFunctionCall","src":"1788:21:65"}],"functionName":{"name":"mstore","nativeSrc":"1776:6:65","nodeType":"YulIdentifier","src":"1776:6:65"},"nativeSrc":"1776:34:65","nodeType":"YulFunctionCall","src":"1776:34:65"},"nativeSrc":"1776:34:65","nodeType":"YulExpressionStatement","src":"1776:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1707:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1754:5:65","nodeType":"YulTypedName","src":"1754:5:65","type":""},{"name":"pos","nativeSrc":"1761:3:65","nodeType":"YulTypedName","src":"1761:3:65","type":""}],"src":"1707:109:65"},{"body":{"nativeSrc":"1914:118:65","nodeType":"YulBlock","src":"1914:118:65","statements":[{"nativeSrc":"1924:26:65","nodeType":"YulAssignment","src":"1924:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1936:9:65","nodeType":"YulIdentifier","src":"1936:9:65"},{"kind":"number","nativeSrc":"1947:2:65","nodeType":"YulLiteral","src":"1947:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1932:3:65","nodeType":"YulIdentifier","src":"1932:3:65"},"nativeSrc":"1932:18:65","nodeType":"YulFunctionCall","src":"1932:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1924:4:65","nodeType":"YulIdentifier","src":"1924:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1998:6:65","nodeType":"YulIdentifier","src":"1998:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"2011:9:65","nodeType":"YulIdentifier","src":"2011:9:65"},{"kind":"number","nativeSrc":"2022:1:65","nodeType":"YulLiteral","src":"2022:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2007:3:65","nodeType":"YulIdentifier","src":"2007:3:65"},"nativeSrc":"2007:17:65","nodeType":"YulFunctionCall","src":"2007:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1960:37:65","nodeType":"YulIdentifier","src":"1960:37:65"},"nativeSrc":"1960:65:65","nodeType":"YulFunctionCall","src":"1960:65:65"},"nativeSrc":"1960:65:65","nodeType":"YulExpressionStatement","src":"1960:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1822:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1886:9:65","nodeType":"YulTypedName","src":"1886:9:65","type":""},{"name":"value0","nativeSrc":"1898:6:65","nodeType":"YulTypedName","src":"1898:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1909:4:65","nodeType":"YulTypedName","src":"1909:4:65","type":""}],"src":"1822:210:65"},{"body":{"nativeSrc":"2103:53:65","nodeType":"YulBlock","src":"2103:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2120:3:65","nodeType":"YulIdentifier","src":"2120:3:65"},{"arguments":[{"name":"value","nativeSrc":"2143:5:65","nodeType":"YulIdentifier","src":"2143:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2125:17:65","nodeType":"YulIdentifier","src":"2125:17:65"},"nativeSrc":"2125:24:65","nodeType":"YulFunctionCall","src":"2125:24:65"}],"functionName":{"name":"mstore","nativeSrc":"2113:6:65","nodeType":"YulIdentifier","src":"2113:6:65"},"nativeSrc":"2113:37:65","nodeType":"YulFunctionCall","src":"2113:37:65"},"nativeSrc":"2113:37:65","nodeType":"YulExpressionStatement","src":"2113:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2038:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2091:5:65","nodeType":"YulTypedName","src":"2091:5:65","type":""},{"name":"pos","nativeSrc":"2098:3:65","nodeType":"YulTypedName","src":"2098:3:65","type":""}],"src":"2038:118:65"},{"body":{"nativeSrc":"2260:124:65","nodeType":"YulBlock","src":"2260:124:65","statements":[{"nativeSrc":"2270:26:65","nodeType":"YulAssignment","src":"2270:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"2282:9:65","nodeType":"YulIdentifier","src":"2282:9:65"},{"kind":"number","nativeSrc":"2293:2:65","nodeType":"YulLiteral","src":"2293:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2278:3:65","nodeType":"YulIdentifier","src":"2278:3:65"},"nativeSrc":"2278:18:65","nodeType":"YulFunctionCall","src":"2278:18:65"},"variableNames":[{"name":"tail","nativeSrc":"2270:4:65","nodeType":"YulIdentifier","src":"2270:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2350:6:65","nodeType":"YulIdentifier","src":"2350:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"2363:9:65","nodeType":"YulIdentifier","src":"2363:9:65"},{"kind":"number","nativeSrc":"2374:1:65","nodeType":"YulLiteral","src":"2374:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2359:3:65","nodeType":"YulIdentifier","src":"2359:3:65"},"nativeSrc":"2359:17:65","nodeType":"YulFunctionCall","src":"2359:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2306:43:65","nodeType":"YulIdentifier","src":"2306:43:65"},"nativeSrc":"2306:71:65","nodeType":"YulFunctionCall","src":"2306:71:65"},"nativeSrc":"2306:71:65","nodeType":"YulExpressionStatement","src":"2306:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2162:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2232:9:65","nodeType":"YulTypedName","src":"2232:9:65","type":""},{"name":"value0","nativeSrc":"2244:6:65","nodeType":"YulTypedName","src":"2244:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2255:4:65","nodeType":"YulTypedName","src":"2255:4:65","type":""}],"src":"2162:222:65"},{"body":{"nativeSrc":"2430:76:65","nodeType":"YulBlock","src":"2430:76:65","statements":[{"body":{"nativeSrc":"2484:16:65","nodeType":"YulBlock","src":"2484:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2493:1:65","nodeType":"YulLiteral","src":"2493:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2496:1:65","nodeType":"YulLiteral","src":"2496:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2486:6:65","nodeType":"YulIdentifier","src":"2486:6:65"},"nativeSrc":"2486:12:65","nodeType":"YulFunctionCall","src":"2486:12:65"},"nativeSrc":"2486:12:65","nodeType":"YulExpressionStatement","src":"2486:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2453:5:65","nodeType":"YulIdentifier","src":"2453:5:65"},{"arguments":[{"name":"value","nativeSrc":"2475:5:65","nodeType":"YulIdentifier","src":"2475:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2460:14:65","nodeType":"YulIdentifier","src":"2460:14:65"},"nativeSrc":"2460:21:65","nodeType":"YulFunctionCall","src":"2460:21:65"}],"functionName":{"name":"eq","nativeSrc":"2450:2:65","nodeType":"YulIdentifier","src":"2450:2:65"},"nativeSrc":"2450:32:65","nodeType":"YulFunctionCall","src":"2450:32:65"}],"functionName":{"name":"iszero","nativeSrc":"2443:6:65","nodeType":"YulIdentifier","src":"2443:6:65"},"nativeSrc":"2443:40:65","nodeType":"YulFunctionCall","src":"2443:40:65"},"nativeSrc":"2440:60:65","nodeType":"YulIf","src":"2440:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"2390:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2423:5:65","nodeType":"YulTypedName","src":"2423:5:65","type":""}],"src":"2390:116:65"},{"body":{"nativeSrc":"2561:84:65","nodeType":"YulBlock","src":"2561:84:65","statements":[{"nativeSrc":"2571:29:65","nodeType":"YulAssignment","src":"2571:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2593:6:65","nodeType":"YulIdentifier","src":"2593:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2580:12:65","nodeType":"YulIdentifier","src":"2580:12:65"},"nativeSrc":"2580:20:65","nodeType":"YulFunctionCall","src":"2580:20:65"},"variableNames":[{"name":"value","nativeSrc":"2571:5:65","nodeType":"YulIdentifier","src":"2571:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2633:5:65","nodeType":"YulIdentifier","src":"2633:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"2609:23:65","nodeType":"YulIdentifier","src":"2609:23:65"},"nativeSrc":"2609:30:65","nodeType":"YulFunctionCall","src":"2609:30:65"},"nativeSrc":"2609:30:65","nodeType":"YulExpressionStatement","src":"2609:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"2512:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2539:6:65","nodeType":"YulTypedName","src":"2539:6:65","type":""},{"name":"end","nativeSrc":"2547:3:65","nodeType":"YulTypedName","src":"2547:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2555:5:65","nodeType":"YulTypedName","src":"2555:5:65","type":""}],"src":"2512:133:65"},{"body":{"nativeSrc":"2731:388:65","nodeType":"YulBlock","src":"2731:388:65","statements":[{"body":{"nativeSrc":"2777:83:65","nodeType":"YulBlock","src":"2777:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2779:77:65","nodeType":"YulIdentifier","src":"2779:77:65"},"nativeSrc":"2779:79:65","nodeType":"YulFunctionCall","src":"2779:79:65"},"nativeSrc":"2779:79:65","nodeType":"YulExpressionStatement","src":"2779:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2752:7:65","nodeType":"YulIdentifier","src":"2752:7:65"},{"name":"headStart","nativeSrc":"2761:9:65","nodeType":"YulIdentifier","src":"2761:9:65"}],"functionName":{"name":"sub","nativeSrc":"2748:3:65","nodeType":"YulIdentifier","src":"2748:3:65"},"nativeSrc":"2748:23:65","nodeType":"YulFunctionCall","src":"2748:23:65"},{"kind":"number","nativeSrc":"2773:2:65","nodeType":"YulLiteral","src":"2773:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2744:3:65","nodeType":"YulIdentifier","src":"2744:3:65"},"nativeSrc":"2744:32:65","nodeType":"YulFunctionCall","src":"2744:32:65"},"nativeSrc":"2741:119:65","nodeType":"YulIf","src":"2741:119:65"},{"nativeSrc":"2870:117:65","nodeType":"YulBlock","src":"2870:117:65","statements":[{"nativeSrc":"2885:15:65","nodeType":"YulVariableDeclaration","src":"2885:15:65","value":{"kind":"number","nativeSrc":"2899:1:65","nodeType":"YulLiteral","src":"2899:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2889:6:65","nodeType":"YulTypedName","src":"2889:6:65","type":""}]},{"nativeSrc":"2914:63:65","nodeType":"YulAssignment","src":"2914:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2949:9:65","nodeType":"YulIdentifier","src":"2949:9:65"},{"name":"offset","nativeSrc":"2960:6:65","nodeType":"YulIdentifier","src":"2960:6:65"}],"functionName":{"name":"add","nativeSrc":"2945:3:65","nodeType":"YulIdentifier","src":"2945:3:65"},"nativeSrc":"2945:22:65","nodeType":"YulFunctionCall","src":"2945:22:65"},{"name":"dataEnd","nativeSrc":"2969:7:65","nodeType":"YulIdentifier","src":"2969:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2924:20:65","nodeType":"YulIdentifier","src":"2924:20:65"},"nativeSrc":"2924:53:65","nodeType":"YulFunctionCall","src":"2924:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2914:6:65","nodeType":"YulIdentifier","src":"2914:6:65"}]}]},{"nativeSrc":"2997:115:65","nodeType":"YulBlock","src":"2997:115:65","statements":[{"nativeSrc":"3012:16:65","nodeType":"YulVariableDeclaration","src":"3012:16:65","value":{"kind":"number","nativeSrc":"3026:2:65","nodeType":"YulLiteral","src":"3026:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3016:6:65","nodeType":"YulTypedName","src":"3016:6:65","type":""}]},{"nativeSrc":"3042:60:65","nodeType":"YulAssignment","src":"3042:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3074:9:65","nodeType":"YulIdentifier","src":"3074:9:65"},{"name":"offset","nativeSrc":"3085:6:65","nodeType":"YulIdentifier","src":"3085:6:65"}],"functionName":{"name":"add","nativeSrc":"3070:3:65","nodeType":"YulIdentifier","src":"3070:3:65"},"nativeSrc":"3070:22:65","nodeType":"YulFunctionCall","src":"3070:22:65"},{"name":"dataEnd","nativeSrc":"3094:7:65","nodeType":"YulIdentifier","src":"3094:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"3052:17:65","nodeType":"YulIdentifier","src":"3052:17:65"},"nativeSrc":"3052:50:65","nodeType":"YulFunctionCall","src":"3052:50:65"},"variableNames":[{"name":"value1","nativeSrc":"3042:6:65","nodeType":"YulIdentifier","src":"3042:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"2651:468:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2693:9:65","nodeType":"YulTypedName","src":"2693:9:65","type":""},{"name":"dataEnd","nativeSrc":"2704:7:65","nodeType":"YulTypedName","src":"2704:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2716:6:65","nodeType":"YulTypedName","src":"2716:6:65","type":""},{"name":"value1","nativeSrc":"2724:6:65","nodeType":"YulTypedName","src":"2724:6:65","type":""}],"src":"2651:468:65"},{"body":{"nativeSrc":"3168:79:65","nodeType":"YulBlock","src":"3168:79:65","statements":[{"body":{"nativeSrc":"3225:16:65","nodeType":"YulBlock","src":"3225:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3234:1:65","nodeType":"YulLiteral","src":"3234:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3237:1:65","nodeType":"YulLiteral","src":"3237:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3227:6:65","nodeType":"YulIdentifier","src":"3227:6:65"},"nativeSrc":"3227:12:65","nodeType":"YulFunctionCall","src":"3227:12:65"},"nativeSrc":"3227:12:65","nodeType":"YulExpressionStatement","src":"3227:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3191:5:65","nodeType":"YulIdentifier","src":"3191:5:65"},{"arguments":[{"name":"value","nativeSrc":"3216:5:65","nodeType":"YulIdentifier","src":"3216:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3198:17:65","nodeType":"YulIdentifier","src":"3198:17:65"},"nativeSrc":"3198:24:65","nodeType":"YulFunctionCall","src":"3198:24:65"}],"functionName":{"name":"eq","nativeSrc":"3188:2:65","nodeType":"YulIdentifier","src":"3188:2:65"},"nativeSrc":"3188:35:65","nodeType":"YulFunctionCall","src":"3188:35:65"}],"functionName":{"name":"iszero","nativeSrc":"3181:6:65","nodeType":"YulIdentifier","src":"3181:6:65"},"nativeSrc":"3181:43:65","nodeType":"YulFunctionCall","src":"3181:43:65"},"nativeSrc":"3178:63:65","nodeType":"YulIf","src":"3178:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"3125:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3161:5:65","nodeType":"YulTypedName","src":"3161:5:65","type":""}],"src":"3125:122:65"},{"body":{"nativeSrc":"3305:87:65","nodeType":"YulBlock","src":"3305:87:65","statements":[{"nativeSrc":"3315:29:65","nodeType":"YulAssignment","src":"3315:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"3337:6:65","nodeType":"YulIdentifier","src":"3337:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"3324:12:65","nodeType":"YulIdentifier","src":"3324:12:65"},"nativeSrc":"3324:20:65","nodeType":"YulFunctionCall","src":"3324:20:65"},"variableNames":[{"name":"value","nativeSrc":"3315:5:65","nodeType":"YulIdentifier","src":"3315:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3380:5:65","nodeType":"YulIdentifier","src":"3380:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3353:26:65","nodeType":"YulIdentifier","src":"3353:26:65"},"nativeSrc":"3353:33:65","nodeType":"YulFunctionCall","src":"3353:33:65"},"nativeSrc":"3353:33:65","nodeType":"YulExpressionStatement","src":"3353:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"3253:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3283:6:65","nodeType":"YulTypedName","src":"3283:6:65","type":""},{"name":"end","nativeSrc":"3291:3:65","nodeType":"YulTypedName","src":"3291:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3299:5:65","nodeType":"YulTypedName","src":"3299:5:65","type":""}],"src":"3253:139:65"},{"body":{"nativeSrc":"3481:391:65","nodeType":"YulBlock","src":"3481:391:65","statements":[{"body":{"nativeSrc":"3527:83:65","nodeType":"YulBlock","src":"3527:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3529:77:65","nodeType":"YulIdentifier","src":"3529:77:65"},"nativeSrc":"3529:79:65","nodeType":"YulFunctionCall","src":"3529:79:65"},"nativeSrc":"3529:79:65","nodeType":"YulExpressionStatement","src":"3529:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3502:7:65","nodeType":"YulIdentifier","src":"3502:7:65"},{"name":"headStart","nativeSrc":"3511:9:65","nodeType":"YulIdentifier","src":"3511:9:65"}],"functionName":{"name":"sub","nativeSrc":"3498:3:65","nodeType":"YulIdentifier","src":"3498:3:65"},"nativeSrc":"3498:23:65","nodeType":"YulFunctionCall","src":"3498:23:65"},{"kind":"number","nativeSrc":"3523:2:65","nodeType":"YulLiteral","src":"3523:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3494:3:65","nodeType":"YulIdentifier","src":"3494:3:65"},"nativeSrc":"3494:32:65","nodeType":"YulFunctionCall","src":"3494:32:65"},"nativeSrc":"3491:119:65","nodeType":"YulIf","src":"3491:119:65"},{"nativeSrc":"3620:117:65","nodeType":"YulBlock","src":"3620:117:65","statements":[{"nativeSrc":"3635:15:65","nodeType":"YulVariableDeclaration","src":"3635:15:65","value":{"kind":"number","nativeSrc":"3649:1:65","nodeType":"YulLiteral","src":"3649:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3639:6:65","nodeType":"YulTypedName","src":"3639:6:65","type":""}]},{"nativeSrc":"3664:63:65","nodeType":"YulAssignment","src":"3664:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3699:9:65","nodeType":"YulIdentifier","src":"3699:9:65"},{"name":"offset","nativeSrc":"3710:6:65","nodeType":"YulIdentifier","src":"3710:6:65"}],"functionName":{"name":"add","nativeSrc":"3695:3:65","nodeType":"YulIdentifier","src":"3695:3:65"},"nativeSrc":"3695:22:65","nodeType":"YulFunctionCall","src":"3695:22:65"},{"name":"dataEnd","nativeSrc":"3719:7:65","nodeType":"YulIdentifier","src":"3719:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3674:20:65","nodeType":"YulIdentifier","src":"3674:20:65"},"nativeSrc":"3674:53:65","nodeType":"YulFunctionCall","src":"3674:53:65"},"variableNames":[{"name":"value0","nativeSrc":"3664:6:65","nodeType":"YulIdentifier","src":"3664:6:65"}]}]},{"nativeSrc":"3747:118:65","nodeType":"YulBlock","src":"3747:118:65","statements":[{"nativeSrc":"3762:16:65","nodeType":"YulVariableDeclaration","src":"3762:16:65","value":{"kind":"number","nativeSrc":"3776:2:65","nodeType":"YulLiteral","src":"3776:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3766:6:65","nodeType":"YulTypedName","src":"3766:6:65","type":""}]},{"nativeSrc":"3792:63:65","nodeType":"YulAssignment","src":"3792:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3827:9:65","nodeType":"YulIdentifier","src":"3827:9:65"},{"name":"offset","nativeSrc":"3838:6:65","nodeType":"YulIdentifier","src":"3838:6:65"}],"functionName":{"name":"add","nativeSrc":"3823:3:65","nodeType":"YulIdentifier","src":"3823:3:65"},"nativeSrc":"3823:22:65","nodeType":"YulFunctionCall","src":"3823:22:65"},{"name":"dataEnd","nativeSrc":"3847:7:65","nodeType":"YulIdentifier","src":"3847:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3802:20:65","nodeType":"YulIdentifier","src":"3802:20:65"},"nativeSrc":"3802:53:65","nodeType":"YulFunctionCall","src":"3802:53:65"},"variableNames":[{"name":"value1","nativeSrc":"3792:6:65","nodeType":"YulIdentifier","src":"3792:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"3398:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3443:9:65","nodeType":"YulTypedName","src":"3443:9:65","type":""},{"name":"dataEnd","nativeSrc":"3454:7:65","nodeType":"YulTypedName","src":"3454:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3466:6:65","nodeType":"YulTypedName","src":"3466:6:65","type":""},{"name":"value1","nativeSrc":"3474:6:65","nodeType":"YulTypedName","src":"3474:6:65","type":""}],"src":"3398:474:65"},{"body":{"nativeSrc":"3961:391:65","nodeType":"YulBlock","src":"3961:391:65","statements":[{"body":{"nativeSrc":"4007:83:65","nodeType":"YulBlock","src":"4007:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4009:77:65","nodeType":"YulIdentifier","src":"4009:77:65"},"nativeSrc":"4009:79:65","nodeType":"YulFunctionCall","src":"4009:79:65"},"nativeSrc":"4009:79:65","nodeType":"YulExpressionStatement","src":"4009:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3982:7:65","nodeType":"YulIdentifier","src":"3982:7:65"},{"name":"headStart","nativeSrc":"3991:9:65","nodeType":"YulIdentifier","src":"3991:9:65"}],"functionName":{"name":"sub","nativeSrc":"3978:3:65","nodeType":"YulIdentifier","src":"3978:3:65"},"nativeSrc":"3978:23:65","nodeType":"YulFunctionCall","src":"3978:23:65"},{"kind":"number","nativeSrc":"4003:2:65","nodeType":"YulLiteral","src":"4003:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3974:3:65","nodeType":"YulIdentifier","src":"3974:3:65"},"nativeSrc":"3974:32:65","nodeType":"YulFunctionCall","src":"3974:32:65"},"nativeSrc":"3971:119:65","nodeType":"YulIf","src":"3971:119:65"},{"nativeSrc":"4100:117:65","nodeType":"YulBlock","src":"4100:117:65","statements":[{"nativeSrc":"4115:15:65","nodeType":"YulVariableDeclaration","src":"4115:15:65","value":{"kind":"number","nativeSrc":"4129:1:65","nodeType":"YulLiteral","src":"4129:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4119:6:65","nodeType":"YulTypedName","src":"4119:6:65","type":""}]},{"nativeSrc":"4144:63:65","nodeType":"YulAssignment","src":"4144:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4179:9:65","nodeType":"YulIdentifier","src":"4179:9:65"},{"name":"offset","nativeSrc":"4190:6:65","nodeType":"YulIdentifier","src":"4190:6:65"}],"functionName":{"name":"add","nativeSrc":"4175:3:65","nodeType":"YulIdentifier","src":"4175:3:65"},"nativeSrc":"4175:22:65","nodeType":"YulFunctionCall","src":"4175:22:65"},{"name":"dataEnd","nativeSrc":"4199:7:65","nodeType":"YulIdentifier","src":"4199:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4154:20:65","nodeType":"YulIdentifier","src":"4154:20:65"},"nativeSrc":"4154:53:65","nodeType":"YulFunctionCall","src":"4154:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4144:6:65","nodeType":"YulIdentifier","src":"4144:6:65"}]}]},{"nativeSrc":"4227:118:65","nodeType":"YulBlock","src":"4227:118:65","statements":[{"nativeSrc":"4242:16:65","nodeType":"YulVariableDeclaration","src":"4242:16:65","value":{"kind":"number","nativeSrc":"4256:2:65","nodeType":"YulLiteral","src":"4256:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4246:6:65","nodeType":"YulTypedName","src":"4246:6:65","type":""}]},{"nativeSrc":"4272:63:65","nodeType":"YulAssignment","src":"4272:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4307:9:65","nodeType":"YulIdentifier","src":"4307:9:65"},{"name":"offset","nativeSrc":"4318:6:65","nodeType":"YulIdentifier","src":"4318:6:65"}],"functionName":{"name":"add","nativeSrc":"4303:3:65","nodeType":"YulIdentifier","src":"4303:3:65"},"nativeSrc":"4303:22:65","nodeType":"YulFunctionCall","src":"4303:22:65"},{"name":"dataEnd","nativeSrc":"4327:7:65","nodeType":"YulIdentifier","src":"4327:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4282:20:65","nodeType":"YulIdentifier","src":"4282:20:65"},"nativeSrc":"4282:53:65","nodeType":"YulFunctionCall","src":"4282:53:65"},"variableNames":[{"name":"value1","nativeSrc":"4272:6:65","nodeType":"YulIdentifier","src":"4272:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"3878:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3923:9:65","nodeType":"YulTypedName","src":"3923:9:65","type":""},{"name":"dataEnd","nativeSrc":"3934:7:65","nodeType":"YulTypedName","src":"3934:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3946:6:65","nodeType":"YulTypedName","src":"3946:6:65","type":""},{"name":"value1","nativeSrc":"3954:6:65","nodeType":"YulTypedName","src":"3954:6:65","type":""}],"src":"3878:474:65"},{"body":{"nativeSrc":"4386:152:65","nodeType":"YulBlock","src":"4386:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4403:1:65","nodeType":"YulLiteral","src":"4403:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4406:77:65","nodeType":"YulLiteral","src":"4406:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4396:6:65","nodeType":"YulIdentifier","src":"4396:6:65"},"nativeSrc":"4396:88:65","nodeType":"YulFunctionCall","src":"4396:88:65"},"nativeSrc":"4396:88:65","nodeType":"YulExpressionStatement","src":"4396:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4500:1:65","nodeType":"YulLiteral","src":"4500:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4503:4:65","nodeType":"YulLiteral","src":"4503:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4493:6:65","nodeType":"YulIdentifier","src":"4493:6:65"},"nativeSrc":"4493:15:65","nodeType":"YulFunctionCall","src":"4493:15:65"},"nativeSrc":"4493:15:65","nodeType":"YulExpressionStatement","src":"4493:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4524:1:65","nodeType":"YulLiteral","src":"4524:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4527:4:65","nodeType":"YulLiteral","src":"4527:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4517:6:65","nodeType":"YulIdentifier","src":"4517:6:65"},"nativeSrc":"4517:15:65","nodeType":"YulFunctionCall","src":"4517:15:65"},"nativeSrc":"4517:15:65","nodeType":"YulExpressionStatement","src":"4517:15:65"}]},"name":"panic_error_0x11","nativeSrc":"4358:180:65","nodeType":"YulFunctionDefinition","src":"4358:180:65"},{"body":{"nativeSrc":"4588:147:65","nodeType":"YulBlock","src":"4588:147:65","statements":[{"nativeSrc":"4598:25:65","nodeType":"YulAssignment","src":"4598:25:65","value":{"arguments":[{"name":"x","nativeSrc":"4621:1:65","nodeType":"YulIdentifier","src":"4621:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4603:17:65","nodeType":"YulIdentifier","src":"4603:17:65"},"nativeSrc":"4603:20:65","nodeType":"YulFunctionCall","src":"4603:20:65"},"variableNames":[{"name":"x","nativeSrc":"4598:1:65","nodeType":"YulIdentifier","src":"4598:1:65"}]},{"nativeSrc":"4632:25:65","nodeType":"YulAssignment","src":"4632:25:65","value":{"arguments":[{"name":"y","nativeSrc":"4655:1:65","nodeType":"YulIdentifier","src":"4655:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4637:17:65","nodeType":"YulIdentifier","src":"4637:17:65"},"nativeSrc":"4637:20:65","nodeType":"YulFunctionCall","src":"4637:20:65"},"variableNames":[{"name":"y","nativeSrc":"4632:1:65","nodeType":"YulIdentifier","src":"4632:1:65"}]},{"nativeSrc":"4666:16:65","nodeType":"YulAssignment","src":"4666:16:65","value":{"arguments":[{"name":"x","nativeSrc":"4677:1:65","nodeType":"YulIdentifier","src":"4677:1:65"},{"name":"y","nativeSrc":"4680:1:65","nodeType":"YulIdentifier","src":"4680:1:65"}],"functionName":{"name":"add","nativeSrc":"4673:3:65","nodeType":"YulIdentifier","src":"4673:3:65"},"nativeSrc":"4673:9:65","nodeType":"YulFunctionCall","src":"4673:9:65"},"variableNames":[{"name":"sum","nativeSrc":"4666:3:65","nodeType":"YulIdentifier","src":"4666:3:65"}]},{"body":{"nativeSrc":"4706:22:65","nodeType":"YulBlock","src":"4706:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4708:16:65","nodeType":"YulIdentifier","src":"4708:16:65"},"nativeSrc":"4708:18:65","nodeType":"YulFunctionCall","src":"4708:18:65"},"nativeSrc":"4708:18:65","nodeType":"YulExpressionStatement","src":"4708:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"4698:1:65","nodeType":"YulIdentifier","src":"4698:1:65"},{"name":"sum","nativeSrc":"4701:3:65","nodeType":"YulIdentifier","src":"4701:3:65"}],"functionName":{"name":"gt","nativeSrc":"4695:2:65","nodeType":"YulIdentifier","src":"4695:2:65"},"nativeSrc":"4695:10:65","nodeType":"YulFunctionCall","src":"4695:10:65"},"nativeSrc":"4692:36:65","nodeType":"YulIf","src":"4692:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"4544:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4575:1:65","nodeType":"YulTypedName","src":"4575:1:65","type":""},{"name":"y","nativeSrc":"4578:1:65","nodeType":"YulTypedName","src":"4578:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"4584:3:65","nodeType":"YulTypedName","src":"4584:3:65","type":""}],"src":"4544:191:65"},{"body":{"nativeSrc":"4837:73:65","nodeType":"YulBlock","src":"4837:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4854:3:65","nodeType":"YulIdentifier","src":"4854:3:65"},{"name":"length","nativeSrc":"4859:6:65","nodeType":"YulIdentifier","src":"4859:6:65"}],"functionName":{"name":"mstore","nativeSrc":"4847:6:65","nodeType":"YulIdentifier","src":"4847:6:65"},"nativeSrc":"4847:19:65","nodeType":"YulFunctionCall","src":"4847:19:65"},"nativeSrc":"4847:19:65","nodeType":"YulExpressionStatement","src":"4847:19:65"},{"nativeSrc":"4875:29:65","nodeType":"YulAssignment","src":"4875:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"4894:3:65","nodeType":"YulIdentifier","src":"4894:3:65"},{"kind":"number","nativeSrc":"4899:4:65","nodeType":"YulLiteral","src":"4899:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4890:3:65","nodeType":"YulIdentifier","src":"4890:3:65"},"nativeSrc":"4890:14:65","nodeType":"YulFunctionCall","src":"4890:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"4875:11:65","nodeType":"YulIdentifier","src":"4875:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4741:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4809:3:65","nodeType":"YulTypedName","src":"4809:3:65","type":""},{"name":"length","nativeSrc":"4814:6:65","nodeType":"YulTypedName","src":"4814:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4825:11:65","nodeType":"YulTypedName","src":"4825:11:65","type":""}],"src":"4741:169:65"},{"body":{"nativeSrc":"5022:119:65","nodeType":"YulBlock","src":"5022:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5044:6:65","nodeType":"YulIdentifier","src":"5044:6:65"},{"kind":"number","nativeSrc":"5052:1:65","nodeType":"YulLiteral","src":"5052:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5040:3:65","nodeType":"YulIdentifier","src":"5040:3:65"},"nativeSrc":"5040:14:65","nodeType":"YulFunctionCall","src":"5040:14:65"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"5056:34:65","nodeType":"YulLiteral","src":"5056:34:65","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5033:6:65","nodeType":"YulIdentifier","src":"5033:6:65"},"nativeSrc":"5033:58:65","nodeType":"YulFunctionCall","src":"5033:58:65"},"nativeSrc":"5033:58:65","nodeType":"YulExpressionStatement","src":"5033:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5112:6:65","nodeType":"YulIdentifier","src":"5112:6:65"},{"kind":"number","nativeSrc":"5120:2:65","nodeType":"YulLiteral","src":"5120:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5108:3:65","nodeType":"YulIdentifier","src":"5108:3:65"},"nativeSrc":"5108:15:65","nodeType":"YulFunctionCall","src":"5108:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5125:8:65","nodeType":"YulLiteral","src":"5125:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5101:6:65","nodeType":"YulIdentifier","src":"5101:6:65"},"nativeSrc":"5101:33:65","nodeType":"YulFunctionCall","src":"5101:33:65"},"nativeSrc":"5101:33:65","nodeType":"YulExpressionStatement","src":"5101:33:65"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"4916:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5014:6:65","nodeType":"YulTypedName","src":"5014:6:65","type":""}],"src":"4916:225:65"},{"body":{"nativeSrc":"5293:220:65","nodeType":"YulBlock","src":"5293:220:65","statements":[{"nativeSrc":"5303:74:65","nodeType":"YulAssignment","src":"5303:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5369:3:65","nodeType":"YulIdentifier","src":"5369:3:65"},{"kind":"number","nativeSrc":"5374:2:65","nodeType":"YulLiteral","src":"5374:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5310:58:65","nodeType":"YulIdentifier","src":"5310:58:65"},"nativeSrc":"5310:67:65","nodeType":"YulFunctionCall","src":"5310:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5303:3:65","nodeType":"YulIdentifier","src":"5303:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5475:3:65","nodeType":"YulIdentifier","src":"5475:3:65"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"5386:88:65","nodeType":"YulIdentifier","src":"5386:88:65"},"nativeSrc":"5386:93:65","nodeType":"YulFunctionCall","src":"5386:93:65"},"nativeSrc":"5386:93:65","nodeType":"YulExpressionStatement","src":"5386:93:65"},{"nativeSrc":"5488:19:65","nodeType":"YulAssignment","src":"5488:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5499:3:65","nodeType":"YulIdentifier","src":"5499:3:65"},{"kind":"number","nativeSrc":"5504:2:65","nodeType":"YulLiteral","src":"5504:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5495:3:65","nodeType":"YulIdentifier","src":"5495:3:65"},"nativeSrc":"5495:12:65","nodeType":"YulFunctionCall","src":"5495:12:65"},"variableNames":[{"name":"end","nativeSrc":"5488:3:65","nodeType":"YulIdentifier","src":"5488:3:65"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5147:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5281:3:65","nodeType":"YulTypedName","src":"5281:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5289:3:65","nodeType":"YulTypedName","src":"5289:3:65","type":""}],"src":"5147:366:65"},{"body":{"nativeSrc":"5690:248:65","nodeType":"YulBlock","src":"5690:248:65","statements":[{"nativeSrc":"5700:26:65","nodeType":"YulAssignment","src":"5700:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5712:9:65","nodeType":"YulIdentifier","src":"5712:9:65"},{"kind":"number","nativeSrc":"5723:2:65","nodeType":"YulLiteral","src":"5723:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5708:3:65","nodeType":"YulIdentifier","src":"5708:3:65"},"nativeSrc":"5708:18:65","nodeType":"YulFunctionCall","src":"5708:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5700:4:65","nodeType":"YulIdentifier","src":"5700:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5747:9:65","nodeType":"YulIdentifier","src":"5747:9:65"},{"kind":"number","nativeSrc":"5758:1:65","nodeType":"YulLiteral","src":"5758:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5743:3:65","nodeType":"YulIdentifier","src":"5743:3:65"},"nativeSrc":"5743:17:65","nodeType":"YulFunctionCall","src":"5743:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5766:4:65","nodeType":"YulIdentifier","src":"5766:4:65"},{"name":"headStart","nativeSrc":"5772:9:65","nodeType":"YulIdentifier","src":"5772:9:65"}],"functionName":{"name":"sub","nativeSrc":"5762:3:65","nodeType":"YulIdentifier","src":"5762:3:65"},"nativeSrc":"5762:20:65","nodeType":"YulFunctionCall","src":"5762:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5736:6:65","nodeType":"YulIdentifier","src":"5736:6:65"},"nativeSrc":"5736:47:65","nodeType":"YulFunctionCall","src":"5736:47:65"},"nativeSrc":"5736:47:65","nodeType":"YulExpressionStatement","src":"5736:47:65"},{"nativeSrc":"5792:139:65","nodeType":"YulAssignment","src":"5792:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5926:4:65","nodeType":"YulIdentifier","src":"5926:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"5800:124:65","nodeType":"YulIdentifier","src":"5800:124:65"},"nativeSrc":"5800:131:65","nodeType":"YulFunctionCall","src":"5800:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5792:4:65","nodeType":"YulIdentifier","src":"5792:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5519:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5670:9:65","nodeType":"YulTypedName","src":"5670:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5685:4:65","nodeType":"YulTypedName","src":"5685:4:65","type":""}],"src":"5519:419:65"},{"body":{"nativeSrc":"6050:76:65","nodeType":"YulBlock","src":"6050:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6072:6:65","nodeType":"YulIdentifier","src":"6072:6:65"},{"kind":"number","nativeSrc":"6080:1:65","nodeType":"YulLiteral","src":"6080:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6068:3:65","nodeType":"YulIdentifier","src":"6068:3:65"},"nativeSrc":"6068:14:65","nodeType":"YulFunctionCall","src":"6068:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"6084:34:65","nodeType":"YulLiteral","src":"6084:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"6061:6:65","nodeType":"YulIdentifier","src":"6061:6:65"},"nativeSrc":"6061:58:65","nodeType":"YulFunctionCall","src":"6061:58:65"},"nativeSrc":"6061:58:65","nodeType":"YulExpressionStatement","src":"6061:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"5944:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6042:6:65","nodeType":"YulTypedName","src":"6042:6:65","type":""}],"src":"5944:182:65"},{"body":{"nativeSrc":"6278:220:65","nodeType":"YulBlock","src":"6278:220:65","statements":[{"nativeSrc":"6288:74:65","nodeType":"YulAssignment","src":"6288:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"6354:3:65","nodeType":"YulIdentifier","src":"6354:3:65"},{"kind":"number","nativeSrc":"6359:2:65","nodeType":"YulLiteral","src":"6359:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6295:58:65","nodeType":"YulIdentifier","src":"6295:58:65"},"nativeSrc":"6295:67:65","nodeType":"YulFunctionCall","src":"6295:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6288:3:65","nodeType":"YulIdentifier","src":"6288:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6460:3:65","nodeType":"YulIdentifier","src":"6460:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"6371:88:65","nodeType":"YulIdentifier","src":"6371:88:65"},"nativeSrc":"6371:93:65","nodeType":"YulFunctionCall","src":"6371:93:65"},"nativeSrc":"6371:93:65","nodeType":"YulExpressionStatement","src":"6371:93:65"},{"nativeSrc":"6473:19:65","nodeType":"YulAssignment","src":"6473:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6484:3:65","nodeType":"YulIdentifier","src":"6484:3:65"},{"kind":"number","nativeSrc":"6489:2:65","nodeType":"YulLiteral","src":"6489:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6480:3:65","nodeType":"YulIdentifier","src":"6480:3:65"},"nativeSrc":"6480:12:65","nodeType":"YulFunctionCall","src":"6480:12:65"},"variableNames":[{"name":"end","nativeSrc":"6473:3:65","nodeType":"YulIdentifier","src":"6473:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6132:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6266:3:65","nodeType":"YulTypedName","src":"6266:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6274:3:65","nodeType":"YulTypedName","src":"6274:3:65","type":""}],"src":"6132:366:65"},{"body":{"nativeSrc":"6675:248:65","nodeType":"YulBlock","src":"6675:248:65","statements":[{"nativeSrc":"6685:26:65","nodeType":"YulAssignment","src":"6685:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6697:9:65","nodeType":"YulIdentifier","src":"6697:9:65"},{"kind":"number","nativeSrc":"6708:2:65","nodeType":"YulLiteral","src":"6708:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6693:3:65","nodeType":"YulIdentifier","src":"6693:3:65"},"nativeSrc":"6693:18:65","nodeType":"YulFunctionCall","src":"6693:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6685:4:65","nodeType":"YulIdentifier","src":"6685:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6732:9:65","nodeType":"YulIdentifier","src":"6732:9:65"},{"kind":"number","nativeSrc":"6743:1:65","nodeType":"YulLiteral","src":"6743:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6728:3:65","nodeType":"YulIdentifier","src":"6728:3:65"},"nativeSrc":"6728:17:65","nodeType":"YulFunctionCall","src":"6728:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6751:4:65","nodeType":"YulIdentifier","src":"6751:4:65"},{"name":"headStart","nativeSrc":"6757:9:65","nodeType":"YulIdentifier","src":"6757:9:65"}],"functionName":{"name":"sub","nativeSrc":"6747:3:65","nodeType":"YulIdentifier","src":"6747:3:65"},"nativeSrc":"6747:20:65","nodeType":"YulFunctionCall","src":"6747:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6721:6:65","nodeType":"YulIdentifier","src":"6721:6:65"},"nativeSrc":"6721:47:65","nodeType":"YulFunctionCall","src":"6721:47:65"},"nativeSrc":"6721:47:65","nodeType":"YulExpressionStatement","src":"6721:47:65"},{"nativeSrc":"6777:139:65","nodeType":"YulAssignment","src":"6777:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6911:4:65","nodeType":"YulIdentifier","src":"6911:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"6785:124:65","nodeType":"YulIdentifier","src":"6785:124:65"},"nativeSrc":"6785:131:65","nodeType":"YulFunctionCall","src":"6785:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6777:4:65","nodeType":"YulIdentifier","src":"6777:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6504:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6655:9:65","nodeType":"YulTypedName","src":"6655:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6670:4:65","nodeType":"YulTypedName","src":"6670:4:65","type":""}],"src":"6504:419:65"},{"body":{"nativeSrc":"6988:40:65","nodeType":"YulBlock","src":"6988:40:65","statements":[{"nativeSrc":"6999:22:65","nodeType":"YulAssignment","src":"6999:22:65","value":{"arguments":[{"name":"value","nativeSrc":"7015:5:65","nodeType":"YulIdentifier","src":"7015:5:65"}],"functionName":{"name":"mload","nativeSrc":"7009:5:65","nodeType":"YulIdentifier","src":"7009:5:65"},"nativeSrc":"7009:12:65","nodeType":"YulFunctionCall","src":"7009:12:65"},"variableNames":[{"name":"length","nativeSrc":"6999:6:65","nodeType":"YulIdentifier","src":"6999:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"6929:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6971:5:65","nodeType":"YulTypedName","src":"6971:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6981:6:65","nodeType":"YulTypedName","src":"6981:6:65","type":""}],"src":"6929:99:65"},{"body":{"nativeSrc":"7096:186:65","nodeType":"YulBlock","src":"7096:186:65","statements":[{"nativeSrc":"7107:10:65","nodeType":"YulVariableDeclaration","src":"7107:10:65","value":{"kind":"number","nativeSrc":"7116:1:65","nodeType":"YulLiteral","src":"7116:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7111:1:65","nodeType":"YulTypedName","src":"7111:1:65","type":""}]},{"body":{"nativeSrc":"7176:63:65","nodeType":"YulBlock","src":"7176:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7201:3:65","nodeType":"YulIdentifier","src":"7201:3:65"},{"name":"i","nativeSrc":"7206:1:65","nodeType":"YulIdentifier","src":"7206:1:65"}],"functionName":{"name":"add","nativeSrc":"7197:3:65","nodeType":"YulIdentifier","src":"7197:3:65"},"nativeSrc":"7197:11:65","nodeType":"YulFunctionCall","src":"7197:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7220:3:65","nodeType":"YulIdentifier","src":"7220:3:65"},{"name":"i","nativeSrc":"7225:1:65","nodeType":"YulIdentifier","src":"7225:1:65"}],"functionName":{"name":"add","nativeSrc":"7216:3:65","nodeType":"YulIdentifier","src":"7216:3:65"},"nativeSrc":"7216:11:65","nodeType":"YulFunctionCall","src":"7216:11:65"}],"functionName":{"name":"mload","nativeSrc":"7210:5:65","nodeType":"YulIdentifier","src":"7210:5:65"},"nativeSrc":"7210:18:65","nodeType":"YulFunctionCall","src":"7210:18:65"}],"functionName":{"name":"mstore","nativeSrc":"7190:6:65","nodeType":"YulIdentifier","src":"7190:6:65"},"nativeSrc":"7190:39:65","nodeType":"YulFunctionCall","src":"7190:39:65"},"nativeSrc":"7190:39:65","nodeType":"YulExpressionStatement","src":"7190:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7137:1:65","nodeType":"YulIdentifier","src":"7137:1:65"},{"name":"length","nativeSrc":"7140:6:65","nodeType":"YulIdentifier","src":"7140:6:65"}],"functionName":{"name":"lt","nativeSrc":"7134:2:65","nodeType":"YulIdentifier","src":"7134:2:65"},"nativeSrc":"7134:13:65","nodeType":"YulFunctionCall","src":"7134:13:65"},"nativeSrc":"7126:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"7148:19:65","nodeType":"YulBlock","src":"7148:19:65","statements":[{"nativeSrc":"7150:15:65","nodeType":"YulAssignment","src":"7150:15:65","value":{"arguments":[{"name":"i","nativeSrc":"7159:1:65","nodeType":"YulIdentifier","src":"7159:1:65"},{"kind":"number","nativeSrc":"7162:2:65","nodeType":"YulLiteral","src":"7162:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7155:3:65","nodeType":"YulIdentifier","src":"7155:3:65"},"nativeSrc":"7155:10:65","nodeType":"YulFunctionCall","src":"7155:10:65"},"variableNames":[{"name":"i","nativeSrc":"7150:1:65","nodeType":"YulIdentifier","src":"7150:1:65"}]}]},"pre":{"nativeSrc":"7130:3:65","nodeType":"YulBlock","src":"7130:3:65","statements":[]},"src":"7126:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7259:3:65","nodeType":"YulIdentifier","src":"7259:3:65"},{"name":"length","nativeSrc":"7264:6:65","nodeType":"YulIdentifier","src":"7264:6:65"}],"functionName":{"name":"add","nativeSrc":"7255:3:65","nodeType":"YulIdentifier","src":"7255:3:65"},"nativeSrc":"7255:16:65","nodeType":"YulFunctionCall","src":"7255:16:65"},{"kind":"number","nativeSrc":"7273:1:65","nodeType":"YulLiteral","src":"7273:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7248:6:65","nodeType":"YulIdentifier","src":"7248:6:65"},"nativeSrc":"7248:27:65","nodeType":"YulFunctionCall","src":"7248:27:65"},"nativeSrc":"7248:27:65","nodeType":"YulExpressionStatement","src":"7248:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7034:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"7078:3:65","nodeType":"YulTypedName","src":"7078:3:65","type":""},{"name":"dst","nativeSrc":"7083:3:65","nodeType":"YulTypedName","src":"7083:3:65","type":""},{"name":"length","nativeSrc":"7088:6:65","nodeType":"YulTypedName","src":"7088:6:65","type":""}],"src":"7034:248:65"},{"body":{"nativeSrc":"7336:54:65","nodeType":"YulBlock","src":"7336:54:65","statements":[{"nativeSrc":"7346:38:65","nodeType":"YulAssignment","src":"7346:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7364:5:65","nodeType":"YulIdentifier","src":"7364:5:65"},{"kind":"number","nativeSrc":"7371:2:65","nodeType":"YulLiteral","src":"7371:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7360:3:65","nodeType":"YulIdentifier","src":"7360:3:65"},"nativeSrc":"7360:14:65","nodeType":"YulFunctionCall","src":"7360:14:65"},{"arguments":[{"kind":"number","nativeSrc":"7380:2:65","nodeType":"YulLiteral","src":"7380:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7376:3:65","nodeType":"YulIdentifier","src":"7376:3:65"},"nativeSrc":"7376:7:65","nodeType":"YulFunctionCall","src":"7376:7:65"}],"functionName":{"name":"and","nativeSrc":"7356:3:65","nodeType":"YulIdentifier","src":"7356:3:65"},"nativeSrc":"7356:28:65","nodeType":"YulFunctionCall","src":"7356:28:65"},"variableNames":[{"name":"result","nativeSrc":"7346:6:65","nodeType":"YulIdentifier","src":"7346:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7288:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7319:5:65","nodeType":"YulTypedName","src":"7319:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7329:6:65","nodeType":"YulTypedName","src":"7329:6:65","type":""}],"src":"7288:102:65"},{"body":{"nativeSrc":"7488:285:65","nodeType":"YulBlock","src":"7488:285:65","statements":[{"nativeSrc":"7498:53:65","nodeType":"YulVariableDeclaration","src":"7498:53:65","value":{"arguments":[{"name":"value","nativeSrc":"7545:5:65","nodeType":"YulIdentifier","src":"7545:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7512:32:65","nodeType":"YulIdentifier","src":"7512:32:65"},"nativeSrc":"7512:39:65","nodeType":"YulFunctionCall","src":"7512:39:65"},"variables":[{"name":"length","nativeSrc":"7502:6:65","nodeType":"YulTypedName","src":"7502:6:65","type":""}]},{"nativeSrc":"7560:78:65","nodeType":"YulAssignment","src":"7560:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"7626:3:65","nodeType":"YulIdentifier","src":"7626:3:65"},{"name":"length","nativeSrc":"7631:6:65","nodeType":"YulIdentifier","src":"7631:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7567:58:65","nodeType":"YulIdentifier","src":"7567:58:65"},"nativeSrc":"7567:71:65","nodeType":"YulFunctionCall","src":"7567:71:65"},"variableNames":[{"name":"pos","nativeSrc":"7560:3:65","nodeType":"YulIdentifier","src":"7560:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7686:5:65","nodeType":"YulIdentifier","src":"7686:5:65"},{"kind":"number","nativeSrc":"7693:4:65","nodeType":"YulLiteral","src":"7693:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7682:3:65","nodeType":"YulIdentifier","src":"7682:3:65"},"nativeSrc":"7682:16:65","nodeType":"YulFunctionCall","src":"7682:16:65"},{"name":"pos","nativeSrc":"7700:3:65","nodeType":"YulIdentifier","src":"7700:3:65"},{"name":"length","nativeSrc":"7705:6:65","nodeType":"YulIdentifier","src":"7705:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7647:34:65","nodeType":"YulIdentifier","src":"7647:34:65"},"nativeSrc":"7647:65:65","nodeType":"YulFunctionCall","src":"7647:65:65"},"nativeSrc":"7647:65:65","nodeType":"YulExpressionStatement","src":"7647:65:65"},{"nativeSrc":"7721:46:65","nodeType":"YulAssignment","src":"7721:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"7732:3:65","nodeType":"YulIdentifier","src":"7732:3:65"},{"arguments":[{"name":"length","nativeSrc":"7759:6:65","nodeType":"YulIdentifier","src":"7759:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7737:21:65","nodeType":"YulIdentifier","src":"7737:21:65"},"nativeSrc":"7737:29:65","nodeType":"YulFunctionCall","src":"7737:29:65"}],"functionName":{"name":"add","nativeSrc":"7728:3:65","nodeType":"YulIdentifier","src":"7728:3:65"},"nativeSrc":"7728:39:65","nodeType":"YulFunctionCall","src":"7728:39:65"},"variableNames":[{"name":"end","nativeSrc":"7721:3:65","nodeType":"YulIdentifier","src":"7721:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7396:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7469:5:65","nodeType":"YulTypedName","src":"7469:5:65","type":""},{"name":"pos","nativeSrc":"7476:3:65","nodeType":"YulTypedName","src":"7476:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7484:3:65","nodeType":"YulTypedName","src":"7484:3:65","type":""}],"src":"7396:377:65"},{"body":{"nativeSrc":"7925:277:65","nodeType":"YulBlock","src":"7925:277:65","statements":[{"nativeSrc":"7935:26:65","nodeType":"YulAssignment","src":"7935:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7947:9:65","nodeType":"YulIdentifier","src":"7947:9:65"},{"kind":"number","nativeSrc":"7958:2:65","nodeType":"YulLiteral","src":"7958:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7943:3:65","nodeType":"YulIdentifier","src":"7943:3:65"},"nativeSrc":"7943:18:65","nodeType":"YulFunctionCall","src":"7943:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7935:4:65","nodeType":"YulIdentifier","src":"7935:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8015:6:65","nodeType":"YulIdentifier","src":"8015:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"8028:9:65","nodeType":"YulIdentifier","src":"8028:9:65"},{"kind":"number","nativeSrc":"8039:1:65","nodeType":"YulLiteral","src":"8039:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8024:3:65","nodeType":"YulIdentifier","src":"8024:3:65"},"nativeSrc":"8024:17:65","nodeType":"YulFunctionCall","src":"8024:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7971:43:65","nodeType":"YulIdentifier","src":"7971:43:65"},"nativeSrc":"7971:71:65","nodeType":"YulFunctionCall","src":"7971:71:65"},"nativeSrc":"7971:71:65","nodeType":"YulExpressionStatement","src":"7971:71:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8063:9:65","nodeType":"YulIdentifier","src":"8063:9:65"},{"kind":"number","nativeSrc":"8074:2:65","nodeType":"YulLiteral","src":"8074:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8059:3:65","nodeType":"YulIdentifier","src":"8059:3:65"},"nativeSrc":"8059:18:65","nodeType":"YulFunctionCall","src":"8059:18:65"},{"arguments":[{"name":"tail","nativeSrc":"8083:4:65","nodeType":"YulIdentifier","src":"8083:4:65"},{"name":"headStart","nativeSrc":"8089:9:65","nodeType":"YulIdentifier","src":"8089:9:65"}],"functionName":{"name":"sub","nativeSrc":"8079:3:65","nodeType":"YulIdentifier","src":"8079:3:65"},"nativeSrc":"8079:20:65","nodeType":"YulFunctionCall","src":"8079:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8052:6:65","nodeType":"YulIdentifier","src":"8052:6:65"},"nativeSrc":"8052:48:65","nodeType":"YulFunctionCall","src":"8052:48:65"},"nativeSrc":"8052:48:65","nodeType":"YulExpressionStatement","src":"8052:48:65"},{"nativeSrc":"8109:86:65","nodeType":"YulAssignment","src":"8109:86:65","value":{"arguments":[{"name":"value1","nativeSrc":"8181:6:65","nodeType":"YulIdentifier","src":"8181:6:65"},{"name":"tail","nativeSrc":"8190:4:65","nodeType":"YulIdentifier","src":"8190:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8117:63:65","nodeType":"YulIdentifier","src":"8117:63:65"},"nativeSrc":"8117:78:65","nodeType":"YulFunctionCall","src":"8117:78:65"},"variableNames":[{"name":"tail","nativeSrc":"8109:4:65","nodeType":"YulIdentifier","src":"8109:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7779:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7889:9:65","nodeType":"YulTypedName","src":"7889:9:65","type":""},{"name":"value1","nativeSrc":"7901:6:65","nodeType":"YulTypedName","src":"7901:6:65","type":""},{"name":"value0","nativeSrc":"7909:6:65","nodeType":"YulTypedName","src":"7909:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7920:4:65","nodeType":"YulTypedName","src":"7920:4:65","type":""}],"src":"7779:423:65"},{"body":{"nativeSrc":"8268:77:65","nodeType":"YulBlock","src":"8268:77:65","statements":[{"nativeSrc":"8278:22:65","nodeType":"YulAssignment","src":"8278:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"8293:6:65","nodeType":"YulIdentifier","src":"8293:6:65"}],"functionName":{"name":"mload","nativeSrc":"8287:5:65","nodeType":"YulIdentifier","src":"8287:5:65"},"nativeSrc":"8287:13:65","nodeType":"YulFunctionCall","src":"8287:13:65"},"variableNames":[{"name":"value","nativeSrc":"8278:5:65","nodeType":"YulIdentifier","src":"8278:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8333:5:65","nodeType":"YulIdentifier","src":"8333:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8309:23:65","nodeType":"YulIdentifier","src":"8309:23:65"},"nativeSrc":"8309:30:65","nodeType":"YulFunctionCall","src":"8309:30:65"},"nativeSrc":"8309:30:65","nodeType":"YulExpressionStatement","src":"8309:30:65"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"8208:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8246:6:65","nodeType":"YulTypedName","src":"8246:6:65","type":""},{"name":"end","nativeSrc":"8254:3:65","nodeType":"YulTypedName","src":"8254:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8262:5:65","nodeType":"YulTypedName","src":"8262:5:65","type":""}],"src":"8208:137:65"},{"body":{"nativeSrc":"8425:271:65","nodeType":"YulBlock","src":"8425:271:65","statements":[{"body":{"nativeSrc":"8471:83:65","nodeType":"YulBlock","src":"8471:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8473:77:65","nodeType":"YulIdentifier","src":"8473:77:65"},"nativeSrc":"8473:79:65","nodeType":"YulFunctionCall","src":"8473:79:65"},"nativeSrc":"8473:79:65","nodeType":"YulExpressionStatement","src":"8473:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8446:7:65","nodeType":"YulIdentifier","src":"8446:7:65"},{"name":"headStart","nativeSrc":"8455:9:65","nodeType":"YulIdentifier","src":"8455:9:65"}],"functionName":{"name":"sub","nativeSrc":"8442:3:65","nodeType":"YulIdentifier","src":"8442:3:65"},"nativeSrc":"8442:23:65","nodeType":"YulFunctionCall","src":"8442:23:65"},{"kind":"number","nativeSrc":"8467:2:65","nodeType":"YulLiteral","src":"8467:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8438:3:65","nodeType":"YulIdentifier","src":"8438:3:65"},"nativeSrc":"8438:32:65","nodeType":"YulFunctionCall","src":"8438:32:65"},"nativeSrc":"8435:119:65","nodeType":"YulIf","src":"8435:119:65"},{"nativeSrc":"8564:125:65","nodeType":"YulBlock","src":"8564:125:65","statements":[{"nativeSrc":"8579:15:65","nodeType":"YulVariableDeclaration","src":"8579:15:65","value":{"kind":"number","nativeSrc":"8593:1:65","nodeType":"YulLiteral","src":"8593:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8583:6:65","nodeType":"YulTypedName","src":"8583:6:65","type":""}]},{"nativeSrc":"8608:71:65","nodeType":"YulAssignment","src":"8608:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8651:9:65","nodeType":"YulIdentifier","src":"8651:9:65"},{"name":"offset","nativeSrc":"8662:6:65","nodeType":"YulIdentifier","src":"8662:6:65"}],"functionName":{"name":"add","nativeSrc":"8647:3:65","nodeType":"YulIdentifier","src":"8647:3:65"},"nativeSrc":"8647:22:65","nodeType":"YulFunctionCall","src":"8647:22:65"},{"name":"dataEnd","nativeSrc":"8671:7:65","nodeType":"YulIdentifier","src":"8671:7:65"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"8618:28:65","nodeType":"YulIdentifier","src":"8618:28:65"},"nativeSrc":"8618:61:65","nodeType":"YulFunctionCall","src":"8618:61:65"},"variableNames":[{"name":"value0","nativeSrc":"8608:6:65","nodeType":"YulIdentifier","src":"8608:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"8351:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8395:9:65","nodeType":"YulTypedName","src":"8395:9:65","type":""},{"name":"dataEnd","nativeSrc":"8406:7:65","nodeType":"YulTypedName","src":"8406:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8418:6:65","nodeType":"YulTypedName","src":"8418:6:65","type":""}],"src":"8351:345:65"},{"body":{"nativeSrc":"8808:64:65","nodeType":"YulBlock","src":"8808:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8830:6:65","nodeType":"YulIdentifier","src":"8830:6:65"},{"kind":"number","nativeSrc":"8838:1:65","nodeType":"YulLiteral","src":"8838:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8826:3:65","nodeType":"YulIdentifier","src":"8826:3:65"},"nativeSrc":"8826:14:65","nodeType":"YulFunctionCall","src":"8826:14:65"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"8842:22:65","nodeType":"YulLiteral","src":"8842:22:65","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"8819:6:65","nodeType":"YulIdentifier","src":"8819:6:65"},"nativeSrc":"8819:46:65","nodeType":"YulFunctionCall","src":"8819:46:65"},"nativeSrc":"8819:46:65","nodeType":"YulExpressionStatement","src":"8819:46:65"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"8702:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8800:6:65","nodeType":"YulTypedName","src":"8800:6:65","type":""}],"src":"8702:170:65"},{"body":{"nativeSrc":"9024:220:65","nodeType":"YulBlock","src":"9024:220:65","statements":[{"nativeSrc":"9034:74:65","nodeType":"YulAssignment","src":"9034:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"9100:3:65","nodeType":"YulIdentifier","src":"9100:3:65"},{"kind":"number","nativeSrc":"9105:2:65","nodeType":"YulLiteral","src":"9105:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9041:58:65","nodeType":"YulIdentifier","src":"9041:58:65"},"nativeSrc":"9041:67:65","nodeType":"YulFunctionCall","src":"9041:67:65"},"variableNames":[{"name":"pos","nativeSrc":"9034:3:65","nodeType":"YulIdentifier","src":"9034:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9206:3:65","nodeType":"YulIdentifier","src":"9206:3:65"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"9117:88:65","nodeType":"YulIdentifier","src":"9117:88:65"},"nativeSrc":"9117:93:65","nodeType":"YulFunctionCall","src":"9117:93:65"},"nativeSrc":"9117:93:65","nodeType":"YulExpressionStatement","src":"9117:93:65"},{"nativeSrc":"9219:19:65","nodeType":"YulAssignment","src":"9219:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"9230:3:65","nodeType":"YulIdentifier","src":"9230:3:65"},{"kind":"number","nativeSrc":"9235:2:65","nodeType":"YulLiteral","src":"9235:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9226:3:65","nodeType":"YulIdentifier","src":"9226:3:65"},"nativeSrc":"9226:12:65","nodeType":"YulFunctionCall","src":"9226:12:65"},"variableNames":[{"name":"end","nativeSrc":"9219:3:65","nodeType":"YulIdentifier","src":"9219:3:65"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"8878:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9012:3:65","nodeType":"YulTypedName","src":"9012:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9020:3:65","nodeType":"YulTypedName","src":"9020:3:65","type":""}],"src":"8878:366:65"},{"body":{"nativeSrc":"9421:248:65","nodeType":"YulBlock","src":"9421:248:65","statements":[{"nativeSrc":"9431:26:65","nodeType":"YulAssignment","src":"9431:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9443:9:65","nodeType":"YulIdentifier","src":"9443:9:65"},{"kind":"number","nativeSrc":"9454:2:65","nodeType":"YulLiteral","src":"9454:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9439:3:65","nodeType":"YulIdentifier","src":"9439:3:65"},"nativeSrc":"9439:18:65","nodeType":"YulFunctionCall","src":"9439:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9431:4:65","nodeType":"YulIdentifier","src":"9431:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9478:9:65","nodeType":"YulIdentifier","src":"9478:9:65"},{"kind":"number","nativeSrc":"9489:1:65","nodeType":"YulLiteral","src":"9489:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9474:3:65","nodeType":"YulIdentifier","src":"9474:3:65"},"nativeSrc":"9474:17:65","nodeType":"YulFunctionCall","src":"9474:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9497:4:65","nodeType":"YulIdentifier","src":"9497:4:65"},{"name":"headStart","nativeSrc":"9503:9:65","nodeType":"YulIdentifier","src":"9503:9:65"}],"functionName":{"name":"sub","nativeSrc":"9493:3:65","nodeType":"YulIdentifier","src":"9493:3:65"},"nativeSrc":"9493:20:65","nodeType":"YulFunctionCall","src":"9493:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9467:6:65","nodeType":"YulIdentifier","src":"9467:6:65"},"nativeSrc":"9467:47:65","nodeType":"YulFunctionCall","src":"9467:47:65"},"nativeSrc":"9467:47:65","nodeType":"YulExpressionStatement","src":"9467:47:65"},{"nativeSrc":"9523:139:65","nodeType":"YulAssignment","src":"9523:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9657:4:65","nodeType":"YulIdentifier","src":"9657:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"9531:124:65","nodeType":"YulIdentifier","src":"9531:124:65"},"nativeSrc":"9531:131:65","nodeType":"YulFunctionCall","src":"9531:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9523:4:65","nodeType":"YulIdentifier","src":"9523:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9250:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9401:9:65","nodeType":"YulTypedName","src":"9401:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9416:4:65","nodeType":"YulTypedName","src":"9416:4:65","type":""}],"src":"9250:419:65"},{"body":{"nativeSrc":"9781:60:65","nodeType":"YulBlock","src":"9781:60:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9803:6:65","nodeType":"YulIdentifier","src":"9803:6:65"},{"kind":"number","nativeSrc":"9811:1:65","nodeType":"YulLiteral","src":"9811:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9799:3:65","nodeType":"YulIdentifier","src":"9799:3:65"},"nativeSrc":"9799:14:65","nodeType":"YulFunctionCall","src":"9799:14:65"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"9815:18:65","nodeType":"YulLiteral","src":"9815:18:65","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"9792:6:65","nodeType":"YulIdentifier","src":"9792:6:65"},"nativeSrc":"9792:42:65","nodeType":"YulFunctionCall","src":"9792:42:65"},"nativeSrc":"9792:42:65","nodeType":"YulExpressionStatement","src":"9792:42:65"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"9675:166:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9773:6:65","nodeType":"YulTypedName","src":"9773:6:65","type":""}],"src":"9675:166:65"},{"body":{"nativeSrc":"9993:220:65","nodeType":"YulBlock","src":"9993:220:65","statements":[{"nativeSrc":"10003:74:65","nodeType":"YulAssignment","src":"10003:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"10069:3:65","nodeType":"YulIdentifier","src":"10069:3:65"},{"kind":"number","nativeSrc":"10074:2:65","nodeType":"YulLiteral","src":"10074:2:65","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10010:58:65","nodeType":"YulIdentifier","src":"10010:58:65"},"nativeSrc":"10010:67:65","nodeType":"YulFunctionCall","src":"10010:67:65"},"variableNames":[{"name":"pos","nativeSrc":"10003:3:65","nodeType":"YulIdentifier","src":"10003:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10175:3:65","nodeType":"YulIdentifier","src":"10175:3:65"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"10086:88:65","nodeType":"YulIdentifier","src":"10086:88:65"},"nativeSrc":"10086:93:65","nodeType":"YulFunctionCall","src":"10086:93:65"},"nativeSrc":"10086:93:65","nodeType":"YulExpressionStatement","src":"10086:93:65"},{"nativeSrc":"10188:19:65","nodeType":"YulAssignment","src":"10188:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"10199:3:65","nodeType":"YulIdentifier","src":"10199:3:65"},{"kind":"number","nativeSrc":"10204:2:65","nodeType":"YulLiteral","src":"10204:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10195:3:65","nodeType":"YulIdentifier","src":"10195:3:65"},"nativeSrc":"10195:12:65","nodeType":"YulFunctionCall","src":"10195:12:65"},"variableNames":[{"name":"end","nativeSrc":"10188:3:65","nodeType":"YulIdentifier","src":"10188:3:65"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"9847:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9981:3:65","nodeType":"YulTypedName","src":"9981:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9989:3:65","nodeType":"YulTypedName","src":"9989:3:65","type":""}],"src":"9847:366:65"},{"body":{"nativeSrc":"10390:248:65","nodeType":"YulBlock","src":"10390:248:65","statements":[{"nativeSrc":"10400:26:65","nodeType":"YulAssignment","src":"10400:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10412:9:65","nodeType":"YulIdentifier","src":"10412:9:65"},{"kind":"number","nativeSrc":"10423:2:65","nodeType":"YulLiteral","src":"10423:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10408:3:65","nodeType":"YulIdentifier","src":"10408:3:65"},"nativeSrc":"10408:18:65","nodeType":"YulFunctionCall","src":"10408:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10400:4:65","nodeType":"YulIdentifier","src":"10400:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10447:9:65","nodeType":"YulIdentifier","src":"10447:9:65"},{"kind":"number","nativeSrc":"10458:1:65","nodeType":"YulLiteral","src":"10458:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10443:3:65","nodeType":"YulIdentifier","src":"10443:3:65"},"nativeSrc":"10443:17:65","nodeType":"YulFunctionCall","src":"10443:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10466:4:65","nodeType":"YulIdentifier","src":"10466:4:65"},{"name":"headStart","nativeSrc":"10472:9:65","nodeType":"YulIdentifier","src":"10472:9:65"}],"functionName":{"name":"sub","nativeSrc":"10462:3:65","nodeType":"YulIdentifier","src":"10462:3:65"},"nativeSrc":"10462:20:65","nodeType":"YulFunctionCall","src":"10462:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10436:6:65","nodeType":"YulIdentifier","src":"10436:6:65"},"nativeSrc":"10436:47:65","nodeType":"YulFunctionCall","src":"10436:47:65"},"nativeSrc":"10436:47:65","nodeType":"YulExpressionStatement","src":"10436:47:65"},{"nativeSrc":"10492:139:65","nodeType":"YulAssignment","src":"10492:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"10626:4:65","nodeType":"YulIdentifier","src":"10626:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"10500:124:65","nodeType":"YulIdentifier","src":"10500:124:65"},"nativeSrc":"10500:131:65","nodeType":"YulFunctionCall","src":"10500:131:65"},"variableNames":[{"name":"tail","nativeSrc":"10492:4:65","nodeType":"YulIdentifier","src":"10492:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10219:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10370:9:65","nodeType":"YulTypedName","src":"10370:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10385:4:65","nodeType":"YulTypedName","src":"10385:4:65","type":""}],"src":"10219:419:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063c06abe7711610066578063c06abe77146101cd578063d89e2dac146101e0578063e47d6060146101f3578063f2fde38b1461021f57600080fd5b80638da5cb5b1461018d5780639155e083146101a7578063b4a0bdf3146101ba57600080fd5b80635c975abb116100c85780635c975abb14610142578063715018a61461015d5780637b517334146101655780638456cb591461018557600080fd5b80630e32cb86146100ef578063391efe12146101045780633f4ba83a1461013a575b600080fd5b6101026100fd3660046108ab565b610232565b005b6101246101123660046108ab565b60036020526000908152604090205481565b60405161013191906108dc565b60405180910390f35b61010261029f565b600054600160a01b900460ff165b60405161013191906108f2565b6101026102d3565b6101246101733660046108ab565b60046020526000908152604090205481565b6101026102e5565b6000546001600160a01b03165b6040516101319190610909565b6101026101b536600461092a565b610315565b60015461019a906001600160a01b031681565b6101026101db366004610978565b6103b3565b6101026101ee3660046109ab565b610475565b6101506102013660046108ab565b6001600160a01b031660009081526002602052604090205460ff1690565b61010261022d3660046108ab565b610621565b61023a610664565b6102438161068e565b6001546040516001600160a01b038084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102c960405180604001604052806009815260200168756e7061757365282960b81b8152506106b5565b6102d1610744565b565b6102db610664565b6102d16000610793565b61030d604051806040016040528060078152602001667061757365282960c81b8152506106b5565b6102d16107e3565b6103536040518060400160405280601d81526020017f757064617465426c61636b6c69737428616464726573732c626f6f6c290000008152506106b5565b6001600160a01b03821660008181526002602052604090819020805460ff1916841515179055517f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac906103a79084906108f2565b60405180910390a25050565b6103f16040518060400160405280601b81526020017f7365744d696e7443617028616464726573732c75696e743235362900000000008152506106b5565b6001600160a01b03821660009081526004602052604090205481101561042a5760405163ce89973d60e01b815260040160405180910390fd5b6001600160a01b03821660008181526003602052604090819020839055517f01a85f4ecff52e70907e25b863010bca98a9458d9f2fe9b3efb4c47d197e6448906103a79084906108dc565b610496604051806060016040528060248152602001610bab602491396106b5565b806001600160a01b0316826001600160a01b0316036104c8576040516380ae98f560e01b815260040160405180910390fd5b6001600160a01b0380831660008181526003602090815260408083205494861680845281842054948452600490925280832054918352822054909161050d83836109f4565b90508381111561053057604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b0380881660009081526004602052604080822082905591881680825290829020839055905182860391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e619061058e9084906108dc565b60405180910390a2876001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb876040516105cf91906108dc565b60405180910390a2866001600160a01b0316886001600160a01b03167f63ce671e4a37975f0a9e340f6f72320c617a5f728b83e3860b03aa847dc26ebb60405160405180910390a35050505050505050565b610629610664565b6001600160a01b0381166106585760405162461bcd60e51b815260040161064f90610a07565b60405180910390fd5b61066181610793565b50565b6000546001600160a01b031633146102d15760405162461bcd60e51b815260040161064f90610a86565b6001600160a01b038116610661576040516342bcdf7f60e11b815260040160405180910390fd5b6001546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906106e79033908590600401610aec565b602060405180830381865afa158015610704573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107289190610b17565b610661576040516282b42960e81b815260040160405180910390fd5b61074c610826565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516107899190610909565b60405180910390a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107eb61084f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861077c3390565b600054600160a01b900460ff166102d15760405162461bcd60e51b815260040161064f90610b63565b600054600160a01b900460ff16156102d15760405162461bcd60e51b815260040161064f90610b9a565b60006001600160a01b0382165b92915050565b61089581610879565b811461066157600080fd5b80356108868161088c565b6000602082840312156108c0576108c0600080fd5b60006108cc84846108a0565b949350505050565b805b82525050565b6020810161088682846108d4565b8015156108d6565b6020810161088682846108ea565b6108d681610879565b602081016108868284610900565b801515610895565b803561088681610917565b6000806040838503121561094057610940600080fd5b600061094c85856108a0565b925050602061095d8582860161091f565b9150509250929050565b80610895565b803561088681610967565b6000806040838503121561098e5761098e600080fd5b600061099a85856108a0565b925050602061095d8582860161096d565b600080604083850312156109c1576109c1600080fd5b60006109cd85856108a0565b925050602061095d858286016108a0565b634e487b7160e01b600052601160045260246000fd5b80820180821115610886576108866109de565b6020808252810161088681602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b6020808252810161088681610a51565b60005b83811015610ab1578181015183820152602001610a99565b50506000910152565b6000610ac4825190565b808452602084019350610adb818560208601610a96565b601f01601f19169290920192915050565b60408101610afa8285610900565b81810360208301526108cc8184610aba565b805161088681610917565b600060208284031215610b2c57610b2c600080fd5b60006108cc8484610b0c565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b81529150610a7f565b6020808252810161088681610b38565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b81529150610a7f565b6020808252810161088681610b7356fe6d6967726174654d696e746572546f6b656e7328616464726573732c6164647265737329a2646970667358221220b518eaca1e0056a71e2005a29642ab3b15a8248b99ac87467887abb9eee98c0964736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xC06ABE77 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xC06ABE77 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xD89E2DAC EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0xE47D6060 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x21F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x9155E083 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x7B517334 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE32CB86 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x391EFE12 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x13A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x124 PUSH2 0x112 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x102 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x173 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x131 SWAP2 SWAP1 PUSH2 0x909 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x92A JUMP JUMPDEST PUSH2 0x315 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x19A SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x978 JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x9AB JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0x150 PUSH2 0x201 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x621 JUMP JUMPDEST PUSH2 0x23A PUSH2 0x664 JUMP JUMPDEST PUSH2 0x243 DUP2 PUSH2 0x68E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2C9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x744 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2DB PUSH2 0x664 JUMP JUMPDEST PUSH2 0x2D1 PUSH1 0x0 PUSH2 0x793 JUMP JUMPDEST PUSH2 0x30D PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x7E3 JUMP JUMPDEST PUSH2 0x353 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757064617465426C61636B6C69737428616464726573732C626F6F6C29000000 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP5 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH32 0x6A12B3DF6CBA4203BD7FD06B816789F87DE8C594299AED5717AE070FAC781BAC SWAP1 PUSH2 0x3A7 SWAP1 DUP5 SWAP1 PUSH2 0x8F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x3F1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D696E7443617028616464726573732C75696E74323536290000000000 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x42A JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE89973D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD PUSH32 0x1A85F4ECFF52E70907E25B863010BCA98A9458D9F2FE9B3EFB4C47D197E6448 SWAP1 PUSH2 0x3A7 SWAP1 DUP5 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH2 0x496 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBAB PUSH1 0x24 SWAP2 CODECOPY PUSH2 0x6B5 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x4C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x80AE98F5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP5 DUP7 AND DUP1 DUP5 MSTORE DUP2 DUP5 KECCAK256 SLOAD SWAP5 DUP5 MSTORE PUSH1 0x4 SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP2 DUP4 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x50D DUP4 DUP4 PUSH2 0x9F4 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x530 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE SWAP2 DUP9 AND DUP1 DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE SWAP1 MLOAD DUP3 DUP7 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0x58E SWAP1 DUP5 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP8 PUSH1 0x40 MLOAD PUSH2 0x5CF SWAP2 SWAP1 PUSH2 0x8DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63CE671E4A37975F0A9E340F6F72320C617A5F728B83E3860B03AA847DC26EBB PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x629 PUSH2 0x664 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x661 DUP2 PUSH2 0x793 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xA86 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0x6E7 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x704 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x728 SWAP2 SWAP1 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH3 0x82B429 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x74C PUSH2 0x826 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x789 SWAP2 SWAP1 PUSH2 0x909 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x7EB PUSH2 0x84F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x77C CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xB63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64F SWAP1 PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x895 DUP2 PUSH2 0x879 JUMP JUMPDEST DUP2 EQ PUSH2 0x661 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x88C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8C0 JUMPI PUSH2 0x8C0 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8CC DUP5 DUP5 PUSH2 0x8A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x8D4 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x8D6 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x8EA JUMP JUMPDEST PUSH2 0x8D6 DUP2 PUSH2 0x879 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x886 DUP3 DUP5 PUSH2 0x900 JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x895 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x917 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x940 JUMPI PUSH2 0x940 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x94C DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x91F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x895 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x886 DUP2 PUSH2 0x967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x98E JUMPI PUSH2 0x98E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x99A DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x96D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x9CD DUP6 DUP6 PUSH2 0x8A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x95D DUP6 DUP3 DUP7 ADD PUSH2 0x8A0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x886 PUSH2 0x9DE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xA51 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xAB1 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xA99 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC4 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0xADB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA96 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0xAFA DUP3 DUP6 PUSH2 0x900 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8CC DUP2 DUP5 PUSH2 0xABA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x886 DUP2 PUSH2 0x917 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2C JUMPI PUSH2 0xB2C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8CC DUP5 DUP5 PUSH2 0xB0C JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xB38 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x886 DUP2 PUSH2 0xB73 JUMP INVALID PUSH14 0x6967726174654D696E746572546F PUSH12 0x656E7328616464726573732C PUSH2 0x6464 PUSH19 0x65737329A2646970667358221220B518EACA1E STOP JUMP 0xA7 0x1E KECCAK256 SDIV LOG2 SWAP7 TIMESTAMP 0xAB EXTCODESIZE ISZERO 0xA8 0x24 DUP12 SWAP10 0xAC DUP8 CHAINID PUSH25 0x87ABB9EEE98C0964736F6C6343000819003300000000000000 ","sourceMap":"789:9692:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5740:292;;;;;;:::i;:::-;;:::i;:::-;;1218:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4150:92;;;:::i;1615:84:22:-;1662:4;1685:7;-1:-1:-1;;;1685:7:22;;;;1615:84;;;;;;;:::i;1824:101:21:-;;;:::i;1374:55:48:-;;;;;;:::i;:::-;;;;;;;;;;;;;;3955:86;;;:::i;1201:85:21:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:21;1201:85;;;;;;;:::i;4513:208:48:-;;;;;;:::i;:::-;;:::i;913:35::-;;;;;-1:-1:-1;;;;;913:35:48;;;4972:334;;;;;;:::i;:::-;;:::i;6746:1077::-;;;;;;:::i;:::-;;:::i;8009:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8093:17:48;8070:4;8093:17;;;:10;:17;;;;;;;;;8009:108;2074:198:21;;;;;;:::i;:::-;;:::i;5740:292:48:-;1094:13:21;:11;:13::i;:::-;5836:46:48::1;5857:24;5836:20;:46::i;:::-;5921:20;::::0;5897:71:::1;::::0;-1:-1:-1;;;;;5897:71:48;;::::1;::::0;5921:20:::1;::::0;5897:71:::1;::::0;5921:20:::1;::::0;5897:71:::1;5978:20;:47:::0;;-1:-1:-1;;;;;;5978:47:48::1;-1:-1:-1::0;;;;;5978:47:48;;;::::1;::::0;;;::::1;::::0;;5740:292::o;4150:92::-;4188:27;;;;;;;;;;;;;;-1:-1:-1;;;4188:27:48;;;:14;:27::i;:::-;4225:10;:8;:10::i;:::-;4150:92::o;1824:101:21:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;3955:86:48:-:0;3991:25;;;;;;;;;;;;;;-1:-1:-1;;;3991:25:48;;;:14;:25::i;:::-;4026:8;:6;:8::i;4513:208::-;4585:47;;;;;;;;;;;;;;;;;;:14;:47::i;:::-;-1:-1:-1;;;;;4642:17:48;;;;;;:10;:17;;;;;;;:26;;-1:-1:-1;;4642:26:48;;;;;;;4683:31;;;;;4642:26;;4683:31;:::i;:::-;;;;;;;;4513:208;;:::o;4972:334::-;5045:45;;;;;;;;;;;;;;;;;;:14;:45::i;:::-;-1:-1:-1;;;;;5115:29:48;;;;;;:20;:29;;;;;;5105:39;;5101:111;;;5167:34;;-1:-1:-1;;;5167:34:48;;;;;;;;;;;5101:111;-1:-1:-1;;;;;5222:20:48;;;;;;:11;:20;;;;;;;:30;;;5267:32;;;;;5245:7;;5267:32;:::i;6746:1077::-;6833:54;;;;;;;;;;;;;;;;;;:14;:54::i;:::-;6913:12;-1:-1:-1;;;;;6902:23:48;:7;-1:-1:-1;;;;;6902:23:48;;6898:82;;6948:21;;-1:-1:-1;;;6948:21:48;;;;;;;;;;;6898:82;-1:-1:-1;;;;;7010:20:48;;;6990:17;7010:20;;;:11;:20;;;;;;;;;7065:25;;;;;;;;;;7124:29;;;:20;:29;;;;;;;7191:34;;;;;;7124:29;;7266:32;7124:29;7191:34;7266:32;:::i;:::-;7235:63;;7336:14;7313:20;:37;7309:92;;;7373:17;;-1:-1:-1;;;7373:17:48;;;;;;;;;;;7309:92;-1:-1:-1;;;;;7411:29:48;;;7443:1;7411:29;;;:20;:29;;;;;;:33;;;7454:34;;;;;;;;;;:57;;;7657:48;;7594:37;;;;7454:34;7657:48;;;;7594:37;;7657:48;:::i;:::-;;;;;;;;7739:7;-1:-1:-1;;;;;7720:38:48;;7748:9;7720:38;;;;;;:::i;:::-;;;;;;;;7803:12;-1:-1:-1;;;;;7773:43:48;7794:7;-1:-1:-1;;;;;7773:43:48;;;;;;;;;;;6823:1000;;;;;;6746:1077;;:::o;2074:198:21:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:21;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:21::1;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:21;719:10:29;1422:23:21;1414:68;;;;-1:-1:-1;;;1414:68:21;;;;;;;:::i;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;10257:222:48;10362:20;;10338:87;;-1:-1:-1;;;10338:87:48;;-1:-1:-1;;;;;10362:20:48;;;;10338:61;;:87;;10400:10;;10412:12;;10338:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10333:140;;10448:14;;-1:-1:-1;;;10448:14:48;;;;;;;;;;;2433:117:22;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;-1:-1:-1;;;;2491:15:22::1;::::0;;2521:22:::1;719:10:29::0;2530:12:22::1;2521:22;;;;;;:::i;:::-;;;;;;;;2433:117::o:0;2426:187:21:-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:21;;;-1:-1:-1;;;;;;2534:17:21;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;2186:115:22:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:22::1;-1:-1:-1::0;;;2245:14:22::1;::::0;;2274:20:::1;2281:12;719:10:29::0;;640:96;1945:106:22;1662:4;1685:7;-1:-1:-1;;;1685:7:22;;;;2003:41;;;;-1:-1:-1;;;2003:41:22;;;;;;;:::i;1767:106::-;1662:4;1685:7;-1:-1:-1;;;1685:7:22;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:22;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;789:9692:48;;;955:79:65;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:65:o;1259:118::-;1364:5;1346:24;1341:3;1334:37;1259:118;;:::o;1383:222::-;1514:2;1499:18;;1527:71;1503:9;1571:6;1527:71;:::i;1707:109::-;1681:13;;1674:21;1788;1611:90;1822:210;1947:2;1932:18;;1960:65;1936:9;1998:6;1960:65;:::i;2038:118::-;2125:24;2143:5;2125:24;:::i;2162:222::-;2293:2;2278:18;;2306:71;2282:9;2350:6;2306:71;:::i;2390:116::-;1681:13;;1674:21;2460;1611:90;2512:133;2580:20;;2609:30;2580:20;2609:30;:::i;2651:468::-;2716:6;2724;2773:2;2761:9;2752:7;2748:23;2744:32;2741:119;;;2779:79;789:9692:48;;;2779:79:65;2899:1;2924:53;2969:7;2949:9;2924:53;:::i;:::-;2914:63;;2870:117;3026:2;3052:50;3094:7;3085:6;3074:9;3070:22;3052:50;:::i;:::-;3042:60;;2997:115;2651:468;;;;;:::o;3125:122::-;3216:5;3198:24;1176:77;3253:139;3324:20;;3353:33;3324:20;3353:33;:::i;3398:474::-;3466:6;3474;3523:2;3511:9;3502:7;3498:23;3494:32;3491:119;;;3529:79;789:9692:48;;;3529:79:65;3649:1;3674:53;3719:7;3699:9;3674:53;:::i;:::-;3664:63;;3620:117;3776:2;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;3878:474::-;3946:6;3954;4003:2;3991:9;3982:7;3978:23;3974:32;3971:119;;;4009:79;789:9692:48;;;4009:79:65;4129:1;4154:53;4199:7;4179:9;4154:53;:::i;:::-;4144:63;;4100:117;4256:2;4282:53;4327:7;4318:6;4307:9;4303:22;4282:53;:::i;4358:180::-;-1:-1:-1;;;4403:1:65;4396:88;4503:4;4500:1;4493:15;4527:4;4524:1;4517:15;4544:191;4673:9;;;4695:10;;;4692:36;;;4708:18;;:::i;5519:419::-;5723:2;5736:47;;;5708:18;;5800:131;5708:18;5374:2;4847:19;;5056:34;4899:4;4890:14;;5033:58;-1:-1:-1;;;5108:15:65;;;5101:33;5495:12;;;5147:366;6132;6359:2;4847:19;;;6084:34;4890:14;;6061:58;;;6274:3;6371:93;-1:-1:-1;6489:2:65;6480:12;;6132:366::o;6504:419::-;6708:2;6721:47;;;6693:18;;6785:131;6693:18;6785:131;:::i;7034:248::-;7116:1;7126:113;7140:6;7137:1;7134:13;7126:113;;;7216:11;;;7210:18;7197:11;;;7190:39;7162:2;7155:10;7126:113;;;-1:-1:-1;;7273:1:65;7255:16;;7248:27;7034:248::o;7396:377::-;7484:3;7512:39;7545:5;7009:12;;6929:99;7512:39;4847:19;;;4899:4;4890:14;;7560:78;;7647:65;7705:6;7700:3;7693:4;7686:5;7682:16;7647:65;:::i;:::-;7380:2;7360:14;-1:-1:-1;;7356:28:65;7728:39;;;;;;-1:-1:-1;;7396:377:65:o;7779:423::-;7958:2;7943:18;;7971:71;7947:9;8015:6;7971:71;:::i;:::-;8089:9;8083:4;8079:20;8074:2;8063:9;8059:18;8052:48;8117:78;8190:4;8181:6;8117:78;:::i;8208:137::-;8287:13;;8309:30;8287:13;8309:30;:::i;8351:345::-;8418:6;8467:2;8455:9;8446:7;8442:23;8438:32;8435:119;;;8473:79;789:9692:48;;;8473:79:65;8593:1;8618:61;8671:7;8651:9;8618:61;:::i;8878:366::-;9105:2;4847:19;;9020:3;4899:4;4890:14;;-1:-1:-1;;;8819:46:65;;9034:74;-1:-1:-1;9117:93:65;8702:170;9250:419;9454:2;9467:47;;;9439:18;;9531:131;9439:18;9531:131;:::i;9847:366::-;10074:2;4847:19;;9989:3;4899:4;4890:14;;-1:-1:-1;;;9792:42:65;;10003:74;-1:-1:-1;10086:93:65;9675:166;10219:419;10423:2;10436:47;;;10408:18;;10500:131;10408:18;10500:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"615200","executionCost":"infinite","totalCost":"infinite"},"external":{"accessControlManager()":"infinite","isBlackListed(address)":"infinite","migrateMinterTokens(address,address)":"infinite","minterToCap(address)":"infinite","minterToMintedAmount(address)":"infinite","owner()":"infinite","pause()":"infinite","paused()":"2410","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setMintCap(address,uint256)":"infinite","transferOwnership(address)":"infinite","unpause()":"infinite","updateBlacklist(address,bool)":"infinite"},"internal":{"_ensureAllowed(string memory)":"infinite","_increaseMintLimit(address,uint256)":"infinite","_isEligibleToMint(address,address,uint256)":"infinite"}},"methodIdentifiers":{"accessControlManager()":"b4a0bdf3","isBlackListed(address)":"e47d6060","migrateMinterTokens(address,address)":"d89e2dac","minterToCap(address)":"391efe12","minterToMintedAmount(address)":"7b517334","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setMintCap(address,uint256)":"c06abe77","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateBlacklist(address,bool)":"9155e083"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"AccountBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressesMustDiffer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintLimitExceed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintedAmountExceed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewCapNotGreaterThanMintedTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"BlacklistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MintCapChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"MintLimitDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"MintLimitIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"MintedTokensMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"}],\"name\":\"isBlackListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination_\",\"type\":\"address\"}],\"name\":\"migrateMinterTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minterToCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minterToMintedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAccessControlAddress_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"setMintCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"name\":\"updateBlacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:error\":\"ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero.\",\"params\":{\"accessControlManager_\":\"Address of access control manager contract.\"}},\"isBlackListed(address)\":{\"params\":{\"user_\":\"Address of user to check blacklist status.\"},\"returns\":{\"_0\":\"bool status of blacklist.\"}},\"migrateMinterTokens(address,address)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:error\":\"MintLimitExceed is thrown when the minting limit exceeds the cap after migration.AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\",\"custom:event\":\"Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.Emits MintedTokensMigrated.\",\"params\":{\"destination_\":\"Minter address to migrate tokens to.\",\"source_\":\"Minter address to migrate tokens from.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Controlled by AccessControlManager.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner.\",\"custom:error\":\"ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.\",\"custom:event\":\"Emits NewAccessControlManager.\",\"details\":\"Admin function to set the access control address.\",\"params\":{\"newAccessControlAddress_\":\"New address for the access control.\"}},\"setMintCap(address,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:event\":\"Emits MintCapChanged.\",\"params\":{\"amount_\":\"Cap for the minter.\",\"minter_\":\"Minter address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Controlled by AccessControlManager.\"},\"updateBlacklist(address,bool)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:event\":\"Emits BlacklistUpdated event.\",\"params\":{\"user_\":\"User address to be affected.\",\"value_\":\"Boolean to toggle value.\"}}},\"title\":\"TokenController\",\"version\":1},\"userdoc\":{\"errors\":{\"AccountBlacklisted(address)\":[{\"notice\":\"This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address.\"}],\"AddressesMustDiffer()\":[{\"notice\":\"This error is used to indicate that the addresses must be different.\"}],\"MintLimitExceed()\":[{\"notice\":\"This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap.\"}],\"MintedAmountExceed()\":[{\"notice\":\"This error is used to indicate that the minter did not mint the required amount of tokens.\"}],\"NewCapNotGreaterThanMintedTokens()\":[{\"notice\":\"This error is used to indicate that the new cap is greater than the previously minted tokens for the minter.\"}],\"Unauthorized()\":[{\"notice\":\"This error is used to indicate that sender is not allowed to perform this action.\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"BlacklistUpdated(address,bool)\":{\"notice\":\"Emitted when the blacklist status of a user is updated.\"},\"MintCapChanged(address,uint256)\":{\"notice\":\"Emitted when the minting cap for a minter is changed.\"},\"MintLimitDecreased(address,uint256)\":{\"notice\":\"Emitted when the minting limit for a minter is decreased.\"},\"MintLimitIncreased(address,uint256)\":{\"notice\":\"Emitted when the minting limit for a minter is increased.\"},\"MintedTokensMigrated(address,address)\":{\"notice\":\"Emitted when all minted tokens are migrated from one minter to another.\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when the address of the access control manager of the contract is updated.\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Access control manager contract address.\"},\"isBlackListed(address)\":{\"notice\":\"Returns the blacklist status of the address.\"},\"migrateMinterTokens(address,address)\":{\"notice\":\"Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\"},\"minterToCap(address)\":{\"notice\":\"A mapping is used to keep track of the maximum amount a minter is permitted to mint.\"},\"minterToMintedAmount(address)\":{\"notice\":\"A Mapping used to keep track of the amount i.e already minted by minter.\"},\"pause()\":{\"notice\":\"Pauses Token\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of the access control manager of this contract.\"},\"setMintCap(address,uint256)\":{\"notice\":\"Sets the minting cap for minter.\"},\"unpause()\":{\"notice\":\"Resumes Token\"},\"updateBlacklist(address,bool)\":{\"notice\":\"Function to update blacklist.\"}},\"notice\":\"TokenController contract acts as a governance and access control mechanism, allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem. It provides a flexible framework for token-related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/token/TokenController.sol\":\"TokenController\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/token/TokenController.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TokenController\\n * @author Venus\\n * @notice TokenController contract acts as a governance and access control mechanism,\\n * allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem.\\n * It provides a flexible framework for token-related operations.\\n */\\n\\ncontract TokenController is Ownable, Pausable {\\n    /**\\n     * @notice Access control manager contract address.\\n     */\\n    address public accessControlManager;\\n    /**\\n     * @notice A Mapping used to keep track of the blacklist status of addresses.\\n     */\\n    mapping(address => bool) internal _blacklist;\\n    /**\\n     * @notice A mapping is used to keep track of the maximum amount a minter is permitted to mint.\\n     */\\n    mapping(address => uint256) public minterToCap;\\n    /**\\n     * @notice A Mapping used to keep track of the amount i.e already minted by minter.\\n     */\\n    mapping(address => uint256) public minterToMintedAmount;\\n\\n    /**\\n     * @notice Emitted when the blacklist status of a user is updated.\\n     */\\n    event BlacklistUpdated(address indexed user, bool value);\\n    /**\\n     * @notice Emitted when the minting limit for a minter is increased.\\n     */\\n    event MintLimitIncreased(address indexed minter, uint256 newLimit);\\n    /**\\n     * @notice Emitted when the minting limit for a minter is decreased.\\n     */\\n    event MintLimitDecreased(address indexed minter, uint256 newLimit);\\n    /**\\n     * @notice Emitted when the minting cap for a minter is changed.\\n     */\\n    event MintCapChanged(address indexed minter, uint256 amount);\\n    /**\\n     * @notice Emitted when the address of the access control manager of the contract is updated.\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n    /**\\n     * @notice Emitted when all minted tokens are migrated from one minter to another.\\n     */\\n    event MintedTokensMigrated(address indexed source, address indexed destination);\\n\\n    /**\\n     * @notice This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap.\\n     */\\n    error MintLimitExceed();\\n    /**\\n     * @notice This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address.\\n     */\\n    error AccountBlacklisted(address user);\\n    /**\\n     * @notice This error is used to indicate that sender is not allowed to perform this action.\\n     */\\n    error Unauthorized();\\n    /**\\n     * @notice This error is used to indicate that the new cap is greater than the previously minted tokens for the minter.\\n     */\\n    error NewCapNotGreaterThanMintedTokens();\\n    /**\\n     * @notice This error is used to indicate that the addresses must be different.\\n     */\\n    error AddressesMustDiffer();\\n    /**\\n     * @notice This error is used to indicate that the minter did not mint the required amount of tokens.\\n     */\\n    error MintedAmountExceed();\\n\\n    /**\\n     * @param accessControlManager_ Address of access control manager contract.\\n     * @custom:error ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero.\\n     */\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Pauses Token\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Resumes Token\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Function to update blacklist.\\n     * @param user_ User address to be affected.\\n     * @param value_ Boolean to toggle value.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits BlacklistUpdated event.\\n     */\\n    function updateBlacklist(address user_, bool value_) external {\\n        _ensureAllowed(\\\"updateBlacklist(address,bool)\\\");\\n        _blacklist[user_] = value_;\\n        emit BlacklistUpdated(user_, value_);\\n    }\\n\\n    /**\\n     * @notice Sets the minting cap for minter.\\n     * @param minter_ Minter address.\\n     * @param amount_ Cap for the minter.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits MintCapChanged.\\n     */\\n    function setMintCap(address minter_, uint256 amount_) external {\\n        _ensureAllowed(\\\"setMintCap(address,uint256)\\\");\\n\\n        if (amount_ < minterToMintedAmount[minter_]) {\\n            revert NewCapNotGreaterThanMintedTokens();\\n        }\\n\\n        minterToCap[minter_] = amount_;\\n        emit MintCapChanged(minter_, amount_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of the access control manager of this contract.\\n     * @dev Admin function to set the access control address.\\n     * @param newAccessControlAddress_ New address for the access control.\\n     * @custom:access Only owner.\\n     * @custom:event Emits NewAccessControlManager.\\n     * @custom:error ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.\\n     */\\n    function setAccessControlManager(address newAccessControlAddress_) external onlyOwner {\\n        ensureNonzeroAddress(newAccessControlAddress_);\\n        emit NewAccessControlManager(accessControlManager, newAccessControlAddress_);\\n        accessControlManager = newAccessControlAddress_;\\n    }\\n\\n    /**\\n     * @notice Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\\n     * @param source_ Minter address to migrate tokens from.\\n     * @param destination_ Minter address to migrate tokens to.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:error MintLimitExceed is thrown when the minting limit exceeds the cap after migration.\\n     * @custom:error AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\\n     * @custom:event Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.\\n     * @custom:event Emits MintedTokensMigrated.\\n     */\\n    function migrateMinterTokens(address source_, address destination_) external {\\n        _ensureAllowed(\\\"migrateMinterTokens(address,address)\\\");\\n\\n        if (source_ == destination_) {\\n            revert AddressesMustDiffer();\\n        }\\n\\n        uint256 sourceCap = minterToCap[source_];\\n        uint256 destinationCap = minterToCap[destination_];\\n\\n        uint256 sourceMinted = minterToMintedAmount[source_];\\n        uint256 destinationMinted = minterToMintedAmount[destination_];\\n        uint256 newDestinationMinted = destinationMinted + sourceMinted;\\n\\n        if (newDestinationMinted > destinationCap) {\\n            revert MintLimitExceed();\\n        }\\n\\n        minterToMintedAmount[source_] = 0;\\n        minterToMintedAmount[destination_] = newDestinationMinted;\\n        uint256 availableLimit;\\n        unchecked {\\n            availableLimit = destinationCap - newDestinationMinted;\\n        }\\n\\n        emit MintLimitDecreased(destination_, availableLimit);\\n        emit MintLimitIncreased(source_, sourceCap);\\n        emit MintedTokensMigrated(source_, destination_);\\n    }\\n\\n    /**\\n     * @notice Returns the blacklist status of the address.\\n     * @param user_ Address of user to check blacklist status.\\n     * @return bool status of blacklist.\\n     */\\n    function isBlackListed(address user_) external view returns (bool) {\\n        return _blacklist[user_];\\n    }\\n\\n    /**\\n     * @dev Checks the minter cap and eligibility of receiver to receive tokens.\\n     * @param from_  Minter address.\\n     * @param to_  Receiver address.\\n     * @param amount_  Amount to be mint.\\n     * @custom:error MintLimitExceed is thrown when minting limit exceeds the cap.\\n     * @custom:event Emits MintLimitDecreased with minter address and available limits.\\n     */\\n    function _isEligibleToMint(address from_, address to_, uint256 amount_) internal {\\n        uint256 mintingCap = minterToCap[from_];\\n        uint256 totalMintedOld = minterToMintedAmount[from_];\\n        uint256 totalMintedNew = totalMintedOld + amount_;\\n\\n        if (totalMintedNew > mintingCap) {\\n            revert MintLimitExceed();\\n        }\\n        minterToMintedAmount[from_] = totalMintedNew;\\n        uint256 availableLimit;\\n        unchecked {\\n            availableLimit = mintingCap - totalMintedNew;\\n        }\\n        emit MintLimitDecreased(from_, availableLimit);\\n    }\\n\\n    /**\\n     * @dev This is post hook of burn function, increases minting limit of the minter.\\n     * @param from_ Minter address.\\n     * @param amount_  Amount burned.\\n     * @custom:error MintedAmountExceed is thrown when `amount_` is greater than the tokens minted by `from_`.\\n     * @custom:event Emits MintLimitIncreased with minter address and availabe limit.\\n     */\\n    function _increaseMintLimit(address from_, uint256 amount_) internal {\\n        uint256 totalMintedOld = minterToMintedAmount[from_];\\n\\n        if (totalMintedOld < amount_) {\\n            revert MintedAmountExceed();\\n        }\\n\\n        uint256 totalMintedNew;\\n        unchecked {\\n            totalMintedNew = totalMintedOld - amount_;\\n        }\\n        minterToMintedAmount[from_] = totalMintedNew;\\n        uint256 availableLimit = minterToCap[from_] - totalMintedNew;\\n        emit MintLimitIncreased(from_, availableLimit);\\n    }\\n\\n    /**\\n     * @dev Checks the caller is allowed to call the specified fuction.\\n     * @param functionSig_ Function signatureon which access is to be checked.\\n     * @custom:error Unauthorized, thrown when unauthorised user try to access function.\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        if (!IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_)) {\\n            revert Unauthorized();\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xae9daea7f260ac111e0855fc1f9c904623f3ab8a253fb3b060519a8384f95667\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5383,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":5506,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"_paused","offset":20,"slot":"0","type":"t_bool"},{"astId":11278,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"accessControlManager","offset":0,"slot":"1","type":"t_address"},{"astId":11283,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"_blacklist","offset":0,"slot":"2","type":"t_mapping(t_address,t_bool)"},{"astId":11288,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"minterToCap","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":11293,"contract":"contracts/Bridge/token/TokenController.sol:TokenController","label":"minterToMintedAmount","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"AccountBlacklisted(address)":[{"notice":"This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address."}],"AddressesMustDiffer()":[{"notice":"This error is used to indicate that the addresses must be different."}],"MintLimitExceed()":[{"notice":"This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap."}],"MintedAmountExceed()":[{"notice":"This error is used to indicate that the minter did not mint the required amount of tokens."}],"NewCapNotGreaterThanMintedTokens()":[{"notice":"This error is used to indicate that the new cap is greater than the previously minted tokens for the minter."}],"Unauthorized()":[{"notice":"This error is used to indicate that sender is not allowed to perform this action."}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"BlacklistUpdated(address,bool)":{"notice":"Emitted when the blacklist status of a user is updated."},"MintCapChanged(address,uint256)":{"notice":"Emitted when the minting cap for a minter is changed."},"MintLimitDecreased(address,uint256)":{"notice":"Emitted when the minting limit for a minter is decreased."},"MintLimitIncreased(address,uint256)":{"notice":"Emitted when the minting limit for a minter is increased."},"MintedTokensMigrated(address,address)":{"notice":"Emitted when all minted tokens are migrated from one minter to another."},"NewAccessControlManager(address,address)":{"notice":"Emitted when the address of the access control manager of the contract is updated."}},"kind":"user","methods":{"accessControlManager()":{"notice":"Access control manager contract address."},"isBlackListed(address)":{"notice":"Returns the blacklist status of the address."},"migrateMinterTokens(address,address)":{"notice":"Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge."},"minterToCap(address)":{"notice":"A mapping is used to keep track of the maximum amount a minter is permitted to mint."},"minterToMintedAmount(address)":{"notice":"A Mapping used to keep track of the amount i.e already minted by minter."},"pause()":{"notice":"Pauses Token"},"setAccessControlManager(address)":{"notice":"Sets the address of the access control manager of this contract."},"setMintCap(address,uint256)":{"notice":"Sets the minting cap for minter."},"unpause()":{"notice":"Resumes Token"},"updateBlacklist(address,bool)":{"notice":"Function to update blacklist."}},"notice":"TokenController contract acts as a governance and access control mechanism, allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem. It provides a flexible framework for token-related operations.","version":1}}},"contracts/Bridge/token/XVS.sol":{"XVS":{"abi":[{"inputs":[{"internalType":"address","name":"accessControlManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"AccountBlacklisted","type":"error"},{"inputs":[],"name":"AddressesMustDiffer","type":"error"},{"inputs":[],"name":"MintLimitExceed","type":"error"},{"inputs":[],"name":"MintedAmountExceed","type":"error"},{"inputs":[],"name":"NewCapNotGreaterThanMintedTokens","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","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":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintCapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MintLimitDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MintLimitIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"source","type":"address"},{"indexed":true,"internalType":"address","name":"destination","type":"address"}],"name":"MintedTokensMigrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAccessControlManager","type":"address"},{"indexed":true,"internalType":"address","name":"newAccessControlManager","type":"address"}],"name":"NewAccessControlManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"accessControlManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"source_","type":"address"},{"internalType":"address","name":"destination_","type":"address"}],"name":"migrateMinterTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minterToCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minterToMintedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAccessControlAddress_","type":"address"}],"name":"setAccessControlManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setMintCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bool","name":"value_","type":"bool"}],"name":"updateBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Venus","events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Paused(address)":{"details":"Emitted when the pause is triggered by `account`."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."},"Unpaused(address)":{"details":"Emitted when the pause is lifted by `account`."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(address,uint256)":{"custom:access":"Controlled by AccessControlManager.","custom:event":"Emits MintLimitIncreased with new available limit.","params":{"account_":"Address from which tokens be destroyed.","amount_":"Amount of tokens to be destroyed."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"isBlackListed(address)":{"params":{"user_":"Address of user to check blacklist status."},"returns":{"_0":"bool status of blacklist."}},"migrateMinterTokens(address,address)":{"custom:access":"Controlled by AccessControlManager.","custom:error":"MintLimitExceed is thrown when the minting limit exceeds the cap after migration.AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.","custom:event":"Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.Emits MintedTokensMigrated.","params":{"destination_":"Minter address to migrate tokens to.","source_":"Minter address to migrate tokens from."}},"mint(address,uint256)":{"custom:access":"Controlled by AccessControlManager.","custom:error":"MintLimitExceed is thrown when minting amount exceeds the maximum cap.","custom:event":"Emits MintLimitDecreased with new available limit.","params":{"account_":"Address to which tokens are assigned.","amount_":"Amount of tokens to be assigned."}},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"custom:access":"Controlled by AccessControlManager."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setAccessControlManager(address)":{"custom:access":"Only owner.","custom:error":"ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.","custom:event":"Emits NewAccessControlManager.","details":"Admin function to set the access control address.","params":{"newAccessControlAddress_":"New address for the access control."}},"setMintCap(address,uint256)":{"custom:access":"Controlled by AccessControlManager.","custom:event":"Emits MintCapChanged.","params":{"amount_":"Cap for the minter.","minter_":"Minter address."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"custom:access":"Controlled by AccessControlManager."},"updateBlacklist(address,bool)":{"custom:access":"Controlled by AccessControlManager.","custom:event":"Emits BlacklistUpdated event.","params":{"user_":"User address to be affected.","value_":"Boolean to toggle value."}}},"title":"XVS","version":1},"evm":{"bytecode":{"functionDebugData":{"@_11370":{"entryPoint":null,"id":11370,"parameterSlots":1,"returnSlots":0},"@_11739":{"entryPoint":null,"id":11739,"parameterSlots":1,"returnSlots":0},"@_5399":{"entryPoint":null,"id":5399,"parameterSlots":0,"returnSlots":0},"@_5515":{"entryPoint":null,"id":5515,"parameterSlots":0,"returnSlots":0},"@_5641":{"entryPoint":null,"id":5641,"parameterSlots":2,"returnSlots":0},"@_msgSender_7040":{"entryPoint":223,"id":7040,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5487":{"entryPoint":227,"id":5487,"parameterSlots":1,"returnSlots":0},"@ensureNonzeroAddress_9333":{"entryPoint":309,"id":9333,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":401,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":630,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":351,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":599,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":530,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":694,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":486,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":464,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":442,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":581,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":545,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":370,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:6426:65","nodeType":"YulBlock","src":"0:6426:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"922:274:65","nodeType":"YulBlock","src":"922:274:65","statements":[{"body":{"nativeSrc":"968:83:65","nodeType":"YulBlock","src":"968:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:65","nodeType":"YulIdentifier","src":"970:77:65"},"nativeSrc":"970:79:65","nodeType":"YulFunctionCall","src":"970:79:65"},"nativeSrc":"970:79:65","nodeType":"YulExpressionStatement","src":"970:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:65","nodeType":"YulIdentifier","src":"943:7:65"},{"name":"headStart","nativeSrc":"952:9:65","nodeType":"YulIdentifier","src":"952:9:65"}],"functionName":{"name":"sub","nativeSrc":"939:3:65","nodeType":"YulIdentifier","src":"939:3:65"},"nativeSrc":"939:23:65","nodeType":"YulFunctionCall","src":"939:23:65"},{"kind":"number","nativeSrc":"964:2:65","nodeType":"YulLiteral","src":"964:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:32:65","nodeType":"YulFunctionCall","src":"935:32:65"},"nativeSrc":"932:119:65","nodeType":"YulIf","src":"932:119:65"},{"nativeSrc":"1061:128:65","nodeType":"YulBlock","src":"1061:128:65","statements":[{"nativeSrc":"1076:15:65","nodeType":"YulVariableDeclaration","src":"1076:15:65","value":{"kind":"number","nativeSrc":"1090:1:65","nodeType":"YulLiteral","src":"1090:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:65","nodeType":"YulTypedName","src":"1080:6:65","type":""}]},{"nativeSrc":"1105:74:65","nodeType":"YulAssignment","src":"1105:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:65","nodeType":"YulIdentifier","src":"1151:9:65"},{"name":"offset","nativeSrc":"1162:6:65","nodeType":"YulIdentifier","src":"1162:6:65"}],"functionName":{"name":"add","nativeSrc":"1147:3:65","nodeType":"YulIdentifier","src":"1147:3:65"},"nativeSrc":"1147:22:65","nodeType":"YulFunctionCall","src":"1147:22:65"},{"name":"dataEnd","nativeSrc":"1171:7:65","nodeType":"YulIdentifier","src":"1171:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:65","nodeType":"YulIdentifier","src":"1115:31:65"},"nativeSrc":"1115:64:65","nodeType":"YulFunctionCall","src":"1115:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:65","nodeType":"YulIdentifier","src":"1105:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:65","nodeType":"YulTypedName","src":"892:9:65","type":""},{"name":"dataEnd","nativeSrc":"903:7:65","nodeType":"YulTypedName","src":"903:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:65","nodeType":"YulTypedName","src":"915:6:65","type":""}],"src":"845:351:65"},{"body":{"nativeSrc":"1261:40:65","nodeType":"YulBlock","src":"1261:40:65","statements":[{"nativeSrc":"1272:22:65","nodeType":"YulAssignment","src":"1272:22:65","value":{"arguments":[{"name":"value","nativeSrc":"1288:5:65","nodeType":"YulIdentifier","src":"1288:5:65"}],"functionName":{"name":"mload","nativeSrc":"1282:5:65","nodeType":"YulIdentifier","src":"1282:5:65"},"nativeSrc":"1282:12:65","nodeType":"YulFunctionCall","src":"1282:12:65"},"variableNames":[{"name":"length","nativeSrc":"1272:6:65","nodeType":"YulIdentifier","src":"1272:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"1202:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1244:5:65","nodeType":"YulTypedName","src":"1244:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1254:6:65","nodeType":"YulTypedName","src":"1254:6:65","type":""}],"src":"1202:99:65"},{"body":{"nativeSrc":"1335:152:65","nodeType":"YulBlock","src":"1335:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1352:1:65","nodeType":"YulLiteral","src":"1352:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1355:77:65","nodeType":"YulLiteral","src":"1355:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1345:6:65","nodeType":"YulIdentifier","src":"1345:6:65"},"nativeSrc":"1345:88:65","nodeType":"YulFunctionCall","src":"1345:88:65"},"nativeSrc":"1345:88:65","nodeType":"YulExpressionStatement","src":"1345:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1449:1:65","nodeType":"YulLiteral","src":"1449:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1452:4:65","nodeType":"YulLiteral","src":"1452:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1442:6:65","nodeType":"YulIdentifier","src":"1442:6:65"},"nativeSrc":"1442:15:65","nodeType":"YulFunctionCall","src":"1442:15:65"},"nativeSrc":"1442:15:65","nodeType":"YulExpressionStatement","src":"1442:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1473:1:65","nodeType":"YulLiteral","src":"1473:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1476:4:65","nodeType":"YulLiteral","src":"1476:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1466:6:65","nodeType":"YulIdentifier","src":"1466:6:65"},"nativeSrc":"1466:15:65","nodeType":"YulFunctionCall","src":"1466:15:65"},"nativeSrc":"1466:15:65","nodeType":"YulExpressionStatement","src":"1466:15:65"}]},"name":"panic_error_0x41","nativeSrc":"1307:180:65","nodeType":"YulFunctionDefinition","src":"1307:180:65"},{"body":{"nativeSrc":"1521:152:65","nodeType":"YulBlock","src":"1521:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1538:1:65","nodeType":"YulLiteral","src":"1538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1541:77:65","nodeType":"YulLiteral","src":"1541:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1531:6:65","nodeType":"YulIdentifier","src":"1531:6:65"},"nativeSrc":"1531:88:65","nodeType":"YulFunctionCall","src":"1531:88:65"},"nativeSrc":"1531:88:65","nodeType":"YulExpressionStatement","src":"1531:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1635:1:65","nodeType":"YulLiteral","src":"1635:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1638:4:65","nodeType":"YulLiteral","src":"1638:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1628:6:65","nodeType":"YulIdentifier","src":"1628:6:65"},"nativeSrc":"1628:15:65","nodeType":"YulFunctionCall","src":"1628:15:65"},"nativeSrc":"1628:15:65","nodeType":"YulExpressionStatement","src":"1628:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1659:1:65","nodeType":"YulLiteral","src":"1659:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1662:4:65","nodeType":"YulLiteral","src":"1662:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1652:6:65","nodeType":"YulIdentifier","src":"1652:6:65"},"nativeSrc":"1652:15:65","nodeType":"YulFunctionCall","src":"1652:15:65"},"nativeSrc":"1652:15:65","nodeType":"YulExpressionStatement","src":"1652:15:65"}]},"name":"panic_error_0x22","nativeSrc":"1493:180:65","nodeType":"YulFunctionDefinition","src":"1493:180:65"},{"body":{"nativeSrc":"1730:269:65","nodeType":"YulBlock","src":"1730:269:65","statements":[{"nativeSrc":"1740:22:65","nodeType":"YulAssignment","src":"1740:22:65","value":{"arguments":[{"name":"data","nativeSrc":"1754:4:65","nodeType":"YulIdentifier","src":"1754:4:65"},{"kind":"number","nativeSrc":"1760:1:65","nodeType":"YulLiteral","src":"1760:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"1750:3:65","nodeType":"YulIdentifier","src":"1750:3:65"},"nativeSrc":"1750:12:65","nodeType":"YulFunctionCall","src":"1750:12:65"},"variableNames":[{"name":"length","nativeSrc":"1740:6:65","nodeType":"YulIdentifier","src":"1740:6:65"}]},{"nativeSrc":"1771:38:65","nodeType":"YulVariableDeclaration","src":"1771:38:65","value":{"arguments":[{"name":"data","nativeSrc":"1801:4:65","nodeType":"YulIdentifier","src":"1801:4:65"},{"kind":"number","nativeSrc":"1807:1:65","nodeType":"YulLiteral","src":"1807:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1797:3:65","nodeType":"YulIdentifier","src":"1797:3:65"},"nativeSrc":"1797:12:65","nodeType":"YulFunctionCall","src":"1797:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1775:18:65","nodeType":"YulTypedName","src":"1775:18:65","type":""}]},{"body":{"nativeSrc":"1848:51:65","nodeType":"YulBlock","src":"1848:51:65","statements":[{"nativeSrc":"1862:27:65","nodeType":"YulAssignment","src":"1862:27:65","value":{"arguments":[{"name":"length","nativeSrc":"1876:6:65","nodeType":"YulIdentifier","src":"1876:6:65"},{"kind":"number","nativeSrc":"1884:4:65","nodeType":"YulLiteral","src":"1884:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1872:3:65","nodeType":"YulIdentifier","src":"1872:3:65"},"nativeSrc":"1872:17:65","nodeType":"YulFunctionCall","src":"1872:17:65"},"variableNames":[{"name":"length","nativeSrc":"1862:6:65","nodeType":"YulIdentifier","src":"1862:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1828:18:65","nodeType":"YulIdentifier","src":"1828:18:65"}],"functionName":{"name":"iszero","nativeSrc":"1821:6:65","nodeType":"YulIdentifier","src":"1821:6:65"},"nativeSrc":"1821:26:65","nodeType":"YulFunctionCall","src":"1821:26:65"},"nativeSrc":"1818:81:65","nodeType":"YulIf","src":"1818:81:65"},{"body":{"nativeSrc":"1951:42:65","nodeType":"YulBlock","src":"1951:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"1965:16:65","nodeType":"YulIdentifier","src":"1965:16:65"},"nativeSrc":"1965:18:65","nodeType":"YulFunctionCall","src":"1965:18:65"},"nativeSrc":"1965:18:65","nodeType":"YulExpressionStatement","src":"1965:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1915:18:65","nodeType":"YulIdentifier","src":"1915:18:65"},{"arguments":[{"name":"length","nativeSrc":"1938:6:65","nodeType":"YulIdentifier","src":"1938:6:65"},{"kind":"number","nativeSrc":"1946:2:65","nodeType":"YulLiteral","src":"1946:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1935:2:65","nodeType":"YulIdentifier","src":"1935:2:65"},"nativeSrc":"1935:14:65","nodeType":"YulFunctionCall","src":"1935:14:65"}],"functionName":{"name":"eq","nativeSrc":"1912:2:65","nodeType":"YulIdentifier","src":"1912:2:65"},"nativeSrc":"1912:38:65","nodeType":"YulFunctionCall","src":"1912:38:65"},"nativeSrc":"1909:84:65","nodeType":"YulIf","src":"1909:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"1679:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1714:4:65","nodeType":"YulTypedName","src":"1714:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1723:6:65","nodeType":"YulTypedName","src":"1723:6:65","type":""}],"src":"1679:320:65"},{"body":{"nativeSrc":"2059:87:65","nodeType":"YulBlock","src":"2059:87:65","statements":[{"nativeSrc":"2069:11:65","nodeType":"YulAssignment","src":"2069:11:65","value":{"name":"ptr","nativeSrc":"2077:3:65","nodeType":"YulIdentifier","src":"2077:3:65"},"variableNames":[{"name":"data","nativeSrc":"2069:4:65","nodeType":"YulIdentifier","src":"2069:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2097:1:65","nodeType":"YulLiteral","src":"2097:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"2100:3:65","nodeType":"YulIdentifier","src":"2100:3:65"}],"functionName":{"name":"mstore","nativeSrc":"2090:6:65","nodeType":"YulIdentifier","src":"2090:6:65"},"nativeSrc":"2090:14:65","nodeType":"YulFunctionCall","src":"2090:14:65"},"nativeSrc":"2090:14:65","nodeType":"YulExpressionStatement","src":"2090:14:65"},{"nativeSrc":"2113:26:65","nodeType":"YulAssignment","src":"2113:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"2131:1:65","nodeType":"YulLiteral","src":"2131:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2134:4:65","nodeType":"YulLiteral","src":"2134:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2121:9:65","nodeType":"YulIdentifier","src":"2121:9:65"},"nativeSrc":"2121:18:65","nodeType":"YulFunctionCall","src":"2121:18:65"},"variableNames":[{"name":"data","nativeSrc":"2113:4:65","nodeType":"YulIdentifier","src":"2113:4:65"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"2005:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2046:3:65","nodeType":"YulTypedName","src":"2046:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2054:4:65","nodeType":"YulTypedName","src":"2054:4:65","type":""}],"src":"2005:141:65"},{"body":{"nativeSrc":"2196:49:65","nodeType":"YulBlock","src":"2196:49:65","statements":[{"nativeSrc":"2206:33:65","nodeType":"YulAssignment","src":"2206:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2224:5:65","nodeType":"YulIdentifier","src":"2224:5:65"},{"kind":"number","nativeSrc":"2231:2:65","nodeType":"YulLiteral","src":"2231:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2220:3:65","nodeType":"YulIdentifier","src":"2220:3:65"},"nativeSrc":"2220:14:65","nodeType":"YulFunctionCall","src":"2220:14:65"},{"kind":"number","nativeSrc":"2236:2:65","nodeType":"YulLiteral","src":"2236:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"2216:3:65","nodeType":"YulIdentifier","src":"2216:3:65"},"nativeSrc":"2216:23:65","nodeType":"YulFunctionCall","src":"2216:23:65"},"variableNames":[{"name":"result","nativeSrc":"2206:6:65","nodeType":"YulIdentifier","src":"2206:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"2152:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2179:5:65","nodeType":"YulTypedName","src":"2179:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2189:6:65","nodeType":"YulTypedName","src":"2189:6:65","type":""}],"src":"2152:93:65"},{"body":{"nativeSrc":"2304:54:65","nodeType":"YulBlock","src":"2304:54:65","statements":[{"nativeSrc":"2314:37:65","nodeType":"YulAssignment","src":"2314:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"2339:4:65","nodeType":"YulIdentifier","src":"2339:4:65"},{"name":"value","nativeSrc":"2345:5:65","nodeType":"YulIdentifier","src":"2345:5:65"}],"functionName":{"name":"shl","nativeSrc":"2335:3:65","nodeType":"YulIdentifier","src":"2335:3:65"},"nativeSrc":"2335:16:65","nodeType":"YulFunctionCall","src":"2335:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"2314:8:65","nodeType":"YulIdentifier","src":"2314:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"2251:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"2279:4:65","nodeType":"YulTypedName","src":"2279:4:65","type":""},{"name":"value","nativeSrc":"2285:5:65","nodeType":"YulTypedName","src":"2285:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"2295:8:65","nodeType":"YulTypedName","src":"2295:8:65","type":""}],"src":"2251:107:65"},{"body":{"nativeSrc":"2440:317:65","nodeType":"YulBlock","src":"2440:317:65","statements":[{"nativeSrc":"2450:35:65","nodeType":"YulVariableDeclaration","src":"2450:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"2471:10:65","nodeType":"YulIdentifier","src":"2471:10:65"},{"kind":"number","nativeSrc":"2483:1:65","nodeType":"YulLiteral","src":"2483:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"2467:3:65","nodeType":"YulIdentifier","src":"2467:3:65"},"nativeSrc":"2467:18:65","nodeType":"YulFunctionCall","src":"2467:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"2454:9:65","nodeType":"YulTypedName","src":"2454:9:65","type":""}]},{"nativeSrc":"2494:109:65","nodeType":"YulVariableDeclaration","src":"2494:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"2525:9:65","nodeType":"YulIdentifier","src":"2525:9:65"},{"kind":"number","nativeSrc":"2536:66:65","nodeType":"YulLiteral","src":"2536:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"2506:18:65","nodeType":"YulIdentifier","src":"2506:18:65"},"nativeSrc":"2506:97:65","nodeType":"YulFunctionCall","src":"2506:97:65"},"variables":[{"name":"mask","nativeSrc":"2498:4:65","nodeType":"YulTypedName","src":"2498:4:65","type":""}]},{"nativeSrc":"2612:51:65","nodeType":"YulAssignment","src":"2612:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"2643:9:65","nodeType":"YulIdentifier","src":"2643:9:65"},{"name":"toInsert","nativeSrc":"2654:8:65","nodeType":"YulIdentifier","src":"2654:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"2624:18:65","nodeType":"YulIdentifier","src":"2624:18:65"},"nativeSrc":"2624:39:65","nodeType":"YulFunctionCall","src":"2624:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"2612:8:65","nodeType":"YulIdentifier","src":"2612:8:65"}]},{"nativeSrc":"2672:30:65","nodeType":"YulAssignment","src":"2672:30:65","value":{"arguments":[{"name":"value","nativeSrc":"2685:5:65","nodeType":"YulIdentifier","src":"2685:5:65"},{"arguments":[{"name":"mask","nativeSrc":"2696:4:65","nodeType":"YulIdentifier","src":"2696:4:65"}],"functionName":{"name":"not","nativeSrc":"2692:3:65","nodeType":"YulIdentifier","src":"2692:3:65"},"nativeSrc":"2692:9:65","nodeType":"YulFunctionCall","src":"2692:9:65"}],"functionName":{"name":"and","nativeSrc":"2681:3:65","nodeType":"YulIdentifier","src":"2681:3:65"},"nativeSrc":"2681:21:65","nodeType":"YulFunctionCall","src":"2681:21:65"},"variableNames":[{"name":"value","nativeSrc":"2672:5:65","nodeType":"YulIdentifier","src":"2672:5:65"}]},{"nativeSrc":"2711:40:65","nodeType":"YulAssignment","src":"2711:40:65","value":{"arguments":[{"name":"value","nativeSrc":"2724:5:65","nodeType":"YulIdentifier","src":"2724:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"2735:8:65","nodeType":"YulIdentifier","src":"2735:8:65"},{"name":"mask","nativeSrc":"2745:4:65","nodeType":"YulIdentifier","src":"2745:4:65"}],"functionName":{"name":"and","nativeSrc":"2731:3:65","nodeType":"YulIdentifier","src":"2731:3:65"},"nativeSrc":"2731:19:65","nodeType":"YulFunctionCall","src":"2731:19:65"}],"functionName":{"name":"or","nativeSrc":"2721:2:65","nodeType":"YulIdentifier","src":"2721:2:65"},"nativeSrc":"2721:30:65","nodeType":"YulFunctionCall","src":"2721:30:65"},"variableNames":[{"name":"result","nativeSrc":"2711:6:65","nodeType":"YulIdentifier","src":"2711:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"2364:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2401:5:65","nodeType":"YulTypedName","src":"2401:5:65","type":""},{"name":"shiftBytes","nativeSrc":"2408:10:65","nodeType":"YulTypedName","src":"2408:10:65","type":""},{"name":"toInsert","nativeSrc":"2420:8:65","nodeType":"YulTypedName","src":"2420:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2433:6:65","nodeType":"YulTypedName","src":"2433:6:65","type":""}],"src":"2364:393:65"},{"body":{"nativeSrc":"2808:32:65","nodeType":"YulBlock","src":"2808:32:65","statements":[{"nativeSrc":"2818:16:65","nodeType":"YulAssignment","src":"2818:16:65","value":{"name":"value","nativeSrc":"2829:5:65","nodeType":"YulIdentifier","src":"2829:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2818:7:65","nodeType":"YulIdentifier","src":"2818:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2763:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2790:5:65","nodeType":"YulTypedName","src":"2790:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2800:7:65","nodeType":"YulTypedName","src":"2800:7:65","type":""}],"src":"2763:77:65"},{"body":{"nativeSrc":"2878:28:65","nodeType":"YulBlock","src":"2878:28:65","statements":[{"nativeSrc":"2888:12:65","nodeType":"YulAssignment","src":"2888:12:65","value":{"name":"value","nativeSrc":"2895:5:65","nodeType":"YulIdentifier","src":"2895:5:65"},"variableNames":[{"name":"ret","nativeSrc":"2888:3:65","nodeType":"YulIdentifier","src":"2888:3:65"}]}]},"name":"identity","nativeSrc":"2846:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2864:5:65","nodeType":"YulTypedName","src":"2864:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2874:3:65","nodeType":"YulTypedName","src":"2874:3:65","type":""}],"src":"2846:60:65"},{"body":{"nativeSrc":"2972:82:65","nodeType":"YulBlock","src":"2972:82:65","statements":[{"nativeSrc":"2982:66:65","nodeType":"YulAssignment","src":"2982:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3040:5:65","nodeType":"YulIdentifier","src":"3040:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3022:17:65","nodeType":"YulIdentifier","src":"3022:17:65"},"nativeSrc":"3022:24:65","nodeType":"YulFunctionCall","src":"3022:24:65"}],"functionName":{"name":"identity","nativeSrc":"3013:8:65","nodeType":"YulIdentifier","src":"3013:8:65"},"nativeSrc":"3013:34:65","nodeType":"YulFunctionCall","src":"3013:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2995:17:65","nodeType":"YulIdentifier","src":"2995:17:65"},"nativeSrc":"2995:53:65","nodeType":"YulFunctionCall","src":"2995:53:65"},"variableNames":[{"name":"converted","nativeSrc":"2982:9:65","nodeType":"YulIdentifier","src":"2982:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"2912:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2952:5:65","nodeType":"YulTypedName","src":"2952:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2962:9:65","nodeType":"YulTypedName","src":"2962:9:65","type":""}],"src":"2912:142:65"},{"body":{"nativeSrc":"3107:28:65","nodeType":"YulBlock","src":"3107:28:65","statements":[{"nativeSrc":"3117:12:65","nodeType":"YulAssignment","src":"3117:12:65","value":{"name":"value","nativeSrc":"3124:5:65","nodeType":"YulIdentifier","src":"3124:5:65"},"variableNames":[{"name":"ret","nativeSrc":"3117:3:65","nodeType":"YulIdentifier","src":"3117:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"3060:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3093:5:65","nodeType":"YulTypedName","src":"3093:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3103:3:65","nodeType":"YulTypedName","src":"3103:3:65","type":""}],"src":"3060:75:65"},{"body":{"nativeSrc":"3217:193:65","nodeType":"YulBlock","src":"3217:193:65","statements":[{"nativeSrc":"3227:63:65","nodeType":"YulVariableDeclaration","src":"3227:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"3282:7:65","nodeType":"YulIdentifier","src":"3282:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"3251:30:65","nodeType":"YulIdentifier","src":"3251:30:65"},"nativeSrc":"3251:39:65","nodeType":"YulFunctionCall","src":"3251:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"3231:16:65","nodeType":"YulTypedName","src":"3231:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3306:4:65","nodeType":"YulIdentifier","src":"3306:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3346:4:65","nodeType":"YulIdentifier","src":"3346:4:65"}],"functionName":{"name":"sload","nativeSrc":"3340:5:65","nodeType":"YulIdentifier","src":"3340:5:65"},"nativeSrc":"3340:11:65","nodeType":"YulFunctionCall","src":"3340:11:65"},{"name":"offset","nativeSrc":"3353:6:65","nodeType":"YulIdentifier","src":"3353:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"3385:16:65","nodeType":"YulIdentifier","src":"3385:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"3361:23:65","nodeType":"YulIdentifier","src":"3361:23:65"},"nativeSrc":"3361:41:65","nodeType":"YulFunctionCall","src":"3361:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"3312:27:65","nodeType":"YulIdentifier","src":"3312:27:65"},"nativeSrc":"3312:91:65","nodeType":"YulFunctionCall","src":"3312:91:65"}],"functionName":{"name":"sstore","nativeSrc":"3299:6:65","nodeType":"YulIdentifier","src":"3299:6:65"},"nativeSrc":"3299:105:65","nodeType":"YulFunctionCall","src":"3299:105:65"},"nativeSrc":"3299:105:65","nodeType":"YulExpressionStatement","src":"3299:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"3141:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3194:4:65","nodeType":"YulTypedName","src":"3194:4:65","type":""},{"name":"offset","nativeSrc":"3200:6:65","nodeType":"YulTypedName","src":"3200:6:65","type":""},{"name":"value_0","nativeSrc":"3208:7:65","nodeType":"YulTypedName","src":"3208:7:65","type":""}],"src":"3141:269:65"},{"body":{"nativeSrc":"3465:24:65","nodeType":"YulBlock","src":"3465:24:65","statements":[{"nativeSrc":"3475:8:65","nodeType":"YulAssignment","src":"3475:8:65","value":{"kind":"number","nativeSrc":"3482:1:65","nodeType":"YulLiteral","src":"3482:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"3475:3:65","nodeType":"YulIdentifier","src":"3475:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"3416:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"3461:3:65","nodeType":"YulTypedName","src":"3461:3:65","type":""}],"src":"3416:73:65"},{"body":{"nativeSrc":"3548:136:65","nodeType":"YulBlock","src":"3548:136:65","statements":[{"nativeSrc":"3558:46:65","nodeType":"YulVariableDeclaration","src":"3558:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"3572:30:65","nodeType":"YulIdentifier","src":"3572:30:65"},"nativeSrc":"3572:32:65","nodeType":"YulFunctionCall","src":"3572:32:65"},"variables":[{"name":"zero_0","nativeSrc":"3562:6:65","nodeType":"YulTypedName","src":"3562:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3657:4:65","nodeType":"YulIdentifier","src":"3657:4:65"},{"name":"offset","nativeSrc":"3663:6:65","nodeType":"YulIdentifier","src":"3663:6:65"},{"name":"zero_0","nativeSrc":"3671:6:65","nodeType":"YulIdentifier","src":"3671:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"3613:43:65","nodeType":"YulIdentifier","src":"3613:43:65"},"nativeSrc":"3613:65:65","nodeType":"YulFunctionCall","src":"3613:65:65"},"nativeSrc":"3613:65:65","nodeType":"YulExpressionStatement","src":"3613:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"3495:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3534:4:65","nodeType":"YulTypedName","src":"3534:4:65","type":""},{"name":"offset","nativeSrc":"3540:6:65","nodeType":"YulTypedName","src":"3540:6:65","type":""}],"src":"3495:189:65"},{"body":{"nativeSrc":"3740:136:65","nodeType":"YulBlock","src":"3740:136:65","statements":[{"body":{"nativeSrc":"3807:63:65","nodeType":"YulBlock","src":"3807:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"3851:5:65","nodeType":"YulIdentifier","src":"3851:5:65"},{"kind":"number","nativeSrc":"3858:1:65","nodeType":"YulLiteral","src":"3858:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"3821:29:65","nodeType":"YulIdentifier","src":"3821:29:65"},"nativeSrc":"3821:39:65","nodeType":"YulFunctionCall","src":"3821:39:65"},"nativeSrc":"3821:39:65","nodeType":"YulExpressionStatement","src":"3821:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"3760:5:65","nodeType":"YulIdentifier","src":"3760:5:65"},{"name":"end","nativeSrc":"3767:3:65","nodeType":"YulIdentifier","src":"3767:3:65"}],"functionName":{"name":"lt","nativeSrc":"3757:2:65","nodeType":"YulIdentifier","src":"3757:2:65"},"nativeSrc":"3757:14:65","nodeType":"YulFunctionCall","src":"3757:14:65"},"nativeSrc":"3750:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"3772:26:65","nodeType":"YulBlock","src":"3772:26:65","statements":[{"nativeSrc":"3774:22:65","nodeType":"YulAssignment","src":"3774:22:65","value":{"arguments":[{"name":"start","nativeSrc":"3787:5:65","nodeType":"YulIdentifier","src":"3787:5:65"},{"kind":"number","nativeSrc":"3794:1:65","nodeType":"YulLiteral","src":"3794:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3783:3:65","nodeType":"YulIdentifier","src":"3783:3:65"},"nativeSrc":"3783:13:65","nodeType":"YulFunctionCall","src":"3783:13:65"},"variableNames":[{"name":"start","nativeSrc":"3774:5:65","nodeType":"YulIdentifier","src":"3774:5:65"}]}]},"pre":{"nativeSrc":"3754:2:65","nodeType":"YulBlock","src":"3754:2:65","statements":[]},"src":"3750:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"3690:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"3728:5:65","nodeType":"YulTypedName","src":"3728:5:65","type":""},{"name":"end","nativeSrc":"3735:3:65","nodeType":"YulTypedName","src":"3735:3:65","type":""}],"src":"3690:186:65"},{"body":{"nativeSrc":"3961:464:65","nodeType":"YulBlock","src":"3961:464:65","statements":[{"body":{"nativeSrc":"3987:431:65","nodeType":"YulBlock","src":"3987:431:65","statements":[{"nativeSrc":"4001:54:65","nodeType":"YulVariableDeclaration","src":"4001:54:65","value":{"arguments":[{"name":"array","nativeSrc":"4049:5:65","nodeType":"YulIdentifier","src":"4049:5:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"4017:31:65","nodeType":"YulIdentifier","src":"4017:31:65"},"nativeSrc":"4017:38:65","nodeType":"YulFunctionCall","src":"4017:38:65"},"variables":[{"name":"dataArea","nativeSrc":"4005:8:65","nodeType":"YulTypedName","src":"4005:8:65","type":""}]},{"nativeSrc":"4068:63:65","nodeType":"YulVariableDeclaration","src":"4068:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"4091:8:65","nodeType":"YulIdentifier","src":"4091:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"4119:10:65","nodeType":"YulIdentifier","src":"4119:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"4101:17:65","nodeType":"YulIdentifier","src":"4101:17:65"},"nativeSrc":"4101:29:65","nodeType":"YulFunctionCall","src":"4101:29:65"}],"functionName":{"name":"add","nativeSrc":"4087:3:65","nodeType":"YulIdentifier","src":"4087:3:65"},"nativeSrc":"4087:44:65","nodeType":"YulFunctionCall","src":"4087:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"4072:11:65","nodeType":"YulTypedName","src":"4072:11:65","type":""}]},{"body":{"nativeSrc":"4288:27:65","nodeType":"YulBlock","src":"4288:27:65","statements":[{"nativeSrc":"4290:23:65","nodeType":"YulAssignment","src":"4290:23:65","value":{"name":"dataArea","nativeSrc":"4305:8:65","nodeType":"YulIdentifier","src":"4305:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"4290:11:65","nodeType":"YulIdentifier","src":"4290:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"4272:10:65","nodeType":"YulIdentifier","src":"4272:10:65"},{"kind":"number","nativeSrc":"4284:2:65","nodeType":"YulLiteral","src":"4284:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4269:2:65","nodeType":"YulIdentifier","src":"4269:2:65"},"nativeSrc":"4269:18:65","nodeType":"YulFunctionCall","src":"4269:18:65"},"nativeSrc":"4266:49:65","nodeType":"YulIf","src":"4266:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"4357:11:65","nodeType":"YulIdentifier","src":"4357:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"4374:8:65","nodeType":"YulIdentifier","src":"4374:8:65"},{"arguments":[{"name":"len","nativeSrc":"4402:3:65","nodeType":"YulIdentifier","src":"4402:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"4384:17:65","nodeType":"YulIdentifier","src":"4384:17:65"},"nativeSrc":"4384:22:65","nodeType":"YulFunctionCall","src":"4384:22:65"}],"functionName":{"name":"add","nativeSrc":"4370:3:65","nodeType":"YulIdentifier","src":"4370:3:65"},"nativeSrc":"4370:37:65","nodeType":"YulFunctionCall","src":"4370:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"4328:28:65","nodeType":"YulIdentifier","src":"4328:28:65"},"nativeSrc":"4328:80:65","nodeType":"YulFunctionCall","src":"4328:80:65"},"nativeSrc":"4328:80:65","nodeType":"YulExpressionStatement","src":"4328:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"3978:3:65","nodeType":"YulIdentifier","src":"3978:3:65"},{"kind":"number","nativeSrc":"3983:2:65","nodeType":"YulLiteral","src":"3983:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3975:2:65","nodeType":"YulIdentifier","src":"3975:2:65"},"nativeSrc":"3975:11:65","nodeType":"YulFunctionCall","src":"3975:11:65"},"nativeSrc":"3972:446:65","nodeType":"YulIf","src":"3972:446:65"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"3882:543:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"3937:5:65","nodeType":"YulTypedName","src":"3937:5:65","type":""},{"name":"len","nativeSrc":"3944:3:65","nodeType":"YulTypedName","src":"3944:3:65","type":""},{"name":"startIndex","nativeSrc":"3949:10:65","nodeType":"YulTypedName","src":"3949:10:65","type":""}],"src":"3882:543:65"},{"body":{"nativeSrc":"4494:54:65","nodeType":"YulBlock","src":"4494:54:65","statements":[{"nativeSrc":"4504:37:65","nodeType":"YulAssignment","src":"4504:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"4529:4:65","nodeType":"YulIdentifier","src":"4529:4:65"},{"name":"value","nativeSrc":"4535:5:65","nodeType":"YulIdentifier","src":"4535:5:65"}],"functionName":{"name":"shr","nativeSrc":"4525:3:65","nodeType":"YulIdentifier","src":"4525:3:65"},"nativeSrc":"4525:16:65","nodeType":"YulFunctionCall","src":"4525:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"4504:8:65","nodeType":"YulIdentifier","src":"4504:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"4431:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4469:4:65","nodeType":"YulTypedName","src":"4469:4:65","type":""},{"name":"value","nativeSrc":"4475:5:65","nodeType":"YulTypedName","src":"4475:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4485:8:65","nodeType":"YulTypedName","src":"4485:8:65","type":""}],"src":"4431:117:65"},{"body":{"nativeSrc":"4605:118:65","nodeType":"YulBlock","src":"4605:118:65","statements":[{"nativeSrc":"4615:68:65","nodeType":"YulVariableDeclaration","src":"4615:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4664:1:65","nodeType":"YulLiteral","src":"4664:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"4667:5:65","nodeType":"YulIdentifier","src":"4667:5:65"}],"functionName":{"name":"mul","nativeSrc":"4660:3:65","nodeType":"YulIdentifier","src":"4660:3:65"},"nativeSrc":"4660:13:65","nodeType":"YulFunctionCall","src":"4660:13:65"},{"arguments":[{"kind":"number","nativeSrc":"4679:1:65","nodeType":"YulLiteral","src":"4679:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4675:3:65","nodeType":"YulIdentifier","src":"4675:3:65"},"nativeSrc":"4675:6:65","nodeType":"YulFunctionCall","src":"4675:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"4631:28:65","nodeType":"YulIdentifier","src":"4631:28:65"},"nativeSrc":"4631:51:65","nodeType":"YulFunctionCall","src":"4631:51:65"}],"functionName":{"name":"not","nativeSrc":"4627:3:65","nodeType":"YulIdentifier","src":"4627:3:65"},"nativeSrc":"4627:56:65","nodeType":"YulFunctionCall","src":"4627:56:65"},"variables":[{"name":"mask","nativeSrc":"4619:4:65","nodeType":"YulTypedName","src":"4619:4:65","type":""}]},{"nativeSrc":"4692:25:65","nodeType":"YulAssignment","src":"4692:25:65","value":{"arguments":[{"name":"data","nativeSrc":"4706:4:65","nodeType":"YulIdentifier","src":"4706:4:65"},{"name":"mask","nativeSrc":"4712:4:65","nodeType":"YulIdentifier","src":"4712:4:65"}],"functionName":{"name":"and","nativeSrc":"4702:3:65","nodeType":"YulIdentifier","src":"4702:3:65"},"nativeSrc":"4702:15:65","nodeType":"YulFunctionCall","src":"4702:15:65"},"variableNames":[{"name":"result","nativeSrc":"4692:6:65","nodeType":"YulIdentifier","src":"4692:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"4554:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4582:4:65","nodeType":"YulTypedName","src":"4582:4:65","type":""},{"name":"bytes","nativeSrc":"4588:5:65","nodeType":"YulTypedName","src":"4588:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4598:6:65","nodeType":"YulTypedName","src":"4598:6:65","type":""}],"src":"4554:169:65"},{"body":{"nativeSrc":"4809:214:65","nodeType":"YulBlock","src":"4809:214:65","statements":[{"nativeSrc":"4942:37:65","nodeType":"YulAssignment","src":"4942:37:65","value":{"arguments":[{"name":"data","nativeSrc":"4969:4:65","nodeType":"YulIdentifier","src":"4969:4:65"},{"name":"len","nativeSrc":"4975:3:65","nodeType":"YulIdentifier","src":"4975:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"4950:18:65","nodeType":"YulIdentifier","src":"4950:18:65"},"nativeSrc":"4950:29:65","nodeType":"YulFunctionCall","src":"4950:29:65"},"variableNames":[{"name":"data","nativeSrc":"4942:4:65","nodeType":"YulIdentifier","src":"4942:4:65"}]},{"nativeSrc":"4988:29:65","nodeType":"YulAssignment","src":"4988:29:65","value":{"arguments":[{"name":"data","nativeSrc":"4999:4:65","nodeType":"YulIdentifier","src":"4999:4:65"},{"arguments":[{"kind":"number","nativeSrc":"5009:1:65","nodeType":"YulLiteral","src":"5009:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"5012:3:65","nodeType":"YulIdentifier","src":"5012:3:65"}],"functionName":{"name":"mul","nativeSrc":"5005:3:65","nodeType":"YulIdentifier","src":"5005:3:65"},"nativeSrc":"5005:11:65","nodeType":"YulFunctionCall","src":"5005:11:65"}],"functionName":{"name":"or","nativeSrc":"4996:2:65","nodeType":"YulIdentifier","src":"4996:2:65"},"nativeSrc":"4996:21:65","nodeType":"YulFunctionCall","src":"4996:21:65"},"variableNames":[{"name":"used","nativeSrc":"4988:4:65","nodeType":"YulIdentifier","src":"4988:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4728:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4790:4:65","nodeType":"YulTypedName","src":"4790:4:65","type":""},{"name":"len","nativeSrc":"4796:3:65","nodeType":"YulTypedName","src":"4796:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"4804:4:65","nodeType":"YulTypedName","src":"4804:4:65","type":""}],"src":"4728:295:65"},{"body":{"nativeSrc":"5120:1303:65","nodeType":"YulBlock","src":"5120:1303:65","statements":[{"nativeSrc":"5131:51:65","nodeType":"YulVariableDeclaration","src":"5131:51:65","value":{"arguments":[{"name":"src","nativeSrc":"5178:3:65","nodeType":"YulIdentifier","src":"5178:3:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"5145:32:65","nodeType":"YulIdentifier","src":"5145:32:65"},"nativeSrc":"5145:37:65","nodeType":"YulFunctionCall","src":"5145:37:65"},"variables":[{"name":"newLen","nativeSrc":"5135:6:65","nodeType":"YulTypedName","src":"5135:6:65","type":""}]},{"body":{"nativeSrc":"5267:22:65","nodeType":"YulBlock","src":"5267:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5269:16:65","nodeType":"YulIdentifier","src":"5269:16:65"},"nativeSrc":"5269:18:65","nodeType":"YulFunctionCall","src":"5269:18:65"},"nativeSrc":"5269:18:65","nodeType":"YulExpressionStatement","src":"5269:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"5239:6:65","nodeType":"YulIdentifier","src":"5239:6:65"},{"kind":"number","nativeSrc":"5247:18:65","nodeType":"YulLiteral","src":"5247:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5236:2:65","nodeType":"YulIdentifier","src":"5236:2:65"},"nativeSrc":"5236:30:65","nodeType":"YulFunctionCall","src":"5236:30:65"},"nativeSrc":"5233:56:65","nodeType":"YulIf","src":"5233:56:65"},{"nativeSrc":"5299:52:65","nodeType":"YulVariableDeclaration","src":"5299:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"5345:4:65","nodeType":"YulIdentifier","src":"5345:4:65"}],"functionName":{"name":"sload","nativeSrc":"5339:5:65","nodeType":"YulIdentifier","src":"5339:5:65"},"nativeSrc":"5339:11:65","nodeType":"YulFunctionCall","src":"5339:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"5313:25:65","nodeType":"YulIdentifier","src":"5313:25:65"},"nativeSrc":"5313:38:65","nodeType":"YulFunctionCall","src":"5313:38:65"},"variables":[{"name":"oldLen","nativeSrc":"5303:6:65","nodeType":"YulTypedName","src":"5303:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5444:4:65","nodeType":"YulIdentifier","src":"5444:4:65"},{"name":"oldLen","nativeSrc":"5450:6:65","nodeType":"YulIdentifier","src":"5450:6:65"},{"name":"newLen","nativeSrc":"5458:6:65","nodeType":"YulIdentifier","src":"5458:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"5398:45:65","nodeType":"YulIdentifier","src":"5398:45:65"},"nativeSrc":"5398:67:65","nodeType":"YulFunctionCall","src":"5398:67:65"},"nativeSrc":"5398:67:65","nodeType":"YulExpressionStatement","src":"5398:67:65"},{"nativeSrc":"5475:18:65","nodeType":"YulVariableDeclaration","src":"5475:18:65","value":{"kind":"number","nativeSrc":"5492:1:65","nodeType":"YulLiteral","src":"5492:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"5479:9:65","nodeType":"YulTypedName","src":"5479:9:65","type":""}]},{"nativeSrc":"5503:17:65","nodeType":"YulAssignment","src":"5503:17:65","value":{"kind":"number","nativeSrc":"5516:4:65","nodeType":"YulLiteral","src":"5516:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"5503:9:65","nodeType":"YulIdentifier","src":"5503:9:65"}]},{"cases":[{"body":{"nativeSrc":"5567:611:65","nodeType":"YulBlock","src":"5567:611:65","statements":[{"nativeSrc":"5581:37:65","nodeType":"YulVariableDeclaration","src":"5581:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"5600:6:65","nodeType":"YulIdentifier","src":"5600:6:65"},{"arguments":[{"kind":"number","nativeSrc":"5612:4:65","nodeType":"YulLiteral","src":"5612:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"5608:3:65","nodeType":"YulIdentifier","src":"5608:3:65"},"nativeSrc":"5608:9:65","nodeType":"YulFunctionCall","src":"5608:9:65"}],"functionName":{"name":"and","nativeSrc":"5596:3:65","nodeType":"YulIdentifier","src":"5596:3:65"},"nativeSrc":"5596:22:65","nodeType":"YulFunctionCall","src":"5596:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"5585:7:65","nodeType":"YulTypedName","src":"5585:7:65","type":""}]},{"nativeSrc":"5632:51:65","nodeType":"YulVariableDeclaration","src":"5632:51:65","value":{"arguments":[{"name":"slot","nativeSrc":"5678:4:65","nodeType":"YulIdentifier","src":"5678:4:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"5646:31:65","nodeType":"YulIdentifier","src":"5646:31:65"},"nativeSrc":"5646:37:65","nodeType":"YulFunctionCall","src":"5646:37:65"},"variables":[{"name":"dstPtr","nativeSrc":"5636:6:65","nodeType":"YulTypedName","src":"5636:6:65","type":""}]},{"nativeSrc":"5696:10:65","nodeType":"YulVariableDeclaration","src":"5696:10:65","value":{"kind":"number","nativeSrc":"5705:1:65","nodeType":"YulLiteral","src":"5705:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5700:1:65","nodeType":"YulTypedName","src":"5700:1:65","type":""}]},{"body":{"nativeSrc":"5764:163:65","nodeType":"YulBlock","src":"5764:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"5789:6:65","nodeType":"YulIdentifier","src":"5789:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5807:3:65","nodeType":"YulIdentifier","src":"5807:3:65"},{"name":"srcOffset","nativeSrc":"5812:9:65","nodeType":"YulIdentifier","src":"5812:9:65"}],"functionName":{"name":"add","nativeSrc":"5803:3:65","nodeType":"YulIdentifier","src":"5803:3:65"},"nativeSrc":"5803:19:65","nodeType":"YulFunctionCall","src":"5803:19:65"}],"functionName":{"name":"mload","nativeSrc":"5797:5:65","nodeType":"YulIdentifier","src":"5797:5:65"},"nativeSrc":"5797:26:65","nodeType":"YulFunctionCall","src":"5797:26:65"}],"functionName":{"name":"sstore","nativeSrc":"5782:6:65","nodeType":"YulIdentifier","src":"5782:6:65"},"nativeSrc":"5782:42:65","nodeType":"YulFunctionCall","src":"5782:42:65"},"nativeSrc":"5782:42:65","nodeType":"YulExpressionStatement","src":"5782:42:65"},{"nativeSrc":"5841:24:65","nodeType":"YulAssignment","src":"5841:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"5855:6:65","nodeType":"YulIdentifier","src":"5855:6:65"},{"kind":"number","nativeSrc":"5863:1:65","nodeType":"YulLiteral","src":"5863:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5851:3:65","nodeType":"YulIdentifier","src":"5851:3:65"},"nativeSrc":"5851:14:65","nodeType":"YulFunctionCall","src":"5851:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"5841:6:65","nodeType":"YulIdentifier","src":"5841:6:65"}]},{"nativeSrc":"5882:31:65","nodeType":"YulAssignment","src":"5882:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"5899:9:65","nodeType":"YulIdentifier","src":"5899:9:65"},{"kind":"number","nativeSrc":"5910:2:65","nodeType":"YulLiteral","src":"5910:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5895:3:65","nodeType":"YulIdentifier","src":"5895:3:65"},"nativeSrc":"5895:18:65","nodeType":"YulFunctionCall","src":"5895:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"5882:9:65","nodeType":"YulIdentifier","src":"5882:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5730:1:65","nodeType":"YulIdentifier","src":"5730:1:65"},{"name":"loopEnd","nativeSrc":"5733:7:65","nodeType":"YulIdentifier","src":"5733:7:65"}],"functionName":{"name":"lt","nativeSrc":"5727:2:65","nodeType":"YulIdentifier","src":"5727:2:65"},"nativeSrc":"5727:14:65","nodeType":"YulFunctionCall","src":"5727:14:65"},"nativeSrc":"5719:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"5742:21:65","nodeType":"YulBlock","src":"5742:21:65","statements":[{"nativeSrc":"5744:17:65","nodeType":"YulAssignment","src":"5744:17:65","value":{"arguments":[{"name":"i","nativeSrc":"5753:1:65","nodeType":"YulIdentifier","src":"5753:1:65"},{"kind":"number","nativeSrc":"5756:4:65","nodeType":"YulLiteral","src":"5756:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5749:3:65","nodeType":"YulIdentifier","src":"5749:3:65"},"nativeSrc":"5749:12:65","nodeType":"YulFunctionCall","src":"5749:12:65"},"variableNames":[{"name":"i","nativeSrc":"5744:1:65","nodeType":"YulIdentifier","src":"5744:1:65"}]}]},"pre":{"nativeSrc":"5723:3:65","nodeType":"YulBlock","src":"5723:3:65","statements":[]},"src":"5719:208:65"},{"body":{"nativeSrc":"5963:156:65","nodeType":"YulBlock","src":"5963:156:65","statements":[{"nativeSrc":"5981:43:65","nodeType":"YulVariableDeclaration","src":"5981:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6008:3:65","nodeType":"YulIdentifier","src":"6008:3:65"},{"name":"srcOffset","nativeSrc":"6013:9:65","nodeType":"YulIdentifier","src":"6013:9:65"}],"functionName":{"name":"add","nativeSrc":"6004:3:65","nodeType":"YulIdentifier","src":"6004:3:65"},"nativeSrc":"6004:19:65","nodeType":"YulFunctionCall","src":"6004:19:65"}],"functionName":{"name":"mload","nativeSrc":"5998:5:65","nodeType":"YulIdentifier","src":"5998:5:65"},"nativeSrc":"5998:26:65","nodeType":"YulFunctionCall","src":"5998:26:65"},"variables":[{"name":"lastValue","nativeSrc":"5985:9:65","nodeType":"YulTypedName","src":"5985:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"6048:6:65","nodeType":"YulIdentifier","src":"6048:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"6075:9:65","nodeType":"YulIdentifier","src":"6075:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"6090:6:65","nodeType":"YulIdentifier","src":"6090:6:65"},{"kind":"number","nativeSrc":"6098:4:65","nodeType":"YulLiteral","src":"6098:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"6086:3:65","nodeType":"YulIdentifier","src":"6086:3:65"},"nativeSrc":"6086:17:65","nodeType":"YulFunctionCall","src":"6086:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"6056:18:65","nodeType":"YulIdentifier","src":"6056:18:65"},"nativeSrc":"6056:48:65","nodeType":"YulFunctionCall","src":"6056:48:65"}],"functionName":{"name":"sstore","nativeSrc":"6041:6:65","nodeType":"YulIdentifier","src":"6041:6:65"},"nativeSrc":"6041:64:65","nodeType":"YulFunctionCall","src":"6041:64:65"},"nativeSrc":"6041:64:65","nodeType":"YulExpressionStatement","src":"6041:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"5946:7:65","nodeType":"YulIdentifier","src":"5946:7:65"},{"name":"newLen","nativeSrc":"5955:6:65","nodeType":"YulIdentifier","src":"5955:6:65"}],"functionName":{"name":"lt","nativeSrc":"5943:2:65","nodeType":"YulIdentifier","src":"5943:2:65"},"nativeSrc":"5943:19:65","nodeType":"YulFunctionCall","src":"5943:19:65"},"nativeSrc":"5940:179:65","nodeType":"YulIf","src":"5940:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6139:4:65","nodeType":"YulIdentifier","src":"6139:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"6153:6:65","nodeType":"YulIdentifier","src":"6153:6:65"},{"kind":"number","nativeSrc":"6161:1:65","nodeType":"YulLiteral","src":"6161:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"6149:3:65","nodeType":"YulIdentifier","src":"6149:3:65"},"nativeSrc":"6149:14:65","nodeType":"YulFunctionCall","src":"6149:14:65"},{"kind":"number","nativeSrc":"6165:1:65","nodeType":"YulLiteral","src":"6165:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6145:3:65","nodeType":"YulIdentifier","src":"6145:3:65"},"nativeSrc":"6145:22:65","nodeType":"YulFunctionCall","src":"6145:22:65"}],"functionName":{"name":"sstore","nativeSrc":"6132:6:65","nodeType":"YulIdentifier","src":"6132:6:65"},"nativeSrc":"6132:36:65","nodeType":"YulFunctionCall","src":"6132:36:65"},"nativeSrc":"6132:36:65","nodeType":"YulExpressionStatement","src":"6132:36:65"}]},"nativeSrc":"5560:618:65","nodeType":"YulCase","src":"5560:618:65","value":{"kind":"number","nativeSrc":"5565:1:65","nodeType":"YulLiteral","src":"5565:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"6195:222:65","nodeType":"YulBlock","src":"6195:222:65","statements":[{"nativeSrc":"6209:14:65","nodeType":"YulVariableDeclaration","src":"6209:14:65","value":{"kind":"number","nativeSrc":"6222:1:65","nodeType":"YulLiteral","src":"6222:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"6213:5:65","nodeType":"YulTypedName","src":"6213:5:65","type":""}]},{"body":{"nativeSrc":"6246:67:65","nodeType":"YulBlock","src":"6246:67:65","statements":[{"nativeSrc":"6264:35:65","nodeType":"YulAssignment","src":"6264:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6283:3:65","nodeType":"YulIdentifier","src":"6283:3:65"},{"name":"srcOffset","nativeSrc":"6288:9:65","nodeType":"YulIdentifier","src":"6288:9:65"}],"functionName":{"name":"add","nativeSrc":"6279:3:65","nodeType":"YulIdentifier","src":"6279:3:65"},"nativeSrc":"6279:19:65","nodeType":"YulFunctionCall","src":"6279:19:65"}],"functionName":{"name":"mload","nativeSrc":"6273:5:65","nodeType":"YulIdentifier","src":"6273:5:65"},"nativeSrc":"6273:26:65","nodeType":"YulFunctionCall","src":"6273:26:65"},"variableNames":[{"name":"value","nativeSrc":"6264:5:65","nodeType":"YulIdentifier","src":"6264:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"6239:6:65","nodeType":"YulIdentifier","src":"6239:6:65"},"nativeSrc":"6236:77:65","nodeType":"YulIf","src":"6236:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6333:4:65","nodeType":"YulIdentifier","src":"6333:4:65"},{"arguments":[{"name":"value","nativeSrc":"6392:5:65","nodeType":"YulIdentifier","src":"6392:5:65"},{"name":"newLen","nativeSrc":"6399:6:65","nodeType":"YulIdentifier","src":"6399:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"6339:52:65","nodeType":"YulIdentifier","src":"6339:52:65"},"nativeSrc":"6339:67:65","nodeType":"YulFunctionCall","src":"6339:67:65"}],"functionName":{"name":"sstore","nativeSrc":"6326:6:65","nodeType":"YulIdentifier","src":"6326:6:65"},"nativeSrc":"6326:81:65","nodeType":"YulFunctionCall","src":"6326:81:65"},"nativeSrc":"6326:81:65","nodeType":"YulExpressionStatement","src":"6326:81:65"}]},"nativeSrc":"6187:230:65","nodeType":"YulCase","src":"6187:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"5540:6:65","nodeType":"YulIdentifier","src":"5540:6:65"},{"kind":"number","nativeSrc":"5548:2:65","nodeType":"YulLiteral","src":"5548:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"5537:2:65","nodeType":"YulIdentifier","src":"5537:2:65"},"nativeSrc":"5537:14:65","nodeType":"YulFunctionCall","src":"5537:14:65"},"nativeSrc":"5530:887:65","nodeType":"YulSwitch","src":"5530:887:65"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"5028:1395:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5109:4:65","nodeType":"YulTypedName","src":"5109:4:65","type":""},{"name":"src","nativeSrc":"5115:3:65","nodeType":"YulTypedName","src":"5115:3:65","type":""}],"src":"5028:1395:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051611c9f380380611c9f83398101604081905261002f91610191565b806040518060400160405280600981526020016856656e75732058565360b81b8152506040518060400160405280600381526020016258565360e81b815250816003908161007d91906102b6565b50600461008a82826102b6565b5050506100a361009e6100df60201b60201c565b6100e3565b6005805460ff60a01b191690556100b981610135565b600680546001600160a01b0319166001600160a01b039290921691909117905550610379565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811661015c576040516342bcdf7f60e11b815260040160405180910390fd5b50565b60006001600160a01b0382165b92915050565b61017b8161015f565b811461015c57600080fd5b805161016c81610172565b6000602082840312156101a6576101a6600080fd5b60006101b28484610186565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806101fa57607f821691505b60208210810361020c5761020c6101d0565b50919050565b600061016c61021e8381565b90565b61022a83610212565b815460001960089490940293841b1916921b91909117905550565b6000610252818484610221565b505050565b818110156102725761026a600082610245565b600101610257565b5050565b601f821115610252576000818152602090206020601f8501048101602085101561029d5750805b6102af6020601f860104830182610257565b5050505050565b81516001600160401b038111156102cf576102cf6101ba565b6102d982546101e6565b6102e4828285610276565b6020601f83116001811461031857600084156103005750858201515b600019600886021c1981166002860217865550610371565b600085815260208120601f198616915b828110156103485788850151825560209485019460019092019101610328565b868310156103645784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b611917806103886000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b517334116100f9578063a9059cbb11610097578063d89e2dac11610071578063d89e2dac14610381578063dd62ed3e14610394578063e47d6060146103a7578063f2fde38b146103d357600080fd5b8063a9059cbb14610348578063b4a0bdf31461035b578063c06abe771461036e57600080fd5b80639155e083116100d35780639155e0831461030757806395d89b411461031a5780639dc29fac14610322578063a457c2d71461033557600080fd5b80637b517334146102c55780638456cb59146102e55780638da5cb5b146102ed57600080fd5b8063391efe121161016657806340c10f191161014057806340c10f191461026f5780635c975abb1461028257806370a0823114610294578063715018a6146102bd57600080fd5b8063391efe121461023457806339509351146102545780633f4ba83a1461026757600080fd5b806306fdde03146101ae578063095ea7b3146101cc5780630e32cb86146101ec57806318160ddd1461020157806323b872dd14610212578063313ce56714610225575b600080fd5b6101b66103e6565b6040516101c391906111f8565b60405180910390f35b6101df6101da366004611251565b610478565b6040516101c39190611298565b6101ff6101fa3660046112a6565b610492565b005b6002545b6040516101c391906112d5565b6101df6102203660046112e3565b6104ff565b60126040516101c3919061133c565b6102056102423660046112a6565b60086020526000908152604090205481565b6101df610262366004611251565b610523565b6101ff610545565b6101ff61027d366004611251565b610579565b600554600160a01b900460ff166101df565b6102056102a23660046112a6565b6001600160a01b031660009081526020819052604090205490565b6101ff6105d0565b6102056102d33660046112a6565b60096020526000908152604090205481565b6101ff6105e2565b6005546001600160a01b03165b6040516101c39190611353565b6101ff610315366004611374565b610612565b6101b66106b0565b6101ff610330366004611251565b6106bf565b6101df610343366004611251565b610711565b6101df610356366004611251565b610757565b6006546102fa906001600160a01b031681565b6101ff61037c366004611251565b610765565b6101ff61038f3660046113a7565b610827565b6102056103a23660046113a7565b6109d3565b6101df6103b53660046112a6565b6001600160a01b031660009081526007602052604090205460ff1690565b6101ff6103e13660046112a6565b6109fe565b6060600380546103f5906113f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610421906113f0565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600033610486818585610a38565b60019150505b92915050565b61049a610aec565b6104a381610b16565b6006546040516001600160a01b038084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b60003361050d858285610b3d565b610518858585610b87565b506001949350505050565b60003361048681858561053683836109d3565b6105409190611432565b610a38565b61056f60405180604001604052806009815260200168756e7061757365282960b81b815250610c82565b610577610d11565b565b610581610d60565b6105b7604051806040016040528060158152602001746d696e7428616464726573732c75696e743235362960581b815250610c82565b6105c2338383610d8a565b6105cc8282610e3e565b5050565b6105d8610aec565b6105776000610ee0565b61060a604051806040016040528060078152602001667061757365282960c81b815250610c82565b610577610f32565b6106506040518060400160405280601d81526020017f757064617465426c61636b6c69737428616464726573732c626f6f6c29000000815250610c82565b6001600160a01b03821660008181526007602052604090819020805460ff1916841515179055517f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac906106a4908490611298565b60405180910390a25050565b6060600480546103f5906113f0565b6106c7610d60565b6106fd604051806040016040528060158152602001746275726e28616464726573732c75696e743235362960581b815250610c82565b6107078282610f75565b6105cc338261103d565b6000338161071f82866109d3565b90508381101561074a5760405162461bcd60e51b81526004016107419061148a565b60405180910390fd5b6105188286868403610a38565b600033610486818585610b87565b6107a36040518060400160405280601b81526020017f7365744d696e7443617028616464726573732c75696e74323536290000000000815250610c82565b6001600160a01b0382166000908152600960205260409020548110156107dc5760405163ce89973d60e01b815260040160405180910390fd5b6001600160a01b03821660008181526008602052604090819020839055517f01a85f4ecff52e70907e25b863010bca98a9458d9f2fe9b3efb4c47d197e6448906106a49084906112d5565b6108486040518060600160405280602481526020016118be60249139610c82565b806001600160a01b0316826001600160a01b03160361087a576040516380ae98f560e01b815260040160405180910390fd5b6001600160a01b038083166000818152600860209081526040808320549486168084528184205494845260099092528083205491835282205490916108bf8383611432565b9050838111156108e257604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b0380881660009081526009602052604080822082905591881680825290829020839055905182860391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e61906109409084906112d5565b60405180910390a2876001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb8760405161098191906112d5565b60405180910390a2866001600160a01b0316886001600160a01b03167f63ce671e4a37975f0a9e340f6f72320c617a5f728b83e3860b03aa847dc26ebb60405160405180910390a35050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a06610aec565b6001600160a01b038116610a2c5760405162461bcd60e51b8152600401610741906114dd565b610a3581610ee0565b50565b6001600160a01b038316610a5e5760405162461bcd60e51b81526004016107419061152e565b6001600160a01b038216610a845760405162461bcd60e51b81526004016107419061157d565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610adf9085906112d5565b60405180910390a3505050565b6005546001600160a01b031633146105775760405162461bcd60e51b8152600401610741906115c2565b6001600160a01b038116610a35576040516342bcdf7f60e11b815260040160405180910390fd5b6000610b4984846109d3565b90506000198114610b815781811015610b745760405162461bcd60e51b815260040161074190611606565b610b818484848403610a38565b50505050565b6001600160a01b038316610bad5760405162461bcd60e51b815260040161074190611658565b6001600160a01b038216610bd35760405162461bcd60e51b8152600401610741906116a8565b610bde8383836110f9565b6001600160a01b03831660009081526020819052604090205481811015610c175760405162461bcd60e51b8152600401610741906116fb565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c759086906112d5565b60405180910390a3610b81565b6006546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab90610cb4903390859060040161170b565b602060405180830381865afa158015610cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf59190611736565b610a35576040516282b42960e81b815260040160405180910390fd5b610d19611179565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610d569190611353565b60405180910390a1565b600554600160a01b900460ff16156105775760405162461bcd60e51b81526004016107419061177e565b6001600160a01b03831660009081526008602090815260408083205460099092528220549091610dba8483611432565b905082811115610ddd57604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b038616600081815260096020526040908190208390555182850391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e6190610e2d9084906112d5565b60405180910390a250505050505050565b6001600160a01b038216610e645760405162461bcd60e51b8152600401610741906117c2565b610e70600083836110f9565b8060026000828254610e829190611432565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed49085906112d5565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610f3a610d60565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d493390565b6001600160a01b038216610f9b5760405162461bcd60e51b815260040161074190611810565b610fa7826000836110f9565b6001600160a01b03821660009081526020819052604090205481811015610fe05760405162461bcd60e51b81526004016107419061185f565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610adf9086906112d5565b505050565b6001600160a01b03821660009081526009602052604090205481811015611077576040516348af2f2960e11b815260040160405180910390fd5b6001600160a01b03831660009081526009602090815260408083208585039081905560089092528220549091906110af90839061186f565b9050846001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb826040516110ea91906112d5565b60405180910390a25050505050565b611101610d60565b6001600160a01b03821660009081526007602052604090205460ff161561113d578160405163571f7b4960e01b81526004016107419190611353565b6001600160a01b03831660009081526007602052604090205460ff1615611038578260405163571f7b4960e01b81526004016107419190611353565b600554600160a01b900460ff166105775760405162461bcd60e51b8152600401610741906118ad565b60005b838110156111bd5781810151838201526020016111a5565b50506000910152565b60006111d0825190565b8084526020840193506111e78185602086016111a2565b601f01601f19169290920192915050565b6020808252810161120981846111c6565b9392505050565b60006001600160a01b03821661048c565b61122a81611210565b8114610a3557600080fd5b803561048c81611221565b8061122a565b803561048c81611240565b6000806040838503121561126757611267600080fd5b60006112738585611235565b925050602061128485828601611246565b9150509250929050565b8015155b82525050565b6020810161048c828461128e565b6000602082840312156112bb576112bb600080fd5b60006112c78484611235565b949350505050565b80611292565b6020810161048c82846112cf565b6000806000606084860312156112fb576112fb600080fd5b60006113078686611235565b935050602061131886828701611235565b925050604061132986828701611246565b9150509250925092565b60ff8116611292565b6020810161048c8284611333565b61129281611210565b6020810161048c828461134a565b80151561122a565b803561048c81611361565b6000806040838503121561138a5761138a600080fd5b60006113968585611235565b925050602061128485828601611369565b600080604083850312156113bd576113bd600080fd5b60006113c98585611235565b925050602061128485828601611235565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061140457607f821691505b602082108103611416576114166113da565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561048c5761048c61141c565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161048c81611445565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150611483565b6020808252810161048c8161149a565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150611483565b6020808252810161048c816114ed565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150611483565b6020808252810161048c8161153e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b6020808252810161048c8161158d565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291506115bb565b6020808252810161048c816115d2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150611483565b6020808252810161048c81611616565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150611483565b6020808252810161048c81611668565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150611483565b6020808252810161048c816116b8565b60408101611719828561134a565b81810360208301526112c781846111c6565b805161048c81611361565b60006020828403121561174b5761174b600080fd5b60006112c7848461172b565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b815291506115bb565b6020808252810161048c81611757565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f206164647265737300815291506115bb565b6020808252810161048c8161178e565b602181526000602082017f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b60208201529150611483565b6020808252810161048c816117d2565b602281526000602082017f45524332303a206275726e20616d6f756e7420657863656564732062616c616e815261636560f01b60208201529150611483565b6020808252810161048c81611820565b8181038181111561048c5761048c61141c565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b815291506115bb565b6020808252810161048c8161188256fe6d6967726174654d696e746572546f6b656e7328616464726573732c6164647265737329a2646970667358221220c02e4a270e25a4f85ac481af1e0edd982263c2f2ef6fdac992c2c9ef4ad4229664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C9F CODESIZE SUB DUP1 PUSH2 0x1C9F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x191 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x56656E757320585653 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x585653 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH2 0x7D SWAP2 SWAP1 PUSH2 0x2B6 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x8A DUP3 DUP3 PUSH2 0x2B6 JUMP JUMPDEST POP POP POP PUSH2 0xA3 PUSH2 0x9E PUSH2 0xDF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0xE3 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH2 0xB9 DUP2 PUSH2 0x135 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH2 0x379 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15C JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17B DUP2 PUSH2 0x15F JUMP JUMPDEST DUP2 EQ PUSH2 0x15C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x16C DUP2 PUSH2 0x172 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A6 JUMPI PUSH2 0x1A6 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B2 DUP5 DUP5 PUSH2 0x186 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1FA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x20C JUMPI PUSH2 0x20C PUSH2 0x1D0 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16C PUSH2 0x21E DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x22A DUP4 PUSH2 0x212 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x252 DUP2 DUP5 DUP5 PUSH2 0x221 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x272 JUMPI PUSH2 0x26A PUSH1 0x0 DUP3 PUSH2 0x245 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x257 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x252 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x29D JUMPI POP DUP1 JUMPDEST PUSH2 0x2AF PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x257 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CF JUMPI PUSH2 0x2CF PUSH2 0x1BA JUMP JUMPDEST PUSH2 0x2D9 DUP3 SLOAD PUSH2 0x1E6 JUMP JUMPDEST PUSH2 0x2E4 DUP3 DUP3 DUP6 PUSH2 0x276 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x318 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x300 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x371 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x348 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x328 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x364 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1917 DUP1 PUSH2 0x388 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B517334 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD89E2DAC GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD89E2DAC EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xE47D6060 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xC06ABE77 EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9155E083 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x9155E083 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B517334 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x391EFE12 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x40C10F19 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x391EFE12 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B6 PUSH2 0x3E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x11F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1298 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E3 JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x133C JUMP JUMPDEST PUSH2 0x205 PUSH2 0x242 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x262 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x523 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x545 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x27D CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x5D0 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x612 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x6BF JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x711 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x2FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x765 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x13A7 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13A7 JUMP JUMPDEST PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x9FE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x3F5 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x421 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x443 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x451 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x49A PUSH2 0xAEC JUMP JUMPDEST PUSH2 0x4A3 DUP2 PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x50D DUP6 DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH2 0x518 DUP6 DUP6 DUP6 PUSH2 0xB87 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0x536 DUP4 DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x540 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x56F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x577 PUSH2 0xD11 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x581 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x6D696E7428616464726573732C75696E7432353629 PUSH1 0x58 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x5C2 CALLER DUP4 DUP4 PUSH2 0xD8A JUMP JUMPDEST PUSH2 0x5CC DUP3 DUP3 PUSH2 0xE3E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5D8 PUSH2 0xAEC JUMP JUMPDEST PUSH2 0x577 PUSH1 0x0 PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x60A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x577 PUSH2 0xF32 JUMP JUMPDEST PUSH2 0x650 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757064617465426C61636B6C69737428616464726573732C626F6F6C29000000 DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP5 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH32 0x6A12B3DF6CBA4203BD7FD06B816789F87DE8C594299AED5717AE070FAC781BAC SWAP1 PUSH2 0x6A4 SWAP1 DUP5 SWAP1 PUSH2 0x1298 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3F5 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x6FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x6275726E28616464726573732C75696E7432353629 PUSH1 0x58 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x707 DUP3 DUP3 PUSH2 0xF75 JUMP JUMPDEST PUSH2 0x5CC CALLER DUP3 PUSH2 0x103D JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x71F DUP3 DUP7 PUSH2 0x9D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x148A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x518 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0xB87 JUMP JUMPDEST PUSH2 0x7A3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D696E7443617028616464726573732C75696E74323536290000000000 DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x7DC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE89973D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD PUSH32 0x1A85F4ECFF52E70907E25B863010BCA98A9458D9F2FE9B3EFB4C47D197E6448 SWAP1 PUSH2 0x6A4 SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH2 0x848 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x18BE PUSH1 0x24 SWAP2 CODECOPY PUSH2 0xC82 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x87A JUMPI PUSH1 0x40 MLOAD PUSH4 0x80AE98F5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP5 DUP7 AND DUP1 DUP5 MSTORE DUP2 DUP5 KECCAK256 SLOAD SWAP5 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP2 DUP4 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x8BF DUP4 DUP4 PUSH2 0x1432 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE SWAP2 DUP9 AND DUP1 DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE SWAP1 MLOAD DUP3 DUP7 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0x940 SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP8 PUSH1 0x40 MLOAD PUSH2 0x981 SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63CE671E4A37975F0A9E340F6F72320C617A5F728B83E3860B03AA847DC26EBB PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xA06 PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x14DD JUMP JUMPDEST PUSH2 0xA35 DUP2 PUSH2 0xEE0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA5E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x152E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0xADF SWAP1 DUP6 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB49 DUP5 DUP5 PUSH2 0x9D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xB81 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1606 JUMP JUMPDEST PUSH2 0xB81 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0xA38 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x16A8 JUMP JUMPDEST PUSH2 0xBDE DUP4 DUP4 DUP4 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x16FB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xC75 SWAP1 DUP7 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xCB4 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x170B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCF5 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x82B429 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 PUSH2 0x1179 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x177E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xDBA DUP5 DUP4 PUSH2 0x1432 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 GT ISZERO PUSH2 0xDDD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD DUP3 DUP6 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0xE2D SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xE64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0xE70 PUSH1 0x0 DUP4 DUP4 PUSH2 0x10F9 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE82 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xED4 SWAP1 DUP6 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xF3A PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xD49 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1810 JUMP JUMPDEST PUSH2 0xFA7 DUP3 PUSH1 0x0 DUP4 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x185F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP7 SWAP1 SUB SWAP1 SSTORE MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xADF SWAP1 DUP7 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x1077 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48AF2F29 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 SUB SWAP1 DUP2 SWAP1 SSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x10AF SWAP1 DUP4 SWAP1 PUSH2 0x186F JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP3 PUSH1 0x40 MLOAD PUSH2 0x10EA SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1101 PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x113D JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x571F7B49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1038 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH4 0x571F7B49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x18AD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11A5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x11E7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1209 DUP2 DUP5 PUSH2 0x11C6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x48C JUMP JUMPDEST PUSH2 0x122A DUP2 PUSH2 0x1210 JUMP JUMPDEST DUP2 EQ PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1221 JUMP JUMPDEST DUP1 PUSH2 0x122A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1240 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1267 JUMPI PUSH2 0x1267 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1273 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1246 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12C7 DUP5 DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x1292 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x12CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1307 DUP7 DUP7 PUSH2 0x1235 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1318 DUP7 DUP3 DUP8 ADD PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1329 DUP7 DUP3 DUP8 ADD PUSH2 0x1246 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x1292 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x1292 DUP2 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x134A JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x122A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x138A JUMPI PUSH2 0x138A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1396 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1369 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13BD JUMPI PUSH2 0x13BD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13C9 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1235 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1404 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1416 JUMPI PUSH2 0x1416 PUSH2 0x13DA JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48C PUSH2 0x141C JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1445 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x149A JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x14ED JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x153E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x158D JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x15D2 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1616 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1719 DUP3 DUP6 PUSH2 0x134A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x11C6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x48C DUP2 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x174B JUMPI PUSH2 0x174B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12C7 DUP5 DUP5 PUSH2 0x172B JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x178E JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 DUP2 MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E DUP2 MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1820 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48C PUSH2 0x141C JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1882 JUMP INVALID PUSH14 0x6967726174654D696E746572546F PUSH12 0x656E7328616464726573732C PUSH2 0x6464 PUSH19 0x65737329A2646970667358221220C02E4A270E 0x25 LOG4 0xF8 GAS 0xC4 DUP2 0xAF 0x1E 0xE 0xDD SWAP9 0x22 PUSH4 0xC2F2EF6F 0xDA 0xC9 SWAP3 0xC2 0xC9 0xEF BLOBBASEFEE 0xD4 0x22 SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"519:2222:49:-:0;;;564:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;649:21;1980:113:23;;;;;;;;;;;;;-1:-1:-1;;;1980:113:23;;;;;;;;;;;;;;;;-1:-1:-1;;;1980:113:23;;;2054:5;2046;:13;;;;;;:::i;:::-;-1:-1:-1;2069:7:23;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:21;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;996:7:22;:15;;-1:-1:-1;;;;996:15:22;;;3743:43:48;3764:21;3743:20;:43::i;:::-;3796:20;:44;;-1:-1:-1;;;;;;3796:44:48;-1:-1:-1;;;;;3796:44:48;;;;;;;;;;-1:-1:-1;519:2222:49;;640:96:29;719:10;;640:96::o;2426:187:21:-;2518:6;;;-1:-1:-1;;;;;2534:17:21;;;-1:-1:-1;;;;;;2534:17:21;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;544:75;485:136;:::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:65:o;1307:180::-;-1:-1:-1;;;1352:1:65;1345:88;1452:4;1449:1;1442:15;1476:4;1473:1;1466:15;1493:180;-1:-1:-1;;;1538:1:65;1531:88;1638:4;1635:1;1628:15;1662:4;1659:1;1652:15;1679:320;1760:1;1750:12;;1807:1;1797:12;;;1818:81;;1884:4;1876:6;1872:17;1862:27;;1818:81;1946:2;1938:6;1935:14;1915:18;1912:38;1909:84;;1965:18;;:::i;:::-;1730:269;1679:320;;;:::o;2912:142::-;2962:9;2995:53;3013:34;3040:5;3013:34;2763:77;3022:24;2829:5;2763:77;3141:269;3251:39;3282:7;3251:39;:::i;:::-;3340:11;;-1:-1:-1;;2483:1:65;2467:18;;;;2335:16;;;2692:9;2681:21;2335:16;;2721:30;;;;3299:105;;-1:-1:-1;3141:269:65:o;3495:189::-;3461:3;3613:65;3671:6;3663;3657:4;3613:65;:::i;:::-;3548:136;3495:189;;:::o;3690:186::-;3767:3;3760:5;3757:14;3750:120;;;3821:39;3858:1;3851:5;3821:39;:::i;:::-;3794:1;3783:13;3750:120;;;3690:186;;:::o;3882:543::-;3983:2;3978:3;3975:11;3972:446;;;2054:4;2090:14;;;2134:4;2121:18;;2236:2;2231;2220:14;;2216:23;4091:8;4087:44;4284:2;4272:10;4269:18;4266:49;;;-1:-1:-1;4305:8:65;4266:49;4328:80;2236:2;2231;2220:14;;2216:23;4374:8;4370:37;4357:11;4328:80;:::i;:::-;3987:431;;3882:543;;;:::o;5028:1395::-;1282:12;;-1:-1:-1;;;;;5239:6:65;5236:30;5233:56;;;5269:18;;:::i;:::-;5313:38;5345:4;5339:11;5313:38;:::i;:::-;5398:67;5458:6;5450;5444:4;5398:67;:::i;:::-;5516:4;5548:2;5537:14;;5565:1;5560:618;;;;6222:1;6239:6;6236:77;;;-1:-1:-1;6279:19:65;;;6273:26;6236:77;-1:-1:-1;;4664:1:65;4660:13;;4525:16;4627:56;4702:15;;5009:1;5005:11;;4996:21;6333:4;6326:81;6195:222;5530:887;;5560:618;2054:4;2090:14;;;2134:4;2121:18;;-1:-1:-1;;5596:22:65;;;5719:208;5733:7;5730:1;5727:14;5719:208;;;5803:19;;;5797:26;5782:42;;5910:2;5895:18;;;;5863:1;5851:14;;;;5749:12;5719:208;;;5955:6;5946:7;5943:19;5940:179;;;6004:19;;;5998:26;-1:-1:-1;;6098:4:65;6086:17;;4664:1;4660:13;4525:16;4627:56;4702:15;6041:64;;5940:179;6165:1;6161;6153:6;6149:14;6145:22;6139:4;6132:36;5567:611;;;5530:887;;5120:1303;;;5028:1395;;:::o;:::-;519:2222:49;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_6182":{"entryPoint":null,"id":6182,"parameterSlots":3,"returnSlots":0},"@_approve_6117":{"entryPoint":2616,"id":6117,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_11824":{"entryPoint":4345,"id":11824,"parameterSlots":3,"returnSlots":0},"@_burn_6072":{"entryPoint":3957,"id":6072,"parameterSlots":2,"returnSlots":0},"@_checkOwner_5430":{"entryPoint":2796,"id":5430,"parameterSlots":0,"returnSlots":0},"@_ensureAllowed_11714":{"entryPoint":3202,"id":11714,"parameterSlots":1,"returnSlots":0},"@_increaseMintLimit_11693":{"entryPoint":4157,"id":11693,"parameterSlots":2,"returnSlots":0},"@_isEligibleToMint_11641":{"entryPoint":3466,"id":11641,"parameterSlots":3,"returnSlots":0},"@_mint_6000":{"entryPoint":3646,"id":6000,"parameterSlots":2,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_pause_5579":{"entryPoint":3890,"id":5579,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_5552":{"entryPoint":3424,"id":5552,"parameterSlots":0,"returnSlots":0},"@_requirePaused_5563":{"entryPoint":4473,"id":5563,"parameterSlots":0,"returnSlots":0},"@_spendAllowance_6160":{"entryPoint":2877,"id":6160,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_5487":{"entryPoint":3808,"id":5487,"parameterSlots":1,"returnSlots":0},"@_transfer_5943":{"entryPoint":2951,"id":5943,"parameterSlots":3,"returnSlots":0},"@_unpause_5595":{"entryPoint":3345,"id":5595,"parameterSlots":0,"returnSlots":0},"@accessControlManager_11278":{"entryPoint":null,"id":11278,"parameterSlots":0,"returnSlots":0},"@allowance_5738":{"entryPoint":2515,"id":5738,"parameterSlots":2,"returnSlots":1},"@approve_5763":{"entryPoint":1144,"id":5763,"parameterSlots":2,"returnSlots":1},"@balanceOf_5695":{"entryPoint":null,"id":5695,"parameterSlots":1,"returnSlots":1},"@burn_11792":{"entryPoint":1727,"id":11792,"parameterSlots":2,"returnSlots":0},"@decimals_5671":{"entryPoint":null,"id":5671,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5866":{"entryPoint":1809,"id":5866,"parameterSlots":2,"returnSlots":1},"@ensureNonzeroAddress_9333":{"entryPoint":2838,"id":9333,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_5825":{"entryPoint":1315,"id":5825,"parameterSlots":2,"returnSlots":1},"@isBlackListed_11583":{"entryPoint":null,"id":11583,"parameterSlots":1,"returnSlots":1},"@migrateMinterTokens_11570":{"entryPoint":2087,"id":11570,"parameterSlots":2,"returnSlots":0},"@mint_11766":{"entryPoint":1401,"id":11766,"parameterSlots":2,"returnSlots":0},"@minterToCap_11288":{"entryPoint":null,"id":11288,"parameterSlots":0,"returnSlots":0},"@minterToMintedAmount_11293":{"entryPoint":null,"id":11293,"parameterSlots":0,"returnSlots":0},"@name_5651":{"entryPoint":998,"id":5651,"parameterSlots":0,"returnSlots":1},"@owner_5416":{"entryPoint":null,"id":5416,"parameterSlots":0,"returnSlots":1},"@pause_11382":{"entryPoint":1506,"id":11382,"parameterSlots":0,"returnSlots":0},"@paused_5540":{"entryPoint":null,"id":5540,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_5444":{"entryPoint":1488,"id":5444,"parameterSlots":0,"returnSlots":0},"@setAccessControlManager_11474":{"entryPoint":1170,"id":11474,"parameterSlots":1,"returnSlots":0},"@setMintCap_11452":{"entryPoint":1893,"id":11452,"parameterSlots":2,"returnSlots":0},"@symbol_5661":{"entryPoint":1712,"id":5661,"parameterSlots":0,"returnSlots":1},"@totalSupply_5681":{"entryPoint":null,"id":5681,"parameterSlots":0,"returnSlots":1},"@transferFrom_5796":{"entryPoint":1279,"id":5796,"parameterSlots":3,"returnSlots":1},"@transferOwnership_5467":{"entryPoint":2558,"id":5467,"parameterSlots":1,"returnSlots":0},"@transfer_5720":{"entryPoint":1879,"id":5720,"parameterSlots":2,"returnSlots":1},"@unpause_11394":{"entryPoint":1349,"id":11394,"parameterSlots":0,"returnSlots":0},"@updateBlacklist_11418":{"entryPoint":1554,"id":11418,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address":{"entryPoint":4661,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":4969,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4678,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4774,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":5031,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":4835,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":4980,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":4689,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5942,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4938,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4750,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4550,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":5736,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack":{"entryPoint":6274,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd_to_t_string_memory_ptr_fromStack":{"entryPoint":6176,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":5274,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":5438,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":5586,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":5816,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack":{"entryPoint":5975,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":5517,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f_to_t_string_memory_ptr_fromStack":{"entryPoint":6098,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":5654,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":5357,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":5189,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":6030,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4815,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":4915,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5899,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4600,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5800,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6317,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6239,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5341,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5501,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5638,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5883,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6014,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5570,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6160,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5720,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5422,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5258,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6082,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4821,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":4924,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5170,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6255,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4624,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4514,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5104,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5148,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":5082,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4641,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4961,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4672,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22897:65","nodeType":"YulBlock","src":"0:22897:65","statements":[{"body":{"nativeSrc":"66:40:65","nodeType":"YulBlock","src":"66:40:65","statements":[{"nativeSrc":"77:22:65","nodeType":"YulAssignment","src":"77:22:65","value":{"arguments":[{"name":"value","nativeSrc":"93:5:65","nodeType":"YulIdentifier","src":"93:5:65"}],"functionName":{"name":"mload","nativeSrc":"87:5:65","nodeType":"YulIdentifier","src":"87:5:65"},"nativeSrc":"87:12:65","nodeType":"YulFunctionCall","src":"87:12:65"},"variableNames":[{"name":"length","nativeSrc":"77:6:65","nodeType":"YulIdentifier","src":"77:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:65","nodeType":"YulTypedName","src":"49:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:65","nodeType":"YulTypedName","src":"59:6:65","type":""}],"src":"7:99:65"},{"body":{"nativeSrc":"208:73:65","nodeType":"YulBlock","src":"208:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:65","nodeType":"YulIdentifier","src":"225:3:65"},{"name":"length","nativeSrc":"230:6:65","nodeType":"YulIdentifier","src":"230:6:65"}],"functionName":{"name":"mstore","nativeSrc":"218:6:65","nodeType":"YulIdentifier","src":"218:6:65"},"nativeSrc":"218:19:65","nodeType":"YulFunctionCall","src":"218:19:65"},"nativeSrc":"218:19:65","nodeType":"YulExpressionStatement","src":"218:19:65"},{"nativeSrc":"246:29:65","nodeType":"YulAssignment","src":"246:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:65","nodeType":"YulIdentifier","src":"265:3:65"},{"kind":"number","nativeSrc":"270:4:65","nodeType":"YulLiteral","src":"270:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:65","nodeType":"YulIdentifier","src":"261:3:65"},"nativeSrc":"261:14:65","nodeType":"YulFunctionCall","src":"261:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:65","nodeType":"YulIdentifier","src":"246:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:65","nodeType":"YulTypedName","src":"180:3:65","type":""},{"name":"length","nativeSrc":"185:6:65","nodeType":"YulTypedName","src":"185:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:65","nodeType":"YulTypedName","src":"196:11:65","type":""}],"src":"112:169:65"},{"body":{"nativeSrc":"349:186:65","nodeType":"YulBlock","src":"349:186:65","statements":[{"nativeSrc":"360:10:65","nodeType":"YulVariableDeclaration","src":"360:10:65","value":{"kind":"number","nativeSrc":"369:1:65","nodeType":"YulLiteral","src":"369:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"364:1:65","nodeType":"YulTypedName","src":"364:1:65","type":""}]},{"body":{"nativeSrc":"429:63:65","nodeType":"YulBlock","src":"429:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"454:3:65","nodeType":"YulIdentifier","src":"454:3:65"},{"name":"i","nativeSrc":"459:1:65","nodeType":"YulIdentifier","src":"459:1:65"}],"functionName":{"name":"add","nativeSrc":"450:3:65","nodeType":"YulIdentifier","src":"450:3:65"},"nativeSrc":"450:11:65","nodeType":"YulFunctionCall","src":"450:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"473:3:65","nodeType":"YulIdentifier","src":"473:3:65"},{"name":"i","nativeSrc":"478:1:65","nodeType":"YulIdentifier","src":"478:1:65"}],"functionName":{"name":"add","nativeSrc":"469:3:65","nodeType":"YulIdentifier","src":"469:3:65"},"nativeSrc":"469:11:65","nodeType":"YulFunctionCall","src":"469:11:65"}],"functionName":{"name":"mload","nativeSrc":"463:5:65","nodeType":"YulIdentifier","src":"463:5:65"},"nativeSrc":"463:18:65","nodeType":"YulFunctionCall","src":"463:18:65"}],"functionName":{"name":"mstore","nativeSrc":"443:6:65","nodeType":"YulIdentifier","src":"443:6:65"},"nativeSrc":"443:39:65","nodeType":"YulFunctionCall","src":"443:39:65"},"nativeSrc":"443:39:65","nodeType":"YulExpressionStatement","src":"443:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"390:1:65","nodeType":"YulIdentifier","src":"390:1:65"},{"name":"length","nativeSrc":"393:6:65","nodeType":"YulIdentifier","src":"393:6:65"}],"functionName":{"name":"lt","nativeSrc":"387:2:65","nodeType":"YulIdentifier","src":"387:2:65"},"nativeSrc":"387:13:65","nodeType":"YulFunctionCall","src":"387:13:65"},"nativeSrc":"379:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"401:19:65","nodeType":"YulBlock","src":"401:19:65","statements":[{"nativeSrc":"403:15:65","nodeType":"YulAssignment","src":"403:15:65","value":{"arguments":[{"name":"i","nativeSrc":"412:1:65","nodeType":"YulIdentifier","src":"412:1:65"},{"kind":"number","nativeSrc":"415:2:65","nodeType":"YulLiteral","src":"415:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"408:3:65","nodeType":"YulIdentifier","src":"408:3:65"},"nativeSrc":"408:10:65","nodeType":"YulFunctionCall","src":"408:10:65"},"variableNames":[{"name":"i","nativeSrc":"403:1:65","nodeType":"YulIdentifier","src":"403:1:65"}]}]},"pre":{"nativeSrc":"383:3:65","nodeType":"YulBlock","src":"383:3:65","statements":[]},"src":"379:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"512:3:65","nodeType":"YulIdentifier","src":"512:3:65"},{"name":"length","nativeSrc":"517:6:65","nodeType":"YulIdentifier","src":"517:6:65"}],"functionName":{"name":"add","nativeSrc":"508:3:65","nodeType":"YulIdentifier","src":"508:3:65"},"nativeSrc":"508:16:65","nodeType":"YulFunctionCall","src":"508:16:65"},{"kind":"number","nativeSrc":"526:1:65","nodeType":"YulLiteral","src":"526:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"501:6:65","nodeType":"YulIdentifier","src":"501:6:65"},"nativeSrc":"501:27:65","nodeType":"YulFunctionCall","src":"501:27:65"},"nativeSrc":"501:27:65","nodeType":"YulExpressionStatement","src":"501:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:65","nodeType":"YulTypedName","src":"331:3:65","type":""},{"name":"dst","nativeSrc":"336:3:65","nodeType":"YulTypedName","src":"336:3:65","type":""},{"name":"length","nativeSrc":"341:6:65","nodeType":"YulTypedName","src":"341:6:65","type":""}],"src":"287:248:65"},{"body":{"nativeSrc":"589:54:65","nodeType":"YulBlock","src":"589:54:65","statements":[{"nativeSrc":"599:38:65","nodeType":"YulAssignment","src":"599:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"617:5:65","nodeType":"YulIdentifier","src":"617:5:65"},{"kind":"number","nativeSrc":"624:2:65","nodeType":"YulLiteral","src":"624:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"613:3:65","nodeType":"YulIdentifier","src":"613:3:65"},"nativeSrc":"613:14:65","nodeType":"YulFunctionCall","src":"613:14:65"},{"arguments":[{"kind":"number","nativeSrc":"633:2:65","nodeType":"YulLiteral","src":"633:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"629:3:65","nodeType":"YulIdentifier","src":"629:3:65"},"nativeSrc":"629:7:65","nodeType":"YulFunctionCall","src":"629:7:65"}],"functionName":{"name":"and","nativeSrc":"609:3:65","nodeType":"YulIdentifier","src":"609:3:65"},"nativeSrc":"609:28:65","nodeType":"YulFunctionCall","src":"609:28:65"},"variableNames":[{"name":"result","nativeSrc":"599:6:65","nodeType":"YulIdentifier","src":"599:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"541:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"572:5:65","nodeType":"YulTypedName","src":"572:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"582:6:65","nodeType":"YulTypedName","src":"582:6:65","type":""}],"src":"541:102:65"},{"body":{"nativeSrc":"741:285:65","nodeType":"YulBlock","src":"741:285:65","statements":[{"nativeSrc":"751:53:65","nodeType":"YulVariableDeclaration","src":"751:53:65","value":{"arguments":[{"name":"value","nativeSrc":"798:5:65","nodeType":"YulIdentifier","src":"798:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"765:32:65","nodeType":"YulIdentifier","src":"765:32:65"},"nativeSrc":"765:39:65","nodeType":"YulFunctionCall","src":"765:39:65"},"variables":[{"name":"length","nativeSrc":"755:6:65","nodeType":"YulTypedName","src":"755:6:65","type":""}]},{"nativeSrc":"813:78:65","nodeType":"YulAssignment","src":"813:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"879:3:65","nodeType":"YulIdentifier","src":"879:3:65"},{"name":"length","nativeSrc":"884:6:65","nodeType":"YulIdentifier","src":"884:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"820:58:65","nodeType":"YulIdentifier","src":"820:58:65"},"nativeSrc":"820:71:65","nodeType":"YulFunctionCall","src":"820:71:65"},"variableNames":[{"name":"pos","nativeSrc":"813:3:65","nodeType":"YulIdentifier","src":"813:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"939:5:65","nodeType":"YulIdentifier","src":"939:5:65"},{"kind":"number","nativeSrc":"946:4:65","nodeType":"YulLiteral","src":"946:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:16:65","nodeType":"YulFunctionCall","src":"935:16:65"},{"name":"pos","nativeSrc":"953:3:65","nodeType":"YulIdentifier","src":"953:3:65"},{"name":"length","nativeSrc":"958:6:65","nodeType":"YulIdentifier","src":"958:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"900:34:65","nodeType":"YulIdentifier","src":"900:34:65"},"nativeSrc":"900:65:65","nodeType":"YulFunctionCall","src":"900:65:65"},"nativeSrc":"900:65:65","nodeType":"YulExpressionStatement","src":"900:65:65"},{"nativeSrc":"974:46:65","nodeType":"YulAssignment","src":"974:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"985:3:65","nodeType":"YulIdentifier","src":"985:3:65"},{"arguments":[{"name":"length","nativeSrc":"1012:6:65","nodeType":"YulIdentifier","src":"1012:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"990:21:65","nodeType":"YulIdentifier","src":"990:21:65"},"nativeSrc":"990:29:65","nodeType":"YulFunctionCall","src":"990:29:65"}],"functionName":{"name":"add","nativeSrc":"981:3:65","nodeType":"YulIdentifier","src":"981:3:65"},"nativeSrc":"981:39:65","nodeType":"YulFunctionCall","src":"981:39:65"},"variableNames":[{"name":"end","nativeSrc":"974:3:65","nodeType":"YulIdentifier","src":"974:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"649:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"722:5:65","nodeType":"YulTypedName","src":"722:5:65","type":""},{"name":"pos","nativeSrc":"729:3:65","nodeType":"YulTypedName","src":"729:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"737:3:65","nodeType":"YulTypedName","src":"737:3:65","type":""}],"src":"649:377:65"},{"body":{"nativeSrc":"1150:195:65","nodeType":"YulBlock","src":"1150:195:65","statements":[{"nativeSrc":"1160:26:65","nodeType":"YulAssignment","src":"1160:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1172:9:65","nodeType":"YulIdentifier","src":"1172:9:65"},{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1168:3:65","nodeType":"YulIdentifier","src":"1168:3:65"},"nativeSrc":"1168:18:65","nodeType":"YulFunctionCall","src":"1168:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1160:4:65","nodeType":"YulIdentifier","src":"1160:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1207:9:65","nodeType":"YulIdentifier","src":"1207:9:65"},{"kind":"number","nativeSrc":"1218:1:65","nodeType":"YulLiteral","src":"1218:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1203:3:65","nodeType":"YulIdentifier","src":"1203:3:65"},"nativeSrc":"1203:17:65","nodeType":"YulFunctionCall","src":"1203:17:65"},{"arguments":[{"name":"tail","nativeSrc":"1226:4:65","nodeType":"YulIdentifier","src":"1226:4:65"},{"name":"headStart","nativeSrc":"1232:9:65","nodeType":"YulIdentifier","src":"1232:9:65"}],"functionName":{"name":"sub","nativeSrc":"1222:3:65","nodeType":"YulIdentifier","src":"1222:3:65"},"nativeSrc":"1222:20:65","nodeType":"YulFunctionCall","src":"1222:20:65"}],"functionName":{"name":"mstore","nativeSrc":"1196:6:65","nodeType":"YulIdentifier","src":"1196:6:65"},"nativeSrc":"1196:47:65","nodeType":"YulFunctionCall","src":"1196:47:65"},"nativeSrc":"1196:47:65","nodeType":"YulExpressionStatement","src":"1196:47:65"},{"nativeSrc":"1252:86:65","nodeType":"YulAssignment","src":"1252:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"1324:6:65","nodeType":"YulIdentifier","src":"1324:6:65"},{"name":"tail","nativeSrc":"1333:4:65","nodeType":"YulIdentifier","src":"1333:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1260:63:65","nodeType":"YulIdentifier","src":"1260:63:65"},"nativeSrc":"1260:78:65","nodeType":"YulFunctionCall","src":"1260:78:65"},"variableNames":[{"name":"tail","nativeSrc":"1252:4:65","nodeType":"YulIdentifier","src":"1252:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1032:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1122:9:65","nodeType":"YulTypedName","src":"1122:9:65","type":""},{"name":"value0","nativeSrc":"1134:6:65","nodeType":"YulTypedName","src":"1134:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1145:4:65","nodeType":"YulTypedName","src":"1145:4:65","type":""}],"src":"1032:313:65"},{"body":{"nativeSrc":"1391:35:65","nodeType":"YulBlock","src":"1391:35:65","statements":[{"nativeSrc":"1401:19:65","nodeType":"YulAssignment","src":"1401:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"1417:2:65","nodeType":"YulLiteral","src":"1417:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1411:5:65","nodeType":"YulIdentifier","src":"1411:5:65"},"nativeSrc":"1411:9:65","nodeType":"YulFunctionCall","src":"1411:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1401:6:65","nodeType":"YulIdentifier","src":"1401:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"1351:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1384:6:65","nodeType":"YulTypedName","src":"1384:6:65","type":""}],"src":"1351:75:65"},{"body":{"nativeSrc":"1521:28:65","nodeType":"YulBlock","src":"1521:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1538:1:65","nodeType":"YulLiteral","src":"1538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1541:1:65","nodeType":"YulLiteral","src":"1541:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1531:6:65","nodeType":"YulIdentifier","src":"1531:6:65"},"nativeSrc":"1531:12:65","nodeType":"YulFunctionCall","src":"1531:12:65"},"nativeSrc":"1531:12:65","nodeType":"YulExpressionStatement","src":"1531:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1432:117:65","nodeType":"YulFunctionDefinition","src":"1432:117:65"},{"body":{"nativeSrc":"1644:28:65","nodeType":"YulBlock","src":"1644:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1661:1:65","nodeType":"YulLiteral","src":"1661:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1664:1:65","nodeType":"YulLiteral","src":"1664:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1654:6:65","nodeType":"YulIdentifier","src":"1654:6:65"},"nativeSrc":"1654:12:65","nodeType":"YulFunctionCall","src":"1654:12:65"},"nativeSrc":"1654:12:65","nodeType":"YulExpressionStatement","src":"1654:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1555:117:65","nodeType":"YulFunctionDefinition","src":"1555:117:65"},{"body":{"nativeSrc":"1723:81:65","nodeType":"YulBlock","src":"1723:81:65","statements":[{"nativeSrc":"1733:65:65","nodeType":"YulAssignment","src":"1733:65:65","value":{"arguments":[{"name":"value","nativeSrc":"1748:5:65","nodeType":"YulIdentifier","src":"1748:5:65"},{"kind":"number","nativeSrc":"1755:42:65","nodeType":"YulLiteral","src":"1755:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1744:3:65","nodeType":"YulIdentifier","src":"1744:3:65"},"nativeSrc":"1744:54:65","nodeType":"YulFunctionCall","src":"1744:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1733:7:65","nodeType":"YulIdentifier","src":"1733:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1678:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1705:5:65","nodeType":"YulTypedName","src":"1705:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1715:7:65","nodeType":"YulTypedName","src":"1715:7:65","type":""}],"src":"1678:126:65"},{"body":{"nativeSrc":"1855:51:65","nodeType":"YulBlock","src":"1855:51:65","statements":[{"nativeSrc":"1865:35:65","nodeType":"YulAssignment","src":"1865:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1894:5:65","nodeType":"YulIdentifier","src":"1894:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1876:17:65","nodeType":"YulIdentifier","src":"1876:17:65"},"nativeSrc":"1876:24:65","nodeType":"YulFunctionCall","src":"1876:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1865:7:65","nodeType":"YulIdentifier","src":"1865:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1810:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1837:5:65","nodeType":"YulTypedName","src":"1837:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1847:7:65","nodeType":"YulTypedName","src":"1847:7:65","type":""}],"src":"1810:96:65"},{"body":{"nativeSrc":"1955:79:65","nodeType":"YulBlock","src":"1955:79:65","statements":[{"body":{"nativeSrc":"2012:16:65","nodeType":"YulBlock","src":"2012:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2021:1:65","nodeType":"YulLiteral","src":"2021:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2024:1:65","nodeType":"YulLiteral","src":"2024:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2014:6:65","nodeType":"YulIdentifier","src":"2014:6:65"},"nativeSrc":"2014:12:65","nodeType":"YulFunctionCall","src":"2014:12:65"},"nativeSrc":"2014:12:65","nodeType":"YulExpressionStatement","src":"2014:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1978:5:65","nodeType":"YulIdentifier","src":"1978:5:65"},{"arguments":[{"name":"value","nativeSrc":"2003:5:65","nodeType":"YulIdentifier","src":"2003:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1985:17:65","nodeType":"YulIdentifier","src":"1985:17:65"},"nativeSrc":"1985:24:65","nodeType":"YulFunctionCall","src":"1985:24:65"}],"functionName":{"name":"eq","nativeSrc":"1975:2:65","nodeType":"YulIdentifier","src":"1975:2:65"},"nativeSrc":"1975:35:65","nodeType":"YulFunctionCall","src":"1975:35:65"}],"functionName":{"name":"iszero","nativeSrc":"1968:6:65","nodeType":"YulIdentifier","src":"1968:6:65"},"nativeSrc":"1968:43:65","nodeType":"YulFunctionCall","src":"1968:43:65"},"nativeSrc":"1965:63:65","nodeType":"YulIf","src":"1965:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"1912:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1948:5:65","nodeType":"YulTypedName","src":"1948:5:65","type":""}],"src":"1912:122:65"},{"body":{"nativeSrc":"2092:87:65","nodeType":"YulBlock","src":"2092:87:65","statements":[{"nativeSrc":"2102:29:65","nodeType":"YulAssignment","src":"2102:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2124:6:65","nodeType":"YulIdentifier","src":"2124:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2111:12:65","nodeType":"YulIdentifier","src":"2111:12:65"},"nativeSrc":"2111:20:65","nodeType":"YulFunctionCall","src":"2111:20:65"},"variableNames":[{"name":"value","nativeSrc":"2102:5:65","nodeType":"YulIdentifier","src":"2102:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2167:5:65","nodeType":"YulIdentifier","src":"2167:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2140:26:65","nodeType":"YulIdentifier","src":"2140:26:65"},"nativeSrc":"2140:33:65","nodeType":"YulFunctionCall","src":"2140:33:65"},"nativeSrc":"2140:33:65","nodeType":"YulExpressionStatement","src":"2140:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"2040:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2070:6:65","nodeType":"YulTypedName","src":"2070:6:65","type":""},{"name":"end","nativeSrc":"2078:3:65","nodeType":"YulTypedName","src":"2078:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2086:5:65","nodeType":"YulTypedName","src":"2086:5:65","type":""}],"src":"2040:139:65"},{"body":{"nativeSrc":"2230:32:65","nodeType":"YulBlock","src":"2230:32:65","statements":[{"nativeSrc":"2240:16:65","nodeType":"YulAssignment","src":"2240:16:65","value":{"name":"value","nativeSrc":"2251:5:65","nodeType":"YulIdentifier","src":"2251:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2240:7:65","nodeType":"YulIdentifier","src":"2240:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2185:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2212:5:65","nodeType":"YulTypedName","src":"2212:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2222:7:65","nodeType":"YulTypedName","src":"2222:7:65","type":""}],"src":"2185:77:65"},{"body":{"nativeSrc":"2311:79:65","nodeType":"YulBlock","src":"2311:79:65","statements":[{"body":{"nativeSrc":"2368:16:65","nodeType":"YulBlock","src":"2368:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2377:1:65","nodeType":"YulLiteral","src":"2377:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2380:1:65","nodeType":"YulLiteral","src":"2380:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2370:6:65","nodeType":"YulIdentifier","src":"2370:6:65"},"nativeSrc":"2370:12:65","nodeType":"YulFunctionCall","src":"2370:12:65"},"nativeSrc":"2370:12:65","nodeType":"YulExpressionStatement","src":"2370:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2334:5:65","nodeType":"YulIdentifier","src":"2334:5:65"},{"arguments":[{"name":"value","nativeSrc":"2359:5:65","nodeType":"YulIdentifier","src":"2359:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2341:17:65","nodeType":"YulIdentifier","src":"2341:17:65"},"nativeSrc":"2341:24:65","nodeType":"YulFunctionCall","src":"2341:24:65"}],"functionName":{"name":"eq","nativeSrc":"2331:2:65","nodeType":"YulIdentifier","src":"2331:2:65"},"nativeSrc":"2331:35:65","nodeType":"YulFunctionCall","src":"2331:35:65"}],"functionName":{"name":"iszero","nativeSrc":"2324:6:65","nodeType":"YulIdentifier","src":"2324:6:65"},"nativeSrc":"2324:43:65","nodeType":"YulFunctionCall","src":"2324:43:65"},"nativeSrc":"2321:63:65","nodeType":"YulIf","src":"2321:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"2268:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2304:5:65","nodeType":"YulTypedName","src":"2304:5:65","type":""}],"src":"2268:122:65"},{"body":{"nativeSrc":"2448:87:65","nodeType":"YulBlock","src":"2448:87:65","statements":[{"nativeSrc":"2458:29:65","nodeType":"YulAssignment","src":"2458:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2480:6:65","nodeType":"YulIdentifier","src":"2480:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2467:12:65","nodeType":"YulIdentifier","src":"2467:12:65"},"nativeSrc":"2467:20:65","nodeType":"YulFunctionCall","src":"2467:20:65"},"variableNames":[{"name":"value","nativeSrc":"2458:5:65","nodeType":"YulIdentifier","src":"2458:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2523:5:65","nodeType":"YulIdentifier","src":"2523:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2496:26:65","nodeType":"YulIdentifier","src":"2496:26:65"},"nativeSrc":"2496:33:65","nodeType":"YulFunctionCall","src":"2496:33:65"},"nativeSrc":"2496:33:65","nodeType":"YulExpressionStatement","src":"2496:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"2396:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2426:6:65","nodeType":"YulTypedName","src":"2426:6:65","type":""},{"name":"end","nativeSrc":"2434:3:65","nodeType":"YulTypedName","src":"2434:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2442:5:65","nodeType":"YulTypedName","src":"2442:5:65","type":""}],"src":"2396:139:65"},{"body":{"nativeSrc":"2624:391:65","nodeType":"YulBlock","src":"2624:391:65","statements":[{"body":{"nativeSrc":"2670:83:65","nodeType":"YulBlock","src":"2670:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2672:77:65","nodeType":"YulIdentifier","src":"2672:77:65"},"nativeSrc":"2672:79:65","nodeType":"YulFunctionCall","src":"2672:79:65"},"nativeSrc":"2672:79:65","nodeType":"YulExpressionStatement","src":"2672:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2645:7:65","nodeType":"YulIdentifier","src":"2645:7:65"},{"name":"headStart","nativeSrc":"2654:9:65","nodeType":"YulIdentifier","src":"2654:9:65"}],"functionName":{"name":"sub","nativeSrc":"2641:3:65","nodeType":"YulIdentifier","src":"2641:3:65"},"nativeSrc":"2641:23:65","nodeType":"YulFunctionCall","src":"2641:23:65"},{"kind":"number","nativeSrc":"2666:2:65","nodeType":"YulLiteral","src":"2666:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},"nativeSrc":"2637:32:65","nodeType":"YulFunctionCall","src":"2637:32:65"},"nativeSrc":"2634:119:65","nodeType":"YulIf","src":"2634:119:65"},{"nativeSrc":"2763:117:65","nodeType":"YulBlock","src":"2763:117:65","statements":[{"nativeSrc":"2778:15:65","nodeType":"YulVariableDeclaration","src":"2778:15:65","value":{"kind":"number","nativeSrc":"2792:1:65","nodeType":"YulLiteral","src":"2792:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2782:6:65","nodeType":"YulTypedName","src":"2782:6:65","type":""}]},{"nativeSrc":"2807:63:65","nodeType":"YulAssignment","src":"2807:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2842:9:65","nodeType":"YulIdentifier","src":"2842:9:65"},{"name":"offset","nativeSrc":"2853:6:65","nodeType":"YulIdentifier","src":"2853:6:65"}],"functionName":{"name":"add","nativeSrc":"2838:3:65","nodeType":"YulIdentifier","src":"2838:3:65"},"nativeSrc":"2838:22:65","nodeType":"YulFunctionCall","src":"2838:22:65"},{"name":"dataEnd","nativeSrc":"2862:7:65","nodeType":"YulIdentifier","src":"2862:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2817:20:65","nodeType":"YulIdentifier","src":"2817:20:65"},"nativeSrc":"2817:53:65","nodeType":"YulFunctionCall","src":"2817:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2807:6:65","nodeType":"YulIdentifier","src":"2807:6:65"}]}]},{"nativeSrc":"2890:118:65","nodeType":"YulBlock","src":"2890:118:65","statements":[{"nativeSrc":"2905:16:65","nodeType":"YulVariableDeclaration","src":"2905:16:65","value":{"kind":"number","nativeSrc":"2919:2:65","nodeType":"YulLiteral","src":"2919:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2909:6:65","nodeType":"YulTypedName","src":"2909:6:65","type":""}]},{"nativeSrc":"2935:63:65","nodeType":"YulAssignment","src":"2935:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2970:9:65","nodeType":"YulIdentifier","src":"2970:9:65"},{"name":"offset","nativeSrc":"2981:6:65","nodeType":"YulIdentifier","src":"2981:6:65"}],"functionName":{"name":"add","nativeSrc":"2966:3:65","nodeType":"YulIdentifier","src":"2966:3:65"},"nativeSrc":"2966:22:65","nodeType":"YulFunctionCall","src":"2966:22:65"},{"name":"dataEnd","nativeSrc":"2990:7:65","nodeType":"YulIdentifier","src":"2990:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2945:20:65","nodeType":"YulIdentifier","src":"2945:20:65"},"nativeSrc":"2945:53:65","nodeType":"YulFunctionCall","src":"2945:53:65"},"variableNames":[{"name":"value1","nativeSrc":"2935:6:65","nodeType":"YulIdentifier","src":"2935:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2541:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2586:9:65","nodeType":"YulTypedName","src":"2586:9:65","type":""},{"name":"dataEnd","nativeSrc":"2597:7:65","nodeType":"YulTypedName","src":"2597:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2609:6:65","nodeType":"YulTypedName","src":"2609:6:65","type":""},{"name":"value1","nativeSrc":"2617:6:65","nodeType":"YulTypedName","src":"2617:6:65","type":""}],"src":"2541:474:65"},{"body":{"nativeSrc":"3063:48:65","nodeType":"YulBlock","src":"3063:48:65","statements":[{"nativeSrc":"3073:32:65","nodeType":"YulAssignment","src":"3073:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3098:5:65","nodeType":"YulIdentifier","src":"3098:5:65"}],"functionName":{"name":"iszero","nativeSrc":"3091:6:65","nodeType":"YulIdentifier","src":"3091:6:65"},"nativeSrc":"3091:13:65","nodeType":"YulFunctionCall","src":"3091:13:65"}],"functionName":{"name":"iszero","nativeSrc":"3084:6:65","nodeType":"YulIdentifier","src":"3084:6:65"},"nativeSrc":"3084:21:65","nodeType":"YulFunctionCall","src":"3084:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3073:7:65","nodeType":"YulIdentifier","src":"3073:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"3021:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3045:5:65","nodeType":"YulTypedName","src":"3045:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3055:7:65","nodeType":"YulTypedName","src":"3055:7:65","type":""}],"src":"3021:90:65"},{"body":{"nativeSrc":"3176:50:65","nodeType":"YulBlock","src":"3176:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3193:3:65","nodeType":"YulIdentifier","src":"3193:3:65"},{"arguments":[{"name":"value","nativeSrc":"3213:5:65","nodeType":"YulIdentifier","src":"3213:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3198:14:65","nodeType":"YulIdentifier","src":"3198:14:65"},"nativeSrc":"3198:21:65","nodeType":"YulFunctionCall","src":"3198:21:65"}],"functionName":{"name":"mstore","nativeSrc":"3186:6:65","nodeType":"YulIdentifier","src":"3186:6:65"},"nativeSrc":"3186:34:65","nodeType":"YulFunctionCall","src":"3186:34:65"},"nativeSrc":"3186:34:65","nodeType":"YulExpressionStatement","src":"3186:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3117:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3164:5:65","nodeType":"YulTypedName","src":"3164:5:65","type":""},{"name":"pos","nativeSrc":"3171:3:65","nodeType":"YulTypedName","src":"3171:3:65","type":""}],"src":"3117:109:65"},{"body":{"nativeSrc":"3324:118:65","nodeType":"YulBlock","src":"3324:118:65","statements":[{"nativeSrc":"3334:26:65","nodeType":"YulAssignment","src":"3334:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3346:9:65","nodeType":"YulIdentifier","src":"3346:9:65"},{"kind":"number","nativeSrc":"3357:2:65","nodeType":"YulLiteral","src":"3357:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3342:3:65","nodeType":"YulIdentifier","src":"3342:3:65"},"nativeSrc":"3342:18:65","nodeType":"YulFunctionCall","src":"3342:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3334:4:65","nodeType":"YulIdentifier","src":"3334:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3408:6:65","nodeType":"YulIdentifier","src":"3408:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3421:9:65","nodeType":"YulIdentifier","src":"3421:9:65"},{"kind":"number","nativeSrc":"3432:1:65","nodeType":"YulLiteral","src":"3432:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3417:3:65","nodeType":"YulIdentifier","src":"3417:3:65"},"nativeSrc":"3417:17:65","nodeType":"YulFunctionCall","src":"3417:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3370:37:65","nodeType":"YulIdentifier","src":"3370:37:65"},"nativeSrc":"3370:65:65","nodeType":"YulFunctionCall","src":"3370:65:65"},"nativeSrc":"3370:65:65","nodeType":"YulExpressionStatement","src":"3370:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3232:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3296:9:65","nodeType":"YulTypedName","src":"3296:9:65","type":""},{"name":"value0","nativeSrc":"3308:6:65","nodeType":"YulTypedName","src":"3308:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3319:4:65","nodeType":"YulTypedName","src":"3319:4:65","type":""}],"src":"3232:210:65"},{"body":{"nativeSrc":"3514:263:65","nodeType":"YulBlock","src":"3514:263:65","statements":[{"body":{"nativeSrc":"3560:83:65","nodeType":"YulBlock","src":"3560:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3562:77:65","nodeType":"YulIdentifier","src":"3562:77:65"},"nativeSrc":"3562:79:65","nodeType":"YulFunctionCall","src":"3562:79:65"},"nativeSrc":"3562:79:65","nodeType":"YulExpressionStatement","src":"3562:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3535:7:65","nodeType":"YulIdentifier","src":"3535:7:65"},{"name":"headStart","nativeSrc":"3544:9:65","nodeType":"YulIdentifier","src":"3544:9:65"}],"functionName":{"name":"sub","nativeSrc":"3531:3:65","nodeType":"YulIdentifier","src":"3531:3:65"},"nativeSrc":"3531:23:65","nodeType":"YulFunctionCall","src":"3531:23:65"},{"kind":"number","nativeSrc":"3556:2:65","nodeType":"YulLiteral","src":"3556:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3527:3:65","nodeType":"YulIdentifier","src":"3527:3:65"},"nativeSrc":"3527:32:65","nodeType":"YulFunctionCall","src":"3527:32:65"},"nativeSrc":"3524:119:65","nodeType":"YulIf","src":"3524:119:65"},{"nativeSrc":"3653:117:65","nodeType":"YulBlock","src":"3653:117:65","statements":[{"nativeSrc":"3668:15:65","nodeType":"YulVariableDeclaration","src":"3668:15:65","value":{"kind":"number","nativeSrc":"3682:1:65","nodeType":"YulLiteral","src":"3682:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3672:6:65","nodeType":"YulTypedName","src":"3672:6:65","type":""}]},{"nativeSrc":"3697:63:65","nodeType":"YulAssignment","src":"3697:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3732:9:65","nodeType":"YulIdentifier","src":"3732:9:65"},{"name":"offset","nativeSrc":"3743:6:65","nodeType":"YulIdentifier","src":"3743:6:65"}],"functionName":{"name":"add","nativeSrc":"3728:3:65","nodeType":"YulIdentifier","src":"3728:3:65"},"nativeSrc":"3728:22:65","nodeType":"YulFunctionCall","src":"3728:22:65"},{"name":"dataEnd","nativeSrc":"3752:7:65","nodeType":"YulIdentifier","src":"3752:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3707:20:65","nodeType":"YulIdentifier","src":"3707:20:65"},"nativeSrc":"3707:53:65","nodeType":"YulFunctionCall","src":"3707:53:65"},"variableNames":[{"name":"value0","nativeSrc":"3697:6:65","nodeType":"YulIdentifier","src":"3697:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3448:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3484:9:65","nodeType":"YulTypedName","src":"3484:9:65","type":""},{"name":"dataEnd","nativeSrc":"3495:7:65","nodeType":"YulTypedName","src":"3495:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3507:6:65","nodeType":"YulTypedName","src":"3507:6:65","type":""}],"src":"3448:329:65"},{"body":{"nativeSrc":"3848:53:65","nodeType":"YulBlock","src":"3848:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3865:3:65","nodeType":"YulIdentifier","src":"3865:3:65"},{"arguments":[{"name":"value","nativeSrc":"3888:5:65","nodeType":"YulIdentifier","src":"3888:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3870:17:65","nodeType":"YulIdentifier","src":"3870:17:65"},"nativeSrc":"3870:24:65","nodeType":"YulFunctionCall","src":"3870:24:65"}],"functionName":{"name":"mstore","nativeSrc":"3858:6:65","nodeType":"YulIdentifier","src":"3858:6:65"},"nativeSrc":"3858:37:65","nodeType":"YulFunctionCall","src":"3858:37:65"},"nativeSrc":"3858:37:65","nodeType":"YulExpressionStatement","src":"3858:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3783:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3836:5:65","nodeType":"YulTypedName","src":"3836:5:65","type":""},{"name":"pos","nativeSrc":"3843:3:65","nodeType":"YulTypedName","src":"3843:3:65","type":""}],"src":"3783:118:65"},{"body":{"nativeSrc":"4005:124:65","nodeType":"YulBlock","src":"4005:124:65","statements":[{"nativeSrc":"4015:26:65","nodeType":"YulAssignment","src":"4015:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4027:9:65","nodeType":"YulIdentifier","src":"4027:9:65"},{"kind":"number","nativeSrc":"4038:2:65","nodeType":"YulLiteral","src":"4038:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4023:3:65","nodeType":"YulIdentifier","src":"4023:3:65"},"nativeSrc":"4023:18:65","nodeType":"YulFunctionCall","src":"4023:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4015:4:65","nodeType":"YulIdentifier","src":"4015:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4095:6:65","nodeType":"YulIdentifier","src":"4095:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4108:9:65","nodeType":"YulIdentifier","src":"4108:9:65"},{"kind":"number","nativeSrc":"4119:1:65","nodeType":"YulLiteral","src":"4119:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4104:3:65","nodeType":"YulIdentifier","src":"4104:3:65"},"nativeSrc":"4104:17:65","nodeType":"YulFunctionCall","src":"4104:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4051:43:65","nodeType":"YulIdentifier","src":"4051:43:65"},"nativeSrc":"4051:71:65","nodeType":"YulFunctionCall","src":"4051:71:65"},"nativeSrc":"4051:71:65","nodeType":"YulExpressionStatement","src":"4051:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3907:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3977:9:65","nodeType":"YulTypedName","src":"3977:9:65","type":""},{"name":"value0","nativeSrc":"3989:6:65","nodeType":"YulTypedName","src":"3989:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4000:4:65","nodeType":"YulTypedName","src":"4000:4:65","type":""}],"src":"3907:222:65"},{"body":{"nativeSrc":"4235:519:65","nodeType":"YulBlock","src":"4235:519:65","statements":[{"body":{"nativeSrc":"4281:83:65","nodeType":"YulBlock","src":"4281:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4283:77:65","nodeType":"YulIdentifier","src":"4283:77:65"},"nativeSrc":"4283:79:65","nodeType":"YulFunctionCall","src":"4283:79:65"},"nativeSrc":"4283:79:65","nodeType":"YulExpressionStatement","src":"4283:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4256:7:65","nodeType":"YulIdentifier","src":"4256:7:65"},{"name":"headStart","nativeSrc":"4265:9:65","nodeType":"YulIdentifier","src":"4265:9:65"}],"functionName":{"name":"sub","nativeSrc":"4252:3:65","nodeType":"YulIdentifier","src":"4252:3:65"},"nativeSrc":"4252:23:65","nodeType":"YulFunctionCall","src":"4252:23:65"},{"kind":"number","nativeSrc":"4277:2:65","nodeType":"YulLiteral","src":"4277:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4248:3:65","nodeType":"YulIdentifier","src":"4248:3:65"},"nativeSrc":"4248:32:65","nodeType":"YulFunctionCall","src":"4248:32:65"},"nativeSrc":"4245:119:65","nodeType":"YulIf","src":"4245:119:65"},{"nativeSrc":"4374:117:65","nodeType":"YulBlock","src":"4374:117:65","statements":[{"nativeSrc":"4389:15:65","nodeType":"YulVariableDeclaration","src":"4389:15:65","value":{"kind":"number","nativeSrc":"4403:1:65","nodeType":"YulLiteral","src":"4403:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4393:6:65","nodeType":"YulTypedName","src":"4393:6:65","type":""}]},{"nativeSrc":"4418:63:65","nodeType":"YulAssignment","src":"4418:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4453:9:65","nodeType":"YulIdentifier","src":"4453:9:65"},{"name":"offset","nativeSrc":"4464:6:65","nodeType":"YulIdentifier","src":"4464:6:65"}],"functionName":{"name":"add","nativeSrc":"4449:3:65","nodeType":"YulIdentifier","src":"4449:3:65"},"nativeSrc":"4449:22:65","nodeType":"YulFunctionCall","src":"4449:22:65"},{"name":"dataEnd","nativeSrc":"4473:7:65","nodeType":"YulIdentifier","src":"4473:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4428:20:65","nodeType":"YulIdentifier","src":"4428:20:65"},"nativeSrc":"4428:53:65","nodeType":"YulFunctionCall","src":"4428:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4418:6:65","nodeType":"YulIdentifier","src":"4418:6:65"}]}]},{"nativeSrc":"4501:118:65","nodeType":"YulBlock","src":"4501:118:65","statements":[{"nativeSrc":"4516:16:65","nodeType":"YulVariableDeclaration","src":"4516:16:65","value":{"kind":"number","nativeSrc":"4530:2:65","nodeType":"YulLiteral","src":"4530:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4520:6:65","nodeType":"YulTypedName","src":"4520:6:65","type":""}]},{"nativeSrc":"4546:63:65","nodeType":"YulAssignment","src":"4546:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4581:9:65","nodeType":"YulIdentifier","src":"4581:9:65"},{"name":"offset","nativeSrc":"4592:6:65","nodeType":"YulIdentifier","src":"4592:6:65"}],"functionName":{"name":"add","nativeSrc":"4577:3:65","nodeType":"YulIdentifier","src":"4577:3:65"},"nativeSrc":"4577:22:65","nodeType":"YulFunctionCall","src":"4577:22:65"},{"name":"dataEnd","nativeSrc":"4601:7:65","nodeType":"YulIdentifier","src":"4601:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4556:20:65","nodeType":"YulIdentifier","src":"4556:20:65"},"nativeSrc":"4556:53:65","nodeType":"YulFunctionCall","src":"4556:53:65"},"variableNames":[{"name":"value1","nativeSrc":"4546:6:65","nodeType":"YulIdentifier","src":"4546:6:65"}]}]},{"nativeSrc":"4629:118:65","nodeType":"YulBlock","src":"4629:118:65","statements":[{"nativeSrc":"4644:16:65","nodeType":"YulVariableDeclaration","src":"4644:16:65","value":{"kind":"number","nativeSrc":"4658:2:65","nodeType":"YulLiteral","src":"4658:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4648:6:65","nodeType":"YulTypedName","src":"4648:6:65","type":""}]},{"nativeSrc":"4674:63:65","nodeType":"YulAssignment","src":"4674:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4709:9:65","nodeType":"YulIdentifier","src":"4709:9:65"},{"name":"offset","nativeSrc":"4720:6:65","nodeType":"YulIdentifier","src":"4720:6:65"}],"functionName":{"name":"add","nativeSrc":"4705:3:65","nodeType":"YulIdentifier","src":"4705:3:65"},"nativeSrc":"4705:22:65","nodeType":"YulFunctionCall","src":"4705:22:65"},{"name":"dataEnd","nativeSrc":"4729:7:65","nodeType":"YulIdentifier","src":"4729:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4684:20:65","nodeType":"YulIdentifier","src":"4684:20:65"},"nativeSrc":"4684:53:65","nodeType":"YulFunctionCall","src":"4684:53:65"},"variableNames":[{"name":"value2","nativeSrc":"4674:6:65","nodeType":"YulIdentifier","src":"4674:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"4135:619:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4189:9:65","nodeType":"YulTypedName","src":"4189:9:65","type":""},{"name":"dataEnd","nativeSrc":"4200:7:65","nodeType":"YulTypedName","src":"4200:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4212:6:65","nodeType":"YulTypedName","src":"4212:6:65","type":""},{"name":"value1","nativeSrc":"4220:6:65","nodeType":"YulTypedName","src":"4220:6:65","type":""},{"name":"value2","nativeSrc":"4228:6:65","nodeType":"YulTypedName","src":"4228:6:65","type":""}],"src":"4135:619:65"},{"body":{"nativeSrc":"4803:43:65","nodeType":"YulBlock","src":"4803:43:65","statements":[{"nativeSrc":"4813:27:65","nodeType":"YulAssignment","src":"4813:27:65","value":{"arguments":[{"name":"value","nativeSrc":"4828:5:65","nodeType":"YulIdentifier","src":"4828:5:65"},{"kind":"number","nativeSrc":"4835:4:65","nodeType":"YulLiteral","src":"4835:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4824:3:65","nodeType":"YulIdentifier","src":"4824:3:65"},"nativeSrc":"4824:16:65","nodeType":"YulFunctionCall","src":"4824:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4813:7:65","nodeType":"YulIdentifier","src":"4813:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4760:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4785:5:65","nodeType":"YulTypedName","src":"4785:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4795:7:65","nodeType":"YulTypedName","src":"4795:7:65","type":""}],"src":"4760:86:65"},{"body":{"nativeSrc":"4913:51:65","nodeType":"YulBlock","src":"4913:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4930:3:65","nodeType":"YulIdentifier","src":"4930:3:65"},{"arguments":[{"name":"value","nativeSrc":"4951:5:65","nodeType":"YulIdentifier","src":"4951:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4935:15:65","nodeType":"YulIdentifier","src":"4935:15:65"},"nativeSrc":"4935:22:65","nodeType":"YulFunctionCall","src":"4935:22:65"}],"functionName":{"name":"mstore","nativeSrc":"4923:6:65","nodeType":"YulIdentifier","src":"4923:6:65"},"nativeSrc":"4923:35:65","nodeType":"YulFunctionCall","src":"4923:35:65"},"nativeSrc":"4923:35:65","nodeType":"YulExpressionStatement","src":"4923:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4852:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4901:5:65","nodeType":"YulTypedName","src":"4901:5:65","type":""},{"name":"pos","nativeSrc":"4908:3:65","nodeType":"YulTypedName","src":"4908:3:65","type":""}],"src":"4852:112:65"},{"body":{"nativeSrc":"5064:120:65","nodeType":"YulBlock","src":"5064:120:65","statements":[{"nativeSrc":"5074:26:65","nodeType":"YulAssignment","src":"5074:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5086:9:65","nodeType":"YulIdentifier","src":"5086:9:65"},{"kind":"number","nativeSrc":"5097:2:65","nodeType":"YulLiteral","src":"5097:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5082:3:65","nodeType":"YulIdentifier","src":"5082:3:65"},"nativeSrc":"5082:18:65","nodeType":"YulFunctionCall","src":"5082:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5074:4:65","nodeType":"YulIdentifier","src":"5074:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5150:6:65","nodeType":"YulIdentifier","src":"5150:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5163:9:65","nodeType":"YulIdentifier","src":"5163:9:65"},{"kind":"number","nativeSrc":"5174:1:65","nodeType":"YulLiteral","src":"5174:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5159:3:65","nodeType":"YulIdentifier","src":"5159:3:65"},"nativeSrc":"5159:17:65","nodeType":"YulFunctionCall","src":"5159:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"5110:39:65","nodeType":"YulIdentifier","src":"5110:39:65"},"nativeSrc":"5110:67:65","nodeType":"YulFunctionCall","src":"5110:67:65"},"nativeSrc":"5110:67:65","nodeType":"YulExpressionStatement","src":"5110:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4970:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5036:9:65","nodeType":"YulTypedName","src":"5036:9:65","type":""},{"name":"value0","nativeSrc":"5048:6:65","nodeType":"YulTypedName","src":"5048:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5059:4:65","nodeType":"YulTypedName","src":"5059:4:65","type":""}],"src":"4970:214:65"},{"body":{"nativeSrc":"5255:53:65","nodeType":"YulBlock","src":"5255:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5272:3:65","nodeType":"YulIdentifier","src":"5272:3:65"},{"arguments":[{"name":"value","nativeSrc":"5295:5:65","nodeType":"YulIdentifier","src":"5295:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5277:17:65","nodeType":"YulIdentifier","src":"5277:17:65"},"nativeSrc":"5277:24:65","nodeType":"YulFunctionCall","src":"5277:24:65"}],"functionName":{"name":"mstore","nativeSrc":"5265:6:65","nodeType":"YulIdentifier","src":"5265:6:65"},"nativeSrc":"5265:37:65","nodeType":"YulFunctionCall","src":"5265:37:65"},"nativeSrc":"5265:37:65","nodeType":"YulExpressionStatement","src":"5265:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5190:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5243:5:65","nodeType":"YulTypedName","src":"5243:5:65","type":""},{"name":"pos","nativeSrc":"5250:3:65","nodeType":"YulTypedName","src":"5250:3:65","type":""}],"src":"5190:118:65"},{"body":{"nativeSrc":"5412:124:65","nodeType":"YulBlock","src":"5412:124:65","statements":[{"nativeSrc":"5422:26:65","nodeType":"YulAssignment","src":"5422:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5434:9:65","nodeType":"YulIdentifier","src":"5434:9:65"},{"kind":"number","nativeSrc":"5445:2:65","nodeType":"YulLiteral","src":"5445:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5430:3:65","nodeType":"YulIdentifier","src":"5430:3:65"},"nativeSrc":"5430:18:65","nodeType":"YulFunctionCall","src":"5430:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5422:4:65","nodeType":"YulIdentifier","src":"5422:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5502:6:65","nodeType":"YulIdentifier","src":"5502:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5515:9:65","nodeType":"YulIdentifier","src":"5515:9:65"},{"kind":"number","nativeSrc":"5526:1:65","nodeType":"YulLiteral","src":"5526:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5511:3:65","nodeType":"YulIdentifier","src":"5511:3:65"},"nativeSrc":"5511:17:65","nodeType":"YulFunctionCall","src":"5511:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5458:43:65","nodeType":"YulIdentifier","src":"5458:43:65"},"nativeSrc":"5458:71:65","nodeType":"YulFunctionCall","src":"5458:71:65"},"nativeSrc":"5458:71:65","nodeType":"YulExpressionStatement","src":"5458:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5314:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5384:9:65","nodeType":"YulTypedName","src":"5384:9:65","type":""},{"name":"value0","nativeSrc":"5396:6:65","nodeType":"YulTypedName","src":"5396:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5407:4:65","nodeType":"YulTypedName","src":"5407:4:65","type":""}],"src":"5314:222:65"},{"body":{"nativeSrc":"5582:76:65","nodeType":"YulBlock","src":"5582:76:65","statements":[{"body":{"nativeSrc":"5636:16:65","nodeType":"YulBlock","src":"5636:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5645:1:65","nodeType":"YulLiteral","src":"5645:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"5648:1:65","nodeType":"YulLiteral","src":"5648:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5638:6:65","nodeType":"YulIdentifier","src":"5638:6:65"},"nativeSrc":"5638:12:65","nodeType":"YulFunctionCall","src":"5638:12:65"},"nativeSrc":"5638:12:65","nodeType":"YulExpressionStatement","src":"5638:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5605:5:65","nodeType":"YulIdentifier","src":"5605:5:65"},{"arguments":[{"name":"value","nativeSrc":"5627:5:65","nodeType":"YulIdentifier","src":"5627:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5612:14:65","nodeType":"YulIdentifier","src":"5612:14:65"},"nativeSrc":"5612:21:65","nodeType":"YulFunctionCall","src":"5612:21:65"}],"functionName":{"name":"eq","nativeSrc":"5602:2:65","nodeType":"YulIdentifier","src":"5602:2:65"},"nativeSrc":"5602:32:65","nodeType":"YulFunctionCall","src":"5602:32:65"}],"functionName":{"name":"iszero","nativeSrc":"5595:6:65","nodeType":"YulIdentifier","src":"5595:6:65"},"nativeSrc":"5595:40:65","nodeType":"YulFunctionCall","src":"5595:40:65"},"nativeSrc":"5592:60:65","nodeType":"YulIf","src":"5592:60:65"}]},"name":"validator_revert_t_bool","nativeSrc":"5542:116:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5575:5:65","nodeType":"YulTypedName","src":"5575:5:65","type":""}],"src":"5542:116:65"},{"body":{"nativeSrc":"5713:84:65","nodeType":"YulBlock","src":"5713:84:65","statements":[{"nativeSrc":"5723:29:65","nodeType":"YulAssignment","src":"5723:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"5745:6:65","nodeType":"YulIdentifier","src":"5745:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"5732:12:65","nodeType":"YulIdentifier","src":"5732:12:65"},"nativeSrc":"5732:20:65","nodeType":"YulFunctionCall","src":"5732:20:65"},"variableNames":[{"name":"value","nativeSrc":"5723:5:65","nodeType":"YulIdentifier","src":"5723:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5785:5:65","nodeType":"YulIdentifier","src":"5785:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"5761:23:65","nodeType":"YulIdentifier","src":"5761:23:65"},"nativeSrc":"5761:30:65","nodeType":"YulFunctionCall","src":"5761:30:65"},"nativeSrc":"5761:30:65","nodeType":"YulExpressionStatement","src":"5761:30:65"}]},"name":"abi_decode_t_bool","nativeSrc":"5664:133:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5691:6:65","nodeType":"YulTypedName","src":"5691:6:65","type":""},{"name":"end","nativeSrc":"5699:3:65","nodeType":"YulTypedName","src":"5699:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5707:5:65","nodeType":"YulTypedName","src":"5707:5:65","type":""}],"src":"5664:133:65"},{"body":{"nativeSrc":"5883:388:65","nodeType":"YulBlock","src":"5883:388:65","statements":[{"body":{"nativeSrc":"5929:83:65","nodeType":"YulBlock","src":"5929:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5931:77:65","nodeType":"YulIdentifier","src":"5931:77:65"},"nativeSrc":"5931:79:65","nodeType":"YulFunctionCall","src":"5931:79:65"},"nativeSrc":"5931:79:65","nodeType":"YulExpressionStatement","src":"5931:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5904:7:65","nodeType":"YulIdentifier","src":"5904:7:65"},{"name":"headStart","nativeSrc":"5913:9:65","nodeType":"YulIdentifier","src":"5913:9:65"}],"functionName":{"name":"sub","nativeSrc":"5900:3:65","nodeType":"YulIdentifier","src":"5900:3:65"},"nativeSrc":"5900:23:65","nodeType":"YulFunctionCall","src":"5900:23:65"},{"kind":"number","nativeSrc":"5925:2:65","nodeType":"YulLiteral","src":"5925:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5896:3:65","nodeType":"YulIdentifier","src":"5896:3:65"},"nativeSrc":"5896:32:65","nodeType":"YulFunctionCall","src":"5896:32:65"},"nativeSrc":"5893:119:65","nodeType":"YulIf","src":"5893:119:65"},{"nativeSrc":"6022:117:65","nodeType":"YulBlock","src":"6022:117:65","statements":[{"nativeSrc":"6037:15:65","nodeType":"YulVariableDeclaration","src":"6037:15:65","value":{"kind":"number","nativeSrc":"6051:1:65","nodeType":"YulLiteral","src":"6051:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6041:6:65","nodeType":"YulTypedName","src":"6041:6:65","type":""}]},{"nativeSrc":"6066:63:65","nodeType":"YulAssignment","src":"6066:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6101:9:65","nodeType":"YulIdentifier","src":"6101:9:65"},{"name":"offset","nativeSrc":"6112:6:65","nodeType":"YulIdentifier","src":"6112:6:65"}],"functionName":{"name":"add","nativeSrc":"6097:3:65","nodeType":"YulIdentifier","src":"6097:3:65"},"nativeSrc":"6097:22:65","nodeType":"YulFunctionCall","src":"6097:22:65"},{"name":"dataEnd","nativeSrc":"6121:7:65","nodeType":"YulIdentifier","src":"6121:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6076:20:65","nodeType":"YulIdentifier","src":"6076:20:65"},"nativeSrc":"6076:53:65","nodeType":"YulFunctionCall","src":"6076:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6066:6:65","nodeType":"YulIdentifier","src":"6066:6:65"}]}]},{"nativeSrc":"6149:115:65","nodeType":"YulBlock","src":"6149:115:65","statements":[{"nativeSrc":"6164:16:65","nodeType":"YulVariableDeclaration","src":"6164:16:65","value":{"kind":"number","nativeSrc":"6178:2:65","nodeType":"YulLiteral","src":"6178:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6168:6:65","nodeType":"YulTypedName","src":"6168:6:65","type":""}]},{"nativeSrc":"6194:60:65","nodeType":"YulAssignment","src":"6194:60:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6226:9:65","nodeType":"YulIdentifier","src":"6226:9:65"},{"name":"offset","nativeSrc":"6237:6:65","nodeType":"YulIdentifier","src":"6237:6:65"}],"functionName":{"name":"add","nativeSrc":"6222:3:65","nodeType":"YulIdentifier","src":"6222:3:65"},"nativeSrc":"6222:22:65","nodeType":"YulFunctionCall","src":"6222:22:65"},{"name":"dataEnd","nativeSrc":"6246:7:65","nodeType":"YulIdentifier","src":"6246:7:65"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"6204:17:65","nodeType":"YulIdentifier","src":"6204:17:65"},"nativeSrc":"6204:50:65","nodeType":"YulFunctionCall","src":"6204:50:65"},"variableNames":[{"name":"value1","nativeSrc":"6194:6:65","nodeType":"YulIdentifier","src":"6194:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"5803:468:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5845:9:65","nodeType":"YulTypedName","src":"5845:9:65","type":""},{"name":"dataEnd","nativeSrc":"5856:7:65","nodeType":"YulTypedName","src":"5856:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5868:6:65","nodeType":"YulTypedName","src":"5868:6:65","type":""},{"name":"value1","nativeSrc":"5876:6:65","nodeType":"YulTypedName","src":"5876:6:65","type":""}],"src":"5803:468:65"},{"body":{"nativeSrc":"6360:391:65","nodeType":"YulBlock","src":"6360:391:65","statements":[{"body":{"nativeSrc":"6406:83:65","nodeType":"YulBlock","src":"6406:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6408:77:65","nodeType":"YulIdentifier","src":"6408:77:65"},"nativeSrc":"6408:79:65","nodeType":"YulFunctionCall","src":"6408:79:65"},"nativeSrc":"6408:79:65","nodeType":"YulExpressionStatement","src":"6408:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6381:7:65","nodeType":"YulIdentifier","src":"6381:7:65"},{"name":"headStart","nativeSrc":"6390:9:65","nodeType":"YulIdentifier","src":"6390:9:65"}],"functionName":{"name":"sub","nativeSrc":"6377:3:65","nodeType":"YulIdentifier","src":"6377:3:65"},"nativeSrc":"6377:23:65","nodeType":"YulFunctionCall","src":"6377:23:65"},{"kind":"number","nativeSrc":"6402:2:65","nodeType":"YulLiteral","src":"6402:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6373:3:65","nodeType":"YulIdentifier","src":"6373:3:65"},"nativeSrc":"6373:32:65","nodeType":"YulFunctionCall","src":"6373:32:65"},"nativeSrc":"6370:119:65","nodeType":"YulIf","src":"6370:119:65"},{"nativeSrc":"6499:117:65","nodeType":"YulBlock","src":"6499:117:65","statements":[{"nativeSrc":"6514:15:65","nodeType":"YulVariableDeclaration","src":"6514:15:65","value":{"kind":"number","nativeSrc":"6528:1:65","nodeType":"YulLiteral","src":"6528:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6518:6:65","nodeType":"YulTypedName","src":"6518:6:65","type":""}]},{"nativeSrc":"6543:63:65","nodeType":"YulAssignment","src":"6543:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6578:9:65","nodeType":"YulIdentifier","src":"6578:9:65"},{"name":"offset","nativeSrc":"6589:6:65","nodeType":"YulIdentifier","src":"6589:6:65"}],"functionName":{"name":"add","nativeSrc":"6574:3:65","nodeType":"YulIdentifier","src":"6574:3:65"},"nativeSrc":"6574:22:65","nodeType":"YulFunctionCall","src":"6574:22:65"},{"name":"dataEnd","nativeSrc":"6598:7:65","nodeType":"YulIdentifier","src":"6598:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6553:20:65","nodeType":"YulIdentifier","src":"6553:20:65"},"nativeSrc":"6553:53:65","nodeType":"YulFunctionCall","src":"6553:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6543:6:65","nodeType":"YulIdentifier","src":"6543:6:65"}]}]},{"nativeSrc":"6626:118:65","nodeType":"YulBlock","src":"6626:118:65","statements":[{"nativeSrc":"6641:16:65","nodeType":"YulVariableDeclaration","src":"6641:16:65","value":{"kind":"number","nativeSrc":"6655:2:65","nodeType":"YulLiteral","src":"6655:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6645:6:65","nodeType":"YulTypedName","src":"6645:6:65","type":""}]},{"nativeSrc":"6671:63:65","nodeType":"YulAssignment","src":"6671:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6706:9:65","nodeType":"YulIdentifier","src":"6706:9:65"},{"name":"offset","nativeSrc":"6717:6:65","nodeType":"YulIdentifier","src":"6717:6:65"}],"functionName":{"name":"add","nativeSrc":"6702:3:65","nodeType":"YulIdentifier","src":"6702:3:65"},"nativeSrc":"6702:22:65","nodeType":"YulFunctionCall","src":"6702:22:65"},{"name":"dataEnd","nativeSrc":"6726:7:65","nodeType":"YulIdentifier","src":"6726:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6681:20:65","nodeType":"YulIdentifier","src":"6681:20:65"},"nativeSrc":"6681:53:65","nodeType":"YulFunctionCall","src":"6681:53:65"},"variableNames":[{"name":"value1","nativeSrc":"6671:6:65","nodeType":"YulIdentifier","src":"6671:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"6277:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6322:9:65","nodeType":"YulTypedName","src":"6322:9:65","type":""},{"name":"dataEnd","nativeSrc":"6333:7:65","nodeType":"YulTypedName","src":"6333:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6345:6:65","nodeType":"YulTypedName","src":"6345:6:65","type":""},{"name":"value1","nativeSrc":"6353:6:65","nodeType":"YulTypedName","src":"6353:6:65","type":""}],"src":"6277:474:65"},{"body":{"nativeSrc":"6785:152:65","nodeType":"YulBlock","src":"6785:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6802:1:65","nodeType":"YulLiteral","src":"6802:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6805:77:65","nodeType":"YulLiteral","src":"6805:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6795:6:65","nodeType":"YulIdentifier","src":"6795:6:65"},"nativeSrc":"6795:88:65","nodeType":"YulFunctionCall","src":"6795:88:65"},"nativeSrc":"6795:88:65","nodeType":"YulExpressionStatement","src":"6795:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6899:1:65","nodeType":"YulLiteral","src":"6899:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"6902:4:65","nodeType":"YulLiteral","src":"6902:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6892:6:65","nodeType":"YulIdentifier","src":"6892:6:65"},"nativeSrc":"6892:15:65","nodeType":"YulFunctionCall","src":"6892:15:65"},"nativeSrc":"6892:15:65","nodeType":"YulExpressionStatement","src":"6892:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6923:1:65","nodeType":"YulLiteral","src":"6923:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6926:4:65","nodeType":"YulLiteral","src":"6926:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6916:6:65","nodeType":"YulIdentifier","src":"6916:6:65"},"nativeSrc":"6916:15:65","nodeType":"YulFunctionCall","src":"6916:15:65"},"nativeSrc":"6916:15:65","nodeType":"YulExpressionStatement","src":"6916:15:65"}]},"name":"panic_error_0x22","nativeSrc":"6757:180:65","nodeType":"YulFunctionDefinition","src":"6757:180:65"},{"body":{"nativeSrc":"6994:269:65","nodeType":"YulBlock","src":"6994:269:65","statements":[{"nativeSrc":"7004:22:65","nodeType":"YulAssignment","src":"7004:22:65","value":{"arguments":[{"name":"data","nativeSrc":"7018:4:65","nodeType":"YulIdentifier","src":"7018:4:65"},{"kind":"number","nativeSrc":"7024:1:65","nodeType":"YulLiteral","src":"7024:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"7014:3:65","nodeType":"YulIdentifier","src":"7014:3:65"},"nativeSrc":"7014:12:65","nodeType":"YulFunctionCall","src":"7014:12:65"},"variableNames":[{"name":"length","nativeSrc":"7004:6:65","nodeType":"YulIdentifier","src":"7004:6:65"}]},{"nativeSrc":"7035:38:65","nodeType":"YulVariableDeclaration","src":"7035:38:65","value":{"arguments":[{"name":"data","nativeSrc":"7065:4:65","nodeType":"YulIdentifier","src":"7065:4:65"},{"kind":"number","nativeSrc":"7071:1:65","nodeType":"YulLiteral","src":"7071:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"7061:3:65","nodeType":"YulIdentifier","src":"7061:3:65"},"nativeSrc":"7061:12:65","nodeType":"YulFunctionCall","src":"7061:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"7039:18:65","nodeType":"YulTypedName","src":"7039:18:65","type":""}]},{"body":{"nativeSrc":"7112:51:65","nodeType":"YulBlock","src":"7112:51:65","statements":[{"nativeSrc":"7126:27:65","nodeType":"YulAssignment","src":"7126:27:65","value":{"arguments":[{"name":"length","nativeSrc":"7140:6:65","nodeType":"YulIdentifier","src":"7140:6:65"},{"kind":"number","nativeSrc":"7148:4:65","nodeType":"YulLiteral","src":"7148:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"7136:3:65","nodeType":"YulIdentifier","src":"7136:3:65"},"nativeSrc":"7136:17:65","nodeType":"YulFunctionCall","src":"7136:17:65"},"variableNames":[{"name":"length","nativeSrc":"7126:6:65","nodeType":"YulIdentifier","src":"7126:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"7092:18:65","nodeType":"YulIdentifier","src":"7092:18:65"}],"functionName":{"name":"iszero","nativeSrc":"7085:6:65","nodeType":"YulIdentifier","src":"7085:6:65"},"nativeSrc":"7085:26:65","nodeType":"YulFunctionCall","src":"7085:26:65"},"nativeSrc":"7082:81:65","nodeType":"YulIf","src":"7082:81:65"},{"body":{"nativeSrc":"7215:42:65","nodeType":"YulBlock","src":"7215:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"7229:16:65","nodeType":"YulIdentifier","src":"7229:16:65"},"nativeSrc":"7229:18:65","nodeType":"YulFunctionCall","src":"7229:18:65"},"nativeSrc":"7229:18:65","nodeType":"YulExpressionStatement","src":"7229:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"7179:18:65","nodeType":"YulIdentifier","src":"7179:18:65"},{"arguments":[{"name":"length","nativeSrc":"7202:6:65","nodeType":"YulIdentifier","src":"7202:6:65"},{"kind":"number","nativeSrc":"7210:2:65","nodeType":"YulLiteral","src":"7210:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"7199:2:65","nodeType":"YulIdentifier","src":"7199:2:65"},"nativeSrc":"7199:14:65","nodeType":"YulFunctionCall","src":"7199:14:65"}],"functionName":{"name":"eq","nativeSrc":"7176:2:65","nodeType":"YulIdentifier","src":"7176:2:65"},"nativeSrc":"7176:38:65","nodeType":"YulFunctionCall","src":"7176:38:65"},"nativeSrc":"7173:84:65","nodeType":"YulIf","src":"7173:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"6943:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6978:4:65","nodeType":"YulTypedName","src":"6978:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6987:6:65","nodeType":"YulTypedName","src":"6987:6:65","type":""}],"src":"6943:320:65"},{"body":{"nativeSrc":"7297:152:65","nodeType":"YulBlock","src":"7297:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7314:1:65","nodeType":"YulLiteral","src":"7314:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7317:77:65","nodeType":"YulLiteral","src":"7317:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7307:6:65","nodeType":"YulIdentifier","src":"7307:6:65"},"nativeSrc":"7307:88:65","nodeType":"YulFunctionCall","src":"7307:88:65"},"nativeSrc":"7307:88:65","nodeType":"YulExpressionStatement","src":"7307:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7411:1:65","nodeType":"YulLiteral","src":"7411:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"7414:4:65","nodeType":"YulLiteral","src":"7414:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7404:6:65","nodeType":"YulIdentifier","src":"7404:6:65"},"nativeSrc":"7404:15:65","nodeType":"YulFunctionCall","src":"7404:15:65"},"nativeSrc":"7404:15:65","nodeType":"YulExpressionStatement","src":"7404:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7435:1:65","nodeType":"YulLiteral","src":"7435:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7438:4:65","nodeType":"YulLiteral","src":"7438:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7428:6:65","nodeType":"YulIdentifier","src":"7428:6:65"},"nativeSrc":"7428:15:65","nodeType":"YulFunctionCall","src":"7428:15:65"},"nativeSrc":"7428:15:65","nodeType":"YulExpressionStatement","src":"7428:15:65"}]},"name":"panic_error_0x11","nativeSrc":"7269:180:65","nodeType":"YulFunctionDefinition","src":"7269:180:65"},{"body":{"nativeSrc":"7499:147:65","nodeType":"YulBlock","src":"7499:147:65","statements":[{"nativeSrc":"7509:25:65","nodeType":"YulAssignment","src":"7509:25:65","value":{"arguments":[{"name":"x","nativeSrc":"7532:1:65","nodeType":"YulIdentifier","src":"7532:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7514:17:65","nodeType":"YulIdentifier","src":"7514:17:65"},"nativeSrc":"7514:20:65","nodeType":"YulFunctionCall","src":"7514:20:65"},"variableNames":[{"name":"x","nativeSrc":"7509:1:65","nodeType":"YulIdentifier","src":"7509:1:65"}]},{"nativeSrc":"7543:25:65","nodeType":"YulAssignment","src":"7543:25:65","value":{"arguments":[{"name":"y","nativeSrc":"7566:1:65","nodeType":"YulIdentifier","src":"7566:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7548:17:65","nodeType":"YulIdentifier","src":"7548:17:65"},"nativeSrc":"7548:20:65","nodeType":"YulFunctionCall","src":"7548:20:65"},"variableNames":[{"name":"y","nativeSrc":"7543:1:65","nodeType":"YulIdentifier","src":"7543:1:65"}]},{"nativeSrc":"7577:16:65","nodeType":"YulAssignment","src":"7577:16:65","value":{"arguments":[{"name":"x","nativeSrc":"7588:1:65","nodeType":"YulIdentifier","src":"7588:1:65"},{"name":"y","nativeSrc":"7591:1:65","nodeType":"YulIdentifier","src":"7591:1:65"}],"functionName":{"name":"add","nativeSrc":"7584:3:65","nodeType":"YulIdentifier","src":"7584:3:65"},"nativeSrc":"7584:9:65","nodeType":"YulFunctionCall","src":"7584:9:65"},"variableNames":[{"name":"sum","nativeSrc":"7577:3:65","nodeType":"YulIdentifier","src":"7577:3:65"}]},{"body":{"nativeSrc":"7617:22:65","nodeType":"YulBlock","src":"7617:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7619:16:65","nodeType":"YulIdentifier","src":"7619:16:65"},"nativeSrc":"7619:18:65","nodeType":"YulFunctionCall","src":"7619:18:65"},"nativeSrc":"7619:18:65","nodeType":"YulExpressionStatement","src":"7619:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"7609:1:65","nodeType":"YulIdentifier","src":"7609:1:65"},{"name":"sum","nativeSrc":"7612:3:65","nodeType":"YulIdentifier","src":"7612:3:65"}],"functionName":{"name":"gt","nativeSrc":"7606:2:65","nodeType":"YulIdentifier","src":"7606:2:65"},"nativeSrc":"7606:10:65","nodeType":"YulFunctionCall","src":"7606:10:65"},"nativeSrc":"7603:36:65","nodeType":"YulIf","src":"7603:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"7455:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7486:1:65","nodeType":"YulTypedName","src":"7486:1:65","type":""},{"name":"y","nativeSrc":"7489:1:65","nodeType":"YulTypedName","src":"7489:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7495:3:65","nodeType":"YulTypedName","src":"7495:3:65","type":""}],"src":"7455:191:65"},{"body":{"nativeSrc":"7758:118:65","nodeType":"YulBlock","src":"7758:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7780:6:65","nodeType":"YulIdentifier","src":"7780:6:65"},{"kind":"number","nativeSrc":"7788:1:65","nodeType":"YulLiteral","src":"7788:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7776:3:65","nodeType":"YulIdentifier","src":"7776:3:65"},"nativeSrc":"7776:14:65","nodeType":"YulFunctionCall","src":"7776:14:65"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"7792:34:65","nodeType":"YulLiteral","src":"7792:34:65","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"7769:6:65","nodeType":"YulIdentifier","src":"7769:6:65"},"nativeSrc":"7769:58:65","nodeType":"YulFunctionCall","src":"7769:58:65"},"nativeSrc":"7769:58:65","nodeType":"YulExpressionStatement","src":"7769:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7848:6:65","nodeType":"YulIdentifier","src":"7848:6:65"},{"kind":"number","nativeSrc":"7856:2:65","nodeType":"YulLiteral","src":"7856:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7844:3:65","nodeType":"YulIdentifier","src":"7844:3:65"},"nativeSrc":"7844:15:65","nodeType":"YulFunctionCall","src":"7844:15:65"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7861:7:65","nodeType":"YulLiteral","src":"7861:7:65","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"7837:6:65","nodeType":"YulIdentifier","src":"7837:6:65"},"nativeSrc":"7837:32:65","nodeType":"YulFunctionCall","src":"7837:32:65"},"nativeSrc":"7837:32:65","nodeType":"YulExpressionStatement","src":"7837:32:65"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7652:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7750:6:65","nodeType":"YulTypedName","src":"7750:6:65","type":""}],"src":"7652:224:65"},{"body":{"nativeSrc":"8028:220:65","nodeType":"YulBlock","src":"8028:220:65","statements":[{"nativeSrc":"8038:74:65","nodeType":"YulAssignment","src":"8038:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"8104:3:65","nodeType":"YulIdentifier","src":"8104:3:65"},{"kind":"number","nativeSrc":"8109:2:65","nodeType":"YulLiteral","src":"8109:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8045:58:65","nodeType":"YulIdentifier","src":"8045:58:65"},"nativeSrc":"8045:67:65","nodeType":"YulFunctionCall","src":"8045:67:65"},"variableNames":[{"name":"pos","nativeSrc":"8038:3:65","nodeType":"YulIdentifier","src":"8038:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8210:3:65","nodeType":"YulIdentifier","src":"8210:3:65"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"8121:88:65","nodeType":"YulIdentifier","src":"8121:88:65"},"nativeSrc":"8121:93:65","nodeType":"YulFunctionCall","src":"8121:93:65"},"nativeSrc":"8121:93:65","nodeType":"YulExpressionStatement","src":"8121:93:65"},{"nativeSrc":"8223:19:65","nodeType":"YulAssignment","src":"8223:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"8234:3:65","nodeType":"YulIdentifier","src":"8234:3:65"},{"kind":"number","nativeSrc":"8239:2:65","nodeType":"YulLiteral","src":"8239:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8230:3:65","nodeType":"YulIdentifier","src":"8230:3:65"},"nativeSrc":"8230:12:65","nodeType":"YulFunctionCall","src":"8230:12:65"},"variableNames":[{"name":"end","nativeSrc":"8223:3:65","nodeType":"YulIdentifier","src":"8223:3:65"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7882:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8016:3:65","nodeType":"YulTypedName","src":"8016:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8024:3:65","nodeType":"YulTypedName","src":"8024:3:65","type":""}],"src":"7882:366:65"},{"body":{"nativeSrc":"8425:248:65","nodeType":"YulBlock","src":"8425:248:65","statements":[{"nativeSrc":"8435:26:65","nodeType":"YulAssignment","src":"8435:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8447:9:65","nodeType":"YulIdentifier","src":"8447:9:65"},{"kind":"number","nativeSrc":"8458:2:65","nodeType":"YulLiteral","src":"8458:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8443:3:65","nodeType":"YulIdentifier","src":"8443:3:65"},"nativeSrc":"8443:18:65","nodeType":"YulFunctionCall","src":"8443:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8435:4:65","nodeType":"YulIdentifier","src":"8435:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8482:9:65","nodeType":"YulIdentifier","src":"8482:9:65"},{"kind":"number","nativeSrc":"8493:1:65","nodeType":"YulLiteral","src":"8493:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8478:3:65","nodeType":"YulIdentifier","src":"8478:3:65"},"nativeSrc":"8478:17:65","nodeType":"YulFunctionCall","src":"8478:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8501:4:65","nodeType":"YulIdentifier","src":"8501:4:65"},{"name":"headStart","nativeSrc":"8507:9:65","nodeType":"YulIdentifier","src":"8507:9:65"}],"functionName":{"name":"sub","nativeSrc":"8497:3:65","nodeType":"YulIdentifier","src":"8497:3:65"},"nativeSrc":"8497:20:65","nodeType":"YulFunctionCall","src":"8497:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8471:6:65","nodeType":"YulIdentifier","src":"8471:6:65"},"nativeSrc":"8471:47:65","nodeType":"YulFunctionCall","src":"8471:47:65"},"nativeSrc":"8471:47:65","nodeType":"YulExpressionStatement","src":"8471:47:65"},{"nativeSrc":"8527:139:65","nodeType":"YulAssignment","src":"8527:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"8661:4:65","nodeType":"YulIdentifier","src":"8661:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"8535:124:65","nodeType":"YulIdentifier","src":"8535:124:65"},"nativeSrc":"8535:131:65","nodeType":"YulFunctionCall","src":"8535:131:65"},"variableNames":[{"name":"tail","nativeSrc":"8527:4:65","nodeType":"YulIdentifier","src":"8527:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8254:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8405:9:65","nodeType":"YulTypedName","src":"8405:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8420:4:65","nodeType":"YulTypedName","src":"8420:4:65","type":""}],"src":"8254:419:65"},{"body":{"nativeSrc":"8785:119:65","nodeType":"YulBlock","src":"8785:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8807:6:65","nodeType":"YulIdentifier","src":"8807:6:65"},{"kind":"number","nativeSrc":"8815:1:65","nodeType":"YulLiteral","src":"8815:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8803:3:65","nodeType":"YulIdentifier","src":"8803:3:65"},"nativeSrc":"8803:14:65","nodeType":"YulFunctionCall","src":"8803:14:65"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"8819:34:65","nodeType":"YulLiteral","src":"8819:34:65","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"8796:6:65","nodeType":"YulIdentifier","src":"8796:6:65"},"nativeSrc":"8796:58:65","nodeType":"YulFunctionCall","src":"8796:58:65"},"nativeSrc":"8796:58:65","nodeType":"YulExpressionStatement","src":"8796:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8875:6:65","nodeType":"YulIdentifier","src":"8875:6:65"},{"kind":"number","nativeSrc":"8883:2:65","nodeType":"YulLiteral","src":"8883:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8871:3:65","nodeType":"YulIdentifier","src":"8871:3:65"},"nativeSrc":"8871:15:65","nodeType":"YulFunctionCall","src":"8871:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"8888:8:65","nodeType":"YulLiteral","src":"8888:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"8864:6:65","nodeType":"YulIdentifier","src":"8864:6:65"},"nativeSrc":"8864:33:65","nodeType":"YulFunctionCall","src":"8864:33:65"},"nativeSrc":"8864:33:65","nodeType":"YulExpressionStatement","src":"8864:33:65"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"8679:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8777:6:65","nodeType":"YulTypedName","src":"8777:6:65","type":""}],"src":"8679:225:65"},{"body":{"nativeSrc":"9056:220:65","nodeType":"YulBlock","src":"9056:220:65","statements":[{"nativeSrc":"9066:74:65","nodeType":"YulAssignment","src":"9066:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"9132:3:65","nodeType":"YulIdentifier","src":"9132:3:65"},{"kind":"number","nativeSrc":"9137:2:65","nodeType":"YulLiteral","src":"9137:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9073:58:65","nodeType":"YulIdentifier","src":"9073:58:65"},"nativeSrc":"9073:67:65","nodeType":"YulFunctionCall","src":"9073:67:65"},"variableNames":[{"name":"pos","nativeSrc":"9066:3:65","nodeType":"YulIdentifier","src":"9066:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9238:3:65","nodeType":"YulIdentifier","src":"9238:3:65"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"9149:88:65","nodeType":"YulIdentifier","src":"9149:88:65"},"nativeSrc":"9149:93:65","nodeType":"YulFunctionCall","src":"9149:93:65"},"nativeSrc":"9149:93:65","nodeType":"YulExpressionStatement","src":"9149:93:65"},{"nativeSrc":"9251:19:65","nodeType":"YulAssignment","src":"9251:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"9262:3:65","nodeType":"YulIdentifier","src":"9262:3:65"},{"kind":"number","nativeSrc":"9267:2:65","nodeType":"YulLiteral","src":"9267:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9258:3:65","nodeType":"YulIdentifier","src":"9258:3:65"},"nativeSrc":"9258:12:65","nodeType":"YulFunctionCall","src":"9258:12:65"},"variableNames":[{"name":"end","nativeSrc":"9251:3:65","nodeType":"YulIdentifier","src":"9251:3:65"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"8910:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9044:3:65","nodeType":"YulTypedName","src":"9044:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9052:3:65","nodeType":"YulTypedName","src":"9052:3:65","type":""}],"src":"8910:366:65"},{"body":{"nativeSrc":"9453:248:65","nodeType":"YulBlock","src":"9453:248:65","statements":[{"nativeSrc":"9463:26:65","nodeType":"YulAssignment","src":"9463:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9475:9:65","nodeType":"YulIdentifier","src":"9475:9:65"},{"kind":"number","nativeSrc":"9486:2:65","nodeType":"YulLiteral","src":"9486:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9471:3:65","nodeType":"YulIdentifier","src":"9471:3:65"},"nativeSrc":"9471:18:65","nodeType":"YulFunctionCall","src":"9471:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9463:4:65","nodeType":"YulIdentifier","src":"9463:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9510:9:65","nodeType":"YulIdentifier","src":"9510:9:65"},{"kind":"number","nativeSrc":"9521:1:65","nodeType":"YulLiteral","src":"9521:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9506:3:65","nodeType":"YulIdentifier","src":"9506:3:65"},"nativeSrc":"9506:17:65","nodeType":"YulFunctionCall","src":"9506:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9529:4:65","nodeType":"YulIdentifier","src":"9529:4:65"},{"name":"headStart","nativeSrc":"9535:9:65","nodeType":"YulIdentifier","src":"9535:9:65"}],"functionName":{"name":"sub","nativeSrc":"9525:3:65","nodeType":"YulIdentifier","src":"9525:3:65"},"nativeSrc":"9525:20:65","nodeType":"YulFunctionCall","src":"9525:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9499:6:65","nodeType":"YulIdentifier","src":"9499:6:65"},"nativeSrc":"9499:47:65","nodeType":"YulFunctionCall","src":"9499:47:65"},"nativeSrc":"9499:47:65","nodeType":"YulExpressionStatement","src":"9499:47:65"},{"nativeSrc":"9555:139:65","nodeType":"YulAssignment","src":"9555:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9689:4:65","nodeType":"YulIdentifier","src":"9689:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"9563:124:65","nodeType":"YulIdentifier","src":"9563:124:65"},"nativeSrc":"9563:131:65","nodeType":"YulFunctionCall","src":"9563:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9555:4:65","nodeType":"YulIdentifier","src":"9555:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9282:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9433:9:65","nodeType":"YulTypedName","src":"9433:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9448:4:65","nodeType":"YulTypedName","src":"9448:4:65","type":""}],"src":"9282:419:65"},{"body":{"nativeSrc":"9813:117:65","nodeType":"YulBlock","src":"9813:117:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9835:6:65","nodeType":"YulIdentifier","src":"9835:6:65"},{"kind":"number","nativeSrc":"9843:1:65","nodeType":"YulLiteral","src":"9843:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9831:3:65","nodeType":"YulIdentifier","src":"9831:3:65"},"nativeSrc":"9831:14:65","nodeType":"YulFunctionCall","src":"9831:14:65"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"9847:34:65","nodeType":"YulLiteral","src":"9847:34:65","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"9824:6:65","nodeType":"YulIdentifier","src":"9824:6:65"},"nativeSrc":"9824:58:65","nodeType":"YulFunctionCall","src":"9824:58:65"},"nativeSrc":"9824:58:65","nodeType":"YulExpressionStatement","src":"9824:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9903:6:65","nodeType":"YulIdentifier","src":"9903:6:65"},{"kind":"number","nativeSrc":"9911:2:65","nodeType":"YulLiteral","src":"9911:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9899:3:65","nodeType":"YulIdentifier","src":"9899:3:65"},"nativeSrc":"9899:15:65","nodeType":"YulFunctionCall","src":"9899:15:65"},{"hexValue":"72657373","kind":"string","nativeSrc":"9916:6:65","nodeType":"YulLiteral","src":"9916:6:65","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"9892:6:65","nodeType":"YulIdentifier","src":"9892:6:65"},"nativeSrc":"9892:31:65","nodeType":"YulFunctionCall","src":"9892:31:65"},"nativeSrc":"9892:31:65","nodeType":"YulExpressionStatement","src":"9892:31:65"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"9707:223:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9805:6:65","nodeType":"YulTypedName","src":"9805:6:65","type":""}],"src":"9707:223:65"},{"body":{"nativeSrc":"10082:220:65","nodeType":"YulBlock","src":"10082:220:65","statements":[{"nativeSrc":"10092:74:65","nodeType":"YulAssignment","src":"10092:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"10158:3:65","nodeType":"YulIdentifier","src":"10158:3:65"},{"kind":"number","nativeSrc":"10163:2:65","nodeType":"YulLiteral","src":"10163:2:65","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10099:58:65","nodeType":"YulIdentifier","src":"10099:58:65"},"nativeSrc":"10099:67:65","nodeType":"YulFunctionCall","src":"10099:67:65"},"variableNames":[{"name":"pos","nativeSrc":"10092:3:65","nodeType":"YulIdentifier","src":"10092:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10264:3:65","nodeType":"YulIdentifier","src":"10264:3:65"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"10175:88:65","nodeType":"YulIdentifier","src":"10175:88:65"},"nativeSrc":"10175:93:65","nodeType":"YulFunctionCall","src":"10175:93:65"},"nativeSrc":"10175:93:65","nodeType":"YulExpressionStatement","src":"10175:93:65"},{"nativeSrc":"10277:19:65","nodeType":"YulAssignment","src":"10277:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"10288:3:65","nodeType":"YulIdentifier","src":"10288:3:65"},{"kind":"number","nativeSrc":"10293:2:65","nodeType":"YulLiteral","src":"10293:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10284:3:65","nodeType":"YulIdentifier","src":"10284:3:65"},"nativeSrc":"10284:12:65","nodeType":"YulFunctionCall","src":"10284:12:65"},"variableNames":[{"name":"end","nativeSrc":"10277:3:65","nodeType":"YulIdentifier","src":"10277:3:65"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"9936:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10070:3:65","nodeType":"YulTypedName","src":"10070:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10078:3:65","nodeType":"YulTypedName","src":"10078:3:65","type":""}],"src":"9936:366:65"},{"body":{"nativeSrc":"10479:248:65","nodeType":"YulBlock","src":"10479:248:65","statements":[{"nativeSrc":"10489:26:65","nodeType":"YulAssignment","src":"10489:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10501:9:65","nodeType":"YulIdentifier","src":"10501:9:65"},{"kind":"number","nativeSrc":"10512:2:65","nodeType":"YulLiteral","src":"10512:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10497:3:65","nodeType":"YulIdentifier","src":"10497:3:65"},"nativeSrc":"10497:18:65","nodeType":"YulFunctionCall","src":"10497:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10489:4:65","nodeType":"YulIdentifier","src":"10489:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10536:9:65","nodeType":"YulIdentifier","src":"10536:9:65"},{"kind":"number","nativeSrc":"10547:1:65","nodeType":"YulLiteral","src":"10547:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10532:3:65","nodeType":"YulIdentifier","src":"10532:3:65"},"nativeSrc":"10532:17:65","nodeType":"YulFunctionCall","src":"10532:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10555:4:65","nodeType":"YulIdentifier","src":"10555:4:65"},{"name":"headStart","nativeSrc":"10561:9:65","nodeType":"YulIdentifier","src":"10561:9:65"}],"functionName":{"name":"sub","nativeSrc":"10551:3:65","nodeType":"YulIdentifier","src":"10551:3:65"},"nativeSrc":"10551:20:65","nodeType":"YulFunctionCall","src":"10551:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10525:6:65","nodeType":"YulIdentifier","src":"10525:6:65"},"nativeSrc":"10525:47:65","nodeType":"YulFunctionCall","src":"10525:47:65"},"nativeSrc":"10525:47:65","nodeType":"YulExpressionStatement","src":"10525:47:65"},{"nativeSrc":"10581:139:65","nodeType":"YulAssignment","src":"10581:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"10715:4:65","nodeType":"YulIdentifier","src":"10715:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"10589:124:65","nodeType":"YulIdentifier","src":"10589:124:65"},"nativeSrc":"10589:131:65","nodeType":"YulFunctionCall","src":"10589:131:65"},"variableNames":[{"name":"tail","nativeSrc":"10581:4:65","nodeType":"YulIdentifier","src":"10581:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10308:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10459:9:65","nodeType":"YulTypedName","src":"10459:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10474:4:65","nodeType":"YulTypedName","src":"10474:4:65","type":""}],"src":"10308:419:65"},{"body":{"nativeSrc":"10839:115:65","nodeType":"YulBlock","src":"10839:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10861:6:65","nodeType":"YulIdentifier","src":"10861:6:65"},{"kind":"number","nativeSrc":"10869:1:65","nodeType":"YulLiteral","src":"10869:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10857:3:65","nodeType":"YulIdentifier","src":"10857:3:65"},"nativeSrc":"10857:14:65","nodeType":"YulFunctionCall","src":"10857:14:65"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"10873:34:65","nodeType":"YulLiteral","src":"10873:34:65","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"10850:6:65","nodeType":"YulIdentifier","src":"10850:6:65"},"nativeSrc":"10850:58:65","nodeType":"YulFunctionCall","src":"10850:58:65"},"nativeSrc":"10850:58:65","nodeType":"YulExpressionStatement","src":"10850:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10929:6:65","nodeType":"YulIdentifier","src":"10929:6:65"},{"kind":"number","nativeSrc":"10937:2:65","nodeType":"YulLiteral","src":"10937:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10925:3:65","nodeType":"YulIdentifier","src":"10925:3:65"},"nativeSrc":"10925:15:65","nodeType":"YulFunctionCall","src":"10925:15:65"},{"hexValue":"7373","kind":"string","nativeSrc":"10942:4:65","nodeType":"YulLiteral","src":"10942:4:65","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"10918:6:65","nodeType":"YulIdentifier","src":"10918:6:65"},"nativeSrc":"10918:29:65","nodeType":"YulFunctionCall","src":"10918:29:65"},"nativeSrc":"10918:29:65","nodeType":"YulExpressionStatement","src":"10918:29:65"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"10733:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10831:6:65","nodeType":"YulTypedName","src":"10831:6:65","type":""}],"src":"10733:221:65"},{"body":{"nativeSrc":"11106:220:65","nodeType":"YulBlock","src":"11106:220:65","statements":[{"nativeSrc":"11116:74:65","nodeType":"YulAssignment","src":"11116:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"11182:3:65","nodeType":"YulIdentifier","src":"11182:3:65"},{"kind":"number","nativeSrc":"11187:2:65","nodeType":"YulLiteral","src":"11187:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11123:58:65","nodeType":"YulIdentifier","src":"11123:58:65"},"nativeSrc":"11123:67:65","nodeType":"YulFunctionCall","src":"11123:67:65"},"variableNames":[{"name":"pos","nativeSrc":"11116:3:65","nodeType":"YulIdentifier","src":"11116:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11288:3:65","nodeType":"YulIdentifier","src":"11288:3:65"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"11199:88:65","nodeType":"YulIdentifier","src":"11199:88:65"},"nativeSrc":"11199:93:65","nodeType":"YulFunctionCall","src":"11199:93:65"},"nativeSrc":"11199:93:65","nodeType":"YulExpressionStatement","src":"11199:93:65"},{"nativeSrc":"11301:19:65","nodeType":"YulAssignment","src":"11301:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"11312:3:65","nodeType":"YulIdentifier","src":"11312:3:65"},{"kind":"number","nativeSrc":"11317:2:65","nodeType":"YulLiteral","src":"11317:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11308:3:65","nodeType":"YulIdentifier","src":"11308:3:65"},"nativeSrc":"11308:12:65","nodeType":"YulFunctionCall","src":"11308:12:65"},"variableNames":[{"name":"end","nativeSrc":"11301:3:65","nodeType":"YulIdentifier","src":"11301:3:65"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"10960:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11094:3:65","nodeType":"YulTypedName","src":"11094:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11102:3:65","nodeType":"YulTypedName","src":"11102:3:65","type":""}],"src":"10960:366:65"},{"body":{"nativeSrc":"11503:248:65","nodeType":"YulBlock","src":"11503:248:65","statements":[{"nativeSrc":"11513:26:65","nodeType":"YulAssignment","src":"11513:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11525:9:65","nodeType":"YulIdentifier","src":"11525:9:65"},{"kind":"number","nativeSrc":"11536:2:65","nodeType":"YulLiteral","src":"11536:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11521:3:65","nodeType":"YulIdentifier","src":"11521:3:65"},"nativeSrc":"11521:18:65","nodeType":"YulFunctionCall","src":"11521:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11513:4:65","nodeType":"YulIdentifier","src":"11513:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11560:9:65","nodeType":"YulIdentifier","src":"11560:9:65"},{"kind":"number","nativeSrc":"11571:1:65","nodeType":"YulLiteral","src":"11571:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11556:3:65","nodeType":"YulIdentifier","src":"11556:3:65"},"nativeSrc":"11556:17:65","nodeType":"YulFunctionCall","src":"11556:17:65"},{"arguments":[{"name":"tail","nativeSrc":"11579:4:65","nodeType":"YulIdentifier","src":"11579:4:65"},{"name":"headStart","nativeSrc":"11585:9:65","nodeType":"YulIdentifier","src":"11585:9:65"}],"functionName":{"name":"sub","nativeSrc":"11575:3:65","nodeType":"YulIdentifier","src":"11575:3:65"},"nativeSrc":"11575:20:65","nodeType":"YulFunctionCall","src":"11575:20:65"}],"functionName":{"name":"mstore","nativeSrc":"11549:6:65","nodeType":"YulIdentifier","src":"11549:6:65"},"nativeSrc":"11549:47:65","nodeType":"YulFunctionCall","src":"11549:47:65"},"nativeSrc":"11549:47:65","nodeType":"YulExpressionStatement","src":"11549:47:65"},{"nativeSrc":"11605:139:65","nodeType":"YulAssignment","src":"11605:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"11739:4:65","nodeType":"YulIdentifier","src":"11739:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"11613:124:65","nodeType":"YulIdentifier","src":"11613:124:65"},"nativeSrc":"11613:131:65","nodeType":"YulFunctionCall","src":"11613:131:65"},"variableNames":[{"name":"tail","nativeSrc":"11605:4:65","nodeType":"YulIdentifier","src":"11605:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11332:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11483:9:65","nodeType":"YulTypedName","src":"11483:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11498:4:65","nodeType":"YulTypedName","src":"11498:4:65","type":""}],"src":"11332:419:65"},{"body":{"nativeSrc":"11863:76:65","nodeType":"YulBlock","src":"11863:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11885:6:65","nodeType":"YulIdentifier","src":"11885:6:65"},{"kind":"number","nativeSrc":"11893:1:65","nodeType":"YulLiteral","src":"11893:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11881:3:65","nodeType":"YulIdentifier","src":"11881:3:65"},"nativeSrc":"11881:14:65","nodeType":"YulFunctionCall","src":"11881:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"11897:34:65","nodeType":"YulLiteral","src":"11897:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"11874:6:65","nodeType":"YulIdentifier","src":"11874:6:65"},"nativeSrc":"11874:58:65","nodeType":"YulFunctionCall","src":"11874:58:65"},"nativeSrc":"11874:58:65","nodeType":"YulExpressionStatement","src":"11874:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"11757:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11855:6:65","nodeType":"YulTypedName","src":"11855:6:65","type":""}],"src":"11757:182:65"},{"body":{"nativeSrc":"12091:220:65","nodeType":"YulBlock","src":"12091:220:65","statements":[{"nativeSrc":"12101:74:65","nodeType":"YulAssignment","src":"12101:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"12167:3:65","nodeType":"YulIdentifier","src":"12167:3:65"},{"kind":"number","nativeSrc":"12172:2:65","nodeType":"YulLiteral","src":"12172:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12108:58:65","nodeType":"YulIdentifier","src":"12108:58:65"},"nativeSrc":"12108:67:65","nodeType":"YulFunctionCall","src":"12108:67:65"},"variableNames":[{"name":"pos","nativeSrc":"12101:3:65","nodeType":"YulIdentifier","src":"12101:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12273:3:65","nodeType":"YulIdentifier","src":"12273:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"12184:88:65","nodeType":"YulIdentifier","src":"12184:88:65"},"nativeSrc":"12184:93:65","nodeType":"YulFunctionCall","src":"12184:93:65"},"nativeSrc":"12184:93:65","nodeType":"YulExpressionStatement","src":"12184:93:65"},{"nativeSrc":"12286:19:65","nodeType":"YulAssignment","src":"12286:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"12297:3:65","nodeType":"YulIdentifier","src":"12297:3:65"},{"kind":"number","nativeSrc":"12302:2:65","nodeType":"YulLiteral","src":"12302:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12293:3:65","nodeType":"YulIdentifier","src":"12293:3:65"},"nativeSrc":"12293:12:65","nodeType":"YulFunctionCall","src":"12293:12:65"},"variableNames":[{"name":"end","nativeSrc":"12286:3:65","nodeType":"YulIdentifier","src":"12286:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"11945:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12079:3:65","nodeType":"YulTypedName","src":"12079:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12087:3:65","nodeType":"YulTypedName","src":"12087:3:65","type":""}],"src":"11945:366:65"},{"body":{"nativeSrc":"12488:248:65","nodeType":"YulBlock","src":"12488:248:65","statements":[{"nativeSrc":"12498:26:65","nodeType":"YulAssignment","src":"12498:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"12510:9:65","nodeType":"YulIdentifier","src":"12510:9:65"},{"kind":"number","nativeSrc":"12521:2:65","nodeType":"YulLiteral","src":"12521:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12506:3:65","nodeType":"YulIdentifier","src":"12506:3:65"},"nativeSrc":"12506:18:65","nodeType":"YulFunctionCall","src":"12506:18:65"},"variableNames":[{"name":"tail","nativeSrc":"12498:4:65","nodeType":"YulIdentifier","src":"12498:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12545:9:65","nodeType":"YulIdentifier","src":"12545:9:65"},{"kind":"number","nativeSrc":"12556:1:65","nodeType":"YulLiteral","src":"12556:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12541:3:65","nodeType":"YulIdentifier","src":"12541:3:65"},"nativeSrc":"12541:17:65","nodeType":"YulFunctionCall","src":"12541:17:65"},{"arguments":[{"name":"tail","nativeSrc":"12564:4:65","nodeType":"YulIdentifier","src":"12564:4:65"},{"name":"headStart","nativeSrc":"12570:9:65","nodeType":"YulIdentifier","src":"12570:9:65"}],"functionName":{"name":"sub","nativeSrc":"12560:3:65","nodeType":"YulIdentifier","src":"12560:3:65"},"nativeSrc":"12560:20:65","nodeType":"YulFunctionCall","src":"12560:20:65"}],"functionName":{"name":"mstore","nativeSrc":"12534:6:65","nodeType":"YulIdentifier","src":"12534:6:65"},"nativeSrc":"12534:47:65","nodeType":"YulFunctionCall","src":"12534:47:65"},"nativeSrc":"12534:47:65","nodeType":"YulExpressionStatement","src":"12534:47:65"},{"nativeSrc":"12590:139:65","nodeType":"YulAssignment","src":"12590:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"12724:4:65","nodeType":"YulIdentifier","src":"12724:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"12598:124:65","nodeType":"YulIdentifier","src":"12598:124:65"},"nativeSrc":"12598:131:65","nodeType":"YulFunctionCall","src":"12598:131:65"},"variableNames":[{"name":"tail","nativeSrc":"12590:4:65","nodeType":"YulIdentifier","src":"12590:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12317:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12468:9:65","nodeType":"YulTypedName","src":"12468:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12483:4:65","nodeType":"YulTypedName","src":"12483:4:65","type":""}],"src":"12317:419:65"},{"body":{"nativeSrc":"12848:73:65","nodeType":"YulBlock","src":"12848:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12870:6:65","nodeType":"YulIdentifier","src":"12870:6:65"},{"kind":"number","nativeSrc":"12878:1:65","nodeType":"YulLiteral","src":"12878:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12866:3:65","nodeType":"YulIdentifier","src":"12866:3:65"},"nativeSrc":"12866:14:65","nodeType":"YulFunctionCall","src":"12866:14:65"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"12882:31:65","nodeType":"YulLiteral","src":"12882:31:65","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"12859:6:65","nodeType":"YulIdentifier","src":"12859:6:65"},"nativeSrc":"12859:55:65","nodeType":"YulFunctionCall","src":"12859:55:65"},"nativeSrc":"12859:55:65","nodeType":"YulExpressionStatement","src":"12859:55:65"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"12742:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12840:6:65","nodeType":"YulTypedName","src":"12840:6:65","type":""}],"src":"12742:179:65"},{"body":{"nativeSrc":"13073:220:65","nodeType":"YulBlock","src":"13073:220:65","statements":[{"nativeSrc":"13083:74:65","nodeType":"YulAssignment","src":"13083:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"13149:3:65","nodeType":"YulIdentifier","src":"13149:3:65"},{"kind":"number","nativeSrc":"13154:2:65","nodeType":"YulLiteral","src":"13154:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13090:58:65","nodeType":"YulIdentifier","src":"13090:58:65"},"nativeSrc":"13090:67:65","nodeType":"YulFunctionCall","src":"13090:67:65"},"variableNames":[{"name":"pos","nativeSrc":"13083:3:65","nodeType":"YulIdentifier","src":"13083:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13255:3:65","nodeType":"YulIdentifier","src":"13255:3:65"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"13166:88:65","nodeType":"YulIdentifier","src":"13166:88:65"},"nativeSrc":"13166:93:65","nodeType":"YulFunctionCall","src":"13166:93:65"},"nativeSrc":"13166:93:65","nodeType":"YulExpressionStatement","src":"13166:93:65"},{"nativeSrc":"13268:19:65","nodeType":"YulAssignment","src":"13268:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"13279:3:65","nodeType":"YulIdentifier","src":"13279:3:65"},{"kind":"number","nativeSrc":"13284:2:65","nodeType":"YulLiteral","src":"13284:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13275:3:65","nodeType":"YulIdentifier","src":"13275:3:65"},"nativeSrc":"13275:12:65","nodeType":"YulFunctionCall","src":"13275:12:65"},"variableNames":[{"name":"end","nativeSrc":"13268:3:65","nodeType":"YulIdentifier","src":"13268:3:65"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"12927:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13061:3:65","nodeType":"YulTypedName","src":"13061:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13069:3:65","nodeType":"YulTypedName","src":"13069:3:65","type":""}],"src":"12927:366:65"},{"body":{"nativeSrc":"13470:248:65","nodeType":"YulBlock","src":"13470:248:65","statements":[{"nativeSrc":"13480:26:65","nodeType":"YulAssignment","src":"13480:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"13492:9:65","nodeType":"YulIdentifier","src":"13492:9:65"},{"kind":"number","nativeSrc":"13503:2:65","nodeType":"YulLiteral","src":"13503:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13488:3:65","nodeType":"YulIdentifier","src":"13488:3:65"},"nativeSrc":"13488:18:65","nodeType":"YulFunctionCall","src":"13488:18:65"},"variableNames":[{"name":"tail","nativeSrc":"13480:4:65","nodeType":"YulIdentifier","src":"13480:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13527:9:65","nodeType":"YulIdentifier","src":"13527:9:65"},{"kind":"number","nativeSrc":"13538:1:65","nodeType":"YulLiteral","src":"13538:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13523:3:65","nodeType":"YulIdentifier","src":"13523:3:65"},"nativeSrc":"13523:17:65","nodeType":"YulFunctionCall","src":"13523:17:65"},{"arguments":[{"name":"tail","nativeSrc":"13546:4:65","nodeType":"YulIdentifier","src":"13546:4:65"},{"name":"headStart","nativeSrc":"13552:9:65","nodeType":"YulIdentifier","src":"13552:9:65"}],"functionName":{"name":"sub","nativeSrc":"13542:3:65","nodeType":"YulIdentifier","src":"13542:3:65"},"nativeSrc":"13542:20:65","nodeType":"YulFunctionCall","src":"13542:20:65"}],"functionName":{"name":"mstore","nativeSrc":"13516:6:65","nodeType":"YulIdentifier","src":"13516:6:65"},"nativeSrc":"13516:47:65","nodeType":"YulFunctionCall","src":"13516:47:65"},"nativeSrc":"13516:47:65","nodeType":"YulExpressionStatement","src":"13516:47:65"},{"nativeSrc":"13572:139:65","nodeType":"YulAssignment","src":"13572:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"13706:4:65","nodeType":"YulIdentifier","src":"13706:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"13580:124:65","nodeType":"YulIdentifier","src":"13580:124:65"},"nativeSrc":"13580:131:65","nodeType":"YulFunctionCall","src":"13580:131:65"},"variableNames":[{"name":"tail","nativeSrc":"13572:4:65","nodeType":"YulIdentifier","src":"13572:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13299:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13450:9:65","nodeType":"YulTypedName","src":"13450:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13465:4:65","nodeType":"YulTypedName","src":"13465:4:65","type":""}],"src":"13299:419:65"},{"body":{"nativeSrc":"13830:118:65","nodeType":"YulBlock","src":"13830:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13852:6:65","nodeType":"YulIdentifier","src":"13852:6:65"},{"kind":"number","nativeSrc":"13860:1:65","nodeType":"YulLiteral","src":"13860:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13848:3:65","nodeType":"YulIdentifier","src":"13848:3:65"},"nativeSrc":"13848:14:65","nodeType":"YulFunctionCall","src":"13848:14:65"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"13864:34:65","nodeType":"YulLiteral","src":"13864:34:65","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"13841:6:65","nodeType":"YulIdentifier","src":"13841:6:65"},"nativeSrc":"13841:58:65","nodeType":"YulFunctionCall","src":"13841:58:65"},"nativeSrc":"13841:58:65","nodeType":"YulExpressionStatement","src":"13841:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13920:6:65","nodeType":"YulIdentifier","src":"13920:6:65"},{"kind":"number","nativeSrc":"13928:2:65","nodeType":"YulLiteral","src":"13928:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13916:3:65","nodeType":"YulIdentifier","src":"13916:3:65"},"nativeSrc":"13916:15:65","nodeType":"YulFunctionCall","src":"13916:15:65"},{"hexValue":"6472657373","kind":"string","nativeSrc":"13933:7:65","nodeType":"YulLiteral","src":"13933:7:65","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"13909:6:65","nodeType":"YulIdentifier","src":"13909:6:65"},"nativeSrc":"13909:32:65","nodeType":"YulFunctionCall","src":"13909:32:65"},"nativeSrc":"13909:32:65","nodeType":"YulExpressionStatement","src":"13909:32:65"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"13724:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13822:6:65","nodeType":"YulTypedName","src":"13822:6:65","type":""}],"src":"13724:224:65"},{"body":{"nativeSrc":"14100:220:65","nodeType":"YulBlock","src":"14100:220:65","statements":[{"nativeSrc":"14110:74:65","nodeType":"YulAssignment","src":"14110:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"14176:3:65","nodeType":"YulIdentifier","src":"14176:3:65"},{"kind":"number","nativeSrc":"14181:2:65","nodeType":"YulLiteral","src":"14181:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14117:58:65","nodeType":"YulIdentifier","src":"14117:58:65"},"nativeSrc":"14117:67:65","nodeType":"YulFunctionCall","src":"14117:67:65"},"variableNames":[{"name":"pos","nativeSrc":"14110:3:65","nodeType":"YulIdentifier","src":"14110:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14282:3:65","nodeType":"YulIdentifier","src":"14282:3:65"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"14193:88:65","nodeType":"YulIdentifier","src":"14193:88:65"},"nativeSrc":"14193:93:65","nodeType":"YulFunctionCall","src":"14193:93:65"},"nativeSrc":"14193:93:65","nodeType":"YulExpressionStatement","src":"14193:93:65"},{"nativeSrc":"14295:19:65","nodeType":"YulAssignment","src":"14295:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"14306:3:65","nodeType":"YulIdentifier","src":"14306:3:65"},{"kind":"number","nativeSrc":"14311:2:65","nodeType":"YulLiteral","src":"14311:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14302:3:65","nodeType":"YulIdentifier","src":"14302:3:65"},"nativeSrc":"14302:12:65","nodeType":"YulFunctionCall","src":"14302:12:65"},"variableNames":[{"name":"end","nativeSrc":"14295:3:65","nodeType":"YulIdentifier","src":"14295:3:65"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"13954:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14088:3:65","nodeType":"YulTypedName","src":"14088:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14096:3:65","nodeType":"YulTypedName","src":"14096:3:65","type":""}],"src":"13954:366:65"},{"body":{"nativeSrc":"14497:248:65","nodeType":"YulBlock","src":"14497:248:65","statements":[{"nativeSrc":"14507:26:65","nodeType":"YulAssignment","src":"14507:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14519:9:65","nodeType":"YulIdentifier","src":"14519:9:65"},{"kind":"number","nativeSrc":"14530:2:65","nodeType":"YulLiteral","src":"14530:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14515:3:65","nodeType":"YulIdentifier","src":"14515:3:65"},"nativeSrc":"14515:18:65","nodeType":"YulFunctionCall","src":"14515:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14507:4:65","nodeType":"YulIdentifier","src":"14507:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14554:9:65","nodeType":"YulIdentifier","src":"14554:9:65"},{"kind":"number","nativeSrc":"14565:1:65","nodeType":"YulLiteral","src":"14565:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14550:3:65","nodeType":"YulIdentifier","src":"14550:3:65"},"nativeSrc":"14550:17:65","nodeType":"YulFunctionCall","src":"14550:17:65"},{"arguments":[{"name":"tail","nativeSrc":"14573:4:65","nodeType":"YulIdentifier","src":"14573:4:65"},{"name":"headStart","nativeSrc":"14579:9:65","nodeType":"YulIdentifier","src":"14579:9:65"}],"functionName":{"name":"sub","nativeSrc":"14569:3:65","nodeType":"YulIdentifier","src":"14569:3:65"},"nativeSrc":"14569:20:65","nodeType":"YulFunctionCall","src":"14569:20:65"}],"functionName":{"name":"mstore","nativeSrc":"14543:6:65","nodeType":"YulIdentifier","src":"14543:6:65"},"nativeSrc":"14543:47:65","nodeType":"YulFunctionCall","src":"14543:47:65"},"nativeSrc":"14543:47:65","nodeType":"YulExpressionStatement","src":"14543:47:65"},{"nativeSrc":"14599:139:65","nodeType":"YulAssignment","src":"14599:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"14733:4:65","nodeType":"YulIdentifier","src":"14733:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"14607:124:65","nodeType":"YulIdentifier","src":"14607:124:65"},"nativeSrc":"14607:131:65","nodeType":"YulFunctionCall","src":"14607:131:65"},"variableNames":[{"name":"tail","nativeSrc":"14599:4:65","nodeType":"YulIdentifier","src":"14599:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14326:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14477:9:65","nodeType":"YulTypedName","src":"14477:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14492:4:65","nodeType":"YulTypedName","src":"14492:4:65","type":""}],"src":"14326:419:65"},{"body":{"nativeSrc":"14857:116:65","nodeType":"YulBlock","src":"14857:116:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14879:6:65","nodeType":"YulIdentifier","src":"14879:6:65"},{"kind":"number","nativeSrc":"14887:1:65","nodeType":"YulLiteral","src":"14887:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14875:3:65","nodeType":"YulIdentifier","src":"14875:3:65"},"nativeSrc":"14875:14:65","nodeType":"YulFunctionCall","src":"14875:14:65"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"14891:34:65","nodeType":"YulLiteral","src":"14891:34:65","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"14868:6:65","nodeType":"YulIdentifier","src":"14868:6:65"},"nativeSrc":"14868:58:65","nodeType":"YulFunctionCall","src":"14868:58:65"},"nativeSrc":"14868:58:65","nodeType":"YulExpressionStatement","src":"14868:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14947:6:65","nodeType":"YulIdentifier","src":"14947:6:65"},{"kind":"number","nativeSrc":"14955:2:65","nodeType":"YulLiteral","src":"14955:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14943:3:65","nodeType":"YulIdentifier","src":"14943:3:65"},"nativeSrc":"14943:15:65","nodeType":"YulFunctionCall","src":"14943:15:65"},{"hexValue":"657373","kind":"string","nativeSrc":"14960:5:65","nodeType":"YulLiteral","src":"14960:5:65","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"14936:6:65","nodeType":"YulIdentifier","src":"14936:6:65"},"nativeSrc":"14936:30:65","nodeType":"YulFunctionCall","src":"14936:30:65"},"nativeSrc":"14936:30:65","nodeType":"YulExpressionStatement","src":"14936:30:65"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"14751:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14849:6:65","nodeType":"YulTypedName","src":"14849:6:65","type":""}],"src":"14751:222:65"},{"body":{"nativeSrc":"15125:220:65","nodeType":"YulBlock","src":"15125:220:65","statements":[{"nativeSrc":"15135:74:65","nodeType":"YulAssignment","src":"15135:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"15201:3:65","nodeType":"YulIdentifier","src":"15201:3:65"},{"kind":"number","nativeSrc":"15206:2:65","nodeType":"YulLiteral","src":"15206:2:65","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"15142:58:65","nodeType":"YulIdentifier","src":"15142:58:65"},"nativeSrc":"15142:67:65","nodeType":"YulFunctionCall","src":"15142:67:65"},"variableNames":[{"name":"pos","nativeSrc":"15135:3:65","nodeType":"YulIdentifier","src":"15135:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15307:3:65","nodeType":"YulIdentifier","src":"15307:3:65"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"15218:88:65","nodeType":"YulIdentifier","src":"15218:88:65"},"nativeSrc":"15218:93:65","nodeType":"YulFunctionCall","src":"15218:93:65"},"nativeSrc":"15218:93:65","nodeType":"YulExpressionStatement","src":"15218:93:65"},{"nativeSrc":"15320:19:65","nodeType":"YulAssignment","src":"15320:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"15331:3:65","nodeType":"YulIdentifier","src":"15331:3:65"},{"kind":"number","nativeSrc":"15336:2:65","nodeType":"YulLiteral","src":"15336:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15327:3:65","nodeType":"YulIdentifier","src":"15327:3:65"},"nativeSrc":"15327:12:65","nodeType":"YulFunctionCall","src":"15327:12:65"},"variableNames":[{"name":"end","nativeSrc":"15320:3:65","nodeType":"YulIdentifier","src":"15320:3:65"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"14979:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15113:3:65","nodeType":"YulTypedName","src":"15113:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15121:3:65","nodeType":"YulTypedName","src":"15121:3:65","type":""}],"src":"14979:366:65"},{"body":{"nativeSrc":"15522:248:65","nodeType":"YulBlock","src":"15522:248:65","statements":[{"nativeSrc":"15532:26:65","nodeType":"YulAssignment","src":"15532:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"15544:9:65","nodeType":"YulIdentifier","src":"15544:9:65"},{"kind":"number","nativeSrc":"15555:2:65","nodeType":"YulLiteral","src":"15555:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15540:3:65","nodeType":"YulIdentifier","src":"15540:3:65"},"nativeSrc":"15540:18:65","nodeType":"YulFunctionCall","src":"15540:18:65"},"variableNames":[{"name":"tail","nativeSrc":"15532:4:65","nodeType":"YulIdentifier","src":"15532:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15579:9:65","nodeType":"YulIdentifier","src":"15579:9:65"},{"kind":"number","nativeSrc":"15590:1:65","nodeType":"YulLiteral","src":"15590:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15575:3:65","nodeType":"YulIdentifier","src":"15575:3:65"},"nativeSrc":"15575:17:65","nodeType":"YulFunctionCall","src":"15575:17:65"},{"arguments":[{"name":"tail","nativeSrc":"15598:4:65","nodeType":"YulIdentifier","src":"15598:4:65"},{"name":"headStart","nativeSrc":"15604:9:65","nodeType":"YulIdentifier","src":"15604:9:65"}],"functionName":{"name":"sub","nativeSrc":"15594:3:65","nodeType":"YulIdentifier","src":"15594:3:65"},"nativeSrc":"15594:20:65","nodeType":"YulFunctionCall","src":"15594:20:65"}],"functionName":{"name":"mstore","nativeSrc":"15568:6:65","nodeType":"YulIdentifier","src":"15568:6:65"},"nativeSrc":"15568:47:65","nodeType":"YulFunctionCall","src":"15568:47:65"},"nativeSrc":"15568:47:65","nodeType":"YulExpressionStatement","src":"15568:47:65"},{"nativeSrc":"15624:139:65","nodeType":"YulAssignment","src":"15624:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"15758:4:65","nodeType":"YulIdentifier","src":"15758:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"15632:124:65","nodeType":"YulIdentifier","src":"15632:124:65"},"nativeSrc":"15632:131:65","nodeType":"YulFunctionCall","src":"15632:131:65"},"variableNames":[{"name":"tail","nativeSrc":"15624:4:65","nodeType":"YulIdentifier","src":"15624:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"15351:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15502:9:65","nodeType":"YulTypedName","src":"15502:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15517:4:65","nodeType":"YulTypedName","src":"15517:4:65","type":""}],"src":"15351:419:65"},{"body":{"nativeSrc":"15882:119:65","nodeType":"YulBlock","src":"15882:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15904:6:65","nodeType":"YulIdentifier","src":"15904:6:65"},{"kind":"number","nativeSrc":"15912:1:65","nodeType":"YulLiteral","src":"15912:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15900:3:65","nodeType":"YulIdentifier","src":"15900:3:65"},"nativeSrc":"15900:14:65","nodeType":"YulFunctionCall","src":"15900:14:65"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"15916:34:65","nodeType":"YulLiteral","src":"15916:34:65","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"15893:6:65","nodeType":"YulIdentifier","src":"15893:6:65"},"nativeSrc":"15893:58:65","nodeType":"YulFunctionCall","src":"15893:58:65"},"nativeSrc":"15893:58:65","nodeType":"YulExpressionStatement","src":"15893:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"15972:6:65","nodeType":"YulIdentifier","src":"15972:6:65"},{"kind":"number","nativeSrc":"15980:2:65","nodeType":"YulLiteral","src":"15980:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15968:3:65","nodeType":"YulIdentifier","src":"15968:3:65"},"nativeSrc":"15968:15:65","nodeType":"YulFunctionCall","src":"15968:15:65"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"15985:8:65","nodeType":"YulLiteral","src":"15985:8:65","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"15961:6:65","nodeType":"YulIdentifier","src":"15961:6:65"},"nativeSrc":"15961:33:65","nodeType":"YulFunctionCall","src":"15961:33:65"},"nativeSrc":"15961:33:65","nodeType":"YulExpressionStatement","src":"15961:33:65"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"15776:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"15874:6:65","nodeType":"YulTypedName","src":"15874:6:65","type":""}],"src":"15776:225:65"},{"body":{"nativeSrc":"16153:220:65","nodeType":"YulBlock","src":"16153:220:65","statements":[{"nativeSrc":"16163:74:65","nodeType":"YulAssignment","src":"16163:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"16229:3:65","nodeType":"YulIdentifier","src":"16229:3:65"},{"kind":"number","nativeSrc":"16234:2:65","nodeType":"YulLiteral","src":"16234:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"16170:58:65","nodeType":"YulIdentifier","src":"16170:58:65"},"nativeSrc":"16170:67:65","nodeType":"YulFunctionCall","src":"16170:67:65"},"variableNames":[{"name":"pos","nativeSrc":"16163:3:65","nodeType":"YulIdentifier","src":"16163:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16335:3:65","nodeType":"YulIdentifier","src":"16335:3:65"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"16246:88:65","nodeType":"YulIdentifier","src":"16246:88:65"},"nativeSrc":"16246:93:65","nodeType":"YulFunctionCall","src":"16246:93:65"},"nativeSrc":"16246:93:65","nodeType":"YulExpressionStatement","src":"16246:93:65"},{"nativeSrc":"16348:19:65","nodeType":"YulAssignment","src":"16348:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"16359:3:65","nodeType":"YulIdentifier","src":"16359:3:65"},{"kind":"number","nativeSrc":"16364:2:65","nodeType":"YulLiteral","src":"16364:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16355:3:65","nodeType":"YulIdentifier","src":"16355:3:65"},"nativeSrc":"16355:12:65","nodeType":"YulFunctionCall","src":"16355:12:65"},"variableNames":[{"name":"end","nativeSrc":"16348:3:65","nodeType":"YulIdentifier","src":"16348:3:65"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"16007:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16141:3:65","nodeType":"YulTypedName","src":"16141:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16149:3:65","nodeType":"YulTypedName","src":"16149:3:65","type":""}],"src":"16007:366:65"},{"body":{"nativeSrc":"16550:248:65","nodeType":"YulBlock","src":"16550:248:65","statements":[{"nativeSrc":"16560:26:65","nodeType":"YulAssignment","src":"16560:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16572:9:65","nodeType":"YulIdentifier","src":"16572:9:65"},{"kind":"number","nativeSrc":"16583:2:65","nodeType":"YulLiteral","src":"16583:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16568:3:65","nodeType":"YulIdentifier","src":"16568:3:65"},"nativeSrc":"16568:18:65","nodeType":"YulFunctionCall","src":"16568:18:65"},"variableNames":[{"name":"tail","nativeSrc":"16560:4:65","nodeType":"YulIdentifier","src":"16560:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16607:9:65","nodeType":"YulIdentifier","src":"16607:9:65"},{"kind":"number","nativeSrc":"16618:1:65","nodeType":"YulLiteral","src":"16618:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16603:3:65","nodeType":"YulIdentifier","src":"16603:3:65"},"nativeSrc":"16603:17:65","nodeType":"YulFunctionCall","src":"16603:17:65"},{"arguments":[{"name":"tail","nativeSrc":"16626:4:65","nodeType":"YulIdentifier","src":"16626:4:65"},{"name":"headStart","nativeSrc":"16632:9:65","nodeType":"YulIdentifier","src":"16632:9:65"}],"functionName":{"name":"sub","nativeSrc":"16622:3:65","nodeType":"YulIdentifier","src":"16622:3:65"},"nativeSrc":"16622:20:65","nodeType":"YulFunctionCall","src":"16622:20:65"}],"functionName":{"name":"mstore","nativeSrc":"16596:6:65","nodeType":"YulIdentifier","src":"16596:6:65"},"nativeSrc":"16596:47:65","nodeType":"YulFunctionCall","src":"16596:47:65"},"nativeSrc":"16596:47:65","nodeType":"YulExpressionStatement","src":"16596:47:65"},{"nativeSrc":"16652:139:65","nodeType":"YulAssignment","src":"16652:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"16786:4:65","nodeType":"YulIdentifier","src":"16786:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"16660:124:65","nodeType":"YulIdentifier","src":"16660:124:65"},"nativeSrc":"16660:131:65","nodeType":"YulFunctionCall","src":"16660:131:65"},"variableNames":[{"name":"tail","nativeSrc":"16652:4:65","nodeType":"YulIdentifier","src":"16652:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16379:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16530:9:65","nodeType":"YulTypedName","src":"16530:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16545:4:65","nodeType":"YulTypedName","src":"16545:4:65","type":""}],"src":"16379:419:65"},{"body":{"nativeSrc":"16950:277:65","nodeType":"YulBlock","src":"16950:277:65","statements":[{"nativeSrc":"16960:26:65","nodeType":"YulAssignment","src":"16960:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"16972:9:65","nodeType":"YulIdentifier","src":"16972:9:65"},{"kind":"number","nativeSrc":"16983:2:65","nodeType":"YulLiteral","src":"16983:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16968:3:65","nodeType":"YulIdentifier","src":"16968:3:65"},"nativeSrc":"16968:18:65","nodeType":"YulFunctionCall","src":"16968:18:65"},"variableNames":[{"name":"tail","nativeSrc":"16960:4:65","nodeType":"YulIdentifier","src":"16960:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17040:6:65","nodeType":"YulIdentifier","src":"17040:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"17053:9:65","nodeType":"YulIdentifier","src":"17053:9:65"},{"kind":"number","nativeSrc":"17064:1:65","nodeType":"YulLiteral","src":"17064:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17049:3:65","nodeType":"YulIdentifier","src":"17049:3:65"},"nativeSrc":"17049:17:65","nodeType":"YulFunctionCall","src":"17049:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"16996:43:65","nodeType":"YulIdentifier","src":"16996:43:65"},"nativeSrc":"16996:71:65","nodeType":"YulFunctionCall","src":"16996:71:65"},"nativeSrc":"16996:71:65","nodeType":"YulExpressionStatement","src":"16996:71:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17088:9:65","nodeType":"YulIdentifier","src":"17088:9:65"},{"kind":"number","nativeSrc":"17099:2:65","nodeType":"YulLiteral","src":"17099:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17084:3:65","nodeType":"YulIdentifier","src":"17084:3:65"},"nativeSrc":"17084:18:65","nodeType":"YulFunctionCall","src":"17084:18:65"},{"arguments":[{"name":"tail","nativeSrc":"17108:4:65","nodeType":"YulIdentifier","src":"17108:4:65"},{"name":"headStart","nativeSrc":"17114:9:65","nodeType":"YulIdentifier","src":"17114:9:65"}],"functionName":{"name":"sub","nativeSrc":"17104:3:65","nodeType":"YulIdentifier","src":"17104:3:65"},"nativeSrc":"17104:20:65","nodeType":"YulFunctionCall","src":"17104:20:65"}],"functionName":{"name":"mstore","nativeSrc":"17077:6:65","nodeType":"YulIdentifier","src":"17077:6:65"},"nativeSrc":"17077:48:65","nodeType":"YulFunctionCall","src":"17077:48:65"},"nativeSrc":"17077:48:65","nodeType":"YulExpressionStatement","src":"17077:48:65"},{"nativeSrc":"17134:86:65","nodeType":"YulAssignment","src":"17134:86:65","value":{"arguments":[{"name":"value1","nativeSrc":"17206:6:65","nodeType":"YulIdentifier","src":"17206:6:65"},{"name":"tail","nativeSrc":"17215:4:65","nodeType":"YulIdentifier","src":"17215:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"17142:63:65","nodeType":"YulIdentifier","src":"17142:63:65"},"nativeSrc":"17142:78:65","nodeType":"YulFunctionCall","src":"17142:78:65"},"variableNames":[{"name":"tail","nativeSrc":"17134:4:65","nodeType":"YulIdentifier","src":"17134:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16804:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16914:9:65","nodeType":"YulTypedName","src":"16914:9:65","type":""},{"name":"value1","nativeSrc":"16926:6:65","nodeType":"YulTypedName","src":"16926:6:65","type":""},{"name":"value0","nativeSrc":"16934:6:65","nodeType":"YulTypedName","src":"16934:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16945:4:65","nodeType":"YulTypedName","src":"16945:4:65","type":""}],"src":"16804:423:65"},{"body":{"nativeSrc":"17293:77:65","nodeType":"YulBlock","src":"17293:77:65","statements":[{"nativeSrc":"17303:22:65","nodeType":"YulAssignment","src":"17303:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"17318:6:65","nodeType":"YulIdentifier","src":"17318:6:65"}],"functionName":{"name":"mload","nativeSrc":"17312:5:65","nodeType":"YulIdentifier","src":"17312:5:65"},"nativeSrc":"17312:13:65","nodeType":"YulFunctionCall","src":"17312:13:65"},"variableNames":[{"name":"value","nativeSrc":"17303:5:65","nodeType":"YulIdentifier","src":"17303:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17358:5:65","nodeType":"YulIdentifier","src":"17358:5:65"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"17334:23:65","nodeType":"YulIdentifier","src":"17334:23:65"},"nativeSrc":"17334:30:65","nodeType":"YulFunctionCall","src":"17334:30:65"},"nativeSrc":"17334:30:65","nodeType":"YulExpressionStatement","src":"17334:30:65"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17233:137:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17271:6:65","nodeType":"YulTypedName","src":"17271:6:65","type":""},{"name":"end","nativeSrc":"17279:3:65","nodeType":"YulTypedName","src":"17279:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17287:5:65","nodeType":"YulTypedName","src":"17287:5:65","type":""}],"src":"17233:137:65"},{"body":{"nativeSrc":"17450:271:65","nodeType":"YulBlock","src":"17450:271:65","statements":[{"body":{"nativeSrc":"17496:83:65","nodeType":"YulBlock","src":"17496:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17498:77:65","nodeType":"YulIdentifier","src":"17498:77:65"},"nativeSrc":"17498:79:65","nodeType":"YulFunctionCall","src":"17498:79:65"},"nativeSrc":"17498:79:65","nodeType":"YulExpressionStatement","src":"17498:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17471:7:65","nodeType":"YulIdentifier","src":"17471:7:65"},{"name":"headStart","nativeSrc":"17480:9:65","nodeType":"YulIdentifier","src":"17480:9:65"}],"functionName":{"name":"sub","nativeSrc":"17467:3:65","nodeType":"YulIdentifier","src":"17467:3:65"},"nativeSrc":"17467:23:65","nodeType":"YulFunctionCall","src":"17467:23:65"},{"kind":"number","nativeSrc":"17492:2:65","nodeType":"YulLiteral","src":"17492:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17463:3:65","nodeType":"YulIdentifier","src":"17463:3:65"},"nativeSrc":"17463:32:65","nodeType":"YulFunctionCall","src":"17463:32:65"},"nativeSrc":"17460:119:65","nodeType":"YulIf","src":"17460:119:65"},{"nativeSrc":"17589:125:65","nodeType":"YulBlock","src":"17589:125:65","statements":[{"nativeSrc":"17604:15:65","nodeType":"YulVariableDeclaration","src":"17604:15:65","value":{"kind":"number","nativeSrc":"17618:1:65","nodeType":"YulLiteral","src":"17618:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17608:6:65","nodeType":"YulTypedName","src":"17608:6:65","type":""}]},{"nativeSrc":"17633:71:65","nodeType":"YulAssignment","src":"17633:71:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17676:9:65","nodeType":"YulIdentifier","src":"17676:9:65"},{"name":"offset","nativeSrc":"17687:6:65","nodeType":"YulIdentifier","src":"17687:6:65"}],"functionName":{"name":"add","nativeSrc":"17672:3:65","nodeType":"YulIdentifier","src":"17672:3:65"},"nativeSrc":"17672:22:65","nodeType":"YulFunctionCall","src":"17672:22:65"},{"name":"dataEnd","nativeSrc":"17696:7:65","nodeType":"YulIdentifier","src":"17696:7:65"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17643:28:65","nodeType":"YulIdentifier","src":"17643:28:65"},"nativeSrc":"17643:61:65","nodeType":"YulFunctionCall","src":"17643:61:65"},"variableNames":[{"name":"value0","nativeSrc":"17633:6:65","nodeType":"YulIdentifier","src":"17633:6:65"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"17376:345:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17420:9:65","nodeType":"YulTypedName","src":"17420:9:65","type":""},{"name":"dataEnd","nativeSrc":"17431:7:65","nodeType":"YulTypedName","src":"17431:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17443:6:65","nodeType":"YulTypedName","src":"17443:6:65","type":""}],"src":"17376:345:65"},{"body":{"nativeSrc":"17833:60:65","nodeType":"YulBlock","src":"17833:60:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"17855:6:65","nodeType":"YulIdentifier","src":"17855:6:65"},{"kind":"number","nativeSrc":"17863:1:65","nodeType":"YulLiteral","src":"17863:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17851:3:65","nodeType":"YulIdentifier","src":"17851:3:65"},"nativeSrc":"17851:14:65","nodeType":"YulFunctionCall","src":"17851:14:65"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nativeSrc":"17867:18:65","nodeType":"YulLiteral","src":"17867:18:65","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nativeSrc":"17844:6:65","nodeType":"YulIdentifier","src":"17844:6:65"},"nativeSrc":"17844:42:65","nodeType":"YulFunctionCall","src":"17844:42:65"},"nativeSrc":"17844:42:65","nodeType":"YulExpressionStatement","src":"17844:42:65"}]},"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"17727:166:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"17825:6:65","nodeType":"YulTypedName","src":"17825:6:65","type":""}],"src":"17727:166:65"},{"body":{"nativeSrc":"18045:220:65","nodeType":"YulBlock","src":"18045:220:65","statements":[{"nativeSrc":"18055:74:65","nodeType":"YulAssignment","src":"18055:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"18121:3:65","nodeType":"YulIdentifier","src":"18121:3:65"},{"kind":"number","nativeSrc":"18126:2:65","nodeType":"YulLiteral","src":"18126:2:65","type":"","value":"16"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"18062:58:65","nodeType":"YulIdentifier","src":"18062:58:65"},"nativeSrc":"18062:67:65","nodeType":"YulFunctionCall","src":"18062:67:65"},"variableNames":[{"name":"pos","nativeSrc":"18055:3:65","nodeType":"YulIdentifier","src":"18055:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"18227:3:65","nodeType":"YulIdentifier","src":"18227:3:65"}],"functionName":{"name":"store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","nativeSrc":"18138:88:65","nodeType":"YulIdentifier","src":"18138:88:65"},"nativeSrc":"18138:93:65","nodeType":"YulFunctionCall","src":"18138:93:65"},"nativeSrc":"18138:93:65","nodeType":"YulExpressionStatement","src":"18138:93:65"},{"nativeSrc":"18240:19:65","nodeType":"YulAssignment","src":"18240:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"18251:3:65","nodeType":"YulIdentifier","src":"18251:3:65"},{"kind":"number","nativeSrc":"18256:2:65","nodeType":"YulLiteral","src":"18256:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18247:3:65","nodeType":"YulIdentifier","src":"18247:3:65"},"nativeSrc":"18247:12:65","nodeType":"YulFunctionCall","src":"18247:12:65"},"variableNames":[{"name":"end","nativeSrc":"18240:3:65","nodeType":"YulIdentifier","src":"18240:3:65"}]}]},"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"17899:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18033:3:65","nodeType":"YulTypedName","src":"18033:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18041:3:65","nodeType":"YulTypedName","src":"18041:3:65","type":""}],"src":"17899:366:65"},{"body":{"nativeSrc":"18442:248:65","nodeType":"YulBlock","src":"18442:248:65","statements":[{"nativeSrc":"18452:26:65","nodeType":"YulAssignment","src":"18452:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"18464:9:65","nodeType":"YulIdentifier","src":"18464:9:65"},{"kind":"number","nativeSrc":"18475:2:65","nodeType":"YulLiteral","src":"18475:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18460:3:65","nodeType":"YulIdentifier","src":"18460:3:65"},"nativeSrc":"18460:18:65","nodeType":"YulFunctionCall","src":"18460:18:65"},"variableNames":[{"name":"tail","nativeSrc":"18452:4:65","nodeType":"YulIdentifier","src":"18452:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18499:9:65","nodeType":"YulIdentifier","src":"18499:9:65"},{"kind":"number","nativeSrc":"18510:1:65","nodeType":"YulLiteral","src":"18510:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18495:3:65","nodeType":"YulIdentifier","src":"18495:3:65"},"nativeSrc":"18495:17:65","nodeType":"YulFunctionCall","src":"18495:17:65"},{"arguments":[{"name":"tail","nativeSrc":"18518:4:65","nodeType":"YulIdentifier","src":"18518:4:65"},{"name":"headStart","nativeSrc":"18524:9:65","nodeType":"YulIdentifier","src":"18524:9:65"}],"functionName":{"name":"sub","nativeSrc":"18514:3:65","nodeType":"YulIdentifier","src":"18514:3:65"},"nativeSrc":"18514:20:65","nodeType":"YulFunctionCall","src":"18514:20:65"}],"functionName":{"name":"mstore","nativeSrc":"18488:6:65","nodeType":"YulIdentifier","src":"18488:6:65"},"nativeSrc":"18488:47:65","nodeType":"YulFunctionCall","src":"18488:47:65"},"nativeSrc":"18488:47:65","nodeType":"YulExpressionStatement","src":"18488:47:65"},{"nativeSrc":"18544:139:65","nodeType":"YulAssignment","src":"18544:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"18678:4:65","nodeType":"YulIdentifier","src":"18678:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack","nativeSrc":"18552:124:65","nodeType":"YulIdentifier","src":"18552:124:65"},"nativeSrc":"18552:131:65","nodeType":"YulFunctionCall","src":"18552:131:65"},"variableNames":[{"name":"tail","nativeSrc":"18544:4:65","nodeType":"YulIdentifier","src":"18544:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"18271:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18422:9:65","nodeType":"YulTypedName","src":"18422:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18437:4:65","nodeType":"YulTypedName","src":"18437:4:65","type":""}],"src":"18271:419:65"},{"body":{"nativeSrc":"18802:75:65","nodeType":"YulBlock","src":"18802:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"18824:6:65","nodeType":"YulIdentifier","src":"18824:6:65"},{"kind":"number","nativeSrc":"18832:1:65","nodeType":"YulLiteral","src":"18832:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18820:3:65","nodeType":"YulIdentifier","src":"18820:3:65"},"nativeSrc":"18820:14:65","nodeType":"YulFunctionCall","src":"18820:14:65"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"18836:33:65","nodeType":"YulLiteral","src":"18836:33:65","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"18813:6:65","nodeType":"YulIdentifier","src":"18813:6:65"},"nativeSrc":"18813:57:65","nodeType":"YulFunctionCall","src":"18813:57:65"},"nativeSrc":"18813:57:65","nodeType":"YulExpressionStatement","src":"18813:57:65"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"18696:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18794:6:65","nodeType":"YulTypedName","src":"18794:6:65","type":""}],"src":"18696:181:65"},{"body":{"nativeSrc":"19029:220:65","nodeType":"YulBlock","src":"19029:220:65","statements":[{"nativeSrc":"19039:74:65","nodeType":"YulAssignment","src":"19039:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"19105:3:65","nodeType":"YulIdentifier","src":"19105:3:65"},{"kind":"number","nativeSrc":"19110:2:65","nodeType":"YulLiteral","src":"19110:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"19046:58:65","nodeType":"YulIdentifier","src":"19046:58:65"},"nativeSrc":"19046:67:65","nodeType":"YulFunctionCall","src":"19046:67:65"},"variableNames":[{"name":"pos","nativeSrc":"19039:3:65","nodeType":"YulIdentifier","src":"19039:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"19211:3:65","nodeType":"YulIdentifier","src":"19211:3:65"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"19122:88:65","nodeType":"YulIdentifier","src":"19122:88:65"},"nativeSrc":"19122:93:65","nodeType":"YulFunctionCall","src":"19122:93:65"},"nativeSrc":"19122:93:65","nodeType":"YulExpressionStatement","src":"19122:93:65"},{"nativeSrc":"19224:19:65","nodeType":"YulAssignment","src":"19224:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"19235:3:65","nodeType":"YulIdentifier","src":"19235:3:65"},{"kind":"number","nativeSrc":"19240:2:65","nodeType":"YulLiteral","src":"19240:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19231:3:65","nodeType":"YulIdentifier","src":"19231:3:65"},"nativeSrc":"19231:12:65","nodeType":"YulFunctionCall","src":"19231:12:65"},"variableNames":[{"name":"end","nativeSrc":"19224:3:65","nodeType":"YulIdentifier","src":"19224:3:65"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"18883:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19017:3:65","nodeType":"YulTypedName","src":"19017:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19025:3:65","nodeType":"YulTypedName","src":"19025:3:65","type":""}],"src":"18883:366:65"},{"body":{"nativeSrc":"19426:248:65","nodeType":"YulBlock","src":"19426:248:65","statements":[{"nativeSrc":"19436:26:65","nodeType":"YulAssignment","src":"19436:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"19448:9:65","nodeType":"YulIdentifier","src":"19448:9:65"},{"kind":"number","nativeSrc":"19459:2:65","nodeType":"YulLiteral","src":"19459:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19444:3:65","nodeType":"YulIdentifier","src":"19444:3:65"},"nativeSrc":"19444:18:65","nodeType":"YulFunctionCall","src":"19444:18:65"},"variableNames":[{"name":"tail","nativeSrc":"19436:4:65","nodeType":"YulIdentifier","src":"19436:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19483:9:65","nodeType":"YulIdentifier","src":"19483:9:65"},{"kind":"number","nativeSrc":"19494:1:65","nodeType":"YulLiteral","src":"19494:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19479:3:65","nodeType":"YulIdentifier","src":"19479:3:65"},"nativeSrc":"19479:17:65","nodeType":"YulFunctionCall","src":"19479:17:65"},{"arguments":[{"name":"tail","nativeSrc":"19502:4:65","nodeType":"YulIdentifier","src":"19502:4:65"},{"name":"headStart","nativeSrc":"19508:9:65","nodeType":"YulIdentifier","src":"19508:9:65"}],"functionName":{"name":"sub","nativeSrc":"19498:3:65","nodeType":"YulIdentifier","src":"19498:3:65"},"nativeSrc":"19498:20:65","nodeType":"YulFunctionCall","src":"19498:20:65"}],"functionName":{"name":"mstore","nativeSrc":"19472:6:65","nodeType":"YulIdentifier","src":"19472:6:65"},"nativeSrc":"19472:47:65","nodeType":"YulFunctionCall","src":"19472:47:65"},"nativeSrc":"19472:47:65","nodeType":"YulExpressionStatement","src":"19472:47:65"},{"nativeSrc":"19528:139:65","nodeType":"YulAssignment","src":"19528:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"19662:4:65","nodeType":"YulIdentifier","src":"19662:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"19536:124:65","nodeType":"YulIdentifier","src":"19536:124:65"},"nativeSrc":"19536:131:65","nodeType":"YulFunctionCall","src":"19536:131:65"},"variableNames":[{"name":"tail","nativeSrc":"19528:4:65","nodeType":"YulIdentifier","src":"19528:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"19255:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19406:9:65","nodeType":"YulTypedName","src":"19406:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19421:4:65","nodeType":"YulTypedName","src":"19421:4:65","type":""}],"src":"19255:419:65"},{"body":{"nativeSrc":"19786:114:65","nodeType":"YulBlock","src":"19786:114:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19808:6:65","nodeType":"YulIdentifier","src":"19808:6:65"},{"kind":"number","nativeSrc":"19816:1:65","nodeType":"YulLiteral","src":"19816:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19804:3:65","nodeType":"YulIdentifier","src":"19804:3:65"},"nativeSrc":"19804:14:65","nodeType":"YulFunctionCall","src":"19804:14:65"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nativeSrc":"19820:34:65","nodeType":"YulLiteral","src":"19820:34:65","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nativeSrc":"19797:6:65","nodeType":"YulIdentifier","src":"19797:6:65"},"nativeSrc":"19797:58:65","nodeType":"YulFunctionCall","src":"19797:58:65"},"nativeSrc":"19797:58:65","nodeType":"YulExpressionStatement","src":"19797:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"19876:6:65","nodeType":"YulIdentifier","src":"19876:6:65"},{"kind":"number","nativeSrc":"19884:2:65","nodeType":"YulLiteral","src":"19884:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19872:3:65","nodeType":"YulIdentifier","src":"19872:3:65"},"nativeSrc":"19872:15:65","nodeType":"YulFunctionCall","src":"19872:15:65"},{"hexValue":"73","kind":"string","nativeSrc":"19889:3:65","nodeType":"YulLiteral","src":"19889:3:65","type":"","value":"s"}],"functionName":{"name":"mstore","nativeSrc":"19865:6:65","nodeType":"YulIdentifier","src":"19865:6:65"},"nativeSrc":"19865:28:65","nodeType":"YulFunctionCall","src":"19865:28:65"},"nativeSrc":"19865:28:65","nodeType":"YulExpressionStatement","src":"19865:28:65"}]},"name":"store_literal_in_memory_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","nativeSrc":"19680:220:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"19778:6:65","nodeType":"YulTypedName","src":"19778:6:65","type":""}],"src":"19680:220:65"},{"body":{"nativeSrc":"20052:220:65","nodeType":"YulBlock","src":"20052:220:65","statements":[{"nativeSrc":"20062:74:65","nodeType":"YulAssignment","src":"20062:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"20128:3:65","nodeType":"YulIdentifier","src":"20128:3:65"},{"kind":"number","nativeSrc":"20133:2:65","nodeType":"YulLiteral","src":"20133:2:65","type":"","value":"33"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"20069:58:65","nodeType":"YulIdentifier","src":"20069:58:65"},"nativeSrc":"20069:67:65","nodeType":"YulFunctionCall","src":"20069:67:65"},"variableNames":[{"name":"pos","nativeSrc":"20062:3:65","nodeType":"YulIdentifier","src":"20062:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20234:3:65","nodeType":"YulIdentifier","src":"20234:3:65"}],"functionName":{"name":"store_literal_in_memory_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","nativeSrc":"20145:88:65","nodeType":"YulIdentifier","src":"20145:88:65"},"nativeSrc":"20145:93:65","nodeType":"YulFunctionCall","src":"20145:93:65"},"nativeSrc":"20145:93:65","nodeType":"YulExpressionStatement","src":"20145:93:65"},{"nativeSrc":"20247:19:65","nodeType":"YulAssignment","src":"20247:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"20258:3:65","nodeType":"YulIdentifier","src":"20258:3:65"},{"kind":"number","nativeSrc":"20263:2:65","nodeType":"YulLiteral","src":"20263:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20254:3:65","nodeType":"YulIdentifier","src":"20254:3:65"},"nativeSrc":"20254:12:65","nodeType":"YulFunctionCall","src":"20254:12:65"},"variableNames":[{"name":"end","nativeSrc":"20247:3:65","nodeType":"YulIdentifier","src":"20247:3:65"}]}]},"name":"abi_encode_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f_to_t_string_memory_ptr_fromStack","nativeSrc":"19906:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20040:3:65","nodeType":"YulTypedName","src":"20040:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20048:3:65","nodeType":"YulTypedName","src":"20048:3:65","type":""}],"src":"19906:366:65"},{"body":{"nativeSrc":"20449:248:65","nodeType":"YulBlock","src":"20449:248:65","statements":[{"nativeSrc":"20459:26:65","nodeType":"YulAssignment","src":"20459:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"20471:9:65","nodeType":"YulIdentifier","src":"20471:9:65"},{"kind":"number","nativeSrc":"20482:2:65","nodeType":"YulLiteral","src":"20482:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20467:3:65","nodeType":"YulIdentifier","src":"20467:3:65"},"nativeSrc":"20467:18:65","nodeType":"YulFunctionCall","src":"20467:18:65"},"variableNames":[{"name":"tail","nativeSrc":"20459:4:65","nodeType":"YulIdentifier","src":"20459:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20506:9:65","nodeType":"YulIdentifier","src":"20506:9:65"},{"kind":"number","nativeSrc":"20517:1:65","nodeType":"YulLiteral","src":"20517:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20502:3:65","nodeType":"YulIdentifier","src":"20502:3:65"},"nativeSrc":"20502:17:65","nodeType":"YulFunctionCall","src":"20502:17:65"},{"arguments":[{"name":"tail","nativeSrc":"20525:4:65","nodeType":"YulIdentifier","src":"20525:4:65"},{"name":"headStart","nativeSrc":"20531:9:65","nodeType":"YulIdentifier","src":"20531:9:65"}],"functionName":{"name":"sub","nativeSrc":"20521:3:65","nodeType":"YulIdentifier","src":"20521:3:65"},"nativeSrc":"20521:20:65","nodeType":"YulFunctionCall","src":"20521:20:65"}],"functionName":{"name":"mstore","nativeSrc":"20495:6:65","nodeType":"YulIdentifier","src":"20495:6:65"},"nativeSrc":"20495:47:65","nodeType":"YulFunctionCall","src":"20495:47:65"},"nativeSrc":"20495:47:65","nodeType":"YulExpressionStatement","src":"20495:47:65"},{"nativeSrc":"20551:139:65","nodeType":"YulAssignment","src":"20551:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"20685:4:65","nodeType":"YulIdentifier","src":"20685:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f_to_t_string_memory_ptr_fromStack","nativeSrc":"20559:124:65","nodeType":"YulIdentifier","src":"20559:124:65"},"nativeSrc":"20559:131:65","nodeType":"YulFunctionCall","src":"20559:131:65"},"variableNames":[{"name":"tail","nativeSrc":"20551:4:65","nodeType":"YulIdentifier","src":"20551:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"20278:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20429:9:65","nodeType":"YulTypedName","src":"20429:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20444:4:65","nodeType":"YulTypedName","src":"20444:4:65","type":""}],"src":"20278:419:65"},{"body":{"nativeSrc":"20809:115:65","nodeType":"YulBlock","src":"20809:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"20831:6:65","nodeType":"YulIdentifier","src":"20831:6:65"},{"kind":"number","nativeSrc":"20839:1:65","nodeType":"YulLiteral","src":"20839:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20827:3:65","nodeType":"YulIdentifier","src":"20827:3:65"},"nativeSrc":"20827:14:65","nodeType":"YulFunctionCall","src":"20827:14:65"},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e","kind":"string","nativeSrc":"20843:34:65","nodeType":"YulLiteral","src":"20843:34:65","type":"","value":"ERC20: burn amount exceeds balan"}],"functionName":{"name":"mstore","nativeSrc":"20820:6:65","nodeType":"YulIdentifier","src":"20820:6:65"},"nativeSrc":"20820:58:65","nodeType":"YulFunctionCall","src":"20820:58:65"},"nativeSrc":"20820:58:65","nodeType":"YulExpressionStatement","src":"20820:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"20899:6:65","nodeType":"YulIdentifier","src":"20899:6:65"},{"kind":"number","nativeSrc":"20907:2:65","nodeType":"YulLiteral","src":"20907:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20895:3:65","nodeType":"YulIdentifier","src":"20895:3:65"},"nativeSrc":"20895:15:65","nodeType":"YulFunctionCall","src":"20895:15:65"},{"hexValue":"6365","kind":"string","nativeSrc":"20912:4:65","nodeType":"YulLiteral","src":"20912:4:65","type":"","value":"ce"}],"functionName":{"name":"mstore","nativeSrc":"20888:6:65","nodeType":"YulIdentifier","src":"20888:6:65"},"nativeSrc":"20888:29:65","nodeType":"YulFunctionCall","src":"20888:29:65"},"nativeSrc":"20888:29:65","nodeType":"YulExpressionStatement","src":"20888:29:65"}]},"name":"store_literal_in_memory_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","nativeSrc":"20703:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"20801:6:65","nodeType":"YulTypedName","src":"20801:6:65","type":""}],"src":"20703:221:65"},{"body":{"nativeSrc":"21076:220:65","nodeType":"YulBlock","src":"21076:220:65","statements":[{"nativeSrc":"21086:74:65","nodeType":"YulAssignment","src":"21086:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"21152:3:65","nodeType":"YulIdentifier","src":"21152:3:65"},{"kind":"number","nativeSrc":"21157:2:65","nodeType":"YulLiteral","src":"21157:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"21093:58:65","nodeType":"YulIdentifier","src":"21093:58:65"},"nativeSrc":"21093:67:65","nodeType":"YulFunctionCall","src":"21093:67:65"},"variableNames":[{"name":"pos","nativeSrc":"21086:3:65","nodeType":"YulIdentifier","src":"21086:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"21258:3:65","nodeType":"YulIdentifier","src":"21258:3:65"}],"functionName":{"name":"store_literal_in_memory_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","nativeSrc":"21169:88:65","nodeType":"YulIdentifier","src":"21169:88:65"},"nativeSrc":"21169:93:65","nodeType":"YulFunctionCall","src":"21169:93:65"},"nativeSrc":"21169:93:65","nodeType":"YulExpressionStatement","src":"21169:93:65"},{"nativeSrc":"21271:19:65","nodeType":"YulAssignment","src":"21271:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"21282:3:65","nodeType":"YulIdentifier","src":"21282:3:65"},{"kind":"number","nativeSrc":"21287:2:65","nodeType":"YulLiteral","src":"21287:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21278:3:65","nodeType":"YulIdentifier","src":"21278:3:65"},"nativeSrc":"21278:12:65","nodeType":"YulFunctionCall","src":"21278:12:65"},"variableNames":[{"name":"end","nativeSrc":"21271:3:65","nodeType":"YulIdentifier","src":"21271:3:65"}]}]},"name":"abi_encode_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd_to_t_string_memory_ptr_fromStack","nativeSrc":"20930:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"21064:3:65","nodeType":"YulTypedName","src":"21064:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21072:3:65","nodeType":"YulTypedName","src":"21072:3:65","type":""}],"src":"20930:366:65"},{"body":{"nativeSrc":"21473:248:65","nodeType":"YulBlock","src":"21473:248:65","statements":[{"nativeSrc":"21483:26:65","nodeType":"YulAssignment","src":"21483:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"21495:9:65","nodeType":"YulIdentifier","src":"21495:9:65"},{"kind":"number","nativeSrc":"21506:2:65","nodeType":"YulLiteral","src":"21506:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21491:3:65","nodeType":"YulIdentifier","src":"21491:3:65"},"nativeSrc":"21491:18:65","nodeType":"YulFunctionCall","src":"21491:18:65"},"variableNames":[{"name":"tail","nativeSrc":"21483:4:65","nodeType":"YulIdentifier","src":"21483:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21530:9:65","nodeType":"YulIdentifier","src":"21530:9:65"},{"kind":"number","nativeSrc":"21541:1:65","nodeType":"YulLiteral","src":"21541:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21526:3:65","nodeType":"YulIdentifier","src":"21526:3:65"},"nativeSrc":"21526:17:65","nodeType":"YulFunctionCall","src":"21526:17:65"},{"arguments":[{"name":"tail","nativeSrc":"21549:4:65","nodeType":"YulIdentifier","src":"21549:4:65"},{"name":"headStart","nativeSrc":"21555:9:65","nodeType":"YulIdentifier","src":"21555:9:65"}],"functionName":{"name":"sub","nativeSrc":"21545:3:65","nodeType":"YulIdentifier","src":"21545:3:65"},"nativeSrc":"21545:20:65","nodeType":"YulFunctionCall","src":"21545:20:65"}],"functionName":{"name":"mstore","nativeSrc":"21519:6:65","nodeType":"YulIdentifier","src":"21519:6:65"},"nativeSrc":"21519:47:65","nodeType":"YulFunctionCall","src":"21519:47:65"},"nativeSrc":"21519:47:65","nodeType":"YulExpressionStatement","src":"21519:47:65"},{"nativeSrc":"21575:139:65","nodeType":"YulAssignment","src":"21575:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"21709:4:65","nodeType":"YulIdentifier","src":"21709:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd_to_t_string_memory_ptr_fromStack","nativeSrc":"21583:124:65","nodeType":"YulIdentifier","src":"21583:124:65"},"nativeSrc":"21583:131:65","nodeType":"YulFunctionCall","src":"21583:131:65"},"variableNames":[{"name":"tail","nativeSrc":"21575:4:65","nodeType":"YulIdentifier","src":"21575:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"21302:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21453:9:65","nodeType":"YulTypedName","src":"21453:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21468:4:65","nodeType":"YulTypedName","src":"21468:4:65","type":""}],"src":"21302:419:65"},{"body":{"nativeSrc":"21772:149:65","nodeType":"YulBlock","src":"21772:149:65","statements":[{"nativeSrc":"21782:25:65","nodeType":"YulAssignment","src":"21782:25:65","value":{"arguments":[{"name":"x","nativeSrc":"21805:1:65","nodeType":"YulIdentifier","src":"21805:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21787:17:65","nodeType":"YulIdentifier","src":"21787:17:65"},"nativeSrc":"21787:20:65","nodeType":"YulFunctionCall","src":"21787:20:65"},"variableNames":[{"name":"x","nativeSrc":"21782:1:65","nodeType":"YulIdentifier","src":"21782:1:65"}]},{"nativeSrc":"21816:25:65","nodeType":"YulAssignment","src":"21816:25:65","value":{"arguments":[{"name":"y","nativeSrc":"21839:1:65","nodeType":"YulIdentifier","src":"21839:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21821:17:65","nodeType":"YulIdentifier","src":"21821:17:65"},"nativeSrc":"21821:20:65","nodeType":"YulFunctionCall","src":"21821:20:65"},"variableNames":[{"name":"y","nativeSrc":"21816:1:65","nodeType":"YulIdentifier","src":"21816:1:65"}]},{"nativeSrc":"21850:17:65","nodeType":"YulAssignment","src":"21850:17:65","value":{"arguments":[{"name":"x","nativeSrc":"21862:1:65","nodeType":"YulIdentifier","src":"21862:1:65"},{"name":"y","nativeSrc":"21865:1:65","nodeType":"YulIdentifier","src":"21865:1:65"}],"functionName":{"name":"sub","nativeSrc":"21858:3:65","nodeType":"YulIdentifier","src":"21858:3:65"},"nativeSrc":"21858:9:65","nodeType":"YulFunctionCall","src":"21858:9:65"},"variableNames":[{"name":"diff","nativeSrc":"21850:4:65","nodeType":"YulIdentifier","src":"21850:4:65"}]},{"body":{"nativeSrc":"21892:22:65","nodeType":"YulBlock","src":"21892:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"21894:16:65","nodeType":"YulIdentifier","src":"21894:16:65"},"nativeSrc":"21894:18:65","nodeType":"YulFunctionCall","src":"21894:18:65"},"nativeSrc":"21894:18:65","nodeType":"YulExpressionStatement","src":"21894:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"21883:4:65","nodeType":"YulIdentifier","src":"21883:4:65"},{"name":"x","nativeSrc":"21889:1:65","nodeType":"YulIdentifier","src":"21889:1:65"}],"functionName":{"name":"gt","nativeSrc":"21880:2:65","nodeType":"YulIdentifier","src":"21880:2:65"},"nativeSrc":"21880:11:65","nodeType":"YulFunctionCall","src":"21880:11:65"},"nativeSrc":"21877:37:65","nodeType":"YulIf","src":"21877:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"21727:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21758:1:65","nodeType":"YulTypedName","src":"21758:1:65","type":""},{"name":"y","nativeSrc":"21761:1:65","nodeType":"YulTypedName","src":"21761:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21767:4:65","nodeType":"YulTypedName","src":"21767:4:65","type":""}],"src":"21727:194:65"},{"body":{"nativeSrc":"22033:64:65","nodeType":"YulBlock","src":"22033:64:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"22055:6:65","nodeType":"YulIdentifier","src":"22055:6:65"},{"kind":"number","nativeSrc":"22063:1:65","nodeType":"YulLiteral","src":"22063:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22051:3:65","nodeType":"YulIdentifier","src":"22051:3:65"},"nativeSrc":"22051:14:65","nodeType":"YulFunctionCall","src":"22051:14:65"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nativeSrc":"22067:22:65","nodeType":"YulLiteral","src":"22067:22:65","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nativeSrc":"22044:6:65","nodeType":"YulIdentifier","src":"22044:6:65"},"nativeSrc":"22044:46:65","nodeType":"YulFunctionCall","src":"22044:46:65"},"nativeSrc":"22044:46:65","nodeType":"YulExpressionStatement","src":"22044:46:65"}]},"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"21927:170:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"22025:6:65","nodeType":"YulTypedName","src":"22025:6:65","type":""}],"src":"21927:170:65"},{"body":{"nativeSrc":"22249:220:65","nodeType":"YulBlock","src":"22249:220:65","statements":[{"nativeSrc":"22259:74:65","nodeType":"YulAssignment","src":"22259:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"22325:3:65","nodeType":"YulIdentifier","src":"22325:3:65"},{"kind":"number","nativeSrc":"22330:2:65","nodeType":"YulLiteral","src":"22330:2:65","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"22266:58:65","nodeType":"YulIdentifier","src":"22266:58:65"},"nativeSrc":"22266:67:65","nodeType":"YulFunctionCall","src":"22266:67:65"},"variableNames":[{"name":"pos","nativeSrc":"22259:3:65","nodeType":"YulIdentifier","src":"22259:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"22431:3:65","nodeType":"YulIdentifier","src":"22431:3:65"}],"functionName":{"name":"store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","nativeSrc":"22342:88:65","nodeType":"YulIdentifier","src":"22342:88:65"},"nativeSrc":"22342:93:65","nodeType":"YulFunctionCall","src":"22342:93:65"},"nativeSrc":"22342:93:65","nodeType":"YulExpressionStatement","src":"22342:93:65"},{"nativeSrc":"22444:19:65","nodeType":"YulAssignment","src":"22444:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"22455:3:65","nodeType":"YulIdentifier","src":"22455:3:65"},{"kind":"number","nativeSrc":"22460:2:65","nodeType":"YulLiteral","src":"22460:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22451:3:65","nodeType":"YulIdentifier","src":"22451:3:65"},"nativeSrc":"22451:12:65","nodeType":"YulFunctionCall","src":"22451:12:65"},"variableNames":[{"name":"end","nativeSrc":"22444:3:65","nodeType":"YulIdentifier","src":"22444:3:65"}]}]},"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"22103:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22237:3:65","nodeType":"YulTypedName","src":"22237:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22245:3:65","nodeType":"YulTypedName","src":"22245:3:65","type":""}],"src":"22103:366:65"},{"body":{"nativeSrc":"22646:248:65","nodeType":"YulBlock","src":"22646:248:65","statements":[{"nativeSrc":"22656:26:65","nodeType":"YulAssignment","src":"22656:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"22668:9:65","nodeType":"YulIdentifier","src":"22668:9:65"},{"kind":"number","nativeSrc":"22679:2:65","nodeType":"YulLiteral","src":"22679:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22664:3:65","nodeType":"YulIdentifier","src":"22664:3:65"},"nativeSrc":"22664:18:65","nodeType":"YulFunctionCall","src":"22664:18:65"},"variableNames":[{"name":"tail","nativeSrc":"22656:4:65","nodeType":"YulIdentifier","src":"22656:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22703:9:65","nodeType":"YulIdentifier","src":"22703:9:65"},{"kind":"number","nativeSrc":"22714:1:65","nodeType":"YulLiteral","src":"22714:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22699:3:65","nodeType":"YulIdentifier","src":"22699:3:65"},"nativeSrc":"22699:17:65","nodeType":"YulFunctionCall","src":"22699:17:65"},{"arguments":[{"name":"tail","nativeSrc":"22722:4:65","nodeType":"YulIdentifier","src":"22722:4:65"},{"name":"headStart","nativeSrc":"22728:9:65","nodeType":"YulIdentifier","src":"22728:9:65"}],"functionName":{"name":"sub","nativeSrc":"22718:3:65","nodeType":"YulIdentifier","src":"22718:3:65"},"nativeSrc":"22718:20:65","nodeType":"YulFunctionCall","src":"22718:20:65"}],"functionName":{"name":"mstore","nativeSrc":"22692:6:65","nodeType":"YulIdentifier","src":"22692:6:65"},"nativeSrc":"22692:47:65","nodeType":"YulFunctionCall","src":"22692:47:65"},"nativeSrc":"22692:47:65","nodeType":"YulExpressionStatement","src":"22692:47:65"},{"nativeSrc":"22748:139:65","nodeType":"YulAssignment","src":"22748:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"22882:4:65","nodeType":"YulIdentifier","src":"22882:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack","nativeSrc":"22756:124:65","nodeType":"YulIdentifier","src":"22756:124:65"},"nativeSrc":"22756:131:65","nodeType":"YulFunctionCall","src":"22756:131:65"},"variableNames":[{"name":"tail","nativeSrc":"22748:4:65","nodeType":"YulIdentifier","src":"22748:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"22475:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22626:9:65","nodeType":"YulTypedName","src":"22626:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22641:4:65","nodeType":"YulTypedName","src":"22641:4:65","type":""}],"src":"22475:419:65"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n        store_literal_in_memory_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: burn from the zero addres\")\n\n        mstore(add(memPtr, 32), \"s\")\n\n    }\n\n    function abi_encode_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n        store_literal_in_memory_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: burn amount exceeds balan\")\n\n        mstore(add(memPtr, 32), \"ce\")\n\n    }\n\n    function abi_encode_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(memPtr) {\n\n        mstore(add(memPtr, 0), \"Pausable: not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n        store_literal_in_memory_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b517334116100f9578063a9059cbb11610097578063d89e2dac11610071578063d89e2dac14610381578063dd62ed3e14610394578063e47d6060146103a7578063f2fde38b146103d357600080fd5b8063a9059cbb14610348578063b4a0bdf31461035b578063c06abe771461036e57600080fd5b80639155e083116100d35780639155e0831461030757806395d89b411461031a5780639dc29fac14610322578063a457c2d71461033557600080fd5b80637b517334146102c55780638456cb59146102e55780638da5cb5b146102ed57600080fd5b8063391efe121161016657806340c10f191161014057806340c10f191461026f5780635c975abb1461028257806370a0823114610294578063715018a6146102bd57600080fd5b8063391efe121461023457806339509351146102545780633f4ba83a1461026757600080fd5b806306fdde03146101ae578063095ea7b3146101cc5780630e32cb86146101ec57806318160ddd1461020157806323b872dd14610212578063313ce56714610225575b600080fd5b6101b66103e6565b6040516101c391906111f8565b60405180910390f35b6101df6101da366004611251565b610478565b6040516101c39190611298565b6101ff6101fa3660046112a6565b610492565b005b6002545b6040516101c391906112d5565b6101df6102203660046112e3565b6104ff565b60126040516101c3919061133c565b6102056102423660046112a6565b60086020526000908152604090205481565b6101df610262366004611251565b610523565b6101ff610545565b6101ff61027d366004611251565b610579565b600554600160a01b900460ff166101df565b6102056102a23660046112a6565b6001600160a01b031660009081526020819052604090205490565b6101ff6105d0565b6102056102d33660046112a6565b60096020526000908152604090205481565b6101ff6105e2565b6005546001600160a01b03165b6040516101c39190611353565b6101ff610315366004611374565b610612565b6101b66106b0565b6101ff610330366004611251565b6106bf565b6101df610343366004611251565b610711565b6101df610356366004611251565b610757565b6006546102fa906001600160a01b031681565b6101ff61037c366004611251565b610765565b6101ff61038f3660046113a7565b610827565b6102056103a23660046113a7565b6109d3565b6101df6103b53660046112a6565b6001600160a01b031660009081526007602052604090205460ff1690565b6101ff6103e13660046112a6565b6109fe565b6060600380546103f5906113f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610421906113f0565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600033610486818585610a38565b60019150505b92915050565b61049a610aec565b6104a381610b16565b6006546040516001600160a01b038084169216907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b60003361050d858285610b3d565b610518858585610b87565b506001949350505050565b60003361048681858561053683836109d3565b6105409190611432565b610a38565b61056f60405180604001604052806009815260200168756e7061757365282960b81b815250610c82565b610577610d11565b565b610581610d60565b6105b7604051806040016040528060158152602001746d696e7428616464726573732c75696e743235362960581b815250610c82565b6105c2338383610d8a565b6105cc8282610e3e565b5050565b6105d8610aec565b6105776000610ee0565b61060a604051806040016040528060078152602001667061757365282960c81b815250610c82565b610577610f32565b6106506040518060400160405280601d81526020017f757064617465426c61636b6c69737428616464726573732c626f6f6c29000000815250610c82565b6001600160a01b03821660008181526007602052604090819020805460ff1916841515179055517f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac906106a4908490611298565b60405180910390a25050565b6060600480546103f5906113f0565b6106c7610d60565b6106fd604051806040016040528060158152602001746275726e28616464726573732c75696e743235362960581b815250610c82565b6107078282610f75565b6105cc338261103d565b6000338161071f82866109d3565b90508381101561074a5760405162461bcd60e51b81526004016107419061148a565b60405180910390fd5b6105188286868403610a38565b600033610486818585610b87565b6107a36040518060400160405280601b81526020017f7365744d696e7443617028616464726573732c75696e74323536290000000000815250610c82565b6001600160a01b0382166000908152600960205260409020548110156107dc5760405163ce89973d60e01b815260040160405180910390fd5b6001600160a01b03821660008181526008602052604090819020839055517f01a85f4ecff52e70907e25b863010bca98a9458d9f2fe9b3efb4c47d197e6448906106a49084906112d5565b6108486040518060600160405280602481526020016118be60249139610c82565b806001600160a01b0316826001600160a01b03160361087a576040516380ae98f560e01b815260040160405180910390fd5b6001600160a01b038083166000818152600860209081526040808320549486168084528184205494845260099092528083205491835282205490916108bf8383611432565b9050838111156108e257604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b0380881660009081526009602052604080822082905591881680825290829020839055905182860391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e61906109409084906112d5565b60405180910390a2876001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb8760405161098191906112d5565b60405180910390a2866001600160a01b0316886001600160a01b03167f63ce671e4a37975f0a9e340f6f72320c617a5f728b83e3860b03aa847dc26ebb60405160405180910390a35050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a06610aec565b6001600160a01b038116610a2c5760405162461bcd60e51b8152600401610741906114dd565b610a3581610ee0565b50565b6001600160a01b038316610a5e5760405162461bcd60e51b81526004016107419061152e565b6001600160a01b038216610a845760405162461bcd60e51b81526004016107419061157d565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610adf9085906112d5565b60405180910390a3505050565b6005546001600160a01b031633146105775760405162461bcd60e51b8152600401610741906115c2565b6001600160a01b038116610a35576040516342bcdf7f60e11b815260040160405180910390fd5b6000610b4984846109d3565b90506000198114610b815781811015610b745760405162461bcd60e51b815260040161074190611606565b610b818484848403610a38565b50505050565b6001600160a01b038316610bad5760405162461bcd60e51b815260040161074190611658565b6001600160a01b038216610bd35760405162461bcd60e51b8152600401610741906116a8565b610bde8383836110f9565b6001600160a01b03831660009081526020819052604090205481811015610c175760405162461bcd60e51b8152600401610741906116fb565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c759086906112d5565b60405180910390a3610b81565b6006546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab90610cb4903390859060040161170b565b602060405180830381865afa158015610cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf59190611736565b610a35576040516282b42960e81b815260040160405180910390fd5b610d19611179565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610d569190611353565b60405180910390a1565b600554600160a01b900460ff16156105775760405162461bcd60e51b81526004016107419061177e565b6001600160a01b03831660009081526008602090815260408083205460099092528220549091610dba8483611432565b905082811115610ddd57604051634f2dbd1d60e01b815260040160405180910390fd5b6001600160a01b038616600081815260096020526040908190208390555182850391907fbe214d1fa2403a39be9a36c9f4b45125eba30bf27a8b56a619baf00493ad3e6190610e2d9084906112d5565b60405180910390a250505050505050565b6001600160a01b038216610e645760405162461bcd60e51b8152600401610741906117c2565b610e70600083836110f9565b8060026000828254610e829190611432565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed49085906112d5565b60405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610f3a610d60565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d493390565b6001600160a01b038216610f9b5760405162461bcd60e51b815260040161074190611810565b610fa7826000836110f9565b6001600160a01b03821660009081526020819052604090205481811015610fe05760405162461bcd60e51b81526004016107419061185f565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610adf9086906112d5565b505050565b6001600160a01b03821660009081526009602052604090205481811015611077576040516348af2f2960e11b815260040160405180910390fd5b6001600160a01b03831660009081526009602090815260408083208585039081905560089092528220549091906110af90839061186f565b9050846001600160a01b03167f0831a8ba59684daef8a957d2bd2d943e233993771429e9a17b71ddb1cea35cdb826040516110ea91906112d5565b60405180910390a25050505050565b611101610d60565b6001600160a01b03821660009081526007602052604090205460ff161561113d578160405163571f7b4960e01b81526004016107419190611353565b6001600160a01b03831660009081526007602052604090205460ff1615611038578260405163571f7b4960e01b81526004016107419190611353565b600554600160a01b900460ff166105775760405162461bcd60e51b8152600401610741906118ad565b60005b838110156111bd5781810151838201526020016111a5565b50506000910152565b60006111d0825190565b8084526020840193506111e78185602086016111a2565b601f01601f19169290920192915050565b6020808252810161120981846111c6565b9392505050565b60006001600160a01b03821661048c565b61122a81611210565b8114610a3557600080fd5b803561048c81611221565b8061122a565b803561048c81611240565b6000806040838503121561126757611267600080fd5b60006112738585611235565b925050602061128485828601611246565b9150509250929050565b8015155b82525050565b6020810161048c828461128e565b6000602082840312156112bb576112bb600080fd5b60006112c78484611235565b949350505050565b80611292565b6020810161048c82846112cf565b6000806000606084860312156112fb576112fb600080fd5b60006113078686611235565b935050602061131886828701611235565b925050604061132986828701611246565b9150509250925092565b60ff8116611292565b6020810161048c8284611333565b61129281611210565b6020810161048c828461134a565b80151561122a565b803561048c81611361565b6000806040838503121561138a5761138a600080fd5b60006113968585611235565b925050602061128485828601611369565b600080604083850312156113bd576113bd600080fd5b60006113c98585611235565b925050602061128485828601611235565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061140457607f821691505b602082108103611416576114166113da565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561048c5761048c61141c565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161048c81611445565b602681526000602082017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529150611483565b6020808252810161048c8161149a565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150611483565b6020808252810161048c816114ed565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150611483565b6020808252810161048c8161153e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260005b5060200190565b6020808252810161048c8161158d565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291506115bb565b6020808252810161048c816115d2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150611483565b6020808252810161048c81611616565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150611483565b6020808252810161048c81611668565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150611483565b6020808252810161048c816116b8565b60408101611719828561134a565b81810360208301526112c781846111c6565b805161048c81611361565b60006020828403121561174b5761174b600080fd5b60006112c7848461172b565b601081526000602082016f14185d5cd8589b194e881c185d5cd95960821b815291506115bb565b6020808252810161048c81611757565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f206164647265737300815291506115bb565b6020808252810161048c8161178e565b602181526000602082017f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b60208201529150611483565b6020808252810161048c816117d2565b602281526000602082017f45524332303a206275726e20616d6f756e7420657863656564732062616c616e815261636560f01b60208201529150611483565b6020808252810161048c81611820565b8181038181111561048c5761048c61141c565b601481526000602082017314185d5cd8589b194e881b9bdd081c185d5cd95960621b815291506115bb565b6020808252810161048c8161188256fe6d6967726174654d696e746572546f6b656e7328616464726573732c6164647265737329a2646970667358221220c02e4a270e25a4f85ac481af1e0edd982263c2f2ef6fdac992c2c9ef4ad4229664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B517334 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD89E2DAC GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD89E2DAC EQ PUSH2 0x381 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x394 JUMPI DUP1 PUSH4 0xE47D6060 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0xB4A0BDF3 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0xC06ABE77 EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9155E083 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x9155E083 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B517334 EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x391EFE12 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x40C10F19 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x391EFE12 EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x267 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xE32CB86 EQ PUSH2 0x1EC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x225 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B6 PUSH2 0x3E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x11F8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DF PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1298 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x492 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E3 JUMP JUMPDEST PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x133C JUMP JUMPDEST PUSH2 0x205 PUSH2 0x242 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x262 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x523 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x545 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x27D CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x579 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1DF JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x5D0 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x612 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x6BF JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x711 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x757 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x2FA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0x765 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x38F CALLDATASIZE PUSH1 0x4 PUSH2 0x13A7 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13A7 JUMP JUMPDEST PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x1DF PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1FF PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x9FE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x3F5 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x421 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x46E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x443 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x46E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x451 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x49A PUSH2 0xAEC JUMP JUMPDEST PUSH2 0x4A3 DUP2 PUSH2 0xB16 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x66FD58E82F7B31A2A5C30E0888F3093EFE4E111B00CD2B0C31FE014601293AA0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x50D DUP6 DUP3 DUP6 PUSH2 0xB3D JUMP JUMPDEST PUSH2 0x518 DUP6 DUP6 DUP6 PUSH2 0xB87 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0x536 DUP4 DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH2 0x540 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x56F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x756E70617573652829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x577 PUSH2 0xD11 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x581 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x6D696E7428616464726573732C75696E7432353629 PUSH1 0x58 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x5C2 CALLER DUP4 DUP4 PUSH2 0xD8A JUMP JUMPDEST PUSH2 0x5CC DUP3 DUP3 PUSH2 0xE3E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5D8 PUSH2 0xAEC JUMP JUMPDEST PUSH2 0x577 PUSH1 0x0 PUSH2 0xEE0 JUMP JUMPDEST PUSH2 0x60A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x70617573652829 PUSH1 0xC8 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x577 PUSH2 0xF32 JUMP JUMPDEST PUSH2 0x650 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757064617465426C61636B6C69737428616464726573732C626F6F6C29000000 DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP5 ISZERO ISZERO OR SWAP1 SSTORE MLOAD PUSH32 0x6A12B3DF6CBA4203BD7FD06B816789F87DE8C594299AED5717AE070FAC781BAC SWAP1 PUSH2 0x6A4 SWAP1 DUP5 SWAP1 PUSH2 0x1298 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x3F5 SWAP1 PUSH2 0x13F0 JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x6FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x6275726E28616464726573732C75696E7432353629 PUSH1 0x58 SHL DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH2 0x707 DUP3 DUP3 PUSH2 0xF75 JUMP JUMPDEST PUSH2 0x5CC CALLER DUP3 PUSH2 0x103D JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x71F DUP3 DUP7 PUSH2 0x9D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x148A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x518 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x486 DUP2 DUP6 DUP6 PUSH2 0xB87 JUMP JUMPDEST PUSH2 0x7A3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7365744D696E7443617028616464726573732C75696E74323536290000000000 DUP2 MSTORE POP PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x7DC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCE89973D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD PUSH32 0x1A85F4ECFF52E70907E25B863010BCA98A9458D9F2FE9B3EFB4C47D197E6448 SWAP1 PUSH2 0x6A4 SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH2 0x848 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x18BE PUSH1 0x24 SWAP2 CODECOPY PUSH2 0xC82 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x87A JUMPI PUSH1 0x40 MLOAD PUSH4 0x80AE98F5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD SWAP5 DUP7 AND DUP1 DUP5 MSTORE DUP2 DUP5 KECCAK256 SLOAD SWAP5 DUP5 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD SWAP2 DUP4 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x8BF DUP4 DUP4 PUSH2 0x1432 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE SWAP2 DUP9 AND DUP1 DUP3 MSTORE SWAP1 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE SWAP1 MLOAD DUP3 DUP7 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0x940 SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP8 PUSH1 0x40 MLOAD PUSH2 0x981 SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63CE671E4A37975F0A9E340F6F72320C617A5F728B83E3860B03AA847DC26EBB PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xA06 PUSH2 0xAEC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x14DD JUMP JUMPDEST PUSH2 0xA35 DUP2 PUSH2 0xEE0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA5E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x152E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x157D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0xADF SWAP1 DUP6 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42BCDF7F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB49 DUP5 DUP5 PUSH2 0x9D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xB81 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xB74 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1606 JUMP JUMPDEST PUSH2 0xB81 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0xA38 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBAD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1658 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x16A8 JUMP JUMPDEST PUSH2 0xBDE DUP4 DUP4 DUP4 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x16FB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xC75 SWAP1 DUP7 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C5E8AB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x18C5E8AB SWAP1 PUSH2 0xCB4 SWAP1 CALLER SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x170B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCF5 SWAP2 SWAP1 PUSH2 0x1736 JUMP JUMPDEST PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x82B429 PUSH1 0xE8 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD19 PUSH2 0x1179 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x177E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x9 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xDBA DUP5 DUP4 PUSH2 0x1432 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 GT ISZERO PUSH2 0xDDD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4F2DBD1D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE MLOAD DUP3 DUP6 SUB SWAP2 SWAP1 PUSH32 0xBE214D1FA2403A39BE9A36C9F4B45125EBA30BF27A8B56A619BAF00493AD3E61 SWAP1 PUSH2 0xE2D SWAP1 DUP5 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xE64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0xE70 PUSH1 0x0 DUP4 DUP4 PUSH2 0x10F9 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xE82 SWAP2 SWAP1 PUSH2 0x1432 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xED4 SWAP1 DUP6 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xF3A PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xD49 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x1810 JUMP JUMPDEST PUSH2 0xFA7 DUP3 PUSH1 0x0 DUP4 PUSH2 0x10F9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0xFE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x185F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP7 SWAP1 SUB SWAP1 SSTORE MLOAD SWAP1 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0xADF SWAP1 DUP7 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x1077 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48AF2F29 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 SUB SWAP1 DUP2 SWAP1 SSTORE PUSH1 0x8 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x10AF SWAP1 DUP4 SWAP1 PUSH2 0x186F JUMP JUMPDEST SWAP1 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x831A8BA59684DAEF8A957D2BD2D943E233993771429E9A17B71DDB1CEA35CDB DUP3 PUSH1 0x40 MLOAD PUSH2 0x10EA SWAP2 SWAP1 PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1101 PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x113D JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x571F7B49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1038 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH4 0x571F7B49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP2 SWAP1 PUSH2 0x1353 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x18AD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x11A5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11D0 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x11E7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1209 DUP2 DUP5 PUSH2 0x11C6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x48C JUMP JUMPDEST PUSH2 0x122A DUP2 PUSH2 0x1210 JUMP JUMPDEST DUP2 EQ PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1221 JUMP JUMPDEST DUP1 PUSH2 0x122A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1240 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1267 JUMPI PUSH2 0x1267 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1273 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1246 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x128E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12C7 DUP5 DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x1292 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x12CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x12FB JUMPI PUSH2 0x12FB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1307 DUP7 DUP7 PUSH2 0x1235 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1318 DUP7 DUP3 DUP8 ADD PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1329 DUP7 DUP3 DUP8 ADD PUSH2 0x1246 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x1292 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x1333 JUMP JUMPDEST PUSH2 0x1292 DUP2 PUSH2 0x1210 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48C DUP3 DUP5 PUSH2 0x134A JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x122A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48C DUP2 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x138A JUMPI PUSH2 0x138A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1396 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1369 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x13BD JUMPI PUSH2 0x13BD PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13C9 DUP6 DUP6 PUSH2 0x1235 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1284 DUP6 DUP3 DUP7 ADD PUSH2 0x1235 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1404 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1416 JUMPI PUSH2 0x1416 PUSH2 0x13DA JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48C PUSH2 0x141C JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1445 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x149A JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x14ED JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x153E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x158D JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x15D2 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1616 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x1719 DUP3 DUP6 PUSH2 0x134A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x11C6 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x48C DUP2 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x174B JUMPI PUSH2 0x174B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12C7 DUP5 DUP5 PUSH2 0x172B JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x178E JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 DUP2 MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E DUP2 MSTORE PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1820 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48C PUSH2 0x141C JUMP JUMPDEST PUSH1 0x14 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x15BB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48C DUP2 PUSH2 0x1882 JUMP INVALID PUSH14 0x6967726174654D696E746572546F PUSH12 0x656E7328616464726573732C PUSH2 0x6464 PUSH19 0x65737329A2646970667358221220C02E4A270E 0x25 LOG4 0xF8 GAS 0xC4 DUP2 0xAF 0x1E 0xE 0xDD SWAP9 0x22 PUSH4 0xC2F2EF6F 0xDA 0xC9 SWAP3 0xC2 0xC9 0xEF BLOBBASEFEE 0xD4 0x22 SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"519:2222:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5740:292:48:-;;;;;;:::i;:::-;;:::i;:::-;;3255:106:23;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;3104:91::-;3186:2;3104:91;;;;;;:::i;1218:46:48:-;;;;;;:::i;:::-;;;;;;;;;;;;;;5854:234:23;;;;;;:::i;:::-;;:::i;4150:92:48:-;;;:::i;1173:220:49:-;;;;;;:::i;:::-;;:::i;1615:84:22:-;1685:7;;-1:-1:-1;;;1685:7:22;;;;1615:84;;3419:125:23;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:23;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:21;;;:::i;1374:55:48:-;;;;;;:::i;:::-;;;;;;;;;;;;;;3955:86;;;:::i;1201:85:21:-;1273:6;;-1:-1:-1;;;;;1273:6:21;1201:85;;;;;;;:::i;4513:208:48:-;;;;;;:::i;:::-;;:::i;2369:102:23:-;;;:::i;1787:211:49:-;;;;;;:::i;:::-;;:::i;6575:427:23:-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;913:35:48:-;;;;;-1:-1:-1;;;;;913:35:48;;;4972:334;;;;;;:::i;:::-;;:::i;6746:1077::-;;;;;;:::i;:::-;;:::i;3987:149:23:-;;;;;;:::i;:::-;;:::i;8009:108:48:-;;;;;;:::i;:::-;-1:-1:-1;;;;;8093:17:48;8070:4;8093:17;;;:10;:17;;;;;;;;;8009:108;2074:198:21;;;;;;:::i;:::-;;:::i;2158:98:23:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:29;4581:32:23;719:10:29;4597:7:23;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5740:292:48:-;1094:13:21;:11;:13::i;:::-;5836:46:48::1;5857:24;5836:20;:46::i;:::-;5921:20;::::0;5897:71:::1;::::0;-1:-1:-1;;;;;5897:71:48;;::::1;::::0;5921:20:::1;::::0;5897:71:::1;::::0;5921:20:::1;::::0;5897:71:::1;5978:20;:47:::0;;-1:-1:-1;;;;;;5978:47:48::1;-1:-1:-1::0;;;;;5978:47:48;;;::::1;::::0;;;::::1;::::0;;5740:292::o;5203:256:23:-;5300:4;719:10:29;5356:38:23;5372:4;719:10:29;5387:6:23;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:23;;5203:256;-1:-1:-1;;;;5203:256:23:o;5854:234::-;5942:4;719:10:29;5996:64:23;719:10:29;6012:7:23;6049:10;6021:25;719:10:29;6012:7:23;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;4150:92:48:-;4188:27;;;;;;;;;;;;;;-1:-1:-1;;;4188:27:48;;;:14;:27::i;:::-;4225:10;:8;:10::i;:::-;4150:92::o;1173:220:49:-;1239:19:22;:17;:19::i;:::-;1255:39:49::1;;;;;;;;;;;;;;-1:-1:-1::0;;;1255:39:49::1;;::::0;:14:::1;:39::i;:::-;1304:48;1322:10;1334:8;1344:7;1304:17;:48::i;:::-;1362:24;1368:8;1378:7;1362:5;:24::i;:::-;1173:220:::0;;:::o;1824:101:21:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;3955:86:48:-:0;3991:25;;;;;;;;;;;;;;-1:-1:-1;;;3991:25:48;;;:14;:25::i;:::-;4026:8;:6;:8::i;4513:208::-;4585:47;;;;;;;;;;;;;;;;;;:14;:47::i;:::-;-1:-1:-1;;;;;4642:17:48;;;;;;:10;:17;;;;;;;:26;;-1:-1:-1;;4642:26:48;;;;;;;4683:31;;;;;4642:26;;4683:31;:::i;:::-;;;;;;;;4513:208;;:::o;2369:102:23:-;2425:13;2457:7;2450:14;;;;;:::i;1787:211:49:-;1239:19:22;:17;:19::i;:::-;1869:39:49::1;;;;;;;;;;;;;;-1:-1:-1::0;;;1869:39:49::1;;::::0;:14:::1;:39::i;:::-;1918:24;1924:8;1934:7;1918:5;:24::i;:::-;1952:39;1971:10;1983:7;1952:18;:39::i;6575:427:23:-:0;6668:4;719:10:29;6668:4:23;6749:25;719:10:29;6766:7:23;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:23;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:29;3873:28:23;719:10:29;3890:2:23;3894:6;3873:9;:28::i;4972:334:48:-;5045:45;;;;;;;;;;;;;;;;;;:14;:45::i;:::-;-1:-1:-1;;;;;5115:29:48;;;;;;:20;:29;;;;;;5105:39;;5101:111;;;5167:34;;-1:-1:-1;;;5167:34:48;;;;;;;;;;;5101:111;-1:-1:-1;;;;;5222:20:48;;;;;;:11;:20;;;;;;;:30;;;5267:32;;;;;5245:7;;5267:32;:::i;6746:1077::-;6833:54;;;;;;;;;;;;;;;;;;:14;:54::i;:::-;6913:12;-1:-1:-1;;;;;6902:23:48;:7;-1:-1:-1;;;;;6902:23:48;;6898:82;;6948:21;;-1:-1:-1;;;6948:21:48;;;;;;;;;;;6898:82;-1:-1:-1;;;;;7010:20:48;;;6990:17;7010:20;;;:11;:20;;;;;;;;;7065:25;;;;;;;;;;7124:29;;;:20;:29;;;;;;;7191:34;;;;;;7124:29;;7266:32;7124:29;7191:34;7266:32;:::i;:::-;7235:63;;7336:14;7313:20;:37;7309:92;;;7373:17;;-1:-1:-1;;;7373:17:48;;;;;;;;;;;7309:92;-1:-1:-1;;;;;7411:29:48;;;7443:1;7411:29;;;:20;:29;;;;;;:33;;;7454:34;;;;;;;;;;:57;;;7657:48;;7594:37;;;;7454:34;7657:48;;;;7594:37;;7657:48;:::i;:::-;;;;;;;;7739:7;-1:-1:-1;;;;;7720:38:48;;7748:9;7720:38;;;;;;:::i;:::-;;;;;;;;7803:12;-1:-1:-1;;;;;7773:43:48;7794:7;-1:-1:-1;;;;;7773:43:48;;;;;;;;;;;6823:1000;;;;;;6746:1077;;:::o;3987:149:23:-;-1:-1:-1;;;;;4102:18:23;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;2074:198:21:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:21;::::1;2154:73;;;;-1:-1:-1::0;;;2154:73:21::1;;;;;;;:::i;:::-;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;10457:340:23:-;-1:-1:-1;;;;;10558:19:23;;10550:68;;;;-1:-1:-1;;;10550:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:23;;10628:68;;;;-1:-1:-1;;;10628:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:23;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;1359:130:21:-;1273:6;;-1:-1:-1;;;;;1273:6:21;719:10:29;1422:23:21;1414:68;;;;-1:-1:-1;;;1414:68:21;;;;;;;:::i;485:136:41:-;-1:-1:-1;;;;;548:22:41;;544:75;;589:23;;-1:-1:-1;;;589:23:41;;;;;;;;;;;11078:411:23;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:23;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:23;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:23;;7544:68;;;;-1:-1:-1;;;7544:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:23;;7622:64;;;;-1:-1:-1;;;7622:64:23;;;;;;;:::i;:::-;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;-1:-1:-1;;;;;7768:15:23;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:23;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;9375:659;10257:222:48;10362:20;;10338:87;;-1:-1:-1;;;10338:87:48;;-1:-1:-1;;;;;10362:20:48;;;;10338:61;;:87;;10400:10;;10412:12;;10338:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10333:140;;10448:14;;-1:-1:-1;;;10448:14:48;;;;;;;;;;;2433:117:22;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;;;2491:15:22::1;::::0;;2521:22:::1;719:10:29::0;2530:12:22::1;2521:22;;;;;;:::i;:::-;;;;;;;;2433:117::o:0;1767:106::-;1685:7;;-1:-1:-1;;;1685:7:22;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:22;;;;;;;:::i;8507:580:48:-;-1:-1:-1;;;;;8619:18:48;;8598;8619;;;:11;:18;;;;;;;;;8672:20;:27;;;;;;8619:18;;8734:24;8751:7;8672:27;8734:24;:::i;:::-;8709:49;;8790:10;8773:14;:27;8769:82;;;8823:17;;-1:-1:-1;;;8823:17:48;;;;;;;;;;;8769:82;-1:-1:-1;;;;;8860:27:48;;;;;;:20;:27;;;;;;;:44;;;9039:41;8987:27;;;;8860;9039:41;;;;8987:27;;9039:41;:::i;:::-;;;;;;;;8588:499;;;;8507:580;;;:::o;8520:535:23:-;-1:-1:-1;;;;;8603:21:23;;8595:65;;;;-1:-1:-1;;;8595:65:23;;;;;;;:::i;:::-;8671:49;8700:1;8704:7;8713:6;8671:20;:49::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:23;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;1173:220:49;;:::o;2426:187:21:-;2518:6;;;-1:-1:-1;;;;;2534:17:21;;;-1:-1:-1;;;;;;2534:17:21;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;2186:115:22:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:22::1;-1:-1:-1::0;;;2245:14:22::1;::::0;;2274:20:::1;2281:12;719:10:29::0;;640:96;9375:659:23;-1:-1:-1;;;;;9458:21:23;;9450:67;;;;-1:-1:-1;;;9450:67:23;;;;;;;:::i;:::-;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;-1:-1:-1;;;;;9613:18:23;;9588:22;9613:18;;;;;;;;;;;9649:24;;;;9641:71;;;;-1:-1:-1;;;9641:71:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;9746:18:23;;:9;:18;;;;;;;;;;;9767:23;;;9746:44;;9883:12;:22;;;;;;;9931:37;9746:9;;:18;9931:37;;;;9784:6;;9931:37;:::i;9979:48::-;9440:594;9375:659;;:::o;9467:528:48:-;-1:-1:-1;;;;;9571:27:48;;9546:22;9571:27;;;:20;:27;;;;;;9613:24;;;9609:82;;;9660:20;;-1:-1:-1;;;9660:20:48;;;;;;;;;;;9609:82;-1:-1:-1;;;;;9818:27:48;;9701:22;9818:27;;;:20;:27;;;;;;;;9774:24;;;9818:44;;;;9897:11;:18;;;;;;9774:24;;9701:22;9897:35;;9774:24;;9897:35;:::i;:::-;9872:60;;9966:5;-1:-1:-1;;;;;9947:41:48;;9973:14;9947:41;;;;;;:::i;:::-;;;;;;;;9536:459;;;9467:528;;:::o;2451:288:49:-;1239:19:22;:17;:19::i;:::-;-1:-1:-1;;;;;2572:15:49;::::1;;::::0;;;:10:::1;:15;::::0;;;;;::::1;;2568:76;;;2629:3;2610:23;;-1:-1:-1::0;;;2610:23:49::1;;;;;;;;:::i;2568:76::-;-1:-1:-1::0;;;;;2657:17:49;::::1;;::::0;;;:10:::1;:17;::::0;;;;;::::1;;2653:80;;;2716:5;2697:25;;-1:-1:-1::0;;;2697:25:49::1;;;;;;;;:::i;1945:106:22:-:0;1685:7;;-1:-1:-1;;;1685:7:22;;;;2003:41;;;;-1:-1:-1;;;2003:41:22;;;;;;;:::i;287:248:65:-;369:1;379:113;393:6;390:1;387:13;379:113;;;469:11;;;463:18;450:11;;;443:39;415:2;408:10;379:113;;;-1:-1:-1;;526:1:65;508:16;;501:27;287:248::o;649:377::-;737:3;765:39;798:5;87:12;;7:99;765:39;218:19;;;270:4;261:14;;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;633:2;613:14;-1:-1:-1;;609:28:65;981:39;;;;;;-1:-1:-1;;649:377:65:o;1032:313::-;1183:2;1196:47;;;1168:18;;1260:78;1168:18;1324:6;1260:78;:::i;:::-;1252:86;1032:313;-1:-1:-1;;;1032:313:65:o;1810:96::-;1847:7;-1:-1:-1;;;;;1744:54:65;;1876:24;1678:126;1912:122;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;2040:139;2111:20;;2140:33;2111:20;2140:33;:::i;2268:122::-;2359:5;2341:24;2185:77;2396:139;2467:20;;2496:33;2467:20;2496:33;:::i;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;519:2222:49;;;2672:79:65;2792:1;2817:53;2862:7;2842:9;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3117:109::-;3091:13;;3084:21;3198;3193:3;3186:34;3117:109;;:::o;3232:210::-;3357:2;3342:18;;3370:65;3346:9;3408:6;3370:65;:::i;3448:329::-;3507:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:119;;;3562:79;519:2222:49;;;3562:79:65;3682:1;3707:53;3752:7;3732:9;3707:53;:::i;:::-;3697:63;3448:329;-1:-1:-1;;;;3448:329:65:o;3783:118::-;3888:5;3870:24;2185:77;3907:222;4038:2;4023:18;;4051:71;4027:9;4095:6;4051:71;:::i;4135:619::-;4212:6;4220;4228;4277:2;4265:9;4256:7;4252:23;4248:32;4245:119;;;4283:79;519:2222:49;;;4283:79:65;4403:1;4428:53;4473:7;4453:9;4428:53;:::i;:::-;4418:63;;4374:117;4530:2;4556:53;4601:7;4592:6;4581:9;4577:22;4556:53;:::i;:::-;4546:63;;4501:118;4658:2;4684:53;4729:7;4720:6;4709:9;4705:22;4684:53;:::i;:::-;4674:63;;4629:118;4135:619;;;;;:::o;4852:112::-;4835:4;4824:16;;4935:22;4760:86;4970:214;5097:2;5082:18;;5110:67;5086:9;5150:6;5110:67;:::i;5190:118::-;5277:24;5295:5;5277:24;:::i;5314:222::-;5445:2;5430:18;;5458:71;5434:9;5502:6;5458:71;:::i;5542:116::-;3091:13;;3084:21;5612;3021:90;5664:133;5732:20;;5761:30;5732:20;5761:30;:::i;5803:468::-;5868:6;5876;5925:2;5913:9;5904:7;5900:23;5896:32;5893:119;;;5931:79;519:2222:49;;;5931:79:65;6051:1;6076:53;6121:7;6101:9;6076:53;:::i;:::-;6066:63;;6022:117;6178:2;6204:50;6246:7;6237:6;6226:9;6222:22;6204:50;:::i;6277:474::-;6345:6;6353;6402:2;6390:9;6381:7;6377:23;6373:32;6370:119;;;6408:79;519:2222:49;;;6408:79:65;6528:1;6553:53;6598:7;6578:9;6553:53;:::i;:::-;6543:63;;6499:117;6655:2;6681:53;6726:7;6717:6;6706:9;6702:22;6681:53;:::i;6757:180::-;-1:-1:-1;;;6802:1:65;6795:88;6902:4;6899:1;6892:15;6926:4;6923:1;6916:15;6943:320;7024:1;7014:12;;7071:1;7061:12;;;7082:81;;7148:4;7140:6;7136:17;7126:27;;7082:81;7210:2;7202:6;7199:14;7179:18;7176:38;7173:84;;7229:18;;:::i;:::-;6994:269;6943:320;;;:::o;7269:180::-;-1:-1:-1;;;7314:1:65;7307:88;7414:4;7411:1;7404:15;7438:4;7435:1;7428:15;7455:191;7584:9;;;7606:10;;;7603:36;;;7619:18;;:::i;7882:366::-;8109:2;218:19;;8024:3;270:4;261:14;;7792:34;7769:58;;-1:-1:-1;;;7856:2:65;7844:15;;7837:32;8038:74;-1:-1:-1;8121:93:65;-1:-1:-1;8239:2:65;8230:12;;7882:366::o;8254:419::-;8458:2;8471:47;;;8443:18;;8535:131;8443:18;8535:131;:::i;8910:366::-;9137:2;218:19;;9052:3;270:4;261:14;;8819:34;8796:58;;-1:-1:-1;;;8883:2:65;8871:15;;8864:33;9066:74;-1:-1:-1;9149:93:65;8679:225;9282:419;9486:2;9499:47;;;9471:18;;9563:131;9471:18;9563:131;:::i;9936:366::-;10163:2;218:19;;10078:3;270:4;261:14;;9847:34;9824:58;;-1:-1:-1;;;9911:2:65;9899:15;;9892:31;10092:74;-1:-1:-1;10175:93:65;9707:223;10308:419;10512:2;10525:47;;;10497:18;;10589:131;10497:18;10589:131;:::i;10960:366::-;11187:2;218:19;;11102:3;270:4;261:14;;10873:34;10850:58;;-1:-1:-1;;;10937:2:65;10925:15;;10918:29;11116:74;-1:-1:-1;11199:93:65;10733:221;11332:419;11536:2;11549:47;;;11521:18;;11613:131;11521:18;11613:131;:::i;11945:366::-;12172:2;218:19;;;11897:34;261:14;;11874:58;;;12087:3;12184:93;-1:-1:-1;12302:2:65;12293:12;;11945:366::o;12317:419::-;12521:2;12534:47;;;12506:18;;12598:131;12506:18;12598:131;:::i;12927:366::-;13154:2;218:19;;13069:3;270:4;261:14;;12882:31;12859:55;;13083:74;-1:-1:-1;13166:93:65;12742:179;13299:419;13503:2;13516:47;;;13488:18;;13580:131;13488:18;13580:131;:::i;13954:366::-;14181:2;218:19;;14096:3;270:4;261:14;;13864:34;13841:58;;-1:-1:-1;;;13928:2:65;13916:15;;13909:32;14110:74;-1:-1:-1;14193:93:65;13724:224;14326:419;14530:2;14543:47;;;14515:18;;14607:131;14515:18;14607:131;:::i;14979:366::-;15206:2;218:19;;15121:3;270:4;261:14;;14891:34;14868:58;;-1:-1:-1;;;14955:2:65;14943:15;;14936:30;15135:74;-1:-1:-1;15218:93:65;14751:222;15351:419;15555:2;15568:47;;;15540:18;;15632:131;15540:18;15632:131;:::i;16007:366::-;16234:2;218:19;;16149:3;270:4;261:14;;15916:34;15893:58;;-1:-1:-1;;;15980:2:65;15968:15;;15961:33;16163:74;-1:-1:-1;16246:93:65;15776:225;16379:419;16583:2;16596:47;;;16568:18;;16660:131;16568:18;16660:131;:::i;16804:423::-;16983:2;16968:18;;16996:71;16972:9;17040:6;16996:71;:::i;:::-;17114:9;17108:4;17104:20;17099:2;17088:9;17084:18;17077:48;17142:78;17215:4;17206:6;17142:78;:::i;17233:137::-;17312:13;;17334:30;17312:13;17334:30;:::i;17376:345::-;17443:6;17492:2;17480:9;17471:7;17467:23;17463:32;17460:119;;;17498:79;519:2222:49;;;17498:79:65;17618:1;17643:61;17696:7;17676:9;17643:61;:::i;17899:366::-;18126:2;218:19;;18041:3;270:4;261:14;;-1:-1:-1;;;17844:42:65;;18055:74;-1:-1:-1;18138:93:65;17727:166;18271:419;18475:2;18488:47;;;18460:18;;18552:131;18460:18;18552:131;:::i;18883:366::-;19110:2;218:19;;19025:3;270:4;261:14;;18836:33;18813:57;;19039:74;-1:-1:-1;19122:93:65;18696:181;19255:419;19459:2;19472:47;;;19444:18;;19536:131;19444:18;19536:131;:::i;19906:366::-;20133:2;218:19;;20048:3;270:4;261:14;;19820:34;19797:58;;-1:-1:-1;;;19884:2:65;19872:15;;19865:28;20062:74;-1:-1:-1;20145:93:65;19680:220;20278:419;20482:2;20495:47;;;20467:18;;20559:131;20467:18;20559:131;:::i;20930:366::-;21157:2;218:19;;21072:3;270:4;261:14;;20843:34;20820:58;;-1:-1:-1;;;20907:2:65;20895:15;;20888:29;21086:74;-1:-1:-1;21169:93:65;20703:221;21302:419;21506:2;21519:47;;;21491:18;;21583:131;21491:18;21583:131;:::i;21727:194::-;21858:9;;;21880:11;;;21877:37;;;21894:18;;:::i;22103:366::-;22330:2;218:19;;22245:3;270:4;261:14;;-1:-1:-1;;;22044:46:65;;22259:74;-1:-1:-1;22342:93:65;21927:170;22475:419;22679:2;22692:47;;;22664:18;;22756:131;22664:18;22756:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"1284600","executionCost":"infinite","totalCost":"infinite"},"external":{"accessControlManager()":"infinite","allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","burn(address,uint256)":"infinite","decimals()":"397","decreaseAllowance(address,uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","isBlackListed(address)":"infinite","migrateMinterTokens(address,address)":"infinite","mint(address,uint256)":"infinite","minterToCap(address)":"infinite","minterToMintedAmount(address)":"infinite","name()":"infinite","owner()":"infinite","pause()":"infinite","paused()":"2454","renounceOwnership()":"infinite","setAccessControlManager(address)":"infinite","setMintCap(address,uint256)":"infinite","symbol()":"infinite","totalSupply()":"2448","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite","transferOwnership(address)":"infinite","unpause()":"infinite","updateBlacklist(address,bool)":"infinite"},"internal":{"_beforeTokenTransfer(address,address,uint256)":"infinite"}},"methodIdentifiers":{"accessControlManager()":"b4a0bdf3","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","isBlackListed(address)":"e47d6060","migrateMinterTokens(address,address)":"d89e2dac","mint(address,uint256)":"40c10f19","minterToCap(address)":"391efe12","minterToMintedAmount(address)":"7b517334","name()":"06fdde03","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","renounceOwnership()":"715018a6","setAccessControlManager(address)":"0e32cb86","setMintCap(address,uint256)":"c06abe77","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateBlacklist(address,bool)":"9155e083"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessControlManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"AccountBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressesMustDiffer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintLimitExceed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintedAmountExceed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewCapNotGreaterThanMintedTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"BlacklistUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MintCapChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"MintLimitDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"MintLimitIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"MintedTokensMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAccessControlManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAccessControlManager\",\"type\":\"address\"}],\"name\":\"NewAccessControlManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"accessControlManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"}],\"name\":\"isBlackListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination_\",\"type\":\"address\"}],\"name\":\"migrateMinterTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minterToCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minterToMintedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAccessControlAddress_\",\"type\":\"address\"}],\"name\":\"setAccessControlManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"setMintCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"name\":\"updateBlacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(address,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:event\":\"Emits MintLimitIncreased with new available limit.\",\"params\":{\"account_\":\"Address from which tokens be destroyed.\",\"amount_\":\"Amount of tokens to be destroyed.\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"isBlackListed(address)\":{\"params\":{\"user_\":\"Address of user to check blacklist status.\"},\"returns\":{\"_0\":\"bool status of blacklist.\"}},\"migrateMinterTokens(address,address)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:error\":\"MintLimitExceed is thrown when the minting limit exceeds the cap after migration.AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\",\"custom:event\":\"Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.Emits MintedTokensMigrated.\",\"params\":{\"destination_\":\"Minter address to migrate tokens to.\",\"source_\":\"Minter address to migrate tokens from.\"}},\"mint(address,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:error\":\"MintLimitExceed is thrown when minting amount exceeds the maximum cap.\",\"custom:event\":\"Emits MintLimitDecreased with new available limit.\",\"params\":{\"account_\":\"Address to which tokens are assigned.\",\"amount_\":\"Amount of tokens to be assigned.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"custom:access\":\"Controlled by AccessControlManager.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setAccessControlManager(address)\":{\"custom:access\":\"Only owner.\",\"custom:error\":\"ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.\",\"custom:event\":\"Emits NewAccessControlManager.\",\"details\":\"Admin function to set the access control address.\",\"params\":{\"newAccessControlAddress_\":\"New address for the access control.\"}},\"setMintCap(address,uint256)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:event\":\"Emits MintCapChanged.\",\"params\":{\"amount_\":\"Cap for the minter.\",\"minter_\":\"Minter address.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"custom:access\":\"Controlled by AccessControlManager.\"},\"updateBlacklist(address,bool)\":{\"custom:access\":\"Controlled by AccessControlManager.\",\"custom:event\":\"Emits BlacklistUpdated event.\",\"params\":{\"user_\":\"User address to be affected.\",\"value_\":\"Boolean to toggle value.\"}}},\"title\":\"XVS\",\"version\":1},\"userdoc\":{\"errors\":{\"AccountBlacklisted(address)\":[{\"notice\":\"This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address.\"}],\"AddressesMustDiffer()\":[{\"notice\":\"This error is used to indicate that the addresses must be different.\"}],\"MintLimitExceed()\":[{\"notice\":\"This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap.\"}],\"MintedAmountExceed()\":[{\"notice\":\"This error is used to indicate that the minter did not mint the required amount of tokens.\"}],\"NewCapNotGreaterThanMintedTokens()\":[{\"notice\":\"This error is used to indicate that the new cap is greater than the previously minted tokens for the minter.\"}],\"Unauthorized()\":[{\"notice\":\"This error is used to indicate that sender is not allowed to perform this action.\"}],\"ZeroAddressNotAllowed()\":[{\"notice\":\"Thrown if the supplied address is a zero address where it is not allowed\"}]},\"events\":{\"BlacklistUpdated(address,bool)\":{\"notice\":\"Emitted when the blacklist status of a user is updated.\"},\"MintCapChanged(address,uint256)\":{\"notice\":\"Emitted when the minting cap for a minter is changed.\"},\"MintLimitDecreased(address,uint256)\":{\"notice\":\"Emitted when the minting limit for a minter is decreased.\"},\"MintLimitIncreased(address,uint256)\":{\"notice\":\"Emitted when the minting limit for a minter is increased.\"},\"MintedTokensMigrated(address,address)\":{\"notice\":\"Emitted when all minted tokens are migrated from one minter to another.\"},\"NewAccessControlManager(address,address)\":{\"notice\":\"Emitted when the address of the access control manager of the contract is updated.\"}},\"kind\":\"user\",\"methods\":{\"accessControlManager()\":{\"notice\":\"Access control manager contract address.\"},\"burn(address,uint256)\":{\"notice\":\"Destroys `amount_` tokens from `account_`, reducing the total supply. Checks access and eligibility.\"},\"isBlackListed(address)\":{\"notice\":\"Returns the blacklist status of the address.\"},\"migrateMinterTokens(address,address)\":{\"notice\":\"Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\"},\"mint(address,uint256)\":{\"notice\":\"Creates `amount_` tokens and assigns them to `account_`, increasing the total supply. Checks access and eligibility.\"},\"minterToCap(address)\":{\"notice\":\"A mapping is used to keep track of the maximum amount a minter is permitted to mint.\"},\"minterToMintedAmount(address)\":{\"notice\":\"A Mapping used to keep track of the amount i.e already minted by minter.\"},\"pause()\":{\"notice\":\"Pauses Token\"},\"setAccessControlManager(address)\":{\"notice\":\"Sets the address of the access control manager of this contract.\"},\"setMintCap(address,uint256)\":{\"notice\":\"Sets the minting cap for minter.\"},\"unpause()\":{\"notice\":\"Resumes Token\"},\"updateBlacklist(address,bool)\":{\"notice\":\"Function to update blacklist.\"}},\"notice\":\"XVS contract serves as a customized ERC-20 token with additional minting and burning functionality.  It also incorporates access control features provided by the \\\"TokenController\\\" contract to ensure proper governance and restrictions on minting and burning operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridge/token/XVS.sol\":\"XVS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor() {\\n        _transferOwnership(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        _checkOwner();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if the sender is not the owner.\\n     */\\n    function _checkOwner() internal view virtual {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby disabling any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@openzeppelin/contracts/security/Pausable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which allows children to implement an emergency stop\\n * mechanism that can be triggered by an authorized account.\\n *\\n * This module is used through inheritance. It will make available the\\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\\n * the functions of your contract. Note that they will not be pausable by\\n * simply including this module, only once the modifiers are put in place.\\n */\\nabstract contract Pausable is Context {\\n    /**\\n     * @dev Emitted when the pause is triggered by `account`.\\n     */\\n    event Paused(address account);\\n\\n    /**\\n     * @dev Emitted when the pause is lifted by `account`.\\n     */\\n    event Unpaused(address account);\\n\\n    bool private _paused;\\n\\n    /**\\n     * @dev Initializes the contract in unpaused state.\\n     */\\n    constructor() {\\n        _paused = false;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is not paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    modifier whenNotPaused() {\\n        _requireNotPaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Modifier to make a function callable only when the contract is paused.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    modifier whenPaused() {\\n        _requirePaused();\\n        _;\\n    }\\n\\n    /**\\n     * @dev Returns true if the contract is paused, and false otherwise.\\n     */\\n    function paused() public view virtual returns (bool) {\\n        return _paused;\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is paused.\\n     */\\n    function _requireNotPaused() internal view virtual {\\n        require(!paused(), \\\"Pausable: paused\\\");\\n    }\\n\\n    /**\\n     * @dev Throws if the contract is not paused.\\n     */\\n    function _requirePaused() internal view virtual {\\n        require(paused(), \\\"Pausable: not paused\\\");\\n    }\\n\\n    /**\\n     * @dev Triggers stopped state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must not be paused.\\n     */\\n    function _pause() internal virtual whenNotPaused {\\n        _paused = true;\\n        emit Paused(_msgSender());\\n    }\\n\\n    /**\\n     * @dev Returns to normal state.\\n     *\\n     * Requirements:\\n     *\\n     * - The contract must be paused.\\n     */\\n    function _unpause() internal virtual whenPaused {\\n        _paused = false;\\n        emit Unpaused(_msgSender());\\n    }\\n}\\n\",\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/solidity-utilities/contracts/validators.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\n/// @notice Thrown if the supplied address is a zero address where it is not allowed\\nerror ZeroAddressNotAllowed();\\n\\n/// @notice Thrown if the supplied value is 0 where it is not allowed\\nerror ZeroValueNotAllowed();\\n\\n/// @notice Checks if the provided address is nonzero, reverts otherwise\\n/// @param address_ Address to check\\n/// @custom:error ZeroAddressNotAllowed is thrown if the provided address is a zero address\\nfunction ensureNonzeroAddress(address address_) pure {\\n    if (address_ == address(0)) {\\n        revert ZeroAddressNotAllowed();\\n    }\\n}\\n\\n/// @notice Checks if the provided value is nonzero, reverts otherwise\\n/// @param value_ Value to check\\n/// @custom:error ZeroValueNotAllowed is thrown if the provided value is 0\\nfunction ensureNonzeroValue(uint256 value_) pure {\\n    if (value_ == 0) {\\n        revert ZeroValueNotAllowed();\\n    }\\n}\\n\",\"keccak256\":\"0xdb88e14d50dd21889ca3329d755673d022c47e8da005b6a545c7f69c2c4b7b86\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/token/TokenController.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { IAccessControlManagerV8 } from \\\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\\\";\\nimport { Pausable } from \\\"@openzeppelin/contracts/security/Pausable.sol\\\";\\nimport { Ownable } from \\\"@openzeppelin/contracts/access/Ownable.sol\\\";\\nimport { ensureNonzeroAddress } from \\\"@venusprotocol/solidity-utilities/contracts/validators.sol\\\";\\n\\n/**\\n * @title TokenController\\n * @author Venus\\n * @notice TokenController contract acts as a governance and access control mechanism,\\n * allowing the owner to manage minting restrictions and blacklist certain addresses to maintain control and security within the token ecosystem.\\n * It provides a flexible framework for token-related operations.\\n */\\n\\ncontract TokenController is Ownable, Pausable {\\n    /**\\n     * @notice Access control manager contract address.\\n     */\\n    address public accessControlManager;\\n    /**\\n     * @notice A Mapping used to keep track of the blacklist status of addresses.\\n     */\\n    mapping(address => bool) internal _blacklist;\\n    /**\\n     * @notice A mapping is used to keep track of the maximum amount a minter is permitted to mint.\\n     */\\n    mapping(address => uint256) public minterToCap;\\n    /**\\n     * @notice A Mapping used to keep track of the amount i.e already minted by minter.\\n     */\\n    mapping(address => uint256) public minterToMintedAmount;\\n\\n    /**\\n     * @notice Emitted when the blacklist status of a user is updated.\\n     */\\n    event BlacklistUpdated(address indexed user, bool value);\\n    /**\\n     * @notice Emitted when the minting limit for a minter is increased.\\n     */\\n    event MintLimitIncreased(address indexed minter, uint256 newLimit);\\n    /**\\n     * @notice Emitted when the minting limit for a minter is decreased.\\n     */\\n    event MintLimitDecreased(address indexed minter, uint256 newLimit);\\n    /**\\n     * @notice Emitted when the minting cap for a minter is changed.\\n     */\\n    event MintCapChanged(address indexed minter, uint256 amount);\\n    /**\\n     * @notice Emitted when the address of the access control manager of the contract is updated.\\n     */\\n    event NewAccessControlManager(address indexed oldAccessControlManager, address indexed newAccessControlManager);\\n    /**\\n     * @notice Emitted when all minted tokens are migrated from one minter to another.\\n     */\\n    event MintedTokensMigrated(address indexed source, address indexed destination);\\n\\n    /**\\n     * @notice This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap.\\n     */\\n    error MintLimitExceed();\\n    /**\\n     * @notice This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address.\\n     */\\n    error AccountBlacklisted(address user);\\n    /**\\n     * @notice This error is used to indicate that sender is not allowed to perform this action.\\n     */\\n    error Unauthorized();\\n    /**\\n     * @notice This error is used to indicate that the new cap is greater than the previously minted tokens for the minter.\\n     */\\n    error NewCapNotGreaterThanMintedTokens();\\n    /**\\n     * @notice This error is used to indicate that the addresses must be different.\\n     */\\n    error AddressesMustDiffer();\\n    /**\\n     * @notice This error is used to indicate that the minter did not mint the required amount of tokens.\\n     */\\n    error MintedAmountExceed();\\n\\n    /**\\n     * @param accessControlManager_ Address of access control manager contract.\\n     * @custom:error ZeroAddressNotAllowed is thrown when accessControlManager contract address is zero.\\n     */\\n    constructor(address accessControlManager_) {\\n        ensureNonzeroAddress(accessControlManager_);\\n        accessControlManager = accessControlManager_;\\n    }\\n\\n    /**\\n     * @notice Pauses Token\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    function pause() external {\\n        _ensureAllowed(\\\"pause()\\\");\\n        _pause();\\n    }\\n\\n    /**\\n     * @notice Resumes Token\\n     * @custom:access Controlled by AccessControlManager.\\n     */\\n    function unpause() external {\\n        _ensureAllowed(\\\"unpause()\\\");\\n        _unpause();\\n    }\\n\\n    /**\\n     * @notice Function to update blacklist.\\n     * @param user_ User address to be affected.\\n     * @param value_ Boolean to toggle value.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits BlacklistUpdated event.\\n     */\\n    function updateBlacklist(address user_, bool value_) external {\\n        _ensureAllowed(\\\"updateBlacklist(address,bool)\\\");\\n        _blacklist[user_] = value_;\\n        emit BlacklistUpdated(user_, value_);\\n    }\\n\\n    /**\\n     * @notice Sets the minting cap for minter.\\n     * @param minter_ Minter address.\\n     * @param amount_ Cap for the minter.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits MintCapChanged.\\n     */\\n    function setMintCap(address minter_, uint256 amount_) external {\\n        _ensureAllowed(\\\"setMintCap(address,uint256)\\\");\\n\\n        if (amount_ < minterToMintedAmount[minter_]) {\\n            revert NewCapNotGreaterThanMintedTokens();\\n        }\\n\\n        minterToCap[minter_] = amount_;\\n        emit MintCapChanged(minter_, amount_);\\n    }\\n\\n    /**\\n     * @notice Sets the address of the access control manager of this contract.\\n     * @dev Admin function to set the access control address.\\n     * @param newAccessControlAddress_ New address for the access control.\\n     * @custom:access Only owner.\\n     * @custom:event Emits NewAccessControlManager.\\n     * @custom:error ZeroAddressNotAllowed is thrown when newAccessControlAddress_ contract address is zero.\\n     */\\n    function setAccessControlManager(address newAccessControlAddress_) external onlyOwner {\\n        ensureNonzeroAddress(newAccessControlAddress_);\\n        emit NewAccessControlManager(accessControlManager, newAccessControlAddress_);\\n        accessControlManager = newAccessControlAddress_;\\n    }\\n\\n    /**\\n     * @notice Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge.\\n     * @param source_ Minter address to migrate tokens from.\\n     * @param destination_ Minter address to migrate tokens to.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:error MintLimitExceed is thrown when the minting limit exceeds the cap after migration.\\n     * @custom:error AddressesMustDiffer is thrown when the source_ and destination_ addresses are the same.\\n     * @custom:event Emits MintLimitIncreased and MintLimitDecreased events for 'source' and 'destination'.\\n     * @custom:event Emits MintedTokensMigrated.\\n     */\\n    function migrateMinterTokens(address source_, address destination_) external {\\n        _ensureAllowed(\\\"migrateMinterTokens(address,address)\\\");\\n\\n        if (source_ == destination_) {\\n            revert AddressesMustDiffer();\\n        }\\n\\n        uint256 sourceCap = minterToCap[source_];\\n        uint256 destinationCap = minterToCap[destination_];\\n\\n        uint256 sourceMinted = minterToMintedAmount[source_];\\n        uint256 destinationMinted = minterToMintedAmount[destination_];\\n        uint256 newDestinationMinted = destinationMinted + sourceMinted;\\n\\n        if (newDestinationMinted > destinationCap) {\\n            revert MintLimitExceed();\\n        }\\n\\n        minterToMintedAmount[source_] = 0;\\n        minterToMintedAmount[destination_] = newDestinationMinted;\\n        uint256 availableLimit;\\n        unchecked {\\n            availableLimit = destinationCap - newDestinationMinted;\\n        }\\n\\n        emit MintLimitDecreased(destination_, availableLimit);\\n        emit MintLimitIncreased(source_, sourceCap);\\n        emit MintedTokensMigrated(source_, destination_);\\n    }\\n\\n    /**\\n     * @notice Returns the blacklist status of the address.\\n     * @param user_ Address of user to check blacklist status.\\n     * @return bool status of blacklist.\\n     */\\n    function isBlackListed(address user_) external view returns (bool) {\\n        return _blacklist[user_];\\n    }\\n\\n    /**\\n     * @dev Checks the minter cap and eligibility of receiver to receive tokens.\\n     * @param from_  Minter address.\\n     * @param to_  Receiver address.\\n     * @param amount_  Amount to be mint.\\n     * @custom:error MintLimitExceed is thrown when minting limit exceeds the cap.\\n     * @custom:event Emits MintLimitDecreased with minter address and available limits.\\n     */\\n    function _isEligibleToMint(address from_, address to_, uint256 amount_) internal {\\n        uint256 mintingCap = minterToCap[from_];\\n        uint256 totalMintedOld = minterToMintedAmount[from_];\\n        uint256 totalMintedNew = totalMintedOld + amount_;\\n\\n        if (totalMintedNew > mintingCap) {\\n            revert MintLimitExceed();\\n        }\\n        minterToMintedAmount[from_] = totalMintedNew;\\n        uint256 availableLimit;\\n        unchecked {\\n            availableLimit = mintingCap - totalMintedNew;\\n        }\\n        emit MintLimitDecreased(from_, availableLimit);\\n    }\\n\\n    /**\\n     * @dev This is post hook of burn function, increases minting limit of the minter.\\n     * @param from_ Minter address.\\n     * @param amount_  Amount burned.\\n     * @custom:error MintedAmountExceed is thrown when `amount_` is greater than the tokens minted by `from_`.\\n     * @custom:event Emits MintLimitIncreased with minter address and availabe limit.\\n     */\\n    function _increaseMintLimit(address from_, uint256 amount_) internal {\\n        uint256 totalMintedOld = minterToMintedAmount[from_];\\n\\n        if (totalMintedOld < amount_) {\\n            revert MintedAmountExceed();\\n        }\\n\\n        uint256 totalMintedNew;\\n        unchecked {\\n            totalMintedNew = totalMintedOld - amount_;\\n        }\\n        minterToMintedAmount[from_] = totalMintedNew;\\n        uint256 availableLimit = minterToCap[from_] - totalMintedNew;\\n        emit MintLimitIncreased(from_, availableLimit);\\n    }\\n\\n    /**\\n     * @dev Checks the caller is allowed to call the specified fuction.\\n     * @param functionSig_ Function signatureon which access is to be checked.\\n     * @custom:error Unauthorized, thrown when unauthorised user try to access function.\\n     */\\n    function _ensureAllowed(string memory functionSig_) internal view {\\n        if (!IAccessControlManagerV8(accessControlManager).isAllowedToCall(msg.sender, functionSig_)) {\\n            revert Unauthorized();\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xae9daea7f260ac111e0855fc1f9c904623f3ab8a253fb3b060519a8384f95667\",\"license\":\"BSD-3-Clause\"},\"contracts/Bridge/token/XVS.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\n\\nimport { TokenController } from \\\"./TokenController.sol\\\";\\n\\n/**\\n * @title XVS\\n * @author Venus\\n * @notice XVS contract serves as a customized ERC-20 token with additional minting and burning functionality.\\n *  It also incorporates access control features provided by the \\\"TokenController\\\" contract to ensure proper governance and restrictions on minting and burning operations.\\n */\\n\\ncontract XVS is ERC20, TokenController {\\n    constructor(address accessControlManager_) ERC20(\\\"Venus XVS\\\", \\\"XVS\\\") TokenController(accessControlManager_) {}\\n\\n    /**\\n     * @notice Creates `amount_` tokens and assigns them to `account_`, increasing\\n     * the total supply. Checks access and eligibility.\\n     * @param account_ Address to which tokens are assigned.\\n     * @param amount_ Amount of tokens to be assigned.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits MintLimitDecreased with new available limit.\\n     * @custom:error MintLimitExceed is thrown when minting amount exceeds the maximum cap.\\n     */\\n    function mint(address account_, uint256 amount_) external whenNotPaused {\\n        _ensureAllowed(\\\"mint(address,uint256)\\\");\\n        _isEligibleToMint(msg.sender, account_, amount_);\\n        _mint(account_, amount_);\\n    }\\n\\n    /**\\n     * @notice Destroys `amount_` tokens from `account_`, reducing the\\n     * total supply. Checks access and eligibility.\\n     * @param account_ Address from which tokens be destroyed.\\n     * @param amount_ Amount of tokens to be destroyed.\\n     * @custom:access Controlled by AccessControlManager.\\n     * @custom:event Emits MintLimitIncreased with new available limit.\\n     */\\n    function burn(address account_, uint256 amount_) external whenNotPaused {\\n        _ensureAllowed(\\\"burn(address,uint256)\\\");\\n        _burn(account_, amount_);\\n        _increaseMintLimit(msg.sender, amount_);\\n    }\\n\\n    /**\\n     * @notice Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     * @param from_ Address of account from which tokens are to be transferred.\\n     * @param to_ Address of the account to which tokens are to be transferred.\\n     * @param amount_ The amount of tokens to be transferred.\\n     * @custom:error AccountBlacklisted is thrown when either `from` or `to` address is blacklisted.\\n     */\\n    function _beforeTokenTransfer(address from_, address to_, uint256 amount_) internal override whenNotPaused {\\n        if (_blacklist[to_]) {\\n            revert AccountBlacklisted(to_);\\n        }\\n        if (_blacklist[from_]) {\\n            revert AccountBlacklisted(from_);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xd268c178725dee5da810df33bb1fae7e118df2773af3aed0acac29582b63ef52\",\"license\":\"BSD-3-Clause\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5612,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":5618,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":5620,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":5622,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":5624,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":5383,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_owner","offset":0,"slot":"5","type":"t_address"},{"astId":5506,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_paused","offset":20,"slot":"5","type":"t_bool"},{"astId":11278,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"accessControlManager","offset":0,"slot":"6","type":"t_address"},{"astId":11283,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"_blacklist","offset":0,"slot":"7","type":"t_mapping(t_address,t_bool)"},{"astId":11288,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"minterToCap","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":11293,"contract":"contracts/Bridge/token/XVS.sol:XVS","label":"minterToMintedAmount","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"errors":{"AccountBlacklisted(address)":[{"notice":"This error is used to indicate that `mint` `burn` and `transfer` actions are not allowed for the user address."}],"AddressesMustDiffer()":[{"notice":"This error is used to indicate that the addresses must be different."}],"MintLimitExceed()":[{"notice":"This error is used to indicate that the minting limit has been exceeded. It is typically thrown when a minting operation would surpass the defined cap."}],"MintedAmountExceed()":[{"notice":"This error is used to indicate that the minter did not mint the required amount of tokens."}],"NewCapNotGreaterThanMintedTokens()":[{"notice":"This error is used to indicate that the new cap is greater than the previously minted tokens for the minter."}],"Unauthorized()":[{"notice":"This error is used to indicate that sender is not allowed to perform this action."}],"ZeroAddressNotAllowed()":[{"notice":"Thrown if the supplied address is a zero address where it is not allowed"}]},"events":{"BlacklistUpdated(address,bool)":{"notice":"Emitted when the blacklist status of a user is updated."},"MintCapChanged(address,uint256)":{"notice":"Emitted when the minting cap for a minter is changed."},"MintLimitDecreased(address,uint256)":{"notice":"Emitted when the minting limit for a minter is decreased."},"MintLimitIncreased(address,uint256)":{"notice":"Emitted when the minting limit for a minter is increased."},"MintedTokensMigrated(address,address)":{"notice":"Emitted when all minted tokens are migrated from one minter to another."},"NewAccessControlManager(address,address)":{"notice":"Emitted when the address of the access control manager of the contract is updated."}},"kind":"user","methods":{"accessControlManager()":{"notice":"Access control manager contract address."},"burn(address,uint256)":{"notice":"Destroys `amount_` tokens from `account_`, reducing the total supply. Checks access and eligibility."},"isBlackListed(address)":{"notice":"Returns the blacklist status of the address."},"migrateMinterTokens(address,address)":{"notice":"Migrates all minted tokens from one minter to another. This function is useful when we want to permanent take down a bridge."},"mint(address,uint256)":{"notice":"Creates `amount_` tokens and assigns them to `account_`, increasing the total supply. Checks access and eligibility."},"minterToCap(address)":{"notice":"A mapping is used to keep track of the maximum amount a minter is permitted to mint."},"minterToMintedAmount(address)":{"notice":"A Mapping used to keep track of the amount i.e already minted by minter."},"pause()":{"notice":"Pauses Token"},"setAccessControlManager(address)":{"notice":"Sets the address of the access control manager of this contract."},"setMintCap(address,uint256)":{"notice":"Sets the minting cap for minter."},"unpause()":{"notice":"Resumes Token"},"updateBlacklist(address,bool)":{"notice":"Function to update blacklist."}},"notice":"XVS contract serves as a customized ERC-20 token with additional minting and burning functionality.  It also incorporates access control features provided by the \"TokenController\" contract to ensure proper governance and restrictions on minting and burning operations.","version":1}}},"contracts/test/MockToken.sol":{"MockToken":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"faucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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"}],"devdoc":{"events":{"Approval(address,address,uint256)":{"details":"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."},"Transfer(address,address,uint256)":{"details":"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."}},"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_11861":{"entryPoint":null,"id":11861,"parameterSlots":3,"returnSlots":0},"@_5641":{"entryPoint":null,"id":5641,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":263,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":328,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8_fromMemory":{"entryPoint":390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory":{"entryPoint":407,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_memory":{"entryPoint":157,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":185,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":704,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":673,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":604,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":768,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":227,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":560,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":113,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":538,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":91,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":655,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":619,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:9089:65","nodeType":"YulBlock","src":"0:9089:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"423:28:65","nodeType":"YulBlock","src":"423:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:65","nodeType":"YulLiteral","src":"440:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"443:1:65","nodeType":"YulLiteral","src":"443:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"433:6:65","nodeType":"YulIdentifier","src":"433:6:65"},"nativeSrc":"433:12:65","nodeType":"YulFunctionCall","src":"433:12:65"},"nativeSrc":"433:12:65","nodeType":"YulExpressionStatement","src":"433:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"334:117:65","nodeType":"YulFunctionDefinition","src":"334:117:65"},{"body":{"nativeSrc":"546:28:65","nodeType":"YulBlock","src":"546:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"563:1:65","nodeType":"YulLiteral","src":"563:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"566:1:65","nodeType":"YulLiteral","src":"566:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"556:6:65","nodeType":"YulIdentifier","src":"556:6:65"},"nativeSrc":"556:12:65","nodeType":"YulFunctionCall","src":"556:12:65"},"nativeSrc":"556:12:65","nodeType":"YulExpressionStatement","src":"556:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"457:117:65","nodeType":"YulFunctionDefinition","src":"457:117:65"},{"body":{"nativeSrc":"628:54:65","nodeType":"YulBlock","src":"628:54:65","statements":[{"nativeSrc":"638:38:65","nodeType":"YulAssignment","src":"638:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"656:5:65","nodeType":"YulIdentifier","src":"656:5:65"},{"kind":"number","nativeSrc":"663:2:65","nodeType":"YulLiteral","src":"663:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"652:3:65","nodeType":"YulIdentifier","src":"652:3:65"},"nativeSrc":"652:14:65","nodeType":"YulFunctionCall","src":"652:14:65"},{"arguments":[{"kind":"number","nativeSrc":"672:2:65","nodeType":"YulLiteral","src":"672:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"668:3:65","nodeType":"YulIdentifier","src":"668:3:65"},"nativeSrc":"668:7:65","nodeType":"YulFunctionCall","src":"668:7:65"}],"functionName":{"name":"and","nativeSrc":"648:3:65","nodeType":"YulIdentifier","src":"648:3:65"},"nativeSrc":"648:28:65","nodeType":"YulFunctionCall","src":"648:28:65"},"variableNames":[{"name":"result","nativeSrc":"638:6:65","nodeType":"YulIdentifier","src":"638:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"580:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"611:5:65","nodeType":"YulTypedName","src":"611:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"621:6:65","nodeType":"YulTypedName","src":"621:6:65","type":""}],"src":"580:102:65"},{"body":{"nativeSrc":"716:152:65","nodeType":"YulBlock","src":"716:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"733:1:65","nodeType":"YulLiteral","src":"733:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"736:77:65","nodeType":"YulLiteral","src":"736:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"726:6:65","nodeType":"YulIdentifier","src":"726:6:65"},"nativeSrc":"726:88:65","nodeType":"YulFunctionCall","src":"726:88:65"},"nativeSrc":"726:88:65","nodeType":"YulExpressionStatement","src":"726:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"830:1:65","nodeType":"YulLiteral","src":"830:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"833:4:65","nodeType":"YulLiteral","src":"833:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"823:6:65","nodeType":"YulIdentifier","src":"823:6:65"},"nativeSrc":"823:15:65","nodeType":"YulFunctionCall","src":"823:15:65"},"nativeSrc":"823:15:65","nodeType":"YulExpressionStatement","src":"823:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"854:1:65","nodeType":"YulLiteral","src":"854:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"857:4:65","nodeType":"YulLiteral","src":"857:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"847:6:65","nodeType":"YulIdentifier","src":"847:6:65"},"nativeSrc":"847:15:65","nodeType":"YulFunctionCall","src":"847:15:65"},"nativeSrc":"847:15:65","nodeType":"YulExpressionStatement","src":"847:15:65"}]},"name":"panic_error_0x41","nativeSrc":"688:180:65","nodeType":"YulFunctionDefinition","src":"688:180:65"},{"body":{"nativeSrc":"917:238:65","nodeType":"YulBlock","src":"917:238:65","statements":[{"nativeSrc":"927:58:65","nodeType":"YulVariableDeclaration","src":"927:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"949:6:65","nodeType":"YulIdentifier","src":"949:6:65"},{"arguments":[{"name":"size","nativeSrc":"979:4:65","nodeType":"YulIdentifier","src":"979:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"957:21:65","nodeType":"YulIdentifier","src":"957:21:65"},"nativeSrc":"957:27:65","nodeType":"YulFunctionCall","src":"957:27:65"}],"functionName":{"name":"add","nativeSrc":"945:3:65","nodeType":"YulIdentifier","src":"945:3:65"},"nativeSrc":"945:40:65","nodeType":"YulFunctionCall","src":"945:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"931:10:65","nodeType":"YulTypedName","src":"931:10:65","type":""}]},{"body":{"nativeSrc":"1096:22:65","nodeType":"YulBlock","src":"1096:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1098:16:65","nodeType":"YulIdentifier","src":"1098:16:65"},"nativeSrc":"1098:18:65","nodeType":"YulFunctionCall","src":"1098:18:65"},"nativeSrc":"1098:18:65","nodeType":"YulExpressionStatement","src":"1098:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1039:10:65","nodeType":"YulIdentifier","src":"1039:10:65"},{"kind":"number","nativeSrc":"1051:18:65","nodeType":"YulLiteral","src":"1051:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1036:2:65","nodeType":"YulIdentifier","src":"1036:2:65"},"nativeSrc":"1036:34:65","nodeType":"YulFunctionCall","src":"1036:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1075:10:65","nodeType":"YulIdentifier","src":"1075:10:65"},{"name":"memPtr","nativeSrc":"1087:6:65","nodeType":"YulIdentifier","src":"1087:6:65"}],"functionName":{"name":"lt","nativeSrc":"1072:2:65","nodeType":"YulIdentifier","src":"1072:2:65"},"nativeSrc":"1072:22:65","nodeType":"YulFunctionCall","src":"1072:22:65"}],"functionName":{"name":"or","nativeSrc":"1033:2:65","nodeType":"YulIdentifier","src":"1033:2:65"},"nativeSrc":"1033:62:65","nodeType":"YulFunctionCall","src":"1033:62:65"},"nativeSrc":"1030:88:65","nodeType":"YulIf","src":"1030:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1134:2:65","nodeType":"YulLiteral","src":"1134:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1138:10:65","nodeType":"YulIdentifier","src":"1138:10:65"}],"functionName":{"name":"mstore","nativeSrc":"1127:6:65","nodeType":"YulIdentifier","src":"1127:6:65"},"nativeSrc":"1127:22:65","nodeType":"YulFunctionCall","src":"1127:22:65"},"nativeSrc":"1127:22:65","nodeType":"YulExpressionStatement","src":"1127:22:65"}]},"name":"finalize_allocation","nativeSrc":"874:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"903:6:65","nodeType":"YulTypedName","src":"903:6:65","type":""},{"name":"size","nativeSrc":"911:4:65","nodeType":"YulTypedName","src":"911:4:65","type":""}],"src":"874:281:65"},{"body":{"nativeSrc":"1202:88:65","nodeType":"YulBlock","src":"1202:88:65","statements":[{"nativeSrc":"1212:30:65","nodeType":"YulAssignment","src":"1212:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1222:18:65","nodeType":"YulIdentifier","src":"1222:18:65"},"nativeSrc":"1222:20:65","nodeType":"YulFunctionCall","src":"1222:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1212:6:65","nodeType":"YulIdentifier","src":"1212:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1271:6:65","nodeType":"YulIdentifier","src":"1271:6:65"},{"name":"size","nativeSrc":"1279:4:65","nodeType":"YulIdentifier","src":"1279:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1251:19:65","nodeType":"YulIdentifier","src":"1251:19:65"},"nativeSrc":"1251:33:65","nodeType":"YulFunctionCall","src":"1251:33:65"},"nativeSrc":"1251:33:65","nodeType":"YulExpressionStatement","src":"1251:33:65"}]},"name":"allocate_memory","nativeSrc":"1161:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1186:4:65","nodeType":"YulTypedName","src":"1186:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1195:6:65","nodeType":"YulTypedName","src":"1195:6:65","type":""}],"src":"1161:129:65"},{"body":{"nativeSrc":"1363:241:65","nodeType":"YulBlock","src":"1363:241:65","statements":[{"body":{"nativeSrc":"1468:22:65","nodeType":"YulBlock","src":"1468:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1470:16:65","nodeType":"YulIdentifier","src":"1470:16:65"},"nativeSrc":"1470:18:65","nodeType":"YulFunctionCall","src":"1470:18:65"},"nativeSrc":"1470:18:65","nodeType":"YulExpressionStatement","src":"1470:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1440:6:65","nodeType":"YulIdentifier","src":"1440:6:65"},{"kind":"number","nativeSrc":"1448:18:65","nodeType":"YulLiteral","src":"1448:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1437:2:65","nodeType":"YulIdentifier","src":"1437:2:65"},"nativeSrc":"1437:30:65","nodeType":"YulFunctionCall","src":"1437:30:65"},"nativeSrc":"1434:56:65","nodeType":"YulIf","src":"1434:56:65"},{"nativeSrc":"1500:37:65","nodeType":"YulAssignment","src":"1500:37:65","value":{"arguments":[{"name":"length","nativeSrc":"1530:6:65","nodeType":"YulIdentifier","src":"1530:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1508:21:65","nodeType":"YulIdentifier","src":"1508:21:65"},"nativeSrc":"1508:29:65","nodeType":"YulFunctionCall","src":"1508:29:65"},"variableNames":[{"name":"size","nativeSrc":"1500:4:65","nodeType":"YulIdentifier","src":"1500:4:65"}]},{"nativeSrc":"1574:23:65","nodeType":"YulAssignment","src":"1574:23:65","value":{"arguments":[{"name":"size","nativeSrc":"1586:4:65","nodeType":"YulIdentifier","src":"1586:4:65"},{"kind":"number","nativeSrc":"1592:4:65","nodeType":"YulLiteral","src":"1592:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1582:3:65","nodeType":"YulIdentifier","src":"1582:3:65"},"nativeSrc":"1582:15:65","nodeType":"YulFunctionCall","src":"1582:15:65"},"variableNames":[{"name":"size","nativeSrc":"1574:4:65","nodeType":"YulIdentifier","src":"1574:4:65"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1296:308:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1347:6:65","nodeType":"YulTypedName","src":"1347:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1358:4:65","nodeType":"YulTypedName","src":"1358:4:65","type":""}],"src":"1296:308:65"},{"body":{"nativeSrc":"1672:186:65","nodeType":"YulBlock","src":"1672:186:65","statements":[{"nativeSrc":"1683:10:65","nodeType":"YulVariableDeclaration","src":"1683:10:65","value":{"kind":"number","nativeSrc":"1692:1:65","nodeType":"YulLiteral","src":"1692:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1687:1:65","nodeType":"YulTypedName","src":"1687:1:65","type":""}]},{"body":{"nativeSrc":"1752:63:65","nodeType":"YulBlock","src":"1752:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1777:3:65","nodeType":"YulIdentifier","src":"1777:3:65"},{"name":"i","nativeSrc":"1782:1:65","nodeType":"YulIdentifier","src":"1782:1:65"}],"functionName":{"name":"add","nativeSrc":"1773:3:65","nodeType":"YulIdentifier","src":"1773:3:65"},"nativeSrc":"1773:11:65","nodeType":"YulFunctionCall","src":"1773:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"1796:3:65","nodeType":"YulIdentifier","src":"1796:3:65"},{"name":"i","nativeSrc":"1801:1:65","nodeType":"YulIdentifier","src":"1801:1:65"}],"functionName":{"name":"add","nativeSrc":"1792:3:65","nodeType":"YulIdentifier","src":"1792:3:65"},"nativeSrc":"1792:11:65","nodeType":"YulFunctionCall","src":"1792:11:65"}],"functionName":{"name":"mload","nativeSrc":"1786:5:65","nodeType":"YulIdentifier","src":"1786:5:65"},"nativeSrc":"1786:18:65","nodeType":"YulFunctionCall","src":"1786:18:65"}],"functionName":{"name":"mstore","nativeSrc":"1766:6:65","nodeType":"YulIdentifier","src":"1766:6:65"},"nativeSrc":"1766:39:65","nodeType":"YulFunctionCall","src":"1766:39:65"},"nativeSrc":"1766:39:65","nodeType":"YulExpressionStatement","src":"1766:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1713:1:65","nodeType":"YulIdentifier","src":"1713:1:65"},{"name":"length","nativeSrc":"1716:6:65","nodeType":"YulIdentifier","src":"1716:6:65"}],"functionName":{"name":"lt","nativeSrc":"1710:2:65","nodeType":"YulIdentifier","src":"1710:2:65"},"nativeSrc":"1710:13:65","nodeType":"YulFunctionCall","src":"1710:13:65"},"nativeSrc":"1702:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"1724:19:65","nodeType":"YulBlock","src":"1724:19:65","statements":[{"nativeSrc":"1726:15:65","nodeType":"YulAssignment","src":"1726:15:65","value":{"arguments":[{"name":"i","nativeSrc":"1735:1:65","nodeType":"YulIdentifier","src":"1735:1:65"},{"kind":"number","nativeSrc":"1738:2:65","nodeType":"YulLiteral","src":"1738:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1731:3:65","nodeType":"YulIdentifier","src":"1731:3:65"},"nativeSrc":"1731:10:65","nodeType":"YulFunctionCall","src":"1731:10:65"},"variableNames":[{"name":"i","nativeSrc":"1726:1:65","nodeType":"YulIdentifier","src":"1726:1:65"}]}]},"pre":{"nativeSrc":"1706:3:65","nodeType":"YulBlock","src":"1706:3:65","statements":[]},"src":"1702:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1835:3:65","nodeType":"YulIdentifier","src":"1835:3:65"},{"name":"length","nativeSrc":"1840:6:65","nodeType":"YulIdentifier","src":"1840:6:65"}],"functionName":{"name":"add","nativeSrc":"1831:3:65","nodeType":"YulIdentifier","src":"1831:3:65"},"nativeSrc":"1831:16:65","nodeType":"YulFunctionCall","src":"1831:16:65"},{"kind":"number","nativeSrc":"1849:1:65","nodeType":"YulLiteral","src":"1849:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1824:6:65","nodeType":"YulIdentifier","src":"1824:6:65"},"nativeSrc":"1824:27:65","nodeType":"YulFunctionCall","src":"1824:27:65"},"nativeSrc":"1824:27:65","nodeType":"YulExpressionStatement","src":"1824:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1610:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1654:3:65","nodeType":"YulTypedName","src":"1654:3:65","type":""},{"name":"dst","nativeSrc":"1659:3:65","nodeType":"YulTypedName","src":"1659:3:65","type":""},{"name":"length","nativeSrc":"1664:6:65","nodeType":"YulTypedName","src":"1664:6:65","type":""}],"src":"1610:248:65"},{"body":{"nativeSrc":"1959:339:65","nodeType":"YulBlock","src":"1959:339:65","statements":[{"nativeSrc":"1969:75:65","nodeType":"YulAssignment","src":"1969:75:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2036:6:65","nodeType":"YulIdentifier","src":"2036:6:65"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"1994:41:65","nodeType":"YulIdentifier","src":"1994:41:65"},"nativeSrc":"1994:49:65","nodeType":"YulFunctionCall","src":"1994:49:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"1978:15:65","nodeType":"YulIdentifier","src":"1978:15:65"},"nativeSrc":"1978:66:65","nodeType":"YulFunctionCall","src":"1978:66:65"},"variableNames":[{"name":"array","nativeSrc":"1969:5:65","nodeType":"YulIdentifier","src":"1969:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2060:5:65","nodeType":"YulIdentifier","src":"2060:5:65"},{"name":"length","nativeSrc":"2067:6:65","nodeType":"YulIdentifier","src":"2067:6:65"}],"functionName":{"name":"mstore","nativeSrc":"2053:6:65","nodeType":"YulIdentifier","src":"2053:6:65"},"nativeSrc":"2053:21:65","nodeType":"YulFunctionCall","src":"2053:21:65"},"nativeSrc":"2053:21:65","nodeType":"YulExpressionStatement","src":"2053:21:65"},{"nativeSrc":"2083:27:65","nodeType":"YulVariableDeclaration","src":"2083:27:65","value":{"arguments":[{"name":"array","nativeSrc":"2098:5:65","nodeType":"YulIdentifier","src":"2098:5:65"},{"kind":"number","nativeSrc":"2105:4:65","nodeType":"YulLiteral","src":"2105:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2094:3:65","nodeType":"YulIdentifier","src":"2094:3:65"},"nativeSrc":"2094:16:65","nodeType":"YulFunctionCall","src":"2094:16:65"},"variables":[{"name":"dst","nativeSrc":"2087:3:65","nodeType":"YulTypedName","src":"2087:3:65","type":""}]},{"body":{"nativeSrc":"2148:83:65","nodeType":"YulBlock","src":"2148:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2150:77:65","nodeType":"YulIdentifier","src":"2150:77:65"},"nativeSrc":"2150:79:65","nodeType":"YulFunctionCall","src":"2150:79:65"},"nativeSrc":"2150:79:65","nodeType":"YulExpressionStatement","src":"2150:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2129:3:65","nodeType":"YulIdentifier","src":"2129:3:65"},{"name":"length","nativeSrc":"2134:6:65","nodeType":"YulIdentifier","src":"2134:6:65"}],"functionName":{"name":"add","nativeSrc":"2125:3:65","nodeType":"YulIdentifier","src":"2125:3:65"},"nativeSrc":"2125:16:65","nodeType":"YulFunctionCall","src":"2125:16:65"},{"name":"end","nativeSrc":"2143:3:65","nodeType":"YulIdentifier","src":"2143:3:65"}],"functionName":{"name":"gt","nativeSrc":"2122:2:65","nodeType":"YulIdentifier","src":"2122:2:65"},"nativeSrc":"2122:25:65","nodeType":"YulFunctionCall","src":"2122:25:65"},"nativeSrc":"2119:112:65","nodeType":"YulIf","src":"2119:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2275:3:65","nodeType":"YulIdentifier","src":"2275:3:65"},{"name":"dst","nativeSrc":"2280:3:65","nodeType":"YulIdentifier","src":"2280:3:65"},{"name":"length","nativeSrc":"2285:6:65","nodeType":"YulIdentifier","src":"2285:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2240:34:65","nodeType":"YulIdentifier","src":"2240:34:65"},"nativeSrc":"2240:52:65","nodeType":"YulFunctionCall","src":"2240:52:65"},"nativeSrc":"2240:52:65","nodeType":"YulExpressionStatement","src":"2240:52:65"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"1864:434:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1932:3:65","nodeType":"YulTypedName","src":"1932:3:65","type":""},{"name":"length","nativeSrc":"1937:6:65","nodeType":"YulTypedName","src":"1937:6:65","type":""},{"name":"end","nativeSrc":"1945:3:65","nodeType":"YulTypedName","src":"1945:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"1953:5:65","nodeType":"YulTypedName","src":"1953:5:65","type":""}],"src":"1864:434:65"},{"body":{"nativeSrc":"2391:282:65","nodeType":"YulBlock","src":"2391:282:65","statements":[{"body":{"nativeSrc":"2440:83:65","nodeType":"YulBlock","src":"2440:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2442:77:65","nodeType":"YulIdentifier","src":"2442:77:65"},"nativeSrc":"2442:79:65","nodeType":"YulFunctionCall","src":"2442:79:65"},"nativeSrc":"2442:79:65","nodeType":"YulExpressionStatement","src":"2442:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2419:6:65","nodeType":"YulIdentifier","src":"2419:6:65"},{"kind":"number","nativeSrc":"2427:4:65","nodeType":"YulLiteral","src":"2427:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2415:3:65","nodeType":"YulIdentifier","src":"2415:3:65"},"nativeSrc":"2415:17:65","nodeType":"YulFunctionCall","src":"2415:17:65"},{"name":"end","nativeSrc":"2434:3:65","nodeType":"YulIdentifier","src":"2434:3:65"}],"functionName":{"name":"slt","nativeSrc":"2411:3:65","nodeType":"YulIdentifier","src":"2411:3:65"},"nativeSrc":"2411:27:65","nodeType":"YulFunctionCall","src":"2411:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2404:6:65","nodeType":"YulIdentifier","src":"2404:6:65"},"nativeSrc":"2404:35:65","nodeType":"YulFunctionCall","src":"2404:35:65"},"nativeSrc":"2401:122:65","nodeType":"YulIf","src":"2401:122:65"},{"nativeSrc":"2532:27:65","nodeType":"YulVariableDeclaration","src":"2532:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"2552:6:65","nodeType":"YulIdentifier","src":"2552:6:65"}],"functionName":{"name":"mload","nativeSrc":"2546:5:65","nodeType":"YulIdentifier","src":"2546:5:65"},"nativeSrc":"2546:13:65","nodeType":"YulFunctionCall","src":"2546:13:65"},"variables":[{"name":"length","nativeSrc":"2536:6:65","nodeType":"YulTypedName","src":"2536:6:65","type":""}]},{"nativeSrc":"2568:99:65","nodeType":"YulAssignment","src":"2568:99:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2640:6:65","nodeType":"YulIdentifier","src":"2640:6:65"},{"kind":"number","nativeSrc":"2648:4:65","nodeType":"YulLiteral","src":"2648:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2636:3:65","nodeType":"YulIdentifier","src":"2636:3:65"},"nativeSrc":"2636:17:65","nodeType":"YulFunctionCall","src":"2636:17:65"},{"name":"length","nativeSrc":"2655:6:65","nodeType":"YulIdentifier","src":"2655:6:65"},{"name":"end","nativeSrc":"2663:3:65","nodeType":"YulIdentifier","src":"2663:3:65"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"2577:58:65","nodeType":"YulIdentifier","src":"2577:58:65"},"nativeSrc":"2577:90:65","nodeType":"YulFunctionCall","src":"2577:90:65"},"variableNames":[{"name":"array","nativeSrc":"2568:5:65","nodeType":"YulIdentifier","src":"2568:5:65"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"2318:355:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2369:6:65","nodeType":"YulTypedName","src":"2369:6:65","type":""},{"name":"end","nativeSrc":"2377:3:65","nodeType":"YulTypedName","src":"2377:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2385:5:65","nodeType":"YulTypedName","src":"2385:5:65","type":""}],"src":"2318:355:65"},{"body":{"nativeSrc":"2722:43:65","nodeType":"YulBlock","src":"2722:43:65","statements":[{"nativeSrc":"2732:27:65","nodeType":"YulAssignment","src":"2732:27:65","value":{"arguments":[{"name":"value","nativeSrc":"2747:5:65","nodeType":"YulIdentifier","src":"2747:5:65"},{"kind":"number","nativeSrc":"2754:4:65","nodeType":"YulLiteral","src":"2754:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"2743:3:65","nodeType":"YulIdentifier","src":"2743:3:65"},"nativeSrc":"2743:16:65","nodeType":"YulFunctionCall","src":"2743:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2732:7:65","nodeType":"YulIdentifier","src":"2732:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"2679:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2704:5:65","nodeType":"YulTypedName","src":"2704:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2714:7:65","nodeType":"YulTypedName","src":"2714:7:65","type":""}],"src":"2679:86:65"},{"body":{"nativeSrc":"2812:77:65","nodeType":"YulBlock","src":"2812:77:65","statements":[{"body":{"nativeSrc":"2867:16:65","nodeType":"YulBlock","src":"2867:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2876:1:65","nodeType":"YulLiteral","src":"2876:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2879:1:65","nodeType":"YulLiteral","src":"2879:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2869:6:65","nodeType":"YulIdentifier","src":"2869:6:65"},"nativeSrc":"2869:12:65","nodeType":"YulFunctionCall","src":"2869:12:65"},"nativeSrc":"2869:12:65","nodeType":"YulExpressionStatement","src":"2869:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2835:5:65","nodeType":"YulIdentifier","src":"2835:5:65"},{"arguments":[{"name":"value","nativeSrc":"2858:5:65","nodeType":"YulIdentifier","src":"2858:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"2842:15:65","nodeType":"YulIdentifier","src":"2842:15:65"},"nativeSrc":"2842:22:65","nodeType":"YulFunctionCall","src":"2842:22:65"}],"functionName":{"name":"eq","nativeSrc":"2832:2:65","nodeType":"YulIdentifier","src":"2832:2:65"},"nativeSrc":"2832:33:65","nodeType":"YulFunctionCall","src":"2832:33:65"}],"functionName":{"name":"iszero","nativeSrc":"2825:6:65","nodeType":"YulIdentifier","src":"2825:6:65"},"nativeSrc":"2825:41:65","nodeType":"YulFunctionCall","src":"2825:41:65"},"nativeSrc":"2822:61:65","nodeType":"YulIf","src":"2822:61:65"}]},"name":"validator_revert_t_uint8","nativeSrc":"2771:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2805:5:65","nodeType":"YulTypedName","src":"2805:5:65","type":""}],"src":"2771:118:65"},{"body":{"nativeSrc":"2956:78:65","nodeType":"YulBlock","src":"2956:78:65","statements":[{"nativeSrc":"2966:22:65","nodeType":"YulAssignment","src":"2966:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"2981:6:65","nodeType":"YulIdentifier","src":"2981:6:65"}],"functionName":{"name":"mload","nativeSrc":"2975:5:65","nodeType":"YulIdentifier","src":"2975:5:65"},"nativeSrc":"2975:13:65","nodeType":"YulFunctionCall","src":"2975:13:65"},"variableNames":[{"name":"value","nativeSrc":"2966:5:65","nodeType":"YulIdentifier","src":"2966:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3022:5:65","nodeType":"YulIdentifier","src":"3022:5:65"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"2997:24:65","nodeType":"YulIdentifier","src":"2997:24:65"},"nativeSrc":"2997:31:65","nodeType":"YulFunctionCall","src":"2997:31:65"},"nativeSrc":"2997:31:65","nodeType":"YulExpressionStatement","src":"2997:31:65"}]},"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"2895:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2934:6:65","nodeType":"YulTypedName","src":"2934:6:65","type":""},{"name":"end","nativeSrc":"2942:3:65","nodeType":"YulTypedName","src":"2942:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2950:5:65","nodeType":"YulTypedName","src":"2950:5:65","type":""}],"src":"2895:139:65"},{"body":{"nativeSrc":"3169:876:65","nodeType":"YulBlock","src":"3169:876:65","statements":[{"body":{"nativeSrc":"3215:83:65","nodeType":"YulBlock","src":"3215:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3217:77:65","nodeType":"YulIdentifier","src":"3217:77:65"},"nativeSrc":"3217:79:65","nodeType":"YulFunctionCall","src":"3217:79:65"},"nativeSrc":"3217:79:65","nodeType":"YulExpressionStatement","src":"3217:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3190:7:65","nodeType":"YulIdentifier","src":"3190:7:65"},{"name":"headStart","nativeSrc":"3199:9:65","nodeType":"YulIdentifier","src":"3199:9:65"}],"functionName":{"name":"sub","nativeSrc":"3186:3:65","nodeType":"YulIdentifier","src":"3186:3:65"},"nativeSrc":"3186:23:65","nodeType":"YulFunctionCall","src":"3186:23:65"},{"kind":"number","nativeSrc":"3211:2:65","nodeType":"YulLiteral","src":"3211:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3182:3:65","nodeType":"YulIdentifier","src":"3182:3:65"},"nativeSrc":"3182:32:65","nodeType":"YulFunctionCall","src":"3182:32:65"},"nativeSrc":"3179:119:65","nodeType":"YulIf","src":"3179:119:65"},{"nativeSrc":"3308:291:65","nodeType":"YulBlock","src":"3308:291:65","statements":[{"nativeSrc":"3323:38:65","nodeType":"YulVariableDeclaration","src":"3323:38:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3347:9:65","nodeType":"YulIdentifier","src":"3347:9:65"},{"kind":"number","nativeSrc":"3358:1:65","nodeType":"YulLiteral","src":"3358:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3343:3:65","nodeType":"YulIdentifier","src":"3343:3:65"},"nativeSrc":"3343:17:65","nodeType":"YulFunctionCall","src":"3343:17:65"}],"functionName":{"name":"mload","nativeSrc":"3337:5:65","nodeType":"YulIdentifier","src":"3337:5:65"},"nativeSrc":"3337:24:65","nodeType":"YulFunctionCall","src":"3337:24:65"},"variables":[{"name":"offset","nativeSrc":"3327:6:65","nodeType":"YulTypedName","src":"3327:6:65","type":""}]},{"body":{"nativeSrc":"3408:83:65","nodeType":"YulBlock","src":"3408:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3410:77:65","nodeType":"YulIdentifier","src":"3410:77:65"},"nativeSrc":"3410:79:65","nodeType":"YulFunctionCall","src":"3410:79:65"},"nativeSrc":"3410:79:65","nodeType":"YulExpressionStatement","src":"3410:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3380:6:65","nodeType":"YulIdentifier","src":"3380:6:65"},{"kind":"number","nativeSrc":"3388:18:65","nodeType":"YulLiteral","src":"3388:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3377:2:65","nodeType":"YulIdentifier","src":"3377:2:65"},"nativeSrc":"3377:30:65","nodeType":"YulFunctionCall","src":"3377:30:65"},"nativeSrc":"3374:117:65","nodeType":"YulIf","src":"3374:117:65"},{"nativeSrc":"3505:84:65","nodeType":"YulAssignment","src":"3505:84:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3561:9:65","nodeType":"YulIdentifier","src":"3561:9:65"},{"name":"offset","nativeSrc":"3572:6:65","nodeType":"YulIdentifier","src":"3572:6:65"}],"functionName":{"name":"add","nativeSrc":"3557:3:65","nodeType":"YulIdentifier","src":"3557:3:65"},"nativeSrc":"3557:22:65","nodeType":"YulFunctionCall","src":"3557:22:65"},{"name":"dataEnd","nativeSrc":"3581:7:65","nodeType":"YulIdentifier","src":"3581:7:65"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3515:41:65","nodeType":"YulIdentifier","src":"3515:41:65"},"nativeSrc":"3515:74:65","nodeType":"YulFunctionCall","src":"3515:74:65"},"variableNames":[{"name":"value0","nativeSrc":"3505:6:65","nodeType":"YulIdentifier","src":"3505:6:65"}]}]},{"nativeSrc":"3609:292:65","nodeType":"YulBlock","src":"3609:292:65","statements":[{"nativeSrc":"3624:39:65","nodeType":"YulVariableDeclaration","src":"3624:39:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3648:9:65","nodeType":"YulIdentifier","src":"3648:9:65"},{"kind":"number","nativeSrc":"3659:2:65","nodeType":"YulLiteral","src":"3659:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3644:3:65","nodeType":"YulIdentifier","src":"3644:3:65"},"nativeSrc":"3644:18:65","nodeType":"YulFunctionCall","src":"3644:18:65"}],"functionName":{"name":"mload","nativeSrc":"3638:5:65","nodeType":"YulIdentifier","src":"3638:5:65"},"nativeSrc":"3638:25:65","nodeType":"YulFunctionCall","src":"3638:25:65"},"variables":[{"name":"offset","nativeSrc":"3628:6:65","nodeType":"YulTypedName","src":"3628:6:65","type":""}]},{"body":{"nativeSrc":"3710:83:65","nodeType":"YulBlock","src":"3710:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3712:77:65","nodeType":"YulIdentifier","src":"3712:77:65"},"nativeSrc":"3712:79:65","nodeType":"YulFunctionCall","src":"3712:79:65"},"nativeSrc":"3712:79:65","nodeType":"YulExpressionStatement","src":"3712:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3682:6:65","nodeType":"YulIdentifier","src":"3682:6:65"},{"kind":"number","nativeSrc":"3690:18:65","nodeType":"YulLiteral","src":"3690:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3679:2:65","nodeType":"YulIdentifier","src":"3679:2:65"},"nativeSrc":"3679:30:65","nodeType":"YulFunctionCall","src":"3679:30:65"},"nativeSrc":"3676:117:65","nodeType":"YulIf","src":"3676:117:65"},{"nativeSrc":"3807:84:65","nodeType":"YulAssignment","src":"3807:84:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3863:9:65","nodeType":"YulIdentifier","src":"3863:9:65"},{"name":"offset","nativeSrc":"3874:6:65","nodeType":"YulIdentifier","src":"3874:6:65"}],"functionName":{"name":"add","nativeSrc":"3859:3:65","nodeType":"YulIdentifier","src":"3859:3:65"},"nativeSrc":"3859:22:65","nodeType":"YulFunctionCall","src":"3859:22:65"},{"name":"dataEnd","nativeSrc":"3883:7:65","nodeType":"YulIdentifier","src":"3883:7:65"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3817:41:65","nodeType":"YulIdentifier","src":"3817:41:65"},"nativeSrc":"3817:74:65","nodeType":"YulFunctionCall","src":"3817:74:65"},"variableNames":[{"name":"value1","nativeSrc":"3807:6:65","nodeType":"YulIdentifier","src":"3807:6:65"}]}]},{"nativeSrc":"3911:127:65","nodeType":"YulBlock","src":"3911:127:65","statements":[{"nativeSrc":"3926:16:65","nodeType":"YulVariableDeclaration","src":"3926:16:65","value":{"kind":"number","nativeSrc":"3940:2:65","nodeType":"YulLiteral","src":"3940:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"3930:6:65","nodeType":"YulTypedName","src":"3930:6:65","type":""}]},{"nativeSrc":"3956:72:65","nodeType":"YulAssignment","src":"3956:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4000:9:65","nodeType":"YulIdentifier","src":"4000:9:65"},{"name":"offset","nativeSrc":"4011:6:65","nodeType":"YulIdentifier","src":"4011:6:65"}],"functionName":{"name":"add","nativeSrc":"3996:3:65","nodeType":"YulIdentifier","src":"3996:3:65"},"nativeSrc":"3996:22:65","nodeType":"YulFunctionCall","src":"3996:22:65"},{"name":"dataEnd","nativeSrc":"4020:7:65","nodeType":"YulIdentifier","src":"4020:7:65"}],"functionName":{"name":"abi_decode_t_uint8_fromMemory","nativeSrc":"3966:29:65","nodeType":"YulIdentifier","src":"3966:29:65"},"nativeSrc":"3966:62:65","nodeType":"YulFunctionCall","src":"3966:62:65"},"variableNames":[{"name":"value2","nativeSrc":"3956:6:65","nodeType":"YulIdentifier","src":"3956:6:65"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory","nativeSrc":"3040:1005:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3123:9:65","nodeType":"YulTypedName","src":"3123:9:65","type":""},{"name":"dataEnd","nativeSrc":"3134:7:65","nodeType":"YulTypedName","src":"3134:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3146:6:65","nodeType":"YulTypedName","src":"3146:6:65","type":""},{"name":"value1","nativeSrc":"3154:6:65","nodeType":"YulTypedName","src":"3154:6:65","type":""},{"name":"value2","nativeSrc":"3162:6:65","nodeType":"YulTypedName","src":"3162:6:65","type":""}],"src":"3040:1005:65"},{"body":{"nativeSrc":"4110:40:65","nodeType":"YulBlock","src":"4110:40:65","statements":[{"nativeSrc":"4121:22:65","nodeType":"YulAssignment","src":"4121:22:65","value":{"arguments":[{"name":"value","nativeSrc":"4137:5:65","nodeType":"YulIdentifier","src":"4137:5:65"}],"functionName":{"name":"mload","nativeSrc":"4131:5:65","nodeType":"YulIdentifier","src":"4131:5:65"},"nativeSrc":"4131:12:65","nodeType":"YulFunctionCall","src":"4131:12:65"},"variableNames":[{"name":"length","nativeSrc":"4121:6:65","nodeType":"YulIdentifier","src":"4121:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"4051:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4093:5:65","nodeType":"YulTypedName","src":"4093:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4103:6:65","nodeType":"YulTypedName","src":"4103:6:65","type":""}],"src":"4051:99:65"},{"body":{"nativeSrc":"4184:152:65","nodeType":"YulBlock","src":"4184:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4201:1:65","nodeType":"YulLiteral","src":"4201:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4204:77:65","nodeType":"YulLiteral","src":"4204:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4194:6:65","nodeType":"YulIdentifier","src":"4194:6:65"},"nativeSrc":"4194:88:65","nodeType":"YulFunctionCall","src":"4194:88:65"},"nativeSrc":"4194:88:65","nodeType":"YulExpressionStatement","src":"4194:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4298:1:65","nodeType":"YulLiteral","src":"4298:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4301:4:65","nodeType":"YulLiteral","src":"4301:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"4291:6:65","nodeType":"YulIdentifier","src":"4291:6:65"},"nativeSrc":"4291:15:65","nodeType":"YulFunctionCall","src":"4291:15:65"},"nativeSrc":"4291:15:65","nodeType":"YulExpressionStatement","src":"4291:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4322:1:65","nodeType":"YulLiteral","src":"4322:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4325:4:65","nodeType":"YulLiteral","src":"4325:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4315:6:65","nodeType":"YulIdentifier","src":"4315:6:65"},"nativeSrc":"4315:15:65","nodeType":"YulFunctionCall","src":"4315:15:65"},"nativeSrc":"4315:15:65","nodeType":"YulExpressionStatement","src":"4315:15:65"}]},"name":"panic_error_0x22","nativeSrc":"4156:180:65","nodeType":"YulFunctionDefinition","src":"4156:180:65"},{"body":{"nativeSrc":"4393:269:65","nodeType":"YulBlock","src":"4393:269:65","statements":[{"nativeSrc":"4403:22:65","nodeType":"YulAssignment","src":"4403:22:65","value":{"arguments":[{"name":"data","nativeSrc":"4417:4:65","nodeType":"YulIdentifier","src":"4417:4:65"},{"kind":"number","nativeSrc":"4423:1:65","nodeType":"YulLiteral","src":"4423:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"4413:3:65","nodeType":"YulIdentifier","src":"4413:3:65"},"nativeSrc":"4413:12:65","nodeType":"YulFunctionCall","src":"4413:12:65"},"variableNames":[{"name":"length","nativeSrc":"4403:6:65","nodeType":"YulIdentifier","src":"4403:6:65"}]},{"nativeSrc":"4434:38:65","nodeType":"YulVariableDeclaration","src":"4434:38:65","value":{"arguments":[{"name":"data","nativeSrc":"4464:4:65","nodeType":"YulIdentifier","src":"4464:4:65"},{"kind":"number","nativeSrc":"4470:1:65","nodeType":"YulLiteral","src":"4470:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4460:3:65","nodeType":"YulIdentifier","src":"4460:3:65"},"nativeSrc":"4460:12:65","nodeType":"YulFunctionCall","src":"4460:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"4438:18:65","nodeType":"YulTypedName","src":"4438:18:65","type":""}]},{"body":{"nativeSrc":"4511:51:65","nodeType":"YulBlock","src":"4511:51:65","statements":[{"nativeSrc":"4525:27:65","nodeType":"YulAssignment","src":"4525:27:65","value":{"arguments":[{"name":"length","nativeSrc":"4539:6:65","nodeType":"YulIdentifier","src":"4539:6:65"},{"kind":"number","nativeSrc":"4547:4:65","nodeType":"YulLiteral","src":"4547:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"4535:3:65","nodeType":"YulIdentifier","src":"4535:3:65"},"nativeSrc":"4535:17:65","nodeType":"YulFunctionCall","src":"4535:17:65"},"variableNames":[{"name":"length","nativeSrc":"4525:6:65","nodeType":"YulIdentifier","src":"4525:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4491:18:65","nodeType":"YulIdentifier","src":"4491:18:65"}],"functionName":{"name":"iszero","nativeSrc":"4484:6:65","nodeType":"YulIdentifier","src":"4484:6:65"},"nativeSrc":"4484:26:65","nodeType":"YulFunctionCall","src":"4484:26:65"},"nativeSrc":"4481:81:65","nodeType":"YulIf","src":"4481:81:65"},{"body":{"nativeSrc":"4614:42:65","nodeType":"YulBlock","src":"4614:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"4628:16:65","nodeType":"YulIdentifier","src":"4628:16:65"},"nativeSrc":"4628:18:65","nodeType":"YulFunctionCall","src":"4628:18:65"},"nativeSrc":"4628:18:65","nodeType":"YulExpressionStatement","src":"4628:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"4578:18:65","nodeType":"YulIdentifier","src":"4578:18:65"},{"arguments":[{"name":"length","nativeSrc":"4601:6:65","nodeType":"YulIdentifier","src":"4601:6:65"},{"kind":"number","nativeSrc":"4609:2:65","nodeType":"YulLiteral","src":"4609:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"4598:2:65","nodeType":"YulIdentifier","src":"4598:2:65"},"nativeSrc":"4598:14:65","nodeType":"YulFunctionCall","src":"4598:14:65"}],"functionName":{"name":"eq","nativeSrc":"4575:2:65","nodeType":"YulIdentifier","src":"4575:2:65"},"nativeSrc":"4575:38:65","nodeType":"YulFunctionCall","src":"4575:38:65"},"nativeSrc":"4572:84:65","nodeType":"YulIf","src":"4572:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"4342:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"4377:4:65","nodeType":"YulTypedName","src":"4377:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4386:6:65","nodeType":"YulTypedName","src":"4386:6:65","type":""}],"src":"4342:320:65"},{"body":{"nativeSrc":"4722:87:65","nodeType":"YulBlock","src":"4722:87:65","statements":[{"nativeSrc":"4732:11:65","nodeType":"YulAssignment","src":"4732:11:65","value":{"name":"ptr","nativeSrc":"4740:3:65","nodeType":"YulIdentifier","src":"4740:3:65"},"variableNames":[{"name":"data","nativeSrc":"4732:4:65","nodeType":"YulIdentifier","src":"4732:4:65"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4760:1:65","nodeType":"YulLiteral","src":"4760:1:65","type":"","value":"0"},{"name":"ptr","nativeSrc":"4763:3:65","nodeType":"YulIdentifier","src":"4763:3:65"}],"functionName":{"name":"mstore","nativeSrc":"4753:6:65","nodeType":"YulIdentifier","src":"4753:6:65"},"nativeSrc":"4753:14:65","nodeType":"YulFunctionCall","src":"4753:14:65"},"nativeSrc":"4753:14:65","nodeType":"YulExpressionStatement","src":"4753:14:65"},{"nativeSrc":"4776:26:65","nodeType":"YulAssignment","src":"4776:26:65","value":{"arguments":[{"kind":"number","nativeSrc":"4794:1:65","nodeType":"YulLiteral","src":"4794:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4797:4:65","nodeType":"YulLiteral","src":"4797:4:65","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4784:9:65","nodeType":"YulIdentifier","src":"4784:9:65"},"nativeSrc":"4784:18:65","nodeType":"YulFunctionCall","src":"4784:18:65"},"variableNames":[{"name":"data","nativeSrc":"4776:4:65","nodeType":"YulIdentifier","src":"4776:4:65"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"4668:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4709:3:65","nodeType":"YulTypedName","src":"4709:3:65","type":""}],"returnVariables":[{"name":"data","nativeSrc":"4717:4:65","nodeType":"YulTypedName","src":"4717:4:65","type":""}],"src":"4668:141:65"},{"body":{"nativeSrc":"4859:49:65","nodeType":"YulBlock","src":"4859:49:65","statements":[{"nativeSrc":"4869:33:65","nodeType":"YulAssignment","src":"4869:33:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4887:5:65","nodeType":"YulIdentifier","src":"4887:5:65"},{"kind":"number","nativeSrc":"4894:2:65","nodeType":"YulLiteral","src":"4894:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4883:3:65","nodeType":"YulIdentifier","src":"4883:3:65"},"nativeSrc":"4883:14:65","nodeType":"YulFunctionCall","src":"4883:14:65"},{"kind":"number","nativeSrc":"4899:2:65","nodeType":"YulLiteral","src":"4899:2:65","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"4879:3:65","nodeType":"YulIdentifier","src":"4879:3:65"},"nativeSrc":"4879:23:65","nodeType":"YulFunctionCall","src":"4879:23:65"},"variableNames":[{"name":"result","nativeSrc":"4869:6:65","nodeType":"YulIdentifier","src":"4869:6:65"}]}]},"name":"divide_by_32_ceil","nativeSrc":"4815:93:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4842:5:65","nodeType":"YulTypedName","src":"4842:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4852:6:65","nodeType":"YulTypedName","src":"4852:6:65","type":""}],"src":"4815:93:65"},{"body":{"nativeSrc":"4967:54:65","nodeType":"YulBlock","src":"4967:54:65","statements":[{"nativeSrc":"4977:37:65","nodeType":"YulAssignment","src":"4977:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"5002:4:65","nodeType":"YulIdentifier","src":"5002:4:65"},{"name":"value","nativeSrc":"5008:5:65","nodeType":"YulIdentifier","src":"5008:5:65"}],"functionName":{"name":"shl","nativeSrc":"4998:3:65","nodeType":"YulIdentifier","src":"4998:3:65"},"nativeSrc":"4998:16:65","nodeType":"YulFunctionCall","src":"4998:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"4977:8:65","nodeType":"YulIdentifier","src":"4977:8:65"}]}]},"name":"shift_left_dynamic","nativeSrc":"4914:107:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"4942:4:65","nodeType":"YulTypedName","src":"4942:4:65","type":""},{"name":"value","nativeSrc":"4948:5:65","nodeType":"YulTypedName","src":"4948:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"4958:8:65","nodeType":"YulTypedName","src":"4958:8:65","type":""}],"src":"4914:107:65"},{"body":{"nativeSrc":"5103:317:65","nodeType":"YulBlock","src":"5103:317:65","statements":[{"nativeSrc":"5113:35:65","nodeType":"YulVariableDeclaration","src":"5113:35:65","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"5134:10:65","nodeType":"YulIdentifier","src":"5134:10:65"},{"kind":"number","nativeSrc":"5146:1:65","nodeType":"YulLiteral","src":"5146:1:65","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"5130:3:65","nodeType":"YulIdentifier","src":"5130:3:65"},"nativeSrc":"5130:18:65","nodeType":"YulFunctionCall","src":"5130:18:65"},"variables":[{"name":"shiftBits","nativeSrc":"5117:9:65","nodeType":"YulTypedName","src":"5117:9:65","type":""}]},{"nativeSrc":"5157:109:65","nodeType":"YulVariableDeclaration","src":"5157:109:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5188:9:65","nodeType":"YulIdentifier","src":"5188:9:65"},{"kind":"number","nativeSrc":"5199:66:65","nodeType":"YulLiteral","src":"5199:66:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5169:18:65","nodeType":"YulIdentifier","src":"5169:18:65"},"nativeSrc":"5169:97:65","nodeType":"YulFunctionCall","src":"5169:97:65"},"variables":[{"name":"mask","nativeSrc":"5161:4:65","nodeType":"YulTypedName","src":"5161:4:65","type":""}]},{"nativeSrc":"5275:51:65","nodeType":"YulAssignment","src":"5275:51:65","value":{"arguments":[{"name":"shiftBits","nativeSrc":"5306:9:65","nodeType":"YulIdentifier","src":"5306:9:65"},{"name":"toInsert","nativeSrc":"5317:8:65","nodeType":"YulIdentifier","src":"5317:8:65"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"5287:18:65","nodeType":"YulIdentifier","src":"5287:18:65"},"nativeSrc":"5287:39:65","nodeType":"YulFunctionCall","src":"5287:39:65"},"variableNames":[{"name":"toInsert","nativeSrc":"5275:8:65","nodeType":"YulIdentifier","src":"5275:8:65"}]},{"nativeSrc":"5335:30:65","nodeType":"YulAssignment","src":"5335:30:65","value":{"arguments":[{"name":"value","nativeSrc":"5348:5:65","nodeType":"YulIdentifier","src":"5348:5:65"},{"arguments":[{"name":"mask","nativeSrc":"5359:4:65","nodeType":"YulIdentifier","src":"5359:4:65"}],"functionName":{"name":"not","nativeSrc":"5355:3:65","nodeType":"YulIdentifier","src":"5355:3:65"},"nativeSrc":"5355:9:65","nodeType":"YulFunctionCall","src":"5355:9:65"}],"functionName":{"name":"and","nativeSrc":"5344:3:65","nodeType":"YulIdentifier","src":"5344:3:65"},"nativeSrc":"5344:21:65","nodeType":"YulFunctionCall","src":"5344:21:65"},"variableNames":[{"name":"value","nativeSrc":"5335:5:65","nodeType":"YulIdentifier","src":"5335:5:65"}]},{"nativeSrc":"5374:40:65","nodeType":"YulAssignment","src":"5374:40:65","value":{"arguments":[{"name":"value","nativeSrc":"5387:5:65","nodeType":"YulIdentifier","src":"5387:5:65"},{"arguments":[{"name":"toInsert","nativeSrc":"5398:8:65","nodeType":"YulIdentifier","src":"5398:8:65"},{"name":"mask","nativeSrc":"5408:4:65","nodeType":"YulIdentifier","src":"5408:4:65"}],"functionName":{"name":"and","nativeSrc":"5394:3:65","nodeType":"YulIdentifier","src":"5394:3:65"},"nativeSrc":"5394:19:65","nodeType":"YulFunctionCall","src":"5394:19:65"}],"functionName":{"name":"or","nativeSrc":"5384:2:65","nodeType":"YulIdentifier","src":"5384:2:65"},"nativeSrc":"5384:30:65","nodeType":"YulFunctionCall","src":"5384:30:65"},"variableNames":[{"name":"result","nativeSrc":"5374:6:65","nodeType":"YulIdentifier","src":"5374:6:65"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"5027:393:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5064:5:65","nodeType":"YulTypedName","src":"5064:5:65","type":""},{"name":"shiftBytes","nativeSrc":"5071:10:65","nodeType":"YulTypedName","src":"5071:10:65","type":""},{"name":"toInsert","nativeSrc":"5083:8:65","nodeType":"YulTypedName","src":"5083:8:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5096:6:65","nodeType":"YulTypedName","src":"5096:6:65","type":""}],"src":"5027:393:65"},{"body":{"nativeSrc":"5471:32:65","nodeType":"YulBlock","src":"5471:32:65","statements":[{"nativeSrc":"5481:16:65","nodeType":"YulAssignment","src":"5481:16:65","value":{"name":"value","nativeSrc":"5492:5:65","nodeType":"YulIdentifier","src":"5492:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"5481:7:65","nodeType":"YulIdentifier","src":"5481:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5426:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5453:5:65","nodeType":"YulTypedName","src":"5453:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5463:7:65","nodeType":"YulTypedName","src":"5463:7:65","type":""}],"src":"5426:77:65"},{"body":{"nativeSrc":"5541:28:65","nodeType":"YulBlock","src":"5541:28:65","statements":[{"nativeSrc":"5551:12:65","nodeType":"YulAssignment","src":"5551:12:65","value":{"name":"value","nativeSrc":"5558:5:65","nodeType":"YulIdentifier","src":"5558:5:65"},"variableNames":[{"name":"ret","nativeSrc":"5551:3:65","nodeType":"YulIdentifier","src":"5551:3:65"}]}]},"name":"identity","nativeSrc":"5509:60:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5527:5:65","nodeType":"YulTypedName","src":"5527:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5537:3:65","nodeType":"YulTypedName","src":"5537:3:65","type":""}],"src":"5509:60:65"},{"body":{"nativeSrc":"5635:82:65","nodeType":"YulBlock","src":"5635:82:65","statements":[{"nativeSrc":"5645:66:65","nodeType":"YulAssignment","src":"5645:66:65","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5703:5:65","nodeType":"YulIdentifier","src":"5703:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5685:17:65","nodeType":"YulIdentifier","src":"5685:17:65"},"nativeSrc":"5685:24:65","nodeType":"YulFunctionCall","src":"5685:24:65"}],"functionName":{"name":"identity","nativeSrc":"5676:8:65","nodeType":"YulIdentifier","src":"5676:8:65"},"nativeSrc":"5676:34:65","nodeType":"YulFunctionCall","src":"5676:34:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5658:17:65","nodeType":"YulIdentifier","src":"5658:17:65"},"nativeSrc":"5658:53:65","nodeType":"YulFunctionCall","src":"5658:53:65"},"variableNames":[{"name":"converted","nativeSrc":"5645:9:65","nodeType":"YulIdentifier","src":"5645:9:65"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5575:142:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5615:5:65","nodeType":"YulTypedName","src":"5615:5:65","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5625:9:65","nodeType":"YulTypedName","src":"5625:9:65","type":""}],"src":"5575:142:65"},{"body":{"nativeSrc":"5770:28:65","nodeType":"YulBlock","src":"5770:28:65","statements":[{"nativeSrc":"5780:12:65","nodeType":"YulAssignment","src":"5780:12:65","value":{"name":"value","nativeSrc":"5787:5:65","nodeType":"YulIdentifier","src":"5787:5:65"},"variableNames":[{"name":"ret","nativeSrc":"5780:3:65","nodeType":"YulIdentifier","src":"5780:3:65"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"5723:75:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5756:5:65","nodeType":"YulTypedName","src":"5756:5:65","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5766:3:65","nodeType":"YulTypedName","src":"5766:3:65","type":""}],"src":"5723:75:65"},{"body":{"nativeSrc":"5880:193:65","nodeType":"YulBlock","src":"5880:193:65","statements":[{"nativeSrc":"5890:63:65","nodeType":"YulVariableDeclaration","src":"5890:63:65","value":{"arguments":[{"name":"value_0","nativeSrc":"5945:7:65","nodeType":"YulIdentifier","src":"5945:7:65"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"5914:30:65","nodeType":"YulIdentifier","src":"5914:30:65"},"nativeSrc":"5914:39:65","nodeType":"YulFunctionCall","src":"5914:39:65"},"variables":[{"name":"convertedValue_0","nativeSrc":"5894:16:65","nodeType":"YulTypedName","src":"5894:16:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5969:4:65","nodeType":"YulIdentifier","src":"5969:4:65"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"6009:4:65","nodeType":"YulIdentifier","src":"6009:4:65"}],"functionName":{"name":"sload","nativeSrc":"6003:5:65","nodeType":"YulIdentifier","src":"6003:5:65"},"nativeSrc":"6003:11:65","nodeType":"YulFunctionCall","src":"6003:11:65"},{"name":"offset","nativeSrc":"6016:6:65","nodeType":"YulIdentifier","src":"6016:6:65"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"6048:16:65","nodeType":"YulIdentifier","src":"6048:16:65"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"6024:23:65","nodeType":"YulIdentifier","src":"6024:23:65"},"nativeSrc":"6024:41:65","nodeType":"YulFunctionCall","src":"6024:41:65"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"5975:27:65","nodeType":"YulIdentifier","src":"5975:27:65"},"nativeSrc":"5975:91:65","nodeType":"YulFunctionCall","src":"5975:91:65"}],"functionName":{"name":"sstore","nativeSrc":"5962:6:65","nodeType":"YulIdentifier","src":"5962:6:65"},"nativeSrc":"5962:105:65","nodeType":"YulFunctionCall","src":"5962:105:65"},"nativeSrc":"5962:105:65","nodeType":"YulExpressionStatement","src":"5962:105:65"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"5804:269:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"5857:4:65","nodeType":"YulTypedName","src":"5857:4:65","type":""},{"name":"offset","nativeSrc":"5863:6:65","nodeType":"YulTypedName","src":"5863:6:65","type":""},{"name":"value_0","nativeSrc":"5871:7:65","nodeType":"YulTypedName","src":"5871:7:65","type":""}],"src":"5804:269:65"},{"body":{"nativeSrc":"6128:24:65","nodeType":"YulBlock","src":"6128:24:65","statements":[{"nativeSrc":"6138:8:65","nodeType":"YulAssignment","src":"6138:8:65","value":{"kind":"number","nativeSrc":"6145:1:65","nodeType":"YulLiteral","src":"6145:1:65","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"6138:3:65","nodeType":"YulIdentifier","src":"6138:3:65"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"6079:73:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"6124:3:65","nodeType":"YulTypedName","src":"6124:3:65","type":""}],"src":"6079:73:65"},{"body":{"nativeSrc":"6211:136:65","nodeType":"YulBlock","src":"6211:136:65","statements":[{"nativeSrc":"6221:46:65","nodeType":"YulVariableDeclaration","src":"6221:46:65","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"6235:30:65","nodeType":"YulIdentifier","src":"6235:30:65"},"nativeSrc":"6235:32:65","nodeType":"YulFunctionCall","src":"6235:32:65"},"variables":[{"name":"zero_0","nativeSrc":"6225:6:65","nodeType":"YulTypedName","src":"6225:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"6320:4:65","nodeType":"YulIdentifier","src":"6320:4:65"},{"name":"offset","nativeSrc":"6326:6:65","nodeType":"YulIdentifier","src":"6326:6:65"},{"name":"zero_0","nativeSrc":"6334:6:65","nodeType":"YulIdentifier","src":"6334:6:65"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"6276:43:65","nodeType":"YulIdentifier","src":"6276:43:65"},"nativeSrc":"6276:65:65","nodeType":"YulFunctionCall","src":"6276:65:65"},"nativeSrc":"6276:65:65","nodeType":"YulExpressionStatement","src":"6276:65:65"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"6158:189:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"6197:4:65","nodeType":"YulTypedName","src":"6197:4:65","type":""},{"name":"offset","nativeSrc":"6203:6:65","nodeType":"YulTypedName","src":"6203:6:65","type":""}],"src":"6158:189:65"},{"body":{"nativeSrc":"6403:136:65","nodeType":"YulBlock","src":"6403:136:65","statements":[{"body":{"nativeSrc":"6470:63:65","nodeType":"YulBlock","src":"6470:63:65","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"6514:5:65","nodeType":"YulIdentifier","src":"6514:5:65"},{"kind":"number","nativeSrc":"6521:1:65","nodeType":"YulLiteral","src":"6521:1:65","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"6484:29:65","nodeType":"YulIdentifier","src":"6484:29:65"},"nativeSrc":"6484:39:65","nodeType":"YulFunctionCall","src":"6484:39:65"},"nativeSrc":"6484:39:65","nodeType":"YulExpressionStatement","src":"6484:39:65"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"6423:5:65","nodeType":"YulIdentifier","src":"6423:5:65"},{"name":"end","nativeSrc":"6430:3:65","nodeType":"YulIdentifier","src":"6430:3:65"}],"functionName":{"name":"lt","nativeSrc":"6420:2:65","nodeType":"YulIdentifier","src":"6420:2:65"},"nativeSrc":"6420:14:65","nodeType":"YulFunctionCall","src":"6420:14:65"},"nativeSrc":"6413:120:65","nodeType":"YulForLoop","post":{"nativeSrc":"6435:26:65","nodeType":"YulBlock","src":"6435:26:65","statements":[{"nativeSrc":"6437:22:65","nodeType":"YulAssignment","src":"6437:22:65","value":{"arguments":[{"name":"start","nativeSrc":"6450:5:65","nodeType":"YulIdentifier","src":"6450:5:65"},{"kind":"number","nativeSrc":"6457:1:65","nodeType":"YulLiteral","src":"6457:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6446:3:65","nodeType":"YulIdentifier","src":"6446:3:65"},"nativeSrc":"6446:13:65","nodeType":"YulFunctionCall","src":"6446:13:65"},"variableNames":[{"name":"start","nativeSrc":"6437:5:65","nodeType":"YulIdentifier","src":"6437:5:65"}]}]},"pre":{"nativeSrc":"6417:2:65","nodeType":"YulBlock","src":"6417:2:65","statements":[]},"src":"6413:120:65"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"6353:186:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"6391:5:65","nodeType":"YulTypedName","src":"6391:5:65","type":""},{"name":"end","nativeSrc":"6398:3:65","nodeType":"YulTypedName","src":"6398:3:65","type":""}],"src":"6353:186:65"},{"body":{"nativeSrc":"6624:464:65","nodeType":"YulBlock","src":"6624:464:65","statements":[{"body":{"nativeSrc":"6650:431:65","nodeType":"YulBlock","src":"6650:431:65","statements":[{"nativeSrc":"6664:54:65","nodeType":"YulVariableDeclaration","src":"6664:54:65","value":{"arguments":[{"name":"array","nativeSrc":"6712:5:65","nodeType":"YulIdentifier","src":"6712:5:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"6680:31:65","nodeType":"YulIdentifier","src":"6680:31:65"},"nativeSrc":"6680:38:65","nodeType":"YulFunctionCall","src":"6680:38:65"},"variables":[{"name":"dataArea","nativeSrc":"6668:8:65","nodeType":"YulTypedName","src":"6668:8:65","type":""}]},{"nativeSrc":"6731:63:65","nodeType":"YulVariableDeclaration","src":"6731:63:65","value":{"arguments":[{"name":"dataArea","nativeSrc":"6754:8:65","nodeType":"YulIdentifier","src":"6754:8:65"},{"arguments":[{"name":"startIndex","nativeSrc":"6782:10:65","nodeType":"YulIdentifier","src":"6782:10:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"6764:17:65","nodeType":"YulIdentifier","src":"6764:17:65"},"nativeSrc":"6764:29:65","nodeType":"YulFunctionCall","src":"6764:29:65"}],"functionName":{"name":"add","nativeSrc":"6750:3:65","nodeType":"YulIdentifier","src":"6750:3:65"},"nativeSrc":"6750:44:65","nodeType":"YulFunctionCall","src":"6750:44:65"},"variables":[{"name":"deleteStart","nativeSrc":"6735:11:65","nodeType":"YulTypedName","src":"6735:11:65","type":""}]},{"body":{"nativeSrc":"6951:27:65","nodeType":"YulBlock","src":"6951:27:65","statements":[{"nativeSrc":"6953:23:65","nodeType":"YulAssignment","src":"6953:23:65","value":{"name":"dataArea","nativeSrc":"6968:8:65","nodeType":"YulIdentifier","src":"6968:8:65"},"variableNames":[{"name":"deleteStart","nativeSrc":"6953:11:65","nodeType":"YulIdentifier","src":"6953:11:65"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"6935:10:65","nodeType":"YulIdentifier","src":"6935:10:65"},{"kind":"number","nativeSrc":"6947:2:65","nodeType":"YulLiteral","src":"6947:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6932:2:65","nodeType":"YulIdentifier","src":"6932:2:65"},"nativeSrc":"6932:18:65","nodeType":"YulFunctionCall","src":"6932:18:65"},"nativeSrc":"6929:49:65","nodeType":"YulIf","src":"6929:49:65"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"7020:11:65","nodeType":"YulIdentifier","src":"7020:11:65"},{"arguments":[{"name":"dataArea","nativeSrc":"7037:8:65","nodeType":"YulIdentifier","src":"7037:8:65"},{"arguments":[{"name":"len","nativeSrc":"7065:3:65","nodeType":"YulIdentifier","src":"7065:3:65"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"7047:17:65","nodeType":"YulIdentifier","src":"7047:17:65"},"nativeSrc":"7047:22:65","nodeType":"YulFunctionCall","src":"7047:22:65"}],"functionName":{"name":"add","nativeSrc":"7033:3:65","nodeType":"YulIdentifier","src":"7033:3:65"},"nativeSrc":"7033:37:65","nodeType":"YulFunctionCall","src":"7033:37:65"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"6991:28:65","nodeType":"YulIdentifier","src":"6991:28:65"},"nativeSrc":"6991:80:65","nodeType":"YulFunctionCall","src":"6991:80:65"},"nativeSrc":"6991:80:65","nodeType":"YulExpressionStatement","src":"6991:80:65"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"6641:3:65","nodeType":"YulIdentifier","src":"6641:3:65"},{"kind":"number","nativeSrc":"6646:2:65","nodeType":"YulLiteral","src":"6646:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"6638:2:65","nodeType":"YulIdentifier","src":"6638:2:65"},"nativeSrc":"6638:11:65","nodeType":"YulFunctionCall","src":"6638:11:65"},"nativeSrc":"6635:446:65","nodeType":"YulIf","src":"6635:446:65"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"6545:543:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"6600:5:65","nodeType":"YulTypedName","src":"6600:5:65","type":""},{"name":"len","nativeSrc":"6607:3:65","nodeType":"YulTypedName","src":"6607:3:65","type":""},{"name":"startIndex","nativeSrc":"6612:10:65","nodeType":"YulTypedName","src":"6612:10:65","type":""}],"src":"6545:543:65"},{"body":{"nativeSrc":"7157:54:65","nodeType":"YulBlock","src":"7157:54:65","statements":[{"nativeSrc":"7167:37:65","nodeType":"YulAssignment","src":"7167:37:65","value":{"arguments":[{"name":"bits","nativeSrc":"7192:4:65","nodeType":"YulIdentifier","src":"7192:4:65"},{"name":"value","nativeSrc":"7198:5:65","nodeType":"YulIdentifier","src":"7198:5:65"}],"functionName":{"name":"shr","nativeSrc":"7188:3:65","nodeType":"YulIdentifier","src":"7188:3:65"},"nativeSrc":"7188:16:65","nodeType":"YulFunctionCall","src":"7188:16:65"},"variableNames":[{"name":"newValue","nativeSrc":"7167:8:65","nodeType":"YulIdentifier","src":"7167:8:65"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"7094:117:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"7132:4:65","nodeType":"YulTypedName","src":"7132:4:65","type":""},{"name":"value","nativeSrc":"7138:5:65","nodeType":"YulTypedName","src":"7138:5:65","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"7148:8:65","nodeType":"YulTypedName","src":"7148:8:65","type":""}],"src":"7094:117:65"},{"body":{"nativeSrc":"7268:118:65","nodeType":"YulBlock","src":"7268:118:65","statements":[{"nativeSrc":"7278:68:65","nodeType":"YulVariableDeclaration","src":"7278:68:65","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7327:1:65","nodeType":"YulLiteral","src":"7327:1:65","type":"","value":"8"},{"name":"bytes","nativeSrc":"7330:5:65","nodeType":"YulIdentifier","src":"7330:5:65"}],"functionName":{"name":"mul","nativeSrc":"7323:3:65","nodeType":"YulIdentifier","src":"7323:3:65"},"nativeSrc":"7323:13:65","nodeType":"YulFunctionCall","src":"7323:13:65"},{"arguments":[{"kind":"number","nativeSrc":"7342:1:65","nodeType":"YulLiteral","src":"7342:1:65","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"7338:3:65","nodeType":"YulIdentifier","src":"7338:3:65"},"nativeSrc":"7338:6:65","nodeType":"YulFunctionCall","src":"7338:6:65"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"7294:28:65","nodeType":"YulIdentifier","src":"7294:28:65"},"nativeSrc":"7294:51:65","nodeType":"YulFunctionCall","src":"7294:51:65"}],"functionName":{"name":"not","nativeSrc":"7290:3:65","nodeType":"YulIdentifier","src":"7290:3:65"},"nativeSrc":"7290:56:65","nodeType":"YulFunctionCall","src":"7290:56:65"},"variables":[{"name":"mask","nativeSrc":"7282:4:65","nodeType":"YulTypedName","src":"7282:4:65","type":""}]},{"nativeSrc":"7355:25:65","nodeType":"YulAssignment","src":"7355:25:65","value":{"arguments":[{"name":"data","nativeSrc":"7369:4:65","nodeType":"YulIdentifier","src":"7369:4:65"},{"name":"mask","nativeSrc":"7375:4:65","nodeType":"YulIdentifier","src":"7375:4:65"}],"functionName":{"name":"and","nativeSrc":"7365:3:65","nodeType":"YulIdentifier","src":"7365:3:65"},"nativeSrc":"7365:15:65","nodeType":"YulFunctionCall","src":"7365:15:65"},"variableNames":[{"name":"result","nativeSrc":"7355:6:65","nodeType":"YulIdentifier","src":"7355:6:65"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"7217:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7245:4:65","nodeType":"YulTypedName","src":"7245:4:65","type":""},{"name":"bytes","nativeSrc":"7251:5:65","nodeType":"YulTypedName","src":"7251:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7261:6:65","nodeType":"YulTypedName","src":"7261:6:65","type":""}],"src":"7217:169:65"},{"body":{"nativeSrc":"7472:214:65","nodeType":"YulBlock","src":"7472:214:65","statements":[{"nativeSrc":"7605:37:65","nodeType":"YulAssignment","src":"7605:37:65","value":{"arguments":[{"name":"data","nativeSrc":"7632:4:65","nodeType":"YulIdentifier","src":"7632:4:65"},{"name":"len","nativeSrc":"7638:3:65","nodeType":"YulIdentifier","src":"7638:3:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"7613:18:65","nodeType":"YulIdentifier","src":"7613:18:65"},"nativeSrc":"7613:29:65","nodeType":"YulFunctionCall","src":"7613:29:65"},"variableNames":[{"name":"data","nativeSrc":"7605:4:65","nodeType":"YulIdentifier","src":"7605:4:65"}]},{"nativeSrc":"7651:29:65","nodeType":"YulAssignment","src":"7651:29:65","value":{"arguments":[{"name":"data","nativeSrc":"7662:4:65","nodeType":"YulIdentifier","src":"7662:4:65"},{"arguments":[{"kind":"number","nativeSrc":"7672:1:65","nodeType":"YulLiteral","src":"7672:1:65","type":"","value":"2"},{"name":"len","nativeSrc":"7675:3:65","nodeType":"YulIdentifier","src":"7675:3:65"}],"functionName":{"name":"mul","nativeSrc":"7668:3:65","nodeType":"YulIdentifier","src":"7668:3:65"},"nativeSrc":"7668:11:65","nodeType":"YulFunctionCall","src":"7668:11:65"}],"functionName":{"name":"or","nativeSrc":"7659:2:65","nodeType":"YulIdentifier","src":"7659:2:65"},"nativeSrc":"7659:21:65","nodeType":"YulFunctionCall","src":"7659:21:65"},"variableNames":[{"name":"used","nativeSrc":"7651:4:65","nodeType":"YulIdentifier","src":"7651:4:65"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"7391:295:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"7453:4:65","nodeType":"YulTypedName","src":"7453:4:65","type":""},{"name":"len","nativeSrc":"7459:3:65","nodeType":"YulTypedName","src":"7459:3:65","type":""}],"returnVariables":[{"name":"used","nativeSrc":"7467:4:65","nodeType":"YulTypedName","src":"7467:4:65","type":""}],"src":"7391:295:65"},{"body":{"nativeSrc":"7783:1303:65","nodeType":"YulBlock","src":"7783:1303:65","statements":[{"nativeSrc":"7794:51:65","nodeType":"YulVariableDeclaration","src":"7794:51:65","value":{"arguments":[{"name":"src","nativeSrc":"7841:3:65","nodeType":"YulIdentifier","src":"7841:3:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7808:32:65","nodeType":"YulIdentifier","src":"7808:32:65"},"nativeSrc":"7808:37:65","nodeType":"YulFunctionCall","src":"7808:37:65"},"variables":[{"name":"newLen","nativeSrc":"7798:6:65","nodeType":"YulTypedName","src":"7798:6:65","type":""}]},{"body":{"nativeSrc":"7930:22:65","nodeType":"YulBlock","src":"7930:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7932:16:65","nodeType":"YulIdentifier","src":"7932:16:65"},"nativeSrc":"7932:18:65","nodeType":"YulFunctionCall","src":"7932:18:65"},"nativeSrc":"7932:18:65","nodeType":"YulExpressionStatement","src":"7932:18:65"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"7902:6:65","nodeType":"YulIdentifier","src":"7902:6:65"},{"kind":"number","nativeSrc":"7910:18:65","nodeType":"YulLiteral","src":"7910:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7899:2:65","nodeType":"YulIdentifier","src":"7899:2:65"},"nativeSrc":"7899:30:65","nodeType":"YulFunctionCall","src":"7899:30:65"},"nativeSrc":"7896:56:65","nodeType":"YulIf","src":"7896:56:65"},{"nativeSrc":"7962:52:65","nodeType":"YulVariableDeclaration","src":"7962:52:65","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"8008:4:65","nodeType":"YulIdentifier","src":"8008:4:65"}],"functionName":{"name":"sload","nativeSrc":"8002:5:65","nodeType":"YulIdentifier","src":"8002:5:65"},"nativeSrc":"8002:11:65","nodeType":"YulFunctionCall","src":"8002:11:65"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"7976:25:65","nodeType":"YulIdentifier","src":"7976:25:65"},"nativeSrc":"7976:38:65","nodeType":"YulFunctionCall","src":"7976:38:65"},"variables":[{"name":"oldLen","nativeSrc":"7966:6:65","nodeType":"YulTypedName","src":"7966:6:65","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8107:4:65","nodeType":"YulIdentifier","src":"8107:4:65"},{"name":"oldLen","nativeSrc":"8113:6:65","nodeType":"YulIdentifier","src":"8113:6:65"},{"name":"newLen","nativeSrc":"8121:6:65","nodeType":"YulIdentifier","src":"8121:6:65"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"8061:45:65","nodeType":"YulIdentifier","src":"8061:45:65"},"nativeSrc":"8061:67:65","nodeType":"YulFunctionCall","src":"8061:67:65"},"nativeSrc":"8061:67:65","nodeType":"YulExpressionStatement","src":"8061:67:65"},{"nativeSrc":"8138:18:65","nodeType":"YulVariableDeclaration","src":"8138:18:65","value":{"kind":"number","nativeSrc":"8155:1:65","nodeType":"YulLiteral","src":"8155:1:65","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"8142:9:65","nodeType":"YulTypedName","src":"8142:9:65","type":""}]},{"nativeSrc":"8166:17:65","nodeType":"YulAssignment","src":"8166:17:65","value":{"kind":"number","nativeSrc":"8179:4:65","nodeType":"YulLiteral","src":"8179:4:65","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"8166:9:65","nodeType":"YulIdentifier","src":"8166:9:65"}]},{"cases":[{"body":{"nativeSrc":"8230:611:65","nodeType":"YulBlock","src":"8230:611:65","statements":[{"nativeSrc":"8244:37:65","nodeType":"YulVariableDeclaration","src":"8244:37:65","value":{"arguments":[{"name":"newLen","nativeSrc":"8263:6:65","nodeType":"YulIdentifier","src":"8263:6:65"},{"arguments":[{"kind":"number","nativeSrc":"8275:4:65","nodeType":"YulLiteral","src":"8275:4:65","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"8271:3:65","nodeType":"YulIdentifier","src":"8271:3:65"},"nativeSrc":"8271:9:65","nodeType":"YulFunctionCall","src":"8271:9:65"}],"functionName":{"name":"and","nativeSrc":"8259:3:65","nodeType":"YulIdentifier","src":"8259:3:65"},"nativeSrc":"8259:22:65","nodeType":"YulFunctionCall","src":"8259:22:65"},"variables":[{"name":"loopEnd","nativeSrc":"8248:7:65","nodeType":"YulTypedName","src":"8248:7:65","type":""}]},{"nativeSrc":"8295:51:65","nodeType":"YulVariableDeclaration","src":"8295:51:65","value":{"arguments":[{"name":"slot","nativeSrc":"8341:4:65","nodeType":"YulIdentifier","src":"8341:4:65"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"8309:31:65","nodeType":"YulIdentifier","src":"8309:31:65"},"nativeSrc":"8309:37:65","nodeType":"YulFunctionCall","src":"8309:37:65"},"variables":[{"name":"dstPtr","nativeSrc":"8299:6:65","nodeType":"YulTypedName","src":"8299:6:65","type":""}]},{"nativeSrc":"8359:10:65","nodeType":"YulVariableDeclaration","src":"8359:10:65","value":{"kind":"number","nativeSrc":"8368:1:65","nodeType":"YulLiteral","src":"8368:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8363:1:65","nodeType":"YulTypedName","src":"8363:1:65","type":""}]},{"body":{"nativeSrc":"8427:163:65","nodeType":"YulBlock","src":"8427:163:65","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8452:6:65","nodeType":"YulIdentifier","src":"8452:6:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8470:3:65","nodeType":"YulIdentifier","src":"8470:3:65"},{"name":"srcOffset","nativeSrc":"8475:9:65","nodeType":"YulIdentifier","src":"8475:9:65"}],"functionName":{"name":"add","nativeSrc":"8466:3:65","nodeType":"YulIdentifier","src":"8466:3:65"},"nativeSrc":"8466:19:65","nodeType":"YulFunctionCall","src":"8466:19:65"}],"functionName":{"name":"mload","nativeSrc":"8460:5:65","nodeType":"YulIdentifier","src":"8460:5:65"},"nativeSrc":"8460:26:65","nodeType":"YulFunctionCall","src":"8460:26:65"}],"functionName":{"name":"sstore","nativeSrc":"8445:6:65","nodeType":"YulIdentifier","src":"8445:6:65"},"nativeSrc":"8445:42:65","nodeType":"YulFunctionCall","src":"8445:42:65"},"nativeSrc":"8445:42:65","nodeType":"YulExpressionStatement","src":"8445:42:65"},{"nativeSrc":"8504:24:65","nodeType":"YulAssignment","src":"8504:24:65","value":{"arguments":[{"name":"dstPtr","nativeSrc":"8518:6:65","nodeType":"YulIdentifier","src":"8518:6:65"},{"kind":"number","nativeSrc":"8526:1:65","nodeType":"YulLiteral","src":"8526:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8514:3:65","nodeType":"YulIdentifier","src":"8514:3:65"},"nativeSrc":"8514:14:65","nodeType":"YulFunctionCall","src":"8514:14:65"},"variableNames":[{"name":"dstPtr","nativeSrc":"8504:6:65","nodeType":"YulIdentifier","src":"8504:6:65"}]},{"nativeSrc":"8545:31:65","nodeType":"YulAssignment","src":"8545:31:65","value":{"arguments":[{"name":"srcOffset","nativeSrc":"8562:9:65","nodeType":"YulIdentifier","src":"8562:9:65"},{"kind":"number","nativeSrc":"8573:2:65","nodeType":"YulLiteral","src":"8573:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8558:3:65","nodeType":"YulIdentifier","src":"8558:3:65"},"nativeSrc":"8558:18:65","nodeType":"YulFunctionCall","src":"8558:18:65"},"variableNames":[{"name":"srcOffset","nativeSrc":"8545:9:65","nodeType":"YulIdentifier","src":"8545:9:65"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8393:1:65","nodeType":"YulIdentifier","src":"8393:1:65"},{"name":"loopEnd","nativeSrc":"8396:7:65","nodeType":"YulIdentifier","src":"8396:7:65"}],"functionName":{"name":"lt","nativeSrc":"8390:2:65","nodeType":"YulIdentifier","src":"8390:2:65"},"nativeSrc":"8390:14:65","nodeType":"YulFunctionCall","src":"8390:14:65"},"nativeSrc":"8382:208:65","nodeType":"YulForLoop","post":{"nativeSrc":"8405:21:65","nodeType":"YulBlock","src":"8405:21:65","statements":[{"nativeSrc":"8407:17:65","nodeType":"YulAssignment","src":"8407:17:65","value":{"arguments":[{"name":"i","nativeSrc":"8416:1:65","nodeType":"YulIdentifier","src":"8416:1:65"},{"kind":"number","nativeSrc":"8419:4:65","nodeType":"YulLiteral","src":"8419:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8412:3:65","nodeType":"YulIdentifier","src":"8412:3:65"},"nativeSrc":"8412:12:65","nodeType":"YulFunctionCall","src":"8412:12:65"},"variableNames":[{"name":"i","nativeSrc":"8407:1:65","nodeType":"YulIdentifier","src":"8407:1:65"}]}]},"pre":{"nativeSrc":"8386:3:65","nodeType":"YulBlock","src":"8386:3:65","statements":[]},"src":"8382:208:65"},{"body":{"nativeSrc":"8626:156:65","nodeType":"YulBlock","src":"8626:156:65","statements":[{"nativeSrc":"8644:43:65","nodeType":"YulVariableDeclaration","src":"8644:43:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8671:3:65","nodeType":"YulIdentifier","src":"8671:3:65"},{"name":"srcOffset","nativeSrc":"8676:9:65","nodeType":"YulIdentifier","src":"8676:9:65"}],"functionName":{"name":"add","nativeSrc":"8667:3:65","nodeType":"YulIdentifier","src":"8667:3:65"},"nativeSrc":"8667:19:65","nodeType":"YulFunctionCall","src":"8667:19:65"}],"functionName":{"name":"mload","nativeSrc":"8661:5:65","nodeType":"YulIdentifier","src":"8661:5:65"},"nativeSrc":"8661:26:65","nodeType":"YulFunctionCall","src":"8661:26:65"},"variables":[{"name":"lastValue","nativeSrc":"8648:9:65","nodeType":"YulTypedName","src":"8648:9:65","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"8711:6:65","nodeType":"YulIdentifier","src":"8711:6:65"},{"arguments":[{"name":"lastValue","nativeSrc":"8738:9:65","nodeType":"YulIdentifier","src":"8738:9:65"},{"arguments":[{"name":"newLen","nativeSrc":"8753:6:65","nodeType":"YulIdentifier","src":"8753:6:65"},{"kind":"number","nativeSrc":"8761:4:65","nodeType":"YulLiteral","src":"8761:4:65","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"8749:3:65","nodeType":"YulIdentifier","src":"8749:3:65"},"nativeSrc":"8749:17:65","nodeType":"YulFunctionCall","src":"8749:17:65"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"8719:18:65","nodeType":"YulIdentifier","src":"8719:18:65"},"nativeSrc":"8719:48:65","nodeType":"YulFunctionCall","src":"8719:48:65"}],"functionName":{"name":"sstore","nativeSrc":"8704:6:65","nodeType":"YulIdentifier","src":"8704:6:65"},"nativeSrc":"8704:64:65","nodeType":"YulFunctionCall","src":"8704:64:65"},"nativeSrc":"8704:64:65","nodeType":"YulExpressionStatement","src":"8704:64:65"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"8609:7:65","nodeType":"YulIdentifier","src":"8609:7:65"},{"name":"newLen","nativeSrc":"8618:6:65","nodeType":"YulIdentifier","src":"8618:6:65"}],"functionName":{"name":"lt","nativeSrc":"8606:2:65","nodeType":"YulIdentifier","src":"8606:2:65"},"nativeSrc":"8606:19:65","nodeType":"YulFunctionCall","src":"8606:19:65"},"nativeSrc":"8603:179:65","nodeType":"YulIf","src":"8603:179:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8802:4:65","nodeType":"YulIdentifier","src":"8802:4:65"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"8816:6:65","nodeType":"YulIdentifier","src":"8816:6:65"},{"kind":"number","nativeSrc":"8824:1:65","nodeType":"YulLiteral","src":"8824:1:65","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"8812:3:65","nodeType":"YulIdentifier","src":"8812:3:65"},"nativeSrc":"8812:14:65","nodeType":"YulFunctionCall","src":"8812:14:65"},{"kind":"number","nativeSrc":"8828:1:65","nodeType":"YulLiteral","src":"8828:1:65","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8808:3:65","nodeType":"YulIdentifier","src":"8808:3:65"},"nativeSrc":"8808:22:65","nodeType":"YulFunctionCall","src":"8808:22:65"}],"functionName":{"name":"sstore","nativeSrc":"8795:6:65","nodeType":"YulIdentifier","src":"8795:6:65"},"nativeSrc":"8795:36:65","nodeType":"YulFunctionCall","src":"8795:36:65"},"nativeSrc":"8795:36:65","nodeType":"YulExpressionStatement","src":"8795:36:65"}]},"nativeSrc":"8223:618:65","nodeType":"YulCase","src":"8223:618:65","value":{"kind":"number","nativeSrc":"8228:1:65","nodeType":"YulLiteral","src":"8228:1:65","type":"","value":"1"}},{"body":{"nativeSrc":"8858:222:65","nodeType":"YulBlock","src":"8858:222:65","statements":[{"nativeSrc":"8872:14:65","nodeType":"YulVariableDeclaration","src":"8872:14:65","value":{"kind":"number","nativeSrc":"8885:1:65","nodeType":"YulLiteral","src":"8885:1:65","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"8876:5:65","nodeType":"YulTypedName","src":"8876:5:65","type":""}]},{"body":{"nativeSrc":"8909:67:65","nodeType":"YulBlock","src":"8909:67:65","statements":[{"nativeSrc":"8927:35:65","nodeType":"YulAssignment","src":"8927:35:65","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8946:3:65","nodeType":"YulIdentifier","src":"8946:3:65"},{"name":"srcOffset","nativeSrc":"8951:9:65","nodeType":"YulIdentifier","src":"8951:9:65"}],"functionName":{"name":"add","nativeSrc":"8942:3:65","nodeType":"YulIdentifier","src":"8942:3:65"},"nativeSrc":"8942:19:65","nodeType":"YulFunctionCall","src":"8942:19:65"}],"functionName":{"name":"mload","nativeSrc":"8936:5:65","nodeType":"YulIdentifier","src":"8936:5:65"},"nativeSrc":"8936:26:65","nodeType":"YulFunctionCall","src":"8936:26:65"},"variableNames":[{"name":"value","nativeSrc":"8927:5:65","nodeType":"YulIdentifier","src":"8927:5:65"}]}]},"condition":{"name":"newLen","nativeSrc":"8902:6:65","nodeType":"YulIdentifier","src":"8902:6:65"},"nativeSrc":"8899:77:65","nodeType":"YulIf","src":"8899:77:65"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"8996:4:65","nodeType":"YulIdentifier","src":"8996:4:65"},{"arguments":[{"name":"value","nativeSrc":"9055:5:65","nodeType":"YulIdentifier","src":"9055:5:65"},{"name":"newLen","nativeSrc":"9062:6:65","nodeType":"YulIdentifier","src":"9062:6:65"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"9002:52:65","nodeType":"YulIdentifier","src":"9002:52:65"},"nativeSrc":"9002:67:65","nodeType":"YulFunctionCall","src":"9002:67:65"}],"functionName":{"name":"sstore","nativeSrc":"8989:6:65","nodeType":"YulIdentifier","src":"8989:6:65"},"nativeSrc":"8989:81:65","nodeType":"YulFunctionCall","src":"8989:81:65"},"nativeSrc":"8989:81:65","nodeType":"YulExpressionStatement","src":"8989:81:65"}]},"nativeSrc":"8850:230:65","nodeType":"YulCase","src":"8850:230:65","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"8203:6:65","nodeType":"YulIdentifier","src":"8203:6:65"},{"kind":"number","nativeSrc":"8211:2:65","nodeType":"YulLiteral","src":"8211:2:65","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"8200:2:65","nodeType":"YulIdentifier","src":"8200:2:65"},"nativeSrc":"8200:14:65","nodeType":"YulFunctionCall","src":"8200:14:65"},"nativeSrc":"8193:887:65","nodeType":"YulSwitch","src":"8193:887:65"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"7691:1395:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"7772:4:65","nodeType":"YulTypedName","src":"7772:4:65","type":""},{"name":"src","nativeSrc":"7778:3:65","nodeType":"YulTypedName","src":"7778:3:65","type":""}],"src":"7691:1395:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function validator_revert_t_uint8(value) {\n        if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint8(value)\n    }\n\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051610edc380380610edc83398101604081905261002f91610197565b8282600361003d8382610300565b50600461004a8282610300565b50505060ff16608052506103c39050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156100965761009661005b565b6040525050565b60006100a860405190565b90506100b48282610071565b919050565b60006001600160401b038211156100d2576100d261005b565b601f19601f83011660200192915050565b60005b838110156100fe5781810151838201526020016100e6565b50506000910152565b600061011a610115846100b9565b61009d565b90508281526020810184848401111561013557610135600080fd5b6101408482856100e3565b509392505050565b600082601f83011261015c5761015c600080fd5b815161016c848260208601610107565b949350505050565b60ff8116811461018357600080fd5b50565b805161019181610174565b92915050565b6000806000606084860312156101af576101af600080fd5b83516001600160401b038111156101c8576101c8600080fd5b6101d486828701610148565b93505060208401516001600160401b038111156101f3576101f3600080fd5b6101ff86828701610148565b925050604061021086828701610186565b9150509250925092565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061024457607f821691505b6020821081036102565761025661021a565b50919050565b60006101916102688381565b90565b6102748361025c565b815460001960089490940293841b1916921b91909117905550565b600061029c81848461026b565b505050565b818110156102bc576102b460008261028f565b6001016102a1565b5050565b601f82111561029c576000818152602090206020601f850104810160208510156102e75750805b6102f96020601f8601048301826102a1565b5050505050565b81516001600160401b038111156103195761031961005b565b6103238254610230565b61032e8282856102c0565b6020601f831160018114610362576000841561034a5750858201515b600019600886021c19811660028602178655506103bb565b600085815260208120601f198616915b828110156103925788850151825560209485019460019092019101610372565b868310156103ae5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b608051610afe6103de600039600061011d0152610afe6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635791589711610071578063579158971461015c57806370a082311461017157806395d89b411461019a578063a457c2d7146101a2578063a9059cbb146101b5578063dd62ed3e146101c857600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100f757806323b872dd14610108578063313ce5671461011b5780633950935114610149575b600080fd5b6100c16101db565b6040516100ce9190610642565b60405180910390f35b6100ea6100e536600461069b565b61026d565b6040516100ce91906106e2565b6002545b6040516100ce91906106f6565b6100ea610116366004610704565b610287565b7f00000000000000000000000000000000000000000000000000000000000000006040516100ce919061075d565b6100ea61015736600461069b565b6102ab565b61016f61016a36600461076b565b6102cd565b005b6100fb61017f366004610794565b6001600160a01b031660009081526020819052604090205490565b6100c16102da565b6100ea6101b036600461069b565b6102e9565b6100ea6101c336600461069b565b61032f565b6100fb6101d63660046107b5565b61033d565b6060600380546101ea906107fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610216906107fe565b80156102635780601f1061023857610100808354040283529160200191610263565b820191906000526020600020905b81548152906001019060200180831161024657829003601f168201915b5050505050905090565b60003361027b818585610368565b60019150505b92915050565b60003361029585828561041c565b6102a0858585610466565b506001949350505050565b60003361027b8185856102be838361033d565b6102c89190610840565b610368565b6102d73382610556565b50565b6060600480546101ea906107fe565b600033816102f7828661033d565b9050838110156103225760405162461bcd60e51b815260040161031990610898565b60405180910390fd5b6102a08286868403610368565b60003361027b818585610466565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b8152600401610319906108e9565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031990610938565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040f9085906106f6565b60405180910390a3505050565b6000610428848461033d565b9050600019811461046057818110156104535760405162461bcd60e51b81526004016103199061097f565b6104608484848403610368565b50505050565b6001600160a01b03831661048c5760405162461bcd60e51b8152600401610319906109d1565b6001600160a01b0382166104b25760405162461bcd60e51b815260040161031990610a21565b6001600160a01b038316600090815260208190526040902054818110156104eb5760405162461bcd60e51b815260040161031990610a74565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105499086906106f6565b60405180910390a3610460565b6001600160a01b03821661057c5760405162461bcd60e51b815260040161031990610ab8565b806002600082825461058e9190610840565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105e09085906106f6565b60405180910390a35050565b60005b838110156106075781810151838201526020016105ef565b50506000910152565b600061061a825190565b8084526020840193506106318185602086016105ec565b601f01601f19169290920192915050565b602080825281016106538184610610565b9392505050565b60006001600160a01b038216610281565b6106748161065a565b81146102d757600080fd5b80356102818161066b565b80610674565b80356102818161068a565b600080604083850312156106b1576106b1600080fd5b60006106bd858561067f565b92505060206106ce85828601610690565b9150509250929050565b8015155b82525050565b6020810161028182846106d8565b806106dc565b6020810161028182846106f0565b60008060006060848603121561071c5761071c600080fd5b6000610728868661067f565b93505060206107398682870161067f565b925050604061074a86828701610690565b9150509250925092565b60ff81166106dc565b602081016102818284610754565b60006020828403121561078057610780600080fd5b600061078c8484610690565b949350505050565b6000602082840312156107a9576107a9600080fd5b600061078c848461067f565b600080604083850312156107cb576107cb600080fd5b60006107d7858561067f565b92505060206106ce8582860161067f565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061081257607f821691505b602082108103610824576108246107e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102815761028161082a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161028181610853565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610891565b60208082528101610281816108a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610891565b60208082528101610281816108f9565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161028181610948565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610891565b602080825281016102818161098f565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610891565b60208082528101610281816109e1565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610891565b6020808252810161028181610a31565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610978565b6020808252810161028181610a8456fea2646970667358221220cd93abaf5b1062a1c17d8473a852bd4617a837016e3e5f38eebd97d8e82be60864736f6c63430008190033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xEDC CODESIZE SUB DUP1 PUSH2 0xEDC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x197 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH2 0x3D DUP4 DUP3 PUSH2 0x300 JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x4A DUP3 DUP3 PUSH2 0x300 JUMP JUMPDEST POP POP POP PUSH1 0xFF AND PUSH1 0x80 MSTORE POP PUSH2 0x3C3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x96 JUMPI PUSH2 0x96 PUSH2 0x5B JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0xB4 DUP3 DUP3 PUSH2 0x71 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0xD2 JUMPI PUSH2 0xD2 PUSH2 0x5B JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xFE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE6 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11A PUSH2 0x115 DUP5 PUSH2 0xB9 JUMP JUMPDEST PUSH2 0x9D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x135 JUMPI PUSH2 0x135 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x140 DUP5 DUP3 DUP6 PUSH2 0xE3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x15C JUMPI PUSH2 0x15C PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x16C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x107 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x191 DUP2 PUSH2 0x174 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AF JUMPI PUSH2 0x1AF PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1C8 JUMPI PUSH2 0x1C8 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D4 DUP7 DUP3 DUP8 ADD PUSH2 0x148 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F3 JUMPI PUSH2 0x1F3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FF DUP7 DUP3 DUP8 ADD PUSH2 0x148 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x210 DUP7 DUP3 DUP8 ADD PUSH2 0x186 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x244 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x256 JUMPI PUSH2 0x256 PUSH2 0x21A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x191 PUSH2 0x268 DUP4 DUP2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x274 DUP4 PUSH2 0x25C JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C DUP2 DUP5 DUP5 PUSH2 0x26B JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2BC JUMPI PUSH2 0x2B4 PUSH1 0x0 DUP3 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x2A1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2E7 JUMPI POP DUP1 JUMPDEST PUSH2 0x2F9 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH2 0x2A1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x319 JUMPI PUSH2 0x319 PUSH2 0x5B JUMP JUMPDEST PUSH2 0x323 DUP3 SLOAD PUSH2 0x230 JUMP JUMPDEST PUSH2 0x32E DUP3 DUP3 DUP6 PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x362 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x34A JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH2 0x3BB JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x392 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x372 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x3AE JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xAFE PUSH2 0x3DE PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x11D ADD MSTORE PUSH2 0xAFE PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x116 CALLDATASIZE PUSH1 0x4 PUSH2 0x704 JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0xEA PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x2AB JUMP JUMPDEST PUSH2 0x16F PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2DA JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH2 0xFB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x33D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1EA SWAP1 PUSH2 0x7FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x216 SWAP1 PUSH2 0x7FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x263 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x238 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x263 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x246 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x295 DUP6 DUP3 DUP6 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x2A0 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x2BE DUP4 DUP4 PUSH2 0x33D JUMP JUMPDEST PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x2D7 CALLER DUP3 PUSH2 0x556 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1EA SWAP1 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F7 DUP3 DUP7 PUSH2 0x33D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x322 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A0 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x938 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x40F SWAP1 DUP6 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP5 PUSH2 0x33D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x453 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x48C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xA21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x4EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x549 SWAP1 DUP7 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xAB8 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x58E SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x5E0 SWAP1 DUP6 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x607 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5EF JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x631 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x653 DUP2 DUP5 PUSH2 0x610 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x281 JUMP JUMPDEST PUSH2 0x674 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP2 EQ PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x281 DUP2 PUSH2 0x66B JUMP JUMPDEST DUP1 PUSH2 0x674 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x281 DUP2 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6B1 JUMPI PUSH2 0x6B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6BD DUP6 DUP6 PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6CE DUP6 DUP3 DUP7 ADD PUSH2 0x690 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x6D8 JUMP JUMPDEST DUP1 PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x6F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x71C JUMPI PUSH2 0x71C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x728 DUP7 DUP7 PUSH2 0x67F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x739 DUP7 DUP3 DUP8 ADD PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x74A DUP7 DUP3 DUP8 ADD PUSH2 0x690 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x780 JUMPI PUSH2 0x780 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78C DUP5 DUP5 PUSH2 0x690 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A9 JUMPI PUSH2 0x7A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78C DUP5 DUP5 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7CB JUMPI PUSH2 0x7CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D7 DUP6 DUP6 PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6CE DUP6 DUP3 DUP7 ADD PUSH2 0x67F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x812 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x824 JUMPI PUSH2 0x824 PUSH2 0x7E8 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x281 JUMPI PUSH2 0x281 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x853 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x8A8 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x8F9 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x948 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x9E1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0xA31 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x978 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0xA84 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD SWAP4 0xAB 0xAF JUMPDEST LT PUSH3 0xA1C17D DUP5 PUSH20 0xA852BD4617A837016E3E5F38EEBD97D8E82BE608 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"432:402:52:-:0;;;506:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;585:5;592:7;2046:5:23;:13;585:5:52;2046::23;:13;:::i;:::-;-1:-1:-1;2069:7:23;:17;2079:7;2069;:17;:::i;:::-;-1:-1:-1;;;611:21:52::1;;;::::0;-1:-1:-1;432:402:52;;-1:-1:-1;432:402:52;688:180:65;-1:-1:-1;;;733:1:65;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;-1:-1:-1;;672:2:65;652:14;;648:28;949:6;945:40;1087:6;1075:10;1072:22;-1:-1:-1;;;;;1039:10:65;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1134:2;1127:22;-1:-1:-1;;874:281:65:o;1161:129::-;1195:6;1222:20;73:2;67:9;;7:75;1222:20;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;-1:-1:-1;;;;;1440:6:65;1437:30;1434:56;;;1470:18;;:::i;:::-;-1:-1:-1;;672:2:65;652:14;;648:28;1592:4;1582:15;;1296:308;-1:-1:-1;;1296:308:65:o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1792:11;;;1786:18;1773:11;;;1766:39;1738:2;1731:10;1702:113;;;-1:-1:-1;;1849:1:65;1831:16;;1824:27;1610:248::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;197:1;194;187:12;2150:79;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;197:1;194;187:12;2442:79;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;2318:355;-1:-1:-1;;;;2318:355:65:o;2771:118::-;2754:4;2743:16;;2835:5;2832:33;2822:61;;2879:1;2876;2869:12;2822:61;2771:118;:::o;2895:139::-;2975:13;;2997:31;2975:13;2997:31;:::i;:::-;2895:139;;;;:::o;3040:1005::-;3146:6;3154;3162;3211:2;3199:9;3190:7;3186:23;3182:32;3179:119;;;3217:79;197:1;194;187:12;3217:79;3337:24;;-1:-1:-1;;;;;3377:30:65;;3374:117;;;3410:79;197:1;194;187:12;3410:79;3515:74;3581:7;3572:6;3561:9;3557:22;3515:74;:::i;:::-;3505:84;;3308:291;3659:2;3648:9;3644:18;3638:25;-1:-1:-1;;;;;3682:6:65;3679:30;3676:117;;;3712:79;197:1;194;187:12;3712:79;3817:74;3883:7;3874:6;3863:9;3859:22;3817:74;:::i;:::-;3807:84;;3609:292;3940:2;3966:62;4020:7;4011:6;4000:9;3996:22;3966:62;:::i;:::-;3956:72;;3911:127;3040:1005;;;;;:::o;4156:180::-;-1:-1:-1;;;4201:1:65;4194:88;4301:4;4298:1;4291:15;4325:4;4322:1;4315:15;4342:320;4423:1;4413:12;;4470:1;4460:12;;;4481:81;;4547:4;4539:6;4535:17;4525:27;;4481:81;4609:2;4601:6;4598:14;4578:18;4575:38;4572:84;;4628:18;;:::i;:::-;4393:269;4342:320;;;:::o;5575:142::-;5625:9;5658:53;5676:34;5703:5;5676:34;5426:77;5685:24;5492:5;5426:77;5804:269;5914:39;5945:7;5914:39;:::i;:::-;6003:11;;-1:-1:-1;;5146:1:65;5130:18;;;;4998:16;;;5355:9;5344:21;4998:16;;5384:30;;;;5962:105;;-1:-1:-1;5804:269:65:o;6158:189::-;6124:3;6276:65;6334:6;6326;6320:4;6276:65;:::i;:::-;6211:136;6158:189;;:::o;6353:186::-;6430:3;6423:5;6420:14;6413:120;;;6484:39;6521:1;6514:5;6484:39;:::i;:::-;6457:1;6446:13;6413:120;;;6353:186;;:::o;6545:543::-;6646:2;6641:3;6638:11;6635:446;;;4717:4;4753:14;;;4797:4;4784:18;;4899:2;4894;4883:14;;4879:23;6754:8;6750:44;6947:2;6935:10;6932:18;6929:49;;;-1:-1:-1;6968:8:65;6929:49;6991:80;4899:2;4894;4883:14;;4879:23;7037:8;7033:37;7020:11;6991:80;:::i;:::-;6650:431;;6545:543;;;:::o;7691:1395::-;4131:12;;-1:-1:-1;;;;;7902:6:65;7899:30;7896:56;;;7932:18;;:::i;:::-;7976:38;8008:4;8002:11;7976:38;:::i;:::-;8061:67;8121:6;8113;8107:4;8061:67;:::i;:::-;8179:4;8211:2;8200:14;;8228:1;8223:618;;;;8885:1;8902:6;8899:77;;;-1:-1:-1;8942:19:65;;;8936:26;8899:77;-1:-1:-1;;7327:1:65;7323:13;;7188:16;7290:56;7365:15;;7672:1;7668:11;;7659:21;8996:4;8989:81;8858:222;8193:887;;8223:618;4717:4;4753:14;;;4797:4;4784:18;;-1:-1:-1;;8259:22:65;;;8382:208;8396:7;8393:1;8390:14;8382:208;;;8466:19;;;8460:26;8445:42;;8573:2;8558:18;;;;8526:1;8514:14;;;;8412:12;8382:208;;;8618:6;8609:7;8606:19;8603:179;;;8667:19;;;8661:26;-1:-1:-1;;8761:4:65;8749:17;;7327:1;7323:13;7188:16;7290:56;7365:15;8704:64;;8603:179;8828:1;8824;8816:6;8812:14;8808:22;8802:4;8795:36;8230:611;;;8193:887;;7783:1303;;;7691:1395;;:::o;:::-;432:402:52;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_6182":{"entryPoint":null,"id":6182,"parameterSlots":3,"returnSlots":0},"@_approve_6117":{"entryPoint":872,"id":6117,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_6171":{"entryPoint":null,"id":6171,"parameterSlots":3,"returnSlots":0},"@_mint_6000":{"entryPoint":1366,"id":6000,"parameterSlots":2,"returnSlots":0},"@_msgSender_7040":{"entryPoint":null,"id":7040,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_6160":{"entryPoint":1052,"id":6160,"parameterSlots":3,"returnSlots":0},"@_transfer_5943":{"entryPoint":1126,"id":5943,"parameterSlots":3,"returnSlots":0},"@allowance_5738":{"entryPoint":829,"id":5738,"parameterSlots":2,"returnSlots":1},"@approve_5763":{"entryPoint":621,"id":5763,"parameterSlots":2,"returnSlots":1},"@balanceOf_5695":{"entryPoint":null,"id":5695,"parameterSlots":1,"returnSlots":1},"@decimals_11882":{"entryPoint":null,"id":11882,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_5866":{"entryPoint":745,"id":5866,"parameterSlots":2,"returnSlots":1},"@faucet_11873":{"entryPoint":717,"id":11873,"parameterSlots":1,"returnSlots":0},"@increaseAllowance_5825":{"entryPoint":683,"id":5825,"parameterSlots":2,"returnSlots":1},"@name_5651":{"entryPoint":475,"id":5651,"parameterSlots":0,"returnSlots":1},"@symbol_5661":{"entryPoint":730,"id":5661,"parameterSlots":0,"returnSlots":1},"@totalSupply_5681":{"entryPoint":null,"id":5681,"parameterSlots":0,"returnSlots":1},"@transferFrom_5796":{"entryPoint":647,"id":5796,"parameterSlots":3,"returnSlots":1},"@transfer_5720":{"entryPoint":815,"id":5720,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":1680,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1940,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1973,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1796,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1691,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":1899,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1752,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1552,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack":{"entryPoint":2529,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack":{"entryPoint":2297,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack":{"entryPoint":2376,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack":{"entryPoint":2609,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack":{"entryPoint":2447,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack":{"entryPoint":2216,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack":{"entryPoint":2131,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack":{"entryPoint":2692,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":1776,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":1876,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1762,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2593,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2360,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2431,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2676,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2513,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2281,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2200,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2744,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":1782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":1885,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2112,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1626,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1516,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2046,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2090,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":2024,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1643,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":1674,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:15020:65","nodeType":"YulBlock","src":"0:15020:65","statements":[{"body":{"nativeSrc":"66:40:65","nodeType":"YulBlock","src":"66:40:65","statements":[{"nativeSrc":"77:22:65","nodeType":"YulAssignment","src":"77:22:65","value":{"arguments":[{"name":"value","nativeSrc":"93:5:65","nodeType":"YulIdentifier","src":"93:5:65"}],"functionName":{"name":"mload","nativeSrc":"87:5:65","nodeType":"YulIdentifier","src":"87:5:65"},"nativeSrc":"87:12:65","nodeType":"YulFunctionCall","src":"87:12:65"},"variableNames":[{"name":"length","nativeSrc":"77:6:65","nodeType":"YulIdentifier","src":"77:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:65","nodeType":"YulTypedName","src":"49:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:65","nodeType":"YulTypedName","src":"59:6:65","type":""}],"src":"7:99:65"},{"body":{"nativeSrc":"208:73:65","nodeType":"YulBlock","src":"208:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:65","nodeType":"YulIdentifier","src":"225:3:65"},{"name":"length","nativeSrc":"230:6:65","nodeType":"YulIdentifier","src":"230:6:65"}],"functionName":{"name":"mstore","nativeSrc":"218:6:65","nodeType":"YulIdentifier","src":"218:6:65"},"nativeSrc":"218:19:65","nodeType":"YulFunctionCall","src":"218:19:65"},"nativeSrc":"218:19:65","nodeType":"YulExpressionStatement","src":"218:19:65"},{"nativeSrc":"246:29:65","nodeType":"YulAssignment","src":"246:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:65","nodeType":"YulIdentifier","src":"265:3:65"},{"kind":"number","nativeSrc":"270:4:65","nodeType":"YulLiteral","src":"270:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:65","nodeType":"YulIdentifier","src":"261:3:65"},"nativeSrc":"261:14:65","nodeType":"YulFunctionCall","src":"261:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:65","nodeType":"YulIdentifier","src":"246:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:65","nodeType":"YulTypedName","src":"180:3:65","type":""},{"name":"length","nativeSrc":"185:6:65","nodeType":"YulTypedName","src":"185:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:65","nodeType":"YulTypedName","src":"196:11:65","type":""}],"src":"112:169:65"},{"body":{"nativeSrc":"349:186:65","nodeType":"YulBlock","src":"349:186:65","statements":[{"nativeSrc":"360:10:65","nodeType":"YulVariableDeclaration","src":"360:10:65","value":{"kind":"number","nativeSrc":"369:1:65","nodeType":"YulLiteral","src":"369:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"364:1:65","nodeType":"YulTypedName","src":"364:1:65","type":""}]},{"body":{"nativeSrc":"429:63:65","nodeType":"YulBlock","src":"429:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"454:3:65","nodeType":"YulIdentifier","src":"454:3:65"},{"name":"i","nativeSrc":"459:1:65","nodeType":"YulIdentifier","src":"459:1:65"}],"functionName":{"name":"add","nativeSrc":"450:3:65","nodeType":"YulIdentifier","src":"450:3:65"},"nativeSrc":"450:11:65","nodeType":"YulFunctionCall","src":"450:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"473:3:65","nodeType":"YulIdentifier","src":"473:3:65"},{"name":"i","nativeSrc":"478:1:65","nodeType":"YulIdentifier","src":"478:1:65"}],"functionName":{"name":"add","nativeSrc":"469:3:65","nodeType":"YulIdentifier","src":"469:3:65"},"nativeSrc":"469:11:65","nodeType":"YulFunctionCall","src":"469:11:65"}],"functionName":{"name":"mload","nativeSrc":"463:5:65","nodeType":"YulIdentifier","src":"463:5:65"},"nativeSrc":"463:18:65","nodeType":"YulFunctionCall","src":"463:18:65"}],"functionName":{"name":"mstore","nativeSrc":"443:6:65","nodeType":"YulIdentifier","src":"443:6:65"},"nativeSrc":"443:39:65","nodeType":"YulFunctionCall","src":"443:39:65"},"nativeSrc":"443:39:65","nodeType":"YulExpressionStatement","src":"443:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"390:1:65","nodeType":"YulIdentifier","src":"390:1:65"},{"name":"length","nativeSrc":"393:6:65","nodeType":"YulIdentifier","src":"393:6:65"}],"functionName":{"name":"lt","nativeSrc":"387:2:65","nodeType":"YulIdentifier","src":"387:2:65"},"nativeSrc":"387:13:65","nodeType":"YulFunctionCall","src":"387:13:65"},"nativeSrc":"379:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"401:19:65","nodeType":"YulBlock","src":"401:19:65","statements":[{"nativeSrc":"403:15:65","nodeType":"YulAssignment","src":"403:15:65","value":{"arguments":[{"name":"i","nativeSrc":"412:1:65","nodeType":"YulIdentifier","src":"412:1:65"},{"kind":"number","nativeSrc":"415:2:65","nodeType":"YulLiteral","src":"415:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"408:3:65","nodeType":"YulIdentifier","src":"408:3:65"},"nativeSrc":"408:10:65","nodeType":"YulFunctionCall","src":"408:10:65"},"variableNames":[{"name":"i","nativeSrc":"403:1:65","nodeType":"YulIdentifier","src":"403:1:65"}]}]},"pre":{"nativeSrc":"383:3:65","nodeType":"YulBlock","src":"383:3:65","statements":[]},"src":"379:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"512:3:65","nodeType":"YulIdentifier","src":"512:3:65"},{"name":"length","nativeSrc":"517:6:65","nodeType":"YulIdentifier","src":"517:6:65"}],"functionName":{"name":"add","nativeSrc":"508:3:65","nodeType":"YulIdentifier","src":"508:3:65"},"nativeSrc":"508:16:65","nodeType":"YulFunctionCall","src":"508:16:65"},{"kind":"number","nativeSrc":"526:1:65","nodeType":"YulLiteral","src":"526:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"501:6:65","nodeType":"YulIdentifier","src":"501:6:65"},"nativeSrc":"501:27:65","nodeType":"YulFunctionCall","src":"501:27:65"},"nativeSrc":"501:27:65","nodeType":"YulExpressionStatement","src":"501:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:65","nodeType":"YulTypedName","src":"331:3:65","type":""},{"name":"dst","nativeSrc":"336:3:65","nodeType":"YulTypedName","src":"336:3:65","type":""},{"name":"length","nativeSrc":"341:6:65","nodeType":"YulTypedName","src":"341:6:65","type":""}],"src":"287:248:65"},{"body":{"nativeSrc":"589:54:65","nodeType":"YulBlock","src":"589:54:65","statements":[{"nativeSrc":"599:38:65","nodeType":"YulAssignment","src":"599:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"617:5:65","nodeType":"YulIdentifier","src":"617:5:65"},{"kind":"number","nativeSrc":"624:2:65","nodeType":"YulLiteral","src":"624:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"613:3:65","nodeType":"YulIdentifier","src":"613:3:65"},"nativeSrc":"613:14:65","nodeType":"YulFunctionCall","src":"613:14:65"},{"arguments":[{"kind":"number","nativeSrc":"633:2:65","nodeType":"YulLiteral","src":"633:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"629:3:65","nodeType":"YulIdentifier","src":"629:3:65"},"nativeSrc":"629:7:65","nodeType":"YulFunctionCall","src":"629:7:65"}],"functionName":{"name":"and","nativeSrc":"609:3:65","nodeType":"YulIdentifier","src":"609:3:65"},"nativeSrc":"609:28:65","nodeType":"YulFunctionCall","src":"609:28:65"},"variableNames":[{"name":"result","nativeSrc":"599:6:65","nodeType":"YulIdentifier","src":"599:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"541:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"572:5:65","nodeType":"YulTypedName","src":"572:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"582:6:65","nodeType":"YulTypedName","src":"582:6:65","type":""}],"src":"541:102:65"},{"body":{"nativeSrc":"741:285:65","nodeType":"YulBlock","src":"741:285:65","statements":[{"nativeSrc":"751:53:65","nodeType":"YulVariableDeclaration","src":"751:53:65","value":{"arguments":[{"name":"value","nativeSrc":"798:5:65","nodeType":"YulIdentifier","src":"798:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"765:32:65","nodeType":"YulIdentifier","src":"765:32:65"},"nativeSrc":"765:39:65","nodeType":"YulFunctionCall","src":"765:39:65"},"variables":[{"name":"length","nativeSrc":"755:6:65","nodeType":"YulTypedName","src":"755:6:65","type":""}]},{"nativeSrc":"813:78:65","nodeType":"YulAssignment","src":"813:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"879:3:65","nodeType":"YulIdentifier","src":"879:3:65"},{"name":"length","nativeSrc":"884:6:65","nodeType":"YulIdentifier","src":"884:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"820:58:65","nodeType":"YulIdentifier","src":"820:58:65"},"nativeSrc":"820:71:65","nodeType":"YulFunctionCall","src":"820:71:65"},"variableNames":[{"name":"pos","nativeSrc":"813:3:65","nodeType":"YulIdentifier","src":"813:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"939:5:65","nodeType":"YulIdentifier","src":"939:5:65"},{"kind":"number","nativeSrc":"946:4:65","nodeType":"YulLiteral","src":"946:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:16:65","nodeType":"YulFunctionCall","src":"935:16:65"},{"name":"pos","nativeSrc":"953:3:65","nodeType":"YulIdentifier","src":"953:3:65"},{"name":"length","nativeSrc":"958:6:65","nodeType":"YulIdentifier","src":"958:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"900:34:65","nodeType":"YulIdentifier","src":"900:34:65"},"nativeSrc":"900:65:65","nodeType":"YulFunctionCall","src":"900:65:65"},"nativeSrc":"900:65:65","nodeType":"YulExpressionStatement","src":"900:65:65"},{"nativeSrc":"974:46:65","nodeType":"YulAssignment","src":"974:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"985:3:65","nodeType":"YulIdentifier","src":"985:3:65"},{"arguments":[{"name":"length","nativeSrc":"1012:6:65","nodeType":"YulIdentifier","src":"1012:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"990:21:65","nodeType":"YulIdentifier","src":"990:21:65"},"nativeSrc":"990:29:65","nodeType":"YulFunctionCall","src":"990:29:65"}],"functionName":{"name":"add","nativeSrc":"981:3:65","nodeType":"YulIdentifier","src":"981:3:65"},"nativeSrc":"981:39:65","nodeType":"YulFunctionCall","src":"981:39:65"},"variableNames":[{"name":"end","nativeSrc":"974:3:65","nodeType":"YulIdentifier","src":"974:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"649:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"722:5:65","nodeType":"YulTypedName","src":"722:5:65","type":""},{"name":"pos","nativeSrc":"729:3:65","nodeType":"YulTypedName","src":"729:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"737:3:65","nodeType":"YulTypedName","src":"737:3:65","type":""}],"src":"649:377:65"},{"body":{"nativeSrc":"1150:195:65","nodeType":"YulBlock","src":"1150:195:65","statements":[{"nativeSrc":"1160:26:65","nodeType":"YulAssignment","src":"1160:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1172:9:65","nodeType":"YulIdentifier","src":"1172:9:65"},{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1168:3:65","nodeType":"YulIdentifier","src":"1168:3:65"},"nativeSrc":"1168:18:65","nodeType":"YulFunctionCall","src":"1168:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1160:4:65","nodeType":"YulIdentifier","src":"1160:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1207:9:65","nodeType":"YulIdentifier","src":"1207:9:65"},{"kind":"number","nativeSrc":"1218:1:65","nodeType":"YulLiteral","src":"1218:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1203:3:65","nodeType":"YulIdentifier","src":"1203:3:65"},"nativeSrc":"1203:17:65","nodeType":"YulFunctionCall","src":"1203:17:65"},{"arguments":[{"name":"tail","nativeSrc":"1226:4:65","nodeType":"YulIdentifier","src":"1226:4:65"},{"name":"headStart","nativeSrc":"1232:9:65","nodeType":"YulIdentifier","src":"1232:9:65"}],"functionName":{"name":"sub","nativeSrc":"1222:3:65","nodeType":"YulIdentifier","src":"1222:3:65"},"nativeSrc":"1222:20:65","nodeType":"YulFunctionCall","src":"1222:20:65"}],"functionName":{"name":"mstore","nativeSrc":"1196:6:65","nodeType":"YulIdentifier","src":"1196:6:65"},"nativeSrc":"1196:47:65","nodeType":"YulFunctionCall","src":"1196:47:65"},"nativeSrc":"1196:47:65","nodeType":"YulExpressionStatement","src":"1196:47:65"},{"nativeSrc":"1252:86:65","nodeType":"YulAssignment","src":"1252:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"1324:6:65","nodeType":"YulIdentifier","src":"1324:6:65"},{"name":"tail","nativeSrc":"1333:4:65","nodeType":"YulIdentifier","src":"1333:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1260:63:65","nodeType":"YulIdentifier","src":"1260:63:65"},"nativeSrc":"1260:78:65","nodeType":"YulFunctionCall","src":"1260:78:65"},"variableNames":[{"name":"tail","nativeSrc":"1252:4:65","nodeType":"YulIdentifier","src":"1252:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1032:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1122:9:65","nodeType":"YulTypedName","src":"1122:9:65","type":""},{"name":"value0","nativeSrc":"1134:6:65","nodeType":"YulTypedName","src":"1134:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1145:4:65","nodeType":"YulTypedName","src":"1145:4:65","type":""}],"src":"1032:313:65"},{"body":{"nativeSrc":"1391:35:65","nodeType":"YulBlock","src":"1391:35:65","statements":[{"nativeSrc":"1401:19:65","nodeType":"YulAssignment","src":"1401:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"1417:2:65","nodeType":"YulLiteral","src":"1417:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1411:5:65","nodeType":"YulIdentifier","src":"1411:5:65"},"nativeSrc":"1411:9:65","nodeType":"YulFunctionCall","src":"1411:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1401:6:65","nodeType":"YulIdentifier","src":"1401:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"1351:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1384:6:65","nodeType":"YulTypedName","src":"1384:6:65","type":""}],"src":"1351:75:65"},{"body":{"nativeSrc":"1521:28:65","nodeType":"YulBlock","src":"1521:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1538:1:65","nodeType":"YulLiteral","src":"1538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1541:1:65","nodeType":"YulLiteral","src":"1541:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1531:6:65","nodeType":"YulIdentifier","src":"1531:6:65"},"nativeSrc":"1531:12:65","nodeType":"YulFunctionCall","src":"1531:12:65"},"nativeSrc":"1531:12:65","nodeType":"YulExpressionStatement","src":"1531:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1432:117:65","nodeType":"YulFunctionDefinition","src":"1432:117:65"},{"body":{"nativeSrc":"1644:28:65","nodeType":"YulBlock","src":"1644:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1661:1:65","nodeType":"YulLiteral","src":"1661:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1664:1:65","nodeType":"YulLiteral","src":"1664:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1654:6:65","nodeType":"YulIdentifier","src":"1654:6:65"},"nativeSrc":"1654:12:65","nodeType":"YulFunctionCall","src":"1654:12:65"},"nativeSrc":"1654:12:65","nodeType":"YulExpressionStatement","src":"1654:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1555:117:65","nodeType":"YulFunctionDefinition","src":"1555:117:65"},{"body":{"nativeSrc":"1723:81:65","nodeType":"YulBlock","src":"1723:81:65","statements":[{"nativeSrc":"1733:65:65","nodeType":"YulAssignment","src":"1733:65:65","value":{"arguments":[{"name":"value","nativeSrc":"1748:5:65","nodeType":"YulIdentifier","src":"1748:5:65"},{"kind":"number","nativeSrc":"1755:42:65","nodeType":"YulLiteral","src":"1755:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1744:3:65","nodeType":"YulIdentifier","src":"1744:3:65"},"nativeSrc":"1744:54:65","nodeType":"YulFunctionCall","src":"1744:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1733:7:65","nodeType":"YulIdentifier","src":"1733:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1678:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1705:5:65","nodeType":"YulTypedName","src":"1705:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1715:7:65","nodeType":"YulTypedName","src":"1715:7:65","type":""}],"src":"1678:126:65"},{"body":{"nativeSrc":"1855:51:65","nodeType":"YulBlock","src":"1855:51:65","statements":[{"nativeSrc":"1865:35:65","nodeType":"YulAssignment","src":"1865:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1894:5:65","nodeType":"YulIdentifier","src":"1894:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1876:17:65","nodeType":"YulIdentifier","src":"1876:17:65"},"nativeSrc":"1876:24:65","nodeType":"YulFunctionCall","src":"1876:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1865:7:65","nodeType":"YulIdentifier","src":"1865:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1810:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1837:5:65","nodeType":"YulTypedName","src":"1837:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1847:7:65","nodeType":"YulTypedName","src":"1847:7:65","type":""}],"src":"1810:96:65"},{"body":{"nativeSrc":"1955:79:65","nodeType":"YulBlock","src":"1955:79:65","statements":[{"body":{"nativeSrc":"2012:16:65","nodeType":"YulBlock","src":"2012:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2021:1:65","nodeType":"YulLiteral","src":"2021:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2024:1:65","nodeType":"YulLiteral","src":"2024:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2014:6:65","nodeType":"YulIdentifier","src":"2014:6:65"},"nativeSrc":"2014:12:65","nodeType":"YulFunctionCall","src":"2014:12:65"},"nativeSrc":"2014:12:65","nodeType":"YulExpressionStatement","src":"2014:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1978:5:65","nodeType":"YulIdentifier","src":"1978:5:65"},{"arguments":[{"name":"value","nativeSrc":"2003:5:65","nodeType":"YulIdentifier","src":"2003:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1985:17:65","nodeType":"YulIdentifier","src":"1985:17:65"},"nativeSrc":"1985:24:65","nodeType":"YulFunctionCall","src":"1985:24:65"}],"functionName":{"name":"eq","nativeSrc":"1975:2:65","nodeType":"YulIdentifier","src":"1975:2:65"},"nativeSrc":"1975:35:65","nodeType":"YulFunctionCall","src":"1975:35:65"}],"functionName":{"name":"iszero","nativeSrc":"1968:6:65","nodeType":"YulIdentifier","src":"1968:6:65"},"nativeSrc":"1968:43:65","nodeType":"YulFunctionCall","src":"1968:43:65"},"nativeSrc":"1965:63:65","nodeType":"YulIf","src":"1965:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"1912:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1948:5:65","nodeType":"YulTypedName","src":"1948:5:65","type":""}],"src":"1912:122:65"},{"body":{"nativeSrc":"2092:87:65","nodeType":"YulBlock","src":"2092:87:65","statements":[{"nativeSrc":"2102:29:65","nodeType":"YulAssignment","src":"2102:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2124:6:65","nodeType":"YulIdentifier","src":"2124:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2111:12:65","nodeType":"YulIdentifier","src":"2111:12:65"},"nativeSrc":"2111:20:65","nodeType":"YulFunctionCall","src":"2111:20:65"},"variableNames":[{"name":"value","nativeSrc":"2102:5:65","nodeType":"YulIdentifier","src":"2102:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2167:5:65","nodeType":"YulIdentifier","src":"2167:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2140:26:65","nodeType":"YulIdentifier","src":"2140:26:65"},"nativeSrc":"2140:33:65","nodeType":"YulFunctionCall","src":"2140:33:65"},"nativeSrc":"2140:33:65","nodeType":"YulExpressionStatement","src":"2140:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"2040:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2070:6:65","nodeType":"YulTypedName","src":"2070:6:65","type":""},{"name":"end","nativeSrc":"2078:3:65","nodeType":"YulTypedName","src":"2078:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2086:5:65","nodeType":"YulTypedName","src":"2086:5:65","type":""}],"src":"2040:139:65"},{"body":{"nativeSrc":"2230:32:65","nodeType":"YulBlock","src":"2230:32:65","statements":[{"nativeSrc":"2240:16:65","nodeType":"YulAssignment","src":"2240:16:65","value":{"name":"value","nativeSrc":"2251:5:65","nodeType":"YulIdentifier","src":"2251:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"2240:7:65","nodeType":"YulIdentifier","src":"2240:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2185:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2212:5:65","nodeType":"YulTypedName","src":"2212:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2222:7:65","nodeType":"YulTypedName","src":"2222:7:65","type":""}],"src":"2185:77:65"},{"body":{"nativeSrc":"2311:79:65","nodeType":"YulBlock","src":"2311:79:65","statements":[{"body":{"nativeSrc":"2368:16:65","nodeType":"YulBlock","src":"2368:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2377:1:65","nodeType":"YulLiteral","src":"2377:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2380:1:65","nodeType":"YulLiteral","src":"2380:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2370:6:65","nodeType":"YulIdentifier","src":"2370:6:65"},"nativeSrc":"2370:12:65","nodeType":"YulFunctionCall","src":"2370:12:65"},"nativeSrc":"2370:12:65","nodeType":"YulExpressionStatement","src":"2370:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2334:5:65","nodeType":"YulIdentifier","src":"2334:5:65"},{"arguments":[{"name":"value","nativeSrc":"2359:5:65","nodeType":"YulIdentifier","src":"2359:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2341:17:65","nodeType":"YulIdentifier","src":"2341:17:65"},"nativeSrc":"2341:24:65","nodeType":"YulFunctionCall","src":"2341:24:65"}],"functionName":{"name":"eq","nativeSrc":"2331:2:65","nodeType":"YulIdentifier","src":"2331:2:65"},"nativeSrc":"2331:35:65","nodeType":"YulFunctionCall","src":"2331:35:65"}],"functionName":{"name":"iszero","nativeSrc":"2324:6:65","nodeType":"YulIdentifier","src":"2324:6:65"},"nativeSrc":"2324:43:65","nodeType":"YulFunctionCall","src":"2324:43:65"},"nativeSrc":"2321:63:65","nodeType":"YulIf","src":"2321:63:65"}]},"name":"validator_revert_t_uint256","nativeSrc":"2268:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2304:5:65","nodeType":"YulTypedName","src":"2304:5:65","type":""}],"src":"2268:122:65"},{"body":{"nativeSrc":"2448:87:65","nodeType":"YulBlock","src":"2448:87:65","statements":[{"nativeSrc":"2458:29:65","nodeType":"YulAssignment","src":"2458:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2480:6:65","nodeType":"YulIdentifier","src":"2480:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2467:12:65","nodeType":"YulIdentifier","src":"2467:12:65"},"nativeSrc":"2467:20:65","nodeType":"YulFunctionCall","src":"2467:20:65"},"variableNames":[{"name":"value","nativeSrc":"2458:5:65","nodeType":"YulIdentifier","src":"2458:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2523:5:65","nodeType":"YulIdentifier","src":"2523:5:65"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2496:26:65","nodeType":"YulIdentifier","src":"2496:26:65"},"nativeSrc":"2496:33:65","nodeType":"YulFunctionCall","src":"2496:33:65"},"nativeSrc":"2496:33:65","nodeType":"YulExpressionStatement","src":"2496:33:65"}]},"name":"abi_decode_t_uint256","nativeSrc":"2396:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2426:6:65","nodeType":"YulTypedName","src":"2426:6:65","type":""},{"name":"end","nativeSrc":"2434:3:65","nodeType":"YulTypedName","src":"2434:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2442:5:65","nodeType":"YulTypedName","src":"2442:5:65","type":""}],"src":"2396:139:65"},{"body":{"nativeSrc":"2624:391:65","nodeType":"YulBlock","src":"2624:391:65","statements":[{"body":{"nativeSrc":"2670:83:65","nodeType":"YulBlock","src":"2670:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2672:77:65","nodeType":"YulIdentifier","src":"2672:77:65"},"nativeSrc":"2672:79:65","nodeType":"YulFunctionCall","src":"2672:79:65"},"nativeSrc":"2672:79:65","nodeType":"YulExpressionStatement","src":"2672:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2645:7:65","nodeType":"YulIdentifier","src":"2645:7:65"},{"name":"headStart","nativeSrc":"2654:9:65","nodeType":"YulIdentifier","src":"2654:9:65"}],"functionName":{"name":"sub","nativeSrc":"2641:3:65","nodeType":"YulIdentifier","src":"2641:3:65"},"nativeSrc":"2641:23:65","nodeType":"YulFunctionCall","src":"2641:23:65"},{"kind":"number","nativeSrc":"2666:2:65","nodeType":"YulLiteral","src":"2666:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},"nativeSrc":"2637:32:65","nodeType":"YulFunctionCall","src":"2637:32:65"},"nativeSrc":"2634:119:65","nodeType":"YulIf","src":"2634:119:65"},{"nativeSrc":"2763:117:65","nodeType":"YulBlock","src":"2763:117:65","statements":[{"nativeSrc":"2778:15:65","nodeType":"YulVariableDeclaration","src":"2778:15:65","value":{"kind":"number","nativeSrc":"2792:1:65","nodeType":"YulLiteral","src":"2792:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2782:6:65","nodeType":"YulTypedName","src":"2782:6:65","type":""}]},{"nativeSrc":"2807:63:65","nodeType":"YulAssignment","src":"2807:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2842:9:65","nodeType":"YulIdentifier","src":"2842:9:65"},{"name":"offset","nativeSrc":"2853:6:65","nodeType":"YulIdentifier","src":"2853:6:65"}],"functionName":{"name":"add","nativeSrc":"2838:3:65","nodeType":"YulIdentifier","src":"2838:3:65"},"nativeSrc":"2838:22:65","nodeType":"YulFunctionCall","src":"2838:22:65"},{"name":"dataEnd","nativeSrc":"2862:7:65","nodeType":"YulIdentifier","src":"2862:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2817:20:65","nodeType":"YulIdentifier","src":"2817:20:65"},"nativeSrc":"2817:53:65","nodeType":"YulFunctionCall","src":"2817:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2807:6:65","nodeType":"YulIdentifier","src":"2807:6:65"}]}]},{"nativeSrc":"2890:118:65","nodeType":"YulBlock","src":"2890:118:65","statements":[{"nativeSrc":"2905:16:65","nodeType":"YulVariableDeclaration","src":"2905:16:65","value":{"kind":"number","nativeSrc":"2919:2:65","nodeType":"YulLiteral","src":"2919:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2909:6:65","nodeType":"YulTypedName","src":"2909:6:65","type":""}]},{"nativeSrc":"2935:63:65","nodeType":"YulAssignment","src":"2935:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2970:9:65","nodeType":"YulIdentifier","src":"2970:9:65"},{"name":"offset","nativeSrc":"2981:6:65","nodeType":"YulIdentifier","src":"2981:6:65"}],"functionName":{"name":"add","nativeSrc":"2966:3:65","nodeType":"YulIdentifier","src":"2966:3:65"},"nativeSrc":"2966:22:65","nodeType":"YulFunctionCall","src":"2966:22:65"},{"name":"dataEnd","nativeSrc":"2990:7:65","nodeType":"YulIdentifier","src":"2990:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2945:20:65","nodeType":"YulIdentifier","src":"2945:20:65"},"nativeSrc":"2945:53:65","nodeType":"YulFunctionCall","src":"2945:53:65"},"variableNames":[{"name":"value1","nativeSrc":"2935:6:65","nodeType":"YulIdentifier","src":"2935:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2541:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2586:9:65","nodeType":"YulTypedName","src":"2586:9:65","type":""},{"name":"dataEnd","nativeSrc":"2597:7:65","nodeType":"YulTypedName","src":"2597:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2609:6:65","nodeType":"YulTypedName","src":"2609:6:65","type":""},{"name":"value1","nativeSrc":"2617:6:65","nodeType":"YulTypedName","src":"2617:6:65","type":""}],"src":"2541:474:65"},{"body":{"nativeSrc":"3063:48:65","nodeType":"YulBlock","src":"3063:48:65","statements":[{"nativeSrc":"3073:32:65","nodeType":"YulAssignment","src":"3073:32:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3098:5:65","nodeType":"YulIdentifier","src":"3098:5:65"}],"functionName":{"name":"iszero","nativeSrc":"3091:6:65","nodeType":"YulIdentifier","src":"3091:6:65"},"nativeSrc":"3091:13:65","nodeType":"YulFunctionCall","src":"3091:13:65"}],"functionName":{"name":"iszero","nativeSrc":"3084:6:65","nodeType":"YulIdentifier","src":"3084:6:65"},"nativeSrc":"3084:21:65","nodeType":"YulFunctionCall","src":"3084:21:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3073:7:65","nodeType":"YulIdentifier","src":"3073:7:65"}]}]},"name":"cleanup_t_bool","nativeSrc":"3021:90:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3045:5:65","nodeType":"YulTypedName","src":"3045:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3055:7:65","nodeType":"YulTypedName","src":"3055:7:65","type":""}],"src":"3021:90:65"},{"body":{"nativeSrc":"3176:50:65","nodeType":"YulBlock","src":"3176:50:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3193:3:65","nodeType":"YulIdentifier","src":"3193:3:65"},{"arguments":[{"name":"value","nativeSrc":"3213:5:65","nodeType":"YulIdentifier","src":"3213:5:65"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3198:14:65","nodeType":"YulIdentifier","src":"3198:14:65"},"nativeSrc":"3198:21:65","nodeType":"YulFunctionCall","src":"3198:21:65"}],"functionName":{"name":"mstore","nativeSrc":"3186:6:65","nodeType":"YulIdentifier","src":"3186:6:65"},"nativeSrc":"3186:34:65","nodeType":"YulFunctionCall","src":"3186:34:65"},"nativeSrc":"3186:34:65","nodeType":"YulExpressionStatement","src":"3186:34:65"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3117:109:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3164:5:65","nodeType":"YulTypedName","src":"3164:5:65","type":""},{"name":"pos","nativeSrc":"3171:3:65","nodeType":"YulTypedName","src":"3171:3:65","type":""}],"src":"3117:109:65"},{"body":{"nativeSrc":"3324:118:65","nodeType":"YulBlock","src":"3324:118:65","statements":[{"nativeSrc":"3334:26:65","nodeType":"YulAssignment","src":"3334:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3346:9:65","nodeType":"YulIdentifier","src":"3346:9:65"},{"kind":"number","nativeSrc":"3357:2:65","nodeType":"YulLiteral","src":"3357:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3342:3:65","nodeType":"YulIdentifier","src":"3342:3:65"},"nativeSrc":"3342:18:65","nodeType":"YulFunctionCall","src":"3342:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3334:4:65","nodeType":"YulIdentifier","src":"3334:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3408:6:65","nodeType":"YulIdentifier","src":"3408:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3421:9:65","nodeType":"YulIdentifier","src":"3421:9:65"},{"kind":"number","nativeSrc":"3432:1:65","nodeType":"YulLiteral","src":"3432:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3417:3:65","nodeType":"YulIdentifier","src":"3417:3:65"},"nativeSrc":"3417:17:65","nodeType":"YulFunctionCall","src":"3417:17:65"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3370:37:65","nodeType":"YulIdentifier","src":"3370:37:65"},"nativeSrc":"3370:65:65","nodeType":"YulFunctionCall","src":"3370:65:65"},"nativeSrc":"3370:65:65","nodeType":"YulExpressionStatement","src":"3370:65:65"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3232:210:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3296:9:65","nodeType":"YulTypedName","src":"3296:9:65","type":""},{"name":"value0","nativeSrc":"3308:6:65","nodeType":"YulTypedName","src":"3308:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3319:4:65","nodeType":"YulTypedName","src":"3319:4:65","type":""}],"src":"3232:210:65"},{"body":{"nativeSrc":"3513:53:65","nodeType":"YulBlock","src":"3513:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3530:3:65","nodeType":"YulIdentifier","src":"3530:3:65"},{"arguments":[{"name":"value","nativeSrc":"3553:5:65","nodeType":"YulIdentifier","src":"3553:5:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3535:17:65","nodeType":"YulIdentifier","src":"3535:17:65"},"nativeSrc":"3535:24:65","nodeType":"YulFunctionCall","src":"3535:24:65"}],"functionName":{"name":"mstore","nativeSrc":"3523:6:65","nodeType":"YulIdentifier","src":"3523:6:65"},"nativeSrc":"3523:37:65","nodeType":"YulFunctionCall","src":"3523:37:65"},"nativeSrc":"3523:37:65","nodeType":"YulExpressionStatement","src":"3523:37:65"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3448:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3501:5:65","nodeType":"YulTypedName","src":"3501:5:65","type":""},{"name":"pos","nativeSrc":"3508:3:65","nodeType":"YulTypedName","src":"3508:3:65","type":""}],"src":"3448:118:65"},{"body":{"nativeSrc":"3670:124:65","nodeType":"YulBlock","src":"3670:124:65","statements":[{"nativeSrc":"3680:26:65","nodeType":"YulAssignment","src":"3680:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3692:9:65","nodeType":"YulIdentifier","src":"3692:9:65"},{"kind":"number","nativeSrc":"3703:2:65","nodeType":"YulLiteral","src":"3703:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3688:3:65","nodeType":"YulIdentifier","src":"3688:3:65"},"nativeSrc":"3688:18:65","nodeType":"YulFunctionCall","src":"3688:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3680:4:65","nodeType":"YulIdentifier","src":"3680:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3760:6:65","nodeType":"YulIdentifier","src":"3760:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3773:9:65","nodeType":"YulIdentifier","src":"3773:9:65"},{"kind":"number","nativeSrc":"3784:1:65","nodeType":"YulLiteral","src":"3784:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3769:3:65","nodeType":"YulIdentifier","src":"3769:3:65"},"nativeSrc":"3769:17:65","nodeType":"YulFunctionCall","src":"3769:17:65"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3716:43:65","nodeType":"YulIdentifier","src":"3716:43:65"},"nativeSrc":"3716:71:65","nodeType":"YulFunctionCall","src":"3716:71:65"},"nativeSrc":"3716:71:65","nodeType":"YulExpressionStatement","src":"3716:71:65"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3572:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3642:9:65","nodeType":"YulTypedName","src":"3642:9:65","type":""},{"name":"value0","nativeSrc":"3654:6:65","nodeType":"YulTypedName","src":"3654:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3665:4:65","nodeType":"YulTypedName","src":"3665:4:65","type":""}],"src":"3572:222:65"},{"body":{"nativeSrc":"3900:519:65","nodeType":"YulBlock","src":"3900:519:65","statements":[{"body":{"nativeSrc":"3946:83:65","nodeType":"YulBlock","src":"3946:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3948:77:65","nodeType":"YulIdentifier","src":"3948:77:65"},"nativeSrc":"3948:79:65","nodeType":"YulFunctionCall","src":"3948:79:65"},"nativeSrc":"3948:79:65","nodeType":"YulExpressionStatement","src":"3948:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3921:7:65","nodeType":"YulIdentifier","src":"3921:7:65"},{"name":"headStart","nativeSrc":"3930:9:65","nodeType":"YulIdentifier","src":"3930:9:65"}],"functionName":{"name":"sub","nativeSrc":"3917:3:65","nodeType":"YulIdentifier","src":"3917:3:65"},"nativeSrc":"3917:23:65","nodeType":"YulFunctionCall","src":"3917:23:65"},{"kind":"number","nativeSrc":"3942:2:65","nodeType":"YulLiteral","src":"3942:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3913:3:65","nodeType":"YulIdentifier","src":"3913:3:65"},"nativeSrc":"3913:32:65","nodeType":"YulFunctionCall","src":"3913:32:65"},"nativeSrc":"3910:119:65","nodeType":"YulIf","src":"3910:119:65"},{"nativeSrc":"4039:117:65","nodeType":"YulBlock","src":"4039:117:65","statements":[{"nativeSrc":"4054:15:65","nodeType":"YulVariableDeclaration","src":"4054:15:65","value":{"kind":"number","nativeSrc":"4068:1:65","nodeType":"YulLiteral","src":"4068:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4058:6:65","nodeType":"YulTypedName","src":"4058:6:65","type":""}]},{"nativeSrc":"4083:63:65","nodeType":"YulAssignment","src":"4083:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4118:9:65","nodeType":"YulIdentifier","src":"4118:9:65"},{"name":"offset","nativeSrc":"4129:6:65","nodeType":"YulIdentifier","src":"4129:6:65"}],"functionName":{"name":"add","nativeSrc":"4114:3:65","nodeType":"YulIdentifier","src":"4114:3:65"},"nativeSrc":"4114:22:65","nodeType":"YulFunctionCall","src":"4114:22:65"},{"name":"dataEnd","nativeSrc":"4138:7:65","nodeType":"YulIdentifier","src":"4138:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4093:20:65","nodeType":"YulIdentifier","src":"4093:20:65"},"nativeSrc":"4093:53:65","nodeType":"YulFunctionCall","src":"4093:53:65"},"variableNames":[{"name":"value0","nativeSrc":"4083:6:65","nodeType":"YulIdentifier","src":"4083:6:65"}]}]},{"nativeSrc":"4166:118:65","nodeType":"YulBlock","src":"4166:118:65","statements":[{"nativeSrc":"4181:16:65","nodeType":"YulVariableDeclaration","src":"4181:16:65","value":{"kind":"number","nativeSrc":"4195:2:65","nodeType":"YulLiteral","src":"4195:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4185:6:65","nodeType":"YulTypedName","src":"4185:6:65","type":""}]},{"nativeSrc":"4211:63:65","nodeType":"YulAssignment","src":"4211:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4246:9:65","nodeType":"YulIdentifier","src":"4246:9:65"},{"name":"offset","nativeSrc":"4257:6:65","nodeType":"YulIdentifier","src":"4257:6:65"}],"functionName":{"name":"add","nativeSrc":"4242:3:65","nodeType":"YulIdentifier","src":"4242:3:65"},"nativeSrc":"4242:22:65","nodeType":"YulFunctionCall","src":"4242:22:65"},{"name":"dataEnd","nativeSrc":"4266:7:65","nodeType":"YulIdentifier","src":"4266:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4221:20:65","nodeType":"YulIdentifier","src":"4221:20:65"},"nativeSrc":"4221:53:65","nodeType":"YulFunctionCall","src":"4221:53:65"},"variableNames":[{"name":"value1","nativeSrc":"4211:6:65","nodeType":"YulIdentifier","src":"4211:6:65"}]}]},{"nativeSrc":"4294:118:65","nodeType":"YulBlock","src":"4294:118:65","statements":[{"nativeSrc":"4309:16:65","nodeType":"YulVariableDeclaration","src":"4309:16:65","value":{"kind":"number","nativeSrc":"4323:2:65","nodeType":"YulLiteral","src":"4323:2:65","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4313:6:65","nodeType":"YulTypedName","src":"4313:6:65","type":""}]},{"nativeSrc":"4339:63:65","nodeType":"YulAssignment","src":"4339:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4374:9:65","nodeType":"YulIdentifier","src":"4374:9:65"},{"name":"offset","nativeSrc":"4385:6:65","nodeType":"YulIdentifier","src":"4385:6:65"}],"functionName":{"name":"add","nativeSrc":"4370:3:65","nodeType":"YulIdentifier","src":"4370:3:65"},"nativeSrc":"4370:22:65","nodeType":"YulFunctionCall","src":"4370:22:65"},{"name":"dataEnd","nativeSrc":"4394:7:65","nodeType":"YulIdentifier","src":"4394:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4349:20:65","nodeType":"YulIdentifier","src":"4349:20:65"},"nativeSrc":"4349:53:65","nodeType":"YulFunctionCall","src":"4349:53:65"},"variableNames":[{"name":"value2","nativeSrc":"4339:6:65","nodeType":"YulIdentifier","src":"4339:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3800:619:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3854:9:65","nodeType":"YulTypedName","src":"3854:9:65","type":""},{"name":"dataEnd","nativeSrc":"3865:7:65","nodeType":"YulTypedName","src":"3865:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3877:6:65","nodeType":"YulTypedName","src":"3877:6:65","type":""},{"name":"value1","nativeSrc":"3885:6:65","nodeType":"YulTypedName","src":"3885:6:65","type":""},{"name":"value2","nativeSrc":"3893:6:65","nodeType":"YulTypedName","src":"3893:6:65","type":""}],"src":"3800:619:65"},{"body":{"nativeSrc":"4468:43:65","nodeType":"YulBlock","src":"4468:43:65","statements":[{"nativeSrc":"4478:27:65","nodeType":"YulAssignment","src":"4478:27:65","value":{"arguments":[{"name":"value","nativeSrc":"4493:5:65","nodeType":"YulIdentifier","src":"4493:5:65"},{"kind":"number","nativeSrc":"4500:4:65","nodeType":"YulLiteral","src":"4500:4:65","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4489:3:65","nodeType":"YulIdentifier","src":"4489:3:65"},"nativeSrc":"4489:16:65","nodeType":"YulFunctionCall","src":"4489:16:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4478:7:65","nodeType":"YulIdentifier","src":"4478:7:65"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4425:86:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4450:5:65","nodeType":"YulTypedName","src":"4450:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4460:7:65","nodeType":"YulTypedName","src":"4460:7:65","type":""}],"src":"4425:86:65"},{"body":{"nativeSrc":"4578:51:65","nodeType":"YulBlock","src":"4578:51:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4595:3:65","nodeType":"YulIdentifier","src":"4595:3:65"},{"arguments":[{"name":"value","nativeSrc":"4616:5:65","nodeType":"YulIdentifier","src":"4616:5:65"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4600:15:65","nodeType":"YulIdentifier","src":"4600:15:65"},"nativeSrc":"4600:22:65","nodeType":"YulFunctionCall","src":"4600:22:65"}],"functionName":{"name":"mstore","nativeSrc":"4588:6:65","nodeType":"YulIdentifier","src":"4588:6:65"},"nativeSrc":"4588:35:65","nodeType":"YulFunctionCall","src":"4588:35:65"},"nativeSrc":"4588:35:65","nodeType":"YulExpressionStatement","src":"4588:35:65"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4517:112:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4566:5:65","nodeType":"YulTypedName","src":"4566:5:65","type":""},{"name":"pos","nativeSrc":"4573:3:65","nodeType":"YulTypedName","src":"4573:3:65","type":""}],"src":"4517:112:65"},{"body":{"nativeSrc":"4729:120:65","nodeType":"YulBlock","src":"4729:120:65","statements":[{"nativeSrc":"4739:26:65","nodeType":"YulAssignment","src":"4739:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4751:9:65","nodeType":"YulIdentifier","src":"4751:9:65"},{"kind":"number","nativeSrc":"4762:2:65","nodeType":"YulLiteral","src":"4762:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4747:3:65","nodeType":"YulIdentifier","src":"4747:3:65"},"nativeSrc":"4747:18:65","nodeType":"YulFunctionCall","src":"4747:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4739:4:65","nodeType":"YulIdentifier","src":"4739:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4815:6:65","nodeType":"YulIdentifier","src":"4815:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4828:9:65","nodeType":"YulIdentifier","src":"4828:9:65"},{"kind":"number","nativeSrc":"4839:1:65","nodeType":"YulLiteral","src":"4839:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4824:3:65","nodeType":"YulIdentifier","src":"4824:3:65"},"nativeSrc":"4824:17:65","nodeType":"YulFunctionCall","src":"4824:17:65"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4775:39:65","nodeType":"YulIdentifier","src":"4775:39:65"},"nativeSrc":"4775:67:65","nodeType":"YulFunctionCall","src":"4775:67:65"},"nativeSrc":"4775:67:65","nodeType":"YulExpressionStatement","src":"4775:67:65"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4635:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4701:9:65","nodeType":"YulTypedName","src":"4701:9:65","type":""},{"name":"value0","nativeSrc":"4713:6:65","nodeType":"YulTypedName","src":"4713:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4724:4:65","nodeType":"YulTypedName","src":"4724:4:65","type":""}],"src":"4635:214:65"},{"body":{"nativeSrc":"4921:263:65","nodeType":"YulBlock","src":"4921:263:65","statements":[{"body":{"nativeSrc":"4967:83:65","nodeType":"YulBlock","src":"4967:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4969:77:65","nodeType":"YulIdentifier","src":"4969:77:65"},"nativeSrc":"4969:79:65","nodeType":"YulFunctionCall","src":"4969:79:65"},"nativeSrc":"4969:79:65","nodeType":"YulExpressionStatement","src":"4969:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4942:7:65","nodeType":"YulIdentifier","src":"4942:7:65"},{"name":"headStart","nativeSrc":"4951:9:65","nodeType":"YulIdentifier","src":"4951:9:65"}],"functionName":{"name":"sub","nativeSrc":"4938:3:65","nodeType":"YulIdentifier","src":"4938:3:65"},"nativeSrc":"4938:23:65","nodeType":"YulFunctionCall","src":"4938:23:65"},{"kind":"number","nativeSrc":"4963:2:65","nodeType":"YulLiteral","src":"4963:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4934:3:65","nodeType":"YulIdentifier","src":"4934:3:65"},"nativeSrc":"4934:32:65","nodeType":"YulFunctionCall","src":"4934:32:65"},"nativeSrc":"4931:119:65","nodeType":"YulIf","src":"4931:119:65"},{"nativeSrc":"5060:117:65","nodeType":"YulBlock","src":"5060:117:65","statements":[{"nativeSrc":"5075:15:65","nodeType":"YulVariableDeclaration","src":"5075:15:65","value":{"kind":"number","nativeSrc":"5089:1:65","nodeType":"YulLiteral","src":"5089:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5079:6:65","nodeType":"YulTypedName","src":"5079:6:65","type":""}]},{"nativeSrc":"5104:63:65","nodeType":"YulAssignment","src":"5104:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5139:9:65","nodeType":"YulIdentifier","src":"5139:9:65"},{"name":"offset","nativeSrc":"5150:6:65","nodeType":"YulIdentifier","src":"5150:6:65"}],"functionName":{"name":"add","nativeSrc":"5135:3:65","nodeType":"YulIdentifier","src":"5135:3:65"},"nativeSrc":"5135:22:65","nodeType":"YulFunctionCall","src":"5135:22:65"},{"name":"dataEnd","nativeSrc":"5159:7:65","nodeType":"YulIdentifier","src":"5159:7:65"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5114:20:65","nodeType":"YulIdentifier","src":"5114:20:65"},"nativeSrc":"5114:53:65","nodeType":"YulFunctionCall","src":"5114:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5104:6:65","nodeType":"YulIdentifier","src":"5104:6:65"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"4855:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4891:9:65","nodeType":"YulTypedName","src":"4891:9:65","type":""},{"name":"dataEnd","nativeSrc":"4902:7:65","nodeType":"YulTypedName","src":"4902:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4914:6:65","nodeType":"YulTypedName","src":"4914:6:65","type":""}],"src":"4855:329:65"},{"body":{"nativeSrc":"5256:263:65","nodeType":"YulBlock","src":"5256:263:65","statements":[{"body":{"nativeSrc":"5302:83:65","nodeType":"YulBlock","src":"5302:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5304:77:65","nodeType":"YulIdentifier","src":"5304:77:65"},"nativeSrc":"5304:79:65","nodeType":"YulFunctionCall","src":"5304:79:65"},"nativeSrc":"5304:79:65","nodeType":"YulExpressionStatement","src":"5304:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5277:7:65","nodeType":"YulIdentifier","src":"5277:7:65"},{"name":"headStart","nativeSrc":"5286:9:65","nodeType":"YulIdentifier","src":"5286:9:65"}],"functionName":{"name":"sub","nativeSrc":"5273:3:65","nodeType":"YulIdentifier","src":"5273:3:65"},"nativeSrc":"5273:23:65","nodeType":"YulFunctionCall","src":"5273:23:65"},{"kind":"number","nativeSrc":"5298:2:65","nodeType":"YulLiteral","src":"5298:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5269:3:65","nodeType":"YulIdentifier","src":"5269:3:65"},"nativeSrc":"5269:32:65","nodeType":"YulFunctionCall","src":"5269:32:65"},"nativeSrc":"5266:119:65","nodeType":"YulIf","src":"5266:119:65"},{"nativeSrc":"5395:117:65","nodeType":"YulBlock","src":"5395:117:65","statements":[{"nativeSrc":"5410:15:65","nodeType":"YulVariableDeclaration","src":"5410:15:65","value":{"kind":"number","nativeSrc":"5424:1:65","nodeType":"YulLiteral","src":"5424:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5414:6:65","nodeType":"YulTypedName","src":"5414:6:65","type":""}]},{"nativeSrc":"5439:63:65","nodeType":"YulAssignment","src":"5439:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5474:9:65","nodeType":"YulIdentifier","src":"5474:9:65"},{"name":"offset","nativeSrc":"5485:6:65","nodeType":"YulIdentifier","src":"5485:6:65"}],"functionName":{"name":"add","nativeSrc":"5470:3:65","nodeType":"YulIdentifier","src":"5470:3:65"},"nativeSrc":"5470:22:65","nodeType":"YulFunctionCall","src":"5470:22:65"},{"name":"dataEnd","nativeSrc":"5494:7:65","nodeType":"YulIdentifier","src":"5494:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5449:20:65","nodeType":"YulIdentifier","src":"5449:20:65"},"nativeSrc":"5449:53:65","nodeType":"YulFunctionCall","src":"5449:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5439:6:65","nodeType":"YulIdentifier","src":"5439:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5190:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5226:9:65","nodeType":"YulTypedName","src":"5226:9:65","type":""},{"name":"dataEnd","nativeSrc":"5237:7:65","nodeType":"YulTypedName","src":"5237:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5249:6:65","nodeType":"YulTypedName","src":"5249:6:65","type":""}],"src":"5190:329:65"},{"body":{"nativeSrc":"5608:391:65","nodeType":"YulBlock","src":"5608:391:65","statements":[{"body":{"nativeSrc":"5654:83:65","nodeType":"YulBlock","src":"5654:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5656:77:65","nodeType":"YulIdentifier","src":"5656:77:65"},"nativeSrc":"5656:79:65","nodeType":"YulFunctionCall","src":"5656:79:65"},"nativeSrc":"5656:79:65","nodeType":"YulExpressionStatement","src":"5656:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5629:7:65","nodeType":"YulIdentifier","src":"5629:7:65"},{"name":"headStart","nativeSrc":"5638:9:65","nodeType":"YulIdentifier","src":"5638:9:65"}],"functionName":{"name":"sub","nativeSrc":"5625:3:65","nodeType":"YulIdentifier","src":"5625:3:65"},"nativeSrc":"5625:23:65","nodeType":"YulFunctionCall","src":"5625:23:65"},{"kind":"number","nativeSrc":"5650:2:65","nodeType":"YulLiteral","src":"5650:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5621:3:65","nodeType":"YulIdentifier","src":"5621:3:65"},"nativeSrc":"5621:32:65","nodeType":"YulFunctionCall","src":"5621:32:65"},"nativeSrc":"5618:119:65","nodeType":"YulIf","src":"5618:119:65"},{"nativeSrc":"5747:117:65","nodeType":"YulBlock","src":"5747:117:65","statements":[{"nativeSrc":"5762:15:65","nodeType":"YulVariableDeclaration","src":"5762:15:65","value":{"kind":"number","nativeSrc":"5776:1:65","nodeType":"YulLiteral","src":"5776:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5766:6:65","nodeType":"YulTypedName","src":"5766:6:65","type":""}]},{"nativeSrc":"5791:63:65","nodeType":"YulAssignment","src":"5791:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5826:9:65","nodeType":"YulIdentifier","src":"5826:9:65"},{"name":"offset","nativeSrc":"5837:6:65","nodeType":"YulIdentifier","src":"5837:6:65"}],"functionName":{"name":"add","nativeSrc":"5822:3:65","nodeType":"YulIdentifier","src":"5822:3:65"},"nativeSrc":"5822:22:65","nodeType":"YulFunctionCall","src":"5822:22:65"},{"name":"dataEnd","nativeSrc":"5846:7:65","nodeType":"YulIdentifier","src":"5846:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5801:20:65","nodeType":"YulIdentifier","src":"5801:20:65"},"nativeSrc":"5801:53:65","nodeType":"YulFunctionCall","src":"5801:53:65"},"variableNames":[{"name":"value0","nativeSrc":"5791:6:65","nodeType":"YulIdentifier","src":"5791:6:65"}]}]},{"nativeSrc":"5874:118:65","nodeType":"YulBlock","src":"5874:118:65","statements":[{"nativeSrc":"5889:16:65","nodeType":"YulVariableDeclaration","src":"5889:16:65","value":{"kind":"number","nativeSrc":"5903:2:65","nodeType":"YulLiteral","src":"5903:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5893:6:65","nodeType":"YulTypedName","src":"5893:6:65","type":""}]},{"nativeSrc":"5919:63:65","nodeType":"YulAssignment","src":"5919:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5954:9:65","nodeType":"YulIdentifier","src":"5954:9:65"},{"name":"offset","nativeSrc":"5965:6:65","nodeType":"YulIdentifier","src":"5965:6:65"}],"functionName":{"name":"add","nativeSrc":"5950:3:65","nodeType":"YulIdentifier","src":"5950:3:65"},"nativeSrc":"5950:22:65","nodeType":"YulFunctionCall","src":"5950:22:65"},{"name":"dataEnd","nativeSrc":"5974:7:65","nodeType":"YulIdentifier","src":"5974:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5929:20:65","nodeType":"YulIdentifier","src":"5929:20:65"},"nativeSrc":"5929:53:65","nodeType":"YulFunctionCall","src":"5929:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5919:6:65","nodeType":"YulIdentifier","src":"5919:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5525:474:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5570:9:65","nodeType":"YulTypedName","src":"5570:9:65","type":""},{"name":"dataEnd","nativeSrc":"5581:7:65","nodeType":"YulTypedName","src":"5581:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5593:6:65","nodeType":"YulTypedName","src":"5593:6:65","type":""},{"name":"value1","nativeSrc":"5601:6:65","nodeType":"YulTypedName","src":"5601:6:65","type":""}],"src":"5525:474:65"},{"body":{"nativeSrc":"6033:152:65","nodeType":"YulBlock","src":"6033:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6050:1:65","nodeType":"YulLiteral","src":"6050:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6053:77:65","nodeType":"YulLiteral","src":"6053:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6043:6:65","nodeType":"YulIdentifier","src":"6043:6:65"},"nativeSrc":"6043:88:65","nodeType":"YulFunctionCall","src":"6043:88:65"},"nativeSrc":"6043:88:65","nodeType":"YulExpressionStatement","src":"6043:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6147:1:65","nodeType":"YulLiteral","src":"6147:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"6150:4:65","nodeType":"YulLiteral","src":"6150:4:65","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6140:6:65","nodeType":"YulIdentifier","src":"6140:6:65"},"nativeSrc":"6140:15:65","nodeType":"YulFunctionCall","src":"6140:15:65"},"nativeSrc":"6140:15:65","nodeType":"YulExpressionStatement","src":"6140:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6171:1:65","nodeType":"YulLiteral","src":"6171:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6174:4:65","nodeType":"YulLiteral","src":"6174:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6164:6:65","nodeType":"YulIdentifier","src":"6164:6:65"},"nativeSrc":"6164:15:65","nodeType":"YulFunctionCall","src":"6164:15:65"},"nativeSrc":"6164:15:65","nodeType":"YulExpressionStatement","src":"6164:15:65"}]},"name":"panic_error_0x22","nativeSrc":"6005:180:65","nodeType":"YulFunctionDefinition","src":"6005:180:65"},{"body":{"nativeSrc":"6242:269:65","nodeType":"YulBlock","src":"6242:269:65","statements":[{"nativeSrc":"6252:22:65","nodeType":"YulAssignment","src":"6252:22:65","value":{"arguments":[{"name":"data","nativeSrc":"6266:4:65","nodeType":"YulIdentifier","src":"6266:4:65"},{"kind":"number","nativeSrc":"6272:1:65","nodeType":"YulLiteral","src":"6272:1:65","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"6262:3:65","nodeType":"YulIdentifier","src":"6262:3:65"},"nativeSrc":"6262:12:65","nodeType":"YulFunctionCall","src":"6262:12:65"},"variableNames":[{"name":"length","nativeSrc":"6252:6:65","nodeType":"YulIdentifier","src":"6252:6:65"}]},{"nativeSrc":"6283:38:65","nodeType":"YulVariableDeclaration","src":"6283:38:65","value":{"arguments":[{"name":"data","nativeSrc":"6313:4:65","nodeType":"YulIdentifier","src":"6313:4:65"},{"kind":"number","nativeSrc":"6319:1:65","nodeType":"YulLiteral","src":"6319:1:65","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6309:3:65","nodeType":"YulIdentifier","src":"6309:3:65"},"nativeSrc":"6309:12:65","nodeType":"YulFunctionCall","src":"6309:12:65"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6287:18:65","nodeType":"YulTypedName","src":"6287:18:65","type":""}]},{"body":{"nativeSrc":"6360:51:65","nodeType":"YulBlock","src":"6360:51:65","statements":[{"nativeSrc":"6374:27:65","nodeType":"YulAssignment","src":"6374:27:65","value":{"arguments":[{"name":"length","nativeSrc":"6388:6:65","nodeType":"YulIdentifier","src":"6388:6:65"},{"kind":"number","nativeSrc":"6396:4:65","nodeType":"YulLiteral","src":"6396:4:65","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6384:3:65","nodeType":"YulIdentifier","src":"6384:3:65"},"nativeSrc":"6384:17:65","nodeType":"YulFunctionCall","src":"6384:17:65"},"variableNames":[{"name":"length","nativeSrc":"6374:6:65","nodeType":"YulIdentifier","src":"6374:6:65"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6340:18:65","nodeType":"YulIdentifier","src":"6340:18:65"}],"functionName":{"name":"iszero","nativeSrc":"6333:6:65","nodeType":"YulIdentifier","src":"6333:6:65"},"nativeSrc":"6333:26:65","nodeType":"YulFunctionCall","src":"6333:26:65"},"nativeSrc":"6330:81:65","nodeType":"YulIf","src":"6330:81:65"},{"body":{"nativeSrc":"6463:42:65","nodeType":"YulBlock","src":"6463:42:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"6477:16:65","nodeType":"YulIdentifier","src":"6477:16:65"},"nativeSrc":"6477:18:65","nodeType":"YulFunctionCall","src":"6477:18:65"},"nativeSrc":"6477:18:65","nodeType":"YulExpressionStatement","src":"6477:18:65"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6427:18:65","nodeType":"YulIdentifier","src":"6427:18:65"},{"arguments":[{"name":"length","nativeSrc":"6450:6:65","nodeType":"YulIdentifier","src":"6450:6:65"},{"kind":"number","nativeSrc":"6458:2:65","nodeType":"YulLiteral","src":"6458:2:65","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6447:2:65","nodeType":"YulIdentifier","src":"6447:2:65"},"nativeSrc":"6447:14:65","nodeType":"YulFunctionCall","src":"6447:14:65"}],"functionName":{"name":"eq","nativeSrc":"6424:2:65","nodeType":"YulIdentifier","src":"6424:2:65"},"nativeSrc":"6424:38:65","nodeType":"YulFunctionCall","src":"6424:38:65"},"nativeSrc":"6421:84:65","nodeType":"YulIf","src":"6421:84:65"}]},"name":"extract_byte_array_length","nativeSrc":"6191:320:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6226:4:65","nodeType":"YulTypedName","src":"6226:4:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6235:6:65","nodeType":"YulTypedName","src":"6235:6:65","type":""}],"src":"6191:320:65"},{"body":{"nativeSrc":"6545:152:65","nodeType":"YulBlock","src":"6545:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6562:1:65","nodeType":"YulLiteral","src":"6562:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6565:77:65","nodeType":"YulLiteral","src":"6565:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6555:6:65","nodeType":"YulIdentifier","src":"6555:6:65"},"nativeSrc":"6555:88:65","nodeType":"YulFunctionCall","src":"6555:88:65"},"nativeSrc":"6555:88:65","nodeType":"YulExpressionStatement","src":"6555:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6659:1:65","nodeType":"YulLiteral","src":"6659:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"6662:4:65","nodeType":"YulLiteral","src":"6662:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6652:6:65","nodeType":"YulIdentifier","src":"6652:6:65"},"nativeSrc":"6652:15:65","nodeType":"YulFunctionCall","src":"6652:15:65"},"nativeSrc":"6652:15:65","nodeType":"YulExpressionStatement","src":"6652:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6683:1:65","nodeType":"YulLiteral","src":"6683:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"6686:4:65","nodeType":"YulLiteral","src":"6686:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6676:6:65","nodeType":"YulIdentifier","src":"6676:6:65"},"nativeSrc":"6676:15:65","nodeType":"YulFunctionCall","src":"6676:15:65"},"nativeSrc":"6676:15:65","nodeType":"YulExpressionStatement","src":"6676:15:65"}]},"name":"panic_error_0x11","nativeSrc":"6517:180:65","nodeType":"YulFunctionDefinition","src":"6517:180:65"},{"body":{"nativeSrc":"6747:147:65","nodeType":"YulBlock","src":"6747:147:65","statements":[{"nativeSrc":"6757:25:65","nodeType":"YulAssignment","src":"6757:25:65","value":{"arguments":[{"name":"x","nativeSrc":"6780:1:65","nodeType":"YulIdentifier","src":"6780:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6762:17:65","nodeType":"YulIdentifier","src":"6762:17:65"},"nativeSrc":"6762:20:65","nodeType":"YulFunctionCall","src":"6762:20:65"},"variableNames":[{"name":"x","nativeSrc":"6757:1:65","nodeType":"YulIdentifier","src":"6757:1:65"}]},{"nativeSrc":"6791:25:65","nodeType":"YulAssignment","src":"6791:25:65","value":{"arguments":[{"name":"y","nativeSrc":"6814:1:65","nodeType":"YulIdentifier","src":"6814:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6796:17:65","nodeType":"YulIdentifier","src":"6796:17:65"},"nativeSrc":"6796:20:65","nodeType":"YulFunctionCall","src":"6796:20:65"},"variableNames":[{"name":"y","nativeSrc":"6791:1:65","nodeType":"YulIdentifier","src":"6791:1:65"}]},{"nativeSrc":"6825:16:65","nodeType":"YulAssignment","src":"6825:16:65","value":{"arguments":[{"name":"x","nativeSrc":"6836:1:65","nodeType":"YulIdentifier","src":"6836:1:65"},{"name":"y","nativeSrc":"6839:1:65","nodeType":"YulIdentifier","src":"6839:1:65"}],"functionName":{"name":"add","nativeSrc":"6832:3:65","nodeType":"YulIdentifier","src":"6832:3:65"},"nativeSrc":"6832:9:65","nodeType":"YulFunctionCall","src":"6832:9:65"},"variableNames":[{"name":"sum","nativeSrc":"6825:3:65","nodeType":"YulIdentifier","src":"6825:3:65"}]},{"body":{"nativeSrc":"6865:22:65","nodeType":"YulBlock","src":"6865:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"6867:16:65","nodeType":"YulIdentifier","src":"6867:16:65"},"nativeSrc":"6867:18:65","nodeType":"YulFunctionCall","src":"6867:18:65"},"nativeSrc":"6867:18:65","nodeType":"YulExpressionStatement","src":"6867:18:65"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"6857:1:65","nodeType":"YulIdentifier","src":"6857:1:65"},{"name":"sum","nativeSrc":"6860:3:65","nodeType":"YulIdentifier","src":"6860:3:65"}],"functionName":{"name":"gt","nativeSrc":"6854:2:65","nodeType":"YulIdentifier","src":"6854:2:65"},"nativeSrc":"6854:10:65","nodeType":"YulFunctionCall","src":"6854:10:65"},"nativeSrc":"6851:36:65","nodeType":"YulIf","src":"6851:36:65"}]},"name":"checked_add_t_uint256","nativeSrc":"6703:191:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6734:1:65","nodeType":"YulTypedName","src":"6734:1:65","type":""},{"name":"y","nativeSrc":"6737:1:65","nodeType":"YulTypedName","src":"6737:1:65","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"6743:3:65","nodeType":"YulTypedName","src":"6743:3:65","type":""}],"src":"6703:191:65"},{"body":{"nativeSrc":"7006:118:65","nodeType":"YulBlock","src":"7006:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7028:6:65","nodeType":"YulIdentifier","src":"7028:6:65"},{"kind":"number","nativeSrc":"7036:1:65","nodeType":"YulLiteral","src":"7036:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7024:3:65","nodeType":"YulIdentifier","src":"7024:3:65"},"nativeSrc":"7024:14:65","nodeType":"YulFunctionCall","src":"7024:14:65"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nativeSrc":"7040:34:65","nodeType":"YulLiteral","src":"7040:34:65","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nativeSrc":"7017:6:65","nodeType":"YulIdentifier","src":"7017:6:65"},"nativeSrc":"7017:58:65","nodeType":"YulFunctionCall","src":"7017:58:65"},"nativeSrc":"7017:58:65","nodeType":"YulExpressionStatement","src":"7017:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7096:6:65","nodeType":"YulIdentifier","src":"7096:6:65"},{"kind":"number","nativeSrc":"7104:2:65","nodeType":"YulLiteral","src":"7104:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7092:3:65","nodeType":"YulIdentifier","src":"7092:3:65"},"nativeSrc":"7092:15:65","nodeType":"YulFunctionCall","src":"7092:15:65"},{"hexValue":"207a65726f","kind":"string","nativeSrc":"7109:7:65","nodeType":"YulLiteral","src":"7109:7:65","type":"","value":" zero"}],"functionName":{"name":"mstore","nativeSrc":"7085:6:65","nodeType":"YulIdentifier","src":"7085:6:65"},"nativeSrc":"7085:32:65","nodeType":"YulFunctionCall","src":"7085:32:65"},"nativeSrc":"7085:32:65","nodeType":"YulExpressionStatement","src":"7085:32:65"}]},"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"6900:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6998:6:65","nodeType":"YulTypedName","src":"6998:6:65","type":""}],"src":"6900:224:65"},{"body":{"nativeSrc":"7276:220:65","nodeType":"YulBlock","src":"7276:220:65","statements":[{"nativeSrc":"7286:74:65","nodeType":"YulAssignment","src":"7286:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"7352:3:65","nodeType":"YulIdentifier","src":"7352:3:65"},{"kind":"number","nativeSrc":"7357:2:65","nodeType":"YulLiteral","src":"7357:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7293:58:65","nodeType":"YulIdentifier","src":"7293:58:65"},"nativeSrc":"7293:67:65","nodeType":"YulFunctionCall","src":"7293:67:65"},"variableNames":[{"name":"pos","nativeSrc":"7286:3:65","nodeType":"YulIdentifier","src":"7286:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7458:3:65","nodeType":"YulIdentifier","src":"7458:3:65"}],"functionName":{"name":"store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","nativeSrc":"7369:88:65","nodeType":"YulIdentifier","src":"7369:88:65"},"nativeSrc":"7369:93:65","nodeType":"YulFunctionCall","src":"7369:93:65"},"nativeSrc":"7369:93:65","nodeType":"YulExpressionStatement","src":"7369:93:65"},{"nativeSrc":"7471:19:65","nodeType":"YulAssignment","src":"7471:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"7482:3:65","nodeType":"YulIdentifier","src":"7482:3:65"},{"kind":"number","nativeSrc":"7487:2:65","nodeType":"YulLiteral","src":"7487:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7478:3:65","nodeType":"YulIdentifier","src":"7478:3:65"},"nativeSrc":"7478:12:65","nodeType":"YulFunctionCall","src":"7478:12:65"},"variableNames":[{"name":"end","nativeSrc":"7471:3:65","nodeType":"YulIdentifier","src":"7471:3:65"}]}]},"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7130:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7264:3:65","nodeType":"YulTypedName","src":"7264:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7272:3:65","nodeType":"YulTypedName","src":"7272:3:65","type":""}],"src":"7130:366:65"},{"body":{"nativeSrc":"7673:248:65","nodeType":"YulBlock","src":"7673:248:65","statements":[{"nativeSrc":"7683:26:65","nodeType":"YulAssignment","src":"7683:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7695:9:65","nodeType":"YulIdentifier","src":"7695:9:65"},{"kind":"number","nativeSrc":"7706:2:65","nodeType":"YulLiteral","src":"7706:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7691:3:65","nodeType":"YulIdentifier","src":"7691:3:65"},"nativeSrc":"7691:18:65","nodeType":"YulFunctionCall","src":"7691:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7683:4:65","nodeType":"YulIdentifier","src":"7683:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7730:9:65","nodeType":"YulIdentifier","src":"7730:9:65"},{"kind":"number","nativeSrc":"7741:1:65","nodeType":"YulLiteral","src":"7741:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7726:3:65","nodeType":"YulIdentifier","src":"7726:3:65"},"nativeSrc":"7726:17:65","nodeType":"YulFunctionCall","src":"7726:17:65"},{"arguments":[{"name":"tail","nativeSrc":"7749:4:65","nodeType":"YulIdentifier","src":"7749:4:65"},{"name":"headStart","nativeSrc":"7755:9:65","nodeType":"YulIdentifier","src":"7755:9:65"}],"functionName":{"name":"sub","nativeSrc":"7745:3:65","nodeType":"YulIdentifier","src":"7745:3:65"},"nativeSrc":"7745:20:65","nodeType":"YulFunctionCall","src":"7745:20:65"}],"functionName":{"name":"mstore","nativeSrc":"7719:6:65","nodeType":"YulIdentifier","src":"7719:6:65"},"nativeSrc":"7719:47:65","nodeType":"YulFunctionCall","src":"7719:47:65"},"nativeSrc":"7719:47:65","nodeType":"YulExpressionStatement","src":"7719:47:65"},{"nativeSrc":"7775:139:65","nodeType":"YulAssignment","src":"7775:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"7909:4:65","nodeType":"YulIdentifier","src":"7909:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack","nativeSrc":"7783:124:65","nodeType":"YulIdentifier","src":"7783:124:65"},"nativeSrc":"7783:131:65","nodeType":"YulFunctionCall","src":"7783:131:65"},"variableNames":[{"name":"tail","nativeSrc":"7775:4:65","nodeType":"YulIdentifier","src":"7775:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7502:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7653:9:65","nodeType":"YulTypedName","src":"7653:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7668:4:65","nodeType":"YulTypedName","src":"7668:4:65","type":""}],"src":"7502:419:65"},{"body":{"nativeSrc":"8033:117:65","nodeType":"YulBlock","src":"8033:117:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8055:6:65","nodeType":"YulIdentifier","src":"8055:6:65"},{"kind":"number","nativeSrc":"8063:1:65","nodeType":"YulLiteral","src":"8063:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8051:3:65","nodeType":"YulIdentifier","src":"8051:3:65"},"nativeSrc":"8051:14:65","nodeType":"YulFunctionCall","src":"8051:14:65"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nativeSrc":"8067:34:65","nodeType":"YulLiteral","src":"8067:34:65","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nativeSrc":"8044:6:65","nodeType":"YulIdentifier","src":"8044:6:65"},"nativeSrc":"8044:58:65","nodeType":"YulFunctionCall","src":"8044:58:65"},"nativeSrc":"8044:58:65","nodeType":"YulExpressionStatement","src":"8044:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8123:6:65","nodeType":"YulIdentifier","src":"8123:6:65"},{"kind":"number","nativeSrc":"8131:2:65","nodeType":"YulLiteral","src":"8131:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8119:3:65","nodeType":"YulIdentifier","src":"8119:3:65"},"nativeSrc":"8119:15:65","nodeType":"YulFunctionCall","src":"8119:15:65"},{"hexValue":"72657373","kind":"string","nativeSrc":"8136:6:65","nodeType":"YulLiteral","src":"8136:6:65","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8112:6:65","nodeType":"YulIdentifier","src":"8112:6:65"},"nativeSrc":"8112:31:65","nodeType":"YulFunctionCall","src":"8112:31:65"},"nativeSrc":"8112:31:65","nodeType":"YulExpressionStatement","src":"8112:31:65"}]},"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"7927:223:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8025:6:65","nodeType":"YulTypedName","src":"8025:6:65","type":""}],"src":"7927:223:65"},{"body":{"nativeSrc":"8302:220:65","nodeType":"YulBlock","src":"8302:220:65","statements":[{"nativeSrc":"8312:74:65","nodeType":"YulAssignment","src":"8312:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"8378:3:65","nodeType":"YulIdentifier","src":"8378:3:65"},{"kind":"number","nativeSrc":"8383:2:65","nodeType":"YulLiteral","src":"8383:2:65","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8319:58:65","nodeType":"YulIdentifier","src":"8319:58:65"},"nativeSrc":"8319:67:65","nodeType":"YulFunctionCall","src":"8319:67:65"},"variableNames":[{"name":"pos","nativeSrc":"8312:3:65","nodeType":"YulIdentifier","src":"8312:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8484:3:65","nodeType":"YulIdentifier","src":"8484:3:65"}],"functionName":{"name":"store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","nativeSrc":"8395:88:65","nodeType":"YulIdentifier","src":"8395:88:65"},"nativeSrc":"8395:93:65","nodeType":"YulFunctionCall","src":"8395:93:65"},"nativeSrc":"8395:93:65","nodeType":"YulExpressionStatement","src":"8395:93:65"},{"nativeSrc":"8497:19:65","nodeType":"YulAssignment","src":"8497:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"8508:3:65","nodeType":"YulIdentifier","src":"8508:3:65"},{"kind":"number","nativeSrc":"8513:2:65","nodeType":"YulLiteral","src":"8513:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8504:3:65","nodeType":"YulIdentifier","src":"8504:3:65"},"nativeSrc":"8504:12:65","nodeType":"YulFunctionCall","src":"8504:12:65"},"variableNames":[{"name":"end","nativeSrc":"8497:3:65","nodeType":"YulIdentifier","src":"8497:3:65"}]}]},"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8156:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8290:3:65","nodeType":"YulTypedName","src":"8290:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8298:3:65","nodeType":"YulTypedName","src":"8298:3:65","type":""}],"src":"8156:366:65"},{"body":{"nativeSrc":"8699:248:65","nodeType":"YulBlock","src":"8699:248:65","statements":[{"nativeSrc":"8709:26:65","nodeType":"YulAssignment","src":"8709:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8721:9:65","nodeType":"YulIdentifier","src":"8721:9:65"},{"kind":"number","nativeSrc":"8732:2:65","nodeType":"YulLiteral","src":"8732:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8717:3:65","nodeType":"YulIdentifier","src":"8717:3:65"},"nativeSrc":"8717:18:65","nodeType":"YulFunctionCall","src":"8717:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8709:4:65","nodeType":"YulIdentifier","src":"8709:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8756:9:65","nodeType":"YulIdentifier","src":"8756:9:65"},{"kind":"number","nativeSrc":"8767:1:65","nodeType":"YulLiteral","src":"8767:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8752:3:65","nodeType":"YulIdentifier","src":"8752:3:65"},"nativeSrc":"8752:17:65","nodeType":"YulFunctionCall","src":"8752:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8775:4:65","nodeType":"YulIdentifier","src":"8775:4:65"},{"name":"headStart","nativeSrc":"8781:9:65","nodeType":"YulIdentifier","src":"8781:9:65"}],"functionName":{"name":"sub","nativeSrc":"8771:3:65","nodeType":"YulIdentifier","src":"8771:3:65"},"nativeSrc":"8771:20:65","nodeType":"YulFunctionCall","src":"8771:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8745:6:65","nodeType":"YulIdentifier","src":"8745:6:65"},"nativeSrc":"8745:47:65","nodeType":"YulFunctionCall","src":"8745:47:65"},"nativeSrc":"8745:47:65","nodeType":"YulExpressionStatement","src":"8745:47:65"},{"nativeSrc":"8801:139:65","nodeType":"YulAssignment","src":"8801:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"8935:4:65","nodeType":"YulIdentifier","src":"8935:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack","nativeSrc":"8809:124:65","nodeType":"YulIdentifier","src":"8809:124:65"},"nativeSrc":"8809:131:65","nodeType":"YulFunctionCall","src":"8809:131:65"},"variableNames":[{"name":"tail","nativeSrc":"8801:4:65","nodeType":"YulIdentifier","src":"8801:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8528:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8679:9:65","nodeType":"YulTypedName","src":"8679:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8694:4:65","nodeType":"YulTypedName","src":"8694:4:65","type":""}],"src":"8528:419:65"},{"body":{"nativeSrc":"9059:115:65","nodeType":"YulBlock","src":"9059:115:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9081:6:65","nodeType":"YulIdentifier","src":"9081:6:65"},{"kind":"number","nativeSrc":"9089:1:65","nodeType":"YulLiteral","src":"9089:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9077:3:65","nodeType":"YulIdentifier","src":"9077:3:65"},"nativeSrc":"9077:14:65","nodeType":"YulFunctionCall","src":"9077:14:65"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nativeSrc":"9093:34:65","nodeType":"YulLiteral","src":"9093:34:65","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nativeSrc":"9070:6:65","nodeType":"YulIdentifier","src":"9070:6:65"},"nativeSrc":"9070:58:65","nodeType":"YulFunctionCall","src":"9070:58:65"},"nativeSrc":"9070:58:65","nodeType":"YulExpressionStatement","src":"9070:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9149:6:65","nodeType":"YulIdentifier","src":"9149:6:65"},{"kind":"number","nativeSrc":"9157:2:65","nodeType":"YulLiteral","src":"9157:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9145:3:65","nodeType":"YulIdentifier","src":"9145:3:65"},"nativeSrc":"9145:15:65","nodeType":"YulFunctionCall","src":"9145:15:65"},{"hexValue":"7373","kind":"string","nativeSrc":"9162:4:65","nodeType":"YulLiteral","src":"9162:4:65","type":"","value":"ss"}],"functionName":{"name":"mstore","nativeSrc":"9138:6:65","nodeType":"YulIdentifier","src":"9138:6:65"},"nativeSrc":"9138:29:65","nodeType":"YulFunctionCall","src":"9138:29:65"},"nativeSrc":"9138:29:65","nodeType":"YulExpressionStatement","src":"9138:29:65"}]},"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"8953:221:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9051:6:65","nodeType":"YulTypedName","src":"9051:6:65","type":""}],"src":"8953:221:65"},{"body":{"nativeSrc":"9326:220:65","nodeType":"YulBlock","src":"9326:220:65","statements":[{"nativeSrc":"9336:74:65","nodeType":"YulAssignment","src":"9336:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"9402:3:65","nodeType":"YulIdentifier","src":"9402:3:65"},{"kind":"number","nativeSrc":"9407:2:65","nodeType":"YulLiteral","src":"9407:2:65","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9343:58:65","nodeType":"YulIdentifier","src":"9343:58:65"},"nativeSrc":"9343:67:65","nodeType":"YulFunctionCall","src":"9343:67:65"},"variableNames":[{"name":"pos","nativeSrc":"9336:3:65","nodeType":"YulIdentifier","src":"9336:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9508:3:65","nodeType":"YulIdentifier","src":"9508:3:65"}],"functionName":{"name":"store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","nativeSrc":"9419:88:65","nodeType":"YulIdentifier","src":"9419:88:65"},"nativeSrc":"9419:93:65","nodeType":"YulFunctionCall","src":"9419:93:65"},"nativeSrc":"9419:93:65","nodeType":"YulExpressionStatement","src":"9419:93:65"},{"nativeSrc":"9521:19:65","nodeType":"YulAssignment","src":"9521:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"9532:3:65","nodeType":"YulIdentifier","src":"9532:3:65"},{"kind":"number","nativeSrc":"9537:2:65","nodeType":"YulLiteral","src":"9537:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9528:3:65","nodeType":"YulIdentifier","src":"9528:3:65"},"nativeSrc":"9528:12:65","nodeType":"YulFunctionCall","src":"9528:12:65"},"variableNames":[{"name":"end","nativeSrc":"9521:3:65","nodeType":"YulIdentifier","src":"9521:3:65"}]}]},"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9180:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9314:3:65","nodeType":"YulTypedName","src":"9314:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9322:3:65","nodeType":"YulTypedName","src":"9322:3:65","type":""}],"src":"9180:366:65"},{"body":{"nativeSrc":"9723:248:65","nodeType":"YulBlock","src":"9723:248:65","statements":[{"nativeSrc":"9733:26:65","nodeType":"YulAssignment","src":"9733:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9745:9:65","nodeType":"YulIdentifier","src":"9745:9:65"},{"kind":"number","nativeSrc":"9756:2:65","nodeType":"YulLiteral","src":"9756:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9741:3:65","nodeType":"YulIdentifier","src":"9741:3:65"},"nativeSrc":"9741:18:65","nodeType":"YulFunctionCall","src":"9741:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9733:4:65","nodeType":"YulIdentifier","src":"9733:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9780:9:65","nodeType":"YulIdentifier","src":"9780:9:65"},{"kind":"number","nativeSrc":"9791:1:65","nodeType":"YulLiteral","src":"9791:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9776:3:65","nodeType":"YulIdentifier","src":"9776:3:65"},"nativeSrc":"9776:17:65","nodeType":"YulFunctionCall","src":"9776:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9799:4:65","nodeType":"YulIdentifier","src":"9799:4:65"},{"name":"headStart","nativeSrc":"9805:9:65","nodeType":"YulIdentifier","src":"9805:9:65"}],"functionName":{"name":"sub","nativeSrc":"9795:3:65","nodeType":"YulIdentifier","src":"9795:3:65"},"nativeSrc":"9795:20:65","nodeType":"YulFunctionCall","src":"9795:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9769:6:65","nodeType":"YulIdentifier","src":"9769:6:65"},"nativeSrc":"9769:47:65","nodeType":"YulFunctionCall","src":"9769:47:65"},"nativeSrc":"9769:47:65","nodeType":"YulExpressionStatement","src":"9769:47:65"},{"nativeSrc":"9825:139:65","nodeType":"YulAssignment","src":"9825:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9959:4:65","nodeType":"YulIdentifier","src":"9959:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack","nativeSrc":"9833:124:65","nodeType":"YulIdentifier","src":"9833:124:65"},"nativeSrc":"9833:131:65","nodeType":"YulFunctionCall","src":"9833:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9825:4:65","nodeType":"YulIdentifier","src":"9825:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9552:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9703:9:65","nodeType":"YulTypedName","src":"9703:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9718:4:65","nodeType":"YulTypedName","src":"9718:4:65","type":""}],"src":"9552:419:65"},{"body":{"nativeSrc":"10083:73:65","nodeType":"YulBlock","src":"10083:73:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10105:6:65","nodeType":"YulIdentifier","src":"10105:6:65"},{"kind":"number","nativeSrc":"10113:1:65","nodeType":"YulLiteral","src":"10113:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10101:3:65","nodeType":"YulIdentifier","src":"10101:3:65"},"nativeSrc":"10101:14:65","nodeType":"YulFunctionCall","src":"10101:14:65"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nativeSrc":"10117:31:65","nodeType":"YulLiteral","src":"10117:31:65","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nativeSrc":"10094:6:65","nodeType":"YulIdentifier","src":"10094:6:65"},"nativeSrc":"10094:55:65","nodeType":"YulFunctionCall","src":"10094:55:65"},"nativeSrc":"10094:55:65","nodeType":"YulExpressionStatement","src":"10094:55:65"}]},"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"9977:179:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10075:6:65","nodeType":"YulTypedName","src":"10075:6:65","type":""}],"src":"9977:179:65"},{"body":{"nativeSrc":"10308:220:65","nodeType":"YulBlock","src":"10308:220:65","statements":[{"nativeSrc":"10318:74:65","nodeType":"YulAssignment","src":"10318:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"10384:3:65","nodeType":"YulIdentifier","src":"10384:3:65"},{"kind":"number","nativeSrc":"10389:2:65","nodeType":"YulLiteral","src":"10389:2:65","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10325:58:65","nodeType":"YulIdentifier","src":"10325:58:65"},"nativeSrc":"10325:67:65","nodeType":"YulFunctionCall","src":"10325:67:65"},"variableNames":[{"name":"pos","nativeSrc":"10318:3:65","nodeType":"YulIdentifier","src":"10318:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10490:3:65","nodeType":"YulIdentifier","src":"10490:3:65"}],"functionName":{"name":"store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","nativeSrc":"10401:88:65","nodeType":"YulIdentifier","src":"10401:88:65"},"nativeSrc":"10401:93:65","nodeType":"YulFunctionCall","src":"10401:93:65"},"nativeSrc":"10401:93:65","nodeType":"YulExpressionStatement","src":"10401:93:65"},{"nativeSrc":"10503:19:65","nodeType":"YulAssignment","src":"10503:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"10514:3:65","nodeType":"YulIdentifier","src":"10514:3:65"},{"kind":"number","nativeSrc":"10519:2:65","nodeType":"YulLiteral","src":"10519:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10510:3:65","nodeType":"YulIdentifier","src":"10510:3:65"},"nativeSrc":"10510:12:65","nodeType":"YulFunctionCall","src":"10510:12:65"},"variableNames":[{"name":"end","nativeSrc":"10503:3:65","nodeType":"YulIdentifier","src":"10503:3:65"}]}]},"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10162:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10296:3:65","nodeType":"YulTypedName","src":"10296:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10304:3:65","nodeType":"YulTypedName","src":"10304:3:65","type":""}],"src":"10162:366:65"},{"body":{"nativeSrc":"10705:248:65","nodeType":"YulBlock","src":"10705:248:65","statements":[{"nativeSrc":"10715:26:65","nodeType":"YulAssignment","src":"10715:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10727:9:65","nodeType":"YulIdentifier","src":"10727:9:65"},{"kind":"number","nativeSrc":"10738:2:65","nodeType":"YulLiteral","src":"10738:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10723:3:65","nodeType":"YulIdentifier","src":"10723:3:65"},"nativeSrc":"10723:18:65","nodeType":"YulFunctionCall","src":"10723:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10715:4:65","nodeType":"YulIdentifier","src":"10715:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10762:9:65","nodeType":"YulIdentifier","src":"10762:9:65"},{"kind":"number","nativeSrc":"10773:1:65","nodeType":"YulLiteral","src":"10773:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10758:3:65","nodeType":"YulIdentifier","src":"10758:3:65"},"nativeSrc":"10758:17:65","nodeType":"YulFunctionCall","src":"10758:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10781:4:65","nodeType":"YulIdentifier","src":"10781:4:65"},{"name":"headStart","nativeSrc":"10787:9:65","nodeType":"YulIdentifier","src":"10787:9:65"}],"functionName":{"name":"sub","nativeSrc":"10777:3:65","nodeType":"YulIdentifier","src":"10777:3:65"},"nativeSrc":"10777:20:65","nodeType":"YulFunctionCall","src":"10777:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10751:6:65","nodeType":"YulIdentifier","src":"10751:6:65"},"nativeSrc":"10751:47:65","nodeType":"YulFunctionCall","src":"10751:47:65"},"nativeSrc":"10751:47:65","nodeType":"YulExpressionStatement","src":"10751:47:65"},{"nativeSrc":"10807:139:65","nodeType":"YulAssignment","src":"10807:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"10941:4:65","nodeType":"YulIdentifier","src":"10941:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack","nativeSrc":"10815:124:65","nodeType":"YulIdentifier","src":"10815:124:65"},"nativeSrc":"10815:131:65","nodeType":"YulFunctionCall","src":"10815:131:65"},"variableNames":[{"name":"tail","nativeSrc":"10807:4:65","nodeType":"YulIdentifier","src":"10807:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10534:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10685:9:65","nodeType":"YulTypedName","src":"10685:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10700:4:65","nodeType":"YulTypedName","src":"10700:4:65","type":""}],"src":"10534:419:65"},{"body":{"nativeSrc":"11065:118:65","nodeType":"YulBlock","src":"11065:118:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11087:6:65","nodeType":"YulIdentifier","src":"11087:6:65"},{"kind":"number","nativeSrc":"11095:1:65","nodeType":"YulLiteral","src":"11095:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11083:3:65","nodeType":"YulIdentifier","src":"11083:3:65"},"nativeSrc":"11083:14:65","nodeType":"YulFunctionCall","src":"11083:14:65"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nativeSrc":"11099:34:65","nodeType":"YulLiteral","src":"11099:34:65","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nativeSrc":"11076:6:65","nodeType":"YulIdentifier","src":"11076:6:65"},"nativeSrc":"11076:58:65","nodeType":"YulFunctionCall","src":"11076:58:65"},"nativeSrc":"11076:58:65","nodeType":"YulExpressionStatement","src":"11076:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11155:6:65","nodeType":"YulIdentifier","src":"11155:6:65"},{"kind":"number","nativeSrc":"11163:2:65","nodeType":"YulLiteral","src":"11163:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11151:3:65","nodeType":"YulIdentifier","src":"11151:3:65"},"nativeSrc":"11151:15:65","nodeType":"YulFunctionCall","src":"11151:15:65"},{"hexValue":"6472657373","kind":"string","nativeSrc":"11168:7:65","nodeType":"YulLiteral","src":"11168:7:65","type":"","value":"dress"}],"functionName":{"name":"mstore","nativeSrc":"11144:6:65","nodeType":"YulIdentifier","src":"11144:6:65"},"nativeSrc":"11144:32:65","nodeType":"YulFunctionCall","src":"11144:32:65"},"nativeSrc":"11144:32:65","nodeType":"YulExpressionStatement","src":"11144:32:65"}]},"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"10959:224:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11057:6:65","nodeType":"YulTypedName","src":"11057:6:65","type":""}],"src":"10959:224:65"},{"body":{"nativeSrc":"11335:220:65","nodeType":"YulBlock","src":"11335:220:65","statements":[{"nativeSrc":"11345:74:65","nodeType":"YulAssignment","src":"11345:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"11411:3:65","nodeType":"YulIdentifier","src":"11411:3:65"},{"kind":"number","nativeSrc":"11416:2:65","nodeType":"YulLiteral","src":"11416:2:65","type":"","value":"37"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"11352:58:65","nodeType":"YulIdentifier","src":"11352:58:65"},"nativeSrc":"11352:67:65","nodeType":"YulFunctionCall","src":"11352:67:65"},"variableNames":[{"name":"pos","nativeSrc":"11345:3:65","nodeType":"YulIdentifier","src":"11345:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11517:3:65","nodeType":"YulIdentifier","src":"11517:3:65"}],"functionName":{"name":"store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","nativeSrc":"11428:88:65","nodeType":"YulIdentifier","src":"11428:88:65"},"nativeSrc":"11428:93:65","nodeType":"YulFunctionCall","src":"11428:93:65"},"nativeSrc":"11428:93:65","nodeType":"YulExpressionStatement","src":"11428:93:65"},{"nativeSrc":"11530:19:65","nodeType":"YulAssignment","src":"11530:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"11541:3:65","nodeType":"YulIdentifier","src":"11541:3:65"},{"kind":"number","nativeSrc":"11546:2:65","nodeType":"YulLiteral","src":"11546:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11537:3:65","nodeType":"YulIdentifier","src":"11537:3:65"},"nativeSrc":"11537:12:65","nodeType":"YulFunctionCall","src":"11537:12:65"},"variableNames":[{"name":"end","nativeSrc":"11530:3:65","nodeType":"YulIdentifier","src":"11530:3:65"}]}]},"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11189:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11323:3:65","nodeType":"YulTypedName","src":"11323:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11331:3:65","nodeType":"YulTypedName","src":"11331:3:65","type":""}],"src":"11189:366:65"},{"body":{"nativeSrc":"11732:248:65","nodeType":"YulBlock","src":"11732:248:65","statements":[{"nativeSrc":"11742:26:65","nodeType":"YulAssignment","src":"11742:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11754:9:65","nodeType":"YulIdentifier","src":"11754:9:65"},{"kind":"number","nativeSrc":"11765:2:65","nodeType":"YulLiteral","src":"11765:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11750:3:65","nodeType":"YulIdentifier","src":"11750:3:65"},"nativeSrc":"11750:18:65","nodeType":"YulFunctionCall","src":"11750:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11742:4:65","nodeType":"YulIdentifier","src":"11742:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11789:9:65","nodeType":"YulIdentifier","src":"11789:9:65"},{"kind":"number","nativeSrc":"11800:1:65","nodeType":"YulLiteral","src":"11800:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11785:3:65","nodeType":"YulIdentifier","src":"11785:3:65"},"nativeSrc":"11785:17:65","nodeType":"YulFunctionCall","src":"11785:17:65"},{"arguments":[{"name":"tail","nativeSrc":"11808:4:65","nodeType":"YulIdentifier","src":"11808:4:65"},{"name":"headStart","nativeSrc":"11814:9:65","nodeType":"YulIdentifier","src":"11814:9:65"}],"functionName":{"name":"sub","nativeSrc":"11804:3:65","nodeType":"YulIdentifier","src":"11804:3:65"},"nativeSrc":"11804:20:65","nodeType":"YulFunctionCall","src":"11804:20:65"}],"functionName":{"name":"mstore","nativeSrc":"11778:6:65","nodeType":"YulIdentifier","src":"11778:6:65"},"nativeSrc":"11778:47:65","nodeType":"YulFunctionCall","src":"11778:47:65"},"nativeSrc":"11778:47:65","nodeType":"YulExpressionStatement","src":"11778:47:65"},{"nativeSrc":"11834:139:65","nodeType":"YulAssignment","src":"11834:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"11968:4:65","nodeType":"YulIdentifier","src":"11968:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack","nativeSrc":"11842:124:65","nodeType":"YulIdentifier","src":"11842:124:65"},"nativeSrc":"11842:131:65","nodeType":"YulFunctionCall","src":"11842:131:65"},"variableNames":[{"name":"tail","nativeSrc":"11834:4:65","nodeType":"YulIdentifier","src":"11834:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11561:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11712:9:65","nodeType":"YulTypedName","src":"11712:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11727:4:65","nodeType":"YulTypedName","src":"11727:4:65","type":""}],"src":"11561:419:65"},{"body":{"nativeSrc":"12092:116:65","nodeType":"YulBlock","src":"12092:116:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12114:6:65","nodeType":"YulIdentifier","src":"12114:6:65"},{"kind":"number","nativeSrc":"12122:1:65","nodeType":"YulLiteral","src":"12122:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12110:3:65","nodeType":"YulIdentifier","src":"12110:3:65"},"nativeSrc":"12110:14:65","nodeType":"YulFunctionCall","src":"12110:14:65"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nativeSrc":"12126:34:65","nodeType":"YulLiteral","src":"12126:34:65","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nativeSrc":"12103:6:65","nodeType":"YulIdentifier","src":"12103:6:65"},"nativeSrc":"12103:58:65","nodeType":"YulFunctionCall","src":"12103:58:65"},"nativeSrc":"12103:58:65","nodeType":"YulExpressionStatement","src":"12103:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"12182:6:65","nodeType":"YulIdentifier","src":"12182:6:65"},{"kind":"number","nativeSrc":"12190:2:65","nodeType":"YulLiteral","src":"12190:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12178:3:65","nodeType":"YulIdentifier","src":"12178:3:65"},"nativeSrc":"12178:15:65","nodeType":"YulFunctionCall","src":"12178:15:65"},{"hexValue":"657373","kind":"string","nativeSrc":"12195:5:65","nodeType":"YulLiteral","src":"12195:5:65","type":"","value":"ess"}],"functionName":{"name":"mstore","nativeSrc":"12171:6:65","nodeType":"YulIdentifier","src":"12171:6:65"},"nativeSrc":"12171:30:65","nodeType":"YulFunctionCall","src":"12171:30:65"},"nativeSrc":"12171:30:65","nodeType":"YulExpressionStatement","src":"12171:30:65"}]},"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"11986:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12084:6:65","nodeType":"YulTypedName","src":"12084:6:65","type":""}],"src":"11986:222:65"},{"body":{"nativeSrc":"12360:220:65","nodeType":"YulBlock","src":"12360:220:65","statements":[{"nativeSrc":"12370:74:65","nodeType":"YulAssignment","src":"12370:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"12436:3:65","nodeType":"YulIdentifier","src":"12436:3:65"},{"kind":"number","nativeSrc":"12441:2:65","nodeType":"YulLiteral","src":"12441:2:65","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"12377:58:65","nodeType":"YulIdentifier","src":"12377:58:65"},"nativeSrc":"12377:67:65","nodeType":"YulFunctionCall","src":"12377:67:65"},"variableNames":[{"name":"pos","nativeSrc":"12370:3:65","nodeType":"YulIdentifier","src":"12370:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12542:3:65","nodeType":"YulIdentifier","src":"12542:3:65"}],"functionName":{"name":"store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","nativeSrc":"12453:88:65","nodeType":"YulIdentifier","src":"12453:88:65"},"nativeSrc":"12453:93:65","nodeType":"YulFunctionCall","src":"12453:93:65"},"nativeSrc":"12453:93:65","nodeType":"YulExpressionStatement","src":"12453:93:65"},{"nativeSrc":"12555:19:65","nodeType":"YulAssignment","src":"12555:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"12566:3:65","nodeType":"YulIdentifier","src":"12566:3:65"},{"kind":"number","nativeSrc":"12571:2:65","nodeType":"YulLiteral","src":"12571:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12562:3:65","nodeType":"YulIdentifier","src":"12562:3:65"},"nativeSrc":"12562:12:65","nodeType":"YulFunctionCall","src":"12562:12:65"},"variableNames":[{"name":"end","nativeSrc":"12555:3:65","nodeType":"YulIdentifier","src":"12555:3:65"}]}]},"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12214:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12348:3:65","nodeType":"YulTypedName","src":"12348:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12356:3:65","nodeType":"YulTypedName","src":"12356:3:65","type":""}],"src":"12214:366:65"},{"body":{"nativeSrc":"12757:248:65","nodeType":"YulBlock","src":"12757:248:65","statements":[{"nativeSrc":"12767:26:65","nodeType":"YulAssignment","src":"12767:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"12779:9:65","nodeType":"YulIdentifier","src":"12779:9:65"},{"kind":"number","nativeSrc":"12790:2:65","nodeType":"YulLiteral","src":"12790:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12775:3:65","nodeType":"YulIdentifier","src":"12775:3:65"},"nativeSrc":"12775:18:65","nodeType":"YulFunctionCall","src":"12775:18:65"},"variableNames":[{"name":"tail","nativeSrc":"12767:4:65","nodeType":"YulIdentifier","src":"12767:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12814:9:65","nodeType":"YulIdentifier","src":"12814:9:65"},{"kind":"number","nativeSrc":"12825:1:65","nodeType":"YulLiteral","src":"12825:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12810:3:65","nodeType":"YulIdentifier","src":"12810:3:65"},"nativeSrc":"12810:17:65","nodeType":"YulFunctionCall","src":"12810:17:65"},{"arguments":[{"name":"tail","nativeSrc":"12833:4:65","nodeType":"YulIdentifier","src":"12833:4:65"},{"name":"headStart","nativeSrc":"12839:9:65","nodeType":"YulIdentifier","src":"12839:9:65"}],"functionName":{"name":"sub","nativeSrc":"12829:3:65","nodeType":"YulIdentifier","src":"12829:3:65"},"nativeSrc":"12829:20:65","nodeType":"YulFunctionCall","src":"12829:20:65"}],"functionName":{"name":"mstore","nativeSrc":"12803:6:65","nodeType":"YulIdentifier","src":"12803:6:65"},"nativeSrc":"12803:47:65","nodeType":"YulFunctionCall","src":"12803:47:65"},"nativeSrc":"12803:47:65","nodeType":"YulExpressionStatement","src":"12803:47:65"},{"nativeSrc":"12859:139:65","nodeType":"YulAssignment","src":"12859:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"12993:4:65","nodeType":"YulIdentifier","src":"12993:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack","nativeSrc":"12867:124:65","nodeType":"YulIdentifier","src":"12867:124:65"},"nativeSrc":"12867:131:65","nodeType":"YulFunctionCall","src":"12867:131:65"},"variableNames":[{"name":"tail","nativeSrc":"12859:4:65","nodeType":"YulIdentifier","src":"12859:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12586:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12737:9:65","nodeType":"YulTypedName","src":"12737:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12752:4:65","nodeType":"YulTypedName","src":"12752:4:65","type":""}],"src":"12586:419:65"},{"body":{"nativeSrc":"13117:119:65","nodeType":"YulBlock","src":"13117:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13139:6:65","nodeType":"YulIdentifier","src":"13139:6:65"},{"kind":"number","nativeSrc":"13147:1:65","nodeType":"YulLiteral","src":"13147:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13135:3:65","nodeType":"YulIdentifier","src":"13135:3:65"},"nativeSrc":"13135:14:65","nodeType":"YulFunctionCall","src":"13135:14:65"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nativeSrc":"13151:34:65","nodeType":"YulLiteral","src":"13151:34:65","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nativeSrc":"13128:6:65","nodeType":"YulIdentifier","src":"13128:6:65"},"nativeSrc":"13128:58:65","nodeType":"YulFunctionCall","src":"13128:58:65"},"nativeSrc":"13128:58:65","nodeType":"YulExpressionStatement","src":"13128:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"13207:6:65","nodeType":"YulIdentifier","src":"13207:6:65"},{"kind":"number","nativeSrc":"13215:2:65","nodeType":"YulLiteral","src":"13215:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13203:3:65","nodeType":"YulIdentifier","src":"13203:3:65"},"nativeSrc":"13203:15:65","nodeType":"YulFunctionCall","src":"13203:15:65"},{"hexValue":"616c616e6365","kind":"string","nativeSrc":"13220:8:65","nodeType":"YulLiteral","src":"13220:8:65","type":"","value":"alance"}],"functionName":{"name":"mstore","nativeSrc":"13196:6:65","nodeType":"YulIdentifier","src":"13196:6:65"},"nativeSrc":"13196:33:65","nodeType":"YulFunctionCall","src":"13196:33:65"},"nativeSrc":"13196:33:65","nodeType":"YulExpressionStatement","src":"13196:33:65"}]},"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13011:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13109:6:65","nodeType":"YulTypedName","src":"13109:6:65","type":""}],"src":"13011:225:65"},{"body":{"nativeSrc":"13388:220:65","nodeType":"YulBlock","src":"13388:220:65","statements":[{"nativeSrc":"13398:74:65","nodeType":"YulAssignment","src":"13398:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"13464:3:65","nodeType":"YulIdentifier","src":"13464:3:65"},{"kind":"number","nativeSrc":"13469:2:65","nodeType":"YulLiteral","src":"13469:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"13405:58:65","nodeType":"YulIdentifier","src":"13405:58:65"},"nativeSrc":"13405:67:65","nodeType":"YulFunctionCall","src":"13405:67:65"},"variableNames":[{"name":"pos","nativeSrc":"13398:3:65","nodeType":"YulIdentifier","src":"13398:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13570:3:65","nodeType":"YulIdentifier","src":"13570:3:65"}],"functionName":{"name":"store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","nativeSrc":"13481:88:65","nodeType":"YulIdentifier","src":"13481:88:65"},"nativeSrc":"13481:93:65","nodeType":"YulFunctionCall","src":"13481:93:65"},"nativeSrc":"13481:93:65","nodeType":"YulExpressionStatement","src":"13481:93:65"},{"nativeSrc":"13583:19:65","nodeType":"YulAssignment","src":"13583:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"13594:3:65","nodeType":"YulIdentifier","src":"13594:3:65"},{"kind":"number","nativeSrc":"13599:2:65","nodeType":"YulLiteral","src":"13599:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13590:3:65","nodeType":"YulIdentifier","src":"13590:3:65"},"nativeSrc":"13590:12:65","nodeType":"YulFunctionCall","src":"13590:12:65"},"variableNames":[{"name":"end","nativeSrc":"13583:3:65","nodeType":"YulIdentifier","src":"13583:3:65"}]}]},"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13242:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13376:3:65","nodeType":"YulTypedName","src":"13376:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13384:3:65","nodeType":"YulTypedName","src":"13384:3:65","type":""}],"src":"13242:366:65"},{"body":{"nativeSrc":"13785:248:65","nodeType":"YulBlock","src":"13785:248:65","statements":[{"nativeSrc":"13795:26:65","nodeType":"YulAssignment","src":"13795:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"13807:9:65","nodeType":"YulIdentifier","src":"13807:9:65"},{"kind":"number","nativeSrc":"13818:2:65","nodeType":"YulLiteral","src":"13818:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13803:3:65","nodeType":"YulIdentifier","src":"13803:3:65"},"nativeSrc":"13803:18:65","nodeType":"YulFunctionCall","src":"13803:18:65"},"variableNames":[{"name":"tail","nativeSrc":"13795:4:65","nodeType":"YulIdentifier","src":"13795:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13842:9:65","nodeType":"YulIdentifier","src":"13842:9:65"},{"kind":"number","nativeSrc":"13853:1:65","nodeType":"YulLiteral","src":"13853:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13838:3:65","nodeType":"YulIdentifier","src":"13838:3:65"},"nativeSrc":"13838:17:65","nodeType":"YulFunctionCall","src":"13838:17:65"},{"arguments":[{"name":"tail","nativeSrc":"13861:4:65","nodeType":"YulIdentifier","src":"13861:4:65"},{"name":"headStart","nativeSrc":"13867:9:65","nodeType":"YulIdentifier","src":"13867:9:65"}],"functionName":{"name":"sub","nativeSrc":"13857:3:65","nodeType":"YulIdentifier","src":"13857:3:65"},"nativeSrc":"13857:20:65","nodeType":"YulFunctionCall","src":"13857:20:65"}],"functionName":{"name":"mstore","nativeSrc":"13831:6:65","nodeType":"YulIdentifier","src":"13831:6:65"},"nativeSrc":"13831:47:65","nodeType":"YulFunctionCall","src":"13831:47:65"},"nativeSrc":"13831:47:65","nodeType":"YulExpressionStatement","src":"13831:47:65"},{"nativeSrc":"13887:139:65","nodeType":"YulAssignment","src":"13887:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"14021:4:65","nodeType":"YulIdentifier","src":"14021:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack","nativeSrc":"13895:124:65","nodeType":"YulIdentifier","src":"13895:124:65"},"nativeSrc":"13895:131:65","nodeType":"YulFunctionCall","src":"13895:131:65"},"variableNames":[{"name":"tail","nativeSrc":"13887:4:65","nodeType":"YulIdentifier","src":"13887:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13614:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13765:9:65","nodeType":"YulTypedName","src":"13765:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13780:4:65","nodeType":"YulTypedName","src":"13780:4:65","type":""}],"src":"13614:419:65"},{"body":{"nativeSrc":"14145:75:65","nodeType":"YulBlock","src":"14145:75:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"14167:6:65","nodeType":"YulIdentifier","src":"14167:6:65"},{"kind":"number","nativeSrc":"14175:1:65","nodeType":"YulLiteral","src":"14175:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14163:3:65","nodeType":"YulIdentifier","src":"14163:3:65"},"nativeSrc":"14163:14:65","nodeType":"YulFunctionCall","src":"14163:14:65"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"14179:33:65","nodeType":"YulLiteral","src":"14179:33:65","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"14156:6:65","nodeType":"YulIdentifier","src":"14156:6:65"},"nativeSrc":"14156:57:65","nodeType":"YulFunctionCall","src":"14156:57:65"},"nativeSrc":"14156:57:65","nodeType":"YulExpressionStatement","src":"14156:57:65"}]},"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"14039:181:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"14137:6:65","nodeType":"YulTypedName","src":"14137:6:65","type":""}],"src":"14039:181:65"},{"body":{"nativeSrc":"14372:220:65","nodeType":"YulBlock","src":"14372:220:65","statements":[{"nativeSrc":"14382:74:65","nodeType":"YulAssignment","src":"14382:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"14448:3:65","nodeType":"YulIdentifier","src":"14448:3:65"},{"kind":"number","nativeSrc":"14453:2:65","nodeType":"YulLiteral","src":"14453:2:65","type":"","value":"31"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"14389:58:65","nodeType":"YulIdentifier","src":"14389:58:65"},"nativeSrc":"14389:67:65","nodeType":"YulFunctionCall","src":"14389:67:65"},"variableNames":[{"name":"pos","nativeSrc":"14382:3:65","nodeType":"YulIdentifier","src":"14382:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14554:3:65","nodeType":"YulIdentifier","src":"14554:3:65"}],"functionName":{"name":"store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","nativeSrc":"14465:88:65","nodeType":"YulIdentifier","src":"14465:88:65"},"nativeSrc":"14465:93:65","nodeType":"YulFunctionCall","src":"14465:93:65"},"nativeSrc":"14465:93:65","nodeType":"YulExpressionStatement","src":"14465:93:65"},{"nativeSrc":"14567:19:65","nodeType":"YulAssignment","src":"14567:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"14578:3:65","nodeType":"YulIdentifier","src":"14578:3:65"},{"kind":"number","nativeSrc":"14583:2:65","nodeType":"YulLiteral","src":"14583:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14574:3:65","nodeType":"YulIdentifier","src":"14574:3:65"},"nativeSrc":"14574:12:65","nodeType":"YulFunctionCall","src":"14574:12:65"},"variableNames":[{"name":"end","nativeSrc":"14567:3:65","nodeType":"YulIdentifier","src":"14567:3:65"}]}]},"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"14226:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14360:3:65","nodeType":"YulTypedName","src":"14360:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14368:3:65","nodeType":"YulTypedName","src":"14368:3:65","type":""}],"src":"14226:366:65"},{"body":{"nativeSrc":"14769:248:65","nodeType":"YulBlock","src":"14769:248:65","statements":[{"nativeSrc":"14779:26:65","nodeType":"YulAssignment","src":"14779:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"14791:9:65","nodeType":"YulIdentifier","src":"14791:9:65"},{"kind":"number","nativeSrc":"14802:2:65","nodeType":"YulLiteral","src":"14802:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14787:3:65","nodeType":"YulIdentifier","src":"14787:3:65"},"nativeSrc":"14787:18:65","nodeType":"YulFunctionCall","src":"14787:18:65"},"variableNames":[{"name":"tail","nativeSrc":"14779:4:65","nodeType":"YulIdentifier","src":"14779:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14826:9:65","nodeType":"YulIdentifier","src":"14826:9:65"},{"kind":"number","nativeSrc":"14837:1:65","nodeType":"YulLiteral","src":"14837:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14822:3:65","nodeType":"YulIdentifier","src":"14822:3:65"},"nativeSrc":"14822:17:65","nodeType":"YulFunctionCall","src":"14822:17:65"},{"arguments":[{"name":"tail","nativeSrc":"14845:4:65","nodeType":"YulIdentifier","src":"14845:4:65"},{"name":"headStart","nativeSrc":"14851:9:65","nodeType":"YulIdentifier","src":"14851:9:65"}],"functionName":{"name":"sub","nativeSrc":"14841:3:65","nodeType":"YulIdentifier","src":"14841:3:65"},"nativeSrc":"14841:20:65","nodeType":"YulFunctionCall","src":"14841:20:65"}],"functionName":{"name":"mstore","nativeSrc":"14815:6:65","nodeType":"YulIdentifier","src":"14815:6:65"},"nativeSrc":"14815:47:65","nodeType":"YulFunctionCall","src":"14815:47:65"},"nativeSrc":"14815:47:65","nodeType":"YulExpressionStatement","src":"14815:47:65"},{"nativeSrc":"14871:139:65","nodeType":"YulAssignment","src":"14871:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"15005:4:65","nodeType":"YulIdentifier","src":"15005:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack","nativeSrc":"14879:124:65","nodeType":"YulIdentifier","src":"14879:124:65"},"nativeSrc":"14879:131:65","nodeType":"YulFunctionCall","src":"14879:131:65"},"variableNames":[{"name":"tail","nativeSrc":"14871:4:65","nodeType":"YulIdentifier","src":"14871:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14598:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14749:9:65","nodeType":"YulTypedName","src":"14749:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14764:4:65","nodeType":"YulTypedName","src":"14764:4:65","type":""}],"src":"14598:419:65"}]},"contents":"{\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: decreased allowance below\")\n\n        mstore(add(memPtr, 32), \" zero\")\n\n    }\n\n    function abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve from the zero add\")\n\n        mstore(add(memPtr, 32), \"ress\")\n\n    }\n\n    function abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: approve to the zero addre\")\n\n        mstore(add(memPtr, 32), \"ss\")\n\n    }\n\n    function abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: insufficient allowance\")\n\n    }\n\n    function abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer from the zero ad\")\n\n        mstore(add(memPtr, 32), \"dress\")\n\n    }\n\n    function abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 37)\n        store_literal_in_memory_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer to the zero addr\")\n\n        mstore(add(memPtr, 32), \"ess\")\n\n    }\n\n    function abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n        store_literal_in_memory_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: transfer amount exceeds b\")\n\n        mstore(add(memPtr, 32), \"alance\")\n\n    }\n\n    function abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC20: mint to the zero address\")\n\n    }\n\n    function abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n        store_literal_in_memory_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"11843":[{"length":32,"start":285}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80635791589711610071578063579158971461015c57806370a082311461017157806395d89b411461019a578063a457c2d7146101a2578063a9059cbb146101b5578063dd62ed3e146101c857600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100f757806323b872dd14610108578063313ce5671461011b5780633950935114610149575b600080fd5b6100c16101db565b6040516100ce9190610642565b60405180910390f35b6100ea6100e536600461069b565b61026d565b6040516100ce91906106e2565b6002545b6040516100ce91906106f6565b6100ea610116366004610704565b610287565b7f00000000000000000000000000000000000000000000000000000000000000006040516100ce919061075d565b6100ea61015736600461069b565b6102ab565b61016f61016a36600461076b565b6102cd565b005b6100fb61017f366004610794565b6001600160a01b031660009081526020819052604090205490565b6100c16102da565b6100ea6101b036600461069b565b6102e9565b6100ea6101c336600461069b565b61032f565b6100fb6101d63660046107b5565b61033d565b6060600380546101ea906107fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610216906107fe565b80156102635780601f1061023857610100808354040283529160200191610263565b820191906000526020600020905b81548152906001019060200180831161024657829003601f168201915b5050505050905090565b60003361027b818585610368565b60019150505b92915050565b60003361029585828561041c565b6102a0858585610466565b506001949350505050565b60003361027b8185856102be838361033d565b6102c89190610840565b610368565b6102d73382610556565b50565b6060600480546101ea906107fe565b600033816102f7828661033d565b9050838110156103225760405162461bcd60e51b815260040161031990610898565b60405180910390fd5b6102a08286868403610368565b60003361027b818585610466565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661038e5760405162461bcd60e51b8152600401610319906108e9565b6001600160a01b0382166103b45760405162461bcd60e51b815260040161031990610938565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040f9085906106f6565b60405180910390a3505050565b6000610428848461033d565b9050600019811461046057818110156104535760405162461bcd60e51b81526004016103199061097f565b6104608484848403610368565b50505050565b6001600160a01b03831661048c5760405162461bcd60e51b8152600401610319906109d1565b6001600160a01b0382166104b25760405162461bcd60e51b815260040161031990610a21565b6001600160a01b038316600090815260208190526040902054818110156104eb5760405162461bcd60e51b815260040161031990610a74565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105499086906106f6565b60405180910390a3610460565b6001600160a01b03821661057c5760405162461bcd60e51b815260040161031990610ab8565b806002600082825461058e9190610840565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105e09085906106f6565b60405180910390a35050565b60005b838110156106075781810151838201526020016105ef565b50506000910152565b600061061a825190565b8084526020840193506106318185602086016105ec565b601f01601f19169290920192915050565b602080825281016106538184610610565b9392505050565b60006001600160a01b038216610281565b6106748161065a565b81146102d757600080fd5b80356102818161066b565b80610674565b80356102818161068a565b600080604083850312156106b1576106b1600080fd5b60006106bd858561067f565b92505060206106ce85828601610690565b9150509250929050565b8015155b82525050565b6020810161028182846106d8565b806106dc565b6020810161028182846106f0565b60008060006060848603121561071c5761071c600080fd5b6000610728868661067f565b93505060206107398682870161067f565b925050604061074a86828701610690565b9150509250925092565b60ff81166106dc565b602081016102818284610754565b60006020828403121561078057610780600080fd5b600061078c8484610690565b949350505050565b6000602082840312156107a9576107a9600080fd5b600061078c848461067f565b600080604083850312156107cb576107cb600080fd5b60006107d7858561067f565b92505060206106ce8582860161067f565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061081257607f821691505b602082108103610824576108246107e8565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102815761028161082a565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b602082015291505b5060400190565b6020808252810161028181610853565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529150610891565b60208082528101610281816108a8565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529150610891565b60208082528101610281816108f9565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000815291505b5060200190565b6020808252810161028181610948565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529150610891565b602080825281016102818161098f565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529150610891565b60208082528101610281816109e1565b602681526000602082017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529150610891565b6020808252810161028181610a31565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529150610978565b6020808252810161028181610a8456fea2646970667358221220cd93abaf5b1062a1c17d8473a852bd4617a837016e3e5f38eebd97d8e82be60864736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57915897 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x57915897 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x6E2 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x116 CALLDATASIZE PUSH1 0x4 PUSH2 0x704 JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x75D JUMP JUMPDEST PUSH2 0xEA PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x2AB JUMP JUMPDEST PUSH2 0x16F PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x2CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFB PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x794 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2DA JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x69B JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH2 0xFB PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B5 JUMP JUMPDEST PUSH2 0x33D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1EA SWAP1 PUSH2 0x7FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x216 SWAP1 PUSH2 0x7FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x263 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x238 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x263 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x246 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x368 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x295 DUP6 DUP3 DUP6 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x2A0 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x2BE DUP4 DUP4 PUSH2 0x33D JUMP JUMPDEST PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x2D7 CALLER DUP3 PUSH2 0x556 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1EA SWAP1 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F7 DUP3 DUP7 PUSH2 0x33D JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x322 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A0 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x27B DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x38E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x938 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP1 PUSH2 0x40F SWAP1 DUP6 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP5 DUP5 PUSH2 0x33D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x453 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x368 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x48C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0x9D1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xA21 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x4EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE SWAP3 DUP7 AND DUP1 DUP3 MSTORE SWAP1 DUP4 SWAP1 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE SWAP2 MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x549 SWAP1 DUP7 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x319 SWAP1 PUSH2 0xAB8 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x58E SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP6 ADD SWAP1 SSTORE MLOAD PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x5E0 SWAP1 DUP6 SWAP1 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x607 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5EF JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x61A DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x631 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x5EC JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x653 DUP2 DUP5 PUSH2 0x610 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x281 JUMP JUMPDEST PUSH2 0x674 DUP2 PUSH2 0x65A JUMP JUMPDEST DUP2 EQ PUSH2 0x2D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x281 DUP2 PUSH2 0x66B JUMP JUMPDEST DUP1 PUSH2 0x674 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x281 DUP2 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6B1 JUMPI PUSH2 0x6B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6BD DUP6 DUP6 PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6CE DUP6 DUP3 DUP7 ADD PUSH2 0x690 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x6D8 JUMP JUMPDEST DUP1 PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x6F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x71C JUMPI PUSH2 0x71C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x728 DUP7 DUP7 PUSH2 0x67F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x739 DUP7 DUP3 DUP8 ADD PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x74A DUP7 DUP3 DUP8 ADD PUSH2 0x690 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x6DC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x281 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x780 JUMPI PUSH2 0x780 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78C DUP5 DUP5 PUSH2 0x690 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A9 JUMPI PUSH2 0x7A9 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78C DUP5 DUP5 PUSH2 0x67F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7CB JUMPI PUSH2 0x7CB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D7 DUP6 DUP6 PUSH2 0x67F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x6CE DUP6 DUP3 DUP7 ADD PUSH2 0x67F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x812 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x824 JUMPI PUSH2 0x824 PUSH2 0x7E8 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x281 JUMPI PUSH2 0x281 PUSH2 0x82A JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 DUP2 MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x853 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 DUP2 MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x8A8 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 DUP2 MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x8F9 JUMP JUMPDEST PUSH1 0x1D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x948 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 DUP2 MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 DUP2 MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0x9E1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 DUP2 MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x891 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0xA31 JUMP JUMPDEST PUSH1 0x1F DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 DUP2 MSTORE SWAP2 POP PUSH2 0x978 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x281 DUP2 PUSH2 0xA84 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD SWAP4 0xAB 0xAF JUMPDEST LT PUSH3 0xA1C17D DUP5 PUSH20 0xA852BD4617A837016E3E5F38EEBD97D8E82BE608 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"432:402:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3255:106::-;3342:12;;3255:106;;;;;;;:::i;5203:256::-;;;;;;:::i;:::-;;:::i;734:98:52:-;816:9;734:98;;;;;;:::i;5854:234:23:-;;;;;;:::i;:::-;;:::i;645:83:52:-;;;;;;:::i;:::-;;:::i;:::-;;3419:125:23;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:23;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:29;4581:32:23;719:10:29;4597:7:23;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:29;5356:38:23;5372:4;719:10:29;5387:6:23;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:23;;5203:256;-1:-1:-1;;;;5203:256:23:o;5854:234::-;5942:4;719:10:29;5996:64:23;719:10:29;6012:7:23;6049:10;6021:25;719:10:29;6012:7:23;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;645:83:52:-;696:25;702:10;714:6;696:5;:25::i;:::-;645:83;:::o;2369:102:23:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;719:10:29;6668:4:23;6749:25;719:10:29;6766:7:23;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:23;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:29;3873:28:23;719:10:29;3890:2:23;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:23;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:23;;10550:68;;;;-1:-1:-1;;;10550:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10636:21:23;;10628:68;;;;-1:-1:-1;;;10628:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;10707:18:23;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10758:32;;;;;10737:6;;10758:32;:::i;:::-;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:23;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:23;;;;;;;:::i;:::-;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:23;;7544:68;;;;-1:-1:-1;;;7544:68:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7630:16:23;;7622:64;;;;-1:-1:-1;;;7622:64:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7768:15:23;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:23;;;;;;;:::i;:::-;-1:-1:-1;;;;;7899:15:23;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;;;;;7931:6;;8163:26;:::i;:::-;;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:23;;8595:65;;;;-1:-1:-1;;;8595:65:23;;;;;;;:::i;:::-;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:23;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;;;;;8921:6;;8952:37;:::i;:::-;;;;;;;;8520:535;;:::o;287:248:65:-;369:1;379:113;393:6;390:1;387:13;379:113;;;469:11;;;463:18;450:11;;;443:39;415:2;408:10;379:113;;;-1:-1:-1;;526:1:65;508:16;;501:27;287:248::o;649:377::-;737:3;765:39;798:5;87:12;;7:99;765:39;218:19;;;270:4;261:14;;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;633:2;613:14;-1:-1:-1;;609:28:65;981:39;;;;;;-1:-1:-1;;649:377:65:o;1032:313::-;1183:2;1196:47;;;1168:18;;1260:78;1168:18;1324:6;1260:78;:::i;:::-;1252:86;1032:313;-1:-1:-1;;;1032:313:65:o;1810:96::-;1847:7;-1:-1:-1;;;;;1744:54:65;;1876:24;1678:126;1912:122;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;2040:139;2111:20;;2140:33;2111:20;2140:33;:::i;2268:122::-;2359:5;2341:24;2185:77;2396:139;2467:20;;2496:33;2467:20;2496:33;:::i;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;432:402:52;;;2672:79:65;2792:1;2817:53;2862:7;2842:9;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3117:109::-;3091:13;;3084:21;3198;3193:3;3186:34;3117:109;;:::o;3232:210::-;3357:2;3342:18;;3370:65;3346:9;3408:6;3370:65;:::i;3448:118::-;3553:5;3535:24;2185:77;3572:222;3703:2;3688:18;;3716:71;3692:9;3760:6;3716:71;:::i;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;432:402:52;;;3948:79:65;4068:1;4093:53;4138:7;4118:9;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4517:112::-;4500:4;4489:16;;4600:22;4425:86;4635:214;4762:2;4747:18;;4775:67;4751:9;4815:6;4775:67;:::i;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;432:402:52;;;4969:79:65;5089:1;5114:53;5159:7;5139:9;5114:53;:::i;:::-;5104:63;4855:329;-1:-1:-1;;;;4855:329:65:o;5190:::-;5249:6;5298:2;5286:9;5277:7;5273:23;5269:32;5266:119;;;5304:79;432:402:52;;;5304:79:65;5424:1;5449:53;5494:7;5474:9;5449:53;:::i;5525:474::-;5593:6;5601;5650:2;5638:9;5629:7;5625:23;5621:32;5618:119;;;5656:79;432:402:52;;;5656:79:65;5776:1;5801:53;5846:7;5826:9;5801:53;:::i;:::-;5791:63;;5747:117;5903:2;5929:53;5974:7;5965:6;5954:9;5950:22;5929:53;:::i;6005:180::-;-1:-1:-1;;;6050:1:65;6043:88;6150:4;6147:1;6140:15;6174:4;6171:1;6164:15;6191:320;6272:1;6262:12;;6319:1;6309:12;;;6330:81;;6396:4;6388:6;6384:17;6374:27;;6330:81;6458:2;6450:6;6447:14;6427:18;6424:38;6421:84;;6477:18;;:::i;:::-;6242:269;6191:320;;;:::o;6517:180::-;-1:-1:-1;;;6562:1:65;6555:88;6662:4;6659:1;6652:15;6686:4;6683:1;6676:15;6703:191;6832:9;;;6854:10;;;6851:36;;;6867:18;;:::i;7130:366::-;7357:2;218:19;;7272:3;270:4;261:14;;7040:34;7017:58;;-1:-1:-1;;;7104:2:65;7092:15;;7085:32;7286:74;-1:-1:-1;7369:93:65;-1:-1:-1;7487:2:65;7478:12;;7130:366::o;7502:419::-;7706:2;7719:47;;;7691:18;;7783:131;7691:18;7783:131;:::i;8156:366::-;8383:2;218:19;;8298:3;270:4;261:14;;8067:34;8044:58;;-1:-1:-1;;;8131:2:65;8119:15;;8112:31;8312:74;-1:-1:-1;8395:93:65;7927:223;8528:419;8732:2;8745:47;;;8717:18;;8809:131;8717:18;8809:131;:::i;9180:366::-;9407:2;218:19;;9322:3;270:4;261:14;;9093:34;9070:58;;-1:-1:-1;;;9157:2:65;9145:15;;9138:29;9336:74;-1:-1:-1;9419:93:65;8953:221;9552:419;9756:2;9769:47;;;9741:18;;9833:131;9741:18;9833:131;:::i;10162:366::-;10389:2;218:19;;10304:3;270:4;261:14;;10117:31;10094:55;;10318:74;-1:-1:-1;10401:93:65;-1:-1:-1;10519:2:65;10510:12;;10162:366::o;10534:419::-;10738:2;10751:47;;;10723:18;;10815:131;10723:18;10815:131;:::i;11189:366::-;11416:2;218:19;;11331:3;270:4;261:14;;11099:34;11076:58;;-1:-1:-1;;;11163:2:65;11151:15;;11144:32;11345:74;-1:-1:-1;11428:93:65;10959:224;11561:419;11765:2;11778:47;;;11750:18;;11842:131;11750:18;11842:131;:::i;12214:366::-;12441:2;218:19;;12356:3;270:4;261:14;;12126:34;12103:58;;-1:-1:-1;;;12190:2:65;12178:15;;12171:30;12370:74;-1:-1:-1;12453:93:65;11986:222;12586:419;12790:2;12803:47;;;12775:18;;12867:131;12775:18;12867:131;:::i;13242:366::-;13469:2;218:19;;13384:3;270:4;261:14;;13151:34;13128:58;;-1:-1:-1;;;13215:2:65;13203:15;;13196:33;13398:74;-1:-1:-1;13481:93:65;13011:225;13614:419;13818:2;13831:47;;;13803:18;;13895:131;13803:18;13895:131;:::i;14226:366::-;14453:2;218:19;;14368:3;270:4;261:14;;14179:33;14156:57;;14382:74;-1:-1:-1;14465:93:65;14039:181;14598:419;14802:2;14815:47;;;14787:18;;14879:131;14787:18;14879:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"562800","executionCost":"infinite","totalCost":"infinite"},"external":{"allowance(address,address)":"infinite","approve(address,uint256)":"infinite","balanceOf(address)":"infinite","decimals()":"infinite","decreaseAllowance(address,uint256)":"infinite","faucet(uint256)":"infinite","increaseAllowance(address,uint256)":"infinite","name()":"infinite","symbol()":"infinite","totalSupply()":"2403","transfer(address,uint256)":"infinite","transferFrom(address,address,uint256)":"infinite"}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","faucet(uint256)":"57915897","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"faucet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/MockToken.sol\":\"MockToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroEndpoint.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\nimport \\\"./ILayerZeroUserApplicationConfig.sol\\\";\\n\\ninterface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {\\n    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains\\n    // @param _payload - a custom bytes payload to send to the destination contract\\n    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address\\n    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction\\n    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination\\n    function send(\\n        uint16 _dstChainId,\\n        bytes calldata _destination,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes calldata _adapterParams\\n    ) external payable;\\n\\n    // @notice used by the messaging library to publish verified payload\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source contract (as bytes) at the source chain\\n    // @param _dstAddress - the address on destination chain\\n    // @param _nonce - the unbound message ordering nonce\\n    // @param _gasLimit - the gas limit for external contract execution\\n    // @param _payload - verified payload to send to the destination contract\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);\\n\\n    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM\\n    // @param _srcAddress - the source chain contract address\\n    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);\\n\\n    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery\\n    // @param _dstChainId - the destination chain identifier\\n    // @param _userApplication - the user app address on this EVM chain\\n    // @param _payload - the custom message to send over LayerZero\\n    // @param _payInZRO - if false, user app pays the protocol fee in native token\\n    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes calldata _payload,\\n        bool _payInZRO,\\n        bytes calldata _adapterParam\\n    ) external view returns (uint nativeFee, uint zroFee);\\n\\n    // @notice get this Endpoint's immutable source identifier\\n    function getChainId() external view returns (uint16);\\n\\n    // @notice the interface to retry failed message on this Endpoint destination\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    // @param _payload - the payload to be retried\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        bytes calldata _payload\\n    ) external;\\n\\n    // @notice query if any STORED payload (message blocking) at the endpoint.\\n    // @param _srcChainId - the source chain identifier\\n    // @param _srcAddress - the source chain contract address\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);\\n\\n    // @notice query if the _libraryAddress is valid for sending msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getSendLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the _libraryAddress is valid for receiving msgs.\\n    // @param _userApplication - the user app address on this EVM chain\\n    function getReceiveLibraryAddress(address _userApplication) external view returns (address);\\n\\n    // @notice query if the non-reentrancy guard for send() is on\\n    // @return true if the guard is on. false otherwise\\n    function isSendingPayload() external view returns (bool);\\n\\n    // @notice query if the non-reentrancy guard for receive() is on\\n    // @return true if the guard is on. false otherwise\\n    function isReceivingPayload() external view returns (bool);\\n\\n    // @notice get the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _userApplication - the contract address of the user application\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    function getConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        address _userApplication,\\n        uint _configType\\n    ) external view returns (bytes memory);\\n\\n    // @notice get the send() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getSendVersion(address _userApplication) external view returns (uint16);\\n\\n    // @notice get the lzReceive() LayerZero messaging library version\\n    // @param _userApplication - the contract address of the user application\\n    function getReceiveVersion(address _userApplication) external view returns (uint16);\\n}\\n\",\"keccak256\":\"0xab7fcacc672251c850f00c0abd4100df9afcc4ad70b8d331a2fd4cb07acab9f4\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroReceiver {\\n    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination\\n    // @param _srcChainId - the source endpoint identifier\\n    // @param _srcAddress - the source sending contract address from the source chain\\n    // @param _nonce - the ordered message nonce\\n    // @param _payload - the signed payload is the UA bytes has encoded to be sent\\n    function lzReceive(\\n        uint16 _srcChainId,\\n        bytes calldata _srcAddress,\\n        uint64 _nonce,\\n        bytes calldata _payload\\n    ) external;\\n}\\n\",\"keccak256\":\"0xac1966c1229bd4dc36b6c69eeb94a537bd9aa2198d7623b9ba7f8f7dbe79bb4c\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/interfaces/ILayerZeroUserApplicationConfig.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity >=0.5.0;\\n\\ninterface ILayerZeroUserApplicationConfig {\\n    // @notice set the configuration of the LayerZero messaging library of the specified version\\n    // @param _version - messaging library version\\n    // @param _chainId - the chainId for the pending config change\\n    // @param _configType - type of configuration. every messaging library has its own convention.\\n    // @param _config - configuration in the bytes. can encode arbitrary content.\\n    function setConfig(\\n        uint16 _version,\\n        uint16 _chainId,\\n        uint _configType,\\n        bytes calldata _config\\n    ) external;\\n\\n    // @notice set the send() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setSendVersion(uint16 _version) external;\\n\\n    // @notice set the lzReceive() LayerZero messaging library version to _version\\n    // @param _version - new messaging library version\\n    function setReceiveVersion(uint16 _version) external;\\n\\n    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload\\n    // @param _srcChainId - the chainId of the source chain\\n    // @param _srcAddress - the contract address of the source contract at the source chain\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;\\n}\\n\",\"keccak256\":\"0xb4df93aeb0fb46373a4fb728ad2603edc8b9a1577eee8d801768dc115bf96498\",\"license\":\"MIT\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/libs/LzLib.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity >=0.6.0;\\npragma experimental ABIEncoderV2;\\n\\nlibrary LzLib {\\n    // LayerZero communication\\n    struct CallParams {\\n        address payable refundAddress;\\n        address zroPaymentAddress;\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n\\n    struct AirdropParams {\\n        uint airdropAmount;\\n        bytes32 airdropAddress;\\n    }\\n\\n    function buildAdapterParams(LzLib.AirdropParams memory _airdropParams, uint _uaGasLimit) internal pure returns (bytes memory adapterParams) {\\n        if (_airdropParams.airdropAmount == 0 && _airdropParams.airdropAddress == bytes32(0x0)) {\\n            adapterParams = buildDefaultAdapterParams(_uaGasLimit);\\n        } else {\\n            adapterParams = buildAirdropAdapterParams(_uaGasLimit, _airdropParams);\\n        }\\n    }\\n\\n    // Build Adapter Params\\n    function buildDefaultAdapterParams(uint _uaGas) internal pure returns (bytes memory) {\\n        // txType 1\\n        // bytes  [2       32      ]\\n        // fields [txType  extraGas]\\n        return abi.encodePacked(uint16(1), _uaGas);\\n    }\\n\\n    function buildAirdropAdapterParams(uint _uaGas, AirdropParams memory _params) internal pure returns (bytes memory) {\\n        require(_params.airdropAmount > 0, \\\"Airdrop amount must be greater than 0\\\");\\n        require(_params.airdropAddress != bytes32(0x0), \\\"Airdrop address must be set\\\");\\n\\n        // txType 2\\n        // bytes  [2       32        32            bytes[]         ]\\n        // fields [txType  extraGas  dstNativeAmt  dstNativeAddress]\\n        return abi.encodePacked(uint16(2), _uaGas, _params.airdropAmount, _params.airdropAddress);\\n    }\\n\\n    function getGasLimit(bytes memory _adapterParams) internal pure returns (uint gasLimit) {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            gasLimit := mload(add(_adapterParams, 34))\\n        }\\n    }\\n\\n    // Decode Adapter Params\\n    function decodeAdapterParams(bytes memory _adapterParams)\\n        internal\\n        pure\\n        returns (\\n            uint16 txType,\\n            uint uaGas,\\n            uint airdropAmount,\\n            address payable airdropAddress\\n        )\\n    {\\n        require(_adapterParams.length == 34 || _adapterParams.length > 66, \\\"Invalid adapterParams\\\");\\n        assembly {\\n            txType := mload(add(_adapterParams, 2))\\n            uaGas := mload(add(_adapterParams, 34))\\n        }\\n        require(txType == 1 || txType == 2, \\\"Unsupported txType\\\");\\n        require(uaGas > 0, \\\"Gas too low\\\");\\n\\n        if (txType == 2) {\\n            assembly {\\n                airdropAmount := mload(add(_adapterParams, 66))\\n                airdropAddress := mload(add(_adapterParams, 86))\\n            }\\n        }\\n    }\\n\\n    //---------------------------------------------------------------------------\\n    // Address type handling\\n    function bytes32ToAddress(bytes32 _bytes32Address) internal pure returns (address _address) {\\n        return address(uint160(uint(_bytes32Address)));\\n    }\\n\\n    function addressToBytes32(address _address) internal pure returns (bytes32 _bytes32Address) {\\n        return bytes32(uint(uint160(_address)));\\n    }\\n}\\n\",\"keccak256\":\"0xf61b7357d6638814e1a8d5edeba5c8f5db1cd782882b96da4452604ec0d5c20a\",\"license\":\"BUSL-1.1\"},\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\":{\"content\":\"// SPDX-License-Identifier: BUSL-1.1\\n\\npragma solidity ^0.8.0;\\npragma abicoder v2;\\n\\nimport \\\"../interfaces/ILayerZeroReceiver.sol\\\";\\nimport \\\"../interfaces/ILayerZeroEndpoint.sol\\\";\\nimport \\\"../libs/LzLib.sol\\\";\\n\\n/*\\nlike a real LayerZero endpoint but can be mocked, which handle message transmission, verification, and receipt.\\n- blocking: LayerZero provides ordered delivery of messages from a given sender to a destination chain.\\n- non-reentrancy: endpoint has a non-reentrancy guard for both the send() and receive(), respectively.\\n- adapter parameters: allows UAs to add arbitrary transaction params in the send() function, like airdrop on destination chain.\\nunlike a real LayerZero endpoint, it is\\n- no messaging library versioning\\n- send() will short circuit to lzReceive()\\n- no user application configuration\\n*/\\ncontract LZEndpointMock is ILayerZeroEndpoint {\\n    uint8 internal constant _NOT_ENTERED = 1;\\n    uint8 internal constant _ENTERED = 2;\\n\\n    mapping(address => address) public lzEndpointLookup;\\n\\n    uint16 public mockChainId;\\n    bool public nextMsgBlocked;\\n\\n    // fee config\\n    RelayerFeeConfig public relayerFeeConfig;\\n    ProtocolFeeConfig public protocolFeeConfig;\\n    uint public oracleFee;\\n    bytes public defaultAdapterParams;\\n\\n    // path = remote addrss + local address\\n    // inboundNonce = [srcChainId][path].\\n    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;\\n    //todo: this is a hack\\n    // outboundNonce = [dstChainId][srcAddress]\\n    mapping(uint16 => mapping(address => uint64)) public outboundNonce;\\n    //    // outboundNonce = [dstChainId][path].\\n    //    mapping(uint16 => mapping(bytes => uint64)) public outboundNonce;\\n    // storedPayload = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;\\n    // msgToDeliver = [srcChainId][path]\\n    mapping(uint16 => mapping(bytes => QueuedPayload[])) public msgsToDeliver;\\n\\n    // reentrancy guard\\n    uint8 internal _send_entered_state = 1;\\n    uint8 internal _receive_entered_state = 1;\\n\\n    struct ProtocolFeeConfig {\\n        uint zroFee;\\n        uint nativeBP;\\n    }\\n\\n    struct RelayerFeeConfig {\\n        uint128 dstPriceRatio; // 10^10\\n        uint128 dstGasPriceInWei;\\n        uint128 dstNativeAmtCap;\\n        uint64 baseGas;\\n        uint64 gasPerByte;\\n    }\\n\\n    struct StoredPayload {\\n        uint64 payloadLength;\\n        address dstAddress;\\n        bytes32 payloadHash;\\n    }\\n\\n    struct QueuedPayload {\\n        address dstAddress;\\n        uint64 nonce;\\n        bytes payload;\\n    }\\n\\n    modifier sendNonReentrant() {\\n        require(_send_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no send reentrancy\\\");\\n        _send_entered_state = _ENTERED;\\n        _;\\n        _send_entered_state = _NOT_ENTERED;\\n    }\\n\\n    modifier receiveNonReentrant() {\\n        require(_receive_entered_state == _NOT_ENTERED, \\\"LayerZeroMock: no receive reentrancy\\\");\\n        _receive_entered_state = _ENTERED;\\n        _;\\n        _receive_entered_state = _NOT_ENTERED;\\n    }\\n\\n    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);\\n    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);\\n    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);\\n    event ValueTransferFailed(address indexed to, uint indexed quantity);\\n\\n    constructor(uint16 _chainId) {\\n        mockChainId = _chainId;\\n\\n        // init config\\n        relayerFeeConfig = RelayerFeeConfig({\\n            dstPriceRatio: 1e10, // 1:1, same chain, same native coin\\n            dstGasPriceInWei: 1e10,\\n            dstNativeAmtCap: 1e19,\\n            baseGas: 100,\\n            gasPerByte: 1\\n        });\\n        protocolFeeConfig = ProtocolFeeConfig({zroFee: 1e18, nativeBP: 1000}); // BP 0.1\\n        oracleFee = 1e16;\\n        defaultAdapterParams = LzLib.buildDefaultAdapterParams(200000);\\n    }\\n\\n    // ------------------------------ ILayerZeroEndpoint Functions ------------------------------\\n    function send(\\n        uint16 _chainId,\\n        bytes memory _path,\\n        bytes calldata _payload,\\n        address payable _refundAddress,\\n        address _zroPaymentAddress,\\n        bytes memory _adapterParams\\n    ) external payable override sendNonReentrant {\\n        require(_path.length == 40, \\\"LayerZeroMock: incorrect remote address size\\\"); // only support evm chains\\n\\n        address dstAddr;\\n        assembly {\\n            dstAddr := mload(add(_path, 20))\\n        }\\n\\n        address lzEndpoint = lzEndpointLookup[dstAddr];\\n        require(lzEndpoint != address(0), \\\"LayerZeroMock: destination LayerZero Endpoint not found\\\");\\n\\n        // not handle zro token\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n        (uint nativeFee, ) = estimateFees(_chainId, msg.sender, _payload, _zroPaymentAddress != address(0x0), adapterParams);\\n        require(msg.value >= nativeFee, \\\"LayerZeroMock: not enough native for fees\\\");\\n\\n        uint64 nonce = ++outboundNonce[_chainId][msg.sender];\\n\\n        // refund if they send too much\\n        uint amount = msg.value - nativeFee;\\n        if (amount > 0) {\\n            (bool success, ) = _refundAddress.call{value: amount}(\\\"\\\");\\n            require(success, \\\"LayerZeroMock: failed to refund\\\");\\n        }\\n\\n        // Mock the process of receiving msg on dst chain\\n        // Mock the relayer paying the dstNativeAddr the amount of extra native token\\n        (, uint extraGas, uint dstNativeAmt, address payable dstNativeAddr) = LzLib.decodeAdapterParams(adapterParams);\\n        if (dstNativeAmt > 0) {\\n            (bool success, ) = dstNativeAddr.call{value: dstNativeAmt}(\\\"\\\");\\n            if (!success) {\\n                emit ValueTransferFailed(dstNativeAddr, dstNativeAmt);\\n            }\\n        }\\n\\n        bytes memory srcUaAddress = abi.encodePacked(msg.sender, dstAddr); // cast this address to bytes\\n        bytes memory payload = _payload;\\n        LZEndpointMock(lzEndpoint).receivePayload(mockChainId, srcUaAddress, dstAddr, nonce, extraGas, payload);\\n    }\\n\\n    function receivePayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        address _dstAddress,\\n        uint64 _nonce,\\n        uint _gasLimit,\\n        bytes calldata _payload\\n    ) external override receiveNonReentrant {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n\\n        // assert and increment the nonce. no message shuffling\\n        require(_nonce == ++inboundNonce[_srcChainId][_path], \\\"LayerZeroMock: wrong nonce\\\");\\n\\n        // queue the following msgs inside of a stack to simulate a successful send on src, but not fully delivered on dst\\n        if (sp.payloadHash != bytes32(0)) {\\n            QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n            QueuedPayload memory newMsg = QueuedPayload(_dstAddress, _nonce, _payload);\\n\\n            // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n            // shift all the msgs over so we can treat this like a fifo via array.pop()\\n            if (msgs.length > 0) {\\n                // extend the array\\n                msgs.push(newMsg);\\n\\n                // shift all the indexes up for pop()\\n                for (uint i = 0; i < msgs.length - 1; i++) {\\n                    msgs[i + 1] = msgs[i];\\n                }\\n\\n                // put the newMsg at the bottom of the stack\\n                msgs[0] = newMsg;\\n            } else {\\n                msgs.push(newMsg);\\n            }\\n        } else if (nextMsgBlocked) {\\n            storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n            emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, bytes(\\\"\\\"));\\n            // ensure the next msgs that go through are no longer blocked\\n            nextMsgBlocked = false;\\n        } else {\\n            try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _path, _nonce, _payload) {} catch (bytes memory reason) {\\n                storedPayload[_srcChainId][_path] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));\\n                emit PayloadStored(_srcChainId, _path, _dstAddress, _nonce, _payload, reason);\\n                // ensure the next msgs that go through are no longer blocked\\n                nextMsgBlocked = false;\\n            }\\n        }\\n    }\\n\\n    function getInboundNonce(uint16 _chainID, bytes calldata _path) external view override returns (uint64) {\\n        return inboundNonce[_chainID][_path];\\n    }\\n\\n    function getOutboundNonce(uint16 _chainID, address _srcAddress) external view override returns (uint64) {\\n        return outboundNonce[_chainID][_srcAddress];\\n    }\\n\\n    function estimateFees(\\n        uint16 _dstChainId,\\n        address _userApplication,\\n        bytes memory _payload,\\n        bool _payInZRO,\\n        bytes memory _adapterParams\\n    ) public view override returns (uint nativeFee, uint zroFee) {\\n        bytes memory adapterParams = _adapterParams.length > 0 ? _adapterParams : defaultAdapterParams;\\n\\n        // Relayer Fee\\n        uint relayerFee = _getRelayerFee(_dstChainId, 1, _userApplication, _payload.length, adapterParams);\\n\\n        // LayerZero Fee\\n        uint protocolFee = _getProtocolFees(_payInZRO, relayerFee, oracleFee);\\n        _payInZRO ? zroFee = protocolFee : nativeFee = protocolFee;\\n\\n        // return the sum of fees\\n        nativeFee = nativeFee + relayerFee + oracleFee;\\n    }\\n\\n    function getChainId() external view override returns (uint16) {\\n        return mockChainId;\\n    }\\n\\n    function retryPayload(\\n        uint16 _srcChainId,\\n        bytes calldata _path,\\n        bytes calldata _payload\\n    ) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, \\\"LayerZeroMock: invalid payload\\\");\\n\\n        address dstAddress = sp.dstAddress;\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        uint64 nonce = inboundNonce[_srcChainId][_path];\\n\\n        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _path, nonce, _payload);\\n        emit PayloadCleared(_srcChainId, _path, nonce, dstAddress);\\n    }\\n\\n    function hasStoredPayload(uint16 _srcChainId, bytes calldata _path) external view override returns (bool) {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        return sp.payloadHash != bytes32(0);\\n    }\\n\\n    function getSendLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function getReceiveLibraryAddress(address) external view override returns (address) {\\n        return address(this);\\n    }\\n\\n    function isSendingPayload() external view override returns (bool) {\\n        return _send_entered_state == _ENTERED;\\n    }\\n\\n    function isReceivingPayload() external view override returns (bool) {\\n        return _receive_entered_state == _ENTERED;\\n    }\\n\\n    function getConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        address, /*_ua*/\\n        uint /*_configType*/\\n    ) external pure override returns (bytes memory) {\\n        return \\\"\\\";\\n    }\\n\\n    function getSendVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function getReceiveVersion(\\n        address /*_userApplication*/\\n    ) external pure override returns (uint16) {\\n        return 1;\\n    }\\n\\n    function setConfig(\\n        uint16, /*_version*/\\n        uint16, /*_chainId*/\\n        uint, /*_configType*/\\n        bytes memory /*_config*/\\n    ) external override {}\\n\\n    function setSendVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function setReceiveVersion(\\n        uint16 /*version*/\\n    ) external override {}\\n\\n    function forceResumeReceive(uint16 _srcChainId, bytes calldata _path) external override {\\n        StoredPayload storage sp = storedPayload[_srcChainId][_path];\\n        // revert if no messages are cached. safeguard malicious UA behaviour\\n        require(sp.payloadHash != bytes32(0), \\\"LayerZeroMock: no stored payload\\\");\\n        require(sp.dstAddress == msg.sender, \\\"LayerZeroMock: invalid caller\\\");\\n\\n        // empty the storedPayload\\n        sp.payloadLength = 0;\\n        sp.dstAddress = address(0);\\n        sp.payloadHash = bytes32(0);\\n\\n        emit UaForceResumeReceive(_srcChainId, _path);\\n\\n        // resume the receiving of msgs after we force clear the \\\"stuck\\\" msg\\n        _clearMsgQue(_srcChainId, _path);\\n    }\\n\\n    // ------------------------------ Other Public/External Functions --------------------------------------------------\\n\\n    function getLengthOfQueue(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint) {\\n        return msgsToDeliver[_srcChainId][_srcAddress].length;\\n    }\\n\\n    // used to simulate messages received get stored as a payload\\n    function blockNextMsg() external {\\n        nextMsgBlocked = true;\\n    }\\n\\n    function setDestLzEndpoint(address destAddr, address lzEndpointAddr) external {\\n        lzEndpointLookup[destAddr] = lzEndpointAddr;\\n    }\\n\\n    function setRelayerPrice(\\n        uint128 _dstPriceRatio,\\n        uint128 _dstGasPriceInWei,\\n        uint128 _dstNativeAmtCap,\\n        uint64 _baseGas,\\n        uint64 _gasPerByte\\n    ) external {\\n        relayerFeeConfig.dstPriceRatio = _dstPriceRatio;\\n        relayerFeeConfig.dstGasPriceInWei = _dstGasPriceInWei;\\n        relayerFeeConfig.dstNativeAmtCap = _dstNativeAmtCap;\\n        relayerFeeConfig.baseGas = _baseGas;\\n        relayerFeeConfig.gasPerByte = _gasPerByte;\\n    }\\n\\n    function setProtocolFee(uint _zroFee, uint _nativeBP) external {\\n        protocolFeeConfig.zroFee = _zroFee;\\n        protocolFeeConfig.nativeBP = _nativeBP;\\n    }\\n\\n    function setOracleFee(uint _oracleFee) external {\\n        oracleFee = _oracleFee;\\n    }\\n\\n    function setDefaultAdapterParams(bytes memory _adapterParams) external {\\n        defaultAdapterParams = _adapterParams;\\n    }\\n\\n    // --------------------- Internal Functions ---------------------\\n    // simulates the relayer pushing through the rest of the msgs that got delayed due to the stored payload\\n    function _clearMsgQue(uint16 _srcChainId, bytes calldata _path) internal {\\n        QueuedPayload[] storage msgs = msgsToDeliver[_srcChainId][_path];\\n\\n        // warning, might run into gas issues trying to forward through a bunch of queued msgs\\n        while (msgs.length > 0) {\\n            QueuedPayload memory payload = msgs[msgs.length - 1];\\n            ILayerZeroReceiver(payload.dstAddress).lzReceive(_srcChainId, _path, payload.nonce, payload.payload);\\n            msgs.pop();\\n        }\\n    }\\n\\n    function _getProtocolFees(\\n        bool _payInZro,\\n        uint _relayerFee,\\n        uint _oracleFee\\n    ) internal view returns (uint) {\\n        if (_payInZro) {\\n            return protocolFeeConfig.zroFee;\\n        } else {\\n            return ((_relayerFee + _oracleFee) * protocolFeeConfig.nativeBP) / 10000;\\n        }\\n    }\\n\\n    function _getRelayerFee(\\n        uint16, /* _dstChainId */\\n        uint16, /* _outboundProofType */\\n        address, /* _userApplication */\\n        uint _payloadSize,\\n        bytes memory _adapterParams\\n    ) internal view returns (uint) {\\n        (uint16 txType, uint extraGas, uint dstNativeAmt, ) = LzLib.decodeAdapterParams(_adapterParams);\\n        uint totalRemoteToken; // = baseGas + extraGas + requiredNativeAmount\\n        if (txType == 2) {\\n            require(relayerFeeConfig.dstNativeAmtCap >= dstNativeAmt, \\\"LayerZeroMock: dstNativeAmt too large \\\");\\n            totalRemoteToken += dstNativeAmt;\\n        }\\n        // remoteGasTotal = dstGasPriceInWei * (baseGas + extraGas)\\n        uint remoteGasTotal = relayerFeeConfig.dstGasPriceInWei * (relayerFeeConfig.baseGas + extraGas);\\n        totalRemoteToken += remoteGasTotal;\\n\\n        // tokenConversionRate = dstPrice / localPrice\\n        // basePrice = totalRemoteToken * tokenConversionRate\\n        uint basePrice = (totalRemoteToken * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        // pricePerByte = (dstGasPriceInWei * gasPerBytes) * tokenConversionRate\\n        uint pricePerByte = (relayerFeeConfig.dstGasPriceInWei * relayerFeeConfig.gasPerByte * relayerFeeConfig.dstPriceRatio) / 10**10;\\n\\n        return basePrice + _payloadSize * pricePerByte;\\n    }\\n}\\n\",\"keccak256\":\"0x06bc56b213f08faece383b9df0eb7eeafebb36f490ca117d927c93f3d82e554b\",\"license\":\"BUSL-1.1\"},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IAccessControl.sol\\\";\\nimport \\\"../utils/Context.sol\\\";\\nimport \\\"../utils/Strings.sol\\\";\\nimport \\\"../utils/introspection/ERC165.sol\\\";\\n\\n/**\\n * @dev Contract module that allows children to implement role-based access\\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\\n * members except through off-chain means by accessing the contract event logs. Some\\n * applications may benefit from on-chain enumerability, for those cases see\\n * {AccessControlEnumerable}.\\n *\\n * Roles are referred to by their `bytes32` identifier. These should be exposed\\n * in the external API and be unique. The best way to achieve this is by\\n * using `public constant` hash digests:\\n *\\n * ```solidity\\n * bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\");\\n * ```\\n *\\n * Roles can be used to represent a set of permissions. To restrict access to a\\n * function call, use {hasRole}:\\n *\\n * ```solidity\\n * function foo() public {\\n *     require(hasRole(MY_ROLE, msg.sender));\\n *     ...\\n * }\\n * ```\\n *\\n * Roles can be granted and revoked dynamically via the {grantRole} and\\n * {revokeRole} functions. Each role has an associated admin role, and only\\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\\n *\\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\\n * that only accounts with this role will be able to grant or revoke other\\n * roles. More complex role relationships can be created by using\\n * {_setRoleAdmin}.\\n *\\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\\n * grant and revoke this role. Extra precautions should be taken to secure\\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\\n * to enforce additional security measures for this role.\\n */\\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\\n    struct RoleData {\\n        mapping(address => bool) members;\\n        bytes32 adminRole;\\n    }\\n\\n    mapping(bytes32 => RoleData) private _roles;\\n\\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\\n\\n    /**\\n     * @dev Modifier that checks that an account has a specific role. Reverts\\n     * with a standardized message including the required role.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     *\\n     * _Available since v4.1._\\n     */\\n    modifier onlyRole(bytes32 role) {\\n        _checkRole(role);\\n        _;\\n    }\\n\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\\n    }\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\\n        return _roles[role].members[account];\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\\n     *\\n     * Format of the revert message is described in {_checkRole}.\\n     *\\n     * _Available since v4.6._\\n     */\\n    function _checkRole(bytes32 role) internal view virtual {\\n        _checkRole(role, _msgSender());\\n    }\\n\\n    /**\\n     * @dev Revert with a standard message if `account` is missing `role`.\\n     *\\n     * The format of the revert reason is given by the following regular expression:\\n     *\\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\\n     */\\n    function _checkRole(bytes32 role, address account) internal view virtual {\\n        if (!hasRole(role, account)) {\\n            revert(\\n                string(\\n                    abi.encodePacked(\\n                        \\\"AccessControl: account \\\",\\n                        Strings.toHexString(account),\\n                        \\\" is missing role \\\",\\n                        Strings.toHexString(uint256(role), 32)\\n                    )\\n                )\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\\n        return _roles[role].adminRole;\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function renounceRole(bytes32 role, address account) public virtual override {\\n        require(account == _msgSender(), \\\"AccessControl: can only renounce roles for self\\\");\\n\\n        _revokeRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event. Note that unlike {grantRole}, this function doesn't perform any\\n     * checks on the calling account.\\n     *\\n     * May emit a {RoleGranted} event.\\n     *\\n     * [WARNING]\\n     * ====\\n     * This function should only be called from the constructor when setting\\n     * up the initial roles for the system.\\n     *\\n     * Using this function in any other way is effectively circumventing the admin\\n     * system imposed by {AccessControl}.\\n     * ====\\n     *\\n     * NOTE: This function is deprecated in favor of {_grantRole}.\\n     */\\n    function _setupRole(bytes32 role, address account) internal virtual {\\n        _grantRole(role, account);\\n    }\\n\\n    /**\\n     * @dev Sets `adminRole` as ``role``'s admin role.\\n     *\\n     * Emits a {RoleAdminChanged} event.\\n     */\\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\\n        bytes32 previousAdminRole = getRoleAdmin(role);\\n        _roles[role].adminRole = adminRole;\\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\\n    }\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleGranted} event.\\n     */\\n    function _grantRole(bytes32 role, address account) internal virtual {\\n        if (!hasRole(role, account)) {\\n            _roles[role].members[account] = true;\\n            emit RoleGranted(role, account, _msgSender());\\n        }\\n    }\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * Internal function without access restriction.\\n     *\\n     * May emit a {RoleRevoked} event.\\n     */\\n    function _revokeRole(bytes32 role, address account) internal virtual {\\n        if (hasRole(role, account)) {\\n            _roles[role].members[account] = false;\\n            emit RoleRevoked(role, account, _msgSender());\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\"},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev External interface of AccessControl declared to support ERC165 detection.\\n */\\ninterface IAccessControl {\\n    /**\\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\\n     *\\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\\n     * {RoleAdminChanged} not being emitted signaling this.\\n     *\\n     * _Available since v3.1._\\n     */\\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\\n\\n    /**\\n     * @dev Emitted when `account` is granted `role`.\\n     *\\n     * `sender` is the account that originated the contract call, an admin role\\n     * bearer except when using {AccessControl-_setupRole}.\\n     */\\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Emitted when `account` is revoked `role`.\\n     *\\n     * `sender` is the account that originated the contract call:\\n     *   - if using `revokeRole`, it is the admin role bearer\\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\\n     */\\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\\n\\n    /**\\n     * @dev Returns `true` if `account` has been granted `role`.\\n     */\\n    function hasRole(bytes32 role, address account) external view returns (bool);\\n\\n    /**\\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\\n     * {revokeRole}.\\n     *\\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\\n     */\\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\\n\\n    /**\\n     * @dev Grants `role` to `account`.\\n     *\\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function grantRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from `account`.\\n     *\\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must have ``role``'s admin role.\\n     */\\n    function revokeRole(bytes32 role, address account) external;\\n\\n    /**\\n     * @dev Revokes `role` from the calling account.\\n     *\\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\\n     * purpose is to provide a mechanism for accounts to lose their privileges\\n     * if they are compromised (such as when a trusted device is misplaced).\\n     *\\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\\n     * event.\\n     *\\n     * Requirements:\\n     *\\n     * - the caller must be `account`.\\n     */\\n    function renounceRole(bytes32 role, address account) external;\\n}\\n\",\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC20.sol\\\";\\nimport \\\"./extensions/IERC20Metadata.sol\\\";\\nimport \\\"../../utils/Context.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC20} interface.\\n *\\n * This implementation is agnostic to the way tokens are created. This means\\n * that a supply mechanism has to be added in a derived contract using {_mint}.\\n * For a generic mechanism see {ERC20PresetMinterPauser}.\\n *\\n * TIP: For a detailed writeup see our guide\\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\\n * to implement supply mechanisms].\\n *\\n * The default value of {decimals} is 18. To change this, you should override\\n * this function so it returns a different value.\\n *\\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\\n * instead returning `false` on failure. This behavior is nonetheless\\n * conventional and does not conflict with the expectations of ERC20\\n * applications.\\n *\\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\\n * This allows applications to reconstruct the allowance for all accounts just\\n * by listening to said events. Other implementations of the EIP may not emit\\n * these events, as it isn't required by the specification.\\n *\\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\\n * functions have been added to mitigate the well-known issues around setting\\n * allowances. See {IERC20-approve}.\\n */\\ncontract ERC20 is Context, IERC20, IERC20Metadata {\\n    mapping(address => uint256) private _balances;\\n\\n    mapping(address => mapping(address => uint256)) private _allowances;\\n\\n    uint256 private _totalSupply;\\n\\n    string private _name;\\n    string private _symbol;\\n\\n    /**\\n     * @dev Sets the values for {name} and {symbol}.\\n     *\\n     * All two of these values are immutable: they can only be set once during\\n     * construction.\\n     */\\n    constructor(string memory name_, string memory symbol_) {\\n        _name = name_;\\n        _symbol = symbol_;\\n    }\\n\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() public view virtual override returns (string memory) {\\n        return _name;\\n    }\\n\\n    /**\\n     * @dev Returns the symbol of the token, usually a shorter version of the\\n     * name.\\n     */\\n    function symbol() public view virtual override returns (string memory) {\\n        return _symbol;\\n    }\\n\\n    /**\\n     * @dev Returns the number of decimals used to get its user representation.\\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n     *\\n     * Tokens usually opt for a value of 18, imitating the relationship between\\n     * Ether and Wei. This is the default value returned by this function, unless\\n     * it's overridden.\\n     *\\n     * NOTE: This information is only used for _display_ purposes: it in\\n     * no way affects any of the arithmetic of the contract, including\\n     * {IERC20-balanceOf} and {IERC20-transfer}.\\n     */\\n    function decimals() public view virtual override returns (uint8) {\\n        return 18;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-totalSupply}.\\n     */\\n    function totalSupply() public view virtual override returns (uint256) {\\n        return _totalSupply;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-balanceOf}.\\n     */\\n    function balanceOf(address account) public view virtual override returns (uint256) {\\n        return _balances[account];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transfer}.\\n     *\\n     * Requirements:\\n     *\\n     * - `to` cannot be the zero address.\\n     * - the caller must have a balance of at least `amount`.\\n     */\\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _transfer(owner, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-allowance}.\\n     */\\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\\n        return _allowances[owner][spender];\\n    }\\n\\n    /**\\n     * @dev See {IERC20-approve}.\\n     *\\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev See {IERC20-transferFrom}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance. This is not\\n     * required by the EIP. See the note at the beginning of {ERC20}.\\n     *\\n     * NOTE: Does not update the allowance if the current allowance\\n     * is the maximum `uint256`.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` and `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     * - the caller must have allowance for ``from``'s tokens of at least\\n     * `amount`.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {\\n        address spender = _msgSender();\\n        _spendAllowance(from, spender, amount);\\n        _transfer(from, to, amount);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     */\\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\\n     *\\n     * This is an alternative to {approve} that can be used as a mitigation for\\n     * problems described in {IERC20-approve}.\\n     *\\n     * Emits an {Approval} event indicating the updated allowance.\\n     *\\n     * Requirements:\\n     *\\n     * - `spender` cannot be the zero address.\\n     * - `spender` must have allowance for the caller of at least\\n     * `subtractedValue`.\\n     */\\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\\n        address owner = _msgSender();\\n        uint256 currentAllowance = allowance(owner, spender);\\n        require(currentAllowance >= subtractedValue, \\\"ERC20: decreased allowance below zero\\\");\\n        unchecked {\\n            _approve(owner, spender, currentAllowance - subtractedValue);\\n        }\\n\\n        return true;\\n    }\\n\\n    /**\\n     * @dev Moves `amount` of tokens from `from` to `to`.\\n     *\\n     * This internal function is equivalent to {transfer}, and can be used to\\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\\n     *\\n     * Emits a {Transfer} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `from` cannot be the zero address.\\n     * - `to` cannot be the zero address.\\n     * - `from` must have a balance of at least `amount`.\\n     */\\n    function _transfer(address from, address to, uint256 amount) internal virtual {\\n        require(from != address(0), \\\"ERC20: transfer from the zero address\\\");\\n        require(to != address(0), \\\"ERC20: transfer to the zero address\\\");\\n\\n        _beforeTokenTransfer(from, to, amount);\\n\\n        uint256 fromBalance = _balances[from];\\n        require(fromBalance >= amount, \\\"ERC20: transfer amount exceeds balance\\\");\\n        unchecked {\\n            _balances[from] = fromBalance - amount;\\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\\n            // decrementing then incrementing.\\n            _balances[to] += amount;\\n        }\\n\\n        emit Transfer(from, to, amount);\\n\\n        _afterTokenTransfer(from, to, amount);\\n    }\\n\\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\\n     * the total supply.\\n     *\\n     * Emits a {Transfer} event with `from` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     */\\n    function _mint(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: mint to the zero address\\\");\\n\\n        _beforeTokenTransfer(address(0), account, amount);\\n\\n        _totalSupply += amount;\\n        unchecked {\\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\\n            _balances[account] += amount;\\n        }\\n        emit Transfer(address(0), account, amount);\\n\\n        _afterTokenTransfer(address(0), account, amount);\\n    }\\n\\n    /**\\n     * @dev Destroys `amount` tokens from `account`, reducing the\\n     * total supply.\\n     *\\n     * Emits a {Transfer} event with `to` set to the zero address.\\n     *\\n     * Requirements:\\n     *\\n     * - `account` cannot be the zero address.\\n     * - `account` must have at least `amount` tokens.\\n     */\\n    function _burn(address account, uint256 amount) internal virtual {\\n        require(account != address(0), \\\"ERC20: burn from the zero address\\\");\\n\\n        _beforeTokenTransfer(account, address(0), amount);\\n\\n        uint256 accountBalance = _balances[account];\\n        require(accountBalance >= amount, \\\"ERC20: burn amount exceeds balance\\\");\\n        unchecked {\\n            _balances[account] = accountBalance - amount;\\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\\n            _totalSupply -= amount;\\n        }\\n\\n        emit Transfer(account, address(0), amount);\\n\\n        _afterTokenTransfer(account, address(0), amount);\\n    }\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\\n     *\\n     * This internal function is equivalent to `approve`, and can be used to\\n     * e.g. set automatic allowances for certain subsystems, etc.\\n     *\\n     * Emits an {Approval} event.\\n     *\\n     * Requirements:\\n     *\\n     * - `owner` cannot be the zero address.\\n     * - `spender` cannot be the zero address.\\n     */\\n    function _approve(address owner, address spender, uint256 amount) internal virtual {\\n        require(owner != address(0), \\\"ERC20: approve from the zero address\\\");\\n        require(spender != address(0), \\\"ERC20: approve to the zero address\\\");\\n\\n        _allowances[owner][spender] = amount;\\n        emit Approval(owner, spender, amount);\\n    }\\n\\n    /**\\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\\n     *\\n     * Does not update the allowance amount in case of infinite allowance.\\n     * Revert if not enough allowance is available.\\n     *\\n     * Might emit an {Approval} event.\\n     */\\n    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\\n        uint256 currentAllowance = allowance(owner, spender);\\n        if (currentAllowance != type(uint256).max) {\\n            require(currentAllowance >= amount, \\\"ERC20: insufficient allowance\\\");\\n            unchecked {\\n                _approve(owner, spender, currentAllowance - amount);\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Hook that is called before any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * will be transferred to `to`.\\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n\\n    /**\\n     * @dev Hook that is called after any transfer of tokens. This includes\\n     * minting and burning.\\n     *\\n     * Calling conditions:\\n     *\\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\\n     * has been transferred to `to`.\\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\\n     * - `from` and `to` are never both zero.\\n     *\\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\\n     */\\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\\n}\\n\",\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC20 standard as defined in the EIP.\\n */\\ninterface IERC20 {\\n    /**\\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\\n     * another (`to`).\\n     *\\n     * Note that `value` may be zero.\\n     */\\n    event Transfer(address indexed from, address indexed to, uint256 value);\\n\\n    /**\\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\\n     * a call to {approve}. `value` is the new allowance.\\n     */\\n    event Approval(address indexed owner, address indexed spender, uint256 value);\\n\\n    /**\\n     * @dev Returns the amount of tokens in existence.\\n     */\\n    function totalSupply() external view returns (uint256);\\n\\n    /**\\n     * @dev Returns the amount of tokens owned by `account`.\\n     */\\n    function balanceOf(address account) external view returns (uint256);\\n\\n    /**\\n     * @dev Moves `amount` tokens from the caller's account to `to`.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transfer(address to, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Returns the remaining number of tokens that `spender` will be\\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\\n     * zero by default.\\n     *\\n     * This value changes when {approve} or {transferFrom} are called.\\n     */\\n    function allowance(address owner, address spender) external view returns (uint256);\\n\\n    /**\\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\\n     * that someone may use both the old and the new allowance by unfortunate\\n     * transaction ordering. One possible solution to mitigate this race\\n     * condition is to first reduce the spender's allowance to 0 and set the\\n     * desired value afterwards:\\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n     *\\n     * Emits an {Approval} event.\\n     */\\n    function approve(address spender, uint256 amount) external returns (bool);\\n\\n    /**\\n     * @dev Moves `amount` tokens from `from` to `to` using the\\n     * allowance mechanism. `amount` is then deducted from the caller's\\n     * allowance.\\n     *\\n     * Returns a boolean value indicating whether the operation succeeded.\\n     *\\n     * Emits a {Transfer} event.\\n     */\\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\\n}\\n\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../IERC20.sol\\\";\\n\\n/**\\n * @dev Interface for the optional metadata functions from the ERC20 standard.\\n *\\n * _Available since v4.1._\\n */\\ninterface IERC20Metadata is IERC20 {\\n    /**\\n     * @dev Returns the name of the token.\\n     */\\n    function name() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the symbol of the token.\\n     */\\n    function symbol() external view returns (string memory);\\n\\n    /**\\n     * @dev Returns the decimals places of the token.\\n     */\\n    function decimals() external view returns (uint8);\\n}\\n\",\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/Strings.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./math/Math.sol\\\";\\nimport \\\"./math/SignedMath.sol\\\";\\n\\n/**\\n * @dev String operations.\\n */\\nlibrary Strings {\\n    bytes16 private constant _SYMBOLS = \\\"0123456789abcdef\\\";\\n    uint8 private constant _ADDRESS_LENGTH = 20;\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            uint256 length = Math.log10(value) + 1;\\n            string memory buffer = new string(length);\\n            uint256 ptr;\\n            /// @solidity memory-safe-assembly\\n            assembly {\\n                ptr := add(buffer, add(32, length))\\n            }\\n            while (true) {\\n                ptr--;\\n                /// @solidity memory-safe-assembly\\n                assembly {\\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\\n                }\\n                value /= 10;\\n                if (value == 0) break;\\n            }\\n            return buffer;\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\\n     */\\n    function toString(int256 value) internal pure returns (string memory) {\\n        return string(abi.encodePacked(value < 0 ? \\\"-\\\" : \\\"\\\", toString(SignedMath.abs(value))));\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(uint256 value) internal pure returns (string memory) {\\n        unchecked {\\n            return toHexString(value, Math.log256(value) + 1);\\n        }\\n    }\\n\\n    /**\\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\\n     */\\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\\n        bytes memory buffer = new bytes(2 * length + 2);\\n        buffer[0] = \\\"0\\\";\\n        buffer[1] = \\\"x\\\";\\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\\n            buffer[i] = _SYMBOLS[value & 0xf];\\n            value >>= 4;\\n        }\\n        require(value == 0, \\\"Strings: hex length insufficient\\\");\\n        return string(buffer);\\n    }\\n\\n    /**\\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\\n     */\\n    function toHexString(address addr) internal pure returns (string memory) {\\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\\n    }\\n\\n    /**\\n     * @dev Returns true if the two strings are equal.\\n     */\\n    function equal(string memory a, string memory b) internal pure returns (bool) {\\n        return keccak256(bytes(a)) == keccak256(bytes(b));\\n    }\\n}\\n\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./IERC165.sol\\\";\\n\\n/**\\n * @dev Implementation of the {IERC165} interface.\\n *\\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\\n * for the additional interface id that will be supported. For example:\\n *\\n * ```solidity\\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\\n * }\\n * ```\\n *\\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\\n */\\nabstract contract ERC165 is IERC165 {\\n    /**\\n     * @dev See {IERC165-supportsInterface}.\\n     */\\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\\n        return interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Interface of the ERC165 standard, as defined in the\\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\\n *\\n * Implementers can declare support of contract interfaces, which can then be\\n * queried by others ({ERC165Checker}).\\n *\\n * For an implementation, see {ERC165}.\\n */\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard math utilities missing in the Solidity language.\\n */\\nlibrary Math {\\n    enum Rounding {\\n        Down, // Toward negative infinity\\n        Up, // Toward infinity\\n        Zero // Toward zero\\n    }\\n\\n    /**\\n     * @dev Returns the largest of two numbers.\\n     */\\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two numbers.\\n     */\\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two numbers. The result is rounded towards\\n     * zero.\\n     */\\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b) / 2 can overflow.\\n        return (a & b) + (a ^ b) / 2;\\n    }\\n\\n    /**\\n     * @dev Returns the ceiling of the division of two numbers.\\n     *\\n     * This differs from standard division with `/` in that it rounds up instead\\n     * of rounding down.\\n     */\\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\\n        // (a + b - 1) / b can overflow on addition, so we distribute.\\n        return a == 0 ? 0 : (a - 1) / b + 1;\\n    }\\n\\n    /**\\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\\n     * with further edits by Uniswap Labs also under MIT license.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\\n        unchecked {\\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\\n            // variables such that product = prod1 * 2^256 + prod0.\\n            uint256 prod0; // Least significant 256 bits of the product\\n            uint256 prod1; // Most significant 256 bits of the product\\n            assembly {\\n                let mm := mulmod(x, y, not(0))\\n                prod0 := mul(x, y)\\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\\n            }\\n\\n            // Handle non-overflow cases, 256 by 256 division.\\n            if (prod1 == 0) {\\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\\n                // The surrounding unchecked block does not change this fact.\\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\\n                return prod0 / denominator;\\n            }\\n\\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\\n            require(denominator > prod1, \\\"Math: mulDiv overflow\\\");\\n\\n            ///////////////////////////////////////////////\\n            // 512 by 256 division.\\n            ///////////////////////////////////////////////\\n\\n            // Make division exact by subtracting the remainder from [prod1 prod0].\\n            uint256 remainder;\\n            assembly {\\n                // Compute remainder using mulmod.\\n                remainder := mulmod(x, y, denominator)\\n\\n                // Subtract 256 bit number from 512 bit number.\\n                prod1 := sub(prod1, gt(remainder, prod0))\\n                prod0 := sub(prod0, remainder)\\n            }\\n\\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\\n            // See https://cs.stackexchange.com/q/138556/92363.\\n\\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\\n            uint256 twos = denominator & (~denominator + 1);\\n            assembly {\\n                // Divide denominator by twos.\\n                denominator := div(denominator, twos)\\n\\n                // Divide [prod1 prod0] by twos.\\n                prod0 := div(prod0, twos)\\n\\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\\n                twos := add(div(sub(0, twos), twos), 1)\\n            }\\n\\n            // Shift in bits from prod1 into prod0.\\n            prod0 |= prod1 * twos;\\n\\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\\n            // four bits. That is, denominator * inv = 1 mod 2^4.\\n            uint256 inverse = (3 * denominator) ^ 2;\\n\\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\\n            // in modular arithmetic, doubling the correct bits in each step.\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\\n\\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\\n            // is no longer required.\\n            result = prod0 * inverse;\\n            return result;\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\\n     */\\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\\n        uint256 result = mulDiv(x, y, denominator);\\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\\n            result += 1;\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\\n     *\\n     * Inspired by Henry S. Warren, Jr.'s \\\"Hacker's Delight\\\" (Chapter 11).\\n     */\\n    function sqrt(uint256 a) internal pure returns (uint256) {\\n        if (a == 0) {\\n            return 0;\\n        }\\n\\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\\n        //\\n        // We know that the \\\"msb\\\" (most significant bit) of our target number `a` is a power of 2 such that we have\\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\\n        //\\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\\n        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\\n        //\\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\\n        uint256 result = 1 << (log2(a) >> 1);\\n\\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\\n        // into the expected uint128 result.\\n        unchecked {\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            result = (result + a / result) >> 1;\\n            return min(result, a / result);\\n        }\\n    }\\n\\n    /**\\n     * @notice Calculates sqrt(a), following the selected rounding direction.\\n     */\\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = sqrt(a);\\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 128;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 64;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 32;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 16;\\n            }\\n            if (value >> 8 > 0) {\\n                value >>= 8;\\n                result += 8;\\n            }\\n            if (value >> 4 > 0) {\\n                value >>= 4;\\n                result += 4;\\n            }\\n            if (value >> 2 > 0) {\\n                value >>= 2;\\n                result += 2;\\n            }\\n            if (value >> 1 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log2(value);\\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >= 10 ** 64) {\\n                value /= 10 ** 64;\\n                result += 64;\\n            }\\n            if (value >= 10 ** 32) {\\n                value /= 10 ** 32;\\n                result += 32;\\n            }\\n            if (value >= 10 ** 16) {\\n                value /= 10 ** 16;\\n                result += 16;\\n            }\\n            if (value >= 10 ** 8) {\\n                value /= 10 ** 8;\\n                result += 8;\\n            }\\n            if (value >= 10 ** 4) {\\n                value /= 10 ** 4;\\n                result += 4;\\n            }\\n            if (value >= 10 ** 2) {\\n                value /= 10 ** 2;\\n                result += 2;\\n            }\\n            if (value >= 10 ** 1) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log10(value);\\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\\n        }\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, rounded down, of a positive value.\\n     * Returns 0 if given 0.\\n     *\\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\\n     */\\n    function log256(uint256 value) internal pure returns (uint256) {\\n        uint256 result = 0;\\n        unchecked {\\n            if (value >> 128 > 0) {\\n                value >>= 128;\\n                result += 16;\\n            }\\n            if (value >> 64 > 0) {\\n                value >>= 64;\\n                result += 8;\\n            }\\n            if (value >> 32 > 0) {\\n                value >>= 32;\\n                result += 4;\\n            }\\n            if (value >> 16 > 0) {\\n                value >>= 16;\\n                result += 2;\\n            }\\n            if (value >> 8 > 0) {\\n                result += 1;\\n            }\\n        }\\n        return result;\\n    }\\n\\n    /**\\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\\n     * Returns 0 if given 0.\\n     */\\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\\n        unchecked {\\n            uint256 result = log256(value);\\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Standard signed math utilities missing in the Solidity language.\\n */\\nlibrary SignedMath {\\n    /**\\n     * @dev Returns the largest of two signed numbers.\\n     */\\n    function max(int256 a, int256 b) internal pure returns (int256) {\\n        return a > b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the smallest of two signed numbers.\\n     */\\n    function min(int256 a, int256 b) internal pure returns (int256) {\\n        return a < b ? a : b;\\n    }\\n\\n    /**\\n     * @dev Returns the average of two signed numbers without overflow.\\n     * The result is rounded towards zero.\\n     */\\n    function average(int256 a, int256 b) internal pure returns (int256) {\\n        // Formula from the book \\\"Hacker's Delight\\\"\\n        int256 x = (a & b) + ((a ^ b) >> 1);\\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\\n    }\\n\\n    /**\\n     * @dev Returns the absolute unsigned value of a signed value.\\n     */\\n    function abs(int256 n) internal pure returns (uint256) {\\n        unchecked {\\n            // must be unchecked in order to support `n = type(int256).min`\\n            return uint256(n >= 0 ? n : -n);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity 0.8.25;\\nimport \\\"@openzeppelin/contracts/access/AccessControl.sol\\\";\\nimport \\\"./IAccessControlManagerV8.sol\\\";\\n\\n/**\\n * @title AccessControlManager\\n * @author Venus\\n * @dev This contract is a wrapper of OpenZeppelin AccessControl extending it in a way to standartize access control within Venus Smart Contract Ecosystem.\\n * @notice Access control plays a crucial role in the Venus governance model. It is used to restrict functions so that they can only be called from one\\n * account or list of accounts (EOA or Contract Accounts).\\n *\\n * The implementation of `AccessControlManager`(https://github.com/VenusProtocol/governance-contracts/blob/main/contracts/Governance/AccessControlManager.sol)\\n * inherits the [Open Zeppelin AccessControl](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/AccessControl.sol)\\n * contract as a base for role management logic. There are two role types: admin and granular permissions.\\n * \\n * ## Granular Roles\\n * \\n * Granular roles are built by hashing the contract address and its function signature. For example, given contract `Foo` with function `Foo.bar()` which\\n * is guarded by ACM, calling `giveRolePermission` for account B do the following:\\n * \\n * 1. Compute `keccak256(contractFooAddress,functionSignatureBar)`\\n * 1. Add the computed role to the roles of account B\\n * 1. Account B now can call `ContractFoo.bar()`\\n * \\n * ## Admin Roles\\n * \\n * Admin roles allow for an address to call a function signature on any contract guarded by the `AccessControlManager`. This is particularly useful for\\n * contracts created by factories.\\n * \\n * For Admin roles a null address is hashed in place of the contract address (`keccak256(0x0000000000000000000000000000000000000000,functionSignatureBar)`.\\n * \\n * In the previous example, giving account B the admin role, account B will have permissions to call the `bar()` function on any contract that is guarded by\\n * ACM, not only contract A.\\n * \\n * ## Protocol Integration\\n * \\n * All restricted functions in Venus Protocol use a hook to ACM in order to check if the caller has the right permission to call the guarded function.\\n * `AccessControlledV5` and `AccessControlledV8` abstract contract makes this integration easier. They call ACM's external method\\n * `isAllowedToCall(address caller, string functionSig)`. Here is an example of how `setCollateralFactor` function in `Comptroller` is integrated with ACM:\\n\\n```\\n    contract Comptroller is [...] AccessControlledV8 {\\n        [...]\\n        function setCollateralFactor(VToken vToken, uint256 newCollateralFactorMantissa, uint256 newLiquidationThresholdMantissa) external {\\n            _checkAccessAllowed(\\\"setCollateralFactor(address,uint256,uint256)\\\");\\n            [...]\\n        }\\n    }\\n```\\n */\\ncontract AccessControlManager is AccessControl, IAccessControlManagerV8 {\\n    /// @notice Emitted when an account is given a permission to a certain contract function\\n    /// @dev If contract address is 0x000..0 this means that the account is a default admin of this function and\\n    /// can call any contract function with this signature\\n    event PermissionGranted(address account, address contractAddress, string functionSig);\\n\\n    /// @notice Emitted when an account is revoked a permission to a certain contract function\\n    event PermissionRevoked(address account, address contractAddress, string functionSig);\\n\\n    constructor() {\\n        // Grant the contract deployer the default admin role: it will be able\\n        // to grant and revoke any roles\\n        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\\n    }\\n\\n    /**\\n     * @notice Gives a function call permission to one single account\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * @param contractAddress address of contract for which call permissions will be granted\\n     * @dev if contractAddress is zero address, the account can access the specified function\\n     *      on **any** contract managed by this ACL\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @param accountToPermit account that will be given access to the contract function\\n     * @custom:event Emits a {RoleGranted} and {PermissionGranted} events.\\n     */\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        grantRole(role, accountToPermit);\\n        emit PermissionGranted(accountToPermit, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Revokes an account's permission to a particular function call\\n     * @dev this function can be called only from Role Admin or DEFAULT_ADMIN_ROLE\\n     * \\t\\tMay emit a {RoleRevoked} event.\\n     * @param contractAddress address of contract for which call permissions will be revoked\\n     * @param functionSig signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @custom:event Emits {RoleRevoked} and {PermissionRevoked} events.\\n     */\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) public {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        revokeRole(role, accountToRevoke);\\n        emit PermissionRevoked(accountToRevoke, contractAddress, functionSig);\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev Since restricted contracts using this function as a permission hook, we can get contracts address with msg.sender\\n     * @param account for which call permissions will be checked\\n     * @param functionSig restricted function signature e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     *\\n     */\\n    function isAllowedToCall(address account, string calldata functionSig) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(msg.sender, functionSig));\\n\\n        if (hasRole(role, account)) {\\n            return true;\\n        } else {\\n            role = keccak256(abi.encodePacked(address(0), functionSig));\\n            return hasRole(role, account);\\n        }\\n    }\\n\\n    /**\\n     * @notice Verifies if the given account can call a contract's guarded function\\n     * @dev This function is used as a view function to check permissions rather than contract hook for access restriction check.\\n     * @param account for which call permissions will be checked against\\n     * @param contractAddress address of the restricted contract\\n     * @param functionSig signature of the restricted function e.g. \\\"functionName(uint256,bool)\\\"\\n     * @return false if the user account cannot call the particular contract function\\n     */\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) public view returns (bool) {\\n        bytes32 role = keccak256(abi.encodePacked(contractAddress, functionSig));\\n        return hasRole(role, account);\\n    }\\n}\\n\",\"keccak256\":\"0x9cf1fe49aecbf49434d4a04c3bd25c1a103356c999d335774216da17a3a152a8\",\"license\":\"BSD-3-Clause\"},\"@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol\":{\"content\":\"// SPDX-License-Identifier: BSD-3-Clause\\npragma solidity ^0.8.25;\\n\\nimport \\\"@openzeppelin/contracts/access/IAccessControl.sol\\\";\\n\\n/**\\n * @title IAccessControlManagerV8\\n * @author Venus\\n * @notice Interface implemented by the `AccessControlManagerV8` contract.\\n */\\ninterface IAccessControlManagerV8 is IAccessControl {\\n    function giveCallPermission(address contractAddress, string calldata functionSig, address accountToPermit) external;\\n\\n    function revokeCallPermission(\\n        address contractAddress,\\n        string calldata functionSig,\\n        address accountToRevoke\\n    ) external;\\n\\n    function isAllowedToCall(address account, string calldata functionSig) external view returns (bool);\\n\\n    function hasPermission(\\n        address account,\\n        address contractAddress,\\n        string calldata functionSig\\n    ) external view returns (bool);\\n}\\n\",\"keccak256\":\"0xaa29b098440d0b3a131c5ecdf25ce548790c1b5ac7bf9b5c0264b6af6f7a1e0b\",\"license\":\"BSD-3-Clause\"},\"contracts/test/MockToken.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport { ERC20 } from \\\"@openzeppelin/contracts/token/ERC20/ERC20.sol\\\";\\nimport { LZEndpointMock } from \\\"@layerzerolabs/solidity-examples/contracts/lzApp/mocks/LZEndpointMock.sol\\\";\\nimport { AccessControlManager } from \\\"@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol\\\";\\n\\ncontract MockToken is ERC20 {\\n    uint8 private immutable _decimals;\\n\\n    constructor(string memory name_, string memory symbol_, uint8 decimals_) ERC20(name_, symbol_) {\\n        _decimals = decimals_;\\n    }\\n\\n    function faucet(uint256 amount) external {\\n        _mint(msg.sender, amount);\\n    }\\n\\n    function decimals() public view virtual override returns (uint8) {\\n        return _decimals;\\n    }\\n}\\n\",\"keccak256\":\"0xa6558160aed99ada2397ad05ba34a848acb6cae0fce19a42e5cb6018ed98878d\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5612,"contract":"contracts/test/MockToken.sol:MockToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":5618,"contract":"contracts/test/MockToken.sol:MockToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":5620,"contract":"contracts/test/MockToken.sol:MockToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":5622,"contract":"contracts/test/MockToken.sol:MockToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":5624,"contract":"contracts/test/MockToken.sol:MockToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":11891,"contract":"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.","kind":"dev","methods":{"proxiableUUID()":{"details":"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_12039":{"entryPoint":null,"id":12039,"parameterSlots":2,"returnSlots":0},"@_setImplementation_12108":{"entryPoint":278,"id":12108,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_12153":{"entryPoint":124,"id":12153,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_12123":{"entryPoint":168,"id":12123,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12969":{"entryPoint":232,"id":12969,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_13004":{"entryPoint":373,"id":13004,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1},"@isContract_12759":{"entryPoint":null,"id":12759,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_13035":{"entryPoint":534,"id":13035,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":814,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":631,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":879,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":923,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1249,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1073,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1166,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1283,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1345,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1150,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1233,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":708,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":736,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1032,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":591,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":778,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":664,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1051,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1010,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":642,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":608,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8491:65","nodeType":"YulBlock","src":"0:8491:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"934:28:65","nodeType":"YulBlock","src":"934:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:65","nodeType":"YulLiteral","src":"951:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:65","nodeType":"YulLiteral","src":"954:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:65","nodeType":"YulIdentifier","src":"944:6:65"},"nativeSrc":"944:12:65","nodeType":"YulFunctionCall","src":"944:12:65"},"nativeSrc":"944:12:65","nodeType":"YulExpressionStatement","src":"944:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:65","nodeType":"YulFunctionDefinition","src":"845:117:65"},{"body":{"nativeSrc":"1057:28:65","nodeType":"YulBlock","src":"1057:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:65","nodeType":"YulLiteral","src":"1074:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:65","nodeType":"YulLiteral","src":"1077:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:65","nodeType":"YulIdentifier","src":"1067:6:65"},"nativeSrc":"1067:12:65","nodeType":"YulFunctionCall","src":"1067:12:65"},"nativeSrc":"1067:12:65","nodeType":"YulExpressionStatement","src":"1067:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:65","nodeType":"YulFunctionDefinition","src":"968:117:65"},{"body":{"nativeSrc":"1139:54:65","nodeType":"YulBlock","src":"1139:54:65","statements":[{"nativeSrc":"1149:38:65","nodeType":"YulAssignment","src":"1149:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:65","nodeType":"YulIdentifier","src":"1167:5:65"},{"kind":"number","nativeSrc":"1174:2:65","nodeType":"YulLiteral","src":"1174:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:65","nodeType":"YulIdentifier","src":"1163:3:65"},"nativeSrc":"1163:14:65","nodeType":"YulFunctionCall","src":"1163:14:65"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:65","nodeType":"YulIdentifier","src":"1179:3:65"},"nativeSrc":"1179:7:65","nodeType":"YulFunctionCall","src":"1179:7:65"}],"functionName":{"name":"and","nativeSrc":"1159:3:65","nodeType":"YulIdentifier","src":"1159:3:65"},"nativeSrc":"1159:28:65","nodeType":"YulFunctionCall","src":"1159:28:65"},"variableNames":[{"name":"result","nativeSrc":"1149:6:65","nodeType":"YulIdentifier","src":"1149:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:65","nodeType":"YulTypedName","src":"1122:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:65","nodeType":"YulTypedName","src":"1132:6:65","type":""}],"src":"1091:102:65"},{"body":{"nativeSrc":"1227:152:65","nodeType":"YulBlock","src":"1227:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:65","nodeType":"YulLiteral","src":"1244:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:65","nodeType":"YulLiteral","src":"1247:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:65","nodeType":"YulIdentifier","src":"1237:6:65"},"nativeSrc":"1237:88:65","nodeType":"YulFunctionCall","src":"1237:88:65"},"nativeSrc":"1237:88:65","nodeType":"YulExpressionStatement","src":"1237:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:65","nodeType":"YulLiteral","src":"1341:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:65","nodeType":"YulLiteral","src":"1344:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:65","nodeType":"YulIdentifier","src":"1334:6:65"},"nativeSrc":"1334:15:65","nodeType":"YulFunctionCall","src":"1334:15:65"},"nativeSrc":"1334:15:65","nodeType":"YulExpressionStatement","src":"1334:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:65","nodeType":"YulLiteral","src":"1365:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:65","nodeType":"YulLiteral","src":"1368:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:65","nodeType":"YulIdentifier","src":"1358:6:65"},"nativeSrc":"1358:15:65","nodeType":"YulFunctionCall","src":"1358:15:65"},"nativeSrc":"1358:15:65","nodeType":"YulExpressionStatement","src":"1358:15:65"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:65","nodeType":"YulFunctionDefinition","src":"1199:180:65"},{"body":{"nativeSrc":"1428:238:65","nodeType":"YulBlock","src":"1428:238:65","statements":[{"nativeSrc":"1438:58:65","nodeType":"YulVariableDeclaration","src":"1438:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:65","nodeType":"YulIdentifier","src":"1460:6:65"},{"arguments":[{"name":"size","nativeSrc":"1490:4:65","nodeType":"YulIdentifier","src":"1490:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:65","nodeType":"YulIdentifier","src":"1468:21:65"},"nativeSrc":"1468:27:65","nodeType":"YulFunctionCall","src":"1468:27:65"}],"functionName":{"name":"add","nativeSrc":"1456:3:65","nodeType":"YulIdentifier","src":"1456:3:65"},"nativeSrc":"1456:40:65","nodeType":"YulFunctionCall","src":"1456:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:65","nodeType":"YulTypedName","src":"1442:10:65","type":""}]},{"body":{"nativeSrc":"1607:22:65","nodeType":"YulBlock","src":"1607:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:65","nodeType":"YulIdentifier","src":"1609:16:65"},"nativeSrc":"1609:18:65","nodeType":"YulFunctionCall","src":"1609:18:65"},"nativeSrc":"1609:18:65","nodeType":"YulExpressionStatement","src":"1609:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:65","nodeType":"YulIdentifier","src":"1550:10:65"},{"kind":"number","nativeSrc":"1562:18:65","nodeType":"YulLiteral","src":"1562:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:65","nodeType":"YulIdentifier","src":"1547:2:65"},"nativeSrc":"1547:34:65","nodeType":"YulFunctionCall","src":"1547:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:65","nodeType":"YulIdentifier","src":"1586:10:65"},{"name":"memPtr","nativeSrc":"1598:6:65","nodeType":"YulIdentifier","src":"1598:6:65"}],"functionName":{"name":"lt","nativeSrc":"1583:2:65","nodeType":"YulIdentifier","src":"1583:2:65"},"nativeSrc":"1583:22:65","nodeType":"YulFunctionCall","src":"1583:22:65"}],"functionName":{"name":"or","nativeSrc":"1544:2:65","nodeType":"YulIdentifier","src":"1544:2:65"},"nativeSrc":"1544:62:65","nodeType":"YulFunctionCall","src":"1544:62:65"},"nativeSrc":"1541:88:65","nodeType":"YulIf","src":"1541:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:65","nodeType":"YulLiteral","src":"1645:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:65","nodeType":"YulIdentifier","src":"1649:10:65"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:65","nodeType":"YulIdentifier","src":"1638:6:65"},"nativeSrc":"1638:22:65","nodeType":"YulFunctionCall","src":"1638:22:65"},"nativeSrc":"1638:22:65","nodeType":"YulExpressionStatement","src":"1638:22:65"}]},"name":"finalize_allocation","nativeSrc":"1385:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:65","nodeType":"YulTypedName","src":"1414:6:65","type":""},{"name":"size","nativeSrc":"1422:4:65","nodeType":"YulTypedName","src":"1422:4:65","type":""}],"src":"1385:281:65"},{"body":{"nativeSrc":"1713:88:65","nodeType":"YulBlock","src":"1713:88:65","statements":[{"nativeSrc":"1723:30:65","nodeType":"YulAssignment","src":"1723:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:65","nodeType":"YulIdentifier","src":"1733:18:65"},"nativeSrc":"1733:20:65","nodeType":"YulFunctionCall","src":"1733:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:65","nodeType":"YulIdentifier","src":"1723:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:65","nodeType":"YulIdentifier","src":"1782:6:65"},{"name":"size","nativeSrc":"1790:4:65","nodeType":"YulIdentifier","src":"1790:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:65","nodeType":"YulIdentifier","src":"1762:19:65"},"nativeSrc":"1762:33:65","nodeType":"YulFunctionCall","src":"1762:33:65"},"nativeSrc":"1762:33:65","nodeType":"YulExpressionStatement","src":"1762:33:65"}]},"name":"allocate_memory","nativeSrc":"1672:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:65","nodeType":"YulTypedName","src":"1697:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:65","nodeType":"YulTypedName","src":"1706:6:65","type":""}],"src":"1672:129:65"},{"body":{"nativeSrc":"1873:241:65","nodeType":"YulBlock","src":"1873:241:65","statements":[{"body":{"nativeSrc":"1978:22:65","nodeType":"YulBlock","src":"1978:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:65","nodeType":"YulIdentifier","src":"1980:16:65"},"nativeSrc":"1980:18:65","nodeType":"YulFunctionCall","src":"1980:18:65"},"nativeSrc":"1980:18:65","nodeType":"YulExpressionStatement","src":"1980:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:65","nodeType":"YulIdentifier","src":"1950:6:65"},{"kind":"number","nativeSrc":"1958:18:65","nodeType":"YulLiteral","src":"1958:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:65","nodeType":"YulIdentifier","src":"1947:2:65"},"nativeSrc":"1947:30:65","nodeType":"YulFunctionCall","src":"1947:30:65"},"nativeSrc":"1944:56:65","nodeType":"YulIf","src":"1944:56:65"},{"nativeSrc":"2010:37:65","nodeType":"YulAssignment","src":"2010:37:65","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:65","nodeType":"YulIdentifier","src":"2040:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:65","nodeType":"YulIdentifier","src":"2018:21:65"},"nativeSrc":"2018:29:65","nodeType":"YulFunctionCall","src":"2018:29:65"},"variableNames":[{"name":"size","nativeSrc":"2010:4:65","nodeType":"YulIdentifier","src":"2010:4:65"}]},{"nativeSrc":"2084:23:65","nodeType":"YulAssignment","src":"2084:23:65","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:65","nodeType":"YulIdentifier","src":"2096:4:65"},{"kind":"number","nativeSrc":"2102:4:65","nodeType":"YulLiteral","src":"2102:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:65","nodeType":"YulIdentifier","src":"2092:3:65"},"nativeSrc":"2092:15:65","nodeType":"YulFunctionCall","src":"2092:15:65"},"variableNames":[{"name":"size","nativeSrc":"2084:4:65","nodeType":"YulIdentifier","src":"2084:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:65","nodeType":"YulTypedName","src":"1857:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:65","nodeType":"YulTypedName","src":"1868:4:65","type":""}],"src":"1807:307:65"},{"body":{"nativeSrc":"2182:186:65","nodeType":"YulBlock","src":"2182:186:65","statements":[{"nativeSrc":"2193:10:65","nodeType":"YulVariableDeclaration","src":"2193:10:65","value":{"kind":"number","nativeSrc":"2202:1:65","nodeType":"YulLiteral","src":"2202:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:65","nodeType":"YulTypedName","src":"2197:1:65","type":""}]},{"body":{"nativeSrc":"2262:63:65","nodeType":"YulBlock","src":"2262:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:65","nodeType":"YulIdentifier","src":"2287:3:65"},{"name":"i","nativeSrc":"2292:1:65","nodeType":"YulIdentifier","src":"2292:1:65"}],"functionName":{"name":"add","nativeSrc":"2283:3:65","nodeType":"YulIdentifier","src":"2283:3:65"},"nativeSrc":"2283:11:65","nodeType":"YulFunctionCall","src":"2283:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:65","nodeType":"YulIdentifier","src":"2306:3:65"},{"name":"i","nativeSrc":"2311:1:65","nodeType":"YulIdentifier","src":"2311:1:65"}],"functionName":{"name":"add","nativeSrc":"2302:3:65","nodeType":"YulIdentifier","src":"2302:3:65"},"nativeSrc":"2302:11:65","nodeType":"YulFunctionCall","src":"2302:11:65"}],"functionName":{"name":"mload","nativeSrc":"2296:5:65","nodeType":"YulIdentifier","src":"2296:5:65"},"nativeSrc":"2296:18:65","nodeType":"YulFunctionCall","src":"2296:18:65"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:65","nodeType":"YulIdentifier","src":"2276:6:65"},"nativeSrc":"2276:39:65","nodeType":"YulFunctionCall","src":"2276:39:65"},"nativeSrc":"2276:39:65","nodeType":"YulExpressionStatement","src":"2276:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:65","nodeType":"YulIdentifier","src":"2223:1:65"},{"name":"length","nativeSrc":"2226:6:65","nodeType":"YulIdentifier","src":"2226:6:65"}],"functionName":{"name":"lt","nativeSrc":"2220:2:65","nodeType":"YulIdentifier","src":"2220:2:65"},"nativeSrc":"2220:13:65","nodeType":"YulFunctionCall","src":"2220:13:65"},"nativeSrc":"2212:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:65","nodeType":"YulBlock","src":"2234:19:65","statements":[{"nativeSrc":"2236:15:65","nodeType":"YulAssignment","src":"2236:15:65","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:65","nodeType":"YulIdentifier","src":"2245:1:65"},{"kind":"number","nativeSrc":"2248:2:65","nodeType":"YulLiteral","src":"2248:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:65","nodeType":"YulIdentifier","src":"2241:3:65"},"nativeSrc":"2241:10:65","nodeType":"YulFunctionCall","src":"2241:10:65"},"variableNames":[{"name":"i","nativeSrc":"2236:1:65","nodeType":"YulIdentifier","src":"2236:1:65"}]}]},"pre":{"nativeSrc":"2216:3:65","nodeType":"YulBlock","src":"2216:3:65","statements":[]},"src":"2212:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:65","nodeType":"YulIdentifier","src":"2345:3:65"},{"name":"length","nativeSrc":"2350:6:65","nodeType":"YulIdentifier","src":"2350:6:65"}],"functionName":{"name":"add","nativeSrc":"2341:3:65","nodeType":"YulIdentifier","src":"2341:3:65"},"nativeSrc":"2341:16:65","nodeType":"YulFunctionCall","src":"2341:16:65"},{"kind":"number","nativeSrc":"2359:1:65","nodeType":"YulLiteral","src":"2359:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:65","nodeType":"YulIdentifier","src":"2334:6:65"},"nativeSrc":"2334:27:65","nodeType":"YulFunctionCall","src":"2334:27:65"},"nativeSrc":"2334:27:65","nodeType":"YulExpressionStatement","src":"2334:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:65","nodeType":"YulTypedName","src":"2164:3:65","type":""},{"name":"dst","nativeSrc":"2169:3:65","nodeType":"YulTypedName","src":"2169:3:65","type":""},{"name":"length","nativeSrc":"2174:6:65","nodeType":"YulTypedName","src":"2174:6:65","type":""}],"src":"2120:248:65"},{"body":{"nativeSrc":"2468:338:65","nodeType":"YulBlock","src":"2468:338:65","statements":[{"nativeSrc":"2478:74:65","nodeType":"YulAssignment","src":"2478:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:65","nodeType":"YulIdentifier","src":"2544:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:65","nodeType":"YulIdentifier","src":"2503:40:65"},"nativeSrc":"2503:48:65","nodeType":"YulFunctionCall","src":"2503:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:65","nodeType":"YulIdentifier","src":"2487:15:65"},"nativeSrc":"2487:65:65","nodeType":"YulFunctionCall","src":"2487:65:65"},"variableNames":[{"name":"array","nativeSrc":"2478:5:65","nodeType":"YulIdentifier","src":"2478:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:65","nodeType":"YulIdentifier","src":"2568:5:65"},{"name":"length","nativeSrc":"2575:6:65","nodeType":"YulIdentifier","src":"2575:6:65"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:65","nodeType":"YulIdentifier","src":"2561:6:65"},"nativeSrc":"2561:21:65","nodeType":"YulFunctionCall","src":"2561:21:65"},"nativeSrc":"2561:21:65","nodeType":"YulExpressionStatement","src":"2561:21:65"},{"nativeSrc":"2591:27:65","nodeType":"YulVariableDeclaration","src":"2591:27:65","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:65","nodeType":"YulIdentifier","src":"2606:5:65"},{"kind":"number","nativeSrc":"2613:4:65","nodeType":"YulLiteral","src":"2613:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:65","nodeType":"YulIdentifier","src":"2602:3:65"},"nativeSrc":"2602:16:65","nodeType":"YulFunctionCall","src":"2602:16:65"},"variables":[{"name":"dst","nativeSrc":"2595:3:65","nodeType":"YulTypedName","src":"2595:3:65","type":""}]},{"body":{"nativeSrc":"2656:83:65","nodeType":"YulBlock","src":"2656:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:65","nodeType":"YulIdentifier","src":"2658:77:65"},"nativeSrc":"2658:79:65","nodeType":"YulFunctionCall","src":"2658:79:65"},"nativeSrc":"2658:79:65","nodeType":"YulExpressionStatement","src":"2658:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},{"name":"length","nativeSrc":"2642:6:65","nodeType":"YulIdentifier","src":"2642:6:65"}],"functionName":{"name":"add","nativeSrc":"2633:3:65","nodeType":"YulIdentifier","src":"2633:3:65"},"nativeSrc":"2633:16:65","nodeType":"YulFunctionCall","src":"2633:16:65"},{"name":"end","nativeSrc":"2651:3:65","nodeType":"YulIdentifier","src":"2651:3:65"}],"functionName":{"name":"gt","nativeSrc":"2630:2:65","nodeType":"YulIdentifier","src":"2630:2:65"},"nativeSrc":"2630:25:65","nodeType":"YulFunctionCall","src":"2630:25:65"},"nativeSrc":"2627:112:65","nodeType":"YulIf","src":"2627:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:65","nodeType":"YulIdentifier","src":"2783:3:65"},{"name":"dst","nativeSrc":"2788:3:65","nodeType":"YulIdentifier","src":"2788:3:65"},{"name":"length","nativeSrc":"2793:6:65","nodeType":"YulIdentifier","src":"2793:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:65","nodeType":"YulIdentifier","src":"2748:34:65"},"nativeSrc":"2748:52:65","nodeType":"YulFunctionCall","src":"2748:52:65"},"nativeSrc":"2748:52:65","nodeType":"YulExpressionStatement","src":"2748:52:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:65","nodeType":"YulTypedName","src":"2441:3:65","type":""},{"name":"length","nativeSrc":"2446:6:65","nodeType":"YulTypedName","src":"2446:6:65","type":""},{"name":"end","nativeSrc":"2454:3:65","nodeType":"YulTypedName","src":"2454:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:65","nodeType":"YulTypedName","src":"2462:5:65","type":""}],"src":"2374:432:65"},{"body":{"nativeSrc":"2897:281:65","nodeType":"YulBlock","src":"2897:281:65","statements":[{"body":{"nativeSrc":"2946:83:65","nodeType":"YulBlock","src":"2946:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:65","nodeType":"YulIdentifier","src":"2948:77:65"},"nativeSrc":"2948:79:65","nodeType":"YulFunctionCall","src":"2948:79:65"},"nativeSrc":"2948:79:65","nodeType":"YulExpressionStatement","src":"2948:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:65","nodeType":"YulIdentifier","src":"2925:6:65"},{"kind":"number","nativeSrc":"2933:4:65","nodeType":"YulLiteral","src":"2933:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:65","nodeType":"YulIdentifier","src":"2921:3:65"},"nativeSrc":"2921:17:65","nodeType":"YulFunctionCall","src":"2921:17:65"},{"name":"end","nativeSrc":"2940:3:65","nodeType":"YulIdentifier","src":"2940:3:65"}],"functionName":{"name":"slt","nativeSrc":"2917:3:65","nodeType":"YulIdentifier","src":"2917:3:65"},"nativeSrc":"2917:27:65","nodeType":"YulFunctionCall","src":"2917:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:65","nodeType":"YulIdentifier","src":"2910:6:65"},"nativeSrc":"2910:35:65","nodeType":"YulFunctionCall","src":"2910:35:65"},"nativeSrc":"2907:122:65","nodeType":"YulIf","src":"2907:122:65"},{"nativeSrc":"3038:27:65","nodeType":"YulVariableDeclaration","src":"3038:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:65","nodeType":"YulIdentifier","src":"3058:6:65"}],"functionName":{"name":"mload","nativeSrc":"3052:5:65","nodeType":"YulIdentifier","src":"3052:5:65"},"nativeSrc":"3052:13:65","nodeType":"YulFunctionCall","src":"3052:13:65"},"variables":[{"name":"length","nativeSrc":"3042:6:65","nodeType":"YulTypedName","src":"3042:6:65","type":""}]},{"nativeSrc":"3074:98:65","nodeType":"YulAssignment","src":"3074:98:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:65","nodeType":"YulIdentifier","src":"3145:6:65"},{"kind":"number","nativeSrc":"3153:4:65","nodeType":"YulLiteral","src":"3153:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:65","nodeType":"YulIdentifier","src":"3141:3:65"},"nativeSrc":"3141:17:65","nodeType":"YulFunctionCall","src":"3141:17:65"},{"name":"length","nativeSrc":"3160:6:65","nodeType":"YulIdentifier","src":"3160:6:65"},{"name":"end","nativeSrc":"3168:3:65","nodeType":"YulIdentifier","src":"3168:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:65","nodeType":"YulIdentifier","src":"3083:57:65"},"nativeSrc":"3083:89:65","nodeType":"YulFunctionCall","src":"3083:89:65"},"variableNames":[{"name":"array","nativeSrc":"3074:5:65","nodeType":"YulIdentifier","src":"3074:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:65","nodeType":"YulTypedName","src":"2875:6:65","type":""},{"name":"end","nativeSrc":"2883:3:65","nodeType":"YulTypedName","src":"2883:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:65","nodeType":"YulTypedName","src":"2891:5:65","type":""}],"src":"2825:353:65"},{"body":{"nativeSrc":"3287:575:65","nodeType":"YulBlock","src":"3287:575:65","statements":[{"body":{"nativeSrc":"3333:83:65","nodeType":"YulBlock","src":"3333:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3335:77:65","nodeType":"YulIdentifier","src":"3335:77:65"},"nativeSrc":"3335:79:65","nodeType":"YulFunctionCall","src":"3335:79:65"},"nativeSrc":"3335:79:65","nodeType":"YulExpressionStatement","src":"3335:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3308:7:65","nodeType":"YulIdentifier","src":"3308:7:65"},{"name":"headStart","nativeSrc":"3317:9:65","nodeType":"YulIdentifier","src":"3317:9:65"}],"functionName":{"name":"sub","nativeSrc":"3304:3:65","nodeType":"YulIdentifier","src":"3304:3:65"},"nativeSrc":"3304:23:65","nodeType":"YulFunctionCall","src":"3304:23:65"},{"kind":"number","nativeSrc":"3329:2:65","nodeType":"YulLiteral","src":"3329:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3300:3:65","nodeType":"YulIdentifier","src":"3300:3:65"},"nativeSrc":"3300:32:65","nodeType":"YulFunctionCall","src":"3300:32:65"},"nativeSrc":"3297:119:65","nodeType":"YulIf","src":"3297:119:65"},{"nativeSrc":"3426:128:65","nodeType":"YulBlock","src":"3426:128:65","statements":[{"nativeSrc":"3441:15:65","nodeType":"YulVariableDeclaration","src":"3441:15:65","value":{"kind":"number","nativeSrc":"3455:1:65","nodeType":"YulLiteral","src":"3455:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3445:6:65","nodeType":"YulTypedName","src":"3445:6:65","type":""}]},{"nativeSrc":"3470:74:65","nodeType":"YulAssignment","src":"3470:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3516:9:65","nodeType":"YulIdentifier","src":"3516:9:65"},{"name":"offset","nativeSrc":"3527:6:65","nodeType":"YulIdentifier","src":"3527:6:65"}],"functionName":{"name":"add","nativeSrc":"3512:3:65","nodeType":"YulIdentifier","src":"3512:3:65"},"nativeSrc":"3512:22:65","nodeType":"YulFunctionCall","src":"3512:22:65"},{"name":"dataEnd","nativeSrc":"3536:7:65","nodeType":"YulIdentifier","src":"3536:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3480:31:65","nodeType":"YulIdentifier","src":"3480:31:65"},"nativeSrc":"3480:64:65","nodeType":"YulFunctionCall","src":"3480:64:65"},"variableNames":[{"name":"value0","nativeSrc":"3470:6:65","nodeType":"YulIdentifier","src":"3470:6:65"}]}]},{"nativeSrc":"3564:291:65","nodeType":"YulBlock","src":"3564:291:65","statements":[{"nativeSrc":"3579:39:65","nodeType":"YulVariableDeclaration","src":"3579:39:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3603:9:65","nodeType":"YulIdentifier","src":"3603:9:65"},{"kind":"number","nativeSrc":"3614:2:65","nodeType":"YulLiteral","src":"3614:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3599:3:65","nodeType":"YulIdentifier","src":"3599:3:65"},"nativeSrc":"3599:18:65","nodeType":"YulFunctionCall","src":"3599:18:65"}],"functionName":{"name":"mload","nativeSrc":"3593:5:65","nodeType":"YulIdentifier","src":"3593:5:65"},"nativeSrc":"3593:25:65","nodeType":"YulFunctionCall","src":"3593:25:65"},"variables":[{"name":"offset","nativeSrc":"3583:6:65","nodeType":"YulTypedName","src":"3583:6:65","type":""}]},{"body":{"nativeSrc":"3665:83:65","nodeType":"YulBlock","src":"3665:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3667:77:65","nodeType":"YulIdentifier","src":"3667:77:65"},"nativeSrc":"3667:79:65","nodeType":"YulFunctionCall","src":"3667:79:65"},"nativeSrc":"3667:79:65","nodeType":"YulExpressionStatement","src":"3667:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3637:6:65","nodeType":"YulIdentifier","src":"3637:6:65"},{"kind":"number","nativeSrc":"3645:18:65","nodeType":"YulLiteral","src":"3645:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3634:2:65","nodeType":"YulIdentifier","src":"3634:2:65"},"nativeSrc":"3634:30:65","nodeType":"YulFunctionCall","src":"3634:30:65"},"nativeSrc":"3631:117:65","nodeType":"YulIf","src":"3631:117:65"},{"nativeSrc":"3762:83:65","nodeType":"YulAssignment","src":"3762:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:65","nodeType":"YulIdentifier","src":"3817:9:65"},{"name":"offset","nativeSrc":"3828:6:65","nodeType":"YulIdentifier","src":"3828:6:65"}],"functionName":{"name":"add","nativeSrc":"3813:3:65","nodeType":"YulIdentifier","src":"3813:3:65"},"nativeSrc":"3813:22:65","nodeType":"YulFunctionCall","src":"3813:22:65"},{"name":"dataEnd","nativeSrc":"3837:7:65","nodeType":"YulIdentifier","src":"3837:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3772:40:65","nodeType":"YulIdentifier","src":"3772:40:65"},"nativeSrc":"3772:73:65","nodeType":"YulFunctionCall","src":"3772:73:65"},"variableNames":[{"name":"value1","nativeSrc":"3762:6:65","nodeType":"YulIdentifier","src":"3762:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:678:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:65","nodeType":"YulTypedName","src":"3249:9:65","type":""},{"name":"dataEnd","nativeSrc":"3260:7:65","nodeType":"YulTypedName","src":"3260:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:65","nodeType":"YulTypedName","src":"3272:6:65","type":""},{"name":"value1","nativeSrc":"3280:6:65","nodeType":"YulTypedName","src":"3280:6:65","type":""}],"src":"3184:678:65"},{"body":{"nativeSrc":"3913:32:65","nodeType":"YulBlock","src":"3913:32:65","statements":[{"nativeSrc":"3923:16:65","nodeType":"YulAssignment","src":"3923:16:65","value":{"name":"value","nativeSrc":"3934:5:65","nodeType":"YulIdentifier","src":"3934:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"3923:7:65","nodeType":"YulIdentifier","src":"3923:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"3868:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3895:5:65","nodeType":"YulTypedName","src":"3895:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3905:7:65","nodeType":"YulTypedName","src":"3905:7:65","type":""}],"src":"3868:77:65"},{"body":{"nativeSrc":"3979:152:65","nodeType":"YulBlock","src":"3979:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3996:1:65","nodeType":"YulLiteral","src":"3996:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3999:77:65","nodeType":"YulLiteral","src":"3999:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3989:6:65","nodeType":"YulIdentifier","src":"3989:6:65"},"nativeSrc":"3989:88:65","nodeType":"YulFunctionCall","src":"3989:88:65"},"nativeSrc":"3989:88:65","nodeType":"YulExpressionStatement","src":"3989:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4093:1:65","nodeType":"YulLiteral","src":"4093:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4096:4:65","nodeType":"YulLiteral","src":"4096:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4086:6:65","nodeType":"YulIdentifier","src":"4086:6:65"},"nativeSrc":"4086:15:65","nodeType":"YulFunctionCall","src":"4086:15:65"},"nativeSrc":"4086:15:65","nodeType":"YulExpressionStatement","src":"4086:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4117:1:65","nodeType":"YulLiteral","src":"4117:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4120:4:65","nodeType":"YulLiteral","src":"4120:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4110:6:65","nodeType":"YulIdentifier","src":"4110:6:65"},"nativeSrc":"4110:15:65","nodeType":"YulFunctionCall","src":"4110:15:65"},"nativeSrc":"4110:15:65","nodeType":"YulExpressionStatement","src":"4110:15:65"}]},"name":"panic_error_0x11","nativeSrc":"3951:180:65","nodeType":"YulFunctionDefinition","src":"3951:180:65"},{"body":{"nativeSrc":"4182:149:65","nodeType":"YulBlock","src":"4182:149:65","statements":[{"nativeSrc":"4192:25:65","nodeType":"YulAssignment","src":"4192:25:65","value":{"arguments":[{"name":"x","nativeSrc":"4215:1:65","nodeType":"YulIdentifier","src":"4215:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4197:17:65","nodeType":"YulIdentifier","src":"4197:17:65"},"nativeSrc":"4197:20:65","nodeType":"YulFunctionCall","src":"4197:20:65"},"variableNames":[{"name":"x","nativeSrc":"4192:1:65","nodeType":"YulIdentifier","src":"4192:1:65"}]},{"nativeSrc":"4226:25:65","nodeType":"YulAssignment","src":"4226:25:65","value":{"arguments":[{"name":"y","nativeSrc":"4249:1:65","nodeType":"YulIdentifier","src":"4249:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4231:17:65","nodeType":"YulIdentifier","src":"4231:17:65"},"nativeSrc":"4231:20:65","nodeType":"YulFunctionCall","src":"4231:20:65"},"variableNames":[{"name":"y","nativeSrc":"4226:1:65","nodeType":"YulIdentifier","src":"4226:1:65"}]},{"nativeSrc":"4260:17:65","nodeType":"YulAssignment","src":"4260:17:65","value":{"arguments":[{"name":"x","nativeSrc":"4272:1:65","nodeType":"YulIdentifier","src":"4272:1:65"},{"name":"y","nativeSrc":"4275:1:65","nodeType":"YulIdentifier","src":"4275:1:65"}],"functionName":{"name":"sub","nativeSrc":"4268:3:65","nodeType":"YulIdentifier","src":"4268:3:65"},"nativeSrc":"4268:9:65","nodeType":"YulFunctionCall","src":"4268:9:65"},"variableNames":[{"name":"diff","nativeSrc":"4260:4:65","nodeType":"YulIdentifier","src":"4260:4:65"}]},{"body":{"nativeSrc":"4302:22:65","nodeType":"YulBlock","src":"4302:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4304:16:65","nodeType":"YulIdentifier","src":"4304:16:65"},"nativeSrc":"4304:18:65","nodeType":"YulFunctionCall","src":"4304:18:65"},"nativeSrc":"4304:18:65","nodeType":"YulExpressionStatement","src":"4304:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4293:4:65","nodeType":"YulIdentifier","src":"4293:4:65"},{"name":"x","nativeSrc":"4299:1:65","nodeType":"YulIdentifier","src":"4299:1:65"}],"functionName":{"name":"gt","nativeSrc":"4290:2:65","nodeType":"YulIdentifier","src":"4290:2:65"},"nativeSrc":"4290:11:65","nodeType":"YulFunctionCall","src":"4290:11:65"},"nativeSrc":"4287:37:65","nodeType":"YulIf","src":"4287:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"4137:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4168:1:65","nodeType":"YulTypedName","src":"4168:1:65","type":""},{"name":"y","nativeSrc":"4171:1:65","nodeType":"YulTypedName","src":"4171:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4177:4:65","nodeType":"YulTypedName","src":"4177:4:65","type":""}],"src":"4137:194:65"},{"body":{"nativeSrc":"4365:152:65","nodeType":"YulBlock","src":"4365:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4382:1:65","nodeType":"YulLiteral","src":"4382:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4385:77:65","nodeType":"YulLiteral","src":"4385:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4375:6:65","nodeType":"YulIdentifier","src":"4375:6:65"},"nativeSrc":"4375:88:65","nodeType":"YulFunctionCall","src":"4375:88:65"},"nativeSrc":"4375:88:65","nodeType":"YulExpressionStatement","src":"4375:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4479:1:65","nodeType":"YulLiteral","src":"4479:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4482:4:65","nodeType":"YulLiteral","src":"4482:4:65","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4472:6:65","nodeType":"YulIdentifier","src":"4472:6:65"},"nativeSrc":"4472:15:65","nodeType":"YulFunctionCall","src":"4472:15:65"},"nativeSrc":"4472:15:65","nodeType":"YulExpressionStatement","src":"4472:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4503:1:65","nodeType":"YulLiteral","src":"4503:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4506:4:65","nodeType":"YulLiteral","src":"4506:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4496:6:65","nodeType":"YulIdentifier","src":"4496:6:65"},"nativeSrc":"4496:15:65","nodeType":"YulFunctionCall","src":"4496:15:65"},"nativeSrc":"4496:15:65","nodeType":"YulExpressionStatement","src":"4496:15:65"}]},"name":"panic_error_0x01","nativeSrc":"4337:180:65","nodeType":"YulFunctionDefinition","src":"4337:180:65"},{"body":{"nativeSrc":"4619:73:65","nodeType":"YulBlock","src":"4619:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4636:3:65","nodeType":"YulIdentifier","src":"4636:3:65"},{"name":"length","nativeSrc":"4641:6:65","nodeType":"YulIdentifier","src":"4641:6:65"}],"functionName":{"name":"mstore","nativeSrc":"4629:6:65","nodeType":"YulIdentifier","src":"4629:6:65"},"nativeSrc":"4629:19:65","nodeType":"YulFunctionCall","src":"4629:19:65"},"nativeSrc":"4629:19:65","nodeType":"YulExpressionStatement","src":"4629:19:65"},{"nativeSrc":"4657:29:65","nodeType":"YulAssignment","src":"4657:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"4676:3:65","nodeType":"YulIdentifier","src":"4676:3:65"},{"kind":"number","nativeSrc":"4681:4:65","nodeType":"YulLiteral","src":"4681:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4672:3:65","nodeType":"YulIdentifier","src":"4672:3:65"},"nativeSrc":"4672:14:65","nodeType":"YulFunctionCall","src":"4672:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"4657:11:65","nodeType":"YulIdentifier","src":"4657:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4523:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4591:3:65","nodeType":"YulTypedName","src":"4591:3:65","type":""},{"name":"length","nativeSrc":"4596:6:65","nodeType":"YulTypedName","src":"4596:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4607:11:65","nodeType":"YulTypedName","src":"4607:11:65","type":""}],"src":"4523:169:65"},{"body":{"nativeSrc":"4804:126:65","nodeType":"YulBlock","src":"4804:126:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4826:6:65","nodeType":"YulIdentifier","src":"4826:6:65"},{"kind":"number","nativeSrc":"4834:1:65","nodeType":"YulLiteral","src":"4834:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4822:3:65","nodeType":"YulIdentifier","src":"4822:3:65"},"nativeSrc":"4822:14:65","nodeType":"YulFunctionCall","src":"4822:14:65"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4838:34:65","nodeType":"YulLiteral","src":"4838:34:65","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4815:6:65","nodeType":"YulIdentifier","src":"4815:6:65"},"nativeSrc":"4815:58:65","nodeType":"YulFunctionCall","src":"4815:58:65"},"nativeSrc":"4815:58:65","nodeType":"YulExpressionStatement","src":"4815:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4894:6:65","nodeType":"YulIdentifier","src":"4894:6:65"},{"kind":"number","nativeSrc":"4902:2:65","nodeType":"YulLiteral","src":"4902:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4890:3:65","nodeType":"YulIdentifier","src":"4890:3:65"},"nativeSrc":"4890:15:65","nodeType":"YulFunctionCall","src":"4890:15:65"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4907:15:65","nodeType":"YulLiteral","src":"4907:15:65","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4883:6:65","nodeType":"YulIdentifier","src":"4883:6:65"},"nativeSrc":"4883:40:65","nodeType":"YulFunctionCall","src":"4883:40:65"},"nativeSrc":"4883:40:65","nodeType":"YulExpressionStatement","src":"4883:40:65"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4698:232:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4796:6:65","nodeType":"YulTypedName","src":"4796:6:65","type":""}],"src":"4698:232:65"},{"body":{"nativeSrc":"5082:220:65","nodeType":"YulBlock","src":"5082:220:65","statements":[{"nativeSrc":"5092:74:65","nodeType":"YulAssignment","src":"5092:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5158:3:65","nodeType":"YulIdentifier","src":"5158:3:65"},{"kind":"number","nativeSrc":"5163:2:65","nodeType":"YulLiteral","src":"5163:2:65","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5099:58:65","nodeType":"YulIdentifier","src":"5099:58:65"},"nativeSrc":"5099:67:65","nodeType":"YulFunctionCall","src":"5099:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5092:3:65","nodeType":"YulIdentifier","src":"5092:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5264:3:65","nodeType":"YulIdentifier","src":"5264:3:65"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5175:88:65","nodeType":"YulIdentifier","src":"5175:88:65"},"nativeSrc":"5175:93:65","nodeType":"YulFunctionCall","src":"5175:93:65"},"nativeSrc":"5175:93:65","nodeType":"YulExpressionStatement","src":"5175:93:65"},{"nativeSrc":"5277:19:65","nodeType":"YulAssignment","src":"5277:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5288:3:65","nodeType":"YulIdentifier","src":"5288:3:65"},{"kind":"number","nativeSrc":"5293:2:65","nodeType":"YulLiteral","src":"5293:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5284:3:65","nodeType":"YulIdentifier","src":"5284:3:65"},"nativeSrc":"5284:12:65","nodeType":"YulFunctionCall","src":"5284:12:65"},"variableNames":[{"name":"end","nativeSrc":"5277:3:65","nodeType":"YulIdentifier","src":"5277:3:65"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4936:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5070:3:65","nodeType":"YulTypedName","src":"5070:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5078:3:65","nodeType":"YulTypedName","src":"5078:3:65","type":""}],"src":"4936:366:65"},{"body":{"nativeSrc":"5479:248:65","nodeType":"YulBlock","src":"5479:248:65","statements":[{"nativeSrc":"5489:26:65","nodeType":"YulAssignment","src":"5489:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5501:9:65","nodeType":"YulIdentifier","src":"5501:9:65"},{"kind":"number","nativeSrc":"5512:2:65","nodeType":"YulLiteral","src":"5512:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5497:3:65","nodeType":"YulIdentifier","src":"5497:3:65"},"nativeSrc":"5497:18:65","nodeType":"YulFunctionCall","src":"5497:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5489:4:65","nodeType":"YulIdentifier","src":"5489:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5536:9:65","nodeType":"YulIdentifier","src":"5536:9:65"},{"kind":"number","nativeSrc":"5547:1:65","nodeType":"YulLiteral","src":"5547:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5532:3:65","nodeType":"YulIdentifier","src":"5532:3:65"},"nativeSrc":"5532:17:65","nodeType":"YulFunctionCall","src":"5532:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5555:4:65","nodeType":"YulIdentifier","src":"5555:4:65"},{"name":"headStart","nativeSrc":"5561:9:65","nodeType":"YulIdentifier","src":"5561:9:65"}],"functionName":{"name":"sub","nativeSrc":"5551:3:65","nodeType":"YulIdentifier","src":"5551:3:65"},"nativeSrc":"5551:20:65","nodeType":"YulFunctionCall","src":"5551:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5525:6:65","nodeType":"YulIdentifier","src":"5525:6:65"},"nativeSrc":"5525:47:65","nodeType":"YulFunctionCall","src":"5525:47:65"},"nativeSrc":"5525:47:65","nodeType":"YulExpressionStatement","src":"5525:47:65"},{"nativeSrc":"5581:139:65","nodeType":"YulAssignment","src":"5581:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5715:4:65","nodeType":"YulIdentifier","src":"5715:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5589:124:65","nodeType":"YulIdentifier","src":"5589:124:65"},"nativeSrc":"5589:131:65","nodeType":"YulFunctionCall","src":"5589:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5581:4:65","nodeType":"YulIdentifier","src":"5581:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5308:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5459:9:65","nodeType":"YulTypedName","src":"5459:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5474:4:65","nodeType":"YulTypedName","src":"5474:4:65","type":""}],"src":"5308:419:65"},{"body":{"nativeSrc":"5839:119:65","nodeType":"YulBlock","src":"5839:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5861:6:65","nodeType":"YulIdentifier","src":"5861:6:65"},{"kind":"number","nativeSrc":"5869:1:65","nodeType":"YulLiteral","src":"5869:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5857:3:65","nodeType":"YulIdentifier","src":"5857:3:65"},"nativeSrc":"5857:14:65","nodeType":"YulFunctionCall","src":"5857:14:65"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5873:34:65","nodeType":"YulLiteral","src":"5873:34:65","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5850:6:65","nodeType":"YulIdentifier","src":"5850:6:65"},"nativeSrc":"5850:58:65","nodeType":"YulFunctionCall","src":"5850:58:65"},"nativeSrc":"5850:58:65","nodeType":"YulExpressionStatement","src":"5850:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5929:6:65","nodeType":"YulIdentifier","src":"5929:6:65"},{"kind":"number","nativeSrc":"5937:2:65","nodeType":"YulLiteral","src":"5937:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5925:3:65","nodeType":"YulIdentifier","src":"5925:3:65"},"nativeSrc":"5925:15:65","nodeType":"YulFunctionCall","src":"5925:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5942:8:65","nodeType":"YulLiteral","src":"5942:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5918:6:65","nodeType":"YulIdentifier","src":"5918:6:65"},"nativeSrc":"5918:33:65","nodeType":"YulFunctionCall","src":"5918:33:65"},"nativeSrc":"5918:33:65","nodeType":"YulExpressionStatement","src":"5918:33:65"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5733:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5831:6:65","nodeType":"YulTypedName","src":"5831:6:65","type":""}],"src":"5733:225:65"},{"body":{"nativeSrc":"6110:220:65","nodeType":"YulBlock","src":"6110:220:65","statements":[{"nativeSrc":"6120:74:65","nodeType":"YulAssignment","src":"6120:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"6186:3:65","nodeType":"YulIdentifier","src":"6186:3:65"},{"kind":"number","nativeSrc":"6191:2:65","nodeType":"YulLiteral","src":"6191:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6127:58:65","nodeType":"YulIdentifier","src":"6127:58:65"},"nativeSrc":"6127:67:65","nodeType":"YulFunctionCall","src":"6127:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6120:3:65","nodeType":"YulIdentifier","src":"6120:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6292:3:65","nodeType":"YulIdentifier","src":"6292:3:65"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6203:88:65","nodeType":"YulIdentifier","src":"6203:88:65"},"nativeSrc":"6203:93:65","nodeType":"YulFunctionCall","src":"6203:93:65"},"nativeSrc":"6203:93:65","nodeType":"YulExpressionStatement","src":"6203:93:65"},{"nativeSrc":"6305:19:65","nodeType":"YulAssignment","src":"6305:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6316:3:65","nodeType":"YulIdentifier","src":"6316:3:65"},{"kind":"number","nativeSrc":"6321:2:65","nodeType":"YulLiteral","src":"6321:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6312:3:65","nodeType":"YulIdentifier","src":"6312:3:65"},"nativeSrc":"6312:12:65","nodeType":"YulFunctionCall","src":"6312:12:65"},"variableNames":[{"name":"end","nativeSrc":"6305:3:65","nodeType":"YulIdentifier","src":"6305:3:65"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5964:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6098:3:65","nodeType":"YulTypedName","src":"6098:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6106:3:65","nodeType":"YulTypedName","src":"6106:3:65","type":""}],"src":"5964:366:65"},{"body":{"nativeSrc":"6507:248:65","nodeType":"YulBlock","src":"6507:248:65","statements":[{"nativeSrc":"6517:26:65","nodeType":"YulAssignment","src":"6517:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6529:9:65","nodeType":"YulIdentifier","src":"6529:9:65"},{"kind":"number","nativeSrc":"6540:2:65","nodeType":"YulLiteral","src":"6540:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6525:3:65","nodeType":"YulIdentifier","src":"6525:3:65"},"nativeSrc":"6525:18:65","nodeType":"YulFunctionCall","src":"6525:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6517:4:65","nodeType":"YulIdentifier","src":"6517:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6564:9:65","nodeType":"YulIdentifier","src":"6564:9:65"},{"kind":"number","nativeSrc":"6575:1:65","nodeType":"YulLiteral","src":"6575:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6560:3:65","nodeType":"YulIdentifier","src":"6560:3:65"},"nativeSrc":"6560:17:65","nodeType":"YulFunctionCall","src":"6560:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6583:4:65","nodeType":"YulIdentifier","src":"6583:4:65"},{"name":"headStart","nativeSrc":"6589:9:65","nodeType":"YulIdentifier","src":"6589:9:65"}],"functionName":{"name":"sub","nativeSrc":"6579:3:65","nodeType":"YulIdentifier","src":"6579:3:65"},"nativeSrc":"6579:20:65","nodeType":"YulFunctionCall","src":"6579:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6553:6:65","nodeType":"YulIdentifier","src":"6553:6:65"},"nativeSrc":"6553:47:65","nodeType":"YulFunctionCall","src":"6553:47:65"},"nativeSrc":"6553:47:65","nodeType":"YulExpressionStatement","src":"6553:47:65"},{"nativeSrc":"6609:139:65","nodeType":"YulAssignment","src":"6609:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6743:4:65","nodeType":"YulIdentifier","src":"6743:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6617:124:65","nodeType":"YulIdentifier","src":"6617:124:65"},"nativeSrc":"6617:131:65","nodeType":"YulFunctionCall","src":"6617:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6609:4:65","nodeType":"YulIdentifier","src":"6609:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6336:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6487:9:65","nodeType":"YulTypedName","src":"6487:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6502:4:65","nodeType":"YulTypedName","src":"6502:4:65","type":""}],"src":"6336:419:65"},{"body":{"nativeSrc":"6819:40:65","nodeType":"YulBlock","src":"6819:40:65","statements":[{"nativeSrc":"6830:22:65","nodeType":"YulAssignment","src":"6830:22:65","value":{"arguments":[{"name":"value","nativeSrc":"6846:5:65","nodeType":"YulIdentifier","src":"6846:5:65"}],"functionName":{"name":"mload","nativeSrc":"6840:5:65","nodeType":"YulIdentifier","src":"6840:5:65"},"nativeSrc":"6840:12:65","nodeType":"YulFunctionCall","src":"6840:12:65"},"variableNames":[{"name":"length","nativeSrc":"6830:6:65","nodeType":"YulIdentifier","src":"6830:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6761:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6802:5:65","nodeType":"YulTypedName","src":"6802:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6812:6:65","nodeType":"YulTypedName","src":"6812:6:65","type":""}],"src":"6761:98:65"},{"body":{"nativeSrc":"6978:34:65","nodeType":"YulBlock","src":"6978:34:65","statements":[{"nativeSrc":"6988:18:65","nodeType":"YulAssignment","src":"6988:18:65","value":{"name":"pos","nativeSrc":"7003:3:65","nodeType":"YulIdentifier","src":"7003:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"6988:11:65","nodeType":"YulIdentifier","src":"6988:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6865:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6950:3:65","nodeType":"YulTypedName","src":"6950:3:65","type":""},{"name":"length","nativeSrc":"6955:6:65","nodeType":"YulTypedName","src":"6955:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6966:11:65","nodeType":"YulTypedName","src":"6966:11:65","type":""}],"src":"6865:147:65"},{"body":{"nativeSrc":"7126:278:65","nodeType":"YulBlock","src":"7126:278:65","statements":[{"nativeSrc":"7136:52:65","nodeType":"YulVariableDeclaration","src":"7136:52:65","value":{"arguments":[{"name":"value","nativeSrc":"7182:5:65","nodeType":"YulIdentifier","src":"7182:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7150:31:65","nodeType":"YulIdentifier","src":"7150:31:65"},"nativeSrc":"7150:38:65","nodeType":"YulFunctionCall","src":"7150:38:65"},"variables":[{"name":"length","nativeSrc":"7140:6:65","nodeType":"YulTypedName","src":"7140:6:65","type":""}]},{"nativeSrc":"7197:95:65","nodeType":"YulAssignment","src":"7197:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"7280:3:65","nodeType":"YulIdentifier","src":"7280:3:65"},{"name":"length","nativeSrc":"7285:6:65","nodeType":"YulIdentifier","src":"7285:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7204:75:65","nodeType":"YulIdentifier","src":"7204:75:65"},"nativeSrc":"7204:88:65","nodeType":"YulFunctionCall","src":"7204:88:65"},"variableNames":[{"name":"pos","nativeSrc":"7197:3:65","nodeType":"YulIdentifier","src":"7197:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7340:5:65","nodeType":"YulIdentifier","src":"7340:5:65"},{"kind":"number","nativeSrc":"7347:4:65","nodeType":"YulLiteral","src":"7347:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7336:3:65","nodeType":"YulIdentifier","src":"7336:3:65"},"nativeSrc":"7336:16:65","nodeType":"YulFunctionCall","src":"7336:16:65"},{"name":"pos","nativeSrc":"7354:3:65","nodeType":"YulIdentifier","src":"7354:3:65"},{"name":"length","nativeSrc":"7359:6:65","nodeType":"YulIdentifier","src":"7359:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7301:34:65","nodeType":"YulIdentifier","src":"7301:34:65"},"nativeSrc":"7301:65:65","nodeType":"YulFunctionCall","src":"7301:65:65"},"nativeSrc":"7301:65:65","nodeType":"YulExpressionStatement","src":"7301:65:65"},{"nativeSrc":"7375:23:65","nodeType":"YulAssignment","src":"7375:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"7386:3:65","nodeType":"YulIdentifier","src":"7386:3:65"},{"name":"length","nativeSrc":"7391:6:65","nodeType":"YulIdentifier","src":"7391:6:65"}],"functionName":{"name":"add","nativeSrc":"7382:3:65","nodeType":"YulIdentifier","src":"7382:3:65"},"nativeSrc":"7382:16:65","nodeType":"YulFunctionCall","src":"7382:16:65"},"variableNames":[{"name":"end","nativeSrc":"7375:3:65","nodeType":"YulIdentifier","src":"7375:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7018:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7107:5:65","nodeType":"YulTypedName","src":"7107:5:65","type":""},{"name":"pos","nativeSrc":"7114:3:65","nodeType":"YulTypedName","src":"7114:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7122:3:65","nodeType":"YulTypedName","src":"7122:3:65","type":""}],"src":"7018:386:65"},{"body":{"nativeSrc":"7544:137:65","nodeType":"YulBlock","src":"7544:137:65","statements":[{"nativeSrc":"7555:100:65","nodeType":"YulAssignment","src":"7555:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"7642:6:65","nodeType":"YulIdentifier","src":"7642:6:65"},{"name":"pos","nativeSrc":"7651:3:65","nodeType":"YulIdentifier","src":"7651:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7562:79:65","nodeType":"YulIdentifier","src":"7562:79:65"},"nativeSrc":"7562:93:65","nodeType":"YulFunctionCall","src":"7562:93:65"},"variableNames":[{"name":"pos","nativeSrc":"7555:3:65","nodeType":"YulIdentifier","src":"7555:3:65"}]},{"nativeSrc":"7665:10:65","nodeType":"YulAssignment","src":"7665:10:65","value":{"name":"pos","nativeSrc":"7672:3:65","nodeType":"YulIdentifier","src":"7672:3:65"},"variableNames":[{"name":"end","nativeSrc":"7665:3:65","nodeType":"YulIdentifier","src":"7665:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7410:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7523:3:65","nodeType":"YulTypedName","src":"7523:3:65","type":""},{"name":"value0","nativeSrc":"7529:6:65","nodeType":"YulTypedName","src":"7529:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7540:3:65","nodeType":"YulTypedName","src":"7540:3:65","type":""}],"src":"7410:271:65"},{"body":{"nativeSrc":"7746:40:65","nodeType":"YulBlock","src":"7746:40:65","statements":[{"nativeSrc":"7757:22:65","nodeType":"YulAssignment","src":"7757:22:65","value":{"arguments":[{"name":"value","nativeSrc":"7773:5:65","nodeType":"YulIdentifier","src":"7773:5:65"}],"functionName":{"name":"mload","nativeSrc":"7767:5:65","nodeType":"YulIdentifier","src":"7767:5:65"},"nativeSrc":"7767:12:65","nodeType":"YulFunctionCall","src":"7767:12:65"},"variableNames":[{"name":"length","nativeSrc":"7757:6:65","nodeType":"YulIdentifier","src":"7757:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7687:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7729:5:65","nodeType":"YulTypedName","src":"7729:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7739:6:65","nodeType":"YulTypedName","src":"7739:6:65","type":""}],"src":"7687:99:65"},{"body":{"nativeSrc":"7884:285:65","nodeType":"YulBlock","src":"7884:285:65","statements":[{"nativeSrc":"7894:53:65","nodeType":"YulVariableDeclaration","src":"7894:53:65","value":{"arguments":[{"name":"value","nativeSrc":"7941:5:65","nodeType":"YulIdentifier","src":"7941:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7908:32:65","nodeType":"YulIdentifier","src":"7908:32:65"},"nativeSrc":"7908:39:65","nodeType":"YulFunctionCall","src":"7908:39:65"},"variables":[{"name":"length","nativeSrc":"7898:6:65","nodeType":"YulTypedName","src":"7898:6:65","type":""}]},{"nativeSrc":"7956:78:65","nodeType":"YulAssignment","src":"7956:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"8022:3:65","nodeType":"YulIdentifier","src":"8022:3:65"},{"name":"length","nativeSrc":"8027:6:65","nodeType":"YulIdentifier","src":"8027:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7963:58:65","nodeType":"YulIdentifier","src":"7963:58:65"},"nativeSrc":"7963:71:65","nodeType":"YulFunctionCall","src":"7963:71:65"},"variableNames":[{"name":"pos","nativeSrc":"7956:3:65","nodeType":"YulIdentifier","src":"7956:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8082:5:65","nodeType":"YulIdentifier","src":"8082:5:65"},{"kind":"number","nativeSrc":"8089:4:65","nodeType":"YulLiteral","src":"8089:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8078:3:65","nodeType":"YulIdentifier","src":"8078:3:65"},"nativeSrc":"8078:16:65","nodeType":"YulFunctionCall","src":"8078:16:65"},{"name":"pos","nativeSrc":"8096:3:65","nodeType":"YulIdentifier","src":"8096:3:65"},{"name":"length","nativeSrc":"8101:6:65","nodeType":"YulIdentifier","src":"8101:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8043:34:65","nodeType":"YulIdentifier","src":"8043:34:65"},"nativeSrc":"8043:65:65","nodeType":"YulFunctionCall","src":"8043:65:65"},"nativeSrc":"8043:65:65","nodeType":"YulExpressionStatement","src":"8043:65:65"},{"nativeSrc":"8117:46:65","nodeType":"YulAssignment","src":"8117:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"8128:3:65","nodeType":"YulIdentifier","src":"8128:3:65"},{"arguments":[{"name":"length","nativeSrc":"8155:6:65","nodeType":"YulIdentifier","src":"8155:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8133:21:65","nodeType":"YulIdentifier","src":"8133:21:65"},"nativeSrc":"8133:29:65","nodeType":"YulFunctionCall","src":"8133:29:65"}],"functionName":{"name":"add","nativeSrc":"8124:3:65","nodeType":"YulIdentifier","src":"8124:3:65"},"nativeSrc":"8124:39:65","nodeType":"YulFunctionCall","src":"8124:39:65"},"variableNames":[{"name":"end","nativeSrc":"8117:3:65","nodeType":"YulIdentifier","src":"8117:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7792:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7865:5:65","nodeType":"YulTypedName","src":"7865:5:65","type":""},{"name":"pos","nativeSrc":"7872:3:65","nodeType":"YulTypedName","src":"7872:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7880:3:65","nodeType":"YulTypedName","src":"7880:3:65","type":""}],"src":"7792:377:65"},{"body":{"nativeSrc":"8293:195:65","nodeType":"YulBlock","src":"8293:195:65","statements":[{"nativeSrc":"8303:26:65","nodeType":"YulAssignment","src":"8303:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8315:9:65","nodeType":"YulIdentifier","src":"8315:9:65"},{"kind":"number","nativeSrc":"8326:2:65","nodeType":"YulLiteral","src":"8326:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8311:3:65","nodeType":"YulIdentifier","src":"8311:3:65"},"nativeSrc":"8311:18:65","nodeType":"YulFunctionCall","src":"8311:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8303:4:65","nodeType":"YulIdentifier","src":"8303:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8350:9:65","nodeType":"YulIdentifier","src":"8350:9:65"},{"kind":"number","nativeSrc":"8361:1:65","nodeType":"YulLiteral","src":"8361:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8346:3:65","nodeType":"YulIdentifier","src":"8346:3:65"},"nativeSrc":"8346:17:65","nodeType":"YulFunctionCall","src":"8346:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8369:4:65","nodeType":"YulIdentifier","src":"8369:4:65"},{"name":"headStart","nativeSrc":"8375:9:65","nodeType":"YulIdentifier","src":"8375:9:65"}],"functionName":{"name":"sub","nativeSrc":"8365:3:65","nodeType":"YulIdentifier","src":"8365:3:65"},"nativeSrc":"8365:20:65","nodeType":"YulFunctionCall","src":"8365:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8339:6:65","nodeType":"YulIdentifier","src":"8339:6:65"},"nativeSrc":"8339:47:65","nodeType":"YulFunctionCall","src":"8339:47:65"},"nativeSrc":"8339:47:65","nodeType":"YulExpressionStatement","src":"8339:47:65"},{"nativeSrc":"8395:86:65","nodeType":"YulAssignment","src":"8395:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"8467:6:65","nodeType":"YulIdentifier","src":"8467:6:65"},{"name":"tail","nativeSrc":"8476:4:65","nodeType":"YulIdentifier","src":"8476:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8403:63:65","nodeType":"YulIdentifier","src":"8403:63:65"},"nativeSrc":"8403:78:65","nodeType":"YulFunctionCall","src":"8403:78:65"},"variableNames":[{"name":"tail","nativeSrc":"8395:4:65","nodeType":"YulIdentifier","src":"8395:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8175:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8265:9:65","nodeType":"YulTypedName","src":"8265:9:65","type":""},{"name":"value0","nativeSrc":"8277:6:65","nodeType":"YulTypedName","src":"8277:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8288:4:65","nodeType":"YulTypedName","src":"8288:4:65","type":""}],"src":"8175:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516106583803806106588339810160408190526100229161039b565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610408565b600080516020610611833981519152146100695761006961041b565b6100758282600061007c565b5050610552565b610085836100a8565b6000825111806100925750805b156100a3576100a183836100e8565b505b505050565b6100b181610116565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061010d838360405180606001604052806027815260200161063160279139610175565b90505b92915050565b6001600160a01b0381163b6101465760405162461bcd60e51b815260040161013d9061047e565b60405180910390fd5b60008051602061061183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b61019e5760405162461bcd60e51b815260040161013d906104d1565b600080856001600160a01b0316856040516101b99190610503565b600060405180830381855af49150503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909250905061020a828286610216565b925050505b9392505050565b6060831561022557508161020f565b8251156102355782518084602001fd5b8160405162461bcd60e51b815260040161013d9190610541565b60006001600160a01b038216610110565b6102698161024f565b811461027457600080fd5b50565b805161011081610260565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156102bd576102bd610282565b6040525050565b60006102cf60405190565b90506102db8282610298565b919050565b60006001600160401b038211156102f9576102f9610282565b601f19601f83011660200192915050565b60005b8381101561032557818101518382015260200161030d565b50506000910152565b600061034161033c846102e0565b6102c4565b90508281526020810184848401111561035c5761035c600080fd5b61036784828561030a565b509392505050565b600082601f83011261038357610383600080fd5b815161039384826020860161032e565b949350505050565b600080604083850312156103b1576103b1600080fd5b60006103bd8585610277565b92505060208301516001600160401b038111156103dc576103dc600080fd5b6103e88582860161036f565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610110576101106103f2565b634e487b7160e01b600052600160045260246000fd5b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161011081610431565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610477565b602080825281016101108161048e565b60006104eb825190565b6104f981856020860161030a565b9290920192915050565b600061020f82846104e1565b6000610519825190565b80845260208401935061053081856020860161030a565b601f01601f19169290920192915050565b6020808252810161010d818461050f565b60b1806105606000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212206514576b9b5085c0351b6b146cfff3777796ae47c549b886b20feb128093d14664736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x658 CODESIZE SUB DUP1 PUSH2 0x658 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x4D PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x408 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x611 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x69 JUMPI PUSH2 0x69 PUSH2 0x41B JUMP JUMPDEST PUSH2 0x75 DUP3 DUP3 PUSH1 0x0 PUSH2 0x7C JUMP JUMPDEST POP POP PUSH2 0x552 JUMP JUMPDEST PUSH2 0x85 DUP4 PUSH2 0xA8 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x92 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xA3 JUMPI PUSH2 0xA1 DUP4 DUP4 PUSH2 0xE8 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB1 DUP2 PUSH2 0x116 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x10D DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x631 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x175 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x146 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13D SWAP1 PUSH2 0x47E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x611 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x19E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13D SWAP1 PUSH2 0x4D1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B9 SWAP2 SWAP1 PUSH2 0x503 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x20A DUP3 DUP3 DUP7 PUSH2 0x216 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x225 JUMPI POP DUP2 PUSH2 0x20F JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x235 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0x541 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x110 JUMP JUMPDEST PUSH2 0x269 DUP2 PUSH2 0x24F JUMP JUMPDEST DUP2 EQ PUSH2 0x274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x110 DUP2 PUSH2 0x260 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x2BD JUMPI PUSH2 0x2BD PUSH2 0x282 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CF PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x2DB DUP3 DUP3 PUSH2 0x298 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F9 PUSH2 0x282 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x325 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x30D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x341 PUSH2 0x33C DUP5 PUSH2 0x2E0 JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x35C JUMPI PUSH2 0x35C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x367 DUP5 DUP3 DUP6 PUSH2 0x30A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x383 JUMPI PUSH2 0x383 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x393 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x32E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B1 JUMPI PUSH2 0x3B1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3BD DUP6 DUP6 PUSH2 0x277 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3E8 DUP6 DUP3 DUP7 ADD PUSH2 0x36F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x110 JUMPI PUSH2 0x110 PUSH2 0x3F2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x110 DUP2 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x477 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x110 DUP2 PUSH2 0x48E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EB DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x4F9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x30A JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F DUP3 DUP5 PUSH2 0x4E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x530 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x30A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x10D DUP2 DUP5 PUSH2 0x50F JUMP JUMPDEST PUSH1 0xB1 DUP1 PUSH2 0x560 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x58 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x53 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x76 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x14576B9B5085 0xC0 CALLDATALOAD SHL PUSH12 0x146CFFF3777796AE47C549B8 DUP7 0xB2 0xF 0xEB SLT DUP1 SWAP4 0xD1 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"552:830:55:-:0;;;945:217;;;;;;;;;;;;;;;;;;:::i;:::-;1050:54;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:55;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;945:217;;552:830;;2188:295:56;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:56;;;;;;;;1902:152;:::o;6575:198:61:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:56:-;-1:-1:-1;;;;;1470:19:61;;;1610:95:56;;;;-1:-1:-1;;;1610:95:56;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:56;;-1:-1:-1;;;;;;1715:74:56;-1:-1:-1;;;;;1715:74:56;;;;;;;;;;1537:259::o;6959:387:61:-;7100:12;-1:-1:-1;;;;;1470:19:61;;;7124:69;;;;-1:-1:-1;;;7124:69:61;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:61;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:61;;-1:-1:-1;7204:67:61;-1:-1:-1;7288:51:61;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:61;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:61;;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:65;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:65;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:65;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:65:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:65;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:65;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:65:o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2302:11;;;2296:18;2283:11;;;2276:39;2248:2;2241:10;2212:113;;;-1:-1:-1;;2359:1:65;2341:16;;2334:27;2120:248::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;197:1;194;187:12;2658:79;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;197:1;194;187:12;2948:79;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;2825:353;-1:-1:-1;;;;2825:353:65:o;3184:678::-;3272:6;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;197:1;194;187:12;3335:79;3455:1;3480:64;3536:7;3516:9;3480:64;:::i;:::-;3470:74;;3426:128;3614:2;3603:9;3599:18;3593:25;-1:-1:-1;;;;;3637:6:65;3634:30;3631:117;;;3667:79;197:1;194;187:12;3667:79;3772:73;3837:7;3828:6;3817:9;3813:22;3772:73;:::i;:::-;3762:83;;3564:291;3184:678;;;;;:::o;3951:180::-;-1:-1:-1;;;3996:1:65;3989:88;4096:4;4093:1;4086:15;4120:4;4117:1;4110:15;4137:194;4268:9;;;4290:11;;;4287:37;;;4304:18;;:::i;4337:180::-;-1:-1:-1;;;4382:1:65;4375:88;4482:4;4479:1;4472:15;4506:4;4503:1;4496:15;4936:366;5163:2;4629:19;;5078:3;4681:4;4672:14;;4838:34;4815:58;;-1:-1:-1;;;4902:2:65;4890:15;;4883:40;5092:74;-1:-1:-1;5175:93:65;-1:-1:-1;5293:2:65;5284:12;;4936:366::o;5308:419::-;5512:2;5525:47;;;5497:18;;5589:131;5497:18;5589:131;:::i;5964:366::-;6191:2;4629:19;;6106:3;4681:4;4672:14;;5873:34;5850:58;;-1:-1:-1;;;5937:2:65;5925:15;;5918:33;6120:74;-1:-1:-1;6203:93:65;5733:225;6336:419;6540:2;6553:47;;;6525:18;;6617:131;6525:18;6617:131;:::i;7018:386::-;7122:3;7150:38;7182:5;6840:12;;6761:98;7150:38;7301:65;7359:6;7354:3;7347:4;7340:5;7336:16;7301:65;:::i;:::-;7382:16;;;;;7018:386;-1:-1:-1;;7018:386:65:o;7410:271::-;7540:3;7562:93;7651:3;7642:6;7562:93;:::i;7792:377::-;7880:3;7908:39;7941:5;6840:12;;6761:98;7908:39;4629:19;;;4681:4;4672:14;;7956:78;;8043:65;8101:6;8096:3;8089:4;8082:5;8078:16;8043:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:65;8124:39;;;;;;-1:-1:-1;;7792:377:65:o;8175:313::-;8326:2;8339:47;;;8311:18;;8403:78;8311:18;8467:6;8403:78;:::i;8175:313::-;552:830:55;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12408":{"entryPoint":null,"id":12408,"parameterSlots":0,"returnSlots":0},"@_12416":{"entryPoint":null,"id":12416,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_12421":{"entryPoint":null,"id":12421,"parameterSlots":0,"returnSlots":0},"@_delegate_12381":{"entryPoint":88,"id":12381,"parameterSlots":1,"returnSlots":0},"@_fallback_12400":{"entryPoint":19,"id":12400,"parameterSlots":0,"returnSlots":0},"@_getImplementation_12084":{"entryPoint":null,"id":12084,"parameterSlots":0,"returnSlots":1},"@_implementation_12051":{"entryPoint":33,"id":12051,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212206514576b9b5085c0351b6b146cfff3777796ae47c549b886b20feb128093d14664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH1 0x10 JUMPI PUSH1 0xE PUSH1 0x13 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xE JUMPDEST PUSH1 0x1F PUSH1 0x1B PUSH1 0x21 JUMP JUMPDEST PUSH1 0x58 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x53 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x76 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x14576B9B5085 0xC0 CALLDATALOAD SHL PUSH12 0x146CFFF3777796AE47C549B8 DUP7 0xB2 0xF 0xEB SLT DUP1 SWAP4 0xD1 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"552:830:55:-:0;;;;;;2903:11:57;:9;:11::i;:::-;552:830:55;;2680:11:57;2327:110;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;1240:140:55:-;1307:12;1338:35;1035:66:56;1385:54;-1:-1:-1;;;;;1385:54:56;;1306:140;1338:35:55;1331:42;;1240:140;:::o;953:895:57:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27"},"gasEstimates":{"creation":{"codeDepositCost":"35400","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite"},"internal":{"_implementation()":"2156"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"devdoc":{"custom:oz-upgrades-unsafe-allow":"delegatecall","details":"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{},"stateVariables":{"_ADMIN_SLOT":{"details":"Storage slot with the admin of the contract. This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is validated in the constructor."},"_BEACON_SLOT":{"details":"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"_IMPLEMENTATION_SLOT":{"details":"Storage slot with the address of the current implementation. This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is validated in the constructor."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"This is the interface that {BeaconProxy} expects of its beacon.","kind":"dev","methods":{"implementation()":{"details":"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract."}},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol":{"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"details":"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.","kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_11908":{"entryPoint":null,"id":11908,"parameterSlots":1,"returnSlots":0},"@_12448":{"entryPoint":null,"id":12448,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_11988":{"entryPoint":64,"id":11988,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":186,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":197,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":144,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":163,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:65","nodeType":"YulBlock","src":"0:1199:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"922:274:65","nodeType":"YulBlock","src":"922:274:65","statements":[{"body":{"nativeSrc":"968:83:65","nodeType":"YulBlock","src":"968:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:65","nodeType":"YulIdentifier","src":"970:77:65"},"nativeSrc":"970:79:65","nodeType":"YulFunctionCall","src":"970:79:65"},"nativeSrc":"970:79:65","nodeType":"YulExpressionStatement","src":"970:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:65","nodeType":"YulIdentifier","src":"943:7:65"},{"name":"headStart","nativeSrc":"952:9:65","nodeType":"YulIdentifier","src":"952:9:65"}],"functionName":{"name":"sub","nativeSrc":"939:3:65","nodeType":"YulIdentifier","src":"939:3:65"},"nativeSrc":"939:23:65","nodeType":"YulFunctionCall","src":"939:23:65"},{"kind":"number","nativeSrc":"964:2:65","nodeType":"YulLiteral","src":"964:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:65","nodeType":"YulIdentifier","src":"935:3:65"},"nativeSrc":"935:32:65","nodeType":"YulFunctionCall","src":"935:32:65"},"nativeSrc":"932:119:65","nodeType":"YulIf","src":"932:119:65"},{"nativeSrc":"1061:128:65","nodeType":"YulBlock","src":"1061:128:65","statements":[{"nativeSrc":"1076:15:65","nodeType":"YulVariableDeclaration","src":"1076:15:65","value":{"kind":"number","nativeSrc":"1090:1:65","nodeType":"YulLiteral","src":"1090:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:65","nodeType":"YulTypedName","src":"1080:6:65","type":""}]},{"nativeSrc":"1105:74:65","nodeType":"YulAssignment","src":"1105:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:65","nodeType":"YulIdentifier","src":"1151:9:65"},{"name":"offset","nativeSrc":"1162:6:65","nodeType":"YulIdentifier","src":"1162:6:65"}],"functionName":{"name":"add","nativeSrc":"1147:3:65","nodeType":"YulIdentifier","src":"1147:3:65"},"nativeSrc":"1147:22:65","nodeType":"YulFunctionCall","src":"1147:22:65"},{"name":"dataEnd","nativeSrc":"1171:7:65","nodeType":"YulIdentifier","src":"1171:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:65","nodeType":"YulIdentifier","src":"1115:31:65"},"nativeSrc":"1115:64:65","nodeType":"YulFunctionCall","src":"1115:64:65"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:65","nodeType":"YulIdentifier","src":"1105:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:65","nodeType":"YulTypedName","src":"892:9:65","type":""},{"name":"dataEnd","nativeSrc":"903:7:65","nodeType":"YulTypedName","src":"903:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:65","nodeType":"YulTypedName","src":"915:6:65","type":""}],"src":"845:351:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161096438038061096483398101604081905261002f916100c5565b8061003981610040565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100ac81610090565b81146100b757600080fd5b50565b805161009d816100a3565b6000602082840312156100da576100da600080fd5b60006100e684846100ba565b949350505050565b610867806100fd6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461010b57806399a88ec41461011e578063f2fde38b1461013e578063f3b7dead1461015e57600080fd5b8063204e1c7a14610080578063715018a6146100b65780637eff275e146100cd5780638da5cb5b146100ed575b600080fd5b34801561008c57600080fd5b506100a061009b3660046104ba565b61017e565b6040516100ad91906104ea565b60405180910390f35b3480156100c257600080fd5b506100cb610204565b005b3480156100d957600080fd5b506100cb6100e836600461050c565b610243565b3480156100f957600080fd5b506000546001600160a01b03166100a0565b6100cb610119366004610644565b6102cf565b34801561012a57600080fd5b506100cb61013936600461050c565b610360565b34801561014a57600080fd5b506100cb6101593660046106af565b6103b6565b34801561016a57600080fd5b506100a06101793660046104ba565b610412565b6000806000836001600160a01b0316604051610199906106e4565b600060405180830381855afa9150503d80600081146101d4576040519150601f19603f3d011682016040523d82523d6000602084013e6101d9565b606091505b5091509150816101e857600080fd5b808060200190518101906101fc91906106fa565b949350505050565b6000546001600160a01b031633146102375760405162461bcd60e51b815260040161022e9061071b565b60405180910390fd5b610241600061042d565b565b6000546001600160a01b0316331461026d5760405162461bcd60e51b815260040161022e9061071b565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102999084906004016104ea565b600060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260040161022e9061071b565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061032990869086906004016107ab565b6000604051808303818588803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260040161022e9061071b565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102999084906004016104ea565b6000546001600160a01b031633146103e05760405162461bcd60e51b815260040161022e9061071b565b6001600160a01b0381166104065760405162461bcd60e51b815260040161022e906107cb565b61040f8161042d565b50565b6000806000836001600160a01b031660405161019990610826565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b600061048a8261047d565b6104a481610490565b811461040f57600080fd5b803561048a8161049b565b6000602082840312156104cf576104cf600080fd5b60006101fc84846104af565b6104e48161047d565b82525050565b6020810161048a82846104db565b6104a48161047d565b803561048a816104f8565b6000806040838503121561052257610522600080fd5b600061052e85856104af565b925050602061053f85828601610501565b9150509250929050565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561058557610585610549565b6040525050565b600061059760405190565b90506105a3828261055f565b919050565b600067ffffffffffffffff8211156105c2576105c2610549565b601f19601f83011660200192915050565b82818337506000910152565b60006105f26105ed846105a8565b61058c565b90508281526020810184848401111561060d5761060d600080fd5b6106188482856105d3565b509392505050565b600082601f83011261063457610634600080fd5b81356101fc8482602086016105df565b60008060006060848603121561065c5761065c600080fd5b600061066886866104af565b935050602061067986828701610501565b925050604084013567ffffffffffffffff81111561069957610699600080fd5b6106a586828701610620565b9150509250925092565b6000602082840312156106c4576106c4600080fd5b60006101fc8484610501565b635c60da1b60e01b815260005b5060040190565b600061048a826106d0565b805161048a816104f8565b60006020828403121561070f5761070f600080fd5b60006101fc84846106ef565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161048a565b60005b83811015610770578181015183820152602001610758565b50506000910152565b6000610783825190565b80845260208401935061079a818560208601610755565b601f01601f19169290920192915050565b604081016107b982856104db565b81810360208301526101fc8184610779565b6020808252810161048a81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b815260006106dd565b600061048a8261081556fea26469706673582212203b58938bc480699dc5b9a3a90f976b9179e4bbcc2d37584c8881a01abfb51dc764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x964 CODESIZE SUB DUP1 PUSH2 0x964 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xC5 JUMP JUMPDEST DUP1 PUSH2 0x39 DUP2 PUSH2 0x40 JUMP JUMPDEST POP POP PUSH2 0xEE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAC DUP2 PUSH2 0x90 JUMP JUMPDEST DUP2 EQ PUSH2 0xB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x9D DUP2 PUSH2 0xA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDA JUMPI PUSH2 0xDA PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE6 DUP5 DUP5 PUSH2 0xBA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x867 DUP1 PUSH2 0xFD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x15E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x4BA JUMP JUMPDEST PUSH2 0x17E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x204 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0xE8 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0x243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xCB PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x644 JUMP JUMPDEST PUSH2 0x2CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x6AF JUMP JUMPDEST PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BA JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x199 SWAP1 PUSH2 0x6E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x6FA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x237 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x241 PUSH1 0x0 PUSH2 0x42D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x26D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x299 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x329 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x299 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x406 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x7CB JUMP JUMPDEST PUSH2 0x40F DUP2 PUSH2 0x42D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x199 SWAP1 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x47D JUMP JUMPDEST PUSH2 0x4A4 DUP2 PUSH2 0x490 JUMP JUMPDEST DUP2 EQ PUSH2 0x40F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48A DUP2 PUSH2 0x49B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CF JUMPI PUSH2 0x4CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x4AF JUMP JUMPDEST PUSH2 0x4E4 DUP2 PUSH2 0x47D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48A DUP3 DUP5 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x4A4 DUP2 PUSH2 0x47D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48A DUP2 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x522 JUMPI PUSH2 0x522 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP6 DUP6 PUSH2 0x4AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x53F DUP6 DUP3 DUP7 ADD PUSH2 0x501 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x585 JUMPI PUSH2 0x585 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x597 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x5A3 DUP3 DUP3 PUSH2 0x55F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5C2 JUMPI PUSH2 0x5C2 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2 PUSH2 0x5ED DUP5 PUSH2 0x5A8 JUMP JUMPDEST PUSH2 0x58C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x60D JUMPI PUSH2 0x60D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x618 DUP5 DUP3 DUP6 PUSH2 0x5D3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x634 JUMPI PUSH2 0x634 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1FC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x65C JUMPI PUSH2 0x65C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x668 DUP7 DUP7 PUSH2 0x4AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x679 DUP7 DUP3 DUP8 ADD PUSH2 0x501 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x699 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A5 DUP7 DUP3 DUP8 ADD PUSH2 0x620 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C4 JUMPI PUSH2 0x6C4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x501 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x6D0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x48A DUP2 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x70F JUMPI PUSH2 0x70F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x48A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x770 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x758 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x783 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x79A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x755 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x7B9 DUP3 DUP6 PUSH2 0x4DB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1FC DUP2 DUP5 PUSH2 0x779 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48A DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH1 0x0 PUSH2 0x6DD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x815 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE PC SWAP4 DUP12 0xC4 DUP1 PUSH10 0x9DC5B9A3A90F976B9179 0xE4 0xBB 0xCC 0x2D CALLDATACOPY PC 0x4C DUP9 DUP2 LOG0 BYTE 0xBF 0xB5 SAR 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:59:-:0;;;473:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;516:12;942:32:53;516:12:59;942:18:53;:32::i;:::-;897:84;473:59:59;435:2470;;2291:187:53;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:53;;;-1:-1:-1;;;;;;2399:17:53;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;521:35;466:96;-1:-1:-1;;466:96:65:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;197:1;194;187:12;970:79;1090:1;1115:64;1171:7;1151:9;1115:64;:::i;:::-;1105:74;845:351;-1:-1:-1;;;;845:351:65:o;:::-;435:2470:59;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_msgSender_13048":{"entryPoint":null,"id":13048,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_11988":{"entryPoint":1069,"id":11988,"parameterSlots":1,"returnSlots":0},"@changeProxyAdmin_12534":{"entryPoint":579,"id":12534,"parameterSlots":2,"returnSlots":0},"@getProxyAdmin_12516":{"entryPoint":1042,"id":12516,"parameterSlots":1,"returnSlots":1},"@getProxyImplementation_12482":{"entryPoint":382,"id":12482,"parameterSlots":1,"returnSlots":1},"@owner_11917":{"entryPoint":null,"id":11917,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_11945":{"entryPoint":516,"id":11945,"parameterSlots":0,"returnSlots":0},"@transferOwnership_11968":{"entryPoint":950,"id":11968,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_12576":{"entryPoint":719,"id":12576,"parameterSlots":3,"returnSlots":0},"@upgrade_12552":{"entryPoint":864,"id":12552,"parameterSlots":2,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1503,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1281,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable_fromMemory":{"entryPoint":1775,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1568,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_TransparentUpgradeableProxy_$12741":{"entryPoint":1199,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1711,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payable_fromMemory":{"entryPoint":1786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741":{"entryPoint":1210,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_address":{"entryPoint":1292,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_addresst_bytes_memory_ptr":{"entryPoint":1604,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1243,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1913,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1744,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2069,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1764,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2086,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1258,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1963,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1995,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1819,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1420,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1448,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":1149,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_TransparentUpgradeableProxy_$12741":{"entryPoint":1168,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1491,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1877,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1375,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1353,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1272,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_TransparentUpgradeableProxy_$12741":{"entryPoint":1179,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12635:65","nodeType":"YulBlock","src":"0:12635:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"519:51:65","nodeType":"YulBlock","src":"519:51:65","statements":[{"nativeSrc":"529:35:65","nodeType":"YulAssignment","src":"529:35:65","value":{"arguments":[{"name":"value","nativeSrc":"558:5:65","nodeType":"YulIdentifier","src":"558:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"540:17:65","nodeType":"YulIdentifier","src":"540:17:65"},"nativeSrc":"540:24:65","nodeType":"YulFunctionCall","src":"540:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"529:7:65","nodeType":"YulIdentifier","src":"529:7:65"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"466:104:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"501:5:65","nodeType":"YulTypedName","src":"501:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"511:7:65","nodeType":"YulTypedName","src":"511:7:65","type":""}],"src":"466:104:65"},{"body":{"nativeSrc":"658:59:65","nodeType":"YulBlock","src":"658:59:65","statements":[{"nativeSrc":"668:43:65","nodeType":"YulAssignment","src":"668:43:65","value":{"arguments":[{"name":"value","nativeSrc":"705:5:65","nodeType":"YulIdentifier","src":"705:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"679:25:65","nodeType":"YulIdentifier","src":"679:25:65"},"nativeSrc":"679:32:65","nodeType":"YulFunctionCall","src":"679:32:65"},"variableNames":[{"name":"cleaned","nativeSrc":"668:7:65","nodeType":"YulIdentifier","src":"668:7:65"}]}]},"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"576:141:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"640:5:65","nodeType":"YulTypedName","src":"640:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"650:7:65","nodeType":"YulTypedName","src":"650:7:65","type":""}],"src":"576:141:65"},{"body":{"nativeSrc":"803:116:65","nodeType":"YulBlock","src":"803:116:65","statements":[{"body":{"nativeSrc":"897:16:65","nodeType":"YulBlock","src":"897:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"906:1:65","nodeType":"YulLiteral","src":"906:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"909:1:65","nodeType":"YulLiteral","src":"909:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"899:6:65","nodeType":"YulIdentifier","src":"899:6:65"},"nativeSrc":"899:12:65","nodeType":"YulFunctionCall","src":"899:12:65"},"nativeSrc":"899:12:65","nodeType":"YulExpressionStatement","src":"899:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"826:5:65","nodeType":"YulIdentifier","src":"826:5:65"},{"arguments":[{"name":"value","nativeSrc":"888:5:65","nodeType":"YulIdentifier","src":"888:5:65"}],"functionName":{"name":"cleanup_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"833:54:65","nodeType":"YulIdentifier","src":"833:54:65"},"nativeSrc":"833:61:65","nodeType":"YulFunctionCall","src":"833:61:65"}],"functionName":{"name":"eq","nativeSrc":"823:2:65","nodeType":"YulIdentifier","src":"823:2:65"},"nativeSrc":"823:72:65","nodeType":"YulFunctionCall","src":"823:72:65"}],"functionName":{"name":"iszero","nativeSrc":"816:6:65","nodeType":"YulIdentifier","src":"816:6:65"},"nativeSrc":"816:80:65","nodeType":"YulFunctionCall","src":"816:80:65"},"nativeSrc":"813:100:65","nodeType":"YulIf","src":"813:100:65"}]},"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"723:196:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"796:5:65","nodeType":"YulTypedName","src":"796:5:65","type":""}],"src":"723:196:65"},{"body":{"nativeSrc":"1014:124:65","nodeType":"YulBlock","src":"1014:124:65","statements":[{"nativeSrc":"1024:29:65","nodeType":"YulAssignment","src":"1024:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1046:6:65","nodeType":"YulIdentifier","src":"1046:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1033:12:65","nodeType":"YulIdentifier","src":"1033:12:65"},"nativeSrc":"1033:20:65","nodeType":"YulFunctionCall","src":"1033:20:65"},"variableNames":[{"name":"value","nativeSrc":"1024:5:65","nodeType":"YulIdentifier","src":"1024:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1126:5:65","nodeType":"YulIdentifier","src":"1126:5:65"}],"functionName":{"name":"validator_revert_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"1062:63:65","nodeType":"YulIdentifier","src":"1062:63:65"},"nativeSrc":"1062:70:65","nodeType":"YulFunctionCall","src":"1062:70:65"},"nativeSrc":"1062:70:65","nodeType":"YulExpressionStatement","src":"1062:70:65"}]},"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"925:213:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"992:6:65","nodeType":"YulTypedName","src":"992:6:65","type":""},{"name":"end","nativeSrc":"1000:3:65","nodeType":"YulTypedName","src":"1000:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1008:5:65","nodeType":"YulTypedName","src":"1008:5:65","type":""}],"src":"925:213:65"},{"body":{"nativeSrc":"1247:300:65","nodeType":"YulBlock","src":"1247:300:65","statements":[{"body":{"nativeSrc":"1293:83:65","nodeType":"YulBlock","src":"1293:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1295:77:65","nodeType":"YulIdentifier","src":"1295:77:65"},"nativeSrc":"1295:79:65","nodeType":"YulFunctionCall","src":"1295:79:65"},"nativeSrc":"1295:79:65","nodeType":"YulExpressionStatement","src":"1295:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1268:7:65","nodeType":"YulIdentifier","src":"1268:7:65"},{"name":"headStart","nativeSrc":"1277:9:65","nodeType":"YulIdentifier","src":"1277:9:65"}],"functionName":{"name":"sub","nativeSrc":"1264:3:65","nodeType":"YulIdentifier","src":"1264:3:65"},"nativeSrc":"1264:23:65","nodeType":"YulFunctionCall","src":"1264:23:65"},{"kind":"number","nativeSrc":"1289:2:65","nodeType":"YulLiteral","src":"1289:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1260:3:65","nodeType":"YulIdentifier","src":"1260:3:65"},"nativeSrc":"1260:32:65","nodeType":"YulFunctionCall","src":"1260:32:65"},"nativeSrc":"1257:119:65","nodeType":"YulIf","src":"1257:119:65"},{"nativeSrc":"1386:154:65","nodeType":"YulBlock","src":"1386:154:65","statements":[{"nativeSrc":"1401:15:65","nodeType":"YulVariableDeclaration","src":"1401:15:65","value":{"kind":"number","nativeSrc":"1415:1:65","nodeType":"YulLiteral","src":"1415:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1405:6:65","nodeType":"YulTypedName","src":"1405:6:65","type":""}]},{"nativeSrc":"1430:100:65","nodeType":"YulAssignment","src":"1430:100:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1502:9:65","nodeType":"YulIdentifier","src":"1502:9:65"},{"name":"offset","nativeSrc":"1513:6:65","nodeType":"YulIdentifier","src":"1513:6:65"}],"functionName":{"name":"add","nativeSrc":"1498:3:65","nodeType":"YulIdentifier","src":"1498:3:65"},"nativeSrc":"1498:22:65","nodeType":"YulFunctionCall","src":"1498:22:65"},{"name":"dataEnd","nativeSrc":"1522:7:65","nodeType":"YulIdentifier","src":"1522:7:65"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"1440:57:65","nodeType":"YulIdentifier","src":"1440:57:65"},"nativeSrc":"1440:90:65","nodeType":"YulFunctionCall","src":"1440:90:65"},"variableNames":[{"name":"value0","nativeSrc":"1430:6:65","nodeType":"YulIdentifier","src":"1430:6:65"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"1144:403:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1217:9:65","nodeType":"YulTypedName","src":"1217:9:65","type":""},{"name":"dataEnd","nativeSrc":"1228:7:65","nodeType":"YulTypedName","src":"1228:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1240:6:65","nodeType":"YulTypedName","src":"1240:6:65","type":""}],"src":"1144:403:65"},{"body":{"nativeSrc":"1598:51:65","nodeType":"YulBlock","src":"1598:51:65","statements":[{"nativeSrc":"1608:35:65","nodeType":"YulAssignment","src":"1608:35:65","value":{"arguments":[{"name":"value","nativeSrc":"1637:5:65","nodeType":"YulIdentifier","src":"1637:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1619:17:65","nodeType":"YulIdentifier","src":"1619:17:65"},"nativeSrc":"1619:24:65","nodeType":"YulFunctionCall","src":"1619:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"1608:7:65","nodeType":"YulIdentifier","src":"1608:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"1553:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1580:5:65","nodeType":"YulTypedName","src":"1580:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1590:7:65","nodeType":"YulTypedName","src":"1590:7:65","type":""}],"src":"1553:96:65"},{"body":{"nativeSrc":"1720:53:65","nodeType":"YulBlock","src":"1720:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1737:3:65","nodeType":"YulIdentifier","src":"1737:3:65"},{"arguments":[{"name":"value","nativeSrc":"1760:5:65","nodeType":"YulIdentifier","src":"1760:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1742:17:65","nodeType":"YulIdentifier","src":"1742:17:65"},"nativeSrc":"1742:24:65","nodeType":"YulFunctionCall","src":"1742:24:65"}],"functionName":{"name":"mstore","nativeSrc":"1730:6:65","nodeType":"YulIdentifier","src":"1730:6:65"},"nativeSrc":"1730:37:65","nodeType":"YulFunctionCall","src":"1730:37:65"},"nativeSrc":"1730:37:65","nodeType":"YulExpressionStatement","src":"1730:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1655:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1708:5:65","nodeType":"YulTypedName","src":"1708:5:65","type":""},{"name":"pos","nativeSrc":"1715:3:65","nodeType":"YulTypedName","src":"1715:3:65","type":""}],"src":"1655:118:65"},{"body":{"nativeSrc":"1877:124:65","nodeType":"YulBlock","src":"1877:124:65","statements":[{"nativeSrc":"1887:26:65","nodeType":"YulAssignment","src":"1887:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"1899:9:65","nodeType":"YulIdentifier","src":"1899:9:65"},{"kind":"number","nativeSrc":"1910:2:65","nodeType":"YulLiteral","src":"1910:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1895:3:65","nodeType":"YulIdentifier","src":"1895:3:65"},"nativeSrc":"1895:18:65","nodeType":"YulFunctionCall","src":"1895:18:65"},"variableNames":[{"name":"tail","nativeSrc":"1887:4:65","nodeType":"YulIdentifier","src":"1887:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1967:6:65","nodeType":"YulIdentifier","src":"1967:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"1980:9:65","nodeType":"YulIdentifier","src":"1980:9:65"},{"kind":"number","nativeSrc":"1991:1:65","nodeType":"YulLiteral","src":"1991:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1976:3:65","nodeType":"YulIdentifier","src":"1976:3:65"},"nativeSrc":"1976:17:65","nodeType":"YulFunctionCall","src":"1976:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1923:43:65","nodeType":"YulIdentifier","src":"1923:43:65"},"nativeSrc":"1923:71:65","nodeType":"YulFunctionCall","src":"1923:71:65"},"nativeSrc":"1923:71:65","nodeType":"YulExpressionStatement","src":"1923:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1779:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1849:9:65","nodeType":"YulTypedName","src":"1849:9:65","type":""},{"name":"value0","nativeSrc":"1861:6:65","nodeType":"YulTypedName","src":"1861:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1872:4:65","nodeType":"YulTypedName","src":"1872:4:65","type":""}],"src":"1779:222:65"},{"body":{"nativeSrc":"2050:79:65","nodeType":"YulBlock","src":"2050:79:65","statements":[{"body":{"nativeSrc":"2107:16:65","nodeType":"YulBlock","src":"2107:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2116:1:65","nodeType":"YulLiteral","src":"2116:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2119:1:65","nodeType":"YulLiteral","src":"2119:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2109:6:65","nodeType":"YulIdentifier","src":"2109:6:65"},"nativeSrc":"2109:12:65","nodeType":"YulFunctionCall","src":"2109:12:65"},"nativeSrc":"2109:12:65","nodeType":"YulExpressionStatement","src":"2109:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2073:5:65","nodeType":"YulIdentifier","src":"2073:5:65"},{"arguments":[{"name":"value","nativeSrc":"2098:5:65","nodeType":"YulIdentifier","src":"2098:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2080:17:65","nodeType":"YulIdentifier","src":"2080:17:65"},"nativeSrc":"2080:24:65","nodeType":"YulFunctionCall","src":"2080:24:65"}],"functionName":{"name":"eq","nativeSrc":"2070:2:65","nodeType":"YulIdentifier","src":"2070:2:65"},"nativeSrc":"2070:35:65","nodeType":"YulFunctionCall","src":"2070:35:65"}],"functionName":{"name":"iszero","nativeSrc":"2063:6:65","nodeType":"YulIdentifier","src":"2063:6:65"},"nativeSrc":"2063:43:65","nodeType":"YulFunctionCall","src":"2063:43:65"},"nativeSrc":"2060:63:65","nodeType":"YulIf","src":"2060:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"2007:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2043:5:65","nodeType":"YulTypedName","src":"2043:5:65","type":""}],"src":"2007:122:65"},{"body":{"nativeSrc":"2187:87:65","nodeType":"YulBlock","src":"2187:87:65","statements":[{"nativeSrc":"2197:29:65","nodeType":"YulAssignment","src":"2197:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"2219:6:65","nodeType":"YulIdentifier","src":"2219:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"2206:12:65","nodeType":"YulIdentifier","src":"2206:12:65"},"nativeSrc":"2206:20:65","nodeType":"YulFunctionCall","src":"2206:20:65"},"variableNames":[{"name":"value","nativeSrc":"2197:5:65","nodeType":"YulIdentifier","src":"2197:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2262:5:65","nodeType":"YulIdentifier","src":"2262:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2235:26:65","nodeType":"YulIdentifier","src":"2235:26:65"},"nativeSrc":"2235:33:65","nodeType":"YulFunctionCall","src":"2235:33:65"},"nativeSrc":"2235:33:65","nodeType":"YulExpressionStatement","src":"2235:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"2135:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2165:6:65","nodeType":"YulTypedName","src":"2165:6:65","type":""},{"name":"end","nativeSrc":"2173:3:65","nodeType":"YulTypedName","src":"2173:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2181:5:65","nodeType":"YulTypedName","src":"2181:5:65","type":""}],"src":"2135:139:65"},{"body":{"nativeSrc":"2400:428:65","nodeType":"YulBlock","src":"2400:428:65","statements":[{"body":{"nativeSrc":"2446:83:65","nodeType":"YulBlock","src":"2446:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2448:77:65","nodeType":"YulIdentifier","src":"2448:77:65"},"nativeSrc":"2448:79:65","nodeType":"YulFunctionCall","src":"2448:79:65"},"nativeSrc":"2448:79:65","nodeType":"YulExpressionStatement","src":"2448:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2421:7:65","nodeType":"YulIdentifier","src":"2421:7:65"},{"name":"headStart","nativeSrc":"2430:9:65","nodeType":"YulIdentifier","src":"2430:9:65"}],"functionName":{"name":"sub","nativeSrc":"2417:3:65","nodeType":"YulIdentifier","src":"2417:3:65"},"nativeSrc":"2417:23:65","nodeType":"YulFunctionCall","src":"2417:23:65"},{"kind":"number","nativeSrc":"2442:2:65","nodeType":"YulLiteral","src":"2442:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2413:3:65","nodeType":"YulIdentifier","src":"2413:3:65"},"nativeSrc":"2413:32:65","nodeType":"YulFunctionCall","src":"2413:32:65"},"nativeSrc":"2410:119:65","nodeType":"YulIf","src":"2410:119:65"},{"nativeSrc":"2539:154:65","nodeType":"YulBlock","src":"2539:154:65","statements":[{"nativeSrc":"2554:15:65","nodeType":"YulVariableDeclaration","src":"2554:15:65","value":{"kind":"number","nativeSrc":"2568:1:65","nodeType":"YulLiteral","src":"2568:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2558:6:65","nodeType":"YulTypedName","src":"2558:6:65","type":""}]},{"nativeSrc":"2583:100:65","nodeType":"YulAssignment","src":"2583:100:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2655:9:65","nodeType":"YulIdentifier","src":"2655:9:65"},{"name":"offset","nativeSrc":"2666:6:65","nodeType":"YulIdentifier","src":"2666:6:65"}],"functionName":{"name":"add","nativeSrc":"2651:3:65","nodeType":"YulIdentifier","src":"2651:3:65"},"nativeSrc":"2651:22:65","nodeType":"YulFunctionCall","src":"2651:22:65"},{"name":"dataEnd","nativeSrc":"2675:7:65","nodeType":"YulIdentifier","src":"2675:7:65"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"2593:57:65","nodeType":"YulIdentifier","src":"2593:57:65"},"nativeSrc":"2593:90:65","nodeType":"YulFunctionCall","src":"2593:90:65"},"variableNames":[{"name":"value0","nativeSrc":"2583:6:65","nodeType":"YulIdentifier","src":"2583:6:65"}]}]},{"nativeSrc":"2703:118:65","nodeType":"YulBlock","src":"2703:118:65","statements":[{"nativeSrc":"2718:16:65","nodeType":"YulVariableDeclaration","src":"2718:16:65","value":{"kind":"number","nativeSrc":"2732:2:65","nodeType":"YulLiteral","src":"2732:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2722:6:65","nodeType":"YulTypedName","src":"2722:6:65","type":""}]},{"nativeSrc":"2748:63:65","nodeType":"YulAssignment","src":"2748:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2783:9:65","nodeType":"YulIdentifier","src":"2783:9:65"},{"name":"offset","nativeSrc":"2794:6:65","nodeType":"YulIdentifier","src":"2794:6:65"}],"functionName":{"name":"add","nativeSrc":"2779:3:65","nodeType":"YulIdentifier","src":"2779:3:65"},"nativeSrc":"2779:22:65","nodeType":"YulFunctionCall","src":"2779:22:65"},{"name":"dataEnd","nativeSrc":"2803:7:65","nodeType":"YulIdentifier","src":"2803:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2758:20:65","nodeType":"YulIdentifier","src":"2758:20:65"},"nativeSrc":"2758:53:65","nodeType":"YulFunctionCall","src":"2758:53:65"},"variableNames":[{"name":"value1","nativeSrc":"2748:6:65","nodeType":"YulIdentifier","src":"2748:6:65"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_address","nativeSrc":"2280:548:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2362:9:65","nodeType":"YulTypedName","src":"2362:9:65","type":""},{"name":"dataEnd","nativeSrc":"2373:7:65","nodeType":"YulTypedName","src":"2373:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2385:6:65","nodeType":"YulTypedName","src":"2385:6:65","type":""},{"name":"value1","nativeSrc":"2393:6:65","nodeType":"YulTypedName","src":"2393:6:65","type":""}],"src":"2280:548:65"},{"body":{"nativeSrc":"2923:28:65","nodeType":"YulBlock","src":"2923:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2940:1:65","nodeType":"YulLiteral","src":"2940:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"2943:1:65","nodeType":"YulLiteral","src":"2943:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2933:6:65","nodeType":"YulIdentifier","src":"2933:6:65"},"nativeSrc":"2933:12:65","nodeType":"YulFunctionCall","src":"2933:12:65"},"nativeSrc":"2933:12:65","nodeType":"YulExpressionStatement","src":"2933:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2834:117:65","nodeType":"YulFunctionDefinition","src":"2834:117:65"},{"body":{"nativeSrc":"3046:28:65","nodeType":"YulBlock","src":"3046:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3063:1:65","nodeType":"YulLiteral","src":"3063:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3066:1:65","nodeType":"YulLiteral","src":"3066:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3056:6:65","nodeType":"YulIdentifier","src":"3056:6:65"},"nativeSrc":"3056:12:65","nodeType":"YulFunctionCall","src":"3056:12:65"},"nativeSrc":"3056:12:65","nodeType":"YulExpressionStatement","src":"3056:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2957:117:65","nodeType":"YulFunctionDefinition","src":"2957:117:65"},{"body":{"nativeSrc":"3128:54:65","nodeType":"YulBlock","src":"3128:54:65","statements":[{"nativeSrc":"3138:38:65","nodeType":"YulAssignment","src":"3138:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3156:5:65","nodeType":"YulIdentifier","src":"3156:5:65"},{"kind":"number","nativeSrc":"3163:2:65","nodeType":"YulLiteral","src":"3163:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3152:3:65","nodeType":"YulIdentifier","src":"3152:3:65"},"nativeSrc":"3152:14:65","nodeType":"YulFunctionCall","src":"3152:14:65"},{"arguments":[{"kind":"number","nativeSrc":"3172:2:65","nodeType":"YulLiteral","src":"3172:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3168:3:65","nodeType":"YulIdentifier","src":"3168:3:65"},"nativeSrc":"3168:7:65","nodeType":"YulFunctionCall","src":"3168:7:65"}],"functionName":{"name":"and","nativeSrc":"3148:3:65","nodeType":"YulIdentifier","src":"3148:3:65"},"nativeSrc":"3148:28:65","nodeType":"YulFunctionCall","src":"3148:28:65"},"variableNames":[{"name":"result","nativeSrc":"3138:6:65","nodeType":"YulIdentifier","src":"3138:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3080:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3111:5:65","nodeType":"YulTypedName","src":"3111:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3121:6:65","nodeType":"YulTypedName","src":"3121:6:65","type":""}],"src":"3080:102:65"},{"body":{"nativeSrc":"3216:152:65","nodeType":"YulBlock","src":"3216:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3233:1:65","nodeType":"YulLiteral","src":"3233:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3236:77:65","nodeType":"YulLiteral","src":"3236:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3226:6:65","nodeType":"YulIdentifier","src":"3226:6:65"},"nativeSrc":"3226:88:65","nodeType":"YulFunctionCall","src":"3226:88:65"},"nativeSrc":"3226:88:65","nodeType":"YulExpressionStatement","src":"3226:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3330:1:65","nodeType":"YulLiteral","src":"3330:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"3333:4:65","nodeType":"YulLiteral","src":"3333:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3323:6:65","nodeType":"YulIdentifier","src":"3323:6:65"},"nativeSrc":"3323:15:65","nodeType":"YulFunctionCall","src":"3323:15:65"},"nativeSrc":"3323:15:65","nodeType":"YulExpressionStatement","src":"3323:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3354:1:65","nodeType":"YulLiteral","src":"3354:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"3357:4:65","nodeType":"YulLiteral","src":"3357:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3347:6:65","nodeType":"YulIdentifier","src":"3347:6:65"},"nativeSrc":"3347:15:65","nodeType":"YulFunctionCall","src":"3347:15:65"},"nativeSrc":"3347:15:65","nodeType":"YulExpressionStatement","src":"3347:15:65"}]},"name":"panic_error_0x41","nativeSrc":"3188:180:65","nodeType":"YulFunctionDefinition","src":"3188:180:65"},{"body":{"nativeSrc":"3417:238:65","nodeType":"YulBlock","src":"3417:238:65","statements":[{"nativeSrc":"3427:58:65","nodeType":"YulVariableDeclaration","src":"3427:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:65","nodeType":"YulIdentifier","src":"3449:6:65"},{"arguments":[{"name":"size","nativeSrc":"3479:4:65","nodeType":"YulIdentifier","src":"3479:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3457:21:65","nodeType":"YulIdentifier","src":"3457:21:65"},"nativeSrc":"3457:27:65","nodeType":"YulFunctionCall","src":"3457:27:65"}],"functionName":{"name":"add","nativeSrc":"3445:3:65","nodeType":"YulIdentifier","src":"3445:3:65"},"nativeSrc":"3445:40:65","nodeType":"YulFunctionCall","src":"3445:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"3431:10:65","nodeType":"YulTypedName","src":"3431:10:65","type":""}]},{"body":{"nativeSrc":"3596:22:65","nodeType":"YulBlock","src":"3596:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3598:16:65","nodeType":"YulIdentifier","src":"3598:16:65"},"nativeSrc":"3598:18:65","nodeType":"YulFunctionCall","src":"3598:18:65"},"nativeSrc":"3598:18:65","nodeType":"YulExpressionStatement","src":"3598:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"3539:10:65","nodeType":"YulIdentifier","src":"3539:10:65"},{"kind":"number","nativeSrc":"3551:18:65","nodeType":"YulLiteral","src":"3551:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3536:2:65","nodeType":"YulIdentifier","src":"3536:2:65"},"nativeSrc":"3536:34:65","nodeType":"YulFunctionCall","src":"3536:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"3575:10:65","nodeType":"YulIdentifier","src":"3575:10:65"},{"name":"memPtr","nativeSrc":"3587:6:65","nodeType":"YulIdentifier","src":"3587:6:65"}],"functionName":{"name":"lt","nativeSrc":"3572:2:65","nodeType":"YulIdentifier","src":"3572:2:65"},"nativeSrc":"3572:22:65","nodeType":"YulFunctionCall","src":"3572:22:65"}],"functionName":{"name":"or","nativeSrc":"3533:2:65","nodeType":"YulIdentifier","src":"3533:2:65"},"nativeSrc":"3533:62:65","nodeType":"YulFunctionCall","src":"3533:62:65"},"nativeSrc":"3530:88:65","nodeType":"YulIf","src":"3530:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3634:2:65","nodeType":"YulLiteral","src":"3634:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"3638:10:65","nodeType":"YulIdentifier","src":"3638:10:65"}],"functionName":{"name":"mstore","nativeSrc":"3627:6:65","nodeType":"YulIdentifier","src":"3627:6:65"},"nativeSrc":"3627:22:65","nodeType":"YulFunctionCall","src":"3627:22:65"},"nativeSrc":"3627:22:65","nodeType":"YulExpressionStatement","src":"3627:22:65"}]},"name":"finalize_allocation","nativeSrc":"3374:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3403:6:65","nodeType":"YulTypedName","src":"3403:6:65","type":""},{"name":"size","nativeSrc":"3411:4:65","nodeType":"YulTypedName","src":"3411:4:65","type":""}],"src":"3374:281:65"},{"body":{"nativeSrc":"3702:88:65","nodeType":"YulBlock","src":"3702:88:65","statements":[{"nativeSrc":"3712:30:65","nodeType":"YulAssignment","src":"3712:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"3722:18:65","nodeType":"YulIdentifier","src":"3722:18:65"},"nativeSrc":"3722:20:65","nodeType":"YulFunctionCall","src":"3722:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"3712:6:65","nodeType":"YulIdentifier","src":"3712:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"3771:6:65","nodeType":"YulIdentifier","src":"3771:6:65"},{"name":"size","nativeSrc":"3779:4:65","nodeType":"YulIdentifier","src":"3779:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"3751:19:65","nodeType":"YulIdentifier","src":"3751:19:65"},"nativeSrc":"3751:33:65","nodeType":"YulFunctionCall","src":"3751:33:65"},"nativeSrc":"3751:33:65","nodeType":"YulExpressionStatement","src":"3751:33:65"}]},"name":"allocate_memory","nativeSrc":"3661:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"3686:4:65","nodeType":"YulTypedName","src":"3686:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"3695:6:65","nodeType":"YulTypedName","src":"3695:6:65","type":""}],"src":"3661:129:65"},{"body":{"nativeSrc":"3862:241:65","nodeType":"YulBlock","src":"3862:241:65","statements":[{"body":{"nativeSrc":"3967:22:65","nodeType":"YulBlock","src":"3967:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3969:16:65","nodeType":"YulIdentifier","src":"3969:16:65"},"nativeSrc":"3969:18:65","nodeType":"YulFunctionCall","src":"3969:18:65"},"nativeSrc":"3969:18:65","nodeType":"YulExpressionStatement","src":"3969:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3939:6:65","nodeType":"YulIdentifier","src":"3939:6:65"},{"kind":"number","nativeSrc":"3947:18:65","nodeType":"YulLiteral","src":"3947:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3936:2:65","nodeType":"YulIdentifier","src":"3936:2:65"},"nativeSrc":"3936:30:65","nodeType":"YulFunctionCall","src":"3936:30:65"},"nativeSrc":"3933:56:65","nodeType":"YulIf","src":"3933:56:65"},{"nativeSrc":"3999:37:65","nodeType":"YulAssignment","src":"3999:37:65","value":{"arguments":[{"name":"length","nativeSrc":"4029:6:65","nodeType":"YulIdentifier","src":"4029:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4007:21:65","nodeType":"YulIdentifier","src":"4007:21:65"},"nativeSrc":"4007:29:65","nodeType":"YulFunctionCall","src":"4007:29:65"},"variableNames":[{"name":"size","nativeSrc":"3999:4:65","nodeType":"YulIdentifier","src":"3999:4:65"}]},{"nativeSrc":"4073:23:65","nodeType":"YulAssignment","src":"4073:23:65","value":{"arguments":[{"name":"size","nativeSrc":"4085:4:65","nodeType":"YulIdentifier","src":"4085:4:65"},{"kind":"number","nativeSrc":"4091:4:65","nodeType":"YulLiteral","src":"4091:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4081:3:65","nodeType":"YulIdentifier","src":"4081:3:65"},"nativeSrc":"4081:15:65","nodeType":"YulFunctionCall","src":"4081:15:65"},"variableNames":[{"name":"size","nativeSrc":"4073:4:65","nodeType":"YulIdentifier","src":"4073:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3796:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3846:6:65","nodeType":"YulTypedName","src":"3846:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3857:4:65","nodeType":"YulTypedName","src":"3857:4:65","type":""}],"src":"3796:307:65"},{"body":{"nativeSrc":"4173:84:65","nodeType":"YulBlock","src":"4173:84:65","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4197:3:65","nodeType":"YulIdentifier","src":"4197:3:65"},{"name":"src","nativeSrc":"4202:3:65","nodeType":"YulIdentifier","src":"4202:3:65"},{"name":"length","nativeSrc":"4207:6:65","nodeType":"YulIdentifier","src":"4207:6:65"}],"functionName":{"name":"calldatacopy","nativeSrc":"4184:12:65","nodeType":"YulIdentifier","src":"4184:12:65"},"nativeSrc":"4184:30:65","nodeType":"YulFunctionCall","src":"4184:30:65"},"nativeSrc":"4184:30:65","nodeType":"YulExpressionStatement","src":"4184:30:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4234:3:65","nodeType":"YulIdentifier","src":"4234:3:65"},{"name":"length","nativeSrc":"4239:6:65","nodeType":"YulIdentifier","src":"4239:6:65"}],"functionName":{"name":"add","nativeSrc":"4230:3:65","nodeType":"YulIdentifier","src":"4230:3:65"},"nativeSrc":"4230:16:65","nodeType":"YulFunctionCall","src":"4230:16:65"},{"kind":"number","nativeSrc":"4248:1:65","nodeType":"YulLiteral","src":"4248:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4223:6:65","nodeType":"YulIdentifier","src":"4223:6:65"},"nativeSrc":"4223:27:65","nodeType":"YulFunctionCall","src":"4223:27:65"},"nativeSrc":"4223:27:65","nodeType":"YulExpressionStatement","src":"4223:27:65"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4109:148:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4155:3:65","nodeType":"YulTypedName","src":"4155:3:65","type":""},{"name":"dst","nativeSrc":"4160:3:65","nodeType":"YulTypedName","src":"4160:3:65","type":""},{"name":"length","nativeSrc":"4165:6:65","nodeType":"YulTypedName","src":"4165:6:65","type":""}],"src":"4109:148:65"},{"body":{"nativeSrc":"4346:340:65","nodeType":"YulBlock","src":"4346:340:65","statements":[{"nativeSrc":"4356:74:65","nodeType":"YulAssignment","src":"4356:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4422:6:65","nodeType":"YulIdentifier","src":"4422:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"4381:40:65","nodeType":"YulIdentifier","src":"4381:40:65"},"nativeSrc":"4381:48:65","nodeType":"YulFunctionCall","src":"4381:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"4365:15:65","nodeType":"YulIdentifier","src":"4365:15:65"},"nativeSrc":"4365:65:65","nodeType":"YulFunctionCall","src":"4365:65:65"},"variableNames":[{"name":"array","nativeSrc":"4356:5:65","nodeType":"YulIdentifier","src":"4356:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"4446:5:65","nodeType":"YulIdentifier","src":"4446:5:65"},{"name":"length","nativeSrc":"4453:6:65","nodeType":"YulIdentifier","src":"4453:6:65"}],"functionName":{"name":"mstore","nativeSrc":"4439:6:65","nodeType":"YulIdentifier","src":"4439:6:65"},"nativeSrc":"4439:21:65","nodeType":"YulFunctionCall","src":"4439:21:65"},"nativeSrc":"4439:21:65","nodeType":"YulExpressionStatement","src":"4439:21:65"},{"nativeSrc":"4469:27:65","nodeType":"YulVariableDeclaration","src":"4469:27:65","value":{"arguments":[{"name":"array","nativeSrc":"4484:5:65","nodeType":"YulIdentifier","src":"4484:5:65"},{"kind":"number","nativeSrc":"4491:4:65","nodeType":"YulLiteral","src":"4491:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4480:3:65","nodeType":"YulIdentifier","src":"4480:3:65"},"nativeSrc":"4480:16:65","nodeType":"YulFunctionCall","src":"4480:16:65"},"variables":[{"name":"dst","nativeSrc":"4473:3:65","nodeType":"YulTypedName","src":"4473:3:65","type":""}]},{"body":{"nativeSrc":"4534:83:65","nodeType":"YulBlock","src":"4534:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"4536:77:65","nodeType":"YulIdentifier","src":"4536:77:65"},"nativeSrc":"4536:79:65","nodeType":"YulFunctionCall","src":"4536:79:65"},"nativeSrc":"4536:79:65","nodeType":"YulExpressionStatement","src":"4536:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4515:3:65","nodeType":"YulIdentifier","src":"4515:3:65"},{"name":"length","nativeSrc":"4520:6:65","nodeType":"YulIdentifier","src":"4520:6:65"}],"functionName":{"name":"add","nativeSrc":"4511:3:65","nodeType":"YulIdentifier","src":"4511:3:65"},"nativeSrc":"4511:16:65","nodeType":"YulFunctionCall","src":"4511:16:65"},{"name":"end","nativeSrc":"4529:3:65","nodeType":"YulIdentifier","src":"4529:3:65"}],"functionName":{"name":"gt","nativeSrc":"4508:2:65","nodeType":"YulIdentifier","src":"4508:2:65"},"nativeSrc":"4508:25:65","nodeType":"YulFunctionCall","src":"4508:25:65"},"nativeSrc":"4505:112:65","nodeType":"YulIf","src":"4505:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"4663:3:65","nodeType":"YulIdentifier","src":"4663:3:65"},{"name":"dst","nativeSrc":"4668:3:65","nodeType":"YulIdentifier","src":"4668:3:65"},{"name":"length","nativeSrc":"4673:6:65","nodeType":"YulIdentifier","src":"4673:6:65"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4626:36:65","nodeType":"YulIdentifier","src":"4626:36:65"},"nativeSrc":"4626:54:65","nodeType":"YulFunctionCall","src":"4626:54:65"},"nativeSrc":"4626:54:65","nodeType":"YulExpressionStatement","src":"4626:54:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4263:423:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4319:3:65","nodeType":"YulTypedName","src":"4319:3:65","type":""},{"name":"length","nativeSrc":"4324:6:65","nodeType":"YulTypedName","src":"4324:6:65","type":""},{"name":"end","nativeSrc":"4332:3:65","nodeType":"YulTypedName","src":"4332:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4340:5:65","nodeType":"YulTypedName","src":"4340:5:65","type":""}],"src":"4263:423:65"},{"body":{"nativeSrc":"4766:277:65","nodeType":"YulBlock","src":"4766:277:65","statements":[{"body":{"nativeSrc":"4815:83:65","nodeType":"YulBlock","src":"4815:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4817:77:65","nodeType":"YulIdentifier","src":"4817:77:65"},"nativeSrc":"4817:79:65","nodeType":"YulFunctionCall","src":"4817:79:65"},"nativeSrc":"4817:79:65","nodeType":"YulExpressionStatement","src":"4817:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4794:6:65","nodeType":"YulIdentifier","src":"4794:6:65"},{"kind":"number","nativeSrc":"4802:4:65","nodeType":"YulLiteral","src":"4802:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4790:3:65","nodeType":"YulIdentifier","src":"4790:3:65"},"nativeSrc":"4790:17:65","nodeType":"YulFunctionCall","src":"4790:17:65"},{"name":"end","nativeSrc":"4809:3:65","nodeType":"YulIdentifier","src":"4809:3:65"}],"functionName":{"name":"slt","nativeSrc":"4786:3:65","nodeType":"YulIdentifier","src":"4786:3:65"},"nativeSrc":"4786:27:65","nodeType":"YulFunctionCall","src":"4786:27:65"}],"functionName":{"name":"iszero","nativeSrc":"4779:6:65","nodeType":"YulIdentifier","src":"4779:6:65"},"nativeSrc":"4779:35:65","nodeType":"YulFunctionCall","src":"4779:35:65"},"nativeSrc":"4776:122:65","nodeType":"YulIf","src":"4776:122:65"},{"nativeSrc":"4907:34:65","nodeType":"YulVariableDeclaration","src":"4907:34:65","value":{"arguments":[{"name":"offset","nativeSrc":"4934:6:65","nodeType":"YulIdentifier","src":"4934:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"4921:12:65","nodeType":"YulIdentifier","src":"4921:12:65"},"nativeSrc":"4921:20:65","nodeType":"YulFunctionCall","src":"4921:20:65"},"variables":[{"name":"length","nativeSrc":"4911:6:65","nodeType":"YulTypedName","src":"4911:6:65","type":""}]},{"nativeSrc":"4950:87:65","nodeType":"YulAssignment","src":"4950:87:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5010:6:65","nodeType":"YulIdentifier","src":"5010:6:65"},{"kind":"number","nativeSrc":"5018:4:65","nodeType":"YulLiteral","src":"5018:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5006:3:65","nodeType":"YulIdentifier","src":"5006:3:65"},"nativeSrc":"5006:17:65","nodeType":"YulFunctionCall","src":"5006:17:65"},{"name":"length","nativeSrc":"5025:6:65","nodeType":"YulIdentifier","src":"5025:6:65"},{"name":"end","nativeSrc":"5033:3:65","nodeType":"YulIdentifier","src":"5033:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"4959:46:65","nodeType":"YulIdentifier","src":"4959:46:65"},"nativeSrc":"4959:78:65","nodeType":"YulFunctionCall","src":"4959:78:65"},"variableNames":[{"name":"array","nativeSrc":"4950:5:65","nodeType":"YulIdentifier","src":"4950:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4705:338:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4744:6:65","nodeType":"YulTypedName","src":"4744:6:65","type":""},{"name":"end","nativeSrc":"4752:3:65","nodeType":"YulTypedName","src":"4752:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4760:5:65","nodeType":"YulTypedName","src":"4760:5:65","type":""}],"src":"4705:338:65"},{"body":{"nativeSrc":"5195:725:65","nodeType":"YulBlock","src":"5195:725:65","statements":[{"body":{"nativeSrc":"5241:83:65","nodeType":"YulBlock","src":"5241:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5243:77:65","nodeType":"YulIdentifier","src":"5243:77:65"},"nativeSrc":"5243:79:65","nodeType":"YulFunctionCall","src":"5243:79:65"},"nativeSrc":"5243:79:65","nodeType":"YulExpressionStatement","src":"5243:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5216:7:65","nodeType":"YulIdentifier","src":"5216:7:65"},{"name":"headStart","nativeSrc":"5225:9:65","nodeType":"YulIdentifier","src":"5225:9:65"}],"functionName":{"name":"sub","nativeSrc":"5212:3:65","nodeType":"YulIdentifier","src":"5212:3:65"},"nativeSrc":"5212:23:65","nodeType":"YulFunctionCall","src":"5212:23:65"},{"kind":"number","nativeSrc":"5237:2:65","nodeType":"YulLiteral","src":"5237:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5208:3:65","nodeType":"YulIdentifier","src":"5208:3:65"},"nativeSrc":"5208:32:65","nodeType":"YulFunctionCall","src":"5208:32:65"},"nativeSrc":"5205:119:65","nodeType":"YulIf","src":"5205:119:65"},{"nativeSrc":"5334:154:65","nodeType":"YulBlock","src":"5334:154:65","statements":[{"nativeSrc":"5349:15:65","nodeType":"YulVariableDeclaration","src":"5349:15:65","value":{"kind":"number","nativeSrc":"5363:1:65","nodeType":"YulLiteral","src":"5363:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5353:6:65","nodeType":"YulTypedName","src":"5353:6:65","type":""}]},{"nativeSrc":"5378:100:65","nodeType":"YulAssignment","src":"5378:100:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5450:9:65","nodeType":"YulIdentifier","src":"5450:9:65"},{"name":"offset","nativeSrc":"5461:6:65","nodeType":"YulIdentifier","src":"5461:6:65"}],"functionName":{"name":"add","nativeSrc":"5446:3:65","nodeType":"YulIdentifier","src":"5446:3:65"},"nativeSrc":"5446:22:65","nodeType":"YulFunctionCall","src":"5446:22:65"},{"name":"dataEnd","nativeSrc":"5470:7:65","nodeType":"YulIdentifier","src":"5470:7:65"}],"functionName":{"name":"abi_decode_t_contract$_TransparentUpgradeableProxy_$12741","nativeSrc":"5388:57:65","nodeType":"YulIdentifier","src":"5388:57:65"},"nativeSrc":"5388:90:65","nodeType":"YulFunctionCall","src":"5388:90:65"},"variableNames":[{"name":"value0","nativeSrc":"5378:6:65","nodeType":"YulIdentifier","src":"5378:6:65"}]}]},{"nativeSrc":"5498:118:65","nodeType":"YulBlock","src":"5498:118:65","statements":[{"nativeSrc":"5513:16:65","nodeType":"YulVariableDeclaration","src":"5513:16:65","value":{"kind":"number","nativeSrc":"5527:2:65","nodeType":"YulLiteral","src":"5527:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5517:6:65","nodeType":"YulTypedName","src":"5517:6:65","type":""}]},{"nativeSrc":"5543:63:65","nodeType":"YulAssignment","src":"5543:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5578:9:65","nodeType":"YulIdentifier","src":"5578:9:65"},{"name":"offset","nativeSrc":"5589:6:65","nodeType":"YulIdentifier","src":"5589:6:65"}],"functionName":{"name":"add","nativeSrc":"5574:3:65","nodeType":"YulIdentifier","src":"5574:3:65"},"nativeSrc":"5574:22:65","nodeType":"YulFunctionCall","src":"5574:22:65"},{"name":"dataEnd","nativeSrc":"5598:7:65","nodeType":"YulIdentifier","src":"5598:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5553:20:65","nodeType":"YulIdentifier","src":"5553:20:65"},"nativeSrc":"5553:53:65","nodeType":"YulFunctionCall","src":"5553:53:65"},"variableNames":[{"name":"value1","nativeSrc":"5543:6:65","nodeType":"YulIdentifier","src":"5543:6:65"}]}]},{"nativeSrc":"5626:287:65","nodeType":"YulBlock","src":"5626:287:65","statements":[{"nativeSrc":"5641:46:65","nodeType":"YulVariableDeclaration","src":"5641:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5672:9:65","nodeType":"YulIdentifier","src":"5672:9:65"},{"kind":"number","nativeSrc":"5683:2:65","nodeType":"YulLiteral","src":"5683:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5668:3:65","nodeType":"YulIdentifier","src":"5668:3:65"},"nativeSrc":"5668:18:65","nodeType":"YulFunctionCall","src":"5668:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"5655:12:65","nodeType":"YulIdentifier","src":"5655:12:65"},"nativeSrc":"5655:32:65","nodeType":"YulFunctionCall","src":"5655:32:65"},"variables":[{"name":"offset","nativeSrc":"5645:6:65","nodeType":"YulTypedName","src":"5645:6:65","type":""}]},{"body":{"nativeSrc":"5734:83:65","nodeType":"YulBlock","src":"5734:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5736:77:65","nodeType":"YulIdentifier","src":"5736:77:65"},"nativeSrc":"5736:79:65","nodeType":"YulFunctionCall","src":"5736:79:65"},"nativeSrc":"5736:79:65","nodeType":"YulExpressionStatement","src":"5736:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5706:6:65","nodeType":"YulIdentifier","src":"5706:6:65"},{"kind":"number","nativeSrc":"5714:18:65","nodeType":"YulLiteral","src":"5714:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5703:2:65","nodeType":"YulIdentifier","src":"5703:2:65"},"nativeSrc":"5703:30:65","nodeType":"YulFunctionCall","src":"5703:30:65"},"nativeSrc":"5700:117:65","nodeType":"YulIf","src":"5700:117:65"},{"nativeSrc":"5831:72:65","nodeType":"YulAssignment","src":"5831:72:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5875:9:65","nodeType":"YulIdentifier","src":"5875:9:65"},{"name":"offset","nativeSrc":"5886:6:65","nodeType":"YulIdentifier","src":"5886:6:65"}],"functionName":{"name":"add","nativeSrc":"5871:3:65","nodeType":"YulIdentifier","src":"5871:3:65"},"nativeSrc":"5871:22:65","nodeType":"YulFunctionCall","src":"5871:22:65"},{"name":"dataEnd","nativeSrc":"5895:7:65","nodeType":"YulIdentifier","src":"5895:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"5841:29:65","nodeType":"YulIdentifier","src":"5841:29:65"},"nativeSrc":"5841:62:65","nodeType":"YulFunctionCall","src":"5841:62:65"},"variableNames":[{"name":"value2","nativeSrc":"5831:6:65","nodeType":"YulIdentifier","src":"5831:6:65"}]}]}]},"name":"abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_addresst_bytes_memory_ptr","nativeSrc":"5049:871:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5149:9:65","nodeType":"YulTypedName","src":"5149:9:65","type":""},{"name":"dataEnd","nativeSrc":"5160:7:65","nodeType":"YulTypedName","src":"5160:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5172:6:65","nodeType":"YulTypedName","src":"5172:6:65","type":""},{"name":"value1","nativeSrc":"5180:6:65","nodeType":"YulTypedName","src":"5180:6:65","type":""},{"name":"value2","nativeSrc":"5188:6:65","nodeType":"YulTypedName","src":"5188:6:65","type":""}],"src":"5049:871:65"},{"body":{"nativeSrc":"5992:263:65","nodeType":"YulBlock","src":"5992:263:65","statements":[{"body":{"nativeSrc":"6038:83:65","nodeType":"YulBlock","src":"6038:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6040:77:65","nodeType":"YulIdentifier","src":"6040:77:65"},"nativeSrc":"6040:79:65","nodeType":"YulFunctionCall","src":"6040:79:65"},"nativeSrc":"6040:79:65","nodeType":"YulExpressionStatement","src":"6040:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6013:7:65","nodeType":"YulIdentifier","src":"6013:7:65"},{"name":"headStart","nativeSrc":"6022:9:65","nodeType":"YulIdentifier","src":"6022:9:65"}],"functionName":{"name":"sub","nativeSrc":"6009:3:65","nodeType":"YulIdentifier","src":"6009:3:65"},"nativeSrc":"6009:23:65","nodeType":"YulFunctionCall","src":"6009:23:65"},{"kind":"number","nativeSrc":"6034:2:65","nodeType":"YulLiteral","src":"6034:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6005:3:65","nodeType":"YulIdentifier","src":"6005:3:65"},"nativeSrc":"6005:32:65","nodeType":"YulFunctionCall","src":"6005:32:65"},"nativeSrc":"6002:119:65","nodeType":"YulIf","src":"6002:119:65"},{"nativeSrc":"6131:117:65","nodeType":"YulBlock","src":"6131:117:65","statements":[{"nativeSrc":"6146:15:65","nodeType":"YulVariableDeclaration","src":"6146:15:65","value":{"kind":"number","nativeSrc":"6160:1:65","nodeType":"YulLiteral","src":"6160:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6150:6:65","nodeType":"YulTypedName","src":"6150:6:65","type":""}]},{"nativeSrc":"6175:63:65","nodeType":"YulAssignment","src":"6175:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6210:9:65","nodeType":"YulIdentifier","src":"6210:9:65"},{"name":"offset","nativeSrc":"6221:6:65","nodeType":"YulIdentifier","src":"6221:6:65"}],"functionName":{"name":"add","nativeSrc":"6206:3:65","nodeType":"YulIdentifier","src":"6206:3:65"},"nativeSrc":"6206:22:65","nodeType":"YulFunctionCall","src":"6206:22:65"},{"name":"dataEnd","nativeSrc":"6230:7:65","nodeType":"YulIdentifier","src":"6230:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6185:20:65","nodeType":"YulIdentifier","src":"6185:20:65"},"nativeSrc":"6185:53:65","nodeType":"YulFunctionCall","src":"6185:53:65"},"variableNames":[{"name":"value0","nativeSrc":"6175:6:65","nodeType":"YulIdentifier","src":"6175:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5926:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5962:9:65","nodeType":"YulTypedName","src":"5962:9:65","type":""},{"name":"dataEnd","nativeSrc":"5973:7:65","nodeType":"YulTypedName","src":"5973:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5985:6:65","nodeType":"YulTypedName","src":"5985:6:65","type":""}],"src":"5926:329:65"},{"body":{"nativeSrc":"6374:34:65","nodeType":"YulBlock","src":"6374:34:65","statements":[{"nativeSrc":"6384:18:65","nodeType":"YulAssignment","src":"6384:18:65","value":{"name":"pos","nativeSrc":"6399:3:65","nodeType":"YulIdentifier","src":"6399:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"6384:11:65","nodeType":"YulIdentifier","src":"6384:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6261:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6346:3:65","nodeType":"YulTypedName","src":"6346:3:65","type":""},{"name":"length","nativeSrc":"6351:6:65","nodeType":"YulTypedName","src":"6351:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6362:11:65","nodeType":"YulTypedName","src":"6362:11:65","type":""}],"src":"6261:147:65"},{"body":{"nativeSrc":"6520:108:65","nodeType":"YulBlock","src":"6520:108:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6542:6:65","nodeType":"YulIdentifier","src":"6542:6:65"},{"kind":"number","nativeSrc":"6550:1:65","nodeType":"YulLiteral","src":"6550:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6538:3:65","nodeType":"YulIdentifier","src":"6538:3:65"},"nativeSrc":"6538:14:65","nodeType":"YulFunctionCall","src":"6538:14:65"},{"kind":"number","nativeSrc":"6554:66:65","nodeType":"YulLiteral","src":"6554:66:65","type":"","value":"0x5c60da1b00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"6531:6:65","nodeType":"YulIdentifier","src":"6531:6:65"},"nativeSrc":"6531:90:65","nodeType":"YulFunctionCall","src":"6531:90:65"},"nativeSrc":"6531:90:65","nodeType":"YulExpressionStatement","src":"6531:90:65"}]},"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6414:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6512:6:65","nodeType":"YulTypedName","src":"6512:6:65","type":""}],"src":"6414:214:65"},{"body":{"nativeSrc":"6797:235:65","nodeType":"YulBlock","src":"6797:235:65","statements":[{"nativeSrc":"6807:90:65","nodeType":"YulAssignment","src":"6807:90:65","value":{"arguments":[{"name":"pos","nativeSrc":"6890:3:65","nodeType":"YulIdentifier","src":"6890:3:65"},{"kind":"number","nativeSrc":"6895:1:65","nodeType":"YulLiteral","src":"6895:1:65","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6814:75:65","nodeType":"YulIdentifier","src":"6814:75:65"},"nativeSrc":"6814:83:65","nodeType":"YulFunctionCall","src":"6814:83:65"},"variableNames":[{"name":"pos","nativeSrc":"6807:3:65","nodeType":"YulIdentifier","src":"6807:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6995:3:65","nodeType":"YulIdentifier","src":"6995:3:65"}],"functionName":{"name":"store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","nativeSrc":"6906:88:65","nodeType":"YulIdentifier","src":"6906:88:65"},"nativeSrc":"6906:93:65","nodeType":"YulFunctionCall","src":"6906:93:65"},"nativeSrc":"6906:93:65","nodeType":"YulExpressionStatement","src":"6906:93:65"},{"nativeSrc":"7008:18:65","nodeType":"YulAssignment","src":"7008:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"7019:3:65","nodeType":"YulIdentifier","src":"7019:3:65"},{"kind":"number","nativeSrc":"7024:1:65","nodeType":"YulLiteral","src":"7024:1:65","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"7015:3:65","nodeType":"YulIdentifier","src":"7015:3:65"},"nativeSrc":"7015:11:65","nodeType":"YulFunctionCall","src":"7015:11:65"},"variableNames":[{"name":"end","nativeSrc":"7008:3:65","nodeType":"YulIdentifier","src":"7008:3:65"}]}]},"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6634:398:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6785:3:65","nodeType":"YulTypedName","src":"6785:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6793:3:65","nodeType":"YulTypedName","src":"6793:3:65","type":""}],"src":"6634:398:65"},{"body":{"nativeSrc":"7226:191:65","nodeType":"YulBlock","src":"7226:191:65","statements":[{"nativeSrc":"7237:154:65","nodeType":"YulAssignment","src":"7237:154:65","value":{"arguments":[{"name":"pos","nativeSrc":"7387:3:65","nodeType":"YulIdentifier","src":"7387:3:65"}],"functionName":{"name":"abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7244:141:65","nodeType":"YulIdentifier","src":"7244:141:65"},"nativeSrc":"7244:147:65","nodeType":"YulFunctionCall","src":"7244:147:65"},"variableNames":[{"name":"pos","nativeSrc":"7237:3:65","nodeType":"YulIdentifier","src":"7237:3:65"}]},{"nativeSrc":"7401:10:65","nodeType":"YulAssignment","src":"7401:10:65","value":{"name":"pos","nativeSrc":"7408:3:65","nodeType":"YulIdentifier","src":"7408:3:65"},"variableNames":[{"name":"end","nativeSrc":"7401:3:65","nodeType":"YulIdentifier","src":"7401:3:65"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7038:379:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7213:3:65","nodeType":"YulTypedName","src":"7213:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7222:3:65","nodeType":"YulTypedName","src":"7222:3:65","type":""}],"src":"7038:379:65"},{"body":{"nativeSrc":"7474:87:65","nodeType":"YulBlock","src":"7474:87:65","statements":[{"body":{"nativeSrc":"7539:16:65","nodeType":"YulBlock","src":"7539:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7548:1:65","nodeType":"YulLiteral","src":"7548:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"7551:1:65","nodeType":"YulLiteral","src":"7551:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7541:6:65","nodeType":"YulIdentifier","src":"7541:6:65"},"nativeSrc":"7541:12:65","nodeType":"YulFunctionCall","src":"7541:12:65"},"nativeSrc":"7541:12:65","nodeType":"YulExpressionStatement","src":"7541:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7497:5:65","nodeType":"YulIdentifier","src":"7497:5:65"},{"arguments":[{"name":"value","nativeSrc":"7530:5:65","nodeType":"YulIdentifier","src":"7530:5:65"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"7504:25:65","nodeType":"YulIdentifier","src":"7504:25:65"},"nativeSrc":"7504:32:65","nodeType":"YulFunctionCall","src":"7504:32:65"}],"functionName":{"name":"eq","nativeSrc":"7494:2:65","nodeType":"YulIdentifier","src":"7494:2:65"},"nativeSrc":"7494:43:65","nodeType":"YulFunctionCall","src":"7494:43:65"}],"functionName":{"name":"iszero","nativeSrc":"7487:6:65","nodeType":"YulIdentifier","src":"7487:6:65"},"nativeSrc":"7487:51:65","nodeType":"YulFunctionCall","src":"7487:51:65"},"nativeSrc":"7484:71:65","nodeType":"YulIf","src":"7484:71:65"}]},"name":"validator_revert_t_address_payable","nativeSrc":"7423:138:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7467:5:65","nodeType":"YulTypedName","src":"7467:5:65","type":""}],"src":"7423:138:65"},{"body":{"nativeSrc":"7638:88:65","nodeType":"YulBlock","src":"7638:88:65","statements":[{"nativeSrc":"7648:22:65","nodeType":"YulAssignment","src":"7648:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"7663:6:65","nodeType":"YulIdentifier","src":"7663:6:65"}],"functionName":{"name":"mload","nativeSrc":"7657:5:65","nodeType":"YulIdentifier","src":"7657:5:65"},"nativeSrc":"7657:13:65","nodeType":"YulFunctionCall","src":"7657:13:65"},"variableNames":[{"name":"value","nativeSrc":"7648:5:65","nodeType":"YulIdentifier","src":"7648:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7714:5:65","nodeType":"YulIdentifier","src":"7714:5:65"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"7679:34:65","nodeType":"YulIdentifier","src":"7679:34:65"},"nativeSrc":"7679:41:65","nodeType":"YulFunctionCall","src":"7679:41:65"},"nativeSrc":"7679:41:65","nodeType":"YulExpressionStatement","src":"7679:41:65"}]},"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"7567:159:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7616:6:65","nodeType":"YulTypedName","src":"7616:6:65","type":""},{"name":"end","nativeSrc":"7624:3:65","nodeType":"YulTypedName","src":"7624:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7632:5:65","nodeType":"YulTypedName","src":"7632:5:65","type":""}],"src":"7567:159:65"},{"body":{"nativeSrc":"7817:282:65","nodeType":"YulBlock","src":"7817:282:65","statements":[{"body":{"nativeSrc":"7863:83:65","nodeType":"YulBlock","src":"7863:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7865:77:65","nodeType":"YulIdentifier","src":"7865:77:65"},"nativeSrc":"7865:79:65","nodeType":"YulFunctionCall","src":"7865:79:65"},"nativeSrc":"7865:79:65","nodeType":"YulExpressionStatement","src":"7865:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7838:7:65","nodeType":"YulIdentifier","src":"7838:7:65"},{"name":"headStart","nativeSrc":"7847:9:65","nodeType":"YulIdentifier","src":"7847:9:65"}],"functionName":{"name":"sub","nativeSrc":"7834:3:65","nodeType":"YulIdentifier","src":"7834:3:65"},"nativeSrc":"7834:23:65","nodeType":"YulFunctionCall","src":"7834:23:65"},{"kind":"number","nativeSrc":"7859:2:65","nodeType":"YulLiteral","src":"7859:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7830:3:65","nodeType":"YulIdentifier","src":"7830:3:65"},"nativeSrc":"7830:32:65","nodeType":"YulFunctionCall","src":"7830:32:65"},"nativeSrc":"7827:119:65","nodeType":"YulIf","src":"7827:119:65"},{"nativeSrc":"7956:136:65","nodeType":"YulBlock","src":"7956:136:65","statements":[{"nativeSrc":"7971:15:65","nodeType":"YulVariableDeclaration","src":"7971:15:65","value":{"kind":"number","nativeSrc":"7985:1:65","nodeType":"YulLiteral","src":"7985:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7975:6:65","nodeType":"YulTypedName","src":"7975:6:65","type":""}]},{"nativeSrc":"8000:82:65","nodeType":"YulAssignment","src":"8000:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8054:9:65","nodeType":"YulIdentifier","src":"8054:9:65"},{"name":"offset","nativeSrc":"8065:6:65","nodeType":"YulIdentifier","src":"8065:6:65"}],"functionName":{"name":"add","nativeSrc":"8050:3:65","nodeType":"YulIdentifier","src":"8050:3:65"},"nativeSrc":"8050:22:65","nodeType":"YulFunctionCall","src":"8050:22:65"},{"name":"dataEnd","nativeSrc":"8074:7:65","nodeType":"YulIdentifier","src":"8074:7:65"}],"functionName":{"name":"abi_decode_t_address_payable_fromMemory","nativeSrc":"8010:39:65","nodeType":"YulIdentifier","src":"8010:39:65"},"nativeSrc":"8010:72:65","nodeType":"YulFunctionCall","src":"8010:72:65"},"variableNames":[{"name":"value0","nativeSrc":"8000:6:65","nodeType":"YulIdentifier","src":"8000:6:65"}]}]}]},"name":"abi_decode_tuple_t_address_payable_fromMemory","nativeSrc":"7732:367:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7787:9:65","nodeType":"YulTypedName","src":"7787:9:65","type":""},{"name":"dataEnd","nativeSrc":"7798:7:65","nodeType":"YulTypedName","src":"7798:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7810:6:65","nodeType":"YulTypedName","src":"7810:6:65","type":""}],"src":"7732:367:65"},{"body":{"nativeSrc":"8201:73:65","nodeType":"YulBlock","src":"8201:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8218:3:65","nodeType":"YulIdentifier","src":"8218:3:65"},{"name":"length","nativeSrc":"8223:6:65","nodeType":"YulIdentifier","src":"8223:6:65"}],"functionName":{"name":"mstore","nativeSrc":"8211:6:65","nodeType":"YulIdentifier","src":"8211:6:65"},"nativeSrc":"8211:19:65","nodeType":"YulFunctionCall","src":"8211:19:65"},"nativeSrc":"8211:19:65","nodeType":"YulExpressionStatement","src":"8211:19:65"},{"nativeSrc":"8239:29:65","nodeType":"YulAssignment","src":"8239:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"8258:3:65","nodeType":"YulIdentifier","src":"8258:3:65"},{"kind":"number","nativeSrc":"8263:4:65","nodeType":"YulLiteral","src":"8263:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8254:3:65","nodeType":"YulIdentifier","src":"8254:3:65"},"nativeSrc":"8254:14:65","nodeType":"YulFunctionCall","src":"8254:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"8239:11:65","nodeType":"YulIdentifier","src":"8239:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8105:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8173:3:65","nodeType":"YulTypedName","src":"8173:3:65","type":""},{"name":"length","nativeSrc":"8178:6:65","nodeType":"YulTypedName","src":"8178:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8189:11:65","nodeType":"YulTypedName","src":"8189:11:65","type":""}],"src":"8105:169:65"},{"body":{"nativeSrc":"8386:76:65","nodeType":"YulBlock","src":"8386:76:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8408:6:65","nodeType":"YulIdentifier","src":"8408:6:65"},{"kind":"number","nativeSrc":"8416:1:65","nodeType":"YulLiteral","src":"8416:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8404:3:65","nodeType":"YulIdentifier","src":"8404:3:65"},"nativeSrc":"8404:14:65","nodeType":"YulFunctionCall","src":"8404:14:65"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"8420:34:65","nodeType":"YulLiteral","src":"8420:34:65","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"8397:6:65","nodeType":"YulIdentifier","src":"8397:6:65"},"nativeSrc":"8397:58:65","nodeType":"YulFunctionCall","src":"8397:58:65"},"nativeSrc":"8397:58:65","nodeType":"YulExpressionStatement","src":"8397:58:65"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8280:182:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8378:6:65","nodeType":"YulTypedName","src":"8378:6:65","type":""}],"src":"8280:182:65"},{"body":{"nativeSrc":"8614:220:65","nodeType":"YulBlock","src":"8614:220:65","statements":[{"nativeSrc":"8624:74:65","nodeType":"YulAssignment","src":"8624:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"8690:3:65","nodeType":"YulIdentifier","src":"8690:3:65"},{"kind":"number","nativeSrc":"8695:2:65","nodeType":"YulLiteral","src":"8695:2:65","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8631:58:65","nodeType":"YulIdentifier","src":"8631:58:65"},"nativeSrc":"8631:67:65","nodeType":"YulFunctionCall","src":"8631:67:65"},"variableNames":[{"name":"pos","nativeSrc":"8624:3:65","nodeType":"YulIdentifier","src":"8624:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8796:3:65","nodeType":"YulIdentifier","src":"8796:3:65"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nativeSrc":"8707:88:65","nodeType":"YulIdentifier","src":"8707:88:65"},"nativeSrc":"8707:93:65","nodeType":"YulFunctionCall","src":"8707:93:65"},"nativeSrc":"8707:93:65","nodeType":"YulExpressionStatement","src":"8707:93:65"},{"nativeSrc":"8809:19:65","nodeType":"YulAssignment","src":"8809:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"8820:3:65","nodeType":"YulIdentifier","src":"8820:3:65"},{"kind":"number","nativeSrc":"8825:2:65","nodeType":"YulLiteral","src":"8825:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8816:3:65","nodeType":"YulIdentifier","src":"8816:3:65"},"nativeSrc":"8816:12:65","nodeType":"YulFunctionCall","src":"8816:12:65"},"variableNames":[{"name":"end","nativeSrc":"8809:3:65","nodeType":"YulIdentifier","src":"8809:3:65"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"8468:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8602:3:65","nodeType":"YulTypedName","src":"8602:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8610:3:65","nodeType":"YulTypedName","src":"8610:3:65","type":""}],"src":"8468:366:65"},{"body":{"nativeSrc":"9011:248:65","nodeType":"YulBlock","src":"9011:248:65","statements":[{"nativeSrc":"9021:26:65","nodeType":"YulAssignment","src":"9021:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9033:9:65","nodeType":"YulIdentifier","src":"9033:9:65"},{"kind":"number","nativeSrc":"9044:2:65","nodeType":"YulLiteral","src":"9044:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9029:3:65","nodeType":"YulIdentifier","src":"9029:3:65"},"nativeSrc":"9029:18:65","nodeType":"YulFunctionCall","src":"9029:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9021:4:65","nodeType":"YulIdentifier","src":"9021:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9068:9:65","nodeType":"YulIdentifier","src":"9068:9:65"},{"kind":"number","nativeSrc":"9079:1:65","nodeType":"YulLiteral","src":"9079:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9064:3:65","nodeType":"YulIdentifier","src":"9064:3:65"},"nativeSrc":"9064:17:65","nodeType":"YulFunctionCall","src":"9064:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9087:4:65","nodeType":"YulIdentifier","src":"9087:4:65"},{"name":"headStart","nativeSrc":"9093:9:65","nodeType":"YulIdentifier","src":"9093:9:65"}],"functionName":{"name":"sub","nativeSrc":"9083:3:65","nodeType":"YulIdentifier","src":"9083:3:65"},"nativeSrc":"9083:20:65","nodeType":"YulFunctionCall","src":"9083:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9057:6:65","nodeType":"YulIdentifier","src":"9057:6:65"},"nativeSrc":"9057:47:65","nodeType":"YulFunctionCall","src":"9057:47:65"},"nativeSrc":"9057:47:65","nodeType":"YulExpressionStatement","src":"9057:47:65"},{"nativeSrc":"9113:139:65","nodeType":"YulAssignment","src":"9113:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"9247:4:65","nodeType":"YulIdentifier","src":"9247:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nativeSrc":"9121:124:65","nodeType":"YulIdentifier","src":"9121:124:65"},"nativeSrc":"9121:131:65","nodeType":"YulFunctionCall","src":"9121:131:65"},"variableNames":[{"name":"tail","nativeSrc":"9113:4:65","nodeType":"YulIdentifier","src":"9113:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8840:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8991:9:65","nodeType":"YulTypedName","src":"8991:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9006:4:65","nodeType":"YulTypedName","src":"9006:4:65","type":""}],"src":"8840:419:65"},{"body":{"nativeSrc":"9323:40:65","nodeType":"YulBlock","src":"9323:40:65","statements":[{"nativeSrc":"9334:22:65","nodeType":"YulAssignment","src":"9334:22:65","value":{"arguments":[{"name":"value","nativeSrc":"9350:5:65","nodeType":"YulIdentifier","src":"9350:5:65"}],"functionName":{"name":"mload","nativeSrc":"9344:5:65","nodeType":"YulIdentifier","src":"9344:5:65"},"nativeSrc":"9344:12:65","nodeType":"YulFunctionCall","src":"9344:12:65"},"variableNames":[{"name":"length","nativeSrc":"9334:6:65","nodeType":"YulIdentifier","src":"9334:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9265:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9306:5:65","nodeType":"YulTypedName","src":"9306:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9316:6:65","nodeType":"YulTypedName","src":"9316:6:65","type":""}],"src":"9265:98:65"},{"body":{"nativeSrc":"9464:73:65","nodeType":"YulBlock","src":"9464:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9481:3:65","nodeType":"YulIdentifier","src":"9481:3:65"},{"name":"length","nativeSrc":"9486:6:65","nodeType":"YulIdentifier","src":"9486:6:65"}],"functionName":{"name":"mstore","nativeSrc":"9474:6:65","nodeType":"YulIdentifier","src":"9474:6:65"},"nativeSrc":"9474:19:65","nodeType":"YulFunctionCall","src":"9474:19:65"},"nativeSrc":"9474:19:65","nodeType":"YulExpressionStatement","src":"9474:19:65"},{"nativeSrc":"9502:29:65","nodeType":"YulAssignment","src":"9502:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"9521:3:65","nodeType":"YulIdentifier","src":"9521:3:65"},{"kind":"number","nativeSrc":"9526:4:65","nodeType":"YulLiteral","src":"9526:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9517:3:65","nodeType":"YulIdentifier","src":"9517:3:65"},"nativeSrc":"9517:14:65","nodeType":"YulFunctionCall","src":"9517:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"9502:11:65","nodeType":"YulIdentifier","src":"9502:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9369:168:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9436:3:65","nodeType":"YulTypedName","src":"9436:3:65","type":""},{"name":"length","nativeSrc":"9441:6:65","nodeType":"YulTypedName","src":"9441:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"9452:11:65","nodeType":"YulTypedName","src":"9452:11:65","type":""}],"src":"9369:168:65"},{"body":{"nativeSrc":"9605:186:65","nodeType":"YulBlock","src":"9605:186:65","statements":[{"nativeSrc":"9616:10:65","nodeType":"YulVariableDeclaration","src":"9616:10:65","value":{"kind":"number","nativeSrc":"9625:1:65","nodeType":"YulLiteral","src":"9625:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9620:1:65","nodeType":"YulTypedName","src":"9620:1:65","type":""}]},{"body":{"nativeSrc":"9685:63:65","nodeType":"YulBlock","src":"9685:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9710:3:65","nodeType":"YulIdentifier","src":"9710:3:65"},{"name":"i","nativeSrc":"9715:1:65","nodeType":"YulIdentifier","src":"9715:1:65"}],"functionName":{"name":"add","nativeSrc":"9706:3:65","nodeType":"YulIdentifier","src":"9706:3:65"},"nativeSrc":"9706:11:65","nodeType":"YulFunctionCall","src":"9706:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9729:3:65","nodeType":"YulIdentifier","src":"9729:3:65"},{"name":"i","nativeSrc":"9734:1:65","nodeType":"YulIdentifier","src":"9734:1:65"}],"functionName":{"name":"add","nativeSrc":"9725:3:65","nodeType":"YulIdentifier","src":"9725:3:65"},"nativeSrc":"9725:11:65","nodeType":"YulFunctionCall","src":"9725:11:65"}],"functionName":{"name":"mload","nativeSrc":"9719:5:65","nodeType":"YulIdentifier","src":"9719:5:65"},"nativeSrc":"9719:18:65","nodeType":"YulFunctionCall","src":"9719:18:65"}],"functionName":{"name":"mstore","nativeSrc":"9699:6:65","nodeType":"YulIdentifier","src":"9699:6:65"},"nativeSrc":"9699:39:65","nodeType":"YulFunctionCall","src":"9699:39:65"},"nativeSrc":"9699:39:65","nodeType":"YulExpressionStatement","src":"9699:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9646:1:65","nodeType":"YulIdentifier","src":"9646:1:65"},{"name":"length","nativeSrc":"9649:6:65","nodeType":"YulIdentifier","src":"9649:6:65"}],"functionName":{"name":"lt","nativeSrc":"9643:2:65","nodeType":"YulIdentifier","src":"9643:2:65"},"nativeSrc":"9643:13:65","nodeType":"YulFunctionCall","src":"9643:13:65"},"nativeSrc":"9635:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"9657:19:65","nodeType":"YulBlock","src":"9657:19:65","statements":[{"nativeSrc":"9659:15:65","nodeType":"YulAssignment","src":"9659:15:65","value":{"arguments":[{"name":"i","nativeSrc":"9668:1:65","nodeType":"YulIdentifier","src":"9668:1:65"},{"kind":"number","nativeSrc":"9671:2:65","nodeType":"YulLiteral","src":"9671:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9664:3:65","nodeType":"YulIdentifier","src":"9664:3:65"},"nativeSrc":"9664:10:65","nodeType":"YulFunctionCall","src":"9664:10:65"},"variableNames":[{"name":"i","nativeSrc":"9659:1:65","nodeType":"YulIdentifier","src":"9659:1:65"}]}]},"pre":{"nativeSrc":"9639:3:65","nodeType":"YulBlock","src":"9639:3:65","statements":[]},"src":"9635:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9768:3:65","nodeType":"YulIdentifier","src":"9768:3:65"},{"name":"length","nativeSrc":"9773:6:65","nodeType":"YulIdentifier","src":"9773:6:65"}],"functionName":{"name":"add","nativeSrc":"9764:3:65","nodeType":"YulIdentifier","src":"9764:3:65"},"nativeSrc":"9764:16:65","nodeType":"YulFunctionCall","src":"9764:16:65"},{"kind":"number","nativeSrc":"9782:1:65","nodeType":"YulLiteral","src":"9782:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9757:6:65","nodeType":"YulIdentifier","src":"9757:6:65"},"nativeSrc":"9757:27:65","nodeType":"YulFunctionCall","src":"9757:27:65"},"nativeSrc":"9757:27:65","nodeType":"YulExpressionStatement","src":"9757:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9543:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9587:3:65","nodeType":"YulTypedName","src":"9587:3:65","type":""},{"name":"dst","nativeSrc":"9592:3:65","nodeType":"YulTypedName","src":"9592:3:65","type":""},{"name":"length","nativeSrc":"9597:6:65","nodeType":"YulTypedName","src":"9597:6:65","type":""}],"src":"9543:248:65"},{"body":{"nativeSrc":"9887:283:65","nodeType":"YulBlock","src":"9887:283:65","statements":[{"nativeSrc":"9897:52:65","nodeType":"YulVariableDeclaration","src":"9897:52:65","value":{"arguments":[{"name":"value","nativeSrc":"9943:5:65","nodeType":"YulIdentifier","src":"9943:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"9911:31:65","nodeType":"YulIdentifier","src":"9911:31:65"},"nativeSrc":"9911:38:65","nodeType":"YulFunctionCall","src":"9911:38:65"},"variables":[{"name":"length","nativeSrc":"9901:6:65","nodeType":"YulTypedName","src":"9901:6:65","type":""}]},{"nativeSrc":"9958:77:65","nodeType":"YulAssignment","src":"9958:77:65","value":{"arguments":[{"name":"pos","nativeSrc":"10023:3:65","nodeType":"YulIdentifier","src":"10023:3:65"},{"name":"length","nativeSrc":"10028:6:65","nodeType":"YulIdentifier","src":"10028:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"9965:57:65","nodeType":"YulIdentifier","src":"9965:57:65"},"nativeSrc":"9965:70:65","nodeType":"YulFunctionCall","src":"9965:70:65"},"variableNames":[{"name":"pos","nativeSrc":"9958:3:65","nodeType":"YulIdentifier","src":"9958:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10083:5:65","nodeType":"YulIdentifier","src":"10083:5:65"},{"kind":"number","nativeSrc":"10090:4:65","nodeType":"YulLiteral","src":"10090:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10079:3:65","nodeType":"YulIdentifier","src":"10079:3:65"},"nativeSrc":"10079:16:65","nodeType":"YulFunctionCall","src":"10079:16:65"},{"name":"pos","nativeSrc":"10097:3:65","nodeType":"YulIdentifier","src":"10097:3:65"},{"name":"length","nativeSrc":"10102:6:65","nodeType":"YulIdentifier","src":"10102:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"10044:34:65","nodeType":"YulIdentifier","src":"10044:34:65"},"nativeSrc":"10044:65:65","nodeType":"YulFunctionCall","src":"10044:65:65"},"nativeSrc":"10044:65:65","nodeType":"YulExpressionStatement","src":"10044:65:65"},{"nativeSrc":"10118:46:65","nodeType":"YulAssignment","src":"10118:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"10129:3:65","nodeType":"YulIdentifier","src":"10129:3:65"},{"arguments":[{"name":"length","nativeSrc":"10156:6:65","nodeType":"YulIdentifier","src":"10156:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10134:21:65","nodeType":"YulIdentifier","src":"10134:21:65"},"nativeSrc":"10134:29:65","nodeType":"YulFunctionCall","src":"10134:29:65"}],"functionName":{"name":"add","nativeSrc":"10125:3:65","nodeType":"YulIdentifier","src":"10125:3:65"},"nativeSrc":"10125:39:65","nodeType":"YulFunctionCall","src":"10125:39:65"},"variableNames":[{"name":"end","nativeSrc":"10118:3:65","nodeType":"YulIdentifier","src":"10118:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"9797:373:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9868:5:65","nodeType":"YulTypedName","src":"9868:5:65","type":""},{"name":"pos","nativeSrc":"9875:3:65","nodeType":"YulTypedName","src":"9875:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9883:3:65","nodeType":"YulTypedName","src":"9883:3:65","type":""}],"src":"9797:373:65"},{"body":{"nativeSrc":"10320:275:65","nodeType":"YulBlock","src":"10320:275:65","statements":[{"nativeSrc":"10330:26:65","nodeType":"YulAssignment","src":"10330:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"10342:9:65","nodeType":"YulIdentifier","src":"10342:9:65"},{"kind":"number","nativeSrc":"10353:2:65","nodeType":"YulLiteral","src":"10353:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10338:3:65","nodeType":"YulIdentifier","src":"10338:3:65"},"nativeSrc":"10338:18:65","nodeType":"YulFunctionCall","src":"10338:18:65"},"variableNames":[{"name":"tail","nativeSrc":"10330:4:65","nodeType":"YulIdentifier","src":"10330:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10410:6:65","nodeType":"YulIdentifier","src":"10410:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"10423:9:65","nodeType":"YulIdentifier","src":"10423:9:65"},{"kind":"number","nativeSrc":"10434:1:65","nodeType":"YulLiteral","src":"10434:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10419:3:65","nodeType":"YulIdentifier","src":"10419:3:65"},"nativeSrc":"10419:17:65","nodeType":"YulFunctionCall","src":"10419:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10366:43:65","nodeType":"YulIdentifier","src":"10366:43:65"},"nativeSrc":"10366:71:65","nodeType":"YulFunctionCall","src":"10366:71:65"},"nativeSrc":"10366:71:65","nodeType":"YulExpressionStatement","src":"10366:71:65"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10458:9:65","nodeType":"YulIdentifier","src":"10458:9:65"},{"kind":"number","nativeSrc":"10469:2:65","nodeType":"YulLiteral","src":"10469:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10454:3:65","nodeType":"YulIdentifier","src":"10454:3:65"},"nativeSrc":"10454:18:65","nodeType":"YulFunctionCall","src":"10454:18:65"},{"arguments":[{"name":"tail","nativeSrc":"10478:4:65","nodeType":"YulIdentifier","src":"10478:4:65"},{"name":"headStart","nativeSrc":"10484:9:65","nodeType":"YulIdentifier","src":"10484:9:65"}],"functionName":{"name":"sub","nativeSrc":"10474:3:65","nodeType":"YulIdentifier","src":"10474:3:65"},"nativeSrc":"10474:20:65","nodeType":"YulFunctionCall","src":"10474:20:65"}],"functionName":{"name":"mstore","nativeSrc":"10447:6:65","nodeType":"YulIdentifier","src":"10447:6:65"},"nativeSrc":"10447:48:65","nodeType":"YulFunctionCall","src":"10447:48:65"},"nativeSrc":"10447:48:65","nodeType":"YulExpressionStatement","src":"10447:48:65"},{"nativeSrc":"10504:84:65","nodeType":"YulAssignment","src":"10504:84:65","value":{"arguments":[{"name":"value1","nativeSrc":"10574:6:65","nodeType":"YulIdentifier","src":"10574:6:65"},{"name":"tail","nativeSrc":"10583:4:65","nodeType":"YulIdentifier","src":"10583:4:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"10512:61:65","nodeType":"YulIdentifier","src":"10512:61:65"},"nativeSrc":"10512:76:65","nodeType":"YulFunctionCall","src":"10512:76:65"},"variableNames":[{"name":"tail","nativeSrc":"10504:4:65","nodeType":"YulIdentifier","src":"10504:4:65"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"10176:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10284:9:65","nodeType":"YulTypedName","src":"10284:9:65","type":""},{"name":"value1","nativeSrc":"10296:6:65","nodeType":"YulTypedName","src":"10296:6:65","type":""},{"name":"value0","nativeSrc":"10304:6:65","nodeType":"YulTypedName","src":"10304:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10315:4:65","nodeType":"YulTypedName","src":"10315:4:65","type":""}],"src":"10176:419:65"},{"body":{"nativeSrc":"10707:119:65","nodeType":"YulBlock","src":"10707:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10729:6:65","nodeType":"YulIdentifier","src":"10729:6:65"},{"kind":"number","nativeSrc":"10737:1:65","nodeType":"YulLiteral","src":"10737:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10725:3:65","nodeType":"YulIdentifier","src":"10725:3:65"},"nativeSrc":"10725:14:65","nodeType":"YulFunctionCall","src":"10725:14:65"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"10741:34:65","nodeType":"YulLiteral","src":"10741:34:65","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"10718:6:65","nodeType":"YulIdentifier","src":"10718:6:65"},"nativeSrc":"10718:58:65","nodeType":"YulFunctionCall","src":"10718:58:65"},"nativeSrc":"10718:58:65","nodeType":"YulExpressionStatement","src":"10718:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10797:6:65","nodeType":"YulIdentifier","src":"10797:6:65"},{"kind":"number","nativeSrc":"10805:2:65","nodeType":"YulLiteral","src":"10805:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10793:3:65","nodeType":"YulIdentifier","src":"10793:3:65"},"nativeSrc":"10793:15:65","nodeType":"YulFunctionCall","src":"10793:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"10810:8:65","nodeType":"YulLiteral","src":"10810:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"10786:6:65","nodeType":"YulIdentifier","src":"10786:6:65"},"nativeSrc":"10786:33:65","nodeType":"YulFunctionCall","src":"10786:33:65"},"nativeSrc":"10786:33:65","nodeType":"YulExpressionStatement","src":"10786:33:65"}]},"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"10601:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10699:6:65","nodeType":"YulTypedName","src":"10699:6:65","type":""}],"src":"10601:225:65"},{"body":{"nativeSrc":"10978:220:65","nodeType":"YulBlock","src":"10978:220:65","statements":[{"nativeSrc":"10988:74:65","nodeType":"YulAssignment","src":"10988:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"11054:3:65","nodeType":"YulIdentifier","src":"11054:3:65"},{"kind":"number","nativeSrc":"11059:2:65","nodeType":"YulLiteral","src":"11059:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"10995:58:65","nodeType":"YulIdentifier","src":"10995:58:65"},"nativeSrc":"10995:67:65","nodeType":"YulFunctionCall","src":"10995:67:65"},"variableNames":[{"name":"pos","nativeSrc":"10988:3:65","nodeType":"YulIdentifier","src":"10988:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11160:3:65","nodeType":"YulIdentifier","src":"11160:3:65"}],"functionName":{"name":"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","nativeSrc":"11071:88:65","nodeType":"YulIdentifier","src":"11071:88:65"},"nativeSrc":"11071:93:65","nodeType":"YulFunctionCall","src":"11071:93:65"},"nativeSrc":"11071:93:65","nodeType":"YulExpressionStatement","src":"11071:93:65"},{"nativeSrc":"11173:19:65","nodeType":"YulAssignment","src":"11173:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"11184:3:65","nodeType":"YulIdentifier","src":"11184:3:65"},{"kind":"number","nativeSrc":"11189:2:65","nodeType":"YulLiteral","src":"11189:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11180:3:65","nodeType":"YulIdentifier","src":"11180:3:65"},"nativeSrc":"11180:12:65","nodeType":"YulFunctionCall","src":"11180:12:65"},"variableNames":[{"name":"end","nativeSrc":"11173:3:65","nodeType":"YulIdentifier","src":"11173:3:65"}]}]},"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"10832:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10966:3:65","nodeType":"YulTypedName","src":"10966:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"10974:3:65","nodeType":"YulTypedName","src":"10974:3:65","type":""}],"src":"10832:366:65"},{"body":{"nativeSrc":"11375:248:65","nodeType":"YulBlock","src":"11375:248:65","statements":[{"nativeSrc":"11385:26:65","nodeType":"YulAssignment","src":"11385:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"11397:9:65","nodeType":"YulIdentifier","src":"11397:9:65"},{"kind":"number","nativeSrc":"11408:2:65","nodeType":"YulLiteral","src":"11408:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11393:3:65","nodeType":"YulIdentifier","src":"11393:3:65"},"nativeSrc":"11393:18:65","nodeType":"YulFunctionCall","src":"11393:18:65"},"variableNames":[{"name":"tail","nativeSrc":"11385:4:65","nodeType":"YulIdentifier","src":"11385:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11432:9:65","nodeType":"YulIdentifier","src":"11432:9:65"},{"kind":"number","nativeSrc":"11443:1:65","nodeType":"YulLiteral","src":"11443:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11428:3:65","nodeType":"YulIdentifier","src":"11428:3:65"},"nativeSrc":"11428:17:65","nodeType":"YulFunctionCall","src":"11428:17:65"},{"arguments":[{"name":"tail","nativeSrc":"11451:4:65","nodeType":"YulIdentifier","src":"11451:4:65"},{"name":"headStart","nativeSrc":"11457:9:65","nodeType":"YulIdentifier","src":"11457:9:65"}],"functionName":{"name":"sub","nativeSrc":"11447:3:65","nodeType":"YulIdentifier","src":"11447:3:65"},"nativeSrc":"11447:20:65","nodeType":"YulFunctionCall","src":"11447:20:65"}],"functionName":{"name":"mstore","nativeSrc":"11421:6:65","nodeType":"YulIdentifier","src":"11421:6:65"},"nativeSrc":"11421:47:65","nodeType":"YulFunctionCall","src":"11421:47:65"},"nativeSrc":"11421:47:65","nodeType":"YulExpressionStatement","src":"11421:47:65"},{"nativeSrc":"11477:139:65","nodeType":"YulAssignment","src":"11477:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"11611:4:65","nodeType":"YulIdentifier","src":"11611:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack","nativeSrc":"11485:124:65","nodeType":"YulIdentifier","src":"11485:124:65"},"nativeSrc":"11485:131:65","nodeType":"YulFunctionCall","src":"11485:131:65"},"variableNames":[{"name":"tail","nativeSrc":"11477:4:65","nodeType":"YulIdentifier","src":"11477:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11204:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11355:9:65","nodeType":"YulTypedName","src":"11355:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11370:4:65","nodeType":"YulTypedName","src":"11370:4:65","type":""}],"src":"11204:419:65"},{"body":{"nativeSrc":"11735:108:65","nodeType":"YulBlock","src":"11735:108:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"11757:6:65","nodeType":"YulIdentifier","src":"11757:6:65"},{"kind":"number","nativeSrc":"11765:1:65","nodeType":"YulLiteral","src":"11765:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11753:3:65","nodeType":"YulIdentifier","src":"11753:3:65"},"nativeSrc":"11753:14:65","nodeType":"YulFunctionCall","src":"11753:14:65"},{"kind":"number","nativeSrc":"11769:66:65","nodeType":"YulLiteral","src":"11769:66:65","type":"","value":"0xf851a44000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11746:6:65","nodeType":"YulIdentifier","src":"11746:6:65"},"nativeSrc":"11746:90:65","nodeType":"YulFunctionCall","src":"11746:90:65"},"nativeSrc":"11746:90:65","nodeType":"YulExpressionStatement","src":"11746:90:65"}]},"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"11629:214:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"11727:6:65","nodeType":"YulTypedName","src":"11727:6:65","type":""}],"src":"11629:214:65"},{"body":{"nativeSrc":"12012:235:65","nodeType":"YulBlock","src":"12012:235:65","statements":[{"nativeSrc":"12022:90:65","nodeType":"YulAssignment","src":"12022:90:65","value":{"arguments":[{"name":"pos","nativeSrc":"12105:3:65","nodeType":"YulIdentifier","src":"12105:3:65"},{"kind":"number","nativeSrc":"12110:1:65","nodeType":"YulLiteral","src":"12110:1:65","type":"","value":"4"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12029:75:65","nodeType":"YulIdentifier","src":"12029:75:65"},"nativeSrc":"12029:83:65","nodeType":"YulFunctionCall","src":"12029:83:65"},"variableNames":[{"name":"pos","nativeSrc":"12022:3:65","nodeType":"YulIdentifier","src":"12022:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"12210:3:65","nodeType":"YulIdentifier","src":"12210:3:65"}],"functionName":{"name":"store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","nativeSrc":"12121:88:65","nodeType":"YulIdentifier","src":"12121:88:65"},"nativeSrc":"12121:93:65","nodeType":"YulFunctionCall","src":"12121:93:65"},"nativeSrc":"12121:93:65","nodeType":"YulExpressionStatement","src":"12121:93:65"},{"nativeSrc":"12223:18:65","nodeType":"YulAssignment","src":"12223:18:65","value":{"arguments":[{"name":"pos","nativeSrc":"12234:3:65","nodeType":"YulIdentifier","src":"12234:3:65"},{"kind":"number","nativeSrc":"12239:1:65","nodeType":"YulLiteral","src":"12239:1:65","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"12230:3:65","nodeType":"YulIdentifier","src":"12230:3:65"},"nativeSrc":"12230:11:65","nodeType":"YulFunctionCall","src":"12230:11:65"},"variableNames":[{"name":"end","nativeSrc":"12223:3:65","nodeType":"YulIdentifier","src":"12223:3:65"}]}]},"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11849:398:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12000:3:65","nodeType":"YulTypedName","src":"12000:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12008:3:65","nodeType":"YulTypedName","src":"12008:3:65","type":""}],"src":"11849:398:65"},{"body":{"nativeSrc":"12441:191:65","nodeType":"YulBlock","src":"12441:191:65","statements":[{"nativeSrc":"12452:154:65","nodeType":"YulAssignment","src":"12452:154:65","value":{"arguments":[{"name":"pos","nativeSrc":"12602:3:65","nodeType":"YulIdentifier","src":"12602:3:65"}],"functionName":{"name":"abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12459:141:65","nodeType":"YulIdentifier","src":"12459:141:65"},"nativeSrc":"12459:147:65","nodeType":"YulFunctionCall","src":"12459:147:65"},"variableNames":[{"name":"pos","nativeSrc":"12452:3:65","nodeType":"YulIdentifier","src":"12452:3:65"}]},{"nativeSrc":"12616:10:65","nodeType":"YulAssignment","src":"12616:10:65","value":{"name":"pos","nativeSrc":"12623:3:65","nodeType":"YulIdentifier","src":"12623:3:65"},"variableNames":[{"name":"end","nativeSrc":"12616:3:65","nodeType":"YulIdentifier","src":"12616:3:65"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12253:379:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12428:3:65","nodeType":"YulTypedName","src":"12428:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12437:3:65","nodeType":"YulTypedName","src":"12437:3:65","type":""}],"src":"12253:379:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_TransparentUpgradeableProxy_$12741(value) -> cleaned {\n        cleaned := cleanup_t_address_payable(value)\n    }\n\n    function validator_revert_t_contract$_TransparentUpgradeableProxy_$12741(value) {\n        if iszero(eq(value, cleanup_t_contract$_TransparentUpgradeableProxy_$12741(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_TransparentUpgradeableProxy_$12741(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_TransparentUpgradeableProxy_$12741(value)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$12741(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_address(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$12741(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_contract$_TransparentUpgradeableProxy_$12741t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_TransparentUpgradeableProxy_$12741(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(memPtr) {\n\n        mstore(add(memPtr, 0), 0x5c60da1b00000000000000000000000000000000000000000000000000000000)\n\n    }\n\n    function abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n        store_literal_in_memory_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29(pos)\n        end := add(pos, 4)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(memPtr) {\n\n        mstore(add(memPtr, 0), 0xf851a44000000000000000000000000000000000000000000000000000000000)\n\n    }\n\n    function abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 4)\n        store_literal_in_memory_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7(pos)\n        end := add(pos, 4)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461010b57806399a88ec41461011e578063f2fde38b1461013e578063f3b7dead1461015e57600080fd5b8063204e1c7a14610080578063715018a6146100b65780637eff275e146100cd5780638da5cb5b146100ed575b600080fd5b34801561008c57600080fd5b506100a061009b3660046104ba565b61017e565b6040516100ad91906104ea565b60405180910390f35b3480156100c257600080fd5b506100cb610204565b005b3480156100d957600080fd5b506100cb6100e836600461050c565b610243565b3480156100f957600080fd5b506000546001600160a01b03166100a0565b6100cb610119366004610644565b6102cf565b34801561012a57600080fd5b506100cb61013936600461050c565b610360565b34801561014a57600080fd5b506100cb6101593660046106af565b6103b6565b34801561016a57600080fd5b506100a06101793660046104ba565b610412565b6000806000836001600160a01b0316604051610199906106e4565b600060405180830381855afa9150503d80600081146101d4576040519150601f19603f3d011682016040523d82523d6000602084013e6101d9565b606091505b5091509150816101e857600080fd5b808060200190518101906101fc91906106fa565b949350505050565b6000546001600160a01b031633146102375760405162461bcd60e51b815260040161022e9061071b565b60405180910390fd5b610241600061042d565b565b6000546001600160a01b0316331461026d5760405162461bcd60e51b815260040161022e9061071b565b6040516308f2839760e41b81526001600160a01b03831690638f283970906102999084906004016104ea565b600060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260040161022e9061071b565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061032990869086906004016107ab565b6000604051808303818588803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260040161022e9061071b565b604051631b2ce7f360e11b81526001600160a01b03831690633659cfe6906102999084906004016104ea565b6000546001600160a01b031633146103e05760405162461bcd60e51b815260040161022e9061071b565b6001600160a01b0381166104065760405162461bcd60e51b815260040161022e906107cb565b61040f8161042d565b50565b6000806000836001600160a01b031660405161019990610826565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b600061048a8261047d565b6104a481610490565b811461040f57600080fd5b803561048a8161049b565b6000602082840312156104cf576104cf600080fd5b60006101fc84846104af565b6104e48161047d565b82525050565b6020810161048a82846104db565b6104a48161047d565b803561048a816104f8565b6000806040838503121561052257610522600080fd5b600061052e85856104af565b925050602061053f85828601610501565b9150509250929050565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561058557610585610549565b6040525050565b600061059760405190565b90506105a3828261055f565b919050565b600067ffffffffffffffff8211156105c2576105c2610549565b601f19601f83011660200192915050565b82818337506000910152565b60006105f26105ed846105a8565b61058c565b90508281526020810184848401111561060d5761060d600080fd5b6106188482856105d3565b509392505050565b600082601f83011261063457610634600080fd5b81356101fc8482602086016105df565b60008060006060848603121561065c5761065c600080fd5b600061066886866104af565b935050602061067986828701610501565b925050604084013567ffffffffffffffff81111561069957610699600080fd5b6106a586828701610620565b9150509250925092565b6000602082840312156106c4576106c4600080fd5b60006101fc8484610501565b635c60da1b60e01b815260005b5060040190565b600061048a826106d0565b805161048a816104f8565b60006020828403121561070f5761070f600080fd5b60006101fc84846106ef565b60208082528181019081527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408301526060820161048a565b60005b83811015610770578181015183820152602001610758565b50506000910152565b6000610783825190565b80845260208401935061079a818560208601610755565b601f01601f19169290920192915050565b604081016107b982856104db565b81810360208301526101fc8184610779565b6020808252810161048a81602681527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160208201526564647265737360d01b604082015260600190565b6303e1469160e61b815260006106dd565b600061048a8261081556fea26469706673582212203b58938bc480699dc5b9a3a90f976b9179e4bbcc2d37584c8881a01abfb51dc764736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9623609D GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x99A88EC4 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0xF3B7DEAD EQ PUSH2 0x15E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x204E1C7A EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x7EFF275E EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xED JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x4BA JUMP JUMPDEST PUSH2 0x17E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x204 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0xE8 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0x243 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA0 JUMP JUMPDEST PUSH2 0xCB PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x644 JUMP JUMPDEST PUSH2 0x2CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0x360 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCB PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x6AF JUMP JUMPDEST PUSH2 0x3B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA0 PUSH2 0x179 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BA JUMP JUMPDEST PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x199 SWAP1 PUSH2 0x6E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x6FA JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x237 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x241 PUSH1 0x0 PUSH2 0x42D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x26D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8F28397 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x8F283970 SWAP1 PUSH2 0x299 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x329 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x356 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B2CE7F3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x3659CFE6 SWAP1 PUSH2 0x299 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x71B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x406 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22E SWAP1 PUSH2 0x7CB JUMP JUMPDEST PUSH2 0x40F DUP2 PUSH2 0x42D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 MLOAD PUSH2 0x199 SWAP1 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x47D JUMP JUMPDEST PUSH2 0x4A4 DUP2 PUSH2 0x490 JUMP JUMPDEST DUP2 EQ PUSH2 0x40F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48A DUP2 PUSH2 0x49B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CF JUMPI PUSH2 0x4CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x4AF JUMP JUMPDEST PUSH2 0x4E4 DUP2 PUSH2 0x47D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x48A DUP3 DUP5 PUSH2 0x4DB JUMP JUMPDEST PUSH2 0x4A4 DUP2 PUSH2 0x47D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x48A DUP2 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x522 JUMPI PUSH2 0x522 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP6 DUP6 PUSH2 0x4AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x53F DUP6 DUP3 DUP7 ADD PUSH2 0x501 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x585 JUMPI PUSH2 0x585 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x597 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x5A3 DUP3 DUP3 PUSH2 0x55F JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5C2 JUMPI PUSH2 0x5C2 PUSH2 0x549 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F2 PUSH2 0x5ED DUP5 PUSH2 0x5A8 JUMP JUMPDEST PUSH2 0x58C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x60D JUMPI PUSH2 0x60D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x618 DUP5 DUP3 DUP6 PUSH2 0x5D3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x634 JUMPI PUSH2 0x634 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1FC DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x65C JUMPI PUSH2 0x65C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x668 DUP7 DUP7 PUSH2 0x4AF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x679 DUP7 DUP3 DUP8 ADD PUSH2 0x501 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x699 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A5 DUP7 DUP3 DUP8 ADD PUSH2 0x620 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C4 JUMPI PUSH2 0x6C4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x501 JUMP JUMPDEST PUSH4 0x5C60DA1B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 JUMPDEST POP PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x6D0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x48A DUP2 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x70F JUMPI PUSH2 0x70F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FC DUP5 DUP5 PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD SWAP1 DUP2 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD PUSH2 0x48A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x770 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x758 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x783 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x79A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x755 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x7B9 DUP3 DUP6 PUSH2 0x4DB JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1FC DUP2 DUP5 PUSH2 0x779 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x48A DUP2 PUSH1 0x26 DUP2 MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x3E14691 PUSH1 0xE6 SHL DUP2 MSTORE PUSH1 0x0 PUSH2 0x6DD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP3 PUSH2 0x815 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE PC SWAP4 DUP12 0xC4 DUP1 PUSH10 0x9DC5B9A3A90F976B9179 0xE4 0xBB 0xCC 0x2D CALLDATACOPY PC 0x4C DUP9 DUP2 LOG0 BYTE 0xBF 0xB5 SAR 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"435:2470:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:437;;;;;;;;;;-1:-1:-1;701:437:59;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:101:53;;;;;;;;;;;;;:::i;:::-;;1891:148:59;;;;;;;;;;-1:-1:-1;1891:148:59;;;;;:::i;:::-;;:::i;1057:85:53:-;;;;;;;;;;-1:-1:-1;1103:7:53;1129:6;-1:-1:-1;;;;;1129:6:53;1057:85;;2659:244:59;;;;;;:::i;:::-;;:::i;2244:149::-;;;;;;;;;;-1:-1:-1;2244:149:59;;;;;:::i;:::-;;:::i;1939:198:53:-;;;;;;;;;;-1:-1:-1;1939:198:53;;;;;:::i;:::-;;:::i;1298:419:59:-;;;;;;;;;;-1:-1:-1;1298:419:59;;;;;:::i;:::-;;:::i;701:437::-;797:7;974:12;988:23;1023:5;-1:-1:-1;;;;;1015:25:59;:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:82;;;;1073:7;1065:16;;;;;;1109:10;1098:33;;;;;;;;;;;;:::i;:::-;1091:40;701:437;-1:-1:-1;;;;701:437:59:o;1689:101:53:-;1103:7;1129:6;-1:-1:-1;;;;;1129:6:53;719:10:62;1269:23:53;1261:68;;;;-1:-1:-1;;;1261:68:53;;;;;;;:::i;:::-;;;;;;;;;1753:30:::1;1780:1;1753:18;:30::i;:::-;1689:101::o:0;1891:148:59:-;1103:7:53;1129:6;-1:-1:-1;;;;;1129:6:53;719:10:62;1269:23:53;1261:68;;;;-1:-1:-1;;;1261:68:53;;;;;;;:::i;:::-;2005:27:59::1;::::0;-1:-1:-1;;;2005:27:59;;-1:-1:-1;;;;;2005:17:59;::::1;::::0;::::1;::::0;:27:::1;::::0;2023:8;;2005:27:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1891:148:::0;;:::o;2659:244::-;1103:7:53;1129:6;-1:-1:-1;;;;;1129:6:53;719:10:62;1269:23:53;1261:68;;;;-1:-1:-1;;;1261:68:53;;;;;;;:::i;:::-;2834:62:59::1;::::0;-1:-1:-1;;;2834:62:59;;-1:-1:-1;;;;;2834:22:59;::::1;::::0;::::1;::::0;2864:9:::1;::::0;2834:62:::1;::::0;2875:14;;2891:4;;2834:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2659:244:::0;;;:::o;2244:149::-;1103:7:53;1129:6;-1:-1:-1;;;;;1129:6:53;719:10:62;1269:23:53;1261:68;;;;-1:-1:-1;;;1261:68:53;;;;;;;:::i;:::-;2355:31:59::1;::::0;-1:-1:-1;;;2355:31:59;;-1:-1:-1;;;;;2355:15:59;::::1;::::0;::::1;::::0;:31:::1;::::0;2371:14;;2355:31:::1;;;:::i;1939:198:53:-:0;1103:7;1129:6;-1:-1:-1;;;;;1129:6:53;719:10:62;1269:23:53;1261:68;;;;-1:-1:-1;;;1261:68:53;;;;;;;:::i;:::-;-1:-1:-1;;;;;2027:22:53;::::1;2019:73;;;;-1:-1:-1::0;;;2019:73:53::1;;;;;;;:::i;:::-;2102:28;2121:8;2102:18;:28::i;:::-;1939:198:::0;:::o;1298:419:59:-;1385:7;1553:12;1567:23;1602:5;-1:-1:-1;;;;;1594:25:59;:40;;;;;:::i;2291:187:53:-;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:53;;;-1:-1:-1;;;;;;2399:17:53;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;466:104:65:-;511:7;-1:-1:-1;;;;;400:54:65;;540:24;529:35;466:104;-1:-1:-1;;466:104:65:o;576:141::-;650:7;679:32;705:5;679:32;:::i;723:196::-;833:61;888:5;833:61;:::i;:::-;826:5;823:72;813:100;;909:1;906;899:12;925:213;1033:20;;1062:70;1033:20;1062:70;:::i;1144:403::-;1240:6;1289:2;1277:9;1268:7;1264:23;1260:32;1257:119;;;1295:79;435:2470:59;;;1295:79:65;1415:1;1440:90;1522:7;1502:9;1440:90;:::i;1655:118::-;1742:24;1760:5;1742:24;:::i;:::-;1737:3;1730:37;1655:118;;:::o;1779:222::-;1910:2;1895:18;;1923:71;1899:9;1967:6;1923:71;:::i;2007:122::-;2080:24;2098:5;2080:24;:::i;2135:139::-;2206:20;;2235:33;2206:20;2235:33;:::i;2280:548::-;2385:6;2393;2442:2;2430:9;2421:7;2417:23;2413:32;2410:119;;;2448:79;435:2470:59;;;2448:79:65;2568:1;2593:90;2675:7;2655:9;2593:90;:::i;:::-;2583:100;;2539:154;2732:2;2758:53;2803:7;2794:6;2783:9;2779:22;2758:53;:::i;:::-;2748:63;;2703:118;2280:548;;;;;:::o;3188:180::-;-1:-1:-1;;;3233:1:65;3226:88;3333:4;3330:1;3323:15;3357:4;3354:1;3347:15;3374:281;-1:-1:-1;;3172:2:65;3152:14;;3148:28;3449:6;3445:40;3587:6;3575:10;3572:22;3551:18;3539:10;3536:34;3533:62;3530:88;;;3598:18;;:::i;:::-;3634:2;3627:22;-1:-1:-1;;3374:281:65:o;3661:129::-;3695:6;3722:20;73:2;67:9;;7:75;3722:20;3712:30;;3751:33;3779:4;3771:6;3751:33;:::i;:::-;3661:129;;;:::o;3796:307::-;3857:4;3947:18;3939:6;3936:30;3933:56;;;3969:18;;:::i;:::-;-1:-1:-1;;3172:2:65;3152:14;;3148:28;4091:4;4081:15;;3796:307;-1:-1:-1;;3796:307:65:o;4109:148::-;4207:6;4202:3;4197;4184:30;-1:-1:-1;4248:1:65;4230:16;;4223:27;4109:148::o;4263:423::-;4340:5;4365:65;4381:48;4422:6;4381:48;:::i;:::-;4365:65;:::i;:::-;4356:74;;4453:6;4446:5;4439:21;4491:4;4484:5;4480:16;4529:3;4520:6;4515:3;4511:16;4508:25;4505:112;;;4536:79;435:2470:59;;;4536:79:65;4626:54;4673:6;4668:3;4663;4626:54;:::i;:::-;4346:340;4263:423;;;;;:::o;4705:338::-;4760:5;4809:3;4802:4;4794:6;4790:17;4786:27;4776:122;;4817:79;435:2470:59;;;4817:79:65;4934:6;4921:20;4959:78;5033:3;5025:6;5018:4;5010:6;5006:17;4959:78;:::i;5049:871::-;5172:6;5180;5188;5237:2;5225:9;5216:7;5212:23;5208:32;5205:119;;;5243:79;435:2470:59;;;5243:79:65;5363:1;5388:90;5470:7;5450:9;5388:90;:::i;:::-;5378:100;;5334:154;5527:2;5553:53;5598:7;5589:6;5578:9;5574:22;5553:53;:::i;:::-;5543:63;;5498:118;5683:2;5672:9;5668:18;5655:32;5714:18;5706:6;5703:30;5700:117;;;5736:79;435:2470:59;;;5736:79:65;5841:62;5895:7;5886:6;5875:9;5871:22;5841:62;:::i;:::-;5831:72;;5626:287;5049:871;;;;;:::o;5926:329::-;5985:6;6034:2;6022:9;6013:7;6009:23;6005:32;6002:119;;;6040:79;435:2470:59;;;6040:79:65;6160:1;6185:53;6230:7;6210:9;6185:53;:::i;6634:398::-;-1:-1:-1;;;6531:90:65;;6793:3;6906:93;-1:-1:-1;7024:1:65;7015:11;;6634:398::o;7038:379::-;7222:3;7244:147;7387:3;7244:147;:::i;7567:159::-;7657:13;;7679:41;7657:13;7679:41;:::i;7732:367::-;7810:6;7859:2;7847:9;7838:7;7834:23;7830:32;7827:119;;;7865:79;435:2470:59;;;7865:79:65;7985:1;8010:72;8074:7;8054:9;8010:72;:::i;8840:419::-;9044:2;9057:47;;;9029:18;;;8211:19;;;8420:34;8254:14;;;8397:58;8816:12;;;9121:131;8468:366;9543:248;9625:1;9635:113;9649:6;9646:1;9643:13;9635:113;;;9725:11;;;9719:18;9706:11;;;9699:39;9671:2;9664:10;9635:113;;;-1:-1:-1;;9782:1:65;9764:16;;9757:27;9543:248::o;9797:373::-;9883:3;9911:38;9943:5;9344:12;;9265:98;9911:38;8211:19;;;8263:4;8254:14;;9958:77;;10044:65;10102:6;10097:3;10090:4;10083:5;10079:16;10044:65;:::i;:::-;3172:2;3152:14;-1:-1:-1;;3148:28:65;10125:39;;;;;;-1:-1:-1;;9797:373:65:o;10176:419::-;10353:2;10338:18;;10366:71;10342:9;10410:6;10366:71;:::i;:::-;10484:9;10478:4;10474:20;10469:2;10458:9;10454:18;10447:48;10512:76;10583:4;10574:6;10512:76;:::i;11204:419::-;11408:2;11421:47;;;11393:18;;11485:131;11393:18;11059:2;8211:19;;10741:34;8263:4;8254:14;;10718:58;-1:-1:-1;;;10793:15:65;;;10786:33;11180:12;;;10832:366;11849:398;-1:-1:-1;;;11746:90:65;;12008:3;12121:93;11629:214;12253:379;12437:3;12459:147;12602:3;12459:147;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"430200","executionCost":"infinite","totalCost":"infinite"},"external":{"changeProxyAdmin(address,address)":"infinite","getProxyAdmin(address)":"infinite","getProxyImplementation(address)":"infinite","owner()":"infinite","renounceOwnership()":"28137","transferOwnership(address)":"infinite","upgrade(address,address)":"infinite","upgradeAndCall(address,address,bytes)":"infinite"}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../utils/Context.sol\\\";\\n\\n/**\\n * @dev Contract module which provides a basic access control mechanism, where\\n * there is an account (an owner) that can be granted exclusive access to\\n * specific functions.\\n *\\n * By default, the owner account will be the one that deploys the contract. This\\n * can later be changed with {transferOwnership}.\\n *\\n * This module is used through inheritance. It will make available the modifier\\n * `onlyOwner`, which can be applied to your functions to restrict their use to\\n * the owner.\\n */\\nabstract contract Ownable is Context {\\n    address private _owner;\\n\\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\\n\\n    /**\\n     * @dev Initializes the contract setting the deployer as the initial owner.\\n     */\\n    constructor (address initialOwner) {\\n        _transferOwnership(initialOwner);\\n    }\\n\\n    /**\\n     * @dev Returns the address of the current owner.\\n     */\\n    function owner() public view virtual returns (address) {\\n        return _owner;\\n    }\\n\\n    /**\\n     * @dev Throws if called by any account other than the owner.\\n     */\\n    modifier onlyOwner() {\\n        require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\");\\n        _;\\n    }\\n\\n    /**\\n     * @dev Leaves the contract without owner. It will not be possible to call\\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\\n     *\\n     * NOTE: Renouncing ownership will leave the contract without an owner,\\n     * thereby removing any functionality that is only available to the owner.\\n     */\\n    function renounceOwnership() public virtual onlyOwner {\\n        _transferOwnership(address(0));\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Can only be called by the current owner.\\n     */\\n    function transferOwnership(address newOwner) public virtual onlyOwner {\\n        require(newOwner != address(0), \\\"Ownable: new owner is the zero address\\\");\\n        _transferOwnership(newOwner);\\n    }\\n\\n    /**\\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\\n     * Internal function without access restriction.\\n     */\\n    function _transferOwnership(address newOwner) internal virtual {\\n        address oldOwner = _owner;\\n        _owner = newOwner;\\n        emit OwnershipTransferred(oldOwner, newOwner);\\n    }\\n}\\n\",\"keccak256\":\"0x9b2bbba5bb04f53f277739c1cdff896ba8b3bf591cfc4eab2098c655e8ac251e\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/ProxyAdmin.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"./TransparentUpgradeableProxy.sol\\\";\\nimport \\\"../../access/Ownable.sol\\\";\\n\\n/**\\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\\n */\\ncontract ProxyAdmin is Ownable {\\n\\n    constructor (address initialOwner) Ownable(initialOwner) {}\\n\\n    /**\\n     * @dev Returns the current implementation of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"implementation()\\\")) == 0x5c60da1b\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"5c60da1b\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Returns the current admin of `proxy`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) {\\n        // We need to manually run the static call since the getter cannot be flagged as view\\n        // bytes4(keccak256(\\\"admin()\\\")) == 0xf851a440\\n        (bool success, bytes memory returndata) = address(proxy).staticcall(hex\\\"f851a440\\\");\\n        require(success);\\n        return abi.decode(returndata, (address));\\n    }\\n\\n    /**\\n     * @dev Changes the admin of `proxy` to `newAdmin`.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the current admin of `proxy`.\\n     */\\n    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner {\\n        proxy.changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner {\\n        proxy.upgradeTo(implementation);\\n    }\\n\\n    /**\\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\\n     * {TransparentUpgradeableProxy-upgradeToAndCall}.\\n     *\\n     * Requirements:\\n     *\\n     * - This contract must be the admin of `proxy`.\\n     */\\n    function upgradeAndCall(\\n        TransparentUpgradeableProxy proxy,\\n        address implementation,\\n        bytes memory data\\n    ) public payable virtual onlyOwner {\\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\\n    }\\n}\\n\",\"keccak256\":\"0x754888b9c9ab5525343460b0a4fa2e2f4fca9b6a7e0e7ddea4154e2b1182a45d\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":11891,"contract":"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol":{"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_12039":{"entryPoint":null,"id":12039,"parameterSlots":2,"returnSlots":0},"@_12618":{"entryPoint":null,"id":12618,"parameterSlots":3,"returnSlots":0},"@_changeAdmin_12273":{"entryPoint":254,"id":12273,"parameterSlots":1,"returnSlots":0},"@_getAdmin_12230":{"entryPoint":null,"id":12230,"parameterSlots":0,"returnSlots":1},"@_setAdmin_12256":{"entryPoint":463,"id":12256,"parameterSlots":1,"returnSlots":0},"@_setImplementation_12108":{"entryPoint":560,"id":12108,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_12153":{"entryPoint":210,"id":12153,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_12123":{"entryPoint":353,"id":12123,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12969":{"entryPoint":417,"id":12969,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_13004":{"entryPoint":620,"id":13004,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1},"@isContract_12759":{"entryPoint":null,"id":12759,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_13035":{"entryPoint":781,"id":13035,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1058,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":875,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1123,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1167,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1336,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1683,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1378,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1464,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1554,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1671,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1351,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1733,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1448,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1538,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1621,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":952,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":980,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1295,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":838,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1022,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":908,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1314,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1273,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":886,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":855,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10137:65","nodeType":"YulBlock","src":"0:10137:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"934:28:65","nodeType":"YulBlock","src":"934:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:65","nodeType":"YulLiteral","src":"951:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:65","nodeType":"YulLiteral","src":"954:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:65","nodeType":"YulIdentifier","src":"944:6:65"},"nativeSrc":"944:12:65","nodeType":"YulFunctionCall","src":"944:12:65"},"nativeSrc":"944:12:65","nodeType":"YulExpressionStatement","src":"944:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:65","nodeType":"YulFunctionDefinition","src":"845:117:65"},{"body":{"nativeSrc":"1057:28:65","nodeType":"YulBlock","src":"1057:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:65","nodeType":"YulLiteral","src":"1074:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:65","nodeType":"YulLiteral","src":"1077:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:65","nodeType":"YulIdentifier","src":"1067:6:65"},"nativeSrc":"1067:12:65","nodeType":"YulFunctionCall","src":"1067:12:65"},"nativeSrc":"1067:12:65","nodeType":"YulExpressionStatement","src":"1067:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:65","nodeType":"YulFunctionDefinition","src":"968:117:65"},{"body":{"nativeSrc":"1139:54:65","nodeType":"YulBlock","src":"1139:54:65","statements":[{"nativeSrc":"1149:38:65","nodeType":"YulAssignment","src":"1149:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:65","nodeType":"YulIdentifier","src":"1167:5:65"},{"kind":"number","nativeSrc":"1174:2:65","nodeType":"YulLiteral","src":"1174:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:65","nodeType":"YulIdentifier","src":"1163:3:65"},"nativeSrc":"1163:14:65","nodeType":"YulFunctionCall","src":"1163:14:65"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:65","nodeType":"YulIdentifier","src":"1179:3:65"},"nativeSrc":"1179:7:65","nodeType":"YulFunctionCall","src":"1179:7:65"}],"functionName":{"name":"and","nativeSrc":"1159:3:65","nodeType":"YulIdentifier","src":"1159:3:65"},"nativeSrc":"1159:28:65","nodeType":"YulFunctionCall","src":"1159:28:65"},"variableNames":[{"name":"result","nativeSrc":"1149:6:65","nodeType":"YulIdentifier","src":"1149:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:65","nodeType":"YulTypedName","src":"1122:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:65","nodeType":"YulTypedName","src":"1132:6:65","type":""}],"src":"1091:102:65"},{"body":{"nativeSrc":"1227:152:65","nodeType":"YulBlock","src":"1227:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:65","nodeType":"YulLiteral","src":"1244:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:65","nodeType":"YulLiteral","src":"1247:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:65","nodeType":"YulIdentifier","src":"1237:6:65"},"nativeSrc":"1237:88:65","nodeType":"YulFunctionCall","src":"1237:88:65"},"nativeSrc":"1237:88:65","nodeType":"YulExpressionStatement","src":"1237:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:65","nodeType":"YulLiteral","src":"1341:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:65","nodeType":"YulLiteral","src":"1344:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:65","nodeType":"YulIdentifier","src":"1334:6:65"},"nativeSrc":"1334:15:65","nodeType":"YulFunctionCall","src":"1334:15:65"},"nativeSrc":"1334:15:65","nodeType":"YulExpressionStatement","src":"1334:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:65","nodeType":"YulLiteral","src":"1365:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:65","nodeType":"YulLiteral","src":"1368:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:65","nodeType":"YulIdentifier","src":"1358:6:65"},"nativeSrc":"1358:15:65","nodeType":"YulFunctionCall","src":"1358:15:65"},"nativeSrc":"1358:15:65","nodeType":"YulExpressionStatement","src":"1358:15:65"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:65","nodeType":"YulFunctionDefinition","src":"1199:180:65"},{"body":{"nativeSrc":"1428:238:65","nodeType":"YulBlock","src":"1428:238:65","statements":[{"nativeSrc":"1438:58:65","nodeType":"YulVariableDeclaration","src":"1438:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:65","nodeType":"YulIdentifier","src":"1460:6:65"},{"arguments":[{"name":"size","nativeSrc":"1490:4:65","nodeType":"YulIdentifier","src":"1490:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:65","nodeType":"YulIdentifier","src":"1468:21:65"},"nativeSrc":"1468:27:65","nodeType":"YulFunctionCall","src":"1468:27:65"}],"functionName":{"name":"add","nativeSrc":"1456:3:65","nodeType":"YulIdentifier","src":"1456:3:65"},"nativeSrc":"1456:40:65","nodeType":"YulFunctionCall","src":"1456:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:65","nodeType":"YulTypedName","src":"1442:10:65","type":""}]},{"body":{"nativeSrc":"1607:22:65","nodeType":"YulBlock","src":"1607:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:65","nodeType":"YulIdentifier","src":"1609:16:65"},"nativeSrc":"1609:18:65","nodeType":"YulFunctionCall","src":"1609:18:65"},"nativeSrc":"1609:18:65","nodeType":"YulExpressionStatement","src":"1609:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:65","nodeType":"YulIdentifier","src":"1550:10:65"},{"kind":"number","nativeSrc":"1562:18:65","nodeType":"YulLiteral","src":"1562:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:65","nodeType":"YulIdentifier","src":"1547:2:65"},"nativeSrc":"1547:34:65","nodeType":"YulFunctionCall","src":"1547:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:65","nodeType":"YulIdentifier","src":"1586:10:65"},{"name":"memPtr","nativeSrc":"1598:6:65","nodeType":"YulIdentifier","src":"1598:6:65"}],"functionName":{"name":"lt","nativeSrc":"1583:2:65","nodeType":"YulIdentifier","src":"1583:2:65"},"nativeSrc":"1583:22:65","nodeType":"YulFunctionCall","src":"1583:22:65"}],"functionName":{"name":"or","nativeSrc":"1544:2:65","nodeType":"YulIdentifier","src":"1544:2:65"},"nativeSrc":"1544:62:65","nodeType":"YulFunctionCall","src":"1544:62:65"},"nativeSrc":"1541:88:65","nodeType":"YulIf","src":"1541:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:65","nodeType":"YulLiteral","src":"1645:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:65","nodeType":"YulIdentifier","src":"1649:10:65"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:65","nodeType":"YulIdentifier","src":"1638:6:65"},"nativeSrc":"1638:22:65","nodeType":"YulFunctionCall","src":"1638:22:65"},"nativeSrc":"1638:22:65","nodeType":"YulExpressionStatement","src":"1638:22:65"}]},"name":"finalize_allocation","nativeSrc":"1385:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:65","nodeType":"YulTypedName","src":"1414:6:65","type":""},{"name":"size","nativeSrc":"1422:4:65","nodeType":"YulTypedName","src":"1422:4:65","type":""}],"src":"1385:281:65"},{"body":{"nativeSrc":"1713:88:65","nodeType":"YulBlock","src":"1713:88:65","statements":[{"nativeSrc":"1723:30:65","nodeType":"YulAssignment","src":"1723:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:65","nodeType":"YulIdentifier","src":"1733:18:65"},"nativeSrc":"1733:20:65","nodeType":"YulFunctionCall","src":"1733:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:65","nodeType":"YulIdentifier","src":"1723:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:65","nodeType":"YulIdentifier","src":"1782:6:65"},{"name":"size","nativeSrc":"1790:4:65","nodeType":"YulIdentifier","src":"1790:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:65","nodeType":"YulIdentifier","src":"1762:19:65"},"nativeSrc":"1762:33:65","nodeType":"YulFunctionCall","src":"1762:33:65"},"nativeSrc":"1762:33:65","nodeType":"YulExpressionStatement","src":"1762:33:65"}]},"name":"allocate_memory","nativeSrc":"1672:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:65","nodeType":"YulTypedName","src":"1697:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:65","nodeType":"YulTypedName","src":"1706:6:65","type":""}],"src":"1672:129:65"},{"body":{"nativeSrc":"1873:241:65","nodeType":"YulBlock","src":"1873:241:65","statements":[{"body":{"nativeSrc":"1978:22:65","nodeType":"YulBlock","src":"1978:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:65","nodeType":"YulIdentifier","src":"1980:16:65"},"nativeSrc":"1980:18:65","nodeType":"YulFunctionCall","src":"1980:18:65"},"nativeSrc":"1980:18:65","nodeType":"YulExpressionStatement","src":"1980:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:65","nodeType":"YulIdentifier","src":"1950:6:65"},{"kind":"number","nativeSrc":"1958:18:65","nodeType":"YulLiteral","src":"1958:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:65","nodeType":"YulIdentifier","src":"1947:2:65"},"nativeSrc":"1947:30:65","nodeType":"YulFunctionCall","src":"1947:30:65"},"nativeSrc":"1944:56:65","nodeType":"YulIf","src":"1944:56:65"},{"nativeSrc":"2010:37:65","nodeType":"YulAssignment","src":"2010:37:65","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:65","nodeType":"YulIdentifier","src":"2040:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:65","nodeType":"YulIdentifier","src":"2018:21:65"},"nativeSrc":"2018:29:65","nodeType":"YulFunctionCall","src":"2018:29:65"},"variableNames":[{"name":"size","nativeSrc":"2010:4:65","nodeType":"YulIdentifier","src":"2010:4:65"}]},{"nativeSrc":"2084:23:65","nodeType":"YulAssignment","src":"2084:23:65","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:65","nodeType":"YulIdentifier","src":"2096:4:65"},{"kind":"number","nativeSrc":"2102:4:65","nodeType":"YulLiteral","src":"2102:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:65","nodeType":"YulIdentifier","src":"2092:3:65"},"nativeSrc":"2092:15:65","nodeType":"YulFunctionCall","src":"2092:15:65"},"variableNames":[{"name":"size","nativeSrc":"2084:4:65","nodeType":"YulIdentifier","src":"2084:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:65","nodeType":"YulTypedName","src":"1857:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:65","nodeType":"YulTypedName","src":"1868:4:65","type":""}],"src":"1807:307:65"},{"body":{"nativeSrc":"2182:186:65","nodeType":"YulBlock","src":"2182:186:65","statements":[{"nativeSrc":"2193:10:65","nodeType":"YulVariableDeclaration","src":"2193:10:65","value":{"kind":"number","nativeSrc":"2202:1:65","nodeType":"YulLiteral","src":"2202:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:65","nodeType":"YulTypedName","src":"2197:1:65","type":""}]},{"body":{"nativeSrc":"2262:63:65","nodeType":"YulBlock","src":"2262:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:65","nodeType":"YulIdentifier","src":"2287:3:65"},{"name":"i","nativeSrc":"2292:1:65","nodeType":"YulIdentifier","src":"2292:1:65"}],"functionName":{"name":"add","nativeSrc":"2283:3:65","nodeType":"YulIdentifier","src":"2283:3:65"},"nativeSrc":"2283:11:65","nodeType":"YulFunctionCall","src":"2283:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:65","nodeType":"YulIdentifier","src":"2306:3:65"},{"name":"i","nativeSrc":"2311:1:65","nodeType":"YulIdentifier","src":"2311:1:65"}],"functionName":{"name":"add","nativeSrc":"2302:3:65","nodeType":"YulIdentifier","src":"2302:3:65"},"nativeSrc":"2302:11:65","nodeType":"YulFunctionCall","src":"2302:11:65"}],"functionName":{"name":"mload","nativeSrc":"2296:5:65","nodeType":"YulIdentifier","src":"2296:5:65"},"nativeSrc":"2296:18:65","nodeType":"YulFunctionCall","src":"2296:18:65"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:65","nodeType":"YulIdentifier","src":"2276:6:65"},"nativeSrc":"2276:39:65","nodeType":"YulFunctionCall","src":"2276:39:65"},"nativeSrc":"2276:39:65","nodeType":"YulExpressionStatement","src":"2276:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:65","nodeType":"YulIdentifier","src":"2223:1:65"},{"name":"length","nativeSrc":"2226:6:65","nodeType":"YulIdentifier","src":"2226:6:65"}],"functionName":{"name":"lt","nativeSrc":"2220:2:65","nodeType":"YulIdentifier","src":"2220:2:65"},"nativeSrc":"2220:13:65","nodeType":"YulFunctionCall","src":"2220:13:65"},"nativeSrc":"2212:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:65","nodeType":"YulBlock","src":"2234:19:65","statements":[{"nativeSrc":"2236:15:65","nodeType":"YulAssignment","src":"2236:15:65","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:65","nodeType":"YulIdentifier","src":"2245:1:65"},{"kind":"number","nativeSrc":"2248:2:65","nodeType":"YulLiteral","src":"2248:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:65","nodeType":"YulIdentifier","src":"2241:3:65"},"nativeSrc":"2241:10:65","nodeType":"YulFunctionCall","src":"2241:10:65"},"variableNames":[{"name":"i","nativeSrc":"2236:1:65","nodeType":"YulIdentifier","src":"2236:1:65"}]}]},"pre":{"nativeSrc":"2216:3:65","nodeType":"YulBlock","src":"2216:3:65","statements":[]},"src":"2212:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:65","nodeType":"YulIdentifier","src":"2345:3:65"},{"name":"length","nativeSrc":"2350:6:65","nodeType":"YulIdentifier","src":"2350:6:65"}],"functionName":{"name":"add","nativeSrc":"2341:3:65","nodeType":"YulIdentifier","src":"2341:3:65"},"nativeSrc":"2341:16:65","nodeType":"YulFunctionCall","src":"2341:16:65"},{"kind":"number","nativeSrc":"2359:1:65","nodeType":"YulLiteral","src":"2359:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:65","nodeType":"YulIdentifier","src":"2334:6:65"},"nativeSrc":"2334:27:65","nodeType":"YulFunctionCall","src":"2334:27:65"},"nativeSrc":"2334:27:65","nodeType":"YulExpressionStatement","src":"2334:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:65","nodeType":"YulTypedName","src":"2164:3:65","type":""},{"name":"dst","nativeSrc":"2169:3:65","nodeType":"YulTypedName","src":"2169:3:65","type":""},{"name":"length","nativeSrc":"2174:6:65","nodeType":"YulTypedName","src":"2174:6:65","type":""}],"src":"2120:248:65"},{"body":{"nativeSrc":"2468:338:65","nodeType":"YulBlock","src":"2468:338:65","statements":[{"nativeSrc":"2478:74:65","nodeType":"YulAssignment","src":"2478:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:65","nodeType":"YulIdentifier","src":"2544:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:65","nodeType":"YulIdentifier","src":"2503:40:65"},"nativeSrc":"2503:48:65","nodeType":"YulFunctionCall","src":"2503:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:65","nodeType":"YulIdentifier","src":"2487:15:65"},"nativeSrc":"2487:65:65","nodeType":"YulFunctionCall","src":"2487:65:65"},"variableNames":[{"name":"array","nativeSrc":"2478:5:65","nodeType":"YulIdentifier","src":"2478:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:65","nodeType":"YulIdentifier","src":"2568:5:65"},{"name":"length","nativeSrc":"2575:6:65","nodeType":"YulIdentifier","src":"2575:6:65"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:65","nodeType":"YulIdentifier","src":"2561:6:65"},"nativeSrc":"2561:21:65","nodeType":"YulFunctionCall","src":"2561:21:65"},"nativeSrc":"2561:21:65","nodeType":"YulExpressionStatement","src":"2561:21:65"},{"nativeSrc":"2591:27:65","nodeType":"YulVariableDeclaration","src":"2591:27:65","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:65","nodeType":"YulIdentifier","src":"2606:5:65"},{"kind":"number","nativeSrc":"2613:4:65","nodeType":"YulLiteral","src":"2613:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:65","nodeType":"YulIdentifier","src":"2602:3:65"},"nativeSrc":"2602:16:65","nodeType":"YulFunctionCall","src":"2602:16:65"},"variables":[{"name":"dst","nativeSrc":"2595:3:65","nodeType":"YulTypedName","src":"2595:3:65","type":""}]},{"body":{"nativeSrc":"2656:83:65","nodeType":"YulBlock","src":"2656:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:65","nodeType":"YulIdentifier","src":"2658:77:65"},"nativeSrc":"2658:79:65","nodeType":"YulFunctionCall","src":"2658:79:65"},"nativeSrc":"2658:79:65","nodeType":"YulExpressionStatement","src":"2658:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},{"name":"length","nativeSrc":"2642:6:65","nodeType":"YulIdentifier","src":"2642:6:65"}],"functionName":{"name":"add","nativeSrc":"2633:3:65","nodeType":"YulIdentifier","src":"2633:3:65"},"nativeSrc":"2633:16:65","nodeType":"YulFunctionCall","src":"2633:16:65"},{"name":"end","nativeSrc":"2651:3:65","nodeType":"YulIdentifier","src":"2651:3:65"}],"functionName":{"name":"gt","nativeSrc":"2630:2:65","nodeType":"YulIdentifier","src":"2630:2:65"},"nativeSrc":"2630:25:65","nodeType":"YulFunctionCall","src":"2630:25:65"},"nativeSrc":"2627:112:65","nodeType":"YulIf","src":"2627:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:65","nodeType":"YulIdentifier","src":"2783:3:65"},{"name":"dst","nativeSrc":"2788:3:65","nodeType":"YulIdentifier","src":"2788:3:65"},{"name":"length","nativeSrc":"2793:6:65","nodeType":"YulIdentifier","src":"2793:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:65","nodeType":"YulIdentifier","src":"2748:34:65"},"nativeSrc":"2748:52:65","nodeType":"YulFunctionCall","src":"2748:52:65"},"nativeSrc":"2748:52:65","nodeType":"YulExpressionStatement","src":"2748:52:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:65","nodeType":"YulTypedName","src":"2441:3:65","type":""},{"name":"length","nativeSrc":"2446:6:65","nodeType":"YulTypedName","src":"2446:6:65","type":""},{"name":"end","nativeSrc":"2454:3:65","nodeType":"YulTypedName","src":"2454:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:65","nodeType":"YulTypedName","src":"2462:5:65","type":""}],"src":"2374:432:65"},{"body":{"nativeSrc":"2897:281:65","nodeType":"YulBlock","src":"2897:281:65","statements":[{"body":{"nativeSrc":"2946:83:65","nodeType":"YulBlock","src":"2946:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:65","nodeType":"YulIdentifier","src":"2948:77:65"},"nativeSrc":"2948:79:65","nodeType":"YulFunctionCall","src":"2948:79:65"},"nativeSrc":"2948:79:65","nodeType":"YulExpressionStatement","src":"2948:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:65","nodeType":"YulIdentifier","src":"2925:6:65"},{"kind":"number","nativeSrc":"2933:4:65","nodeType":"YulLiteral","src":"2933:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:65","nodeType":"YulIdentifier","src":"2921:3:65"},"nativeSrc":"2921:17:65","nodeType":"YulFunctionCall","src":"2921:17:65"},{"name":"end","nativeSrc":"2940:3:65","nodeType":"YulIdentifier","src":"2940:3:65"}],"functionName":{"name":"slt","nativeSrc":"2917:3:65","nodeType":"YulIdentifier","src":"2917:3:65"},"nativeSrc":"2917:27:65","nodeType":"YulFunctionCall","src":"2917:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:65","nodeType":"YulIdentifier","src":"2910:6:65"},"nativeSrc":"2910:35:65","nodeType":"YulFunctionCall","src":"2910:35:65"},"nativeSrc":"2907:122:65","nodeType":"YulIf","src":"2907:122:65"},{"nativeSrc":"3038:27:65","nodeType":"YulVariableDeclaration","src":"3038:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:65","nodeType":"YulIdentifier","src":"3058:6:65"}],"functionName":{"name":"mload","nativeSrc":"3052:5:65","nodeType":"YulIdentifier","src":"3052:5:65"},"nativeSrc":"3052:13:65","nodeType":"YulFunctionCall","src":"3052:13:65"},"variables":[{"name":"length","nativeSrc":"3042:6:65","nodeType":"YulTypedName","src":"3042:6:65","type":""}]},{"nativeSrc":"3074:98:65","nodeType":"YulAssignment","src":"3074:98:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:65","nodeType":"YulIdentifier","src":"3145:6:65"},{"kind":"number","nativeSrc":"3153:4:65","nodeType":"YulLiteral","src":"3153:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:65","nodeType":"YulIdentifier","src":"3141:3:65"},"nativeSrc":"3141:17:65","nodeType":"YulFunctionCall","src":"3141:17:65"},{"name":"length","nativeSrc":"3160:6:65","nodeType":"YulIdentifier","src":"3160:6:65"},{"name":"end","nativeSrc":"3168:3:65","nodeType":"YulIdentifier","src":"3168:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:65","nodeType":"YulIdentifier","src":"3083:57:65"},"nativeSrc":"3083:89:65","nodeType":"YulFunctionCall","src":"3083:89:65"},"variableNames":[{"name":"array","nativeSrc":"3074:5:65","nodeType":"YulIdentifier","src":"3074:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:65","nodeType":"YulTypedName","src":"2875:6:65","type":""},{"name":"end","nativeSrc":"2883:3:65","nodeType":"YulTypedName","src":"2883:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:65","nodeType":"YulTypedName","src":"2891:5:65","type":""}],"src":"2825:353:65"},{"body":{"nativeSrc":"3304:714:65","nodeType":"YulBlock","src":"3304:714:65","statements":[{"body":{"nativeSrc":"3350:83:65","nodeType":"YulBlock","src":"3350:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3352:77:65","nodeType":"YulIdentifier","src":"3352:77:65"},"nativeSrc":"3352:79:65","nodeType":"YulFunctionCall","src":"3352:79:65"},"nativeSrc":"3352:79:65","nodeType":"YulExpressionStatement","src":"3352:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3325:7:65","nodeType":"YulIdentifier","src":"3325:7:65"},{"name":"headStart","nativeSrc":"3334:9:65","nodeType":"YulIdentifier","src":"3334:9:65"}],"functionName":{"name":"sub","nativeSrc":"3321:3:65","nodeType":"YulIdentifier","src":"3321:3:65"},"nativeSrc":"3321:23:65","nodeType":"YulFunctionCall","src":"3321:23:65"},{"kind":"number","nativeSrc":"3346:2:65","nodeType":"YulLiteral","src":"3346:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3317:3:65","nodeType":"YulIdentifier","src":"3317:3:65"},"nativeSrc":"3317:32:65","nodeType":"YulFunctionCall","src":"3317:32:65"},"nativeSrc":"3314:119:65","nodeType":"YulIf","src":"3314:119:65"},{"nativeSrc":"3443:128:65","nodeType":"YulBlock","src":"3443:128:65","statements":[{"nativeSrc":"3458:15:65","nodeType":"YulVariableDeclaration","src":"3458:15:65","value":{"kind":"number","nativeSrc":"3472:1:65","nodeType":"YulLiteral","src":"3472:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3462:6:65","nodeType":"YulTypedName","src":"3462:6:65","type":""}]},{"nativeSrc":"3487:74:65","nodeType":"YulAssignment","src":"3487:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3533:9:65","nodeType":"YulIdentifier","src":"3533:9:65"},{"name":"offset","nativeSrc":"3544:6:65","nodeType":"YulIdentifier","src":"3544:6:65"}],"functionName":{"name":"add","nativeSrc":"3529:3:65","nodeType":"YulIdentifier","src":"3529:3:65"},"nativeSrc":"3529:22:65","nodeType":"YulFunctionCall","src":"3529:22:65"},{"name":"dataEnd","nativeSrc":"3553:7:65","nodeType":"YulIdentifier","src":"3553:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3497:31:65","nodeType":"YulIdentifier","src":"3497:31:65"},"nativeSrc":"3497:64:65","nodeType":"YulFunctionCall","src":"3497:64:65"},"variableNames":[{"name":"value0","nativeSrc":"3487:6:65","nodeType":"YulIdentifier","src":"3487:6:65"}]}]},{"nativeSrc":"3581:129:65","nodeType":"YulBlock","src":"3581:129:65","statements":[{"nativeSrc":"3596:16:65","nodeType":"YulVariableDeclaration","src":"3596:16:65","value":{"kind":"number","nativeSrc":"3610:2:65","nodeType":"YulLiteral","src":"3610:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3600:6:65","nodeType":"YulTypedName","src":"3600:6:65","type":""}]},{"nativeSrc":"3626:74:65","nodeType":"YulAssignment","src":"3626:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3672:9:65","nodeType":"YulIdentifier","src":"3672:9:65"},{"name":"offset","nativeSrc":"3683:6:65","nodeType":"YulIdentifier","src":"3683:6:65"}],"functionName":{"name":"add","nativeSrc":"3668:3:65","nodeType":"YulIdentifier","src":"3668:3:65"},"nativeSrc":"3668:22:65","nodeType":"YulFunctionCall","src":"3668:22:65"},{"name":"dataEnd","nativeSrc":"3692:7:65","nodeType":"YulIdentifier","src":"3692:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3636:31:65","nodeType":"YulIdentifier","src":"3636:31:65"},"nativeSrc":"3636:64:65","nodeType":"YulFunctionCall","src":"3636:64:65"},"variableNames":[{"name":"value1","nativeSrc":"3626:6:65","nodeType":"YulIdentifier","src":"3626:6:65"}]}]},{"nativeSrc":"3720:291:65","nodeType":"YulBlock","src":"3720:291:65","statements":[{"nativeSrc":"3735:39:65","nodeType":"YulVariableDeclaration","src":"3735:39:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3759:9:65","nodeType":"YulIdentifier","src":"3759:9:65"},{"kind":"number","nativeSrc":"3770:2:65","nodeType":"YulLiteral","src":"3770:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3755:3:65","nodeType":"YulIdentifier","src":"3755:3:65"},"nativeSrc":"3755:18:65","nodeType":"YulFunctionCall","src":"3755:18:65"}],"functionName":{"name":"mload","nativeSrc":"3749:5:65","nodeType":"YulIdentifier","src":"3749:5:65"},"nativeSrc":"3749:25:65","nodeType":"YulFunctionCall","src":"3749:25:65"},"variables":[{"name":"offset","nativeSrc":"3739:6:65","nodeType":"YulTypedName","src":"3739:6:65","type":""}]},{"body":{"nativeSrc":"3821:83:65","nodeType":"YulBlock","src":"3821:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3823:77:65","nodeType":"YulIdentifier","src":"3823:77:65"},"nativeSrc":"3823:79:65","nodeType":"YulFunctionCall","src":"3823:79:65"},"nativeSrc":"3823:79:65","nodeType":"YulExpressionStatement","src":"3823:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3793:6:65","nodeType":"YulIdentifier","src":"3793:6:65"},{"kind":"number","nativeSrc":"3801:18:65","nodeType":"YulLiteral","src":"3801:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3790:2:65","nodeType":"YulIdentifier","src":"3790:2:65"},"nativeSrc":"3790:30:65","nodeType":"YulFunctionCall","src":"3790:30:65"},"nativeSrc":"3787:117:65","nodeType":"YulIf","src":"3787:117:65"},{"nativeSrc":"3918:83:65","nodeType":"YulAssignment","src":"3918:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3973:9:65","nodeType":"YulIdentifier","src":"3973:9:65"},{"name":"offset","nativeSrc":"3984:6:65","nodeType":"YulIdentifier","src":"3984:6:65"}],"functionName":{"name":"add","nativeSrc":"3969:3:65","nodeType":"YulIdentifier","src":"3969:3:65"},"nativeSrc":"3969:22:65","nodeType":"YulFunctionCall","src":"3969:22:65"},{"name":"dataEnd","nativeSrc":"3993:7:65","nodeType":"YulIdentifier","src":"3993:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3928:40:65","nodeType":"YulIdentifier","src":"3928:40:65"},"nativeSrc":"3928:73:65","nodeType":"YulFunctionCall","src":"3928:73:65"},"variableNames":[{"name":"value2","nativeSrc":"3918:6:65","nodeType":"YulIdentifier","src":"3918:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:834:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3258:9:65","nodeType":"YulTypedName","src":"3258:9:65","type":""},{"name":"dataEnd","nativeSrc":"3269:7:65","nodeType":"YulTypedName","src":"3269:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3281:6:65","nodeType":"YulTypedName","src":"3281:6:65","type":""},{"name":"value1","nativeSrc":"3289:6:65","nodeType":"YulTypedName","src":"3289:6:65","type":""},{"name":"value2","nativeSrc":"3297:6:65","nodeType":"YulTypedName","src":"3297:6:65","type":""}],"src":"3184:834:65"},{"body":{"nativeSrc":"4069:32:65","nodeType":"YulBlock","src":"4069:32:65","statements":[{"nativeSrc":"4079:16:65","nodeType":"YulAssignment","src":"4079:16:65","value":{"name":"value","nativeSrc":"4090:5:65","nodeType":"YulIdentifier","src":"4090:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4079:7:65","nodeType":"YulIdentifier","src":"4079:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4024:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4051:5:65","nodeType":"YulTypedName","src":"4051:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4061:7:65","nodeType":"YulTypedName","src":"4061:7:65","type":""}],"src":"4024:77:65"},{"body":{"nativeSrc":"4135:152:65","nodeType":"YulBlock","src":"4135:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4152:1:65","nodeType":"YulLiteral","src":"4152:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4155:77:65","nodeType":"YulLiteral","src":"4155:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4145:6:65","nodeType":"YulIdentifier","src":"4145:6:65"},"nativeSrc":"4145:88:65","nodeType":"YulFunctionCall","src":"4145:88:65"},"nativeSrc":"4145:88:65","nodeType":"YulExpressionStatement","src":"4145:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4249:1:65","nodeType":"YulLiteral","src":"4249:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4252:4:65","nodeType":"YulLiteral","src":"4252:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4242:6:65","nodeType":"YulIdentifier","src":"4242:6:65"},"nativeSrc":"4242:15:65","nodeType":"YulFunctionCall","src":"4242:15:65"},"nativeSrc":"4242:15:65","nodeType":"YulExpressionStatement","src":"4242:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4273:1:65","nodeType":"YulLiteral","src":"4273:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4276:4:65","nodeType":"YulLiteral","src":"4276:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4266:6:65","nodeType":"YulIdentifier","src":"4266:6:65"},"nativeSrc":"4266:15:65","nodeType":"YulFunctionCall","src":"4266:15:65"},"nativeSrc":"4266:15:65","nodeType":"YulExpressionStatement","src":"4266:15:65"}]},"name":"panic_error_0x11","nativeSrc":"4107:180:65","nodeType":"YulFunctionDefinition","src":"4107:180:65"},{"body":{"nativeSrc":"4338:149:65","nodeType":"YulBlock","src":"4338:149:65","statements":[{"nativeSrc":"4348:25:65","nodeType":"YulAssignment","src":"4348:25:65","value":{"arguments":[{"name":"x","nativeSrc":"4371:1:65","nodeType":"YulIdentifier","src":"4371:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4353:17:65","nodeType":"YulIdentifier","src":"4353:17:65"},"nativeSrc":"4353:20:65","nodeType":"YulFunctionCall","src":"4353:20:65"},"variableNames":[{"name":"x","nativeSrc":"4348:1:65","nodeType":"YulIdentifier","src":"4348:1:65"}]},{"nativeSrc":"4382:25:65","nodeType":"YulAssignment","src":"4382:25:65","value":{"arguments":[{"name":"y","nativeSrc":"4405:1:65","nodeType":"YulIdentifier","src":"4405:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4387:17:65","nodeType":"YulIdentifier","src":"4387:17:65"},"nativeSrc":"4387:20:65","nodeType":"YulFunctionCall","src":"4387:20:65"},"variableNames":[{"name":"y","nativeSrc":"4382:1:65","nodeType":"YulIdentifier","src":"4382:1:65"}]},{"nativeSrc":"4416:17:65","nodeType":"YulAssignment","src":"4416:17:65","value":{"arguments":[{"name":"x","nativeSrc":"4428:1:65","nodeType":"YulIdentifier","src":"4428:1:65"},{"name":"y","nativeSrc":"4431:1:65","nodeType":"YulIdentifier","src":"4431:1:65"}],"functionName":{"name":"sub","nativeSrc":"4424:3:65","nodeType":"YulIdentifier","src":"4424:3:65"},"nativeSrc":"4424:9:65","nodeType":"YulFunctionCall","src":"4424:9:65"},"variableNames":[{"name":"diff","nativeSrc":"4416:4:65","nodeType":"YulIdentifier","src":"4416:4:65"}]},{"body":{"nativeSrc":"4458:22:65","nodeType":"YulBlock","src":"4458:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4460:16:65","nodeType":"YulIdentifier","src":"4460:16:65"},"nativeSrc":"4460:18:65","nodeType":"YulFunctionCall","src":"4460:18:65"},"nativeSrc":"4460:18:65","nodeType":"YulExpressionStatement","src":"4460:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4449:4:65","nodeType":"YulIdentifier","src":"4449:4:65"},{"name":"x","nativeSrc":"4455:1:65","nodeType":"YulIdentifier","src":"4455:1:65"}],"functionName":{"name":"gt","nativeSrc":"4446:2:65","nodeType":"YulIdentifier","src":"4446:2:65"},"nativeSrc":"4446:11:65","nodeType":"YulFunctionCall","src":"4446:11:65"},"nativeSrc":"4443:37:65","nodeType":"YulIf","src":"4443:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"4293:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4324:1:65","nodeType":"YulTypedName","src":"4324:1:65","type":""},{"name":"y","nativeSrc":"4327:1:65","nodeType":"YulTypedName","src":"4327:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4333:4:65","nodeType":"YulTypedName","src":"4333:4:65","type":""}],"src":"4293:194:65"},{"body":{"nativeSrc":"4521:152:65","nodeType":"YulBlock","src":"4521:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4538:1:65","nodeType":"YulLiteral","src":"4538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4541:77:65","nodeType":"YulLiteral","src":"4541:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4531:6:65","nodeType":"YulIdentifier","src":"4531:6:65"},"nativeSrc":"4531:88:65","nodeType":"YulFunctionCall","src":"4531:88:65"},"nativeSrc":"4531:88:65","nodeType":"YulExpressionStatement","src":"4531:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4635:1:65","nodeType":"YulLiteral","src":"4635:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4638:4:65","nodeType":"YulLiteral","src":"4638:4:65","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:65","nodeType":"YulIdentifier","src":"4628:6:65"},"nativeSrc":"4628:15:65","nodeType":"YulFunctionCall","src":"4628:15:65"},"nativeSrc":"4628:15:65","nodeType":"YulExpressionStatement","src":"4628:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4659:1:65","nodeType":"YulLiteral","src":"4659:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4662:4:65","nodeType":"YulLiteral","src":"4662:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4652:6:65","nodeType":"YulIdentifier","src":"4652:6:65"},"nativeSrc":"4652:15:65","nodeType":"YulFunctionCall","src":"4652:15:65"},"nativeSrc":"4652:15:65","nodeType":"YulExpressionStatement","src":"4652:15:65"}]},"name":"panic_error_0x01","nativeSrc":"4493:180:65","nodeType":"YulFunctionDefinition","src":"4493:180:65"},{"body":{"nativeSrc":"4744:53:65","nodeType":"YulBlock","src":"4744:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:65","nodeType":"YulIdentifier","src":"4761:3:65"},{"arguments":[{"name":"value","nativeSrc":"4784:5:65","nodeType":"YulIdentifier","src":"4784:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4766:17:65","nodeType":"YulIdentifier","src":"4766:17:65"},"nativeSrc":"4766:24:65","nodeType":"YulFunctionCall","src":"4766:24:65"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:65","nodeType":"YulIdentifier","src":"4754:6:65"},"nativeSrc":"4754:37:65","nodeType":"YulFunctionCall","src":"4754:37:65"},"nativeSrc":"4754:37:65","nodeType":"YulExpressionStatement","src":"4754:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4679:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:65","nodeType":"YulTypedName","src":"4732:5:65","type":""},{"name":"pos","nativeSrc":"4739:3:65","nodeType":"YulTypedName","src":"4739:3:65","type":""}],"src":"4679:118:65"},{"body":{"nativeSrc":"4929:206:65","nodeType":"YulBlock","src":"4929:206:65","statements":[{"nativeSrc":"4939:26:65","nodeType":"YulAssignment","src":"4939:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4951:9:65","nodeType":"YulIdentifier","src":"4951:9:65"},{"kind":"number","nativeSrc":"4962:2:65","nodeType":"YulLiteral","src":"4962:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4947:3:65","nodeType":"YulIdentifier","src":"4947:3:65"},"nativeSrc":"4947:18:65","nodeType":"YulFunctionCall","src":"4947:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4939:4:65","nodeType":"YulIdentifier","src":"4939:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5019:6:65","nodeType":"YulIdentifier","src":"5019:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5032:9:65","nodeType":"YulIdentifier","src":"5032:9:65"},{"kind":"number","nativeSrc":"5043:1:65","nodeType":"YulLiteral","src":"5043:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5028:3:65","nodeType":"YulIdentifier","src":"5028:3:65"},"nativeSrc":"5028:17:65","nodeType":"YulFunctionCall","src":"5028:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4975:43:65","nodeType":"YulIdentifier","src":"4975:43:65"},"nativeSrc":"4975:71:65","nodeType":"YulFunctionCall","src":"4975:71:65"},"nativeSrc":"4975:71:65","nodeType":"YulExpressionStatement","src":"4975:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5100:6:65","nodeType":"YulIdentifier","src":"5100:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5113:9:65","nodeType":"YulIdentifier","src":"5113:9:65"},{"kind":"number","nativeSrc":"5124:2:65","nodeType":"YulLiteral","src":"5124:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5109:3:65","nodeType":"YulIdentifier","src":"5109:3:65"},"nativeSrc":"5109:18:65","nodeType":"YulFunctionCall","src":"5109:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5056:43:65","nodeType":"YulIdentifier","src":"5056:43:65"},"nativeSrc":"5056:72:65","nodeType":"YulFunctionCall","src":"5056:72:65"},"nativeSrc":"5056:72:65","nodeType":"YulExpressionStatement","src":"5056:72:65"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4803:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4893:9:65","nodeType":"YulTypedName","src":"4893:9:65","type":""},{"name":"value1","nativeSrc":"4905:6:65","nodeType":"YulTypedName","src":"4905:6:65","type":""},{"name":"value0","nativeSrc":"4913:6:65","nodeType":"YulTypedName","src":"4913:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4924:4:65","nodeType":"YulTypedName","src":"4924:4:65","type":""}],"src":"4803:332:65"},{"body":{"nativeSrc":"5237:73:65","nodeType":"YulBlock","src":"5237:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5254:3:65","nodeType":"YulIdentifier","src":"5254:3:65"},{"name":"length","nativeSrc":"5259:6:65","nodeType":"YulIdentifier","src":"5259:6:65"}],"functionName":{"name":"mstore","nativeSrc":"5247:6:65","nodeType":"YulIdentifier","src":"5247:6:65"},"nativeSrc":"5247:19:65","nodeType":"YulFunctionCall","src":"5247:19:65"},"nativeSrc":"5247:19:65","nodeType":"YulExpressionStatement","src":"5247:19:65"},{"nativeSrc":"5275:29:65","nodeType":"YulAssignment","src":"5275:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"5294:3:65","nodeType":"YulIdentifier","src":"5294:3:65"},{"kind":"number","nativeSrc":"5299:4:65","nodeType":"YulLiteral","src":"5299:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5290:3:65","nodeType":"YulIdentifier","src":"5290:3:65"},"nativeSrc":"5290:14:65","nodeType":"YulFunctionCall","src":"5290:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"5275:11:65","nodeType":"YulIdentifier","src":"5275:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5141:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5209:3:65","nodeType":"YulTypedName","src":"5209:3:65","type":""},{"name":"length","nativeSrc":"5214:6:65","nodeType":"YulTypedName","src":"5214:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5225:11:65","nodeType":"YulTypedName","src":"5225:11:65","type":""}],"src":"5141:169:65"},{"body":{"nativeSrc":"5422:119:65","nodeType":"YulBlock","src":"5422:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5444:6:65","nodeType":"YulIdentifier","src":"5444:6:65"},{"kind":"number","nativeSrc":"5452:1:65","nodeType":"YulLiteral","src":"5452:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5440:3:65","nodeType":"YulIdentifier","src":"5440:3:65"},"nativeSrc":"5440:14:65","nodeType":"YulFunctionCall","src":"5440:14:65"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"5456:34:65","nodeType":"YulLiteral","src":"5456:34:65","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"5433:6:65","nodeType":"YulIdentifier","src":"5433:6:65"},"nativeSrc":"5433:58:65","nodeType":"YulFunctionCall","src":"5433:58:65"},"nativeSrc":"5433:58:65","nodeType":"YulExpressionStatement","src":"5433:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5512:6:65","nodeType":"YulIdentifier","src":"5512:6:65"},{"kind":"number","nativeSrc":"5520:2:65","nodeType":"YulLiteral","src":"5520:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5508:3:65","nodeType":"YulIdentifier","src":"5508:3:65"},"nativeSrc":"5508:15:65","nodeType":"YulFunctionCall","src":"5508:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"5525:8:65","nodeType":"YulLiteral","src":"5525:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"5501:6:65","nodeType":"YulIdentifier","src":"5501:6:65"},"nativeSrc":"5501:33:65","nodeType":"YulFunctionCall","src":"5501:33:65"},"nativeSrc":"5501:33:65","nodeType":"YulExpressionStatement","src":"5501:33:65"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5316:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5414:6:65","nodeType":"YulTypedName","src":"5414:6:65","type":""}],"src":"5316:225:65"},{"body":{"nativeSrc":"5693:220:65","nodeType":"YulBlock","src":"5693:220:65","statements":[{"nativeSrc":"5703:74:65","nodeType":"YulAssignment","src":"5703:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5769:3:65","nodeType":"YulIdentifier","src":"5769:3:65"},{"kind":"number","nativeSrc":"5774:2:65","nodeType":"YulLiteral","src":"5774:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5710:58:65","nodeType":"YulIdentifier","src":"5710:58:65"},"nativeSrc":"5710:67:65","nodeType":"YulFunctionCall","src":"5710:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5703:3:65","nodeType":"YulIdentifier","src":"5703:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5875:3:65","nodeType":"YulIdentifier","src":"5875:3:65"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5786:88:65","nodeType":"YulIdentifier","src":"5786:88:65"},"nativeSrc":"5786:93:65","nodeType":"YulFunctionCall","src":"5786:93:65"},"nativeSrc":"5786:93:65","nodeType":"YulExpressionStatement","src":"5786:93:65"},{"nativeSrc":"5888:19:65","nodeType":"YulAssignment","src":"5888:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5899:3:65","nodeType":"YulIdentifier","src":"5899:3:65"},{"kind":"number","nativeSrc":"5904:2:65","nodeType":"YulLiteral","src":"5904:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5895:3:65","nodeType":"YulIdentifier","src":"5895:3:65"},"nativeSrc":"5895:12:65","nodeType":"YulFunctionCall","src":"5895:12:65"},"variableNames":[{"name":"end","nativeSrc":"5888:3:65","nodeType":"YulIdentifier","src":"5888:3:65"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5547:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5681:3:65","nodeType":"YulTypedName","src":"5681:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5689:3:65","nodeType":"YulTypedName","src":"5689:3:65","type":""}],"src":"5547:366:65"},{"body":{"nativeSrc":"6090:248:65","nodeType":"YulBlock","src":"6090:248:65","statements":[{"nativeSrc":"6100:26:65","nodeType":"YulAssignment","src":"6100:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6112:9:65","nodeType":"YulIdentifier","src":"6112:9:65"},{"kind":"number","nativeSrc":"6123:2:65","nodeType":"YulLiteral","src":"6123:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6108:3:65","nodeType":"YulIdentifier","src":"6108:3:65"},"nativeSrc":"6108:18:65","nodeType":"YulFunctionCall","src":"6108:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6100:4:65","nodeType":"YulIdentifier","src":"6100:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6147:9:65","nodeType":"YulIdentifier","src":"6147:9:65"},{"kind":"number","nativeSrc":"6158:1:65","nodeType":"YulLiteral","src":"6158:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6143:3:65","nodeType":"YulIdentifier","src":"6143:3:65"},"nativeSrc":"6143:17:65","nodeType":"YulFunctionCall","src":"6143:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6166:4:65","nodeType":"YulIdentifier","src":"6166:4:65"},{"name":"headStart","nativeSrc":"6172:9:65","nodeType":"YulIdentifier","src":"6172:9:65"}],"functionName":{"name":"sub","nativeSrc":"6162:3:65","nodeType":"YulIdentifier","src":"6162:3:65"},"nativeSrc":"6162:20:65","nodeType":"YulFunctionCall","src":"6162:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6136:6:65","nodeType":"YulIdentifier","src":"6136:6:65"},"nativeSrc":"6136:47:65","nodeType":"YulFunctionCall","src":"6136:47:65"},"nativeSrc":"6136:47:65","nodeType":"YulExpressionStatement","src":"6136:47:65"},{"nativeSrc":"6192:139:65","nodeType":"YulAssignment","src":"6192:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6326:4:65","nodeType":"YulIdentifier","src":"6326:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"6200:124:65","nodeType":"YulIdentifier","src":"6200:124:65"},"nativeSrc":"6200:131:65","nodeType":"YulFunctionCall","src":"6200:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6192:4:65","nodeType":"YulIdentifier","src":"6192:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5919:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6070:9:65","nodeType":"YulTypedName","src":"6070:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6085:4:65","nodeType":"YulTypedName","src":"6085:4:65","type":""}],"src":"5919:419:65"},{"body":{"nativeSrc":"6450:126:65","nodeType":"YulBlock","src":"6450:126:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6472:6:65","nodeType":"YulIdentifier","src":"6472:6:65"},{"kind":"number","nativeSrc":"6480:1:65","nodeType":"YulLiteral","src":"6480:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6468:3:65","nodeType":"YulIdentifier","src":"6468:3:65"},"nativeSrc":"6468:14:65","nodeType":"YulFunctionCall","src":"6468:14:65"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"6484:34:65","nodeType":"YulLiteral","src":"6484:34:65","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"6461:6:65","nodeType":"YulIdentifier","src":"6461:6:65"},"nativeSrc":"6461:58:65","nodeType":"YulFunctionCall","src":"6461:58:65"},"nativeSrc":"6461:58:65","nodeType":"YulExpressionStatement","src":"6461:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6540:6:65","nodeType":"YulIdentifier","src":"6540:6:65"},{"kind":"number","nativeSrc":"6548:2:65","nodeType":"YulLiteral","src":"6548:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6536:3:65","nodeType":"YulIdentifier","src":"6536:3:65"},"nativeSrc":"6536:15:65","nodeType":"YulFunctionCall","src":"6536:15:65"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"6553:15:65","nodeType":"YulLiteral","src":"6553:15:65","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"6529:6:65","nodeType":"YulIdentifier","src":"6529:6:65"},"nativeSrc":"6529:40:65","nodeType":"YulFunctionCall","src":"6529:40:65"},"nativeSrc":"6529:40:65","nodeType":"YulExpressionStatement","src":"6529:40:65"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6344:232:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6442:6:65","nodeType":"YulTypedName","src":"6442:6:65","type":""}],"src":"6344:232:65"},{"body":{"nativeSrc":"6728:220:65","nodeType":"YulBlock","src":"6728:220:65","statements":[{"nativeSrc":"6738:74:65","nodeType":"YulAssignment","src":"6738:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"6804:3:65","nodeType":"YulIdentifier","src":"6804:3:65"},{"kind":"number","nativeSrc":"6809:2:65","nodeType":"YulLiteral","src":"6809:2:65","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6745:58:65","nodeType":"YulIdentifier","src":"6745:58:65"},"nativeSrc":"6745:67:65","nodeType":"YulFunctionCall","src":"6745:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6738:3:65","nodeType":"YulIdentifier","src":"6738:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6910:3:65","nodeType":"YulIdentifier","src":"6910:3:65"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6821:88:65","nodeType":"YulIdentifier","src":"6821:88:65"},"nativeSrc":"6821:93:65","nodeType":"YulFunctionCall","src":"6821:93:65"},"nativeSrc":"6821:93:65","nodeType":"YulExpressionStatement","src":"6821:93:65"},{"nativeSrc":"6923:19:65","nodeType":"YulAssignment","src":"6923:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6934:3:65","nodeType":"YulIdentifier","src":"6934:3:65"},{"kind":"number","nativeSrc":"6939:2:65","nodeType":"YulLiteral","src":"6939:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6930:3:65","nodeType":"YulIdentifier","src":"6930:3:65"},"nativeSrc":"6930:12:65","nodeType":"YulFunctionCall","src":"6930:12:65"},"variableNames":[{"name":"end","nativeSrc":"6923:3:65","nodeType":"YulIdentifier","src":"6923:3:65"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6582:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6716:3:65","nodeType":"YulTypedName","src":"6716:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6724:3:65","nodeType":"YulTypedName","src":"6724:3:65","type":""}],"src":"6582:366:65"},{"body":{"nativeSrc":"7125:248:65","nodeType":"YulBlock","src":"7125:248:65","statements":[{"nativeSrc":"7135:26:65","nodeType":"YulAssignment","src":"7135:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7147:9:65","nodeType":"YulIdentifier","src":"7147:9:65"},{"kind":"number","nativeSrc":"7158:2:65","nodeType":"YulLiteral","src":"7158:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7143:3:65","nodeType":"YulIdentifier","src":"7143:3:65"},"nativeSrc":"7143:18:65","nodeType":"YulFunctionCall","src":"7143:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7135:4:65","nodeType":"YulIdentifier","src":"7135:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7182:9:65","nodeType":"YulIdentifier","src":"7182:9:65"},{"kind":"number","nativeSrc":"7193:1:65","nodeType":"YulLiteral","src":"7193:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7178:3:65","nodeType":"YulIdentifier","src":"7178:3:65"},"nativeSrc":"7178:17:65","nodeType":"YulFunctionCall","src":"7178:17:65"},{"arguments":[{"name":"tail","nativeSrc":"7201:4:65","nodeType":"YulIdentifier","src":"7201:4:65"},{"name":"headStart","nativeSrc":"7207:9:65","nodeType":"YulIdentifier","src":"7207:9:65"}],"functionName":{"name":"sub","nativeSrc":"7197:3:65","nodeType":"YulIdentifier","src":"7197:3:65"},"nativeSrc":"7197:20:65","nodeType":"YulFunctionCall","src":"7197:20:65"}],"functionName":{"name":"mstore","nativeSrc":"7171:6:65","nodeType":"YulIdentifier","src":"7171:6:65"},"nativeSrc":"7171:47:65","nodeType":"YulFunctionCall","src":"7171:47:65"},"nativeSrc":"7171:47:65","nodeType":"YulExpressionStatement","src":"7171:47:65"},{"nativeSrc":"7227:139:65","nodeType":"YulAssignment","src":"7227:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"7361:4:65","nodeType":"YulIdentifier","src":"7361:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"7235:124:65","nodeType":"YulIdentifier","src":"7235:124:65"},"nativeSrc":"7235:131:65","nodeType":"YulFunctionCall","src":"7235:131:65"},"variableNames":[{"name":"tail","nativeSrc":"7227:4:65","nodeType":"YulIdentifier","src":"7227:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6954:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7105:9:65","nodeType":"YulTypedName","src":"7105:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7120:4:65","nodeType":"YulTypedName","src":"7120:4:65","type":""}],"src":"6954:419:65"},{"body":{"nativeSrc":"7485:119:65","nodeType":"YulBlock","src":"7485:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7507:6:65","nodeType":"YulIdentifier","src":"7507:6:65"},{"kind":"number","nativeSrc":"7515:1:65","nodeType":"YulLiteral","src":"7515:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7503:3:65","nodeType":"YulIdentifier","src":"7503:3:65"},"nativeSrc":"7503:14:65","nodeType":"YulFunctionCall","src":"7503:14:65"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"7519:34:65","nodeType":"YulLiteral","src":"7519:34:65","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"7496:6:65","nodeType":"YulIdentifier","src":"7496:6:65"},"nativeSrc":"7496:58:65","nodeType":"YulFunctionCall","src":"7496:58:65"},"nativeSrc":"7496:58:65","nodeType":"YulExpressionStatement","src":"7496:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7575:6:65","nodeType":"YulIdentifier","src":"7575:6:65"},{"kind":"number","nativeSrc":"7583:2:65","nodeType":"YulLiteral","src":"7583:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7571:3:65","nodeType":"YulIdentifier","src":"7571:3:65"},"nativeSrc":"7571:15:65","nodeType":"YulFunctionCall","src":"7571:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7588:8:65","nodeType":"YulLiteral","src":"7588:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7564:6:65","nodeType":"YulIdentifier","src":"7564:6:65"},"nativeSrc":"7564:33:65","nodeType":"YulFunctionCall","src":"7564:33:65"},"nativeSrc":"7564:33:65","nodeType":"YulExpressionStatement","src":"7564:33:65"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7379:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7477:6:65","nodeType":"YulTypedName","src":"7477:6:65","type":""}],"src":"7379:225:65"},{"body":{"nativeSrc":"7756:220:65","nodeType":"YulBlock","src":"7756:220:65","statements":[{"nativeSrc":"7766:74:65","nodeType":"YulAssignment","src":"7766:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"7832:3:65","nodeType":"YulIdentifier","src":"7832:3:65"},{"kind":"number","nativeSrc":"7837:2:65","nodeType":"YulLiteral","src":"7837:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7773:58:65","nodeType":"YulIdentifier","src":"7773:58:65"},"nativeSrc":"7773:67:65","nodeType":"YulFunctionCall","src":"7773:67:65"},"variableNames":[{"name":"pos","nativeSrc":"7766:3:65","nodeType":"YulIdentifier","src":"7766:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7938:3:65","nodeType":"YulIdentifier","src":"7938:3:65"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7849:88:65","nodeType":"YulIdentifier","src":"7849:88:65"},"nativeSrc":"7849:93:65","nodeType":"YulFunctionCall","src":"7849:93:65"},"nativeSrc":"7849:93:65","nodeType":"YulExpressionStatement","src":"7849:93:65"},{"nativeSrc":"7951:19:65","nodeType":"YulAssignment","src":"7951:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"7962:3:65","nodeType":"YulIdentifier","src":"7962:3:65"},{"kind":"number","nativeSrc":"7967:2:65","nodeType":"YulLiteral","src":"7967:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7958:3:65","nodeType":"YulIdentifier","src":"7958:3:65"},"nativeSrc":"7958:12:65","nodeType":"YulFunctionCall","src":"7958:12:65"},"variableNames":[{"name":"end","nativeSrc":"7951:3:65","nodeType":"YulIdentifier","src":"7951:3:65"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7610:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7744:3:65","nodeType":"YulTypedName","src":"7744:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7752:3:65","nodeType":"YulTypedName","src":"7752:3:65","type":""}],"src":"7610:366:65"},{"body":{"nativeSrc":"8153:248:65","nodeType":"YulBlock","src":"8153:248:65","statements":[{"nativeSrc":"8163:26:65","nodeType":"YulAssignment","src":"8163:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8175:9:65","nodeType":"YulIdentifier","src":"8175:9:65"},{"kind":"number","nativeSrc":"8186:2:65","nodeType":"YulLiteral","src":"8186:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8171:3:65","nodeType":"YulIdentifier","src":"8171:3:65"},"nativeSrc":"8171:18:65","nodeType":"YulFunctionCall","src":"8171:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8163:4:65","nodeType":"YulIdentifier","src":"8163:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8210:9:65","nodeType":"YulIdentifier","src":"8210:9:65"},{"kind":"number","nativeSrc":"8221:1:65","nodeType":"YulLiteral","src":"8221:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8206:3:65","nodeType":"YulIdentifier","src":"8206:3:65"},"nativeSrc":"8206:17:65","nodeType":"YulFunctionCall","src":"8206:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8229:4:65","nodeType":"YulIdentifier","src":"8229:4:65"},{"name":"headStart","nativeSrc":"8235:9:65","nodeType":"YulIdentifier","src":"8235:9:65"}],"functionName":{"name":"sub","nativeSrc":"8225:3:65","nodeType":"YulIdentifier","src":"8225:3:65"},"nativeSrc":"8225:20:65","nodeType":"YulFunctionCall","src":"8225:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8199:6:65","nodeType":"YulIdentifier","src":"8199:6:65"},"nativeSrc":"8199:47:65","nodeType":"YulFunctionCall","src":"8199:47:65"},"nativeSrc":"8199:47:65","nodeType":"YulExpressionStatement","src":"8199:47:65"},{"nativeSrc":"8255:139:65","nodeType":"YulAssignment","src":"8255:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"8389:4:65","nodeType":"YulIdentifier","src":"8389:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"8263:124:65","nodeType":"YulIdentifier","src":"8263:124:65"},"nativeSrc":"8263:131:65","nodeType":"YulFunctionCall","src":"8263:131:65"},"variableNames":[{"name":"tail","nativeSrc":"8255:4:65","nodeType":"YulIdentifier","src":"8255:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7982:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8133:9:65","nodeType":"YulTypedName","src":"8133:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8148:4:65","nodeType":"YulTypedName","src":"8148:4:65","type":""}],"src":"7982:419:65"},{"body":{"nativeSrc":"8465:40:65","nodeType":"YulBlock","src":"8465:40:65","statements":[{"nativeSrc":"8476:22:65","nodeType":"YulAssignment","src":"8476:22:65","value":{"arguments":[{"name":"value","nativeSrc":"8492:5:65","nodeType":"YulIdentifier","src":"8492:5:65"}],"functionName":{"name":"mload","nativeSrc":"8486:5:65","nodeType":"YulIdentifier","src":"8486:5:65"},"nativeSrc":"8486:12:65","nodeType":"YulFunctionCall","src":"8486:12:65"},"variableNames":[{"name":"length","nativeSrc":"8476:6:65","nodeType":"YulIdentifier","src":"8476:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8407:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8448:5:65","nodeType":"YulTypedName","src":"8448:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8458:6:65","nodeType":"YulTypedName","src":"8458:6:65","type":""}],"src":"8407:98:65"},{"body":{"nativeSrc":"8624:34:65","nodeType":"YulBlock","src":"8624:34:65","statements":[{"nativeSrc":"8634:18:65","nodeType":"YulAssignment","src":"8634:18:65","value":{"name":"pos","nativeSrc":"8649:3:65","nodeType":"YulIdentifier","src":"8649:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"8634:11:65","nodeType":"YulIdentifier","src":"8634:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8511:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8596:3:65","nodeType":"YulTypedName","src":"8596:3:65","type":""},{"name":"length","nativeSrc":"8601:6:65","nodeType":"YulTypedName","src":"8601:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8612:11:65","nodeType":"YulTypedName","src":"8612:11:65","type":""}],"src":"8511:147:65"},{"body":{"nativeSrc":"8772:278:65","nodeType":"YulBlock","src":"8772:278:65","statements":[{"nativeSrc":"8782:52:65","nodeType":"YulVariableDeclaration","src":"8782:52:65","value":{"arguments":[{"name":"value","nativeSrc":"8828:5:65","nodeType":"YulIdentifier","src":"8828:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8796:31:65","nodeType":"YulIdentifier","src":"8796:31:65"},"nativeSrc":"8796:38:65","nodeType":"YulFunctionCall","src":"8796:38:65"},"variables":[{"name":"length","nativeSrc":"8786:6:65","nodeType":"YulTypedName","src":"8786:6:65","type":""}]},{"nativeSrc":"8843:95:65","nodeType":"YulAssignment","src":"8843:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"8926:3:65","nodeType":"YulIdentifier","src":"8926:3:65"},{"name":"length","nativeSrc":"8931:6:65","nodeType":"YulIdentifier","src":"8931:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8850:75:65","nodeType":"YulIdentifier","src":"8850:75:65"},"nativeSrc":"8850:88:65","nodeType":"YulFunctionCall","src":"8850:88:65"},"variableNames":[{"name":"pos","nativeSrc":"8843:3:65","nodeType":"YulIdentifier","src":"8843:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8986:5:65","nodeType":"YulIdentifier","src":"8986:5:65"},{"kind":"number","nativeSrc":"8993:4:65","nodeType":"YulLiteral","src":"8993:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8982:3:65","nodeType":"YulIdentifier","src":"8982:3:65"},"nativeSrc":"8982:16:65","nodeType":"YulFunctionCall","src":"8982:16:65"},{"name":"pos","nativeSrc":"9000:3:65","nodeType":"YulIdentifier","src":"9000:3:65"},{"name":"length","nativeSrc":"9005:6:65","nodeType":"YulIdentifier","src":"9005:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8947:34:65","nodeType":"YulIdentifier","src":"8947:34:65"},"nativeSrc":"8947:65:65","nodeType":"YulFunctionCall","src":"8947:65:65"},"nativeSrc":"8947:65:65","nodeType":"YulExpressionStatement","src":"8947:65:65"},{"nativeSrc":"9021:23:65","nodeType":"YulAssignment","src":"9021:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"9032:3:65","nodeType":"YulIdentifier","src":"9032:3:65"},{"name":"length","nativeSrc":"9037:6:65","nodeType":"YulIdentifier","src":"9037:6:65"}],"functionName":{"name":"add","nativeSrc":"9028:3:65","nodeType":"YulIdentifier","src":"9028:3:65"},"nativeSrc":"9028:16:65","nodeType":"YulFunctionCall","src":"9028:16:65"},"variableNames":[{"name":"end","nativeSrc":"9021:3:65","nodeType":"YulIdentifier","src":"9021:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8664:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8753:5:65","nodeType":"YulTypedName","src":"8753:5:65","type":""},{"name":"pos","nativeSrc":"8760:3:65","nodeType":"YulTypedName","src":"8760:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8768:3:65","nodeType":"YulTypedName","src":"8768:3:65","type":""}],"src":"8664:386:65"},{"body":{"nativeSrc":"9190:137:65","nodeType":"YulBlock","src":"9190:137:65","statements":[{"nativeSrc":"9201:100:65","nodeType":"YulAssignment","src":"9201:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"9288:6:65","nodeType":"YulIdentifier","src":"9288:6:65"},{"name":"pos","nativeSrc":"9297:3:65","nodeType":"YulIdentifier","src":"9297:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"9208:79:65","nodeType":"YulIdentifier","src":"9208:79:65"},"nativeSrc":"9208:93:65","nodeType":"YulFunctionCall","src":"9208:93:65"},"variableNames":[{"name":"pos","nativeSrc":"9201:3:65","nodeType":"YulIdentifier","src":"9201:3:65"}]},{"nativeSrc":"9311:10:65","nodeType":"YulAssignment","src":"9311:10:65","value":{"name":"pos","nativeSrc":"9318:3:65","nodeType":"YulIdentifier","src":"9318:3:65"},"variableNames":[{"name":"end","nativeSrc":"9311:3:65","nodeType":"YulIdentifier","src":"9311:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9056:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9169:3:65","nodeType":"YulTypedName","src":"9169:3:65","type":""},{"name":"value0","nativeSrc":"9175:6:65","nodeType":"YulTypedName","src":"9175:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9186:3:65","nodeType":"YulTypedName","src":"9186:3:65","type":""}],"src":"9056:271:65"},{"body":{"nativeSrc":"9392:40:65","nodeType":"YulBlock","src":"9392:40:65","statements":[{"nativeSrc":"9403:22:65","nodeType":"YulAssignment","src":"9403:22:65","value":{"arguments":[{"name":"value","nativeSrc":"9419:5:65","nodeType":"YulIdentifier","src":"9419:5:65"}],"functionName":{"name":"mload","nativeSrc":"9413:5:65","nodeType":"YulIdentifier","src":"9413:5:65"},"nativeSrc":"9413:12:65","nodeType":"YulFunctionCall","src":"9413:12:65"},"variableNames":[{"name":"length","nativeSrc":"9403:6:65","nodeType":"YulIdentifier","src":"9403:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"9333:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9375:5:65","nodeType":"YulTypedName","src":"9375:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9385:6:65","nodeType":"YulTypedName","src":"9385:6:65","type":""}],"src":"9333:99:65"},{"body":{"nativeSrc":"9530:285:65","nodeType":"YulBlock","src":"9530:285:65","statements":[{"nativeSrc":"9540:53:65","nodeType":"YulVariableDeclaration","src":"9540:53:65","value":{"arguments":[{"name":"value","nativeSrc":"9587:5:65","nodeType":"YulIdentifier","src":"9587:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9554:32:65","nodeType":"YulIdentifier","src":"9554:32:65"},"nativeSrc":"9554:39:65","nodeType":"YulFunctionCall","src":"9554:39:65"},"variables":[{"name":"length","nativeSrc":"9544:6:65","nodeType":"YulTypedName","src":"9544:6:65","type":""}]},{"nativeSrc":"9602:78:65","nodeType":"YulAssignment","src":"9602:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"9668:3:65","nodeType":"YulIdentifier","src":"9668:3:65"},{"name":"length","nativeSrc":"9673:6:65","nodeType":"YulIdentifier","src":"9673:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9609:58:65","nodeType":"YulIdentifier","src":"9609:58:65"},"nativeSrc":"9609:71:65","nodeType":"YulFunctionCall","src":"9609:71:65"},"variableNames":[{"name":"pos","nativeSrc":"9602:3:65","nodeType":"YulIdentifier","src":"9602:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9728:5:65","nodeType":"YulIdentifier","src":"9728:5:65"},{"kind":"number","nativeSrc":"9735:4:65","nodeType":"YulLiteral","src":"9735:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9724:3:65","nodeType":"YulIdentifier","src":"9724:3:65"},"nativeSrc":"9724:16:65","nodeType":"YulFunctionCall","src":"9724:16:65"},{"name":"pos","nativeSrc":"9742:3:65","nodeType":"YulIdentifier","src":"9742:3:65"},{"name":"length","nativeSrc":"9747:6:65","nodeType":"YulIdentifier","src":"9747:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9689:34:65","nodeType":"YulIdentifier","src":"9689:34:65"},"nativeSrc":"9689:65:65","nodeType":"YulFunctionCall","src":"9689:65:65"},"nativeSrc":"9689:65:65","nodeType":"YulExpressionStatement","src":"9689:65:65"},{"nativeSrc":"9763:46:65","nodeType":"YulAssignment","src":"9763:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"9774:3:65","nodeType":"YulIdentifier","src":"9774:3:65"},{"arguments":[{"name":"length","nativeSrc":"9801:6:65","nodeType":"YulIdentifier","src":"9801:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9779:21:65","nodeType":"YulIdentifier","src":"9779:21:65"},"nativeSrc":"9779:29:65","nodeType":"YulFunctionCall","src":"9779:29:65"}],"functionName":{"name":"add","nativeSrc":"9770:3:65","nodeType":"YulIdentifier","src":"9770:3:65"},"nativeSrc":"9770:39:65","nodeType":"YulFunctionCall","src":"9770:39:65"},"variableNames":[{"name":"end","nativeSrc":"9763:3:65","nodeType":"YulIdentifier","src":"9763:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9438:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9511:5:65","nodeType":"YulTypedName","src":"9511:5:65","type":""},{"name":"pos","nativeSrc":"9518:3:65","nodeType":"YulTypedName","src":"9518:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9526:3:65","nodeType":"YulTypedName","src":"9526:3:65","type":""}],"src":"9438:377:65"},{"body":{"nativeSrc":"9939:195:65","nodeType":"YulBlock","src":"9939:195:65","statements":[{"nativeSrc":"9949:26:65","nodeType":"YulAssignment","src":"9949:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9961:9:65","nodeType":"YulIdentifier","src":"9961:9:65"},{"kind":"number","nativeSrc":"9972:2:65","nodeType":"YulLiteral","src":"9972:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9957:3:65","nodeType":"YulIdentifier","src":"9957:3:65"},"nativeSrc":"9957:18:65","nodeType":"YulFunctionCall","src":"9957:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9949:4:65","nodeType":"YulIdentifier","src":"9949:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9996:9:65","nodeType":"YulIdentifier","src":"9996:9:65"},{"kind":"number","nativeSrc":"10007:1:65","nodeType":"YulLiteral","src":"10007:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9992:3:65","nodeType":"YulIdentifier","src":"9992:3:65"},"nativeSrc":"9992:17:65","nodeType":"YulFunctionCall","src":"9992:17:65"},{"arguments":[{"name":"tail","nativeSrc":"10015:4:65","nodeType":"YulIdentifier","src":"10015:4:65"},{"name":"headStart","nativeSrc":"10021:9:65","nodeType":"YulIdentifier","src":"10021:9:65"}],"functionName":{"name":"sub","nativeSrc":"10011:3:65","nodeType":"YulIdentifier","src":"10011:3:65"},"nativeSrc":"10011:20:65","nodeType":"YulFunctionCall","src":"10011:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9985:6:65","nodeType":"YulIdentifier","src":"9985:6:65"},"nativeSrc":"9985:47:65","nodeType":"YulFunctionCall","src":"9985:47:65"},"nativeSrc":"9985:47:65","nodeType":"YulExpressionStatement","src":"9985:47:65"},{"nativeSrc":"10041:86:65","nodeType":"YulAssignment","src":"10041:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"10113:6:65","nodeType":"YulIdentifier","src":"10113:6:65"},{"name":"tail","nativeSrc":"10122:4:65","nodeType":"YulIdentifier","src":"10122:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"10049:63:65","nodeType":"YulIdentifier","src":"10049:63:65"},"nativeSrc":"10049:78:65","nodeType":"YulFunctionCall","src":"10049:78:65"},"variableNames":[{"name":"tail","nativeSrc":"10041:4:65","nodeType":"YulIdentifier","src":"10041:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9821:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9911:9:65","nodeType":"YulTypedName","src":"9911:9:65","type":""},{"name":"value0","nativeSrc":"9923:6:65","nodeType":"YulTypedName","src":"9923:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9934:4:65","nodeType":"YulTypedName","src":"9934:4:65","type":""}],"src":"9821:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516110483803806110488339810160408190526100229161048f565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61050f565b6000805160206110018339815191521461006b5761006b610522565b610077828260006100d2565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461050f565b600080516020610fe1833981519152146100c1576100c1610522565b6100ca826100fe565b5050506106d6565b6100db83610161565b6000825111806100e85750805b156100f9576100f783836101a1565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61013e600080516020610fe1833981519152546001600160a01b031690565b8260405161014d929190610547565b60405180910390a161015e816101cf565b50565b61016a81610230565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101c683836040518060600160405280602781526020016110216027913961026c565b90505b92915050565b6001600160a01b0381166101fe5760405162461bcd60e51b81526004016101f5906105a8565b60405180910390fd5b80600080516020610fe18339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102575760405162461bcd60e51b81526004016101f590610602565b8060008051602061100183398151915261020f565b60606001600160a01b0384163b6102955760405162461bcd60e51b81526004016101f590610655565b600080856001600160a01b0316856040516102b09190610687565b600060405180830381855af49150503d80600081146102eb576040519150601f19603f3d011682016040523d82523d6000602084013e6102f0565b606091505b50909250905061030182828661030d565b925050505b9392505050565b6060831561031c575081610306565b82511561032c5782518084602001fd5b8160405162461bcd60e51b81526004016101f591906106c5565b60006001600160a01b0382166101c9565b61036081610346565b811461015e57600080fd5b80516101c981610357565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156103b1576103b1610376565b6040525050565b60006103c360405190565b90506103cf828261038c565b919050565b60006001600160401b038211156103ed576103ed610376565b601f19601f83011660200192915050565b60005b83811015610419578181015183820152602001610401565b50506000910152565b6000610435610430846103d4565b6103b8565b90508281526020810184848401111561045057610450600080fd5b61045b8482856103fe565b509392505050565b600082601f83011261047757610477600080fd5b8151610487848260208601610422565b949350505050565b6000806000606084860312156104a7576104a7600080fd5b60006104b3868661036b565b93505060206104c48682870161036b565b92505060408401516001600160401b038111156104e3576104e3600080fd5b6104ef86828701610463565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156101c9576101c96104f9565b634e487b7160e01b600052600160045260246000fd5b61054181610346565b82525050565b604081016105558285610538565b6103066020830184610538565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016101c981610562565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291506105a1565b602080825281016101c9816105b8565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506105a1565b602080825281016101c981610612565b600061066f825190565b61067d8185602086016103fe565b9290920192915050565b60006103068284610665565b600061069d825190565b8084526020840193506106b48185602086016103fe565b601f01601f19169290920192915050565b602080825281016101c68184610693565b6108fc806106e56000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c3578063f851a440146100e35761005d565b3661005d5761005b6100f8565b005b61005b6100f8565b34801561007157600080fd5b5061005b61008036600461058c565b610112565b61005b610093366004610607565b61014f565b3480156100a457600080fd5b506100ad6101b6565b6040516100ba9190610672565b60405180910390f35b3480156100cf57600080fd5b5061005b6100de36600461058c565b6101e7565b3480156100ef57600080fd5b506100ad610207565b610100610228565b61011061010b610260565b61026a565b565b61011a61028e565b6001600160a01b0316330361014757610144816040518060200160405280600081525060006102c1565b50565b6101446100f8565b61015761028e565b6001600160a01b031633036101ae576101a98383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506102c1915050565b505050565b6101a96100f8565b60006101c061028e565b6001600160a01b031633036101dc576101d7610260565b905090565b6101e46100f8565b90565b6101ef61028e565b6001600160a01b0316330361014757610144816102ec565b600061021161028e565b6001600160a01b031633036101dc576101d761028e565b61023061028e565b6001600160a01b031633036101105760405162461bcd60e51b815260040161025790610680565b60405180910390fd5b60006101d7610335565b3660008037600080366000845af43d6000803e808015610289573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102ca8361035d565b6000825111806102d75750805b156101a9576102e6838361039d565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61031561028e565b826040516103249291906106ec565b60405180910390a1610144816103cb565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102b2565b61036681610435565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103c283836040518060600160405280602781526020016108a060279139610483565b90505b92915050565b6001600160a01b0381166103f15760405162461bcd60e51b81526004016102579061074d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61045c5760405162461bcd60e51b8152600401610257906107a7565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610414565b60606001600160a01b0384163b6104ac5760405162461bcd60e51b8152600401610257906107fa565b600080856001600160a01b0316856040516104c79190610850565b600060405180830381855af49150503d8060008114610502576040519150601f19603f3d011682016040523d82523d6000602084013e610507565b606091505b5091509150610517828286610523565b925050505b9392505050565b6060831561053257508161051c565b8251156105425782518084602001fd5b8160405162461bcd60e51b8152600401610257919061088e565b60006001600160a01b0382166103c5565b6105768161055c565b811461014457600080fd5b80356103c58161056d565b6000602082840312156105a1576105a1600080fd5b60006105ad8484610581565b949350505050565b60008083601f8401126105ca576105ca600080fd5b50813567ffffffffffffffff8111156105e5576105e5600080fd5b60208301915083600182028301111561060057610600600080fd5b9250929050565b60008060006040848603121561061f5761061f600080fd5b600061062b8686610581565b935050602084013567ffffffffffffffff81111561064b5761064b600080fd5b610657868287016105b5565b92509250509250925092565b61066c8161055c565b82525050565b602081016103c58284610663565b602080825281016103c581604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106fa8285610663565b61051c6020830184610663565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103c581610707565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610746565b602080825281016103c58161075d565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610746565b602080825281016103c5816107b7565b60005b8381101561082557818101518382015260200161080d565b50506000910152565b6000610838825190565b61084681856020860161080a565b9290920192915050565b600061051c828461082e565b6000610866825190565b80845260208401935061087d81856020860161080a565b601f01601f19169290920192915050565b602080825281016103c2818461085c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e444297db3ae5fc9a9eefc71ca740bbeafc20c6972d32c6b51d1effee1baf3164736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1048 CODESIZE SUB DUP1 PUSH2 0x1048 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x48F JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1001 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x522 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0xD2 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x522 JUMP JUMPDEST PUSH2 0xCA DUP3 PUSH2 0xFE JUMP JUMPDEST POP POP POP PUSH2 0x6D6 JUMP JUMPDEST PUSH2 0xDB DUP4 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0xE8 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0xF9 JUMPI PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1A1 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x13E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x14D SWAP3 SWAP2 SWAP1 PUSH2 0x547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x15E DUP2 PUSH2 0x1CF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x16A DUP2 PUSH2 0x230 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1C6 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1021 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x26C JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F5 SWAP1 PUSH2 0x5A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xFE1 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x257 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F5 SWAP1 PUSH2 0x602 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1001 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x20F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x295 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F5 SWAP1 PUSH2 0x655 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B0 SWAP2 SWAP1 PUSH2 0x687 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2EB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2F0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x301 DUP3 DUP3 DUP7 PUSH2 0x30D JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x31C JUMPI POP DUP2 PUSH2 0x306 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x32C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F5 SWAP2 SWAP1 PUSH2 0x6C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C9 JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x346 JUMP JUMPDEST DUP2 EQ PUSH2 0x15E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x1C9 DUP2 PUSH2 0x357 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x3B1 JUMPI PUSH2 0x3B1 PUSH2 0x376 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C3 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x3CF DUP3 DUP3 PUSH2 0x38C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3ED JUMPI PUSH2 0x3ED PUSH2 0x376 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x419 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x401 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x435 PUSH2 0x430 DUP5 PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x450 JUMPI PUSH2 0x450 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B DUP5 DUP3 DUP6 PUSH2 0x3FE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x477 JUMPI PUSH2 0x477 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x487 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x422 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4B3 DUP7 DUP7 PUSH2 0x36B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x4C4 DUP7 DUP3 DUP8 ADD PUSH2 0x36B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4E3 JUMPI PUSH2 0x4E3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EF DUP7 DUP3 DUP8 ADD PUSH2 0x463 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1C9 JUMPI PUSH2 0x1C9 PUSH2 0x4F9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x541 DUP2 PUSH2 0x346 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x555 DUP3 DUP6 PUSH2 0x538 JUMP JUMPDEST PUSH2 0x306 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x538 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C9 DUP2 PUSH2 0x562 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C9 DUP2 PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C9 DUP2 PUSH2 0x612 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66F DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x67D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x306 DUP3 DUP5 PUSH2 0x665 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69D DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x6B4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C6 DUP2 DUP5 PUSH2 0x693 JUMP JUMPDEST PUSH2 0x8FC DUP1 PUSH2 0x6E5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xE3 JUMPI PUSH2 0x5D JUMP JUMPDEST CALLDATASIZE PUSH2 0x5D JUMPI PUSH2 0x5B PUSH2 0xF8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5B PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0x80 CALLDATASIZE PUSH1 0x4 PUSH2 0x58C JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH2 0x5B PUSH2 0x93 CALLDATASIZE PUSH1 0x4 PUSH2 0x607 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x58C JUMP JUMPDEST PUSH2 0x1E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x207 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x228 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x10B PUSH2 0x260 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x11A PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x147 JUMPI PUSH2 0x144 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x2C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x144 PUSH2 0xF8 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2C1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1DC JUMPI PUSH2 0x1D7 PUSH2 0x260 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0xF8 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1EF PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x147 JUMPI PUSH2 0x144 DUP2 PUSH2 0x2EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x211 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1DC JUMPI PUSH2 0x1D7 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x230 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x680 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D7 PUSH2 0x335 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x289 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CA DUP4 PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x2D7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x2E6 DUP4 DUP4 PUSH2 0x39D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x315 PUSH2 0x28E JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x324 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x144 DUP2 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2B2 JUMP JUMPDEST PUSH2 0x366 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3C2 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8A0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x483 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x74D JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x414 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x4AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x507 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x517 DUP3 DUP3 DUP7 PUSH2 0x523 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x532 JUMPI POP DUP2 PUSH2 0x51C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x542 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x88E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x576 DUP2 PUSH2 0x55C JUMP JUMPDEST DUP2 EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3C5 DUP2 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A1 JUMPI PUSH2 0x5A1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5AD DUP5 DUP5 PUSH2 0x581 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5CA JUMPI PUSH2 0x5CA PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E5 JUMPI PUSH2 0x5E5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x600 JUMPI PUSH2 0x600 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x61F JUMPI PUSH2 0x61F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x62B DUP7 DUP7 PUSH2 0x581 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x64B JUMPI PUSH2 0x64B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP3 DUP8 ADD PUSH2 0x5B5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x66C DUP2 PUSH2 0x55C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3C5 DUP3 DUP5 PUSH2 0x663 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6FA DUP3 DUP6 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x51C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x663 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x746 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x75D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x746 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x825 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x80D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x838 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x846 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x80A JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51C DUP3 DUP5 PUSH2 0x82E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x87D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x80A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C2 DUP2 DUP5 PUSH2 0x85C JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212204E4442 SWAP8 0xDB GASPRICE 0xE5 0xFC SWAP11 SWAP15 0xEF 0xC7 SHR 0xA7 BLOCKHASH 0xBB 0xEA 0xFC KECCAK256 0xC6 SWAP8 0x2D ORIGIN 0xC6 0xB5 SAR 0x1E SELFDESTRUCT 0xEE SHL 0xAF BALANCE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1634:3556:60:-:0;;;1908:254;;;;;;;;;;;;;;;;;;:::i;:::-;2023:6;2031:5;1050:54:55;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:55;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2078:45:60::1;::::0;-1:-1:-1;2122:1:60::1;2086:32;2078:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2055:69:60::1;2048:77;;;;:::i;:::-;2135:20;2148:6:::0;2135:12:::1;:20::i;:::-;1908:254:::0;;;1634:3556;;2188:295:56;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;4637:135::-;4701:35;4714:11;-1:-1:-1;;;;;;;;;;;4191:45:56;-1:-1:-1;;;;;4191:45:56;;4113:130;4714:11;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;:::-;4637:135;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:56;;;;;;;;1902:152;:::o;6575:198:61:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:56:-;-1:-1:-1;;;;;4388:22:56;;4380:73;;;;-1:-1:-1;;;4380:73:56;;;;;;;:::i;:::-;;;;;;;;;4511:8;-1:-1:-1;;;;;;;;;;;4463:39:56;:56;;-1:-1:-1;;;;;;4463:56:56;-1:-1:-1;;;;;4463:56:56;;;;;;;;;;-1:-1:-1;4325:201:56:o;1537:259::-;-1:-1:-1;;;;;1470:19:61;;;1610:95:56;;;;-1:-1:-1;;;1610:95:56;;;;;;;:::i;:::-;1772:17;-1:-1:-1;;;;;;;;;;;1715:48:56;1599:147:63;6959:387:61;7100:12;-1:-1:-1;;;;;1470:19:61;;;7124:69;;;;-1:-1:-1;;;7124:69:61;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:61;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:61;;-1:-1:-1;7204:67:61;-1:-1:-1;7288:51:61;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:61;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:61;;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:143;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:65;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:65;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:65;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:65:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:65;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:65;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:65:o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2302:11;;;2296:18;2283:11;;;2276:39;2248:2;2241:10;2212:113;;;-1:-1:-1;;2359:1:65;2341:16;;2334:27;2120:248::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;197:1;194;187:12;2658:79;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;197:1;194;187:12;2948:79;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;2825:353;-1:-1:-1;;;;2825:353:65:o;3184:834::-;3281:6;3289;3297;3346:2;3334:9;3325:7;3321:23;3317:32;3314:119;;;3352:79;197:1;194;187:12;3352:79;3472:1;3497:64;3553:7;3533:9;3497:64;:::i;:::-;3487:74;;3443:128;3610:2;3636:64;3692:7;3683:6;3672:9;3668:22;3636:64;:::i;:::-;3626:74;;3581:129;3770:2;3759:9;3755:18;3749:25;-1:-1:-1;;;;;3793:6:65;3790:30;3787:117;;;3823:79;197:1;194;187:12;3823:79;3928:73;3993:7;3984:6;3973:9;3969:22;3928:73;:::i;:::-;3918:83;;3720:291;3184:834;;;;;:::o;4107:180::-;-1:-1:-1;;;4152:1:65;4145:88;4252:4;4249:1;4242:15;4276:4;4273:1;4266:15;4293:194;4424:9;;;4446:11;;;4443:37;;;4460:18;;:::i;4493:180::-;-1:-1:-1;;;4538:1:65;4531:88;4638:4;4635:1;4628:15;4662:4;4659:1;4652:15;4679:118;4766:24;4784:5;4766:24;:::i;:::-;4761:3;4754:37;4679:118;;:::o;4803:332::-;4962:2;4947:18;;4975:71;4951:9;5019:6;4975:71;:::i;:::-;5056:72;5124:2;5113:9;5109:18;5100:6;5056:72;:::i;5547:366::-;5774:2;5247:19;;5689:3;5299:4;5290:14;;5456:34;5433:58;;-1:-1:-1;;;5520:2:65;5508:15;;5501:33;5703:74;-1:-1:-1;5786:93:65;-1:-1:-1;5904:2:65;5895:12;;5547:366::o;5919:419::-;6123:2;6136:47;;;6108:18;;6200:131;6108:18;6200:131;:::i;6582:366::-;6809:2;5247:19;;6724:3;5299:4;5290:14;;6484:34;6461:58;;-1:-1:-1;;;6548:2:65;6536:15;;6529:40;6738:74;-1:-1:-1;6821:93:65;6344:232;6954:419;7158:2;7171:47;;;7143:18;;7235:131;7143:18;7235:131;:::i;7610:366::-;7837:2;5247:19;;7752:3;5299:4;5290:14;;7519:34;7496:58;;-1:-1:-1;;;7583:2:65;7571:15;;7564:33;7766:74;-1:-1:-1;7849:93:65;7379:225;7982:419;8186:2;8199:47;;;8171:18;;8263:131;8171:18;8263:131;:::i;8664:386::-;8768:3;8796:38;8828:5;8486:12;;8407:98;8796:38;8947:65;9005:6;9000:3;8993:4;8986:5;8982:16;8947:65;:::i;:::-;9028:16;;;;;8664:386;-1:-1:-1;;8664:386:65:o;9056:271::-;9186:3;9208:93;9297:3;9288:6;9208:93;:::i;9438:377::-;9526:3;9554:39;9587:5;8486:12;;8407:98;9554:39;5247:19;;;5299:4;5290:14;;9602:78;;9689:65;9747:6;9742:3;9735:4;9728:5;9724:16;9689:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:65;9770:39;;;;;;-1:-1:-1;;9438:377:65:o;9821:313::-;9972:2;9985:47;;;9957:18;;10049:78;9957:18;10113:6;10049:78;:::i;9821:313::-;1634:3556:60;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12408":{"entryPoint":null,"id":12408,"parameterSlots":0,"returnSlots":0},"@_12416":{"entryPoint":null,"id":12416,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_12421":{"entryPoint":null,"id":12421,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_12740":{"entryPoint":552,"id":12740,"parameterSlots":0,"returnSlots":0},"@_changeAdmin_12273":{"entryPoint":748,"id":12273,"parameterSlots":1,"returnSlots":0},"@_delegate_12381":{"entryPoint":618,"id":12381,"parameterSlots":1,"returnSlots":0},"@_fallback_12400":{"entryPoint":248,"id":12400,"parameterSlots":0,"returnSlots":0},"@_getAdmin_12230":{"entryPoint":654,"id":12230,"parameterSlots":0,"returnSlots":1},"@_getImplementation_12084":{"entryPoint":821,"id":12084,"parameterSlots":0,"returnSlots":1},"@_implementation_12051":{"entryPoint":608,"id":12051,"parameterSlots":0,"returnSlots":1},"@_setAdmin_12256":{"entryPoint":971,"id":12256,"parameterSlots":1,"returnSlots":0},"@_setImplementation_12108":{"entryPoint":1077,"id":12108,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_12153":{"entryPoint":705,"id":12153,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_12123":{"entryPoint":861,"id":12123,"parameterSlots":1,"returnSlots":0},"@admin_12648":{"entryPoint":519,"id":12648,"parameterSlots":0,"returnSlots":1},"@changeAdmin_12675":{"entryPoint":487,"id":12675,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12969":{"entryPoint":925,"id":12969,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_13004":{"entryPoint":1155,"id":13004,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1},"@implementation_12662":{"entryPoint":438,"id":12662,"parameterSlots":0,"returnSlots":1},"@isContract_12759":{"entryPoint":null,"id":12759,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_12710":{"entryPoint":335,"id":12710,"parameterSlots":3,"returnSlots":0},"@upgradeTo_12693":{"entryPoint":274,"id":12693,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_13035":{"entryPoint":1315,"id":13035,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1461,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1420,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1543,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1635,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2094,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack":{"entryPoint":1799,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1885,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1975,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2128,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1772,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2190,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1869,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1959,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2042,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1664,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1372,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2058,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1389,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9935:65","nodeType":"YulBlock","src":"0:9935:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"748:87:65","nodeType":"YulBlock","src":"748:87:65","statements":[{"nativeSrc":"758:29:65","nodeType":"YulAssignment","src":"758:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:65","nodeType":"YulIdentifier","src":"780:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:65","nodeType":"YulIdentifier","src":"767:12:65"},"nativeSrc":"767:20:65","nodeType":"YulFunctionCall","src":"767:20:65"},"variableNames":[{"name":"value","nativeSrc":"758:5:65","nodeType":"YulIdentifier","src":"758:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:65","nodeType":"YulIdentifier","src":"823:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:65","nodeType":"YulIdentifier","src":"796:26:65"},"nativeSrc":"796:33:65","nodeType":"YulFunctionCall","src":"796:33:65"},"nativeSrc":"796:33:65","nodeType":"YulExpressionStatement","src":"796:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:65","nodeType":"YulTypedName","src":"726:6:65","type":""},{"name":"end","nativeSrc":"734:3:65","nodeType":"YulTypedName","src":"734:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:65","nodeType":"YulTypedName","src":"742:5:65","type":""}],"src":"696:139:65"},{"body":{"nativeSrc":"907:263:65","nodeType":"YulBlock","src":"907:263:65","statements":[{"body":{"nativeSrc":"953:83:65","nodeType":"YulBlock","src":"953:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:65","nodeType":"YulIdentifier","src":"955:77:65"},"nativeSrc":"955:79:65","nodeType":"YulFunctionCall","src":"955:79:65"},"nativeSrc":"955:79:65","nodeType":"YulExpressionStatement","src":"955:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:65","nodeType":"YulIdentifier","src":"928:7:65"},{"name":"headStart","nativeSrc":"937:9:65","nodeType":"YulIdentifier","src":"937:9:65"}],"functionName":{"name":"sub","nativeSrc":"924:3:65","nodeType":"YulIdentifier","src":"924:3:65"},"nativeSrc":"924:23:65","nodeType":"YulFunctionCall","src":"924:23:65"},{"kind":"number","nativeSrc":"949:2:65","nodeType":"YulLiteral","src":"949:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:65","nodeType":"YulIdentifier","src":"920:3:65"},"nativeSrc":"920:32:65","nodeType":"YulFunctionCall","src":"920:32:65"},"nativeSrc":"917:119:65","nodeType":"YulIf","src":"917:119:65"},{"nativeSrc":"1046:117:65","nodeType":"YulBlock","src":"1046:117:65","statements":[{"nativeSrc":"1061:15:65","nodeType":"YulVariableDeclaration","src":"1061:15:65","value":{"kind":"number","nativeSrc":"1075:1:65","nodeType":"YulLiteral","src":"1075:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:65","nodeType":"YulTypedName","src":"1065:6:65","type":""}]},{"nativeSrc":"1090:63:65","nodeType":"YulAssignment","src":"1090:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:65","nodeType":"YulIdentifier","src":"1125:9:65"},{"name":"offset","nativeSrc":"1136:6:65","nodeType":"YulIdentifier","src":"1136:6:65"}],"functionName":{"name":"add","nativeSrc":"1121:3:65","nodeType":"YulIdentifier","src":"1121:3:65"},"nativeSrc":"1121:22:65","nodeType":"YulFunctionCall","src":"1121:22:65"},{"name":"dataEnd","nativeSrc":"1145:7:65","nodeType":"YulIdentifier","src":"1145:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:65","nodeType":"YulIdentifier","src":"1100:20:65"},"nativeSrc":"1100:53:65","nodeType":"YulFunctionCall","src":"1100:53:65"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:65","nodeType":"YulIdentifier","src":"1090:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:65","nodeType":"YulTypedName","src":"877:9:65","type":""},{"name":"dataEnd","nativeSrc":"888:7:65","nodeType":"YulTypedName","src":"888:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:65","nodeType":"YulTypedName","src":"900:6:65","type":""}],"src":"841:329:65"},{"body":{"nativeSrc":"1265:28:65","nodeType":"YulBlock","src":"1265:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:65","nodeType":"YulLiteral","src":"1282:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:65","nodeType":"YulLiteral","src":"1285:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:65","nodeType":"YulIdentifier","src":"1275:6:65"},"nativeSrc":"1275:12:65","nodeType":"YulFunctionCall","src":"1275:12:65"},"nativeSrc":"1275:12:65","nodeType":"YulExpressionStatement","src":"1275:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:65","nodeType":"YulFunctionDefinition","src":"1176:117:65"},{"body":{"nativeSrc":"1388:28:65","nodeType":"YulBlock","src":"1388:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:65","nodeType":"YulLiteral","src":"1405:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:65","nodeType":"YulLiteral","src":"1408:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:65","nodeType":"YulIdentifier","src":"1398:6:65"},"nativeSrc":"1398:12:65","nodeType":"YulFunctionCall","src":"1398:12:65"},"nativeSrc":"1398:12:65","nodeType":"YulExpressionStatement","src":"1398:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:65","nodeType":"YulFunctionDefinition","src":"1299:117:65"},{"body":{"nativeSrc":"1511:28:65","nodeType":"YulBlock","src":"1511:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:65","nodeType":"YulLiteral","src":"1528:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:65","nodeType":"YulLiteral","src":"1531:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:65","nodeType":"YulIdentifier","src":"1521:6:65"},"nativeSrc":"1521:12:65","nodeType":"YulFunctionCall","src":"1521:12:65"},"nativeSrc":"1521:12:65","nodeType":"YulExpressionStatement","src":"1521:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:65","nodeType":"YulFunctionDefinition","src":"1422:117:65"},{"body":{"nativeSrc":"1632:478:65","nodeType":"YulBlock","src":"1632:478:65","statements":[{"body":{"nativeSrc":"1681:83:65","nodeType":"YulBlock","src":"1681:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:65","nodeType":"YulIdentifier","src":"1683:77:65"},"nativeSrc":"1683:79:65","nodeType":"YulFunctionCall","src":"1683:79:65"},"nativeSrc":"1683:79:65","nodeType":"YulExpressionStatement","src":"1683:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:65","nodeType":"YulIdentifier","src":"1660:6:65"},{"kind":"number","nativeSrc":"1668:4:65","nodeType":"YulLiteral","src":"1668:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:65","nodeType":"YulIdentifier","src":"1656:3:65"},"nativeSrc":"1656:17:65","nodeType":"YulFunctionCall","src":"1656:17:65"},{"name":"end","nativeSrc":"1675:3:65","nodeType":"YulIdentifier","src":"1675:3:65"}],"functionName":{"name":"slt","nativeSrc":"1652:3:65","nodeType":"YulIdentifier","src":"1652:3:65"},"nativeSrc":"1652:27:65","nodeType":"YulFunctionCall","src":"1652:27:65"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:65","nodeType":"YulIdentifier","src":"1645:6:65"},"nativeSrc":"1645:35:65","nodeType":"YulFunctionCall","src":"1645:35:65"},"nativeSrc":"1642:122:65","nodeType":"YulIf","src":"1642:122:65"},{"nativeSrc":"1773:30:65","nodeType":"YulAssignment","src":"1773:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:65","nodeType":"YulIdentifier","src":"1796:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:65","nodeType":"YulIdentifier","src":"1783:12:65"},"nativeSrc":"1783:20:65","nodeType":"YulFunctionCall","src":"1783:20:65"},"variableNames":[{"name":"length","nativeSrc":"1773:6:65","nodeType":"YulIdentifier","src":"1773:6:65"}]},{"body":{"nativeSrc":"1846:83:65","nodeType":"YulBlock","src":"1846:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:65","nodeType":"YulIdentifier","src":"1848:77:65"},"nativeSrc":"1848:79:65","nodeType":"YulFunctionCall","src":"1848:79:65"},"nativeSrc":"1848:79:65","nodeType":"YulExpressionStatement","src":"1848:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:65","nodeType":"YulIdentifier","src":"1818:6:65"},{"kind":"number","nativeSrc":"1826:18:65","nodeType":"YulLiteral","src":"1826:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:65","nodeType":"YulIdentifier","src":"1815:2:65"},"nativeSrc":"1815:30:65","nodeType":"YulFunctionCall","src":"1815:30:65"},"nativeSrc":"1812:117:65","nodeType":"YulIf","src":"1812:117:65"},{"nativeSrc":"1938:29:65","nodeType":"YulAssignment","src":"1938:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:65","nodeType":"YulIdentifier","src":"1954:6:65"},{"kind":"number","nativeSrc":"1962:4:65","nodeType":"YulLiteral","src":"1962:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:65","nodeType":"YulIdentifier","src":"1950:3:65"},"nativeSrc":"1950:17:65","nodeType":"YulFunctionCall","src":"1950:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:65","nodeType":"YulIdentifier","src":"1938:8:65"}]},{"body":{"nativeSrc":"2021:83:65","nodeType":"YulBlock","src":"2021:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:65","nodeType":"YulIdentifier","src":"2023:77:65"},"nativeSrc":"2023:79:65","nodeType":"YulFunctionCall","src":"2023:79:65"},"nativeSrc":"2023:79:65","nodeType":"YulExpressionStatement","src":"2023:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:65","nodeType":"YulIdentifier","src":"1986:8:65"},{"arguments":[{"name":"length","nativeSrc":"2000:6:65","nodeType":"YulIdentifier","src":"2000:6:65"},{"kind":"number","nativeSrc":"2008:4:65","nodeType":"YulLiteral","src":"2008:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:65","nodeType":"YulIdentifier","src":"1996:3:65"},"nativeSrc":"1996:17:65","nodeType":"YulFunctionCall","src":"1996:17:65"}],"functionName":{"name":"add","nativeSrc":"1982:3:65","nodeType":"YulIdentifier","src":"1982:3:65"},"nativeSrc":"1982:32:65","nodeType":"YulFunctionCall","src":"1982:32:65"},{"name":"end","nativeSrc":"2016:3:65","nodeType":"YulIdentifier","src":"2016:3:65"}],"functionName":{"name":"gt","nativeSrc":"1979:2:65","nodeType":"YulIdentifier","src":"1979:2:65"},"nativeSrc":"1979:41:65","nodeType":"YulFunctionCall","src":"1979:41:65"},"nativeSrc":"1976:128:65","nodeType":"YulIf","src":"1976:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:65","nodeType":"YulTypedName","src":"1599:6:65","type":""},{"name":"end","nativeSrc":"1607:3:65","nodeType":"YulTypedName","src":"1607:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:65","nodeType":"YulTypedName","src":"1615:8:65","type":""},{"name":"length","nativeSrc":"1625:6:65","nodeType":"YulTypedName","src":"1625:6:65","type":""}],"src":"1558:552:65"},{"body":{"nativeSrc":"2218:570:65","nodeType":"YulBlock","src":"2218:570:65","statements":[{"body":{"nativeSrc":"2264:83:65","nodeType":"YulBlock","src":"2264:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:65","nodeType":"YulIdentifier","src":"2266:77:65"},"nativeSrc":"2266:79:65","nodeType":"YulFunctionCall","src":"2266:79:65"},"nativeSrc":"2266:79:65","nodeType":"YulExpressionStatement","src":"2266:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:65","nodeType":"YulIdentifier","src":"2239:7:65"},{"name":"headStart","nativeSrc":"2248:9:65","nodeType":"YulIdentifier","src":"2248:9:65"}],"functionName":{"name":"sub","nativeSrc":"2235:3:65","nodeType":"YulIdentifier","src":"2235:3:65"},"nativeSrc":"2235:23:65","nodeType":"YulFunctionCall","src":"2235:23:65"},{"kind":"number","nativeSrc":"2260:2:65","nodeType":"YulLiteral","src":"2260:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:65","nodeType":"YulIdentifier","src":"2231:3:65"},"nativeSrc":"2231:32:65","nodeType":"YulFunctionCall","src":"2231:32:65"},"nativeSrc":"2228:119:65","nodeType":"YulIf","src":"2228:119:65"},{"nativeSrc":"2357:117:65","nodeType":"YulBlock","src":"2357:117:65","statements":[{"nativeSrc":"2372:15:65","nodeType":"YulVariableDeclaration","src":"2372:15:65","value":{"kind":"number","nativeSrc":"2386:1:65","nodeType":"YulLiteral","src":"2386:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:65","nodeType":"YulTypedName","src":"2376:6:65","type":""}]},{"nativeSrc":"2401:63:65","nodeType":"YulAssignment","src":"2401:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:65","nodeType":"YulIdentifier","src":"2436:9:65"},{"name":"offset","nativeSrc":"2447:6:65","nodeType":"YulIdentifier","src":"2447:6:65"}],"functionName":{"name":"add","nativeSrc":"2432:3:65","nodeType":"YulIdentifier","src":"2432:3:65"},"nativeSrc":"2432:22:65","nodeType":"YulFunctionCall","src":"2432:22:65"},{"name":"dataEnd","nativeSrc":"2456:7:65","nodeType":"YulIdentifier","src":"2456:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:65","nodeType":"YulIdentifier","src":"2411:20:65"},"nativeSrc":"2411:53:65","nodeType":"YulFunctionCall","src":"2411:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:65","nodeType":"YulIdentifier","src":"2401:6:65"}]}]},{"nativeSrc":"2484:297:65","nodeType":"YulBlock","src":"2484:297:65","statements":[{"nativeSrc":"2499:46:65","nodeType":"YulVariableDeclaration","src":"2499:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:65","nodeType":"YulIdentifier","src":"2530:9:65"},{"kind":"number","nativeSrc":"2541:2:65","nodeType":"YulLiteral","src":"2541:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:65","nodeType":"YulIdentifier","src":"2526:3:65"},"nativeSrc":"2526:18:65","nodeType":"YulFunctionCall","src":"2526:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:65","nodeType":"YulIdentifier","src":"2513:12:65"},"nativeSrc":"2513:32:65","nodeType":"YulFunctionCall","src":"2513:32:65"},"variables":[{"name":"offset","nativeSrc":"2503:6:65","nodeType":"YulTypedName","src":"2503:6:65","type":""}]},{"body":{"nativeSrc":"2592:83:65","nodeType":"YulBlock","src":"2592:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:65","nodeType":"YulIdentifier","src":"2594:77:65"},"nativeSrc":"2594:79:65","nodeType":"YulFunctionCall","src":"2594:79:65"},"nativeSrc":"2594:79:65","nodeType":"YulExpressionStatement","src":"2594:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:65","nodeType":"YulIdentifier","src":"2564:6:65"},{"kind":"number","nativeSrc":"2572:18:65","nodeType":"YulLiteral","src":"2572:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:65","nodeType":"YulIdentifier","src":"2561:2:65"},"nativeSrc":"2561:30:65","nodeType":"YulFunctionCall","src":"2561:30:65"},"nativeSrc":"2558:117:65","nodeType":"YulIf","src":"2558:117:65"},{"nativeSrc":"2689:82:65","nodeType":"YulAssignment","src":"2689:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:65","nodeType":"YulIdentifier","src":"2743:9:65"},{"name":"offset","nativeSrc":"2754:6:65","nodeType":"YulIdentifier","src":"2754:6:65"}],"functionName":{"name":"add","nativeSrc":"2739:3:65","nodeType":"YulIdentifier","src":"2739:3:65"},"nativeSrc":"2739:22:65","nodeType":"YulFunctionCall","src":"2739:22:65"},{"name":"dataEnd","nativeSrc":"2763:7:65","nodeType":"YulIdentifier","src":"2763:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:65","nodeType":"YulIdentifier","src":"2707:31:65"},"nativeSrc":"2707:64:65","nodeType":"YulFunctionCall","src":"2707:64:65"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:65","nodeType":"YulIdentifier","src":"2689:6:65"},{"name":"value2","nativeSrc":"2697:6:65","nodeType":"YulIdentifier","src":"2697:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:65","nodeType":"YulTypedName","src":"2172:9:65","type":""},{"name":"dataEnd","nativeSrc":"2183:7:65","nodeType":"YulTypedName","src":"2183:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:65","nodeType":"YulTypedName","src":"2195:6:65","type":""},{"name":"value1","nativeSrc":"2203:6:65","nodeType":"YulTypedName","src":"2203:6:65","type":""},{"name":"value2","nativeSrc":"2211:6:65","nodeType":"YulTypedName","src":"2211:6:65","type":""}],"src":"2116:672:65"},{"body":{"nativeSrc":"2859:53:65","nodeType":"YulBlock","src":"2859:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:65","nodeType":"YulIdentifier","src":"2876:3:65"},{"arguments":[{"name":"value","nativeSrc":"2899:5:65","nodeType":"YulIdentifier","src":"2899:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:65","nodeType":"YulIdentifier","src":"2881:17:65"},"nativeSrc":"2881:24:65","nodeType":"YulFunctionCall","src":"2881:24:65"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:65","nodeType":"YulIdentifier","src":"2869:6:65"},"nativeSrc":"2869:37:65","nodeType":"YulFunctionCall","src":"2869:37:65"},"nativeSrc":"2869:37:65","nodeType":"YulExpressionStatement","src":"2869:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:65","nodeType":"YulTypedName","src":"2847:5:65","type":""},{"name":"pos","nativeSrc":"2854:3:65","nodeType":"YulTypedName","src":"2854:3:65","type":""}],"src":"2794:118:65"},{"body":{"nativeSrc":"3016:124:65","nodeType":"YulBlock","src":"3016:124:65","statements":[{"nativeSrc":"3026:26:65","nodeType":"YulAssignment","src":"3026:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:65","nodeType":"YulIdentifier","src":"3038:9:65"},{"kind":"number","nativeSrc":"3049:2:65","nodeType":"YulLiteral","src":"3049:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:65","nodeType":"YulIdentifier","src":"3034:3:65"},"nativeSrc":"3034:18:65","nodeType":"YulFunctionCall","src":"3034:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:65","nodeType":"YulIdentifier","src":"3026:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:65","nodeType":"YulIdentifier","src":"3106:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:65","nodeType":"YulIdentifier","src":"3119:9:65"},{"kind":"number","nativeSrc":"3130:1:65","nodeType":"YulLiteral","src":"3130:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:65","nodeType":"YulIdentifier","src":"3115:3:65"},"nativeSrc":"3115:17:65","nodeType":"YulFunctionCall","src":"3115:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:65","nodeType":"YulIdentifier","src":"3062:43:65"},"nativeSrc":"3062:71:65","nodeType":"YulFunctionCall","src":"3062:71:65"},"nativeSrc":"3062:71:65","nodeType":"YulExpressionStatement","src":"3062:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:65","nodeType":"YulTypedName","src":"2988:9:65","type":""},{"name":"value0","nativeSrc":"3000:6:65","nodeType":"YulTypedName","src":"3000:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:65","nodeType":"YulTypedName","src":"3011:4:65","type":""}],"src":"2918:222:65"},{"body":{"nativeSrc":"3242:73:65","nodeType":"YulBlock","src":"3242:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:65","nodeType":"YulIdentifier","src":"3259:3:65"},{"name":"length","nativeSrc":"3264:6:65","nodeType":"YulIdentifier","src":"3264:6:65"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:65","nodeType":"YulIdentifier","src":"3252:6:65"},"nativeSrc":"3252:19:65","nodeType":"YulFunctionCall","src":"3252:19:65"},"nativeSrc":"3252:19:65","nodeType":"YulExpressionStatement","src":"3252:19:65"},{"nativeSrc":"3280:29:65","nodeType":"YulAssignment","src":"3280:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:65","nodeType":"YulIdentifier","src":"3299:3:65"},{"kind":"number","nativeSrc":"3304:4:65","nodeType":"YulLiteral","src":"3304:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:65","nodeType":"YulIdentifier","src":"3295:3:65"},"nativeSrc":"3295:14:65","nodeType":"YulFunctionCall","src":"3295:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:65","nodeType":"YulIdentifier","src":"3280:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:65","nodeType":"YulTypedName","src":"3214:3:65","type":""},{"name":"length","nativeSrc":"3219:6:65","nodeType":"YulTypedName","src":"3219:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:65","nodeType":"YulTypedName","src":"3230:11:65","type":""}],"src":"3146:169:65"},{"body":{"nativeSrc":"3427:184:65","nodeType":"YulBlock","src":"3427:184:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:65","nodeType":"YulIdentifier","src":"3449:6:65"},{"kind":"number","nativeSrc":"3457:1:65","nodeType":"YulLiteral","src":"3457:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:65","nodeType":"YulIdentifier","src":"3445:3:65"},"nativeSrc":"3445:14:65","nodeType":"YulFunctionCall","src":"3445:14:65"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:65","nodeType":"YulLiteral","src":"3461:34:65","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:65","nodeType":"YulIdentifier","src":"3438:6:65"},"nativeSrc":"3438:58:65","nodeType":"YulFunctionCall","src":"3438:58:65"},"nativeSrc":"3438:58:65","nodeType":"YulExpressionStatement","src":"3438:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:65","nodeType":"YulIdentifier","src":"3517:6:65"},{"kind":"number","nativeSrc":"3525:2:65","nodeType":"YulLiteral","src":"3525:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:65","nodeType":"YulIdentifier","src":"3513:3:65"},"nativeSrc":"3513:15:65","nodeType":"YulFunctionCall","src":"3513:15:65"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:65","nodeType":"YulLiteral","src":"3530:34:65","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:65","nodeType":"YulIdentifier","src":"3506:6:65"},"nativeSrc":"3506:59:65","nodeType":"YulFunctionCall","src":"3506:59:65"},"nativeSrc":"3506:59:65","nodeType":"YulExpressionStatement","src":"3506:59:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:65","nodeType":"YulIdentifier","src":"3586:6:65"},{"kind":"number","nativeSrc":"3594:2:65","nodeType":"YulLiteral","src":"3594:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:65","nodeType":"YulIdentifier","src":"3582:3:65"},"nativeSrc":"3582:15:65","nodeType":"YulFunctionCall","src":"3582:15:65"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:65","nodeType":"YulLiteral","src":"3599:4:65","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:65","nodeType":"YulIdentifier","src":"3575:6:65"},"nativeSrc":"3575:29:65","nodeType":"YulFunctionCall","src":"3575:29:65"},"nativeSrc":"3575:29:65","nodeType":"YulExpressionStatement","src":"3575:29:65"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:65","nodeType":"YulTypedName","src":"3419:6:65","type":""}],"src":"3321:290:65"},{"body":{"nativeSrc":"3763:220:65","nodeType":"YulBlock","src":"3763:220:65","statements":[{"nativeSrc":"3773:74:65","nodeType":"YulAssignment","src":"3773:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:65","nodeType":"YulIdentifier","src":"3839:3:65"},{"kind":"number","nativeSrc":"3844:2:65","nodeType":"YulLiteral","src":"3844:2:65","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:65","nodeType":"YulIdentifier","src":"3780:58:65"},"nativeSrc":"3780:67:65","nodeType":"YulFunctionCall","src":"3780:67:65"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:65","nodeType":"YulIdentifier","src":"3773:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:65","nodeType":"YulIdentifier","src":"3945:3:65"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:65","nodeType":"YulIdentifier","src":"3856:88:65"},"nativeSrc":"3856:93:65","nodeType":"YulFunctionCall","src":"3856:93:65"},"nativeSrc":"3856:93:65","nodeType":"YulExpressionStatement","src":"3856:93:65"},{"nativeSrc":"3958:19:65","nodeType":"YulAssignment","src":"3958:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:65","nodeType":"YulIdentifier","src":"3969:3:65"},{"kind":"number","nativeSrc":"3974:2:65","nodeType":"YulLiteral","src":"3974:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:65","nodeType":"YulIdentifier","src":"3965:3:65"},"nativeSrc":"3965:12:65","nodeType":"YulFunctionCall","src":"3965:12:65"},"variableNames":[{"name":"end","nativeSrc":"3958:3:65","nodeType":"YulIdentifier","src":"3958:3:65"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:65","nodeType":"YulTypedName","src":"3751:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:65","nodeType":"YulTypedName","src":"3759:3:65","type":""}],"src":"3617:366:65"},{"body":{"nativeSrc":"4160:248:65","nodeType":"YulBlock","src":"4160:248:65","statements":[{"nativeSrc":"4170:26:65","nodeType":"YulAssignment","src":"4170:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:65","nodeType":"YulIdentifier","src":"4182:9:65"},{"kind":"number","nativeSrc":"4193:2:65","nodeType":"YulLiteral","src":"4193:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:65","nodeType":"YulIdentifier","src":"4178:3:65"},"nativeSrc":"4178:18:65","nodeType":"YulFunctionCall","src":"4178:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:65","nodeType":"YulIdentifier","src":"4170:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:65","nodeType":"YulIdentifier","src":"4217:9:65"},{"kind":"number","nativeSrc":"4228:1:65","nodeType":"YulLiteral","src":"4228:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:65","nodeType":"YulIdentifier","src":"4213:3:65"},"nativeSrc":"4213:17:65","nodeType":"YulFunctionCall","src":"4213:17:65"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:65","nodeType":"YulIdentifier","src":"4236:4:65"},{"name":"headStart","nativeSrc":"4242:9:65","nodeType":"YulIdentifier","src":"4242:9:65"}],"functionName":{"name":"sub","nativeSrc":"4232:3:65","nodeType":"YulIdentifier","src":"4232:3:65"},"nativeSrc":"4232:20:65","nodeType":"YulFunctionCall","src":"4232:20:65"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:65","nodeType":"YulIdentifier","src":"4206:6:65"},"nativeSrc":"4206:47:65","nodeType":"YulFunctionCall","src":"4206:47:65"},"nativeSrc":"4206:47:65","nodeType":"YulExpressionStatement","src":"4206:47:65"},{"nativeSrc":"4262:139:65","nodeType":"YulAssignment","src":"4262:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:65","nodeType":"YulIdentifier","src":"4396:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:65","nodeType":"YulIdentifier","src":"4270:124:65"},"nativeSrc":"4270:131:65","nodeType":"YulFunctionCall","src":"4270:131:65"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:65","nodeType":"YulIdentifier","src":"4262:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:65","nodeType":"YulTypedName","src":"4140:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:65","nodeType":"YulTypedName","src":"4155:4:65","type":""}],"src":"3989:419:65"},{"body":{"nativeSrc":"4540:206:65","nodeType":"YulBlock","src":"4540:206:65","statements":[{"nativeSrc":"4550:26:65","nodeType":"YulAssignment","src":"4550:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4562:9:65","nodeType":"YulIdentifier","src":"4562:9:65"},{"kind":"number","nativeSrc":"4573:2:65","nodeType":"YulLiteral","src":"4573:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4558:3:65","nodeType":"YulIdentifier","src":"4558:3:65"},"nativeSrc":"4558:18:65","nodeType":"YulFunctionCall","src":"4558:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4550:4:65","nodeType":"YulIdentifier","src":"4550:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4630:6:65","nodeType":"YulIdentifier","src":"4630:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4643:9:65","nodeType":"YulIdentifier","src":"4643:9:65"},{"kind":"number","nativeSrc":"4654:1:65","nodeType":"YulLiteral","src":"4654:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4639:3:65","nodeType":"YulIdentifier","src":"4639:3:65"},"nativeSrc":"4639:17:65","nodeType":"YulFunctionCall","src":"4639:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4586:43:65","nodeType":"YulIdentifier","src":"4586:43:65"},"nativeSrc":"4586:71:65","nodeType":"YulFunctionCall","src":"4586:71:65"},"nativeSrc":"4586:71:65","nodeType":"YulExpressionStatement","src":"4586:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4711:6:65","nodeType":"YulIdentifier","src":"4711:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"4724:9:65","nodeType":"YulIdentifier","src":"4724:9:65"},{"kind":"number","nativeSrc":"4735:2:65","nodeType":"YulLiteral","src":"4735:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4720:3:65","nodeType":"YulIdentifier","src":"4720:3:65"},"nativeSrc":"4720:18:65","nodeType":"YulFunctionCall","src":"4720:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4667:43:65","nodeType":"YulIdentifier","src":"4667:43:65"},"nativeSrc":"4667:72:65","nodeType":"YulFunctionCall","src":"4667:72:65"},"nativeSrc":"4667:72:65","nodeType":"YulExpressionStatement","src":"4667:72:65"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4414:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4504:9:65","nodeType":"YulTypedName","src":"4504:9:65","type":""},{"name":"value1","nativeSrc":"4516:6:65","nodeType":"YulTypedName","src":"4516:6:65","type":""},{"name":"value0","nativeSrc":"4524:6:65","nodeType":"YulTypedName","src":"4524:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4535:4:65","nodeType":"YulTypedName","src":"4535:4:65","type":""}],"src":"4414:332:65"},{"body":{"nativeSrc":"4858:119:65","nodeType":"YulBlock","src":"4858:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4880:6:65","nodeType":"YulIdentifier","src":"4880:6:65"},{"kind":"number","nativeSrc":"4888:1:65","nodeType":"YulLiteral","src":"4888:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4876:3:65","nodeType":"YulIdentifier","src":"4876:3:65"},"nativeSrc":"4876:14:65","nodeType":"YulFunctionCall","src":"4876:14:65"},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061","kind":"string","nativeSrc":"4892:34:65","nodeType":"YulLiteral","src":"4892:34:65","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"4869:6:65","nodeType":"YulIdentifier","src":"4869:6:65"},"nativeSrc":"4869:58:65","nodeType":"YulFunctionCall","src":"4869:58:65"},"nativeSrc":"4869:58:65","nodeType":"YulExpressionStatement","src":"4869:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4948:6:65","nodeType":"YulIdentifier","src":"4948:6:65"},{"kind":"number","nativeSrc":"4956:2:65","nodeType":"YulLiteral","src":"4956:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4944:3:65","nodeType":"YulIdentifier","src":"4944:3:65"},"nativeSrc":"4944:15:65","nodeType":"YulFunctionCall","src":"4944:15:65"},{"hexValue":"646472657373","kind":"string","nativeSrc":"4961:8:65","nodeType":"YulLiteral","src":"4961:8:65","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"4937:6:65","nodeType":"YulIdentifier","src":"4937:6:65"},"nativeSrc":"4937:33:65","nodeType":"YulFunctionCall","src":"4937:33:65"},"nativeSrc":"4937:33:65","nodeType":"YulExpressionStatement","src":"4937:33:65"}]},"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"4752:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4850:6:65","nodeType":"YulTypedName","src":"4850:6:65","type":""}],"src":"4752:225:65"},{"body":{"nativeSrc":"5129:220:65","nodeType":"YulBlock","src":"5129:220:65","statements":[{"nativeSrc":"5139:74:65","nodeType":"YulAssignment","src":"5139:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5205:3:65","nodeType":"YulIdentifier","src":"5205:3:65"},{"kind":"number","nativeSrc":"5210:2:65","nodeType":"YulLiteral","src":"5210:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5146:58:65","nodeType":"YulIdentifier","src":"5146:58:65"},"nativeSrc":"5146:67:65","nodeType":"YulFunctionCall","src":"5146:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5139:3:65","nodeType":"YulIdentifier","src":"5139:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5311:3:65","nodeType":"YulIdentifier","src":"5311:3:65"}],"functionName":{"name":"store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","nativeSrc":"5222:88:65","nodeType":"YulIdentifier","src":"5222:88:65"},"nativeSrc":"5222:93:65","nodeType":"YulFunctionCall","src":"5222:93:65"},"nativeSrc":"5222:93:65","nodeType":"YulExpressionStatement","src":"5222:93:65"},{"nativeSrc":"5324:19:65","nodeType":"YulAssignment","src":"5324:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5335:3:65","nodeType":"YulIdentifier","src":"5335:3:65"},{"kind":"number","nativeSrc":"5340:2:65","nodeType":"YulLiteral","src":"5340:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5331:3:65","nodeType":"YulIdentifier","src":"5331:3:65"},"nativeSrc":"5331:12:65","nodeType":"YulFunctionCall","src":"5331:12:65"},"variableNames":[{"name":"end","nativeSrc":"5324:3:65","nodeType":"YulIdentifier","src":"5324:3:65"}]}]},"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"4983:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5117:3:65","nodeType":"YulTypedName","src":"5117:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5125:3:65","nodeType":"YulTypedName","src":"5125:3:65","type":""}],"src":"4983:366:65"},{"body":{"nativeSrc":"5526:248:65","nodeType":"YulBlock","src":"5526:248:65","statements":[{"nativeSrc":"5536:26:65","nodeType":"YulAssignment","src":"5536:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5548:9:65","nodeType":"YulIdentifier","src":"5548:9:65"},{"kind":"number","nativeSrc":"5559:2:65","nodeType":"YulLiteral","src":"5559:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5544:3:65","nodeType":"YulIdentifier","src":"5544:3:65"},"nativeSrc":"5544:18:65","nodeType":"YulFunctionCall","src":"5544:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5536:4:65","nodeType":"YulIdentifier","src":"5536:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5583:9:65","nodeType":"YulIdentifier","src":"5583:9:65"},{"kind":"number","nativeSrc":"5594:1:65","nodeType":"YulLiteral","src":"5594:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5579:3:65","nodeType":"YulIdentifier","src":"5579:3:65"},"nativeSrc":"5579:17:65","nodeType":"YulFunctionCall","src":"5579:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5602:4:65","nodeType":"YulIdentifier","src":"5602:4:65"},{"name":"headStart","nativeSrc":"5608:9:65","nodeType":"YulIdentifier","src":"5608:9:65"}],"functionName":{"name":"sub","nativeSrc":"5598:3:65","nodeType":"YulIdentifier","src":"5598:3:65"},"nativeSrc":"5598:20:65","nodeType":"YulFunctionCall","src":"5598:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5572:6:65","nodeType":"YulIdentifier","src":"5572:6:65"},"nativeSrc":"5572:47:65","nodeType":"YulFunctionCall","src":"5572:47:65"},"nativeSrc":"5572:47:65","nodeType":"YulExpressionStatement","src":"5572:47:65"},{"nativeSrc":"5628:139:65","nodeType":"YulAssignment","src":"5628:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5762:4:65","nodeType":"YulIdentifier","src":"5762:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack","nativeSrc":"5636:124:65","nodeType":"YulIdentifier","src":"5636:124:65"},"nativeSrc":"5636:131:65","nodeType":"YulFunctionCall","src":"5636:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5628:4:65","nodeType":"YulIdentifier","src":"5628:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5355:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5506:9:65","nodeType":"YulTypedName","src":"5506:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5521:4:65","nodeType":"YulTypedName","src":"5521:4:65","type":""}],"src":"5355:419:65"},{"body":{"nativeSrc":"5886:126:65","nodeType":"YulBlock","src":"5886:126:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5908:6:65","nodeType":"YulIdentifier","src":"5908:6:65"},{"kind":"number","nativeSrc":"5916:1:65","nodeType":"YulLiteral","src":"5916:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5904:3:65","nodeType":"YulIdentifier","src":"5904:3:65"},"nativeSrc":"5904:14:65","nodeType":"YulFunctionCall","src":"5904:14:65"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5920:34:65","nodeType":"YulLiteral","src":"5920:34:65","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5897:6:65","nodeType":"YulIdentifier","src":"5897:6:65"},"nativeSrc":"5897:58:65","nodeType":"YulFunctionCall","src":"5897:58:65"},"nativeSrc":"5897:58:65","nodeType":"YulExpressionStatement","src":"5897:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5976:6:65","nodeType":"YulIdentifier","src":"5976:6:65"},{"kind":"number","nativeSrc":"5984:2:65","nodeType":"YulLiteral","src":"5984:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5972:3:65","nodeType":"YulIdentifier","src":"5972:3:65"},"nativeSrc":"5972:15:65","nodeType":"YulFunctionCall","src":"5972:15:65"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5989:15:65","nodeType":"YulLiteral","src":"5989:15:65","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5965:6:65","nodeType":"YulIdentifier","src":"5965:6:65"},"nativeSrc":"5965:40:65","nodeType":"YulFunctionCall","src":"5965:40:65"},"nativeSrc":"5965:40:65","nodeType":"YulExpressionStatement","src":"5965:40:65"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5780:232:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5878:6:65","nodeType":"YulTypedName","src":"5878:6:65","type":""}],"src":"5780:232:65"},{"body":{"nativeSrc":"6164:220:65","nodeType":"YulBlock","src":"6164:220:65","statements":[{"nativeSrc":"6174:74:65","nodeType":"YulAssignment","src":"6174:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"6240:3:65","nodeType":"YulIdentifier","src":"6240:3:65"},{"kind":"number","nativeSrc":"6245:2:65","nodeType":"YulLiteral","src":"6245:2:65","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6181:58:65","nodeType":"YulIdentifier","src":"6181:58:65"},"nativeSrc":"6181:67:65","nodeType":"YulFunctionCall","src":"6181:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6174:3:65","nodeType":"YulIdentifier","src":"6174:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6346:3:65","nodeType":"YulIdentifier","src":"6346:3:65"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"6257:88:65","nodeType":"YulIdentifier","src":"6257:88:65"},"nativeSrc":"6257:93:65","nodeType":"YulFunctionCall","src":"6257:93:65"},"nativeSrc":"6257:93:65","nodeType":"YulExpressionStatement","src":"6257:93:65"},{"nativeSrc":"6359:19:65","nodeType":"YulAssignment","src":"6359:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6370:3:65","nodeType":"YulIdentifier","src":"6370:3:65"},{"kind":"number","nativeSrc":"6375:2:65","nodeType":"YulLiteral","src":"6375:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6366:3:65","nodeType":"YulIdentifier","src":"6366:3:65"},"nativeSrc":"6366:12:65","nodeType":"YulFunctionCall","src":"6366:12:65"},"variableNames":[{"name":"end","nativeSrc":"6359:3:65","nodeType":"YulIdentifier","src":"6359:3:65"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6018:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6152:3:65","nodeType":"YulTypedName","src":"6152:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6160:3:65","nodeType":"YulTypedName","src":"6160:3:65","type":""}],"src":"6018:366:65"},{"body":{"nativeSrc":"6561:248:65","nodeType":"YulBlock","src":"6561:248:65","statements":[{"nativeSrc":"6571:26:65","nodeType":"YulAssignment","src":"6571:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6583:9:65","nodeType":"YulIdentifier","src":"6583:9:65"},{"kind":"number","nativeSrc":"6594:2:65","nodeType":"YulLiteral","src":"6594:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6579:3:65","nodeType":"YulIdentifier","src":"6579:3:65"},"nativeSrc":"6579:18:65","nodeType":"YulFunctionCall","src":"6579:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6571:4:65","nodeType":"YulIdentifier","src":"6571:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6618:9:65","nodeType":"YulIdentifier","src":"6618:9:65"},{"kind":"number","nativeSrc":"6629:1:65","nodeType":"YulLiteral","src":"6629:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6614:3:65","nodeType":"YulIdentifier","src":"6614:3:65"},"nativeSrc":"6614:17:65","nodeType":"YulFunctionCall","src":"6614:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6637:4:65","nodeType":"YulIdentifier","src":"6637:4:65"},{"name":"headStart","nativeSrc":"6643:9:65","nodeType":"YulIdentifier","src":"6643:9:65"}],"functionName":{"name":"sub","nativeSrc":"6633:3:65","nodeType":"YulIdentifier","src":"6633:3:65"},"nativeSrc":"6633:20:65","nodeType":"YulFunctionCall","src":"6633:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6607:6:65","nodeType":"YulIdentifier","src":"6607:6:65"},"nativeSrc":"6607:47:65","nodeType":"YulFunctionCall","src":"6607:47:65"},"nativeSrc":"6607:47:65","nodeType":"YulExpressionStatement","src":"6607:47:65"},{"nativeSrc":"6663:139:65","nodeType":"YulAssignment","src":"6663:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6797:4:65","nodeType":"YulIdentifier","src":"6797:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6671:124:65","nodeType":"YulIdentifier","src":"6671:124:65"},"nativeSrc":"6671:131:65","nodeType":"YulFunctionCall","src":"6671:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6663:4:65","nodeType":"YulIdentifier","src":"6663:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6390:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6541:9:65","nodeType":"YulTypedName","src":"6541:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6556:4:65","nodeType":"YulTypedName","src":"6556:4:65","type":""}],"src":"6390:419:65"},{"body":{"nativeSrc":"6921:119:65","nodeType":"YulBlock","src":"6921:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6943:6:65","nodeType":"YulIdentifier","src":"6943:6:65"},{"kind":"number","nativeSrc":"6951:1:65","nodeType":"YulLiteral","src":"6951:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6939:3:65","nodeType":"YulIdentifier","src":"6939:3:65"},"nativeSrc":"6939:14:65","nodeType":"YulFunctionCall","src":"6939:14:65"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6955:34:65","nodeType":"YulLiteral","src":"6955:34:65","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6932:6:65","nodeType":"YulIdentifier","src":"6932:6:65"},"nativeSrc":"6932:58:65","nodeType":"YulFunctionCall","src":"6932:58:65"},"nativeSrc":"6932:58:65","nodeType":"YulExpressionStatement","src":"6932:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"7011:6:65","nodeType":"YulIdentifier","src":"7011:6:65"},{"kind":"number","nativeSrc":"7019:2:65","nodeType":"YulLiteral","src":"7019:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7007:3:65","nodeType":"YulIdentifier","src":"7007:3:65"},"nativeSrc":"7007:15:65","nodeType":"YulFunctionCall","src":"7007:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"7024:8:65","nodeType":"YulLiteral","src":"7024:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"7000:6:65","nodeType":"YulIdentifier","src":"7000:6:65"},"nativeSrc":"7000:33:65","nodeType":"YulFunctionCall","src":"7000:33:65"},"nativeSrc":"7000:33:65","nodeType":"YulExpressionStatement","src":"7000:33:65"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6815:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6913:6:65","nodeType":"YulTypedName","src":"6913:6:65","type":""}],"src":"6815:225:65"},{"body":{"nativeSrc":"7192:220:65","nodeType":"YulBlock","src":"7192:220:65","statements":[{"nativeSrc":"7202:74:65","nodeType":"YulAssignment","src":"7202:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"7268:3:65","nodeType":"YulIdentifier","src":"7268:3:65"},{"kind":"number","nativeSrc":"7273:2:65","nodeType":"YulLiteral","src":"7273:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"7209:58:65","nodeType":"YulIdentifier","src":"7209:58:65"},"nativeSrc":"7209:67:65","nodeType":"YulFunctionCall","src":"7209:67:65"},"variableNames":[{"name":"pos","nativeSrc":"7202:3:65","nodeType":"YulIdentifier","src":"7202:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7374:3:65","nodeType":"YulIdentifier","src":"7374:3:65"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"7285:88:65","nodeType":"YulIdentifier","src":"7285:88:65"},"nativeSrc":"7285:93:65","nodeType":"YulFunctionCall","src":"7285:93:65"},"nativeSrc":"7285:93:65","nodeType":"YulExpressionStatement","src":"7285:93:65"},{"nativeSrc":"7387:19:65","nodeType":"YulAssignment","src":"7387:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"7398:3:65","nodeType":"YulIdentifier","src":"7398:3:65"},{"kind":"number","nativeSrc":"7403:2:65","nodeType":"YulLiteral","src":"7403:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7394:3:65","nodeType":"YulIdentifier","src":"7394:3:65"},"nativeSrc":"7394:12:65","nodeType":"YulFunctionCall","src":"7394:12:65"},"variableNames":[{"name":"end","nativeSrc":"7387:3:65","nodeType":"YulIdentifier","src":"7387:3:65"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7046:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7180:3:65","nodeType":"YulTypedName","src":"7180:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7188:3:65","nodeType":"YulTypedName","src":"7188:3:65","type":""}],"src":"7046:366:65"},{"body":{"nativeSrc":"7589:248:65","nodeType":"YulBlock","src":"7589:248:65","statements":[{"nativeSrc":"7599:26:65","nodeType":"YulAssignment","src":"7599:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7611:9:65","nodeType":"YulIdentifier","src":"7611:9:65"},{"kind":"number","nativeSrc":"7622:2:65","nodeType":"YulLiteral","src":"7622:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7607:3:65","nodeType":"YulIdentifier","src":"7607:3:65"},"nativeSrc":"7607:18:65","nodeType":"YulFunctionCall","src":"7607:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7599:4:65","nodeType":"YulIdentifier","src":"7599:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7646:9:65","nodeType":"YulIdentifier","src":"7646:9:65"},{"kind":"number","nativeSrc":"7657:1:65","nodeType":"YulLiteral","src":"7657:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7642:3:65","nodeType":"YulIdentifier","src":"7642:3:65"},"nativeSrc":"7642:17:65","nodeType":"YulFunctionCall","src":"7642:17:65"},{"arguments":[{"name":"tail","nativeSrc":"7665:4:65","nodeType":"YulIdentifier","src":"7665:4:65"},{"name":"headStart","nativeSrc":"7671:9:65","nodeType":"YulIdentifier","src":"7671:9:65"}],"functionName":{"name":"sub","nativeSrc":"7661:3:65","nodeType":"YulIdentifier","src":"7661:3:65"},"nativeSrc":"7661:20:65","nodeType":"YulFunctionCall","src":"7661:20:65"}],"functionName":{"name":"mstore","nativeSrc":"7635:6:65","nodeType":"YulIdentifier","src":"7635:6:65"},"nativeSrc":"7635:47:65","nodeType":"YulFunctionCall","src":"7635:47:65"},"nativeSrc":"7635:47:65","nodeType":"YulExpressionStatement","src":"7635:47:65"},{"nativeSrc":"7691:139:65","nodeType":"YulAssignment","src":"7691:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"7825:4:65","nodeType":"YulIdentifier","src":"7825:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7699:124:65","nodeType":"YulIdentifier","src":"7699:124:65"},"nativeSrc":"7699:131:65","nodeType":"YulFunctionCall","src":"7699:131:65"},"variableNames":[{"name":"tail","nativeSrc":"7691:4:65","nodeType":"YulIdentifier","src":"7691:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7418:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7569:9:65","nodeType":"YulTypedName","src":"7569:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7584:4:65","nodeType":"YulTypedName","src":"7584:4:65","type":""}],"src":"7418:419:65"},{"body":{"nativeSrc":"7901:40:65","nodeType":"YulBlock","src":"7901:40:65","statements":[{"nativeSrc":"7912:22:65","nodeType":"YulAssignment","src":"7912:22:65","value":{"arguments":[{"name":"value","nativeSrc":"7928:5:65","nodeType":"YulIdentifier","src":"7928:5:65"}],"functionName":{"name":"mload","nativeSrc":"7922:5:65","nodeType":"YulIdentifier","src":"7922:5:65"},"nativeSrc":"7922:12:65","nodeType":"YulFunctionCall","src":"7922:12:65"},"variableNames":[{"name":"length","nativeSrc":"7912:6:65","nodeType":"YulIdentifier","src":"7912:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7843:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7884:5:65","nodeType":"YulTypedName","src":"7884:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7894:6:65","nodeType":"YulTypedName","src":"7894:6:65","type":""}],"src":"7843:98:65"},{"body":{"nativeSrc":"8060:34:65","nodeType":"YulBlock","src":"8060:34:65","statements":[{"nativeSrc":"8070:18:65","nodeType":"YulAssignment","src":"8070:18:65","value":{"name":"pos","nativeSrc":"8085:3:65","nodeType":"YulIdentifier","src":"8085:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"8070:11:65","nodeType":"YulIdentifier","src":"8070:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7947:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8032:3:65","nodeType":"YulTypedName","src":"8032:3:65","type":""},{"name":"length","nativeSrc":"8037:6:65","nodeType":"YulTypedName","src":"8037:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8048:11:65","nodeType":"YulTypedName","src":"8048:11:65","type":""}],"src":"7947:147:65"},{"body":{"nativeSrc":"8162:186:65","nodeType":"YulBlock","src":"8162:186:65","statements":[{"nativeSrc":"8173:10:65","nodeType":"YulVariableDeclaration","src":"8173:10:65","value":{"kind":"number","nativeSrc":"8182:1:65","nodeType":"YulLiteral","src":"8182:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8177:1:65","nodeType":"YulTypedName","src":"8177:1:65","type":""}]},{"body":{"nativeSrc":"8242:63:65","nodeType":"YulBlock","src":"8242:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8267:3:65","nodeType":"YulIdentifier","src":"8267:3:65"},{"name":"i","nativeSrc":"8272:1:65","nodeType":"YulIdentifier","src":"8272:1:65"}],"functionName":{"name":"add","nativeSrc":"8263:3:65","nodeType":"YulIdentifier","src":"8263:3:65"},"nativeSrc":"8263:11:65","nodeType":"YulFunctionCall","src":"8263:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8286:3:65","nodeType":"YulIdentifier","src":"8286:3:65"},{"name":"i","nativeSrc":"8291:1:65","nodeType":"YulIdentifier","src":"8291:1:65"}],"functionName":{"name":"add","nativeSrc":"8282:3:65","nodeType":"YulIdentifier","src":"8282:3:65"},"nativeSrc":"8282:11:65","nodeType":"YulFunctionCall","src":"8282:11:65"}],"functionName":{"name":"mload","nativeSrc":"8276:5:65","nodeType":"YulIdentifier","src":"8276:5:65"},"nativeSrc":"8276:18:65","nodeType":"YulFunctionCall","src":"8276:18:65"}],"functionName":{"name":"mstore","nativeSrc":"8256:6:65","nodeType":"YulIdentifier","src":"8256:6:65"},"nativeSrc":"8256:39:65","nodeType":"YulFunctionCall","src":"8256:39:65"},"nativeSrc":"8256:39:65","nodeType":"YulExpressionStatement","src":"8256:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8203:1:65","nodeType":"YulIdentifier","src":"8203:1:65"},{"name":"length","nativeSrc":"8206:6:65","nodeType":"YulIdentifier","src":"8206:6:65"}],"functionName":{"name":"lt","nativeSrc":"8200:2:65","nodeType":"YulIdentifier","src":"8200:2:65"},"nativeSrc":"8200:13:65","nodeType":"YulFunctionCall","src":"8200:13:65"},"nativeSrc":"8192:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"8214:19:65","nodeType":"YulBlock","src":"8214:19:65","statements":[{"nativeSrc":"8216:15:65","nodeType":"YulAssignment","src":"8216:15:65","value":{"arguments":[{"name":"i","nativeSrc":"8225:1:65","nodeType":"YulIdentifier","src":"8225:1:65"},{"kind":"number","nativeSrc":"8228:2:65","nodeType":"YulLiteral","src":"8228:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8221:3:65","nodeType":"YulIdentifier","src":"8221:3:65"},"nativeSrc":"8221:10:65","nodeType":"YulFunctionCall","src":"8221:10:65"},"variableNames":[{"name":"i","nativeSrc":"8216:1:65","nodeType":"YulIdentifier","src":"8216:1:65"}]}]},"pre":{"nativeSrc":"8196:3:65","nodeType":"YulBlock","src":"8196:3:65","statements":[]},"src":"8192:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8325:3:65","nodeType":"YulIdentifier","src":"8325:3:65"},{"name":"length","nativeSrc":"8330:6:65","nodeType":"YulIdentifier","src":"8330:6:65"}],"functionName":{"name":"add","nativeSrc":"8321:3:65","nodeType":"YulIdentifier","src":"8321:3:65"},"nativeSrc":"8321:16:65","nodeType":"YulFunctionCall","src":"8321:16:65"},{"kind":"number","nativeSrc":"8339:1:65","nodeType":"YulLiteral","src":"8339:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8314:6:65","nodeType":"YulIdentifier","src":"8314:6:65"},"nativeSrc":"8314:27:65","nodeType":"YulFunctionCall","src":"8314:27:65"},"nativeSrc":"8314:27:65","nodeType":"YulExpressionStatement","src":"8314:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8100:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8144:3:65","nodeType":"YulTypedName","src":"8144:3:65","type":""},{"name":"dst","nativeSrc":"8149:3:65","nodeType":"YulTypedName","src":"8149:3:65","type":""},{"name":"length","nativeSrc":"8154:6:65","nodeType":"YulTypedName","src":"8154:6:65","type":""}],"src":"8100:248:65"},{"body":{"nativeSrc":"8462:278:65","nodeType":"YulBlock","src":"8462:278:65","statements":[{"nativeSrc":"8472:52:65","nodeType":"YulVariableDeclaration","src":"8472:52:65","value":{"arguments":[{"name":"value","nativeSrc":"8518:5:65","nodeType":"YulIdentifier","src":"8518:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"8486:31:65","nodeType":"YulIdentifier","src":"8486:31:65"},"nativeSrc":"8486:38:65","nodeType":"YulFunctionCall","src":"8486:38:65"},"variables":[{"name":"length","nativeSrc":"8476:6:65","nodeType":"YulTypedName","src":"8476:6:65","type":""}]},{"nativeSrc":"8533:95:65","nodeType":"YulAssignment","src":"8533:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"8616:3:65","nodeType":"YulIdentifier","src":"8616:3:65"},{"name":"length","nativeSrc":"8621:6:65","nodeType":"YulIdentifier","src":"8621:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8540:75:65","nodeType":"YulIdentifier","src":"8540:75:65"},"nativeSrc":"8540:88:65","nodeType":"YulFunctionCall","src":"8540:88:65"},"variableNames":[{"name":"pos","nativeSrc":"8533:3:65","nodeType":"YulIdentifier","src":"8533:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8676:5:65","nodeType":"YulIdentifier","src":"8676:5:65"},{"kind":"number","nativeSrc":"8683:4:65","nodeType":"YulLiteral","src":"8683:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8672:3:65","nodeType":"YulIdentifier","src":"8672:3:65"},"nativeSrc":"8672:16:65","nodeType":"YulFunctionCall","src":"8672:16:65"},{"name":"pos","nativeSrc":"8690:3:65","nodeType":"YulIdentifier","src":"8690:3:65"},{"name":"length","nativeSrc":"8695:6:65","nodeType":"YulIdentifier","src":"8695:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8637:34:65","nodeType":"YulIdentifier","src":"8637:34:65"},"nativeSrc":"8637:65:65","nodeType":"YulFunctionCall","src":"8637:65:65"},"nativeSrc":"8637:65:65","nodeType":"YulExpressionStatement","src":"8637:65:65"},{"nativeSrc":"8711:23:65","nodeType":"YulAssignment","src":"8711:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"8722:3:65","nodeType":"YulIdentifier","src":"8722:3:65"},{"name":"length","nativeSrc":"8727:6:65","nodeType":"YulIdentifier","src":"8727:6:65"}],"functionName":{"name":"add","nativeSrc":"8718:3:65","nodeType":"YulIdentifier","src":"8718:3:65"},"nativeSrc":"8718:16:65","nodeType":"YulFunctionCall","src":"8718:16:65"},"variableNames":[{"name":"end","nativeSrc":"8711:3:65","nodeType":"YulIdentifier","src":"8711:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8354:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8443:5:65","nodeType":"YulTypedName","src":"8443:5:65","type":""},{"name":"pos","nativeSrc":"8450:3:65","nodeType":"YulTypedName","src":"8450:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8458:3:65","nodeType":"YulTypedName","src":"8458:3:65","type":""}],"src":"8354:386:65"},{"body":{"nativeSrc":"8880:137:65","nodeType":"YulBlock","src":"8880:137:65","statements":[{"nativeSrc":"8891:100:65","nodeType":"YulAssignment","src":"8891:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"8978:6:65","nodeType":"YulIdentifier","src":"8978:6:65"},{"name":"pos","nativeSrc":"8987:3:65","nodeType":"YulIdentifier","src":"8987:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8898:79:65","nodeType":"YulIdentifier","src":"8898:79:65"},"nativeSrc":"8898:93:65","nodeType":"YulFunctionCall","src":"8898:93:65"},"variableNames":[{"name":"pos","nativeSrc":"8891:3:65","nodeType":"YulIdentifier","src":"8891:3:65"}]},{"nativeSrc":"9001:10:65","nodeType":"YulAssignment","src":"9001:10:65","value":{"name":"pos","nativeSrc":"9008:3:65","nodeType":"YulIdentifier","src":"9008:3:65"},"variableNames":[{"name":"end","nativeSrc":"9001:3:65","nodeType":"YulIdentifier","src":"9001:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8746:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8859:3:65","nodeType":"YulTypedName","src":"8859:3:65","type":""},{"name":"value0","nativeSrc":"8865:6:65","nodeType":"YulTypedName","src":"8865:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8876:3:65","nodeType":"YulTypedName","src":"8876:3:65","type":""}],"src":"8746:271:65"},{"body":{"nativeSrc":"9082:40:65","nodeType":"YulBlock","src":"9082:40:65","statements":[{"nativeSrc":"9093:22:65","nodeType":"YulAssignment","src":"9093:22:65","value":{"arguments":[{"name":"value","nativeSrc":"9109:5:65","nodeType":"YulIdentifier","src":"9109:5:65"}],"functionName":{"name":"mload","nativeSrc":"9103:5:65","nodeType":"YulIdentifier","src":"9103:5:65"},"nativeSrc":"9103:12:65","nodeType":"YulFunctionCall","src":"9103:12:65"},"variableNames":[{"name":"length","nativeSrc":"9093:6:65","nodeType":"YulIdentifier","src":"9093:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"9023:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9065:5:65","nodeType":"YulTypedName","src":"9065:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"9075:6:65","nodeType":"YulTypedName","src":"9075:6:65","type":""}],"src":"9023:99:65"},{"body":{"nativeSrc":"9176:54:65","nodeType":"YulBlock","src":"9176:54:65","statements":[{"nativeSrc":"9186:38:65","nodeType":"YulAssignment","src":"9186:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9204:5:65","nodeType":"YulIdentifier","src":"9204:5:65"},{"kind":"number","nativeSrc":"9211:2:65","nodeType":"YulLiteral","src":"9211:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9200:3:65","nodeType":"YulIdentifier","src":"9200:3:65"},"nativeSrc":"9200:14:65","nodeType":"YulFunctionCall","src":"9200:14:65"},{"arguments":[{"kind":"number","nativeSrc":"9220:2:65","nodeType":"YulLiteral","src":"9220:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9216:3:65","nodeType":"YulIdentifier","src":"9216:3:65"},"nativeSrc":"9216:7:65","nodeType":"YulFunctionCall","src":"9216:7:65"}],"functionName":{"name":"and","nativeSrc":"9196:3:65","nodeType":"YulIdentifier","src":"9196:3:65"},"nativeSrc":"9196:28:65","nodeType":"YulFunctionCall","src":"9196:28:65"},"variableNames":[{"name":"result","nativeSrc":"9186:6:65","nodeType":"YulIdentifier","src":"9186:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9128:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9159:5:65","nodeType":"YulTypedName","src":"9159:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"9169:6:65","nodeType":"YulTypedName","src":"9169:6:65","type":""}],"src":"9128:102:65"},{"body":{"nativeSrc":"9328:285:65","nodeType":"YulBlock","src":"9328:285:65","statements":[{"nativeSrc":"9338:53:65","nodeType":"YulVariableDeclaration","src":"9338:53:65","value":{"arguments":[{"name":"value","nativeSrc":"9385:5:65","nodeType":"YulIdentifier","src":"9385:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"9352:32:65","nodeType":"YulIdentifier","src":"9352:32:65"},"nativeSrc":"9352:39:65","nodeType":"YulFunctionCall","src":"9352:39:65"},"variables":[{"name":"length","nativeSrc":"9342:6:65","nodeType":"YulTypedName","src":"9342:6:65","type":""}]},{"nativeSrc":"9400:78:65","nodeType":"YulAssignment","src":"9400:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"9466:3:65","nodeType":"YulIdentifier","src":"9466:3:65"},{"name":"length","nativeSrc":"9471:6:65","nodeType":"YulIdentifier","src":"9471:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9407:58:65","nodeType":"YulIdentifier","src":"9407:58:65"},"nativeSrc":"9407:71:65","nodeType":"YulFunctionCall","src":"9407:71:65"},"variableNames":[{"name":"pos","nativeSrc":"9400:3:65","nodeType":"YulIdentifier","src":"9400:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9526:5:65","nodeType":"YulIdentifier","src":"9526:5:65"},{"kind":"number","nativeSrc":"9533:4:65","nodeType":"YulLiteral","src":"9533:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9522:3:65","nodeType":"YulIdentifier","src":"9522:3:65"},"nativeSrc":"9522:16:65","nodeType":"YulFunctionCall","src":"9522:16:65"},{"name":"pos","nativeSrc":"9540:3:65","nodeType":"YulIdentifier","src":"9540:3:65"},{"name":"length","nativeSrc":"9545:6:65","nodeType":"YulIdentifier","src":"9545:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9487:34:65","nodeType":"YulIdentifier","src":"9487:34:65"},"nativeSrc":"9487:65:65","nodeType":"YulFunctionCall","src":"9487:65:65"},"nativeSrc":"9487:65:65","nodeType":"YulExpressionStatement","src":"9487:65:65"},{"nativeSrc":"9561:46:65","nodeType":"YulAssignment","src":"9561:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"9572:3:65","nodeType":"YulIdentifier","src":"9572:3:65"},{"arguments":[{"name":"length","nativeSrc":"9599:6:65","nodeType":"YulIdentifier","src":"9599:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9577:21:65","nodeType":"YulIdentifier","src":"9577:21:65"},"nativeSrc":"9577:29:65","nodeType":"YulFunctionCall","src":"9577:29:65"}],"functionName":{"name":"add","nativeSrc":"9568:3:65","nodeType":"YulIdentifier","src":"9568:3:65"},"nativeSrc":"9568:39:65","nodeType":"YulFunctionCall","src":"9568:39:65"},"variableNames":[{"name":"end","nativeSrc":"9561:3:65","nodeType":"YulIdentifier","src":"9561:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9236:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9309:5:65","nodeType":"YulTypedName","src":"9309:5:65","type":""},{"name":"pos","nativeSrc":"9316:3:65","nodeType":"YulTypedName","src":"9316:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9324:3:65","nodeType":"YulTypedName","src":"9324:3:65","type":""}],"src":"9236:377:65"},{"body":{"nativeSrc":"9737:195:65","nodeType":"YulBlock","src":"9737:195:65","statements":[{"nativeSrc":"9747:26:65","nodeType":"YulAssignment","src":"9747:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"9759:9:65","nodeType":"YulIdentifier","src":"9759:9:65"},{"kind":"number","nativeSrc":"9770:2:65","nodeType":"YulLiteral","src":"9770:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9755:3:65","nodeType":"YulIdentifier","src":"9755:3:65"},"nativeSrc":"9755:18:65","nodeType":"YulFunctionCall","src":"9755:18:65"},"variableNames":[{"name":"tail","nativeSrc":"9747:4:65","nodeType":"YulIdentifier","src":"9747:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9794:9:65","nodeType":"YulIdentifier","src":"9794:9:65"},{"kind":"number","nativeSrc":"9805:1:65","nodeType":"YulLiteral","src":"9805:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9790:3:65","nodeType":"YulIdentifier","src":"9790:3:65"},"nativeSrc":"9790:17:65","nodeType":"YulFunctionCall","src":"9790:17:65"},{"arguments":[{"name":"tail","nativeSrc":"9813:4:65","nodeType":"YulIdentifier","src":"9813:4:65"},{"name":"headStart","nativeSrc":"9819:9:65","nodeType":"YulIdentifier","src":"9819:9:65"}],"functionName":{"name":"sub","nativeSrc":"9809:3:65","nodeType":"YulIdentifier","src":"9809:3:65"},"nativeSrc":"9809:20:65","nodeType":"YulFunctionCall","src":"9809:20:65"}],"functionName":{"name":"mstore","nativeSrc":"9783:6:65","nodeType":"YulIdentifier","src":"9783:6:65"},"nativeSrc":"9783:47:65","nodeType":"YulFunctionCall","src":"9783:47:65"},"nativeSrc":"9783:47:65","nodeType":"YulExpressionStatement","src":"9783:47:65"},{"nativeSrc":"9839:86:65","nodeType":"YulAssignment","src":"9839:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"9911:6:65","nodeType":"YulIdentifier","src":"9911:6:65"},{"name":"tail","nativeSrc":"9920:4:65","nodeType":"YulIdentifier","src":"9920:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9847:63:65","nodeType":"YulIdentifier","src":"9847:63:65"},"nativeSrc":"9847:78:65","nodeType":"YulFunctionCall","src":"9847:78:65"},"variableNames":[{"name":"tail","nativeSrc":"9839:4:65","nodeType":"YulIdentifier","src":"9839:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9619:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9709:9:65","nodeType":"YulTypedName","src":"9709:9:65","type":""},{"name":"value0","nativeSrc":"9721:6:65","nodeType":"YulTypedName","src":"9721:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9732:4:65","nodeType":"YulTypedName","src":"9732:4:65","type":""}],"src":"9619:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n        mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n        mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n        mstore(add(memPtr, 64), \"et\")\n\n    }\n\n    function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n        store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n        end := add(pos, 96)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new admin is the zero a\")\n\n        mstore(add(memPtr, 32), \"ddress\")\n\n    }\n\n    function abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c3578063f851a440146100e35761005d565b3661005d5761005b6100f8565b005b61005b6100f8565b34801561007157600080fd5b5061005b61008036600461058c565b610112565b61005b610093366004610607565b61014f565b3480156100a457600080fd5b506100ad6101b6565b6040516100ba9190610672565b60405180910390f35b3480156100cf57600080fd5b5061005b6100de36600461058c565b6101e7565b3480156100ef57600080fd5b506100ad610207565b610100610228565b61011061010b610260565b61026a565b565b61011a61028e565b6001600160a01b0316330361014757610144816040518060200160405280600081525060006102c1565b50565b6101446100f8565b61015761028e565b6001600160a01b031633036101ae576101a98383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506102c1915050565b505050565b6101a96100f8565b60006101c061028e565b6001600160a01b031633036101dc576101d7610260565b905090565b6101e46100f8565b90565b6101ef61028e565b6001600160a01b0316330361014757610144816102ec565b600061021161028e565b6001600160a01b031633036101dc576101d761028e565b61023061028e565b6001600160a01b031633036101105760405162461bcd60e51b815260040161025790610680565b60405180910390fd5b60006101d7610335565b3660008037600080366000845af43d6000803e808015610289573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6102ca8361035d565b6000825111806102d75750805b156101a9576102e6838361039d565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61031561028e565b826040516103249291906106ec565b60405180910390a1610144816103cb565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102b2565b61036681610435565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606103c283836040518060600160405280602781526020016108a060279139610483565b90505b92915050565b6001600160a01b0381166103f15760405162461bcd60e51b81526004016102579061074d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61045c5760405162461bcd60e51b8152600401610257906107a7565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610414565b60606001600160a01b0384163b6104ac5760405162461bcd60e51b8152600401610257906107fa565b600080856001600160a01b0316856040516104c79190610850565b600060405180830381855af49150503d8060008114610502576040519150601f19603f3d011682016040523d82523d6000602084013e610507565b606091505b5091509150610517828286610523565b925050505b9392505050565b6060831561053257508161051c565b8251156105425782518084602001fd5b8160405162461bcd60e51b8152600401610257919061088e565b60006001600160a01b0382166103c5565b6105768161055c565b811461014457600080fd5b80356103c58161056d565b6000602082840312156105a1576105a1600080fd5b60006105ad8484610581565b949350505050565b60008083601f8401126105ca576105ca600080fd5b50813567ffffffffffffffff8111156105e5576105e5600080fd5b60208301915083600182028301111561060057610600600080fd5b9250929050565b60008060006040848603121561061f5761061f600080fd5b600061062b8686610581565b935050602084013567ffffffffffffffff81111561064b5761064b600080fd5b610657868287016105b5565b92509250509250925092565b61066c8161055c565b82525050565b602081016103c58284610663565b602080825281016103c581604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b604081016106fa8285610663565b61051c6020830184610663565b602681526000602082017f455243313936373a206e65772061646d696e20697320746865207a65726f206181526564647265737360d01b602082015291505b5060400190565b602080825281016103c581610707565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529150610746565b602080825281016103c58161075d565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b60208201529150610746565b602080825281016103c5816107b7565b60005b8381101561082557818101518382015260200161080d565b50506000910152565b6000610838825190565b61084681856020860161080a565b9290920192915050565b600061051c828461082e565b6000610866825190565b80845260208401935061087d81856020860161080a565b601f01601f19169290920192915050565b602080825281016103c2818461085c56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e444297db3ae5fc9a9eefc71ca740bbeafc20c6972d32c6b51d1effee1baf3164736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x8F283970 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xE3 JUMPI PUSH2 0x5D JUMP JUMPDEST CALLDATASIZE PUSH2 0x5D JUMPI PUSH2 0x5B PUSH2 0xF8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5B PUSH2 0xF8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0x80 CALLDATASIZE PUSH1 0x4 PUSH2 0x58C JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH2 0x5B PUSH2 0x93 CALLDATASIZE PUSH1 0x4 PUSH2 0x607 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x1B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x58C JUMP JUMPDEST PUSH2 0x1E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD PUSH2 0x207 JUMP JUMPDEST PUSH2 0x100 PUSH2 0x228 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x10B PUSH2 0x260 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x11A PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x147 JUMPI PUSH2 0x144 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x2C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x144 PUSH2 0xF8 JUMP JUMPDEST PUSH2 0x157 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1AE JUMPI PUSH2 0x1A9 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x2C1 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1A9 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1DC JUMPI PUSH2 0x1D7 PUSH2 0x260 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1E4 PUSH2 0xF8 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1EF PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x147 JUMPI PUSH2 0x144 DUP2 PUSH2 0x2EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x211 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1DC JUMPI PUSH2 0x1D7 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x230 PUSH2 0x28E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x110 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x680 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D7 PUSH2 0x335 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x289 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CA DUP4 PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x2D7 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x2E6 DUP4 DUP4 PUSH2 0x39D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x315 PUSH2 0x28E JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x324 SWAP3 SWAP2 SWAP1 PUSH2 0x6EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x144 DUP2 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x2B2 JUMP JUMPDEST PUSH2 0x366 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3C2 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8A0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x483 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x74D JUMP JUMPDEST DUP1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x7A7 JUMP JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x414 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x4AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP1 PUSH2 0x7FA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x4C7 SWAP2 SWAP1 PUSH2 0x850 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x507 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x517 DUP3 DUP3 DUP7 PUSH2 0x523 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x532 JUMPI POP DUP2 PUSH2 0x51C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x542 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x88E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x576 DUP2 PUSH2 0x55C JUMP JUMPDEST DUP2 EQ PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3C5 DUP2 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A1 JUMPI PUSH2 0x5A1 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5AD DUP5 DUP5 PUSH2 0x581 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x5CA JUMPI PUSH2 0x5CA PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5E5 JUMPI PUSH2 0x5E5 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x600 JUMPI PUSH2 0x600 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x61F JUMPI PUSH2 0x61F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x62B DUP7 DUP7 PUSH2 0x581 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x64B JUMPI PUSH2 0x64B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP3 DUP8 ADD PUSH2 0x5B5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x66C DUP2 PUSH2 0x55C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x3C5 DUP3 DUP5 PUSH2 0x663 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x6FA DUP3 DUP6 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x51C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x663 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 DUP2 MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x707 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x746 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x75D JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x746 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C5 DUP2 PUSH2 0x7B7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x825 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x80D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x838 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x846 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x80A JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x51C DUP3 DUP5 PUSH2 0x82E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x866 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x87D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x80A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3C2 DUP2 DUP5 PUSH2 0x85C JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212204E4442 SWAP8 0xDB GASPRICE 0xE5 0xFC SWAP11 SWAP15 0xEF 0xC7 SHR 0xA7 BLOCKHASH 0xBB 0xEA 0xFC KECCAK256 0xC6 SWAP8 0x2D ORIGIN 0xC6 0xB5 SAR 0x1E SELFDESTRUCT 0xEE SHL 0xAF BALANCE PUSH5 0x736F6C6343 STOP ADDMOD NOT STOP CALLER ","sourceMap":"1634:3556:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:57;:9;:11::i;:::-;1634:3556:60;;2680:11:57;:9;:11::i;4032:134:60:-;;;;;;;;;;-1:-1:-1;4032:134:60;;;;;:::i;:::-;;:::i;4542:164::-;;;;;;:::i;:::-;;:::i;3435:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:103;;;;;;;;;;-1:-1:-1;3769:103:60;;;;;:::i;:::-;;:::i;2879:96::-;;;;;;;;;;;;;:::i;2327:110:57:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4032:134:60:-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:60;:10;:25;2332:99;;4105:54:::1;4123:17;4142:9;;;;;;;;;;;::::0;4153:5:::1;4105:17;:54::i;:::-;4032:134:::0;:::o;2332:99::-;2409:11;:9;:11::i;4542:164::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:60;:10;:25;2332:99;;4651:48:::1;4669:17;4688:4;;4651:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4694:4:60::1;::::0;-1:-1:-1;4651:17:60::1;::::0;-1:-1:-1;;4651:48:60:i:1;:::-;4542:164:::0;;;:::o;2332:99::-;2409:11;:9;:11::i;3435:129::-;3487:23;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:60;:10;:25;2332:99;;3540:17:::1;:15;:17::i;:::-;3522:35;;3435:129:::0;:::o;2332:99::-;2409:11;:9;:11::i;:::-;3435:129;:::o;3769:103::-;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:60;:10;:25;2332:99;;3843:22:::1;3856:8;3843:12;:22::i;2879:96::-:0;2922:14;2350:11;:9;:11::i;:::-;-1:-1:-1;;;;;2336:25:60;:10;:25;2332:99;;2957:11:::1;:9;:11::i;4981:207::-:0;5066:11;:9;:11::i;:::-;-1:-1:-1;;;;;5052:25:60;:10;:25;5044:104;;;;-1:-1:-1;;;5044:104:60;;;;;;;:::i;:::-;;;;;;;;1240:140:55;1307:12;1338:35;:33;:35::i;953:895:57:-;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;4113:130:56;4165:7;3847:66;4191:39;:45;-1:-1:-1;;;;;4191:45:56;;4113:130;-1:-1:-1;4113:130:56:o;2188:295::-;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;4637:135::-;4701:35;4714:11;:9;:11::i;:::-;4727:8;4701:35;;;;;;;:::i;:::-;;;;;;;;4746:19;4756:8;4746:9;:19::i;1306:140::-;1359:7;1035:66;1385:48;1599:147:63;1902:152:56;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:56;;;;;;;;1902:152;:::o;6575:198:61:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;4325:201:56:-;-1:-1:-1;;;;;4388:22:56;;4380:73;;;;-1:-1:-1;;;4380:73:56;;;;;;;:::i;:::-;4511:8;3847:66;4463:39;:56;;-1:-1:-1;;;;;;4463:56:56;-1:-1:-1;;;;;4463:56:56;;;;;;;;;;-1:-1:-1;4325:201:56:o;1537:259::-;-1:-1:-1;;;;;1470:19:61;;;1610:95:56;;;;-1:-1:-1;;;1610:95:56;;;;;;;:::i;:::-;1772:17;1035:66;1715:48;1599:147:63;6959:387:61;7100:12;-1:-1:-1;;;;;1470:19:61;;;7124:69;;;;-1:-1:-1;;;7124:69:61;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:61;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:61;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:61;;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:65:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:65;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:65;;;3575:29;3965:12;;;3617:366;4414:332;4573:2;4558:18;;4586:71;4562:9;4630:6;4586:71;:::i;:::-;4667:72;4735:2;4724:9;4720:18;4711:6;4667:72;:::i;4983:366::-;5210:2;3252:19;;5125:3;3304:4;3295:14;;4892:34;4869:58;;-1:-1:-1;;;4956:2:65;4944:15;;4937:33;5139:74;-1:-1:-1;5222:93:65;-1:-1:-1;5340:2:65;5331:12;;4983:366::o;5355:419::-;5559:2;5572:47;;;5544:18;;5636:131;5544:18;5636:131;:::i;6018:366::-;6245:2;3252:19;;6160:3;3304:4;3295:14;;5920:34;5897:58;;-1:-1:-1;;;5984:2:65;5972:15;;5965:40;6174:74;-1:-1:-1;6257:93:65;5780:232;6390:419;6594:2;6607:47;;;6579:18;;6671:131;6579:18;6671:131;:::i;7046:366::-;7273:2;3252:19;;7188:3;3304:4;3295:14;;6955:34;6932:58;;-1:-1:-1;;;7019:2:65;7007:15;;7000:33;7202:74;-1:-1:-1;7285:93:65;6815:225;7418:419;7622:2;7635:47;;;7607:18;;7699:131;7607:18;7699:131;:::i;8100:248::-;8182:1;8192:113;8206:6;8203:1;8200:13;8192:113;;;8282:11;;;8276:18;8263:11;;;8256:39;8228:2;8221:10;8192:113;;;-1:-1:-1;;8339:1:65;8321:16;;8314:27;8100:248::o;8354:386::-;8458:3;8486:38;8518:5;7922:12;;7843:98;8486:38;8637:65;8695:6;8690:3;8683:4;8676:5;8672:16;8637:65;:::i;:::-;8718:16;;;;;8354:386;-1:-1:-1;;8354:386:65:o;8746:271::-;8876:3;8898:93;8987:3;8978:6;8898:93;:::i;9236:377::-;9324:3;9352:39;9385:5;7922:12;;7843:98;9352:39;3252:19;;;3304:4;3295:14;;9400:78;;9487:65;9545:6;9540:3;9533:4;9526:5;9522:16;9487:65;:::i;:::-;9220:2;9200:14;-1:-1:-1;;9196:28:65;9568:39;;;;;;-1:-1:-1;;9236:377:65:o;9619:313::-;9770:2;9783:47;;;9755:18;;9847:78;9755:18;9911:6;9847:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"460000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","changeAdmin(address)":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _changeAdmin(admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\\n     */\\n    function changeAdmin(address newAdmin) external virtual ifAdmin {\\n        _changeAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n}\\n\",\"keccak256\":\"0x140055a64cf579d622e04f5a198595832bf2cb193cd0005f4f2d4d61ca906253\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"devdoc":{"details":"Collection of functions related to the address type","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122098184856a7c0835282c3ff3bc5a15de6237c573cde01cf1784d537f753d6edd564736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 XOR BASEFEE JUMP 0xA7 0xC0 DUP4 MSTORE DUP3 0xC3 SELFDESTRUCT EXTCODESIZE 0xC5 LOG1 TSTORE 0xE6 0x23 PUSH29 0x573CDE01CF1784D537F753D6EDD564736F6C6343000819003300000000 ","sourceMap":"199:8061:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:8061:61;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122098184856a7c0835282c3ff3bc5a15de6237c573cde01cf1784d537f753d6edd564736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 XOR BASEFEE JUMP 0xA7 0xC0 DUP4 MSTORE DUP3 0xC3 SELFDESTRUCT EXTCODESIZE 0xC5 LOG1 TSTORE 0xE6 0x23 PUSH29 0x573CDE01CF1784D537F753D6EDD564736F6C6343000819003300000000 ","sourceMap":"199:8061:61:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"functionCall(address,bytes memory)":"infinite","functionCall(address,bytes memory,string memory)":"infinite","functionCallWithValue(address,bytes memory,uint256)":"infinite","functionCallWithValue(address,bytes memory,uint256,string memory)":"infinite","functionDelegateCall(address,bytes memory)":"infinite","functionDelegateCall(address,bytes memory,string memory)":"infinite","functionStaticCall(address,bytes memory)":"infinite","functionStaticCall(address,bytes memory,string memory)":"infinite","isContract(address)":"infinite","sendValue(address payable,uint256)":"infinite","verifyCallResult(bool,bytes memory,string memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Provides information about the current execution context, including the\\n * sender of the transaction and its data. While these are generally available\\n * via msg.sender and msg.data, they should not be accessed in such a direct\\n * manner, since when dealing with meta-transactions the account sending and\\n * paying for execution may not be the actual sender (as far as an application\\n * is concerned).\\n *\\n * This contract is only required for intermediate, library-like contracts.\\n */\\nabstract contract Context {\\n    function _msgSender() internal view virtual returns (address) {\\n        return msg.sender;\\n    }\\n\\n    function _msgData() internal view virtual returns (bytes calldata) {\\n        return msg.data;\\n    }\\n}\\n\",\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"devdoc":{"details":"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208761d5803ff179efb1e7368f0bd3ec1aa9fd2e088a2f991316bbafaee0d7e83164736f6c63430008190033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 PUSH2 0xD580 EXTCODEHASH CALL PUSH26 0xEFB1E7368F0BD3EC1AA9FD2E088A2F991316BBAFAEE0D7E83164 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1264:1219:63:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1264:1219:63;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208761d5803ff179efb1e7368f0bd3ec1aa9fd2e088a2f991316bbafaee0d7e83164736f6c63430008190033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 PUSH2 0xD580 EXTCODEHASH CALL PUSH26 0xEFB1E7368F0BD3EC1AA9FD2E088A2F991316BBAFAEE0D7E83164 PUSH20 0x6F6C634300081900330000000000000000000000 ","sourceMap":"1264:1219:63:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"getAddressSlot(bytes32)":"infinite","getBooleanSlot(bytes32)":"infinite","getBytes32Slot(bytes32)":"infinite","getUint256Slot(bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol":{"OptimizedTransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"devdoc":{"details":"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \"admin cannot fallback to proxy target\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.","events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is upgraded."},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_12039":{"entryPoint":null,"id":12039,"parameterSlots":2,"returnSlots":0},"@_13174":{"entryPoint":null,"id":13174,"parameterSlots":3,"returnSlots":0},"@_setImplementation_12108":{"entryPoint":446,"id":12108,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_12153":{"entryPoint":292,"id":12153,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_12123":{"entryPoint":336,"id":12123,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_12969":{"entryPoint":400,"id":12969,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_13004":{"entryPoint":541,"id":13004,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1},"@isContract_12759":{"entryPoint":null,"id":12759,"parameterSlots":1,"returnSlots":1},"@verifyCallResult_13035":{"entryPoint":702,"id":13035,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":982,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1047,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1091,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1260,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1478,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1524,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1302,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1395,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1512,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":1275,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1379,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1462,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":876,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":904,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1219,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":759,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":946,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":832,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x01":{"entryPoint":1238,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":1197,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":776,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9109:65","nodeType":"YulBlock","src":"0:9109:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"759:80:65","nodeType":"YulBlock","src":"759:80:65","statements":[{"nativeSrc":"769:22:65","nodeType":"YulAssignment","src":"769:22:65","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:65","nodeType":"YulIdentifier","src":"784:6:65"}],"functionName":{"name":"mload","nativeSrc":"778:5:65","nodeType":"YulIdentifier","src":"778:5:65"},"nativeSrc":"778:13:65","nodeType":"YulFunctionCall","src":"778:13:65"},"variableNames":[{"name":"value","nativeSrc":"769:5:65","nodeType":"YulIdentifier","src":"769:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:65","nodeType":"YulIdentifier","src":"827:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:65","nodeType":"YulIdentifier","src":"800:26:65"},"nativeSrc":"800:33:65","nodeType":"YulFunctionCall","src":"800:33:65"},"nativeSrc":"800:33:65","nodeType":"YulExpressionStatement","src":"800:33:65"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:65","nodeType":"YulTypedName","src":"737:6:65","type":""},{"name":"end","nativeSrc":"745:3:65","nodeType":"YulTypedName","src":"745:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:65","nodeType":"YulTypedName","src":"753:5:65","type":""}],"src":"696:143:65"},{"body":{"nativeSrc":"934:28:65","nodeType":"YulBlock","src":"934:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:65","nodeType":"YulLiteral","src":"951:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:65","nodeType":"YulLiteral","src":"954:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:65","nodeType":"YulIdentifier","src":"944:6:65"},"nativeSrc":"944:12:65","nodeType":"YulFunctionCall","src":"944:12:65"},"nativeSrc":"944:12:65","nodeType":"YulExpressionStatement","src":"944:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:65","nodeType":"YulFunctionDefinition","src":"845:117:65"},{"body":{"nativeSrc":"1057:28:65","nodeType":"YulBlock","src":"1057:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:65","nodeType":"YulLiteral","src":"1074:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:65","nodeType":"YulLiteral","src":"1077:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:65","nodeType":"YulIdentifier","src":"1067:6:65"},"nativeSrc":"1067:12:65","nodeType":"YulFunctionCall","src":"1067:12:65"},"nativeSrc":"1067:12:65","nodeType":"YulExpressionStatement","src":"1067:12:65"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:65","nodeType":"YulFunctionDefinition","src":"968:117:65"},{"body":{"nativeSrc":"1139:54:65","nodeType":"YulBlock","src":"1139:54:65","statements":[{"nativeSrc":"1149:38:65","nodeType":"YulAssignment","src":"1149:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:65","nodeType":"YulIdentifier","src":"1167:5:65"},{"kind":"number","nativeSrc":"1174:2:65","nodeType":"YulLiteral","src":"1174:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:65","nodeType":"YulIdentifier","src":"1163:3:65"},"nativeSrc":"1163:14:65","nodeType":"YulFunctionCall","src":"1163:14:65"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:65","nodeType":"YulLiteral","src":"1183:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:65","nodeType":"YulIdentifier","src":"1179:3:65"},"nativeSrc":"1179:7:65","nodeType":"YulFunctionCall","src":"1179:7:65"}],"functionName":{"name":"and","nativeSrc":"1159:3:65","nodeType":"YulIdentifier","src":"1159:3:65"},"nativeSrc":"1159:28:65","nodeType":"YulFunctionCall","src":"1159:28:65"},"variableNames":[{"name":"result","nativeSrc":"1149:6:65","nodeType":"YulIdentifier","src":"1149:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:65","nodeType":"YulTypedName","src":"1122:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:65","nodeType":"YulTypedName","src":"1132:6:65","type":""}],"src":"1091:102:65"},{"body":{"nativeSrc":"1227:152:65","nodeType":"YulBlock","src":"1227:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:65","nodeType":"YulLiteral","src":"1244:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:65","nodeType":"YulLiteral","src":"1247:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:65","nodeType":"YulIdentifier","src":"1237:6:65"},"nativeSrc":"1237:88:65","nodeType":"YulFunctionCall","src":"1237:88:65"},"nativeSrc":"1237:88:65","nodeType":"YulExpressionStatement","src":"1237:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:65","nodeType":"YulLiteral","src":"1341:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:65","nodeType":"YulLiteral","src":"1344:4:65","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:65","nodeType":"YulIdentifier","src":"1334:6:65"},"nativeSrc":"1334:15:65","nodeType":"YulFunctionCall","src":"1334:15:65"},"nativeSrc":"1334:15:65","nodeType":"YulExpressionStatement","src":"1334:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:65","nodeType":"YulLiteral","src":"1365:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:65","nodeType":"YulLiteral","src":"1368:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:65","nodeType":"YulIdentifier","src":"1358:6:65"},"nativeSrc":"1358:15:65","nodeType":"YulFunctionCall","src":"1358:15:65"},"nativeSrc":"1358:15:65","nodeType":"YulExpressionStatement","src":"1358:15:65"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:65","nodeType":"YulFunctionDefinition","src":"1199:180:65"},{"body":{"nativeSrc":"1428:238:65","nodeType":"YulBlock","src":"1428:238:65","statements":[{"nativeSrc":"1438:58:65","nodeType":"YulVariableDeclaration","src":"1438:58:65","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:65","nodeType":"YulIdentifier","src":"1460:6:65"},{"arguments":[{"name":"size","nativeSrc":"1490:4:65","nodeType":"YulIdentifier","src":"1490:4:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:65","nodeType":"YulIdentifier","src":"1468:21:65"},"nativeSrc":"1468:27:65","nodeType":"YulFunctionCall","src":"1468:27:65"}],"functionName":{"name":"add","nativeSrc":"1456:3:65","nodeType":"YulIdentifier","src":"1456:3:65"},"nativeSrc":"1456:40:65","nodeType":"YulFunctionCall","src":"1456:40:65"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:65","nodeType":"YulTypedName","src":"1442:10:65","type":""}]},{"body":{"nativeSrc":"1607:22:65","nodeType":"YulBlock","src":"1607:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:65","nodeType":"YulIdentifier","src":"1609:16:65"},"nativeSrc":"1609:18:65","nodeType":"YulFunctionCall","src":"1609:18:65"},"nativeSrc":"1609:18:65","nodeType":"YulExpressionStatement","src":"1609:18:65"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:65","nodeType":"YulIdentifier","src":"1550:10:65"},{"kind":"number","nativeSrc":"1562:18:65","nodeType":"YulLiteral","src":"1562:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:65","nodeType":"YulIdentifier","src":"1547:2:65"},"nativeSrc":"1547:34:65","nodeType":"YulFunctionCall","src":"1547:34:65"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:65","nodeType":"YulIdentifier","src":"1586:10:65"},{"name":"memPtr","nativeSrc":"1598:6:65","nodeType":"YulIdentifier","src":"1598:6:65"}],"functionName":{"name":"lt","nativeSrc":"1583:2:65","nodeType":"YulIdentifier","src":"1583:2:65"},"nativeSrc":"1583:22:65","nodeType":"YulFunctionCall","src":"1583:22:65"}],"functionName":{"name":"or","nativeSrc":"1544:2:65","nodeType":"YulIdentifier","src":"1544:2:65"},"nativeSrc":"1544:62:65","nodeType":"YulFunctionCall","src":"1544:62:65"},"nativeSrc":"1541:88:65","nodeType":"YulIf","src":"1541:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:65","nodeType":"YulLiteral","src":"1645:2:65","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:65","nodeType":"YulIdentifier","src":"1649:10:65"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:65","nodeType":"YulIdentifier","src":"1638:6:65"},"nativeSrc":"1638:22:65","nodeType":"YulFunctionCall","src":"1638:22:65"},"nativeSrc":"1638:22:65","nodeType":"YulExpressionStatement","src":"1638:22:65"}]},"name":"finalize_allocation","nativeSrc":"1385:281:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:65","nodeType":"YulTypedName","src":"1414:6:65","type":""},{"name":"size","nativeSrc":"1422:4:65","nodeType":"YulTypedName","src":"1422:4:65","type":""}],"src":"1385:281:65"},{"body":{"nativeSrc":"1713:88:65","nodeType":"YulBlock","src":"1713:88:65","statements":[{"nativeSrc":"1723:30:65","nodeType":"YulAssignment","src":"1723:30:65","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:65","nodeType":"YulIdentifier","src":"1733:18:65"},"nativeSrc":"1733:20:65","nodeType":"YulFunctionCall","src":"1733:20:65"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:65","nodeType":"YulIdentifier","src":"1723:6:65"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:65","nodeType":"YulIdentifier","src":"1782:6:65"},{"name":"size","nativeSrc":"1790:4:65","nodeType":"YulIdentifier","src":"1790:4:65"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:65","nodeType":"YulIdentifier","src":"1762:19:65"},"nativeSrc":"1762:33:65","nodeType":"YulFunctionCall","src":"1762:33:65"},"nativeSrc":"1762:33:65","nodeType":"YulExpressionStatement","src":"1762:33:65"}]},"name":"allocate_memory","nativeSrc":"1672:129:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:65","nodeType":"YulTypedName","src":"1697:4:65","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:65","nodeType":"YulTypedName","src":"1706:6:65","type":""}],"src":"1672:129:65"},{"body":{"nativeSrc":"1873:241:65","nodeType":"YulBlock","src":"1873:241:65","statements":[{"body":{"nativeSrc":"1978:22:65","nodeType":"YulBlock","src":"1978:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:65","nodeType":"YulIdentifier","src":"1980:16:65"},"nativeSrc":"1980:18:65","nodeType":"YulFunctionCall","src":"1980:18:65"},"nativeSrc":"1980:18:65","nodeType":"YulExpressionStatement","src":"1980:18:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:65","nodeType":"YulIdentifier","src":"1950:6:65"},{"kind":"number","nativeSrc":"1958:18:65","nodeType":"YulLiteral","src":"1958:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:65","nodeType":"YulIdentifier","src":"1947:2:65"},"nativeSrc":"1947:30:65","nodeType":"YulFunctionCall","src":"1947:30:65"},"nativeSrc":"1944:56:65","nodeType":"YulIf","src":"1944:56:65"},{"nativeSrc":"2010:37:65","nodeType":"YulAssignment","src":"2010:37:65","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:65","nodeType":"YulIdentifier","src":"2040:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:65","nodeType":"YulIdentifier","src":"2018:21:65"},"nativeSrc":"2018:29:65","nodeType":"YulFunctionCall","src":"2018:29:65"},"variableNames":[{"name":"size","nativeSrc":"2010:4:65","nodeType":"YulIdentifier","src":"2010:4:65"}]},{"nativeSrc":"2084:23:65","nodeType":"YulAssignment","src":"2084:23:65","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:65","nodeType":"YulIdentifier","src":"2096:4:65"},{"kind":"number","nativeSrc":"2102:4:65","nodeType":"YulLiteral","src":"2102:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:65","nodeType":"YulIdentifier","src":"2092:3:65"},"nativeSrc":"2092:15:65","nodeType":"YulFunctionCall","src":"2092:15:65"},"variableNames":[{"name":"size","nativeSrc":"2084:4:65","nodeType":"YulIdentifier","src":"2084:4:65"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:65","nodeType":"YulTypedName","src":"1857:6:65","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:65","nodeType":"YulTypedName","src":"1868:4:65","type":""}],"src":"1807:307:65"},{"body":{"nativeSrc":"2182:186:65","nodeType":"YulBlock","src":"2182:186:65","statements":[{"nativeSrc":"2193:10:65","nodeType":"YulVariableDeclaration","src":"2193:10:65","value":{"kind":"number","nativeSrc":"2202:1:65","nodeType":"YulLiteral","src":"2202:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:65","nodeType":"YulTypedName","src":"2197:1:65","type":""}]},{"body":{"nativeSrc":"2262:63:65","nodeType":"YulBlock","src":"2262:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:65","nodeType":"YulIdentifier","src":"2287:3:65"},{"name":"i","nativeSrc":"2292:1:65","nodeType":"YulIdentifier","src":"2292:1:65"}],"functionName":{"name":"add","nativeSrc":"2283:3:65","nodeType":"YulIdentifier","src":"2283:3:65"},"nativeSrc":"2283:11:65","nodeType":"YulFunctionCall","src":"2283:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:65","nodeType":"YulIdentifier","src":"2306:3:65"},{"name":"i","nativeSrc":"2311:1:65","nodeType":"YulIdentifier","src":"2311:1:65"}],"functionName":{"name":"add","nativeSrc":"2302:3:65","nodeType":"YulIdentifier","src":"2302:3:65"},"nativeSrc":"2302:11:65","nodeType":"YulFunctionCall","src":"2302:11:65"}],"functionName":{"name":"mload","nativeSrc":"2296:5:65","nodeType":"YulIdentifier","src":"2296:5:65"},"nativeSrc":"2296:18:65","nodeType":"YulFunctionCall","src":"2296:18:65"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:65","nodeType":"YulIdentifier","src":"2276:6:65"},"nativeSrc":"2276:39:65","nodeType":"YulFunctionCall","src":"2276:39:65"},"nativeSrc":"2276:39:65","nodeType":"YulExpressionStatement","src":"2276:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:65","nodeType":"YulIdentifier","src":"2223:1:65"},{"name":"length","nativeSrc":"2226:6:65","nodeType":"YulIdentifier","src":"2226:6:65"}],"functionName":{"name":"lt","nativeSrc":"2220:2:65","nodeType":"YulIdentifier","src":"2220:2:65"},"nativeSrc":"2220:13:65","nodeType":"YulFunctionCall","src":"2220:13:65"},"nativeSrc":"2212:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:65","nodeType":"YulBlock","src":"2234:19:65","statements":[{"nativeSrc":"2236:15:65","nodeType":"YulAssignment","src":"2236:15:65","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:65","nodeType":"YulIdentifier","src":"2245:1:65"},{"kind":"number","nativeSrc":"2248:2:65","nodeType":"YulLiteral","src":"2248:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:65","nodeType":"YulIdentifier","src":"2241:3:65"},"nativeSrc":"2241:10:65","nodeType":"YulFunctionCall","src":"2241:10:65"},"variableNames":[{"name":"i","nativeSrc":"2236:1:65","nodeType":"YulIdentifier","src":"2236:1:65"}]}]},"pre":{"nativeSrc":"2216:3:65","nodeType":"YulBlock","src":"2216:3:65","statements":[]},"src":"2212:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:65","nodeType":"YulIdentifier","src":"2345:3:65"},{"name":"length","nativeSrc":"2350:6:65","nodeType":"YulIdentifier","src":"2350:6:65"}],"functionName":{"name":"add","nativeSrc":"2341:3:65","nodeType":"YulIdentifier","src":"2341:3:65"},"nativeSrc":"2341:16:65","nodeType":"YulFunctionCall","src":"2341:16:65"},{"kind":"number","nativeSrc":"2359:1:65","nodeType":"YulLiteral","src":"2359:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:65","nodeType":"YulIdentifier","src":"2334:6:65"},"nativeSrc":"2334:27:65","nodeType":"YulFunctionCall","src":"2334:27:65"},"nativeSrc":"2334:27:65","nodeType":"YulExpressionStatement","src":"2334:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:65","nodeType":"YulTypedName","src":"2164:3:65","type":""},{"name":"dst","nativeSrc":"2169:3:65","nodeType":"YulTypedName","src":"2169:3:65","type":""},{"name":"length","nativeSrc":"2174:6:65","nodeType":"YulTypedName","src":"2174:6:65","type":""}],"src":"2120:248:65"},{"body":{"nativeSrc":"2468:338:65","nodeType":"YulBlock","src":"2468:338:65","statements":[{"nativeSrc":"2478:74:65","nodeType":"YulAssignment","src":"2478:74:65","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:65","nodeType":"YulIdentifier","src":"2544:6:65"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:65","nodeType":"YulIdentifier","src":"2503:40:65"},"nativeSrc":"2503:48:65","nodeType":"YulFunctionCall","src":"2503:48:65"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:65","nodeType":"YulIdentifier","src":"2487:15:65"},"nativeSrc":"2487:65:65","nodeType":"YulFunctionCall","src":"2487:65:65"},"variableNames":[{"name":"array","nativeSrc":"2478:5:65","nodeType":"YulIdentifier","src":"2478:5:65"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:65","nodeType":"YulIdentifier","src":"2568:5:65"},{"name":"length","nativeSrc":"2575:6:65","nodeType":"YulIdentifier","src":"2575:6:65"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:65","nodeType":"YulIdentifier","src":"2561:6:65"},"nativeSrc":"2561:21:65","nodeType":"YulFunctionCall","src":"2561:21:65"},"nativeSrc":"2561:21:65","nodeType":"YulExpressionStatement","src":"2561:21:65"},{"nativeSrc":"2591:27:65","nodeType":"YulVariableDeclaration","src":"2591:27:65","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:65","nodeType":"YulIdentifier","src":"2606:5:65"},{"kind":"number","nativeSrc":"2613:4:65","nodeType":"YulLiteral","src":"2613:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:65","nodeType":"YulIdentifier","src":"2602:3:65"},"nativeSrc":"2602:16:65","nodeType":"YulFunctionCall","src":"2602:16:65"},"variables":[{"name":"dst","nativeSrc":"2595:3:65","nodeType":"YulTypedName","src":"2595:3:65","type":""}]},{"body":{"nativeSrc":"2656:83:65","nodeType":"YulBlock","src":"2656:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:65","nodeType":"YulIdentifier","src":"2658:77:65"},"nativeSrc":"2658:79:65","nodeType":"YulFunctionCall","src":"2658:79:65"},"nativeSrc":"2658:79:65","nodeType":"YulExpressionStatement","src":"2658:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:65","nodeType":"YulIdentifier","src":"2637:3:65"},{"name":"length","nativeSrc":"2642:6:65","nodeType":"YulIdentifier","src":"2642:6:65"}],"functionName":{"name":"add","nativeSrc":"2633:3:65","nodeType":"YulIdentifier","src":"2633:3:65"},"nativeSrc":"2633:16:65","nodeType":"YulFunctionCall","src":"2633:16:65"},{"name":"end","nativeSrc":"2651:3:65","nodeType":"YulIdentifier","src":"2651:3:65"}],"functionName":{"name":"gt","nativeSrc":"2630:2:65","nodeType":"YulIdentifier","src":"2630:2:65"},"nativeSrc":"2630:25:65","nodeType":"YulFunctionCall","src":"2630:25:65"},"nativeSrc":"2627:112:65","nodeType":"YulIf","src":"2627:112:65"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:65","nodeType":"YulIdentifier","src":"2783:3:65"},{"name":"dst","nativeSrc":"2788:3:65","nodeType":"YulIdentifier","src":"2788:3:65"},{"name":"length","nativeSrc":"2793:6:65","nodeType":"YulIdentifier","src":"2793:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:65","nodeType":"YulIdentifier","src":"2748:34:65"},"nativeSrc":"2748:52:65","nodeType":"YulFunctionCall","src":"2748:52:65"},"nativeSrc":"2748:52:65","nodeType":"YulExpressionStatement","src":"2748:52:65"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:65","nodeType":"YulTypedName","src":"2441:3:65","type":""},{"name":"length","nativeSrc":"2446:6:65","nodeType":"YulTypedName","src":"2446:6:65","type":""},{"name":"end","nativeSrc":"2454:3:65","nodeType":"YulTypedName","src":"2454:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:65","nodeType":"YulTypedName","src":"2462:5:65","type":""}],"src":"2374:432:65"},{"body":{"nativeSrc":"2897:281:65","nodeType":"YulBlock","src":"2897:281:65","statements":[{"body":{"nativeSrc":"2946:83:65","nodeType":"YulBlock","src":"2946:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:65","nodeType":"YulIdentifier","src":"2948:77:65"},"nativeSrc":"2948:79:65","nodeType":"YulFunctionCall","src":"2948:79:65"},"nativeSrc":"2948:79:65","nodeType":"YulExpressionStatement","src":"2948:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:65","nodeType":"YulIdentifier","src":"2925:6:65"},{"kind":"number","nativeSrc":"2933:4:65","nodeType":"YulLiteral","src":"2933:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:65","nodeType":"YulIdentifier","src":"2921:3:65"},"nativeSrc":"2921:17:65","nodeType":"YulFunctionCall","src":"2921:17:65"},{"name":"end","nativeSrc":"2940:3:65","nodeType":"YulIdentifier","src":"2940:3:65"}],"functionName":{"name":"slt","nativeSrc":"2917:3:65","nodeType":"YulIdentifier","src":"2917:3:65"},"nativeSrc":"2917:27:65","nodeType":"YulFunctionCall","src":"2917:27:65"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:65","nodeType":"YulIdentifier","src":"2910:6:65"},"nativeSrc":"2910:35:65","nodeType":"YulFunctionCall","src":"2910:35:65"},"nativeSrc":"2907:122:65","nodeType":"YulIf","src":"2907:122:65"},{"nativeSrc":"3038:27:65","nodeType":"YulVariableDeclaration","src":"3038:27:65","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:65","nodeType":"YulIdentifier","src":"3058:6:65"}],"functionName":{"name":"mload","nativeSrc":"3052:5:65","nodeType":"YulIdentifier","src":"3052:5:65"},"nativeSrc":"3052:13:65","nodeType":"YulFunctionCall","src":"3052:13:65"},"variables":[{"name":"length","nativeSrc":"3042:6:65","nodeType":"YulTypedName","src":"3042:6:65","type":""}]},{"nativeSrc":"3074:98:65","nodeType":"YulAssignment","src":"3074:98:65","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:65","nodeType":"YulIdentifier","src":"3145:6:65"},{"kind":"number","nativeSrc":"3153:4:65","nodeType":"YulLiteral","src":"3153:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:65","nodeType":"YulIdentifier","src":"3141:3:65"},"nativeSrc":"3141:17:65","nodeType":"YulFunctionCall","src":"3141:17:65"},{"name":"length","nativeSrc":"3160:6:65","nodeType":"YulIdentifier","src":"3160:6:65"},{"name":"end","nativeSrc":"3168:3:65","nodeType":"YulIdentifier","src":"3168:3:65"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:65","nodeType":"YulIdentifier","src":"3083:57:65"},"nativeSrc":"3083:89:65","nodeType":"YulFunctionCall","src":"3083:89:65"},"variableNames":[{"name":"array","nativeSrc":"3074:5:65","nodeType":"YulIdentifier","src":"3074:5:65"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:65","nodeType":"YulTypedName","src":"2875:6:65","type":""},{"name":"end","nativeSrc":"2883:3:65","nodeType":"YulTypedName","src":"2883:3:65","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:65","nodeType":"YulTypedName","src":"2891:5:65","type":""}],"src":"2825:353:65"},{"body":{"nativeSrc":"3304:714:65","nodeType":"YulBlock","src":"3304:714:65","statements":[{"body":{"nativeSrc":"3350:83:65","nodeType":"YulBlock","src":"3350:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3352:77:65","nodeType":"YulIdentifier","src":"3352:77:65"},"nativeSrc":"3352:79:65","nodeType":"YulFunctionCall","src":"3352:79:65"},"nativeSrc":"3352:79:65","nodeType":"YulExpressionStatement","src":"3352:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3325:7:65","nodeType":"YulIdentifier","src":"3325:7:65"},{"name":"headStart","nativeSrc":"3334:9:65","nodeType":"YulIdentifier","src":"3334:9:65"}],"functionName":{"name":"sub","nativeSrc":"3321:3:65","nodeType":"YulIdentifier","src":"3321:3:65"},"nativeSrc":"3321:23:65","nodeType":"YulFunctionCall","src":"3321:23:65"},{"kind":"number","nativeSrc":"3346:2:65","nodeType":"YulLiteral","src":"3346:2:65","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3317:3:65","nodeType":"YulIdentifier","src":"3317:3:65"},"nativeSrc":"3317:32:65","nodeType":"YulFunctionCall","src":"3317:32:65"},"nativeSrc":"3314:119:65","nodeType":"YulIf","src":"3314:119:65"},{"nativeSrc":"3443:128:65","nodeType":"YulBlock","src":"3443:128:65","statements":[{"nativeSrc":"3458:15:65","nodeType":"YulVariableDeclaration","src":"3458:15:65","value":{"kind":"number","nativeSrc":"3472:1:65","nodeType":"YulLiteral","src":"3472:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3462:6:65","nodeType":"YulTypedName","src":"3462:6:65","type":""}]},{"nativeSrc":"3487:74:65","nodeType":"YulAssignment","src":"3487:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3533:9:65","nodeType":"YulIdentifier","src":"3533:9:65"},{"name":"offset","nativeSrc":"3544:6:65","nodeType":"YulIdentifier","src":"3544:6:65"}],"functionName":{"name":"add","nativeSrc":"3529:3:65","nodeType":"YulIdentifier","src":"3529:3:65"},"nativeSrc":"3529:22:65","nodeType":"YulFunctionCall","src":"3529:22:65"},{"name":"dataEnd","nativeSrc":"3553:7:65","nodeType":"YulIdentifier","src":"3553:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3497:31:65","nodeType":"YulIdentifier","src":"3497:31:65"},"nativeSrc":"3497:64:65","nodeType":"YulFunctionCall","src":"3497:64:65"},"variableNames":[{"name":"value0","nativeSrc":"3487:6:65","nodeType":"YulIdentifier","src":"3487:6:65"}]}]},{"nativeSrc":"3581:129:65","nodeType":"YulBlock","src":"3581:129:65","statements":[{"nativeSrc":"3596:16:65","nodeType":"YulVariableDeclaration","src":"3596:16:65","value":{"kind":"number","nativeSrc":"3610:2:65","nodeType":"YulLiteral","src":"3610:2:65","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3600:6:65","nodeType":"YulTypedName","src":"3600:6:65","type":""}]},{"nativeSrc":"3626:74:65","nodeType":"YulAssignment","src":"3626:74:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3672:9:65","nodeType":"YulIdentifier","src":"3672:9:65"},{"name":"offset","nativeSrc":"3683:6:65","nodeType":"YulIdentifier","src":"3683:6:65"}],"functionName":{"name":"add","nativeSrc":"3668:3:65","nodeType":"YulIdentifier","src":"3668:3:65"},"nativeSrc":"3668:22:65","nodeType":"YulFunctionCall","src":"3668:22:65"},{"name":"dataEnd","nativeSrc":"3692:7:65","nodeType":"YulIdentifier","src":"3692:7:65"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3636:31:65","nodeType":"YulIdentifier","src":"3636:31:65"},"nativeSrc":"3636:64:65","nodeType":"YulFunctionCall","src":"3636:64:65"},"variableNames":[{"name":"value1","nativeSrc":"3626:6:65","nodeType":"YulIdentifier","src":"3626:6:65"}]}]},{"nativeSrc":"3720:291:65","nodeType":"YulBlock","src":"3720:291:65","statements":[{"nativeSrc":"3735:39:65","nodeType":"YulVariableDeclaration","src":"3735:39:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3759:9:65","nodeType":"YulIdentifier","src":"3759:9:65"},{"kind":"number","nativeSrc":"3770:2:65","nodeType":"YulLiteral","src":"3770:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3755:3:65","nodeType":"YulIdentifier","src":"3755:3:65"},"nativeSrc":"3755:18:65","nodeType":"YulFunctionCall","src":"3755:18:65"}],"functionName":{"name":"mload","nativeSrc":"3749:5:65","nodeType":"YulIdentifier","src":"3749:5:65"},"nativeSrc":"3749:25:65","nodeType":"YulFunctionCall","src":"3749:25:65"},"variables":[{"name":"offset","nativeSrc":"3739:6:65","nodeType":"YulTypedName","src":"3739:6:65","type":""}]},{"body":{"nativeSrc":"3821:83:65","nodeType":"YulBlock","src":"3821:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3823:77:65","nodeType":"YulIdentifier","src":"3823:77:65"},"nativeSrc":"3823:79:65","nodeType":"YulFunctionCall","src":"3823:79:65"},"nativeSrc":"3823:79:65","nodeType":"YulExpressionStatement","src":"3823:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3793:6:65","nodeType":"YulIdentifier","src":"3793:6:65"},{"kind":"number","nativeSrc":"3801:18:65","nodeType":"YulLiteral","src":"3801:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3790:2:65","nodeType":"YulIdentifier","src":"3790:2:65"},"nativeSrc":"3790:30:65","nodeType":"YulFunctionCall","src":"3790:30:65"},"nativeSrc":"3787:117:65","nodeType":"YulIf","src":"3787:117:65"},{"nativeSrc":"3918:83:65","nodeType":"YulAssignment","src":"3918:83:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3973:9:65","nodeType":"YulIdentifier","src":"3973:9:65"},{"name":"offset","nativeSrc":"3984:6:65","nodeType":"YulIdentifier","src":"3984:6:65"}],"functionName":{"name":"add","nativeSrc":"3969:3:65","nodeType":"YulIdentifier","src":"3969:3:65"},"nativeSrc":"3969:22:65","nodeType":"YulFunctionCall","src":"3969:22:65"},{"name":"dataEnd","nativeSrc":"3993:7:65","nodeType":"YulIdentifier","src":"3993:7:65"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3928:40:65","nodeType":"YulIdentifier","src":"3928:40:65"},"nativeSrc":"3928:73:65","nodeType":"YulFunctionCall","src":"3928:73:65"},"variableNames":[{"name":"value2","nativeSrc":"3918:6:65","nodeType":"YulIdentifier","src":"3918:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:834:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3258:9:65","nodeType":"YulTypedName","src":"3258:9:65","type":""},{"name":"dataEnd","nativeSrc":"3269:7:65","nodeType":"YulTypedName","src":"3269:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3281:6:65","nodeType":"YulTypedName","src":"3281:6:65","type":""},{"name":"value1","nativeSrc":"3289:6:65","nodeType":"YulTypedName","src":"3289:6:65","type":""},{"name":"value2","nativeSrc":"3297:6:65","nodeType":"YulTypedName","src":"3297:6:65","type":""}],"src":"3184:834:65"},{"body":{"nativeSrc":"4069:32:65","nodeType":"YulBlock","src":"4069:32:65","statements":[{"nativeSrc":"4079:16:65","nodeType":"YulAssignment","src":"4079:16:65","value":{"name":"value","nativeSrc":"4090:5:65","nodeType":"YulIdentifier","src":"4090:5:65"},"variableNames":[{"name":"cleaned","nativeSrc":"4079:7:65","nodeType":"YulIdentifier","src":"4079:7:65"}]}]},"name":"cleanup_t_uint256","nativeSrc":"4024:77:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4051:5:65","nodeType":"YulTypedName","src":"4051:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4061:7:65","nodeType":"YulTypedName","src":"4061:7:65","type":""}],"src":"4024:77:65"},{"body":{"nativeSrc":"4135:152:65","nodeType":"YulBlock","src":"4135:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4152:1:65","nodeType":"YulLiteral","src":"4152:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4155:77:65","nodeType":"YulLiteral","src":"4155:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4145:6:65","nodeType":"YulIdentifier","src":"4145:6:65"},"nativeSrc":"4145:88:65","nodeType":"YulFunctionCall","src":"4145:88:65"},"nativeSrc":"4145:88:65","nodeType":"YulExpressionStatement","src":"4145:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4249:1:65","nodeType":"YulLiteral","src":"4249:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4252:4:65","nodeType":"YulLiteral","src":"4252:4:65","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"4242:6:65","nodeType":"YulIdentifier","src":"4242:6:65"},"nativeSrc":"4242:15:65","nodeType":"YulFunctionCall","src":"4242:15:65"},"nativeSrc":"4242:15:65","nodeType":"YulExpressionStatement","src":"4242:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4273:1:65","nodeType":"YulLiteral","src":"4273:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4276:4:65","nodeType":"YulLiteral","src":"4276:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4266:6:65","nodeType":"YulIdentifier","src":"4266:6:65"},"nativeSrc":"4266:15:65","nodeType":"YulFunctionCall","src":"4266:15:65"},"nativeSrc":"4266:15:65","nodeType":"YulExpressionStatement","src":"4266:15:65"}]},"name":"panic_error_0x11","nativeSrc":"4107:180:65","nodeType":"YulFunctionDefinition","src":"4107:180:65"},{"body":{"nativeSrc":"4338:149:65","nodeType":"YulBlock","src":"4338:149:65","statements":[{"nativeSrc":"4348:25:65","nodeType":"YulAssignment","src":"4348:25:65","value":{"arguments":[{"name":"x","nativeSrc":"4371:1:65","nodeType":"YulIdentifier","src":"4371:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4353:17:65","nodeType":"YulIdentifier","src":"4353:17:65"},"nativeSrc":"4353:20:65","nodeType":"YulFunctionCall","src":"4353:20:65"},"variableNames":[{"name":"x","nativeSrc":"4348:1:65","nodeType":"YulIdentifier","src":"4348:1:65"}]},{"nativeSrc":"4382:25:65","nodeType":"YulAssignment","src":"4382:25:65","value":{"arguments":[{"name":"y","nativeSrc":"4405:1:65","nodeType":"YulIdentifier","src":"4405:1:65"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4387:17:65","nodeType":"YulIdentifier","src":"4387:17:65"},"nativeSrc":"4387:20:65","nodeType":"YulFunctionCall","src":"4387:20:65"},"variableNames":[{"name":"y","nativeSrc":"4382:1:65","nodeType":"YulIdentifier","src":"4382:1:65"}]},{"nativeSrc":"4416:17:65","nodeType":"YulAssignment","src":"4416:17:65","value":{"arguments":[{"name":"x","nativeSrc":"4428:1:65","nodeType":"YulIdentifier","src":"4428:1:65"},{"name":"y","nativeSrc":"4431:1:65","nodeType":"YulIdentifier","src":"4431:1:65"}],"functionName":{"name":"sub","nativeSrc":"4424:3:65","nodeType":"YulIdentifier","src":"4424:3:65"},"nativeSrc":"4424:9:65","nodeType":"YulFunctionCall","src":"4424:9:65"},"variableNames":[{"name":"diff","nativeSrc":"4416:4:65","nodeType":"YulIdentifier","src":"4416:4:65"}]},{"body":{"nativeSrc":"4458:22:65","nodeType":"YulBlock","src":"4458:22:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"4460:16:65","nodeType":"YulIdentifier","src":"4460:16:65"},"nativeSrc":"4460:18:65","nodeType":"YulFunctionCall","src":"4460:18:65"},"nativeSrc":"4460:18:65","nodeType":"YulExpressionStatement","src":"4460:18:65"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"4449:4:65","nodeType":"YulIdentifier","src":"4449:4:65"},{"name":"x","nativeSrc":"4455:1:65","nodeType":"YulIdentifier","src":"4455:1:65"}],"functionName":{"name":"gt","nativeSrc":"4446:2:65","nodeType":"YulIdentifier","src":"4446:2:65"},"nativeSrc":"4446:11:65","nodeType":"YulFunctionCall","src":"4446:11:65"},"nativeSrc":"4443:37:65","nodeType":"YulIf","src":"4443:37:65"}]},"name":"checked_sub_t_uint256","nativeSrc":"4293:194:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"4324:1:65","nodeType":"YulTypedName","src":"4324:1:65","type":""},{"name":"y","nativeSrc":"4327:1:65","nodeType":"YulTypedName","src":"4327:1:65","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"4333:4:65","nodeType":"YulTypedName","src":"4333:4:65","type":""}],"src":"4293:194:65"},{"body":{"nativeSrc":"4521:152:65","nodeType":"YulBlock","src":"4521:152:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4538:1:65","nodeType":"YulLiteral","src":"4538:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4541:77:65","nodeType":"YulLiteral","src":"4541:77:65","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"4531:6:65","nodeType":"YulIdentifier","src":"4531:6:65"},"nativeSrc":"4531:88:65","nodeType":"YulFunctionCall","src":"4531:88:65"},"nativeSrc":"4531:88:65","nodeType":"YulExpressionStatement","src":"4531:88:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4635:1:65","nodeType":"YulLiteral","src":"4635:1:65","type":"","value":"4"},{"kind":"number","nativeSrc":"4638:4:65","nodeType":"YulLiteral","src":"4638:4:65","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:65","nodeType":"YulIdentifier","src":"4628:6:65"},"nativeSrc":"4628:15:65","nodeType":"YulFunctionCall","src":"4628:15:65"},"nativeSrc":"4628:15:65","nodeType":"YulExpressionStatement","src":"4628:15:65"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4659:1:65","nodeType":"YulLiteral","src":"4659:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"4662:4:65","nodeType":"YulLiteral","src":"4662:4:65","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4652:6:65","nodeType":"YulIdentifier","src":"4652:6:65"},"nativeSrc":"4652:15:65","nodeType":"YulFunctionCall","src":"4652:15:65"},"nativeSrc":"4652:15:65","nodeType":"YulExpressionStatement","src":"4652:15:65"}]},"name":"panic_error_0x01","nativeSrc":"4493:180:65","nodeType":"YulFunctionDefinition","src":"4493:180:65"},{"body":{"nativeSrc":"4744:53:65","nodeType":"YulBlock","src":"4744:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4761:3:65","nodeType":"YulIdentifier","src":"4761:3:65"},{"arguments":[{"name":"value","nativeSrc":"4784:5:65","nodeType":"YulIdentifier","src":"4784:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4766:17:65","nodeType":"YulIdentifier","src":"4766:17:65"},"nativeSrc":"4766:24:65","nodeType":"YulFunctionCall","src":"4766:24:65"}],"functionName":{"name":"mstore","nativeSrc":"4754:6:65","nodeType":"YulIdentifier","src":"4754:6:65"},"nativeSrc":"4754:37:65","nodeType":"YulFunctionCall","src":"4754:37:65"},"nativeSrc":"4754:37:65","nodeType":"YulExpressionStatement","src":"4754:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4679:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4732:5:65","nodeType":"YulTypedName","src":"4732:5:65","type":""},{"name":"pos","nativeSrc":"4739:3:65","nodeType":"YulTypedName","src":"4739:3:65","type":""}],"src":"4679:118:65"},{"body":{"nativeSrc":"4929:206:65","nodeType":"YulBlock","src":"4929:206:65","statements":[{"nativeSrc":"4939:26:65","nodeType":"YulAssignment","src":"4939:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4951:9:65","nodeType":"YulIdentifier","src":"4951:9:65"},{"kind":"number","nativeSrc":"4962:2:65","nodeType":"YulLiteral","src":"4962:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4947:3:65","nodeType":"YulIdentifier","src":"4947:3:65"},"nativeSrc":"4947:18:65","nodeType":"YulFunctionCall","src":"4947:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4939:4:65","nodeType":"YulIdentifier","src":"4939:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5019:6:65","nodeType":"YulIdentifier","src":"5019:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5032:9:65","nodeType":"YulIdentifier","src":"5032:9:65"},{"kind":"number","nativeSrc":"5043:1:65","nodeType":"YulLiteral","src":"5043:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5028:3:65","nodeType":"YulIdentifier","src":"5028:3:65"},"nativeSrc":"5028:17:65","nodeType":"YulFunctionCall","src":"5028:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4975:43:65","nodeType":"YulIdentifier","src":"4975:43:65"},"nativeSrc":"4975:71:65","nodeType":"YulFunctionCall","src":"4975:71:65"},"nativeSrc":"4975:71:65","nodeType":"YulExpressionStatement","src":"4975:71:65"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5100:6:65","nodeType":"YulIdentifier","src":"5100:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"5113:9:65","nodeType":"YulIdentifier","src":"5113:9:65"},{"kind":"number","nativeSrc":"5124:2:65","nodeType":"YulLiteral","src":"5124:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5109:3:65","nodeType":"YulIdentifier","src":"5109:3:65"},"nativeSrc":"5109:18:65","nodeType":"YulFunctionCall","src":"5109:18:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5056:43:65","nodeType":"YulIdentifier","src":"5056:43:65"},"nativeSrc":"5056:72:65","nodeType":"YulFunctionCall","src":"5056:72:65"},"nativeSrc":"5056:72:65","nodeType":"YulExpressionStatement","src":"5056:72:65"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4803:332:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4893:9:65","nodeType":"YulTypedName","src":"4893:9:65","type":""},{"name":"value1","nativeSrc":"4905:6:65","nodeType":"YulTypedName","src":"4905:6:65","type":""},{"name":"value0","nativeSrc":"4913:6:65","nodeType":"YulTypedName","src":"4913:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4924:4:65","nodeType":"YulTypedName","src":"4924:4:65","type":""}],"src":"4803:332:65"},{"body":{"nativeSrc":"5237:73:65","nodeType":"YulBlock","src":"5237:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5254:3:65","nodeType":"YulIdentifier","src":"5254:3:65"},{"name":"length","nativeSrc":"5259:6:65","nodeType":"YulIdentifier","src":"5259:6:65"}],"functionName":{"name":"mstore","nativeSrc":"5247:6:65","nodeType":"YulIdentifier","src":"5247:6:65"},"nativeSrc":"5247:19:65","nodeType":"YulFunctionCall","src":"5247:19:65"},"nativeSrc":"5247:19:65","nodeType":"YulExpressionStatement","src":"5247:19:65"},{"nativeSrc":"5275:29:65","nodeType":"YulAssignment","src":"5275:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"5294:3:65","nodeType":"YulIdentifier","src":"5294:3:65"},{"kind":"number","nativeSrc":"5299:4:65","nodeType":"YulLiteral","src":"5299:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5290:3:65","nodeType":"YulIdentifier","src":"5290:3:65"},"nativeSrc":"5290:14:65","nodeType":"YulFunctionCall","src":"5290:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"5275:11:65","nodeType":"YulIdentifier","src":"5275:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5141:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5209:3:65","nodeType":"YulTypedName","src":"5209:3:65","type":""},{"name":"length","nativeSrc":"5214:6:65","nodeType":"YulTypedName","src":"5214:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5225:11:65","nodeType":"YulTypedName","src":"5225:11:65","type":""}],"src":"5141:169:65"},{"body":{"nativeSrc":"5422:126:65","nodeType":"YulBlock","src":"5422:126:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5444:6:65","nodeType":"YulIdentifier","src":"5444:6:65"},{"kind":"number","nativeSrc":"5452:1:65","nodeType":"YulLiteral","src":"5452:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5440:3:65","nodeType":"YulIdentifier","src":"5440:3:65"},"nativeSrc":"5440:14:65","nodeType":"YulFunctionCall","src":"5440:14:65"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"5456:34:65","nodeType":"YulLiteral","src":"5456:34:65","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"5433:6:65","nodeType":"YulIdentifier","src":"5433:6:65"},"nativeSrc":"5433:58:65","nodeType":"YulFunctionCall","src":"5433:58:65"},"nativeSrc":"5433:58:65","nodeType":"YulExpressionStatement","src":"5433:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5512:6:65","nodeType":"YulIdentifier","src":"5512:6:65"},{"kind":"number","nativeSrc":"5520:2:65","nodeType":"YulLiteral","src":"5520:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5508:3:65","nodeType":"YulIdentifier","src":"5508:3:65"},"nativeSrc":"5508:15:65","nodeType":"YulFunctionCall","src":"5508:15:65"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"5525:15:65","nodeType":"YulLiteral","src":"5525:15:65","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"5501:6:65","nodeType":"YulIdentifier","src":"5501:6:65"},"nativeSrc":"5501:40:65","nodeType":"YulFunctionCall","src":"5501:40:65"},"nativeSrc":"5501:40:65","nodeType":"YulExpressionStatement","src":"5501:40:65"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5316:232:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5414:6:65","nodeType":"YulTypedName","src":"5414:6:65","type":""}],"src":"5316:232:65"},{"body":{"nativeSrc":"5700:220:65","nodeType":"YulBlock","src":"5700:220:65","statements":[{"nativeSrc":"5710:74:65","nodeType":"YulAssignment","src":"5710:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5776:3:65","nodeType":"YulIdentifier","src":"5776:3:65"},{"kind":"number","nativeSrc":"5781:2:65","nodeType":"YulLiteral","src":"5781:2:65","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5717:58:65","nodeType":"YulIdentifier","src":"5717:58:65"},"nativeSrc":"5717:67:65","nodeType":"YulFunctionCall","src":"5717:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5710:3:65","nodeType":"YulIdentifier","src":"5710:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5882:3:65","nodeType":"YulIdentifier","src":"5882:3:65"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"5793:88:65","nodeType":"YulIdentifier","src":"5793:88:65"},"nativeSrc":"5793:93:65","nodeType":"YulFunctionCall","src":"5793:93:65"},"nativeSrc":"5793:93:65","nodeType":"YulExpressionStatement","src":"5793:93:65"},{"nativeSrc":"5895:19:65","nodeType":"YulAssignment","src":"5895:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5906:3:65","nodeType":"YulIdentifier","src":"5906:3:65"},{"kind":"number","nativeSrc":"5911:2:65","nodeType":"YulLiteral","src":"5911:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5902:3:65","nodeType":"YulIdentifier","src":"5902:3:65"},"nativeSrc":"5902:12:65","nodeType":"YulFunctionCall","src":"5902:12:65"},"variableNames":[{"name":"end","nativeSrc":"5895:3:65","nodeType":"YulIdentifier","src":"5895:3:65"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5554:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5688:3:65","nodeType":"YulTypedName","src":"5688:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5696:3:65","nodeType":"YulTypedName","src":"5696:3:65","type":""}],"src":"5554:366:65"},{"body":{"nativeSrc":"6097:248:65","nodeType":"YulBlock","src":"6097:248:65","statements":[{"nativeSrc":"6107:26:65","nodeType":"YulAssignment","src":"6107:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6119:9:65","nodeType":"YulIdentifier","src":"6119:9:65"},{"kind":"number","nativeSrc":"6130:2:65","nodeType":"YulLiteral","src":"6130:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6115:3:65","nodeType":"YulIdentifier","src":"6115:3:65"},"nativeSrc":"6115:18:65","nodeType":"YulFunctionCall","src":"6115:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6107:4:65","nodeType":"YulIdentifier","src":"6107:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6154:9:65","nodeType":"YulIdentifier","src":"6154:9:65"},{"kind":"number","nativeSrc":"6165:1:65","nodeType":"YulLiteral","src":"6165:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6150:3:65","nodeType":"YulIdentifier","src":"6150:3:65"},"nativeSrc":"6150:17:65","nodeType":"YulFunctionCall","src":"6150:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6173:4:65","nodeType":"YulIdentifier","src":"6173:4:65"},{"name":"headStart","nativeSrc":"6179:9:65","nodeType":"YulIdentifier","src":"6179:9:65"}],"functionName":{"name":"sub","nativeSrc":"6169:3:65","nodeType":"YulIdentifier","src":"6169:3:65"},"nativeSrc":"6169:20:65","nodeType":"YulFunctionCall","src":"6169:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6143:6:65","nodeType":"YulIdentifier","src":"6143:6:65"},"nativeSrc":"6143:47:65","nodeType":"YulFunctionCall","src":"6143:47:65"},"nativeSrc":"6143:47:65","nodeType":"YulExpressionStatement","src":"6143:47:65"},{"nativeSrc":"6199:139:65","nodeType":"YulAssignment","src":"6199:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6333:4:65","nodeType":"YulIdentifier","src":"6333:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"6207:124:65","nodeType":"YulIdentifier","src":"6207:124:65"},"nativeSrc":"6207:131:65","nodeType":"YulFunctionCall","src":"6207:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6199:4:65","nodeType":"YulIdentifier","src":"6199:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5926:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6077:9:65","nodeType":"YulTypedName","src":"6077:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6092:4:65","nodeType":"YulTypedName","src":"6092:4:65","type":""}],"src":"5926:419:65"},{"body":{"nativeSrc":"6457:119:65","nodeType":"YulBlock","src":"6457:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6479:6:65","nodeType":"YulIdentifier","src":"6479:6:65"},{"kind":"number","nativeSrc":"6487:1:65","nodeType":"YulLiteral","src":"6487:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6475:3:65","nodeType":"YulIdentifier","src":"6475:3:65"},"nativeSrc":"6475:14:65","nodeType":"YulFunctionCall","src":"6475:14:65"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"6491:34:65","nodeType":"YulLiteral","src":"6491:34:65","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"6468:6:65","nodeType":"YulIdentifier","src":"6468:6:65"},"nativeSrc":"6468:58:65","nodeType":"YulFunctionCall","src":"6468:58:65"},"nativeSrc":"6468:58:65","nodeType":"YulExpressionStatement","src":"6468:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"6547:6:65","nodeType":"YulIdentifier","src":"6547:6:65"},{"kind":"number","nativeSrc":"6555:2:65","nodeType":"YulLiteral","src":"6555:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6543:3:65","nodeType":"YulIdentifier","src":"6543:3:65"},"nativeSrc":"6543:15:65","nodeType":"YulFunctionCall","src":"6543:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"6560:8:65","nodeType":"YulLiteral","src":"6560:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"6536:6:65","nodeType":"YulIdentifier","src":"6536:6:65"},"nativeSrc":"6536:33:65","nodeType":"YulFunctionCall","src":"6536:33:65"},"nativeSrc":"6536:33:65","nodeType":"YulExpressionStatement","src":"6536:33:65"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6351:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6449:6:65","nodeType":"YulTypedName","src":"6449:6:65","type":""}],"src":"6351:225:65"},{"body":{"nativeSrc":"6728:220:65","nodeType":"YulBlock","src":"6728:220:65","statements":[{"nativeSrc":"6738:74:65","nodeType":"YulAssignment","src":"6738:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"6804:3:65","nodeType":"YulIdentifier","src":"6804:3:65"},{"kind":"number","nativeSrc":"6809:2:65","nodeType":"YulLiteral","src":"6809:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6745:58:65","nodeType":"YulIdentifier","src":"6745:58:65"},"nativeSrc":"6745:67:65","nodeType":"YulFunctionCall","src":"6745:67:65"},"variableNames":[{"name":"pos","nativeSrc":"6738:3:65","nodeType":"YulIdentifier","src":"6738:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6910:3:65","nodeType":"YulIdentifier","src":"6910:3:65"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"6821:88:65","nodeType":"YulIdentifier","src":"6821:88:65"},"nativeSrc":"6821:93:65","nodeType":"YulFunctionCall","src":"6821:93:65"},"nativeSrc":"6821:93:65","nodeType":"YulExpressionStatement","src":"6821:93:65"},{"nativeSrc":"6923:19:65","nodeType":"YulAssignment","src":"6923:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6934:3:65","nodeType":"YulIdentifier","src":"6934:3:65"},{"kind":"number","nativeSrc":"6939:2:65","nodeType":"YulLiteral","src":"6939:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6930:3:65","nodeType":"YulIdentifier","src":"6930:3:65"},"nativeSrc":"6930:12:65","nodeType":"YulFunctionCall","src":"6930:12:65"},"variableNames":[{"name":"end","nativeSrc":"6923:3:65","nodeType":"YulIdentifier","src":"6923:3:65"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6582:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6716:3:65","nodeType":"YulTypedName","src":"6716:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6724:3:65","nodeType":"YulTypedName","src":"6724:3:65","type":""}],"src":"6582:366:65"},{"body":{"nativeSrc":"7125:248:65","nodeType":"YulBlock","src":"7125:248:65","statements":[{"nativeSrc":"7135:26:65","nodeType":"YulAssignment","src":"7135:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"7147:9:65","nodeType":"YulIdentifier","src":"7147:9:65"},{"kind":"number","nativeSrc":"7158:2:65","nodeType":"YulLiteral","src":"7158:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7143:3:65","nodeType":"YulIdentifier","src":"7143:3:65"},"nativeSrc":"7143:18:65","nodeType":"YulFunctionCall","src":"7143:18:65"},"variableNames":[{"name":"tail","nativeSrc":"7135:4:65","nodeType":"YulIdentifier","src":"7135:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7182:9:65","nodeType":"YulIdentifier","src":"7182:9:65"},{"kind":"number","nativeSrc":"7193:1:65","nodeType":"YulLiteral","src":"7193:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7178:3:65","nodeType":"YulIdentifier","src":"7178:3:65"},"nativeSrc":"7178:17:65","nodeType":"YulFunctionCall","src":"7178:17:65"},{"arguments":[{"name":"tail","nativeSrc":"7201:4:65","nodeType":"YulIdentifier","src":"7201:4:65"},{"name":"headStart","nativeSrc":"7207:9:65","nodeType":"YulIdentifier","src":"7207:9:65"}],"functionName":{"name":"sub","nativeSrc":"7197:3:65","nodeType":"YulIdentifier","src":"7197:3:65"},"nativeSrc":"7197:20:65","nodeType":"YulFunctionCall","src":"7197:20:65"}],"functionName":{"name":"mstore","nativeSrc":"7171:6:65","nodeType":"YulIdentifier","src":"7171:6:65"},"nativeSrc":"7171:47:65","nodeType":"YulFunctionCall","src":"7171:47:65"},"nativeSrc":"7171:47:65","nodeType":"YulExpressionStatement","src":"7171:47:65"},{"nativeSrc":"7227:139:65","nodeType":"YulAssignment","src":"7227:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"7361:4:65","nodeType":"YulIdentifier","src":"7361:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"7235:124:65","nodeType":"YulIdentifier","src":"7235:124:65"},"nativeSrc":"7235:131:65","nodeType":"YulFunctionCall","src":"7235:131:65"},"variableNames":[{"name":"tail","nativeSrc":"7227:4:65","nodeType":"YulIdentifier","src":"7227:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6954:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7105:9:65","nodeType":"YulTypedName","src":"7105:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7120:4:65","nodeType":"YulTypedName","src":"7120:4:65","type":""}],"src":"6954:419:65"},{"body":{"nativeSrc":"7437:40:65","nodeType":"YulBlock","src":"7437:40:65","statements":[{"nativeSrc":"7448:22:65","nodeType":"YulAssignment","src":"7448:22:65","value":{"arguments":[{"name":"value","nativeSrc":"7464:5:65","nodeType":"YulIdentifier","src":"7464:5:65"}],"functionName":{"name":"mload","nativeSrc":"7458:5:65","nodeType":"YulIdentifier","src":"7458:5:65"},"nativeSrc":"7458:12:65","nodeType":"YulFunctionCall","src":"7458:12:65"},"variableNames":[{"name":"length","nativeSrc":"7448:6:65","nodeType":"YulIdentifier","src":"7448:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7379:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7420:5:65","nodeType":"YulTypedName","src":"7420:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7430:6:65","nodeType":"YulTypedName","src":"7430:6:65","type":""}],"src":"7379:98:65"},{"body":{"nativeSrc":"7596:34:65","nodeType":"YulBlock","src":"7596:34:65","statements":[{"nativeSrc":"7606:18:65","nodeType":"YulAssignment","src":"7606:18:65","value":{"name":"pos","nativeSrc":"7621:3:65","nodeType":"YulIdentifier","src":"7621:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"7606:11:65","nodeType":"YulIdentifier","src":"7606:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7483:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7568:3:65","nodeType":"YulTypedName","src":"7568:3:65","type":""},{"name":"length","nativeSrc":"7573:6:65","nodeType":"YulTypedName","src":"7573:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7584:11:65","nodeType":"YulTypedName","src":"7584:11:65","type":""}],"src":"7483:147:65"},{"body":{"nativeSrc":"7744:278:65","nodeType":"YulBlock","src":"7744:278:65","statements":[{"nativeSrc":"7754:52:65","nodeType":"YulVariableDeclaration","src":"7754:52:65","value":{"arguments":[{"name":"value","nativeSrc":"7800:5:65","nodeType":"YulIdentifier","src":"7800:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7768:31:65","nodeType":"YulIdentifier","src":"7768:31:65"},"nativeSrc":"7768:38:65","nodeType":"YulFunctionCall","src":"7768:38:65"},"variables":[{"name":"length","nativeSrc":"7758:6:65","nodeType":"YulTypedName","src":"7758:6:65","type":""}]},{"nativeSrc":"7815:95:65","nodeType":"YulAssignment","src":"7815:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"7898:3:65","nodeType":"YulIdentifier","src":"7898:3:65"},{"name":"length","nativeSrc":"7903:6:65","nodeType":"YulIdentifier","src":"7903:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7822:75:65","nodeType":"YulIdentifier","src":"7822:75:65"},"nativeSrc":"7822:88:65","nodeType":"YulFunctionCall","src":"7822:88:65"},"variableNames":[{"name":"pos","nativeSrc":"7815:3:65","nodeType":"YulIdentifier","src":"7815:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7958:5:65","nodeType":"YulIdentifier","src":"7958:5:65"},{"kind":"number","nativeSrc":"7965:4:65","nodeType":"YulLiteral","src":"7965:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7954:3:65","nodeType":"YulIdentifier","src":"7954:3:65"},"nativeSrc":"7954:16:65","nodeType":"YulFunctionCall","src":"7954:16:65"},{"name":"pos","nativeSrc":"7972:3:65","nodeType":"YulIdentifier","src":"7972:3:65"},{"name":"length","nativeSrc":"7977:6:65","nodeType":"YulIdentifier","src":"7977:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7919:34:65","nodeType":"YulIdentifier","src":"7919:34:65"},"nativeSrc":"7919:65:65","nodeType":"YulFunctionCall","src":"7919:65:65"},"nativeSrc":"7919:65:65","nodeType":"YulExpressionStatement","src":"7919:65:65"},{"nativeSrc":"7993:23:65","nodeType":"YulAssignment","src":"7993:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"8004:3:65","nodeType":"YulIdentifier","src":"8004:3:65"},{"name":"length","nativeSrc":"8009:6:65","nodeType":"YulIdentifier","src":"8009:6:65"}],"functionName":{"name":"add","nativeSrc":"8000:3:65","nodeType":"YulIdentifier","src":"8000:3:65"},"nativeSrc":"8000:16:65","nodeType":"YulFunctionCall","src":"8000:16:65"},"variableNames":[{"name":"end","nativeSrc":"7993:3:65","nodeType":"YulIdentifier","src":"7993:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7636:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7725:5:65","nodeType":"YulTypedName","src":"7725:5:65","type":""},{"name":"pos","nativeSrc":"7732:3:65","nodeType":"YulTypedName","src":"7732:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7740:3:65","nodeType":"YulTypedName","src":"7740:3:65","type":""}],"src":"7636:386:65"},{"body":{"nativeSrc":"8162:137:65","nodeType":"YulBlock","src":"8162:137:65","statements":[{"nativeSrc":"8173:100:65","nodeType":"YulAssignment","src":"8173:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"8260:6:65","nodeType":"YulIdentifier","src":"8260:6:65"},{"name":"pos","nativeSrc":"8269:3:65","nodeType":"YulIdentifier","src":"8269:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"8180:79:65","nodeType":"YulIdentifier","src":"8180:79:65"},"nativeSrc":"8180:93:65","nodeType":"YulFunctionCall","src":"8180:93:65"},"variableNames":[{"name":"pos","nativeSrc":"8173:3:65","nodeType":"YulIdentifier","src":"8173:3:65"}]},{"nativeSrc":"8283:10:65","nodeType":"YulAssignment","src":"8283:10:65","value":{"name":"pos","nativeSrc":"8290:3:65","nodeType":"YulIdentifier","src":"8290:3:65"},"variableNames":[{"name":"end","nativeSrc":"8283:3:65","nodeType":"YulIdentifier","src":"8283:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"8028:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8141:3:65","nodeType":"YulTypedName","src":"8141:3:65","type":""},{"name":"value0","nativeSrc":"8147:6:65","nodeType":"YulTypedName","src":"8147:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8158:3:65","nodeType":"YulTypedName","src":"8158:3:65","type":""}],"src":"8028:271:65"},{"body":{"nativeSrc":"8364:40:65","nodeType":"YulBlock","src":"8364:40:65","statements":[{"nativeSrc":"8375:22:65","nodeType":"YulAssignment","src":"8375:22:65","value":{"arguments":[{"name":"value","nativeSrc":"8391:5:65","nodeType":"YulIdentifier","src":"8391:5:65"}],"functionName":{"name":"mload","nativeSrc":"8385:5:65","nodeType":"YulIdentifier","src":"8385:5:65"},"nativeSrc":"8385:12:65","nodeType":"YulFunctionCall","src":"8385:12:65"},"variableNames":[{"name":"length","nativeSrc":"8375:6:65","nodeType":"YulIdentifier","src":"8375:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"8305:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8347:5:65","nodeType":"YulTypedName","src":"8347:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8357:6:65","nodeType":"YulTypedName","src":"8357:6:65","type":""}],"src":"8305:99:65"},{"body":{"nativeSrc":"8502:285:65","nodeType":"YulBlock","src":"8502:285:65","statements":[{"nativeSrc":"8512:53:65","nodeType":"YulVariableDeclaration","src":"8512:53:65","value":{"arguments":[{"name":"value","nativeSrc":"8559:5:65","nodeType":"YulIdentifier","src":"8559:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"8526:32:65","nodeType":"YulIdentifier","src":"8526:32:65"},"nativeSrc":"8526:39:65","nodeType":"YulFunctionCall","src":"8526:39:65"},"variables":[{"name":"length","nativeSrc":"8516:6:65","nodeType":"YulTypedName","src":"8516:6:65","type":""}]},{"nativeSrc":"8574:78:65","nodeType":"YulAssignment","src":"8574:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"8640:3:65","nodeType":"YulIdentifier","src":"8640:3:65"},{"name":"length","nativeSrc":"8645:6:65","nodeType":"YulIdentifier","src":"8645:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8581:58:65","nodeType":"YulIdentifier","src":"8581:58:65"},"nativeSrc":"8581:71:65","nodeType":"YulFunctionCall","src":"8581:71:65"},"variableNames":[{"name":"pos","nativeSrc":"8574:3:65","nodeType":"YulIdentifier","src":"8574:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8700:5:65","nodeType":"YulIdentifier","src":"8700:5:65"},{"kind":"number","nativeSrc":"8707:4:65","nodeType":"YulLiteral","src":"8707:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8696:3:65","nodeType":"YulIdentifier","src":"8696:3:65"},"nativeSrc":"8696:16:65","nodeType":"YulFunctionCall","src":"8696:16:65"},{"name":"pos","nativeSrc":"8714:3:65","nodeType":"YulIdentifier","src":"8714:3:65"},{"name":"length","nativeSrc":"8719:6:65","nodeType":"YulIdentifier","src":"8719:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8661:34:65","nodeType":"YulIdentifier","src":"8661:34:65"},"nativeSrc":"8661:65:65","nodeType":"YulFunctionCall","src":"8661:65:65"},"nativeSrc":"8661:65:65","nodeType":"YulExpressionStatement","src":"8661:65:65"},{"nativeSrc":"8735:46:65","nodeType":"YulAssignment","src":"8735:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"8746:3:65","nodeType":"YulIdentifier","src":"8746:3:65"},{"arguments":[{"name":"length","nativeSrc":"8773:6:65","nodeType":"YulIdentifier","src":"8773:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8751:21:65","nodeType":"YulIdentifier","src":"8751:21:65"},"nativeSrc":"8751:29:65","nodeType":"YulFunctionCall","src":"8751:29:65"}],"functionName":{"name":"add","nativeSrc":"8742:3:65","nodeType":"YulIdentifier","src":"8742:3:65"},"nativeSrc":"8742:39:65","nodeType":"YulFunctionCall","src":"8742:39:65"},"variableNames":[{"name":"end","nativeSrc":"8735:3:65","nodeType":"YulIdentifier","src":"8735:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8410:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8483:5:65","nodeType":"YulTypedName","src":"8483:5:65","type":""},{"name":"pos","nativeSrc":"8490:3:65","nodeType":"YulTypedName","src":"8490:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8498:3:65","nodeType":"YulTypedName","src":"8498:3:65","type":""}],"src":"8410:377:65"},{"body":{"nativeSrc":"8911:195:65","nodeType":"YulBlock","src":"8911:195:65","statements":[{"nativeSrc":"8921:26:65","nodeType":"YulAssignment","src":"8921:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8933:9:65","nodeType":"YulIdentifier","src":"8933:9:65"},{"kind":"number","nativeSrc":"8944:2:65","nodeType":"YulLiteral","src":"8944:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8929:3:65","nodeType":"YulIdentifier","src":"8929:3:65"},"nativeSrc":"8929:18:65","nodeType":"YulFunctionCall","src":"8929:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8921:4:65","nodeType":"YulIdentifier","src":"8921:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8968:9:65","nodeType":"YulIdentifier","src":"8968:9:65"},{"kind":"number","nativeSrc":"8979:1:65","nodeType":"YulLiteral","src":"8979:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8964:3:65","nodeType":"YulIdentifier","src":"8964:3:65"},"nativeSrc":"8964:17:65","nodeType":"YulFunctionCall","src":"8964:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8987:4:65","nodeType":"YulIdentifier","src":"8987:4:65"},{"name":"headStart","nativeSrc":"8993:9:65","nodeType":"YulIdentifier","src":"8993:9:65"}],"functionName":{"name":"sub","nativeSrc":"8983:3:65","nodeType":"YulIdentifier","src":"8983:3:65"},"nativeSrc":"8983:20:65","nodeType":"YulFunctionCall","src":"8983:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8957:6:65","nodeType":"YulIdentifier","src":"8957:6:65"},"nativeSrc":"8957:47:65","nodeType":"YulFunctionCall","src":"8957:47:65"},"nativeSrc":"8957:47:65","nodeType":"YulExpressionStatement","src":"8957:47:65"},{"nativeSrc":"9013:86:65","nodeType":"YulAssignment","src":"9013:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"9085:6:65","nodeType":"YulIdentifier","src":"9085:6:65"},{"name":"tail","nativeSrc":"9094:4:65","nodeType":"YulIdentifier","src":"9094:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"9021:63:65","nodeType":"YulIdentifier","src":"9021:63:65"},"nativeSrc":"9021:78:65","nodeType":"YulFunctionCall","src":"9021:78:65"},"variableNames":[{"name":"tail","nativeSrc":"9013:4:65","nodeType":"YulIdentifier","src":"9013:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8793:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8883:9:65","nodeType":"YulTypedName","src":"8883:9:65","type":""},{"name":"value0","nativeSrc":"8895:6:65","nodeType":"YulTypedName","src":"8895:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8906:4:65","nodeType":"YulTypedName","src":"8906:4:65","type":""}],"src":"8793:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x01() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051610eed380380610eed83398101604081905261002291610443565b828161004f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6104c3565b600080516020610ea68339815191521461006b5761006b6104d6565b61007782826000610124565b506100a5905060017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046104c3565b600080516020610e86833981519152146100c1576100c16104d6565b6001600160a01b038216608052600080516020610e868339815191528281556040517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f906101139060009086906104fb565b60405180910390a150505050610637565b61012d83610150565b60008251118061013a5750805b1561014b576101498383610190565b505b505050565b610159816101be565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101b58383604051806060016040528060278152602001610ec66027913961021d565b90505b92915050565b6001600160a01b0381163b6101ee5760405162461bcd60e51b81526004016101e590610563565b60405180910390fd5b600080516020610ea683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6102465760405162461bcd60e51b81526004016101e5906105b6565b600080856001600160a01b03168560405161026191906105e8565b600060405180830381855af49150503d806000811461029c576040519150601f19603f3d011682016040523d82523d6000602084013e6102a1565b606091505b5090925090506102b28282866102be565b925050505b9392505050565b606083156102cd5750816102b7565b8251156102dd5782518084602001fd5b8160405162461bcd60e51b81526004016101e59190610626565b60006001600160a01b0382166101b8565b610311816102f7565b811461031c57600080fd5b50565b80516101b881610308565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b03821117156103655761036561032a565b6040525050565b600061037760405190565b90506103838282610340565b919050565b60006001600160401b038211156103a1576103a161032a565b601f19601f83011660200192915050565b60005b838110156103cd5781810151838201526020016103b5565b50506000910152565b60006103e96103e484610388565b61036c565b90508281526020810184848401111561040457610404600080fd5b61040f8482856103b2565b509392505050565b600082601f83011261042b5761042b600080fd5b815161043b8482602086016103d6565b949350505050565b60008060006060848603121561045b5761045b600080fd5b6000610467868661031f565b93505060206104788682870161031f565b92505060408401516001600160401b0381111561049757610497600080fd5b6104a386828701610417565b9150509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156101b8576101b86104ad565b634e487b7160e01b600052600160045260246000fd5b6104f5816102f7565b82525050565b6040810161050982856104ec565b6102b760208301846104ec565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b602080825281016101b881610516565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b6020820152915061055c565b602080825281016101b881610573565b60006105d0825190565b6105de8185602086016103b2565b9290920192915050565b60006102b782846105c6565b60006105fe825190565b8084526020840193506106158185602086016103b2565b601f01601f19169290920192915050565b602080825281016101b581846105f4565b6080516108126106746000396000818160e90152818161013f015281816101c10152818161020b0152818161023c015261026001526108126000f3fe6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100b857610052565b36610052576100506100cd565b005b6100506100cd565b34801561006657600080fd5b50610050610075366004610510565b6100e7565b61005061008836600461058b565b61013d565b34801561009957600080fd5b506100a26101bd565b6040516100af91906105f6565b60405180910390f35b3480156100c457600080fd5b506100a2610207565b6100d561025e565b6100e56100e06102af565b6102e2565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101355761013281604051806020016040528060008152506000610306565b50565b6101326100cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101b5576101b08383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610306915050565b505050565b6101b06100cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc576101f76102af565b905090565b6102046100cd565b90565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc57507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e55760405162461bcd60e51b81526004016102a690610604565b60405180910390fd5b60006101f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b3660008037600080366000845af43d6000803e808015610301573d6000f35b3d6000fd5b61030f83610331565b60008251118061031c5750805b156101b05761032b8383610371565b50505050565b61033a8161039f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061039683836040518060600160405280602781526020016107b660279139610407565b90505b92915050565b6001600160a01b0381163b6103c65760405162461bcd60e51b81526004016102a6906106bd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6104305760405162461bcd60e51b81526004016102a690610710565b600080856001600160a01b03168560405161044b9190610766565b600060405180830381855af49150503d8060008114610486576040519150601f19603f3d011682016040523d82523d6000602084013e61048b565b606091505b509150915061049b8282866104a7565b925050505b9392505050565b606083156104b65750816104a0565b8251156104c65782518084602001fd5b8160405162461bcd60e51b81526004016102a691906107a4565b60006001600160a01b038216610399565b6104fa816104e0565b811461013257600080fd5b8035610399816104f1565b60006020828403121561052557610525600080fd5b60006105318484610505565b949350505050565b60008083601f84011261054e5761054e600080fd5b50813567ffffffffffffffff81111561056957610569600080fd5b60208301915083600182028301111561058457610584600080fd5b9250929050565b6000806000604084860312156105a3576105a3600080fd5b60006105af8686610505565b935050602084013567ffffffffffffffff8111156105cf576105cf600080fd5b6105db86828701610539565b92509250509250925092565b6105f0816104e0565b82525050565b6020810161039982846105e7565b6020808252810161039981604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161039981610670565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506106b6565b60208082528101610399816106cd565b60005b8381101561073b578181015183820152602001610723565b50506000910152565b600061074e825190565b61075c818560208601610720565b9290920192915050565b60006104a08284610744565b600061077c825190565b808452602084019350610793818560208601610720565b601f01601f19169290920192915050565b60208082528101610396818461077256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122074d46e8de9a3e5294fe7b4f85337f8b52a8b902fb14551d71a6dd8277259694664736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xEED CODESIZE SUB DUP1 PUSH2 0xEED DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x443 JUMP JUMPDEST DUP3 DUP2 PUSH2 0x4F PUSH1 0x1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBD PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xEA6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0x6B JUMPI PUSH2 0x6B PUSH2 0x4D6 JUMP JUMPDEST PUSH2 0x77 DUP3 DUP3 PUSH1 0x0 PUSH2 0x124 JUMP JUMPDEST POP PUSH2 0xA5 SWAP1 POP PUSH1 0x1 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6104 PUSH2 0x4C3 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE86 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE EQ PUSH2 0xC1 JUMPI PUSH2 0xC1 PUSH2 0x4D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xE86 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F SWAP1 PUSH2 0x113 SWAP1 PUSH1 0x0 SWAP1 DUP7 SWAP1 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x637 JUMP JUMPDEST PUSH2 0x12D DUP4 PUSH2 0x150 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x13A JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x14B JUMPI PUSH2 0x149 DUP4 DUP4 PUSH2 0x190 JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x159 DUP2 PUSH2 0x1BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1B5 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC6 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x21D JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x1EE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E5 SWAP1 PUSH2 0x563 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xEA6 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x246 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E5 SWAP1 PUSH2 0x5B6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x261 SWAP2 SWAP1 PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x29C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2A1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x2B2 DUP3 DUP3 DUP7 PUSH2 0x2BE JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2CD JUMPI POP DUP2 PUSH2 0x2B7 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2DD JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B8 JUMP JUMPDEST PUSH2 0x311 DUP2 PUSH2 0x2F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B8 DUP2 PUSH2 0x308 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x365 JUMPI PUSH2 0x365 PUSH2 0x32A JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x377 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x383 DUP3 DUP3 PUSH2 0x340 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A1 PUSH2 0x32A JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3CD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3B5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E9 PUSH2 0x3E4 DUP5 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x404 JUMPI PUSH2 0x404 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x40F DUP5 DUP3 DUP6 PUSH2 0x3B2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x42B JUMPI PUSH2 0x42B PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x43B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x3D6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x45B JUMPI PUSH2 0x45B PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x467 DUP7 DUP7 PUSH2 0x31F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x478 DUP7 DUP3 DUP8 ADD PUSH2 0x31F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x497 JUMPI PUSH2 0x497 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A3 DUP7 DUP3 DUP8 ADD PUSH2 0x417 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1B8 JUMPI PUSH2 0x1B8 PUSH2 0x4AD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F5 DUP2 PUSH2 0x2F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x509 DUP3 DUP6 PUSH2 0x4EC JUMP JUMPDEST PUSH2 0x2B7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B8 DUP2 PUSH2 0x516 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x55C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B8 DUP2 PUSH2 0x573 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D0 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x5DE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3B2 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7 DUP3 DUP5 PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FE DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x615 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3B2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B5 DUP2 DUP5 PUSH2 0x5F4 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x812 PUSH2 0x674 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xE9 ADD MSTORE DUP2 DUP2 PUSH2 0x13F ADD MSTORE DUP2 DUP2 PUSH2 0x1C1 ADD MSTORE DUP2 DUP2 PUSH2 0x20B ADD MSTORE DUP2 DUP2 PUSH2 0x23C ADD MSTORE PUSH2 0x260 ADD MSTORE PUSH2 0x812 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB8 JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xCD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xCD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x510 JUMP JUMPDEST PUSH2 0xE7 JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x58B JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAF SWAP2 SWAP1 PUSH2 0x5F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x207 JUMP JUMPDEST PUSH2 0xD5 PUSH2 0x25E JUMP JUMPDEST PUSH2 0xE5 PUSH2 0xE0 PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x2E2 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x135 JUMPI PUSH2 0x132 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x306 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132 PUSH2 0xCD JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1B5 JUMPI PUSH2 0x1B0 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x306 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1B0 PUSH2 0xCD JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1FC JUMPI PUSH2 0x1F7 PUSH2 0x2AF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x204 PUSH2 0xCD JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1FC JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F7 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x301 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x30F DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x31C JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1B0 JUMPI PUSH2 0x32B DUP4 DUP4 PUSH2 0x371 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x33A DUP2 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x396 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B6 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x407 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x6BD JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x486 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x48B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x49B DUP3 DUP3 DUP7 PUSH2 0x4A7 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4B6 JUMPI POP DUP2 PUSH2 0x4A0 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4C6 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP2 SWAP1 PUSH2 0x7A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x399 JUMP JUMPDEST PUSH2 0x4FA DUP2 PUSH2 0x4E0 JUMP JUMPDEST DUP2 EQ PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x399 DUP2 PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x525 JUMPI PUSH2 0x525 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x531 DUP5 DUP5 PUSH2 0x505 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x54E JUMPI PUSH2 0x54E PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x569 JUMPI PUSH2 0x569 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5A3 JUMPI PUSH2 0x5A3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5AF DUP7 DUP7 PUSH2 0x505 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5DB DUP7 DUP3 DUP8 ADD PUSH2 0x539 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5F0 DUP2 PUSH2 0x4E0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x399 DUP3 DUP5 PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH2 0x670 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH2 0x6CD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x73B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x723 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x75C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A0 DUP3 DUP5 PUSH2 0x744 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x793 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x720 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x396 DUP2 DUP5 PUSH2 0x772 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122074D46E DUP14 0xE9 LOG3 0xE5 0x29 0x4F 0xE7 0xB4 0xF8 MSTORE8 CALLDATACOPY 0xF8 0xB5 0x2A DUP12 SWAP1 0x2F 0xB1 GASLIMIT MLOAD 0xD7 BYTE PUSH14 0xD8277259694664736F6C63430008 NOT STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB CALLDATASIZE ADDMOD SWAP5 LOG1 EXTCODESIZE LOG1 LOG3 0x21 MOD PUSH8 0xC828492DB98DCA3E KECCAK256 PUSH23 0xCC3735A920A3CA505D382BBC416464726573733A206C6F PUSH24 0x2D6C6576656C2064656C65676174652063616C6C20666169 PUSH13 0x65640000000000000000000000 ","sourceMap":"1653:3648:64:-:0;;;1976:499;;;;;;;;;;;;;;;;;;:::i;:::-;2091:6;2099:5;1050:54:55;1103:1;1058:41;1050:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1018:87:55;1011:95;;;;:::i;:::-;1116:39;1134:6;1142:5;1149;1116:17;:39::i;:::-;-1:-1:-1;2146:45:64::1;::::0;-1:-1:-1;2190:1:64::1;2154:32;2146:45;:::i;:::-;-1:-1:-1::0;;;;;;;;;;;2123:69:64::1;2116:77;;;;:::i;:::-;-1:-1:-1::0;;;;;2203:15:64;::::1;;::::0;-1:-1:-1;;;;;;;;;;;2392:20:64;;;2436:32:::1;::::0;::::1;::::0;::::1;::::0;2277:12:::1;::::0;2212:6;;2436:32:::1;:::i;:::-;;;;;;;;2106:369;1976:499:::0;;;1653:3648;;2188:295:56;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2365:112;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:56;;;;;;;;1902:152;:::o;6575:198:61:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:56:-;-1:-1:-1;;;;;1470:19:61;;;1610:95:56;;;;-1:-1:-1;;;1610:95:56;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;;;;;;1715:74:56;;-1:-1:-1;;;;;;1715:74:56;-1:-1:-1;;;;;1715:74:56;;;;;;;;;;1537:259::o;6959:387:61:-;7100:12;-1:-1:-1;;;;;1470:19:61;;;7124:69;;;;-1:-1:-1;;;7124:69:61;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:61;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7204:67:61;;-1:-1:-1;7204:67:61;-1:-1:-1;7288:51:61;7204:67;;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:61;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:61;;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;778:13;;800:33;778:13;800:33;:::i;1199:180::-;-1:-1:-1;;;1244:1:65;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;-1:-1:-1;;1183:2:65;1163:14;;1159:28;1460:6;1456:40;1598:6;1586:10;1583:22;-1:-1:-1;;;;;1550:10:65;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1645:2;1638:22;-1:-1:-1;;1385:281:65:o;1672:129::-;1706:6;1733:20;73:2;67:9;;7:75;1733:20;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;-1:-1:-1;;;;;1950:6:65;1947:30;1944:56;;;1980:18;;:::i;:::-;-1:-1:-1;;1183:2:65;1163:14;;1159:28;2102:4;2092:15;;1807:307;-1:-1:-1;;1807:307:65:o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2302:11;;;2296:18;2283:11;;;2276:39;2248:2;2241:10;2212:113;;;-1:-1:-1;;2359:1:65;2341:16;;2334:27;2120:248::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;197:1;194;187:12;2658:79;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;197:1;194;187:12;2948:79;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;2825:353;-1:-1:-1;;;;2825:353:65:o;3184:834::-;3281:6;3289;3297;3346:2;3334:9;3325:7;3321:23;3317:32;3314:119;;;3352:79;197:1;194;187:12;3352:79;3472:1;3497:64;3553:7;3533:9;3497:64;:::i;:::-;3487:74;;3443:128;3610:2;3636:64;3692:7;3683:6;3672:9;3668:22;3636:64;:::i;:::-;3626:74;;3581:129;3770:2;3759:9;3755:18;3749:25;-1:-1:-1;;;;;3793:6:65;3790:30;3787:117;;;3823:79;197:1;194;187:12;3823:79;3928:73;3993:7;3984:6;3973:9;3969:22;3928:73;:::i;:::-;3918:83;;3720:291;3184:834;;;;;:::o;4107:180::-;-1:-1:-1;;;4152:1:65;4145:88;4252:4;4249:1;4242:15;4276:4;4273:1;4266:15;4293:194;4424:9;;;4446:11;;;4443:37;;;4460:18;;:::i;4493:180::-;-1:-1:-1;;;4538:1:65;4531:88;4638:4;4635:1;4628:15;4662:4;4659:1;4652:15;4679:118;4766:24;4784:5;4766:24;:::i;:::-;4761:3;4754:37;4679:118;;:::o;4803:332::-;4962:2;4947:18;;4975:71;4951:9;5019:6;4975:71;:::i;:::-;5056:72;5124:2;5113:9;5109:18;5100:6;5056:72;:::i;5554:366::-;5781:2;5247:19;;5696:3;5299:4;5290:14;;5456:34;5433:58;;-1:-1:-1;;;5520:2:65;5508:15;;5501:40;5710:74;-1:-1:-1;5793:93:65;-1:-1:-1;5911:2:65;5902:12;;5554:366::o;5926:419::-;6130:2;6143:47;;;6115:18;;6207:131;6115:18;6207:131;:::i;6582:366::-;6809:2;5247:19;;6724:3;5299:4;5290:14;;6491:34;6468:58;;-1:-1:-1;;;6555:2:65;6543:15;;6536:33;6738:74;-1:-1:-1;6821:93:65;6351:225;6954:419;7158:2;7171:47;;;7143:18;;7235:131;7143:18;7235:131;:::i;7636:386::-;7740:3;7768:38;7800:5;7458:12;;7379:98;7768:38;7919:65;7977:6;7972:3;7965:4;7958:5;7954:16;7919:65;:::i;:::-;8000:16;;;;;7636:386;-1:-1:-1;;7636:386:65:o;8028:271::-;8158:3;8180:93;8269:3;8260:6;8180:93;:::i;8410:377::-;8498:3;8526:39;8559:5;7458:12;;7379:98;8526:39;5247:19;;;5299:4;5290:14;;8574:78;;8661:65;8719:6;8714:3;8707:4;8700:5;8696:16;8661:65;:::i;:::-;1183:2;1163:14;-1:-1:-1;;1159:28:65;8742:39;;;;;;-1:-1:-1;;8410:377:65:o;8793:313::-;8944:2;8957:47;;;8929:18;;9021:78;8929:18;9085:6;9021:78;:::i;8793:313::-;1653:3648:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_12408":{"entryPoint":null,"id":12408,"parameterSlots":0,"returnSlots":0},"@_12416":{"entryPoint":null,"id":12416,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_12421":{"entryPoint":null,"id":12421,"parameterSlots":0,"returnSlots":0},"@_beforeFallback_13283":{"entryPoint":606,"id":13283,"parameterSlots":0,"returnSlots":0},"@_delegate_12381":{"entryPoint":738,"id":12381,"parameterSlots":1,"returnSlots":0},"@_fallback_12400":{"entryPoint":205,"id":12400,"parameterSlots":0,"returnSlots":0},"@_getAdmin_13292":{"entryPoint":null,"id":13292,"parameterSlots":0,"returnSlots":1},"@_getImplementation_12084":{"entryPoint":null,"id":12084,"parameterSlots":0,"returnSlots":1},"@_implementation_12051":{"entryPoint":687,"id":12051,"parameterSlots":0,"returnSlots":1},"@_setImplementation_12108":{"entryPoint":927,"id":12108,"parameterSlots":1,"returnSlots":0},"@_upgradeToAndCall_12153":{"entryPoint":774,"id":12153,"parameterSlots":3,"returnSlots":0},"@_upgradeTo_12123":{"entryPoint":817,"id":12123,"parameterSlots":1,"returnSlots":0},"@admin_13204":{"entryPoint":519,"id":13204,"parameterSlots":0,"returnSlots":1},"@functionDelegateCall_12969":{"entryPoint":881,"id":12969,"parameterSlots":2,"returnSlots":1},"@functionDelegateCall_13004":{"entryPoint":1031,"id":13004,"parameterSlots":3,"returnSlots":1},"@getAddressSlot_13084":{"entryPoint":null,"id":13084,"parameterSlots":1,"returnSlots":1},"@implementation_13218":{"entryPoint":445,"id":13218,"parameterSlots":0,"returnSlots":1},"@isContract_12759":{"entryPoint":null,"id":12759,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_13253":{"entryPoint":317,"id":13253,"parameterSlots":3,"returnSlots":0},"@upgradeTo_13236":{"entryPoint":231,"id":13236,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_13035":{"entryPoint":1191,"id":13035,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1285,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":1337,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1296,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":1419,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1511,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1906,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack":{"entryPoint":1648,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack":{"entryPoint":1741,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1894,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1526,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1956,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1725,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1808,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1540,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1248,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1824,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1265,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8569:65","nodeType":"YulBlock","src":"0:8569:65","statements":[{"body":{"nativeSrc":"47:35:65","nodeType":"YulBlock","src":"47:35:65","statements":[{"nativeSrc":"57:19:65","nodeType":"YulAssignment","src":"57:19:65","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:65","nodeType":"YulLiteral","src":"73:2:65","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:65","nodeType":"YulIdentifier","src":"67:5:65"},"nativeSrc":"67:9:65","nodeType":"YulFunctionCall","src":"67:9:65"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:65","nodeType":"YulIdentifier","src":"57:6:65"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:65","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:65","nodeType":"YulTypedName","src":"40:6:65","type":""}],"src":"7:75:65"},{"body":{"nativeSrc":"177:28:65","nodeType":"YulBlock","src":"177:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:65","nodeType":"YulLiteral","src":"194:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:65","nodeType":"YulLiteral","src":"197:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:65","nodeType":"YulIdentifier","src":"187:6:65"},"nativeSrc":"187:12:65","nodeType":"YulFunctionCall","src":"187:12:65"},"nativeSrc":"187:12:65","nodeType":"YulExpressionStatement","src":"187:12:65"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:65","nodeType":"YulFunctionDefinition","src":"88:117:65"},{"body":{"nativeSrc":"300:28:65","nodeType":"YulBlock","src":"300:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:65","nodeType":"YulLiteral","src":"317:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:65","nodeType":"YulLiteral","src":"320:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:65","nodeType":"YulIdentifier","src":"310:6:65"},"nativeSrc":"310:12:65","nodeType":"YulFunctionCall","src":"310:12:65"},"nativeSrc":"310:12:65","nodeType":"YulExpressionStatement","src":"310:12:65"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:65","nodeType":"YulFunctionDefinition","src":"211:117:65"},{"body":{"nativeSrc":"379:81:65","nodeType":"YulBlock","src":"379:81:65","statements":[{"nativeSrc":"389:65:65","nodeType":"YulAssignment","src":"389:65:65","value":{"arguments":[{"name":"value","nativeSrc":"404:5:65","nodeType":"YulIdentifier","src":"404:5:65"},{"kind":"number","nativeSrc":"411:42:65","nodeType":"YulLiteral","src":"411:42:65","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:65","nodeType":"YulIdentifier","src":"400:3:65"},"nativeSrc":"400:54:65","nodeType":"YulFunctionCall","src":"400:54:65"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:65","nodeType":"YulIdentifier","src":"389:7:65"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:65","nodeType":"YulTypedName","src":"361:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:65","nodeType":"YulTypedName","src":"371:7:65","type":""}],"src":"334:126:65"},{"body":{"nativeSrc":"511:51:65","nodeType":"YulBlock","src":"511:51:65","statements":[{"nativeSrc":"521:35:65","nodeType":"YulAssignment","src":"521:35:65","value":{"arguments":[{"name":"value","nativeSrc":"550:5:65","nodeType":"YulIdentifier","src":"550:5:65"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:65","nodeType":"YulIdentifier","src":"532:17:65"},"nativeSrc":"532:24:65","nodeType":"YulFunctionCall","src":"532:24:65"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:65","nodeType":"YulIdentifier","src":"521:7:65"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:65","nodeType":"YulTypedName","src":"493:5:65","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:65","nodeType":"YulTypedName","src":"503:7:65","type":""}],"src":"466:96:65"},{"body":{"nativeSrc":"611:79:65","nodeType":"YulBlock","src":"611:79:65","statements":[{"body":{"nativeSrc":"668:16:65","nodeType":"YulBlock","src":"668:16:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:65","nodeType":"YulLiteral","src":"677:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:65","nodeType":"YulLiteral","src":"680:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:65","nodeType":"YulIdentifier","src":"670:6:65"},"nativeSrc":"670:12:65","nodeType":"YulFunctionCall","src":"670:12:65"},"nativeSrc":"670:12:65","nodeType":"YulExpressionStatement","src":"670:12:65"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:65","nodeType":"YulIdentifier","src":"634:5:65"},{"arguments":[{"name":"value","nativeSrc":"659:5:65","nodeType":"YulIdentifier","src":"659:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:65","nodeType":"YulIdentifier","src":"641:17:65"},"nativeSrc":"641:24:65","nodeType":"YulFunctionCall","src":"641:24:65"}],"functionName":{"name":"eq","nativeSrc":"631:2:65","nodeType":"YulIdentifier","src":"631:2:65"},"nativeSrc":"631:35:65","nodeType":"YulFunctionCall","src":"631:35:65"}],"functionName":{"name":"iszero","nativeSrc":"624:6:65","nodeType":"YulIdentifier","src":"624:6:65"},"nativeSrc":"624:43:65","nodeType":"YulFunctionCall","src":"624:43:65"},"nativeSrc":"621:63:65","nodeType":"YulIf","src":"621:63:65"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:65","nodeType":"YulTypedName","src":"604:5:65","type":""}],"src":"568:122:65"},{"body":{"nativeSrc":"748:87:65","nodeType":"YulBlock","src":"748:87:65","statements":[{"nativeSrc":"758:29:65","nodeType":"YulAssignment","src":"758:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:65","nodeType":"YulIdentifier","src":"780:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:65","nodeType":"YulIdentifier","src":"767:12:65"},"nativeSrc":"767:20:65","nodeType":"YulFunctionCall","src":"767:20:65"},"variableNames":[{"name":"value","nativeSrc":"758:5:65","nodeType":"YulIdentifier","src":"758:5:65"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:65","nodeType":"YulIdentifier","src":"823:5:65"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:65","nodeType":"YulIdentifier","src":"796:26:65"},"nativeSrc":"796:33:65","nodeType":"YulFunctionCall","src":"796:33:65"},"nativeSrc":"796:33:65","nodeType":"YulExpressionStatement","src":"796:33:65"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:65","nodeType":"YulTypedName","src":"726:6:65","type":""},{"name":"end","nativeSrc":"734:3:65","nodeType":"YulTypedName","src":"734:3:65","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:65","nodeType":"YulTypedName","src":"742:5:65","type":""}],"src":"696:139:65"},{"body":{"nativeSrc":"907:263:65","nodeType":"YulBlock","src":"907:263:65","statements":[{"body":{"nativeSrc":"953:83:65","nodeType":"YulBlock","src":"953:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"955:77:65","nodeType":"YulIdentifier","src":"955:77:65"},"nativeSrc":"955:79:65","nodeType":"YulFunctionCall","src":"955:79:65"},"nativeSrc":"955:79:65","nodeType":"YulExpressionStatement","src":"955:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"928:7:65","nodeType":"YulIdentifier","src":"928:7:65"},{"name":"headStart","nativeSrc":"937:9:65","nodeType":"YulIdentifier","src":"937:9:65"}],"functionName":{"name":"sub","nativeSrc":"924:3:65","nodeType":"YulIdentifier","src":"924:3:65"},"nativeSrc":"924:23:65","nodeType":"YulFunctionCall","src":"924:23:65"},{"kind":"number","nativeSrc":"949:2:65","nodeType":"YulLiteral","src":"949:2:65","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"920:3:65","nodeType":"YulIdentifier","src":"920:3:65"},"nativeSrc":"920:32:65","nodeType":"YulFunctionCall","src":"920:32:65"},"nativeSrc":"917:119:65","nodeType":"YulIf","src":"917:119:65"},{"nativeSrc":"1046:117:65","nodeType":"YulBlock","src":"1046:117:65","statements":[{"nativeSrc":"1061:15:65","nodeType":"YulVariableDeclaration","src":"1061:15:65","value":{"kind":"number","nativeSrc":"1075:1:65","nodeType":"YulLiteral","src":"1075:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1065:6:65","nodeType":"YulTypedName","src":"1065:6:65","type":""}]},{"nativeSrc":"1090:63:65","nodeType":"YulAssignment","src":"1090:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1125:9:65","nodeType":"YulIdentifier","src":"1125:9:65"},{"name":"offset","nativeSrc":"1136:6:65","nodeType":"YulIdentifier","src":"1136:6:65"}],"functionName":{"name":"add","nativeSrc":"1121:3:65","nodeType":"YulIdentifier","src":"1121:3:65"},"nativeSrc":"1121:22:65","nodeType":"YulFunctionCall","src":"1121:22:65"},{"name":"dataEnd","nativeSrc":"1145:7:65","nodeType":"YulIdentifier","src":"1145:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1100:20:65","nodeType":"YulIdentifier","src":"1100:20:65"},"nativeSrc":"1100:53:65","nodeType":"YulFunctionCall","src":"1100:53:65"},"variableNames":[{"name":"value0","nativeSrc":"1090:6:65","nodeType":"YulIdentifier","src":"1090:6:65"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"841:329:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"877:9:65","nodeType":"YulTypedName","src":"877:9:65","type":""},{"name":"dataEnd","nativeSrc":"888:7:65","nodeType":"YulTypedName","src":"888:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"900:6:65","nodeType":"YulTypedName","src":"900:6:65","type":""}],"src":"841:329:65"},{"body":{"nativeSrc":"1265:28:65","nodeType":"YulBlock","src":"1265:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1282:1:65","nodeType":"YulLiteral","src":"1282:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1285:1:65","nodeType":"YulLiteral","src":"1285:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1275:6:65","nodeType":"YulIdentifier","src":"1275:6:65"},"nativeSrc":"1275:12:65","nodeType":"YulFunctionCall","src":"1275:12:65"},"nativeSrc":"1275:12:65","nodeType":"YulExpressionStatement","src":"1275:12:65"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1176:117:65","nodeType":"YulFunctionDefinition","src":"1176:117:65"},{"body":{"nativeSrc":"1388:28:65","nodeType":"YulBlock","src":"1388:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1405:1:65","nodeType":"YulLiteral","src":"1405:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1408:1:65","nodeType":"YulLiteral","src":"1408:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1398:6:65","nodeType":"YulIdentifier","src":"1398:6:65"},"nativeSrc":"1398:12:65","nodeType":"YulFunctionCall","src":"1398:12:65"},"nativeSrc":"1398:12:65","nodeType":"YulExpressionStatement","src":"1398:12:65"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1299:117:65","nodeType":"YulFunctionDefinition","src":"1299:117:65"},{"body":{"nativeSrc":"1511:28:65","nodeType":"YulBlock","src":"1511:28:65","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1528:1:65","nodeType":"YulLiteral","src":"1528:1:65","type":"","value":"0"},{"kind":"number","nativeSrc":"1531:1:65","nodeType":"YulLiteral","src":"1531:1:65","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1521:6:65","nodeType":"YulIdentifier","src":"1521:6:65"},"nativeSrc":"1521:12:65","nodeType":"YulFunctionCall","src":"1521:12:65"},"nativeSrc":"1521:12:65","nodeType":"YulExpressionStatement","src":"1521:12:65"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1422:117:65","nodeType":"YulFunctionDefinition","src":"1422:117:65"},{"body":{"nativeSrc":"1632:478:65","nodeType":"YulBlock","src":"1632:478:65","statements":[{"body":{"nativeSrc":"1681:83:65","nodeType":"YulBlock","src":"1681:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1683:77:65","nodeType":"YulIdentifier","src":"1683:77:65"},"nativeSrc":"1683:79:65","nodeType":"YulFunctionCall","src":"1683:79:65"},"nativeSrc":"1683:79:65","nodeType":"YulExpressionStatement","src":"1683:79:65"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1660:6:65","nodeType":"YulIdentifier","src":"1660:6:65"},{"kind":"number","nativeSrc":"1668:4:65","nodeType":"YulLiteral","src":"1668:4:65","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1656:3:65","nodeType":"YulIdentifier","src":"1656:3:65"},"nativeSrc":"1656:17:65","nodeType":"YulFunctionCall","src":"1656:17:65"},{"name":"end","nativeSrc":"1675:3:65","nodeType":"YulIdentifier","src":"1675:3:65"}],"functionName":{"name":"slt","nativeSrc":"1652:3:65","nodeType":"YulIdentifier","src":"1652:3:65"},"nativeSrc":"1652:27:65","nodeType":"YulFunctionCall","src":"1652:27:65"}],"functionName":{"name":"iszero","nativeSrc":"1645:6:65","nodeType":"YulIdentifier","src":"1645:6:65"},"nativeSrc":"1645:35:65","nodeType":"YulFunctionCall","src":"1645:35:65"},"nativeSrc":"1642:122:65","nodeType":"YulIf","src":"1642:122:65"},{"nativeSrc":"1773:30:65","nodeType":"YulAssignment","src":"1773:30:65","value":{"arguments":[{"name":"offset","nativeSrc":"1796:6:65","nodeType":"YulIdentifier","src":"1796:6:65"}],"functionName":{"name":"calldataload","nativeSrc":"1783:12:65","nodeType":"YulIdentifier","src":"1783:12:65"},"nativeSrc":"1783:20:65","nodeType":"YulFunctionCall","src":"1783:20:65"},"variableNames":[{"name":"length","nativeSrc":"1773:6:65","nodeType":"YulIdentifier","src":"1773:6:65"}]},{"body":{"nativeSrc":"1846:83:65","nodeType":"YulBlock","src":"1846:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1848:77:65","nodeType":"YulIdentifier","src":"1848:77:65"},"nativeSrc":"1848:79:65","nodeType":"YulFunctionCall","src":"1848:79:65"},"nativeSrc":"1848:79:65","nodeType":"YulExpressionStatement","src":"1848:79:65"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1818:6:65","nodeType":"YulIdentifier","src":"1818:6:65"},{"kind":"number","nativeSrc":"1826:18:65","nodeType":"YulLiteral","src":"1826:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1815:2:65","nodeType":"YulIdentifier","src":"1815:2:65"},"nativeSrc":"1815:30:65","nodeType":"YulFunctionCall","src":"1815:30:65"},"nativeSrc":"1812:117:65","nodeType":"YulIf","src":"1812:117:65"},{"nativeSrc":"1938:29:65","nodeType":"YulAssignment","src":"1938:29:65","value":{"arguments":[{"name":"offset","nativeSrc":"1954:6:65","nodeType":"YulIdentifier","src":"1954:6:65"},{"kind":"number","nativeSrc":"1962:4:65","nodeType":"YulLiteral","src":"1962:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1950:3:65","nodeType":"YulIdentifier","src":"1950:3:65"},"nativeSrc":"1950:17:65","nodeType":"YulFunctionCall","src":"1950:17:65"},"variableNames":[{"name":"arrayPos","nativeSrc":"1938:8:65","nodeType":"YulIdentifier","src":"1938:8:65"}]},{"body":{"nativeSrc":"2021:83:65","nodeType":"YulBlock","src":"2021:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2023:77:65","nodeType":"YulIdentifier","src":"2023:77:65"},"nativeSrc":"2023:79:65","nodeType":"YulFunctionCall","src":"2023:79:65"},"nativeSrc":"2023:79:65","nodeType":"YulExpressionStatement","src":"2023:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1986:8:65","nodeType":"YulIdentifier","src":"1986:8:65"},{"arguments":[{"name":"length","nativeSrc":"2000:6:65","nodeType":"YulIdentifier","src":"2000:6:65"},{"kind":"number","nativeSrc":"2008:4:65","nodeType":"YulLiteral","src":"2008:4:65","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1996:3:65","nodeType":"YulIdentifier","src":"1996:3:65"},"nativeSrc":"1996:17:65","nodeType":"YulFunctionCall","src":"1996:17:65"}],"functionName":{"name":"add","nativeSrc":"1982:3:65","nodeType":"YulIdentifier","src":"1982:3:65"},"nativeSrc":"1982:32:65","nodeType":"YulFunctionCall","src":"1982:32:65"},{"name":"end","nativeSrc":"2016:3:65","nodeType":"YulIdentifier","src":"2016:3:65"}],"functionName":{"name":"gt","nativeSrc":"1979:2:65","nodeType":"YulIdentifier","src":"1979:2:65"},"nativeSrc":"1979:41:65","nodeType":"YulFunctionCall","src":"1979:41:65"},"nativeSrc":"1976:128:65","nodeType":"YulIf","src":"1976:128:65"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1558:552:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1599:6:65","nodeType":"YulTypedName","src":"1599:6:65","type":""},{"name":"end","nativeSrc":"1607:3:65","nodeType":"YulTypedName","src":"1607:3:65","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1615:8:65","nodeType":"YulTypedName","src":"1615:8:65","type":""},{"name":"length","nativeSrc":"1625:6:65","nodeType":"YulTypedName","src":"1625:6:65","type":""}],"src":"1558:552:65"},{"body":{"nativeSrc":"2218:570:65","nodeType":"YulBlock","src":"2218:570:65","statements":[{"body":{"nativeSrc":"2264:83:65","nodeType":"YulBlock","src":"2264:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2266:77:65","nodeType":"YulIdentifier","src":"2266:77:65"},"nativeSrc":"2266:79:65","nodeType":"YulFunctionCall","src":"2266:79:65"},"nativeSrc":"2266:79:65","nodeType":"YulExpressionStatement","src":"2266:79:65"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2239:7:65","nodeType":"YulIdentifier","src":"2239:7:65"},{"name":"headStart","nativeSrc":"2248:9:65","nodeType":"YulIdentifier","src":"2248:9:65"}],"functionName":{"name":"sub","nativeSrc":"2235:3:65","nodeType":"YulIdentifier","src":"2235:3:65"},"nativeSrc":"2235:23:65","nodeType":"YulFunctionCall","src":"2235:23:65"},{"kind":"number","nativeSrc":"2260:2:65","nodeType":"YulLiteral","src":"2260:2:65","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2231:3:65","nodeType":"YulIdentifier","src":"2231:3:65"},"nativeSrc":"2231:32:65","nodeType":"YulFunctionCall","src":"2231:32:65"},"nativeSrc":"2228:119:65","nodeType":"YulIf","src":"2228:119:65"},{"nativeSrc":"2357:117:65","nodeType":"YulBlock","src":"2357:117:65","statements":[{"nativeSrc":"2372:15:65","nodeType":"YulVariableDeclaration","src":"2372:15:65","value":{"kind":"number","nativeSrc":"2386:1:65","nodeType":"YulLiteral","src":"2386:1:65","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2376:6:65","nodeType":"YulTypedName","src":"2376:6:65","type":""}]},{"nativeSrc":"2401:63:65","nodeType":"YulAssignment","src":"2401:63:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2436:9:65","nodeType":"YulIdentifier","src":"2436:9:65"},{"name":"offset","nativeSrc":"2447:6:65","nodeType":"YulIdentifier","src":"2447:6:65"}],"functionName":{"name":"add","nativeSrc":"2432:3:65","nodeType":"YulIdentifier","src":"2432:3:65"},"nativeSrc":"2432:22:65","nodeType":"YulFunctionCall","src":"2432:22:65"},{"name":"dataEnd","nativeSrc":"2456:7:65","nodeType":"YulIdentifier","src":"2456:7:65"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2411:20:65","nodeType":"YulIdentifier","src":"2411:20:65"},"nativeSrc":"2411:53:65","nodeType":"YulFunctionCall","src":"2411:53:65"},"variableNames":[{"name":"value0","nativeSrc":"2401:6:65","nodeType":"YulIdentifier","src":"2401:6:65"}]}]},{"nativeSrc":"2484:297:65","nodeType":"YulBlock","src":"2484:297:65","statements":[{"nativeSrc":"2499:46:65","nodeType":"YulVariableDeclaration","src":"2499:46:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2530:9:65","nodeType":"YulIdentifier","src":"2530:9:65"},{"kind":"number","nativeSrc":"2541:2:65","nodeType":"YulLiteral","src":"2541:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2526:3:65","nodeType":"YulIdentifier","src":"2526:3:65"},"nativeSrc":"2526:18:65","nodeType":"YulFunctionCall","src":"2526:18:65"}],"functionName":{"name":"calldataload","nativeSrc":"2513:12:65","nodeType":"YulIdentifier","src":"2513:12:65"},"nativeSrc":"2513:32:65","nodeType":"YulFunctionCall","src":"2513:32:65"},"variables":[{"name":"offset","nativeSrc":"2503:6:65","nodeType":"YulTypedName","src":"2503:6:65","type":""}]},{"body":{"nativeSrc":"2592:83:65","nodeType":"YulBlock","src":"2592:83:65","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2594:77:65","nodeType":"YulIdentifier","src":"2594:77:65"},"nativeSrc":"2594:79:65","nodeType":"YulFunctionCall","src":"2594:79:65"},"nativeSrc":"2594:79:65","nodeType":"YulExpressionStatement","src":"2594:79:65"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2564:6:65","nodeType":"YulIdentifier","src":"2564:6:65"},{"kind":"number","nativeSrc":"2572:18:65","nodeType":"YulLiteral","src":"2572:18:65","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2561:2:65","nodeType":"YulIdentifier","src":"2561:2:65"},"nativeSrc":"2561:30:65","nodeType":"YulFunctionCall","src":"2561:30:65"},"nativeSrc":"2558:117:65","nodeType":"YulIf","src":"2558:117:65"},{"nativeSrc":"2689:82:65","nodeType":"YulAssignment","src":"2689:82:65","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2743:9:65","nodeType":"YulIdentifier","src":"2743:9:65"},{"name":"offset","nativeSrc":"2754:6:65","nodeType":"YulIdentifier","src":"2754:6:65"}],"functionName":{"name":"add","nativeSrc":"2739:3:65","nodeType":"YulIdentifier","src":"2739:3:65"},"nativeSrc":"2739:22:65","nodeType":"YulFunctionCall","src":"2739:22:65"},{"name":"dataEnd","nativeSrc":"2763:7:65","nodeType":"YulIdentifier","src":"2763:7:65"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2707:31:65","nodeType":"YulIdentifier","src":"2707:31:65"},"nativeSrc":"2707:64:65","nodeType":"YulFunctionCall","src":"2707:64:65"},"variableNames":[{"name":"value1","nativeSrc":"2689:6:65","nodeType":"YulIdentifier","src":"2689:6:65"},{"name":"value2","nativeSrc":"2697:6:65","nodeType":"YulIdentifier","src":"2697:6:65"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"2116:672:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2172:9:65","nodeType":"YulTypedName","src":"2172:9:65","type":""},{"name":"dataEnd","nativeSrc":"2183:7:65","nodeType":"YulTypedName","src":"2183:7:65","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2195:6:65","nodeType":"YulTypedName","src":"2195:6:65","type":""},{"name":"value1","nativeSrc":"2203:6:65","nodeType":"YulTypedName","src":"2203:6:65","type":""},{"name":"value2","nativeSrc":"2211:6:65","nodeType":"YulTypedName","src":"2211:6:65","type":""}],"src":"2116:672:65"},{"body":{"nativeSrc":"2859:53:65","nodeType":"YulBlock","src":"2859:53:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2876:3:65","nodeType":"YulIdentifier","src":"2876:3:65"},{"arguments":[{"name":"value","nativeSrc":"2899:5:65","nodeType":"YulIdentifier","src":"2899:5:65"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2881:17:65","nodeType":"YulIdentifier","src":"2881:17:65"},"nativeSrc":"2881:24:65","nodeType":"YulFunctionCall","src":"2881:24:65"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:65","nodeType":"YulIdentifier","src":"2869:6:65"},"nativeSrc":"2869:37:65","nodeType":"YulFunctionCall","src":"2869:37:65"},"nativeSrc":"2869:37:65","nodeType":"YulExpressionStatement","src":"2869:37:65"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2794:118:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2847:5:65","nodeType":"YulTypedName","src":"2847:5:65","type":""},{"name":"pos","nativeSrc":"2854:3:65","nodeType":"YulTypedName","src":"2854:3:65","type":""}],"src":"2794:118:65"},{"body":{"nativeSrc":"3016:124:65","nodeType":"YulBlock","src":"3016:124:65","statements":[{"nativeSrc":"3026:26:65","nodeType":"YulAssignment","src":"3026:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"3038:9:65","nodeType":"YulIdentifier","src":"3038:9:65"},{"kind":"number","nativeSrc":"3049:2:65","nodeType":"YulLiteral","src":"3049:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3034:3:65","nodeType":"YulIdentifier","src":"3034:3:65"},"nativeSrc":"3034:18:65","nodeType":"YulFunctionCall","src":"3034:18:65"},"variableNames":[{"name":"tail","nativeSrc":"3026:4:65","nodeType":"YulIdentifier","src":"3026:4:65"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3106:6:65","nodeType":"YulIdentifier","src":"3106:6:65"},{"arguments":[{"name":"headStart","nativeSrc":"3119:9:65","nodeType":"YulIdentifier","src":"3119:9:65"},{"kind":"number","nativeSrc":"3130:1:65","nodeType":"YulLiteral","src":"3130:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3115:3:65","nodeType":"YulIdentifier","src":"3115:3:65"},"nativeSrc":"3115:17:65","nodeType":"YulFunctionCall","src":"3115:17:65"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3062:43:65","nodeType":"YulIdentifier","src":"3062:43:65"},"nativeSrc":"3062:71:65","nodeType":"YulFunctionCall","src":"3062:71:65"},"nativeSrc":"3062:71:65","nodeType":"YulExpressionStatement","src":"3062:71:65"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2918:222:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2988:9:65","nodeType":"YulTypedName","src":"2988:9:65","type":""},{"name":"value0","nativeSrc":"3000:6:65","nodeType":"YulTypedName","src":"3000:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3011:4:65","nodeType":"YulTypedName","src":"3011:4:65","type":""}],"src":"2918:222:65"},{"body":{"nativeSrc":"3242:73:65","nodeType":"YulBlock","src":"3242:73:65","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3259:3:65","nodeType":"YulIdentifier","src":"3259:3:65"},{"name":"length","nativeSrc":"3264:6:65","nodeType":"YulIdentifier","src":"3264:6:65"}],"functionName":{"name":"mstore","nativeSrc":"3252:6:65","nodeType":"YulIdentifier","src":"3252:6:65"},"nativeSrc":"3252:19:65","nodeType":"YulFunctionCall","src":"3252:19:65"},"nativeSrc":"3252:19:65","nodeType":"YulExpressionStatement","src":"3252:19:65"},{"nativeSrc":"3280:29:65","nodeType":"YulAssignment","src":"3280:29:65","value":{"arguments":[{"name":"pos","nativeSrc":"3299:3:65","nodeType":"YulIdentifier","src":"3299:3:65"},{"kind":"number","nativeSrc":"3304:4:65","nodeType":"YulLiteral","src":"3304:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3295:3:65","nodeType":"YulIdentifier","src":"3295:3:65"},"nativeSrc":"3295:14:65","nodeType":"YulFunctionCall","src":"3295:14:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"3280:11:65","nodeType":"YulIdentifier","src":"3280:11:65"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3146:169:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3214:3:65","nodeType":"YulTypedName","src":"3214:3:65","type":""},{"name":"length","nativeSrc":"3219:6:65","nodeType":"YulTypedName","src":"3219:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3230:11:65","nodeType":"YulTypedName","src":"3230:11:65","type":""}],"src":"3146:169:65"},{"body":{"nativeSrc":"3427:184:65","nodeType":"YulBlock","src":"3427:184:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3449:6:65","nodeType":"YulIdentifier","src":"3449:6:65"},{"kind":"number","nativeSrc":"3457:1:65","nodeType":"YulLiteral","src":"3457:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3445:3:65","nodeType":"YulIdentifier","src":"3445:3:65"},"nativeSrc":"3445:14:65","nodeType":"YulFunctionCall","src":"3445:14:65"},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d","kind":"string","nativeSrc":"3461:34:65","nodeType":"YulLiteral","src":"3461:34:65","type":"","value":"TransparentUpgradeableProxy: adm"}],"functionName":{"name":"mstore","nativeSrc":"3438:6:65","nodeType":"YulIdentifier","src":"3438:6:65"},"nativeSrc":"3438:58:65","nodeType":"YulFunctionCall","src":"3438:58:65"},"nativeSrc":"3438:58:65","nodeType":"YulExpressionStatement","src":"3438:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3517:6:65","nodeType":"YulIdentifier","src":"3517:6:65"},{"kind":"number","nativeSrc":"3525:2:65","nodeType":"YulLiteral","src":"3525:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:65","nodeType":"YulIdentifier","src":"3513:3:65"},"nativeSrc":"3513:15:65","nodeType":"YulFunctionCall","src":"3513:15:65"},{"hexValue":"696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267","kind":"string","nativeSrc":"3530:34:65","nodeType":"YulLiteral","src":"3530:34:65","type":"","value":"in cannot fallback to proxy targ"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:65","nodeType":"YulIdentifier","src":"3506:6:65"},"nativeSrc":"3506:59:65","nodeType":"YulFunctionCall","src":"3506:59:65"},"nativeSrc":"3506:59:65","nodeType":"YulExpressionStatement","src":"3506:59:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"3586:6:65","nodeType":"YulIdentifier","src":"3586:6:65"},{"kind":"number","nativeSrc":"3594:2:65","nodeType":"YulLiteral","src":"3594:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3582:3:65","nodeType":"YulIdentifier","src":"3582:3:65"},"nativeSrc":"3582:15:65","nodeType":"YulFunctionCall","src":"3582:15:65"},{"hexValue":"6574","kind":"string","nativeSrc":"3599:4:65","nodeType":"YulLiteral","src":"3599:4:65","type":"","value":"et"}],"functionName":{"name":"mstore","nativeSrc":"3575:6:65","nodeType":"YulIdentifier","src":"3575:6:65"},"nativeSrc":"3575:29:65","nodeType":"YulFunctionCall","src":"3575:29:65"},"nativeSrc":"3575:29:65","nodeType":"YulExpressionStatement","src":"3575:29:65"}]},"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3321:290:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"3419:6:65","nodeType":"YulTypedName","src":"3419:6:65","type":""}],"src":"3321:290:65"},{"body":{"nativeSrc":"3763:220:65","nodeType":"YulBlock","src":"3763:220:65","statements":[{"nativeSrc":"3773:74:65","nodeType":"YulAssignment","src":"3773:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"3839:3:65","nodeType":"YulIdentifier","src":"3839:3:65"},{"kind":"number","nativeSrc":"3844:2:65","nodeType":"YulLiteral","src":"3844:2:65","type":"","value":"66"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3780:58:65","nodeType":"YulIdentifier","src":"3780:58:65"},"nativeSrc":"3780:67:65","nodeType":"YulFunctionCall","src":"3780:67:65"},"variableNames":[{"name":"pos","nativeSrc":"3773:3:65","nodeType":"YulIdentifier","src":"3773:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"3945:3:65","nodeType":"YulIdentifier","src":"3945:3:65"}],"functionName":{"name":"store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","nativeSrc":"3856:88:65","nodeType":"YulIdentifier","src":"3856:88:65"},"nativeSrc":"3856:93:65","nodeType":"YulFunctionCall","src":"3856:93:65"},"nativeSrc":"3856:93:65","nodeType":"YulExpressionStatement","src":"3856:93:65"},{"nativeSrc":"3958:19:65","nodeType":"YulAssignment","src":"3958:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"3969:3:65","nodeType":"YulIdentifier","src":"3969:3:65"},{"kind":"number","nativeSrc":"3974:2:65","nodeType":"YulLiteral","src":"3974:2:65","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3965:3:65","nodeType":"YulIdentifier","src":"3965:3:65"},"nativeSrc":"3965:12:65","nodeType":"YulFunctionCall","src":"3965:12:65"},"variableNames":[{"name":"end","nativeSrc":"3958:3:65","nodeType":"YulIdentifier","src":"3958:3:65"}]}]},"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"3617:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3751:3:65","nodeType":"YulTypedName","src":"3751:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3759:3:65","nodeType":"YulTypedName","src":"3759:3:65","type":""}],"src":"3617:366:65"},{"body":{"nativeSrc":"4160:248:65","nodeType":"YulBlock","src":"4160:248:65","statements":[{"nativeSrc":"4170:26:65","nodeType":"YulAssignment","src":"4170:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"4182:9:65","nodeType":"YulIdentifier","src":"4182:9:65"},{"kind":"number","nativeSrc":"4193:2:65","nodeType":"YulLiteral","src":"4193:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4178:3:65","nodeType":"YulIdentifier","src":"4178:3:65"},"nativeSrc":"4178:18:65","nodeType":"YulFunctionCall","src":"4178:18:65"},"variableNames":[{"name":"tail","nativeSrc":"4170:4:65","nodeType":"YulIdentifier","src":"4170:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4217:9:65","nodeType":"YulIdentifier","src":"4217:9:65"},{"kind":"number","nativeSrc":"4228:1:65","nodeType":"YulLiteral","src":"4228:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4213:3:65","nodeType":"YulIdentifier","src":"4213:3:65"},"nativeSrc":"4213:17:65","nodeType":"YulFunctionCall","src":"4213:17:65"},{"arguments":[{"name":"tail","nativeSrc":"4236:4:65","nodeType":"YulIdentifier","src":"4236:4:65"},{"name":"headStart","nativeSrc":"4242:9:65","nodeType":"YulIdentifier","src":"4242:9:65"}],"functionName":{"name":"sub","nativeSrc":"4232:3:65","nodeType":"YulIdentifier","src":"4232:3:65"},"nativeSrc":"4232:20:65","nodeType":"YulFunctionCall","src":"4232:20:65"}],"functionName":{"name":"mstore","nativeSrc":"4206:6:65","nodeType":"YulIdentifier","src":"4206:6:65"},"nativeSrc":"4206:47:65","nodeType":"YulFunctionCall","src":"4206:47:65"},"nativeSrc":"4206:47:65","nodeType":"YulExpressionStatement","src":"4206:47:65"},{"nativeSrc":"4262:139:65","nodeType":"YulAssignment","src":"4262:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"4396:4:65","nodeType":"YulIdentifier","src":"4396:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack","nativeSrc":"4270:124:65","nodeType":"YulIdentifier","src":"4270:124:65"},"nativeSrc":"4270:131:65","nodeType":"YulFunctionCall","src":"4270:131:65"},"variableNames":[{"name":"tail","nativeSrc":"4262:4:65","nodeType":"YulIdentifier","src":"4262:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3989:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4140:9:65","nodeType":"YulTypedName","src":"4140:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4155:4:65","nodeType":"YulTypedName","src":"4155:4:65","type":""}],"src":"3989:419:65"},{"body":{"nativeSrc":"4520:126:65","nodeType":"YulBlock","src":"4520:126:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4542:6:65","nodeType":"YulIdentifier","src":"4542:6:65"},{"kind":"number","nativeSrc":"4550:1:65","nodeType":"YulLiteral","src":"4550:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4538:3:65","nodeType":"YulIdentifier","src":"4538:3:65"},"nativeSrc":"4538:14:65","nodeType":"YulFunctionCall","src":"4538:14:65"},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e","kind":"string","nativeSrc":"4554:34:65","nodeType":"YulLiteral","src":"4554:34:65","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nativeSrc":"4531:6:65","nodeType":"YulIdentifier","src":"4531:6:65"},"nativeSrc":"4531:58:65","nodeType":"YulFunctionCall","src":"4531:58:65"},"nativeSrc":"4531:58:65","nodeType":"YulExpressionStatement","src":"4531:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4610:6:65","nodeType":"YulIdentifier","src":"4610:6:65"},{"kind":"number","nativeSrc":"4618:2:65","nodeType":"YulLiteral","src":"4618:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4606:3:65","nodeType":"YulIdentifier","src":"4606:3:65"},"nativeSrc":"4606:15:65","nodeType":"YulFunctionCall","src":"4606:15:65"},{"hexValue":"6f74206120636f6e7472616374","kind":"string","nativeSrc":"4623:15:65","nodeType":"YulLiteral","src":"4623:15:65","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nativeSrc":"4599:6:65","nodeType":"YulIdentifier","src":"4599:6:65"},"nativeSrc":"4599:40:65","nodeType":"YulFunctionCall","src":"4599:40:65"},"nativeSrc":"4599:40:65","nodeType":"YulExpressionStatement","src":"4599:40:65"}]},"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4414:232:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"4512:6:65","nodeType":"YulTypedName","src":"4512:6:65","type":""}],"src":"4414:232:65"},{"body":{"nativeSrc":"4798:220:65","nodeType":"YulBlock","src":"4798:220:65","statements":[{"nativeSrc":"4808:74:65","nodeType":"YulAssignment","src":"4808:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"4874:3:65","nodeType":"YulIdentifier","src":"4874:3:65"},{"kind":"number","nativeSrc":"4879:2:65","nodeType":"YulLiteral","src":"4879:2:65","type":"","value":"45"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4815:58:65","nodeType":"YulIdentifier","src":"4815:58:65"},"nativeSrc":"4815:67:65","nodeType":"YulFunctionCall","src":"4815:67:65"},"variableNames":[{"name":"pos","nativeSrc":"4808:3:65","nodeType":"YulIdentifier","src":"4808:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4980:3:65","nodeType":"YulIdentifier","src":"4980:3:65"}],"functionName":{"name":"store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","nativeSrc":"4891:88:65","nodeType":"YulIdentifier","src":"4891:88:65"},"nativeSrc":"4891:93:65","nodeType":"YulFunctionCall","src":"4891:93:65"},"nativeSrc":"4891:93:65","nodeType":"YulExpressionStatement","src":"4891:93:65"},{"nativeSrc":"4993:19:65","nodeType":"YulAssignment","src":"4993:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"5004:3:65","nodeType":"YulIdentifier","src":"5004:3:65"},{"kind":"number","nativeSrc":"5009:2:65","nodeType":"YulLiteral","src":"5009:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5000:3:65","nodeType":"YulIdentifier","src":"5000:3:65"},"nativeSrc":"5000:12:65","nodeType":"YulFunctionCall","src":"5000:12:65"},"variableNames":[{"name":"end","nativeSrc":"4993:3:65","nodeType":"YulIdentifier","src":"4993:3:65"}]}]},"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"4652:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4786:3:65","nodeType":"YulTypedName","src":"4786:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4794:3:65","nodeType":"YulTypedName","src":"4794:3:65","type":""}],"src":"4652:366:65"},{"body":{"nativeSrc":"5195:248:65","nodeType":"YulBlock","src":"5195:248:65","statements":[{"nativeSrc":"5205:26:65","nodeType":"YulAssignment","src":"5205:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"5217:9:65","nodeType":"YulIdentifier","src":"5217:9:65"},{"kind":"number","nativeSrc":"5228:2:65","nodeType":"YulLiteral","src":"5228:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5213:3:65","nodeType":"YulIdentifier","src":"5213:3:65"},"nativeSrc":"5213:18:65","nodeType":"YulFunctionCall","src":"5213:18:65"},"variableNames":[{"name":"tail","nativeSrc":"5205:4:65","nodeType":"YulIdentifier","src":"5205:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5252:9:65","nodeType":"YulIdentifier","src":"5252:9:65"},{"kind":"number","nativeSrc":"5263:1:65","nodeType":"YulLiteral","src":"5263:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5248:3:65","nodeType":"YulIdentifier","src":"5248:3:65"},"nativeSrc":"5248:17:65","nodeType":"YulFunctionCall","src":"5248:17:65"},{"arguments":[{"name":"tail","nativeSrc":"5271:4:65","nodeType":"YulIdentifier","src":"5271:4:65"},{"name":"headStart","nativeSrc":"5277:9:65","nodeType":"YulIdentifier","src":"5277:9:65"}],"functionName":{"name":"sub","nativeSrc":"5267:3:65","nodeType":"YulIdentifier","src":"5267:3:65"},"nativeSrc":"5267:20:65","nodeType":"YulFunctionCall","src":"5267:20:65"}],"functionName":{"name":"mstore","nativeSrc":"5241:6:65","nodeType":"YulIdentifier","src":"5241:6:65"},"nativeSrc":"5241:47:65","nodeType":"YulFunctionCall","src":"5241:47:65"},"nativeSrc":"5241:47:65","nodeType":"YulExpressionStatement","src":"5241:47:65"},{"nativeSrc":"5297:139:65","nodeType":"YulAssignment","src":"5297:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"5431:4:65","nodeType":"YulIdentifier","src":"5431:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack","nativeSrc":"5305:124:65","nodeType":"YulIdentifier","src":"5305:124:65"},"nativeSrc":"5305:131:65","nodeType":"YulFunctionCall","src":"5305:131:65"},"variableNames":[{"name":"tail","nativeSrc":"5297:4:65","nodeType":"YulIdentifier","src":"5297:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5024:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5175:9:65","nodeType":"YulTypedName","src":"5175:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5190:4:65","nodeType":"YulTypedName","src":"5190:4:65","type":""}],"src":"5024:419:65"},{"body":{"nativeSrc":"5555:119:65","nodeType":"YulBlock","src":"5555:119:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5577:6:65","nodeType":"YulIdentifier","src":"5577:6:65"},{"kind":"number","nativeSrc":"5585:1:65","nodeType":"YulLiteral","src":"5585:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5573:3:65","nodeType":"YulIdentifier","src":"5573:3:65"},"nativeSrc":"5573:14:65","nodeType":"YulFunctionCall","src":"5573:14:65"},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f","kind":"string","nativeSrc":"5589:34:65","nodeType":"YulLiteral","src":"5589:34:65","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nativeSrc":"5566:6:65","nodeType":"YulIdentifier","src":"5566:6:65"},"nativeSrc":"5566:58:65","nodeType":"YulFunctionCall","src":"5566:58:65"},"nativeSrc":"5566:58:65","nodeType":"YulExpressionStatement","src":"5566:58:65"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5645:6:65","nodeType":"YulIdentifier","src":"5645:6:65"},{"kind":"number","nativeSrc":"5653:2:65","nodeType":"YulLiteral","src":"5653:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5641:3:65","nodeType":"YulIdentifier","src":"5641:3:65"},"nativeSrc":"5641:15:65","nodeType":"YulFunctionCall","src":"5641:15:65"},{"hexValue":"6e7472616374","kind":"string","nativeSrc":"5658:8:65","nodeType":"YulLiteral","src":"5658:8:65","type":"","value":"ntract"}],"functionName":{"name":"mstore","nativeSrc":"5634:6:65","nodeType":"YulIdentifier","src":"5634:6:65"},"nativeSrc":"5634:33:65","nodeType":"YulFunctionCall","src":"5634:33:65"},"nativeSrc":"5634:33:65","nodeType":"YulExpressionStatement","src":"5634:33:65"}]},"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5449:225:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5547:6:65","nodeType":"YulTypedName","src":"5547:6:65","type":""}],"src":"5449:225:65"},{"body":{"nativeSrc":"5826:220:65","nodeType":"YulBlock","src":"5826:220:65","statements":[{"nativeSrc":"5836:74:65","nodeType":"YulAssignment","src":"5836:74:65","value":{"arguments":[{"name":"pos","nativeSrc":"5902:3:65","nodeType":"YulIdentifier","src":"5902:3:65"},{"kind":"number","nativeSrc":"5907:2:65","nodeType":"YulLiteral","src":"5907:2:65","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5843:58:65","nodeType":"YulIdentifier","src":"5843:58:65"},"nativeSrc":"5843:67:65","nodeType":"YulFunctionCall","src":"5843:67:65"},"variableNames":[{"name":"pos","nativeSrc":"5836:3:65","nodeType":"YulIdentifier","src":"5836:3:65"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6008:3:65","nodeType":"YulIdentifier","src":"6008:3:65"}],"functionName":{"name":"store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","nativeSrc":"5919:88:65","nodeType":"YulIdentifier","src":"5919:88:65"},"nativeSrc":"5919:93:65","nodeType":"YulFunctionCall","src":"5919:93:65"},"nativeSrc":"5919:93:65","nodeType":"YulExpressionStatement","src":"5919:93:65"},{"nativeSrc":"6021:19:65","nodeType":"YulAssignment","src":"6021:19:65","value":{"arguments":[{"name":"pos","nativeSrc":"6032:3:65","nodeType":"YulIdentifier","src":"6032:3:65"},{"kind":"number","nativeSrc":"6037:2:65","nodeType":"YulLiteral","src":"6037:2:65","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6028:3:65","nodeType":"YulIdentifier","src":"6028:3:65"},"nativeSrc":"6028:12:65","nodeType":"YulFunctionCall","src":"6028:12:65"},"variableNames":[{"name":"end","nativeSrc":"6021:3:65","nodeType":"YulIdentifier","src":"6021:3:65"}]}]},"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"5680:366:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5814:3:65","nodeType":"YulTypedName","src":"5814:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5822:3:65","nodeType":"YulTypedName","src":"5822:3:65","type":""}],"src":"5680:366:65"},{"body":{"nativeSrc":"6223:248:65","nodeType":"YulBlock","src":"6223:248:65","statements":[{"nativeSrc":"6233:26:65","nodeType":"YulAssignment","src":"6233:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"6245:9:65","nodeType":"YulIdentifier","src":"6245:9:65"},{"kind":"number","nativeSrc":"6256:2:65","nodeType":"YulLiteral","src":"6256:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6241:3:65","nodeType":"YulIdentifier","src":"6241:3:65"},"nativeSrc":"6241:18:65","nodeType":"YulFunctionCall","src":"6241:18:65"},"variableNames":[{"name":"tail","nativeSrc":"6233:4:65","nodeType":"YulIdentifier","src":"6233:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6280:9:65","nodeType":"YulIdentifier","src":"6280:9:65"},{"kind":"number","nativeSrc":"6291:1:65","nodeType":"YulLiteral","src":"6291:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6276:3:65","nodeType":"YulIdentifier","src":"6276:3:65"},"nativeSrc":"6276:17:65","nodeType":"YulFunctionCall","src":"6276:17:65"},{"arguments":[{"name":"tail","nativeSrc":"6299:4:65","nodeType":"YulIdentifier","src":"6299:4:65"},{"name":"headStart","nativeSrc":"6305:9:65","nodeType":"YulIdentifier","src":"6305:9:65"}],"functionName":{"name":"sub","nativeSrc":"6295:3:65","nodeType":"YulIdentifier","src":"6295:3:65"},"nativeSrc":"6295:20:65","nodeType":"YulFunctionCall","src":"6295:20:65"}],"functionName":{"name":"mstore","nativeSrc":"6269:6:65","nodeType":"YulIdentifier","src":"6269:6:65"},"nativeSrc":"6269:47:65","nodeType":"YulFunctionCall","src":"6269:47:65"},"nativeSrc":"6269:47:65","nodeType":"YulExpressionStatement","src":"6269:47:65"},{"nativeSrc":"6325:139:65","nodeType":"YulAssignment","src":"6325:139:65","value":{"arguments":[{"name":"tail","nativeSrc":"6459:4:65","nodeType":"YulIdentifier","src":"6459:4:65"}],"functionName":{"name":"abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack","nativeSrc":"6333:124:65","nodeType":"YulIdentifier","src":"6333:124:65"},"nativeSrc":"6333:131:65","nodeType":"YulFunctionCall","src":"6333:131:65"},"variableNames":[{"name":"tail","nativeSrc":"6325:4:65","nodeType":"YulIdentifier","src":"6325:4:65"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6052:419:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6203:9:65","nodeType":"YulTypedName","src":"6203:9:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6218:4:65","nodeType":"YulTypedName","src":"6218:4:65","type":""}],"src":"6052:419:65"},{"body":{"nativeSrc":"6535:40:65","nodeType":"YulBlock","src":"6535:40:65","statements":[{"nativeSrc":"6546:22:65","nodeType":"YulAssignment","src":"6546:22:65","value":{"arguments":[{"name":"value","nativeSrc":"6562:5:65","nodeType":"YulIdentifier","src":"6562:5:65"}],"functionName":{"name":"mload","nativeSrc":"6556:5:65","nodeType":"YulIdentifier","src":"6556:5:65"},"nativeSrc":"6556:12:65","nodeType":"YulFunctionCall","src":"6556:12:65"},"variableNames":[{"name":"length","nativeSrc":"6546:6:65","nodeType":"YulIdentifier","src":"6546:6:65"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6477:98:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6518:5:65","nodeType":"YulTypedName","src":"6518:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6528:6:65","nodeType":"YulTypedName","src":"6528:6:65","type":""}],"src":"6477:98:65"},{"body":{"nativeSrc":"6694:34:65","nodeType":"YulBlock","src":"6694:34:65","statements":[{"nativeSrc":"6704:18:65","nodeType":"YulAssignment","src":"6704:18:65","value":{"name":"pos","nativeSrc":"6719:3:65","nodeType":"YulIdentifier","src":"6719:3:65"},"variableNames":[{"name":"updated_pos","nativeSrc":"6704:11:65","nodeType":"YulIdentifier","src":"6704:11:65"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6581:147:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6666:3:65","nodeType":"YulTypedName","src":"6666:3:65","type":""},{"name":"length","nativeSrc":"6671:6:65","nodeType":"YulTypedName","src":"6671:6:65","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6682:11:65","nodeType":"YulTypedName","src":"6682:11:65","type":""}],"src":"6581:147:65"},{"body":{"nativeSrc":"6796:186:65","nodeType":"YulBlock","src":"6796:186:65","statements":[{"nativeSrc":"6807:10:65","nodeType":"YulVariableDeclaration","src":"6807:10:65","value":{"kind":"number","nativeSrc":"6816:1:65","nodeType":"YulLiteral","src":"6816:1:65","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6811:1:65","nodeType":"YulTypedName","src":"6811:1:65","type":""}]},{"body":{"nativeSrc":"6876:63:65","nodeType":"YulBlock","src":"6876:63:65","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6901:3:65","nodeType":"YulIdentifier","src":"6901:3:65"},{"name":"i","nativeSrc":"6906:1:65","nodeType":"YulIdentifier","src":"6906:1:65"}],"functionName":{"name":"add","nativeSrc":"6897:3:65","nodeType":"YulIdentifier","src":"6897:3:65"},"nativeSrc":"6897:11:65","nodeType":"YulFunctionCall","src":"6897:11:65"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"6920:3:65","nodeType":"YulIdentifier","src":"6920:3:65"},{"name":"i","nativeSrc":"6925:1:65","nodeType":"YulIdentifier","src":"6925:1:65"}],"functionName":{"name":"add","nativeSrc":"6916:3:65","nodeType":"YulIdentifier","src":"6916:3:65"},"nativeSrc":"6916:11:65","nodeType":"YulFunctionCall","src":"6916:11:65"}],"functionName":{"name":"mload","nativeSrc":"6910:5:65","nodeType":"YulIdentifier","src":"6910:5:65"},"nativeSrc":"6910:18:65","nodeType":"YulFunctionCall","src":"6910:18:65"}],"functionName":{"name":"mstore","nativeSrc":"6890:6:65","nodeType":"YulIdentifier","src":"6890:6:65"},"nativeSrc":"6890:39:65","nodeType":"YulFunctionCall","src":"6890:39:65"},"nativeSrc":"6890:39:65","nodeType":"YulExpressionStatement","src":"6890:39:65"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6837:1:65","nodeType":"YulIdentifier","src":"6837:1:65"},{"name":"length","nativeSrc":"6840:6:65","nodeType":"YulIdentifier","src":"6840:6:65"}],"functionName":{"name":"lt","nativeSrc":"6834:2:65","nodeType":"YulIdentifier","src":"6834:2:65"},"nativeSrc":"6834:13:65","nodeType":"YulFunctionCall","src":"6834:13:65"},"nativeSrc":"6826:113:65","nodeType":"YulForLoop","post":{"nativeSrc":"6848:19:65","nodeType":"YulBlock","src":"6848:19:65","statements":[{"nativeSrc":"6850:15:65","nodeType":"YulAssignment","src":"6850:15:65","value":{"arguments":[{"name":"i","nativeSrc":"6859:1:65","nodeType":"YulIdentifier","src":"6859:1:65"},{"kind":"number","nativeSrc":"6862:2:65","nodeType":"YulLiteral","src":"6862:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6855:3:65","nodeType":"YulIdentifier","src":"6855:3:65"},"nativeSrc":"6855:10:65","nodeType":"YulFunctionCall","src":"6855:10:65"},"variableNames":[{"name":"i","nativeSrc":"6850:1:65","nodeType":"YulIdentifier","src":"6850:1:65"}]}]},"pre":{"nativeSrc":"6830:3:65","nodeType":"YulBlock","src":"6830:3:65","statements":[]},"src":"6826:113:65"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"6959:3:65","nodeType":"YulIdentifier","src":"6959:3:65"},{"name":"length","nativeSrc":"6964:6:65","nodeType":"YulIdentifier","src":"6964:6:65"}],"functionName":{"name":"add","nativeSrc":"6955:3:65","nodeType":"YulIdentifier","src":"6955:3:65"},"nativeSrc":"6955:16:65","nodeType":"YulFunctionCall","src":"6955:16:65"},{"kind":"number","nativeSrc":"6973:1:65","nodeType":"YulLiteral","src":"6973:1:65","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6948:6:65","nodeType":"YulIdentifier","src":"6948:6:65"},"nativeSrc":"6948:27:65","nodeType":"YulFunctionCall","src":"6948:27:65"},"nativeSrc":"6948:27:65","nodeType":"YulExpressionStatement","src":"6948:27:65"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6734:248:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"6778:3:65","nodeType":"YulTypedName","src":"6778:3:65","type":""},{"name":"dst","nativeSrc":"6783:3:65","nodeType":"YulTypedName","src":"6783:3:65","type":""},{"name":"length","nativeSrc":"6788:6:65","nodeType":"YulTypedName","src":"6788:6:65","type":""}],"src":"6734:248:65"},{"body":{"nativeSrc":"7096:278:65","nodeType":"YulBlock","src":"7096:278:65","statements":[{"nativeSrc":"7106:52:65","nodeType":"YulVariableDeclaration","src":"7106:52:65","value":{"arguments":[{"name":"value","nativeSrc":"7152:5:65","nodeType":"YulIdentifier","src":"7152:5:65"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7120:31:65","nodeType":"YulIdentifier","src":"7120:31:65"},"nativeSrc":"7120:38:65","nodeType":"YulFunctionCall","src":"7120:38:65"},"variables":[{"name":"length","nativeSrc":"7110:6:65","nodeType":"YulTypedName","src":"7110:6:65","type":""}]},{"nativeSrc":"7167:95:65","nodeType":"YulAssignment","src":"7167:95:65","value":{"arguments":[{"name":"pos","nativeSrc":"7250:3:65","nodeType":"YulIdentifier","src":"7250:3:65"},{"name":"length","nativeSrc":"7255:6:65","nodeType":"YulIdentifier","src":"7255:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7174:75:65","nodeType":"YulIdentifier","src":"7174:75:65"},"nativeSrc":"7174:88:65","nodeType":"YulFunctionCall","src":"7174:88:65"},"variableNames":[{"name":"pos","nativeSrc":"7167:3:65","nodeType":"YulIdentifier","src":"7167:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7310:5:65","nodeType":"YulIdentifier","src":"7310:5:65"},{"kind":"number","nativeSrc":"7317:4:65","nodeType":"YulLiteral","src":"7317:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7306:3:65","nodeType":"YulIdentifier","src":"7306:3:65"},"nativeSrc":"7306:16:65","nodeType":"YulFunctionCall","src":"7306:16:65"},{"name":"pos","nativeSrc":"7324:3:65","nodeType":"YulIdentifier","src":"7324:3:65"},{"name":"length","nativeSrc":"7329:6:65","nodeType":"YulIdentifier","src":"7329:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7271:34:65","nodeType":"YulIdentifier","src":"7271:34:65"},"nativeSrc":"7271:65:65","nodeType":"YulFunctionCall","src":"7271:65:65"},"nativeSrc":"7271:65:65","nodeType":"YulExpressionStatement","src":"7271:65:65"},{"nativeSrc":"7345:23:65","nodeType":"YulAssignment","src":"7345:23:65","value":{"arguments":[{"name":"pos","nativeSrc":"7356:3:65","nodeType":"YulIdentifier","src":"7356:3:65"},{"name":"length","nativeSrc":"7361:6:65","nodeType":"YulIdentifier","src":"7361:6:65"}],"functionName":{"name":"add","nativeSrc":"7352:3:65","nodeType":"YulIdentifier","src":"7352:3:65"},"nativeSrc":"7352:16:65","nodeType":"YulFunctionCall","src":"7352:16:65"},"variableNames":[{"name":"end","nativeSrc":"7345:3:65","nodeType":"YulIdentifier","src":"7345:3:65"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6988:386:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7077:5:65","nodeType":"YulTypedName","src":"7077:5:65","type":""},{"name":"pos","nativeSrc":"7084:3:65","nodeType":"YulTypedName","src":"7084:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7092:3:65","nodeType":"YulTypedName","src":"7092:3:65","type":""}],"src":"6988:386:65"},{"body":{"nativeSrc":"7514:137:65","nodeType":"YulBlock","src":"7514:137:65","statements":[{"nativeSrc":"7525:100:65","nodeType":"YulAssignment","src":"7525:100:65","value":{"arguments":[{"name":"value0","nativeSrc":"7612:6:65","nodeType":"YulIdentifier","src":"7612:6:65"},{"name":"pos","nativeSrc":"7621:3:65","nodeType":"YulIdentifier","src":"7621:3:65"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7532:79:65","nodeType":"YulIdentifier","src":"7532:79:65"},"nativeSrc":"7532:93:65","nodeType":"YulFunctionCall","src":"7532:93:65"},"variableNames":[{"name":"pos","nativeSrc":"7525:3:65","nodeType":"YulIdentifier","src":"7525:3:65"}]},{"nativeSrc":"7635:10:65","nodeType":"YulAssignment","src":"7635:10:65","value":{"name":"pos","nativeSrc":"7642:3:65","nodeType":"YulIdentifier","src":"7642:3:65"},"variableNames":[{"name":"end","nativeSrc":"7635:3:65","nodeType":"YulIdentifier","src":"7635:3:65"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7380:271:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7493:3:65","nodeType":"YulTypedName","src":"7493:3:65","type":""},{"name":"value0","nativeSrc":"7499:6:65","nodeType":"YulTypedName","src":"7499:6:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7510:3:65","nodeType":"YulTypedName","src":"7510:3:65","type":""}],"src":"7380:271:65"},{"body":{"nativeSrc":"7716:40:65","nodeType":"YulBlock","src":"7716:40:65","statements":[{"nativeSrc":"7727:22:65","nodeType":"YulAssignment","src":"7727:22:65","value":{"arguments":[{"name":"value","nativeSrc":"7743:5:65","nodeType":"YulIdentifier","src":"7743:5:65"}],"functionName":{"name":"mload","nativeSrc":"7737:5:65","nodeType":"YulIdentifier","src":"7737:5:65"},"nativeSrc":"7737:12:65","nodeType":"YulFunctionCall","src":"7737:12:65"},"variableNames":[{"name":"length","nativeSrc":"7727:6:65","nodeType":"YulIdentifier","src":"7727:6:65"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7657:99:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7699:5:65","nodeType":"YulTypedName","src":"7699:5:65","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7709:6:65","nodeType":"YulTypedName","src":"7709:6:65","type":""}],"src":"7657:99:65"},{"body":{"nativeSrc":"7810:54:65","nodeType":"YulBlock","src":"7810:54:65","statements":[{"nativeSrc":"7820:38:65","nodeType":"YulAssignment","src":"7820:38:65","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7838:5:65","nodeType":"YulIdentifier","src":"7838:5:65"},{"kind":"number","nativeSrc":"7845:2:65","nodeType":"YulLiteral","src":"7845:2:65","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7834:3:65","nodeType":"YulIdentifier","src":"7834:3:65"},"nativeSrc":"7834:14:65","nodeType":"YulFunctionCall","src":"7834:14:65"},{"arguments":[{"kind":"number","nativeSrc":"7854:2:65","nodeType":"YulLiteral","src":"7854:2:65","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7850:3:65","nodeType":"YulIdentifier","src":"7850:3:65"},"nativeSrc":"7850:7:65","nodeType":"YulFunctionCall","src":"7850:7:65"}],"functionName":{"name":"and","nativeSrc":"7830:3:65","nodeType":"YulIdentifier","src":"7830:3:65"},"nativeSrc":"7830:28:65","nodeType":"YulFunctionCall","src":"7830:28:65"},"variableNames":[{"name":"result","nativeSrc":"7820:6:65","nodeType":"YulIdentifier","src":"7820:6:65"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7762:102:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7793:5:65","nodeType":"YulTypedName","src":"7793:5:65","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7803:6:65","nodeType":"YulTypedName","src":"7803:6:65","type":""}],"src":"7762:102:65"},{"body":{"nativeSrc":"7962:285:65","nodeType":"YulBlock","src":"7962:285:65","statements":[{"nativeSrc":"7972:53:65","nodeType":"YulVariableDeclaration","src":"7972:53:65","value":{"arguments":[{"name":"value","nativeSrc":"8019:5:65","nodeType":"YulIdentifier","src":"8019:5:65"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"7986:32:65","nodeType":"YulIdentifier","src":"7986:32:65"},"nativeSrc":"7986:39:65","nodeType":"YulFunctionCall","src":"7986:39:65"},"variables":[{"name":"length","nativeSrc":"7976:6:65","nodeType":"YulTypedName","src":"7976:6:65","type":""}]},{"nativeSrc":"8034:78:65","nodeType":"YulAssignment","src":"8034:78:65","value":{"arguments":[{"name":"pos","nativeSrc":"8100:3:65","nodeType":"YulIdentifier","src":"8100:3:65"},{"name":"length","nativeSrc":"8105:6:65","nodeType":"YulIdentifier","src":"8105:6:65"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8041:58:65","nodeType":"YulIdentifier","src":"8041:58:65"},"nativeSrc":"8041:71:65","nodeType":"YulFunctionCall","src":"8041:71:65"},"variableNames":[{"name":"pos","nativeSrc":"8034:3:65","nodeType":"YulIdentifier","src":"8034:3:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8160:5:65","nodeType":"YulIdentifier","src":"8160:5:65"},{"kind":"number","nativeSrc":"8167:4:65","nodeType":"YulLiteral","src":"8167:4:65","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8156:3:65","nodeType":"YulIdentifier","src":"8156:3:65"},"nativeSrc":"8156:16:65","nodeType":"YulFunctionCall","src":"8156:16:65"},{"name":"pos","nativeSrc":"8174:3:65","nodeType":"YulIdentifier","src":"8174:3:65"},{"name":"length","nativeSrc":"8179:6:65","nodeType":"YulIdentifier","src":"8179:6:65"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"8121:34:65","nodeType":"YulIdentifier","src":"8121:34:65"},"nativeSrc":"8121:65:65","nodeType":"YulFunctionCall","src":"8121:65:65"},"nativeSrc":"8121:65:65","nodeType":"YulExpressionStatement","src":"8121:65:65"},{"nativeSrc":"8195:46:65","nodeType":"YulAssignment","src":"8195:46:65","value":{"arguments":[{"name":"pos","nativeSrc":"8206:3:65","nodeType":"YulIdentifier","src":"8206:3:65"},{"arguments":[{"name":"length","nativeSrc":"8233:6:65","nodeType":"YulIdentifier","src":"8233:6:65"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8211:21:65","nodeType":"YulIdentifier","src":"8211:21:65"},"nativeSrc":"8211:29:65","nodeType":"YulFunctionCall","src":"8211:29:65"}],"functionName":{"name":"add","nativeSrc":"8202:3:65","nodeType":"YulIdentifier","src":"8202:3:65"},"nativeSrc":"8202:39:65","nodeType":"YulFunctionCall","src":"8202:39:65"},"variableNames":[{"name":"end","nativeSrc":"8195:3:65","nodeType":"YulIdentifier","src":"8195:3:65"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"7870:377:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7943:5:65","nodeType":"YulTypedName","src":"7943:5:65","type":""},{"name":"pos","nativeSrc":"7950:3:65","nodeType":"YulTypedName","src":"7950:3:65","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7958:3:65","nodeType":"YulTypedName","src":"7958:3:65","type":""}],"src":"7870:377:65"},{"body":{"nativeSrc":"8371:195:65","nodeType":"YulBlock","src":"8371:195:65","statements":[{"nativeSrc":"8381:26:65","nodeType":"YulAssignment","src":"8381:26:65","value":{"arguments":[{"name":"headStart","nativeSrc":"8393:9:65","nodeType":"YulIdentifier","src":"8393:9:65"},{"kind":"number","nativeSrc":"8404:2:65","nodeType":"YulLiteral","src":"8404:2:65","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8389:3:65","nodeType":"YulIdentifier","src":"8389:3:65"},"nativeSrc":"8389:18:65","nodeType":"YulFunctionCall","src":"8389:18:65"},"variableNames":[{"name":"tail","nativeSrc":"8381:4:65","nodeType":"YulIdentifier","src":"8381:4:65"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8428:9:65","nodeType":"YulIdentifier","src":"8428:9:65"},{"kind":"number","nativeSrc":"8439:1:65","nodeType":"YulLiteral","src":"8439:1:65","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8424:3:65","nodeType":"YulIdentifier","src":"8424:3:65"},"nativeSrc":"8424:17:65","nodeType":"YulFunctionCall","src":"8424:17:65"},{"arguments":[{"name":"tail","nativeSrc":"8447:4:65","nodeType":"YulIdentifier","src":"8447:4:65"},{"name":"headStart","nativeSrc":"8453:9:65","nodeType":"YulIdentifier","src":"8453:9:65"}],"functionName":{"name":"sub","nativeSrc":"8443:3:65","nodeType":"YulIdentifier","src":"8443:3:65"},"nativeSrc":"8443:20:65","nodeType":"YulFunctionCall","src":"8443:20:65"}],"functionName":{"name":"mstore","nativeSrc":"8417:6:65","nodeType":"YulIdentifier","src":"8417:6:65"},"nativeSrc":"8417:47:65","nodeType":"YulFunctionCall","src":"8417:47:65"},"nativeSrc":"8417:47:65","nodeType":"YulExpressionStatement","src":"8417:47:65"},{"nativeSrc":"8473:86:65","nodeType":"YulAssignment","src":"8473:86:65","value":{"arguments":[{"name":"value0","nativeSrc":"8545:6:65","nodeType":"YulIdentifier","src":"8545:6:65"},{"name":"tail","nativeSrc":"8554:4:65","nodeType":"YulIdentifier","src":"8554:4:65"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"8481:63:65","nodeType":"YulIdentifier","src":"8481:63:65"},"nativeSrc":"8481:78:65","nodeType":"YulFunctionCall","src":"8481:78:65"},"variableNames":[{"name":"tail","nativeSrc":"8473:4:65","nodeType":"YulIdentifier","src":"8473:4:65"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8253:313:65","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8343:9:65","nodeType":"YulTypedName","src":"8343:9:65","type":""},{"name":"value0","nativeSrc":"8355:6:65","nodeType":"YulTypedName","src":"8355:6:65","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8366:4:65","nodeType":"YulTypedName","src":"8366:4:65","type":""}],"src":"8253:313:65"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(memPtr) {\n\n        mstore(add(memPtr, 0), \"TransparentUpgradeableProxy: adm\")\n\n        mstore(add(memPtr, 32), \"in cannot fallback to proxy targ\")\n\n        mstore(add(memPtr, 64), \"et\")\n\n    }\n\n    function abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 66)\n        store_literal_in_memory_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d(pos)\n        end := add(pos, 96)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(memPtr) {\n\n        mstore(add(memPtr, 0), \"ERC1967: new implementation is n\")\n\n        mstore(add(memPtr, 32), \"ot a contract\")\n\n    }\n\n    function abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 45)\n        store_literal_in_memory_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: delegate call to non-co\")\n\n        mstore(add(memPtr, 32), \"ntract\")\n\n    }\n\n    function abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n}\n","id":65,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"13126":[{"length":32,"start":233},{"length":32,"start":319},{"length":32,"start":449},{"length":32,"start":523},{"length":32,"start":572},{"length":32,"start":608}]},"linkReferences":{},"object":"6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461008d578063f851a440146100b857610052565b36610052576100506100cd565b005b6100506100cd565b34801561006657600080fd5b50610050610075366004610510565b6100e7565b61005061008836600461058b565b61013d565b34801561009957600080fd5b506100a26101bd565b6040516100af91906105f6565b60405180910390f35b3480156100c457600080fd5b506100a2610207565b6100d561025e565b6100e56100e06102af565b6102e2565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101355761013281604051806020016040528060008152506000610306565b50565b6101326100cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101b5576101b08383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610306915050565b505050565b6101b06100cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc576101f76102af565b905090565b6102046100cd565b90565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101fc57507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100e55760405162461bcd60e51b81526004016102a690610604565b60405180910390fd5b60006101f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b3660008037600080366000845af43d6000803e808015610301573d6000f35b3d6000fd5b61030f83610331565b60008251118061031c5750805b156101b05761032b8383610371565b50505050565b61033a8161039f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061039683836040518060600160405280602781526020016107b660279139610407565b90505b92915050565b6001600160a01b0381163b6103c65760405162461bcd60e51b81526004016102a6906106bd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6104305760405162461bcd60e51b81526004016102a690610710565b600080856001600160a01b03168560405161044b9190610766565b600060405180830381855af49150503d8060008114610486576040519150601f19603f3d011682016040523d82523d6000602084013e61048b565b606091505b509150915061049b8282866104a7565b925050505b9392505050565b606083156104b65750816104a0565b8251156104c65782518084602001fd5b8160405162461bcd60e51b81526004016102a691906107a4565b60006001600160a01b038216610399565b6104fa816104e0565b811461013257600080fd5b8035610399816104f1565b60006020828403121561052557610525600080fd5b60006105318484610505565b949350505050565b60008083601f84011261054e5761054e600080fd5b50813567ffffffffffffffff81111561056957610569600080fd5b60208301915083600182028301111561058457610584600080fd5b9250929050565b6000806000604084860312156105a3576105a3600080fd5b60006105af8686610505565b935050602084013567ffffffffffffffff8111156105cf576105cf600080fd5b6105db86828701610539565b92509250509250925092565b6105f0816104e0565b82525050565b6020810161039982846105e7565b6020808252810161039981604281527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60208201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267604082015261195d60f21b606082015260800190565b602d81526000602082017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b602082015291505b5060400190565b6020808252810161039981610670565b602681526000602082017f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f8152651b9d1c9858dd60d21b602082015291506106b6565b60208082528101610399816106cd565b60005b8381101561073b578181015183820152602001610723565b50506000910152565b600061074e825190565b61075c818560208601610720565b9290920192915050565b60006104a08284610744565b600061077c825190565b808452602084019350610793818560208601610720565b601f01601f19169290920192915050565b60208082528101610396818461077256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122074d46e8de9a3e5294fe7b4f85337f8b52a8b902fb14551d71a6dd8277259694664736f6c63430008190033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x43 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0xB8 JUMPI PUSH2 0x52 JUMP JUMPDEST CALLDATASIZE PUSH2 0x52 JUMPI PUSH2 0x50 PUSH2 0xCD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x50 PUSH2 0xCD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x50 PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x510 JUMP JUMPDEST PUSH2 0xE7 JUMP JUMPDEST PUSH2 0x50 PUSH2 0x88 CALLDATASIZE PUSH1 0x4 PUSH2 0x58B JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x1BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAF SWAP2 SWAP1 PUSH2 0x5F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA2 PUSH2 0x207 JUMP JUMPDEST PUSH2 0xD5 PUSH2 0x25E JUMP JUMPDEST PUSH2 0xE5 PUSH2 0xE0 PUSH2 0x2AF JUMP JUMPDEST PUSH2 0x2E2 JUMP JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x135 JUMPI PUSH2 0x132 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH1 0x0 PUSH2 0x306 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x132 PUSH2 0xCD JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1B5 JUMPI PUSH2 0x1B0 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x306 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1B0 PUSH2 0xCD JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1FC JUMPI PUSH2 0x1F7 PUSH2 0x2AF JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x204 PUSH2 0xCD JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x1FC JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0xE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F7 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x301 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x30F DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x31C JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x1B0 JUMPI PUSH2 0x32B DUP4 DUP4 PUSH2 0x371 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x33A DUP2 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x396 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B6 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x407 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x3C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x6BD JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP1 PUSH2 0x710 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x44B SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x486 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x48B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x49B DUP3 DUP3 DUP7 PUSH2 0x4A7 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x4B6 JUMPI POP DUP2 PUSH2 0x4A0 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x4C6 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A6 SWAP2 SWAP1 PUSH2 0x7A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x399 JUMP JUMPDEST PUSH2 0x4FA DUP2 PUSH2 0x4E0 JUMP JUMPDEST DUP2 EQ PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x399 DUP2 PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x525 JUMPI PUSH2 0x525 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x531 DUP5 DUP5 PUSH2 0x505 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x54E JUMPI PUSH2 0x54E PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x569 JUMPI PUSH2 0x569 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x584 JUMPI PUSH2 0x584 PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5A3 JUMPI PUSH2 0x5A3 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5AF DUP7 DUP7 PUSH2 0x505 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5DB DUP7 DUP3 DUP8 ADD PUSH2 0x539 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x5F0 DUP2 PUSH2 0x4E0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x399 DUP3 DUP5 PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH1 0x42 DUP2 MSTORE PUSH32 0x5472616E73706172656E745570677261646561626C6550726F78793A2061646D PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x696E2063616E6E6F742066616C6C6261636B20746F2070726F78792074617267 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x195D PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2D DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E DUP2 MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH2 0x670 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F DUP2 MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x6B6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x399 DUP2 PUSH2 0x6CD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x73B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x723 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x75C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x720 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A0 DUP3 DUP5 PUSH2 0x744 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77C DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x793 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x720 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x396 DUP2 DUP5 PUSH2 0x772 JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122074D46E DUP14 0xE9 LOG3 0xE5 0x29 0x4F 0xE7 0xB4 0xF8 MSTORE8 CALLDATACOPY 0xF8 0xB5 0x2A DUP12 SWAP1 0x2F 0xB1 GASLIMIT MLOAD 0xD7 BYTE PUSH14 0xD8277259694664736F6C63430008 NOT STOP CALLER ","sourceMap":"1653:3648:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2903:11:57;:9;:11::i;:::-;1653:3648:64;;2680:11:57;:9;:11::i;4037:134:64:-;;;;;;;;;;-1:-1:-1;4037:134:64;;;;;:::i;:::-;;:::i;4547:164::-;;;;;;:::i;:::-;;:::i;3748:129::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3192:96;;;;;;;;;;;;;:::i;2327:110:57:-;2375:17;:15;:17::i;:::-;2402:28;2412:17;:15;:17::i;:::-;2402:9;:28::i;:::-;2327:110::o;4037:134:64:-;5286:6;-1:-1:-1;;;;;2649:25:64;:10;:25;2645:99;;4110:54:::1;4128:17;4147:9;;;;;;;;;;;::::0;4158:5:::1;4110:17;:54::i;:::-;4037:134:::0;:::o;2645:99::-;2722:11;:9;:11::i;4547:164::-;5286:6;-1:-1:-1;;;;;2649:25:64;:10;:25;2645:99;;4656:48:::1;4674:17;4693:4;;4656:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4699:4:64::1;::::0;-1:-1:-1;4656:17:64::1;::::0;-1:-1:-1;;4656:48:64:i:1;:::-;4547:164:::0;;;:::o;2645:99::-;2722:11;:9;:11::i;3748:129::-;3800:23;5286:6;-1:-1:-1;;;;;2649:25:64;:10;:25;2645:99;;3853:17:::1;:15;:17::i;:::-;3835:35;;3748:129:::0;:::o;2645:99::-;2722:11;:9;:11::i;:::-;3748:129;:::o;3192:96::-;3235:14;5286:6;-1:-1:-1;;;;;2649:25:64;:10;:25;2645:99;;-1:-1:-1;5286:6:64;;3748:129::o;4986:207::-;5286:6;-1:-1:-1;;;;;5057:25:64;:10;:25;5049:104;;;;-1:-1:-1;;;5049:104:64;;;;;;;:::i;:::-;;;;;;;;1240:140:55;1307:12;1338:35;1035:66:56;1385:54;-1:-1:-1;;;;;1385:54:56;;1306:140;953:895:57;1291:14;1288:1;1285;1272:34;1505:1;1502;1486:14;1483:1;1467:14;1460:5;1447:60;1581:16;1578:1;1575;1560:38;1619:6;1686:66;;;;1801:16;1798:1;1791:27;1686:66;1721:16;1718:1;1711:27;2188:295:56;2326:29;2337:17;2326:10;:29::i;:::-;2383:1;2369:4;:11;:15;:28;;;;2388:9;2369:28;2365:112;;;2413:53;2442:17;2461:4;2413:28;:53::i;:::-;;2188:295;;;:::o;1902:152::-;1968:37;1987:17;1968:18;:37::i;:::-;2020:27;;-1:-1:-1;;;;;2020:27:56;;;;;;;;1902:152;:::o;6575:198:61:-;6658:12;6689:77;6710:6;6718:4;6689:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6682:84;;6575:198;;;;;:::o;1537:259:56:-;-1:-1:-1;;;;;1470:19:61;;;1610:95:56;;;;-1:-1:-1;;;1610:95:56;;;;;;;:::i;:::-;1035:66;1715:74;;-1:-1:-1;;;;;;1715:74:56;-1:-1:-1;;;;;1715:74:56;;;;;;;;;;1537:259::o;6959:387:61:-;7100:12;-1:-1:-1;;;;;1470:19:61;;;7124:69;;;;-1:-1:-1;;;7124:69:61;;;;;;;:::i;:::-;7205:12;7219:23;7246:6;-1:-1:-1;;;;;7246:19:61;7266:4;7246:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:67;;;;7288:51;7305:7;7314:10;7326:12;7288:16;:51::i;:::-;7281:58;;;;6959:387;;;;;;:::o;7566:692::-;7712:12;7740:7;7736:516;;;-1:-1:-1;7770:10:61;7763:17;;7736:516;7881:17;;:21;7877:365;;8075:10;8069:17;8135:15;8122:10;8118:2;8114:19;8107:44;7877:365;8214:12;8207:20;;-1:-1:-1;;;8207:20:61;;;;;;;;:::i;466:96:65:-;503:7;-1:-1:-1;;;;;400:54:65;;532:24;334:126;568:122;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;696:139;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;197:1;194;187:12;955:79;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:65:o;1558:552::-;1615:8;1625:6;1675:3;1668:4;1660:6;1656:17;1652:27;1642:122;;1683:79;197:1;194;187:12;1683:79;-1:-1:-1;1783:20:65;;1826:18;1815:30;;1812:117;;;1848:79;197:1;194;187:12;1848:79;1962:4;1954:6;1950:17;1938:29;;2016:3;2008:4;2000:6;1996:17;1986:8;1982:32;1979:41;1976:128;;;2023:79;197:1;194;187:12;2023:79;1558:552;;;;;:::o;2116:672::-;2195:6;2203;2211;2260:2;2248:9;2239:7;2235:23;2231:32;2228:119;;;2266:79;197:1;194;187:12;2266:79;2386:1;2411:53;2456:7;2436:9;2411:53;:::i;:::-;2401:63;;2357:117;2541:2;2530:9;2526:18;2513:32;2572:18;2564:6;2561:30;2558:117;;;2594:79;197:1;194;187:12;2594:79;2707:64;2763:7;2754:6;2743:9;2739:22;2707:64;:::i;:::-;2689:82;;;;2484:297;2116:672;;;;;:::o;2794:118::-;2881:24;2899:5;2881:24;:::i;:::-;2876:3;2869:37;2794:118;;:::o;2918:222::-;3049:2;3034:18;;3062:71;3038:9;3106:6;3062:71;:::i;3989:419::-;4193:2;4206:47;;;4178:18;;4270:131;4178:18;3844:2;3252:19;;3461:34;3304:4;3295:14;;3438:58;3530:34;3513:15;;;3506:59;-1:-1:-1;;;3582:15:65;;;3575:29;3965:12;;;3617:366;4652;4879:2;3252:19;;4794:3;3304:4;3295:14;;4554:34;4531:58;;-1:-1:-1;;;4618:2:65;4606:15;;4599:40;4808:74;-1:-1:-1;4891:93:65;-1:-1:-1;5009:2:65;5000:12;;4652:366::o;5024:419::-;5228:2;5241:47;;;5213:18;;5305:131;5213:18;5305:131;:::i;5680:366::-;5907:2;3252:19;;5822:3;3304:4;3295:14;;5589:34;5566:58;;-1:-1:-1;;;5653:2:65;5641:15;;5634:33;5836:74;-1:-1:-1;5919:93:65;5449:225;6052:419;6256:2;6269:47;;;6241:18;;6333:131;6241:18;6333:131;:::i;6734:248::-;6816:1;6826:113;6840:6;6837:1;6834:13;6826:113;;;6916:11;;;6910:18;6897:11;;;6890:39;6862:2;6855:10;6826:113;;;-1:-1:-1;;6973:1:65;6955:16;;6948:27;6734:248::o;6988:386::-;7092:3;7120:38;7152:5;6556:12;;6477:98;7120:38;7271:65;7329:6;7324:3;7317:4;7310:5;7306:16;7271:65;:::i;:::-;7352:16;;;;;6988:386;-1:-1:-1;;6988:386:65:o;7380:271::-;7510:3;7532:93;7621:3;7612:6;7532:93;:::i;7870:377::-;7958:3;7986:39;8019:5;6556:12;;6477:98;7986:39;3252:19;;;3304:4;3295:14;;8034:78;;8121:65;8179:6;8174:3;8167:4;8160:5;8156:16;8121:65;:::i;:::-;7854:2;7834:14;-1:-1:-1;;7830:28:65;8202:39;;;;;;-1:-1:-1;;7870:377:65:o;8253:313::-;8404:2;8417:47;;;8389:18;;8481:78;8389:18;8545:6;8481:78;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"413200","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","admin()":"infinite","implementation()":"infinite","upgradeTo(address)":"infinite","upgradeToAndCall(address,bytes)":"infinite"},"internal":{"_admin()":"infinite","_beforeFallback()":"infinite","_getAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":\"OptimizedTransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\\n * proxy whose upgrades are fully controlled by the current implementation.\\n */\\ninterface IERC1822Proxiable {\\n    /**\\n     * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\\n     * address.\\n     *\\n     * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\\n     * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\\n     * function revert if invoked through a proxy.\\n     */\\n    function proxiableUUID() external view returns (bytes32);\\n}\\n\",\"keccak256\":\"0x93b4e21c931252739a1ec13ea31d3d35a5c068be3163ccab83e4d70c40355f03\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../Proxy.sol\\\";\\nimport \\\"./ERC1967Upgrade.sol\\\";\\n\\n/**\\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\\n * implementation address that can be changed. This address is stored in storage in the location specified by\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\\n * implementation behind the proxy.\\n */\\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\\n    /**\\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\\n     *\\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\\n     * function call, and allows initializating the storage of the proxy like a Solidity constructor.\\n     */\\n    constructor(address _logic, bytes memory _data) payable {\\n        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.implementation\\\")) - 1));\\n        _upgradeToAndCall(_logic, _data, false);\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _implementation() internal view virtual override returns (address impl) {\\n        return ERC1967Upgrade._getImplementation();\\n    }\\n}\\n\",\"keccak256\":\"0x6309f9f39dc6f4f45a24f296543867aa358e32946cd6b2874627a996d606b3a0\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/ERC1967/ERC1967Upgrade.sol)\\n\\npragma solidity ^0.8.2;\\n\\nimport \\\"../beacon/IBeacon.sol\\\";\\nimport \\\"../../interfaces/draft-IERC1822.sol\\\";\\nimport \\\"../../utils/Address.sol\\\";\\nimport \\\"../../utils/StorageSlot.sol\\\";\\n\\n/**\\n * @dev This abstract contract provides getters and event emitting update functions for\\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\\n *\\n * _Available since v4.1._\\n *\\n * @custom:oz-upgrades-unsafe-allow delegatecall\\n */\\nabstract contract ERC1967Upgrade {\\n    // This is the keccak-256 hash of \\\"eip1967.proxy.rollback\\\" subtracted by 1\\n    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\\n\\n    /**\\n     * @dev Storage slot with the address of the current implementation.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n\\n    /**\\n     * @dev Emitted when the implementation is upgraded.\\n     */\\n    event Upgraded(address indexed implementation);\\n\\n    /**\\n     * @dev Returns the current implementation address.\\n     */\\n    function _getImplementation() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 implementation slot.\\n     */\\n    function _setImplementation(address newImplementation) private {\\n        require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeTo(address newImplementation) internal {\\n        _setImplementation(newImplementation);\\n        emit Upgraded(newImplementation);\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCall(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _upgradeTo(newImplementation);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(newImplementation, data);\\n        }\\n    }\\n\\n    /**\\n     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\\n     *\\n     * Emits an {Upgraded} event.\\n     */\\n    function _upgradeToAndCallUUPS(\\n        address newImplementation,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        // Upgrades from old implementations will perform a rollback test. This test requires the new\\n        // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\\n        // this special case will break upgrade paths from old UUPS implementation to new ones.\\n        if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\\n            _setImplementation(newImplementation);\\n        } else {\\n            try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\\n                require(slot == _IMPLEMENTATION_SLOT, \\\"ERC1967Upgrade: unsupported proxiableUUID\\\");\\n            } catch {\\n                revert(\\\"ERC1967Upgrade: new implementation is not UUPS\\\");\\n            }\\n            _upgradeToAndCall(newImplementation, data, forceCall);\\n        }\\n    }\\n\\n    /**\\n     * @dev Storage slot with the admin of the contract.\\n     * This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is\\n     * validated in the constructor.\\n     */\\n    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\\n\\n    /**\\n     * @dev Emitted when the admin account has changed.\\n     */\\n    event AdminChanged(address previousAdmin, address newAdmin);\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _getAdmin() internal view virtual returns (address) {\\n        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new address in the EIP1967 admin slot.\\n     */\\n    function _setAdmin(address newAdmin) private {\\n        require(newAdmin != address(0), \\\"ERC1967: new admin is the zero address\\\");\\n        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\\n    }\\n\\n    /**\\n     * @dev Changes the admin of the proxy.\\n     *\\n     * Emits an {AdminChanged} event.\\n     */\\n    function _changeAdmin(address newAdmin) internal {\\n        emit AdminChanged(_getAdmin(), newAdmin);\\n        _setAdmin(newAdmin);\\n    }\\n\\n    /**\\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\\n     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\\n     */\\n    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\\n\\n    /**\\n     * @dev Emitted when the beacon is upgraded.\\n     */\\n    event BeaconUpgraded(address indexed beacon);\\n\\n    /**\\n     * @dev Returns the current beacon.\\n     */\\n    function _getBeacon() internal view returns (address) {\\n        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\\n    }\\n\\n    /**\\n     * @dev Stores a new beacon in the EIP1967 beacon slot.\\n     */\\n    function _setBeacon(address newBeacon) private {\\n        require(Address.isContract(newBeacon), \\\"ERC1967: new beacon is not a contract\\\");\\n        require(Address.isContract(IBeacon(newBeacon).implementation()), \\\"ERC1967: beacon implementation is not a contract\\\");\\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\\n    }\\n\\n    /**\\n     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\\n     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\\n     *\\n     * Emits a {BeaconUpgraded} event.\\n     */\\n    function _upgradeBeaconToAndCall(\\n        address newBeacon,\\n        bytes memory data,\\n        bool forceCall\\n    ) internal {\\n        _setBeacon(newBeacon);\\n        emit BeaconUpgraded(newBeacon);\\n        if (data.length > 0 || forceCall) {\\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x17668652127feebed0ce8d9431ef95ccc8c4292f03e3b8cf06c6ca16af396633\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (proxy/Proxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\\n * be specified by overriding the virtual {_implementation} function.\\n *\\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\\n * different contract through the {_delegate} function.\\n *\\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\\n */\\nabstract contract Proxy {\\n    /**\\n     * @dev Delegates the current call to `implementation`.\\n     *\\n     * This function does not return to its internal call site, it will return directly to the external caller.\\n     */\\n    function _delegate(address implementation) internal virtual {\\n        assembly {\\n            // Copy msg.data. We take full control of memory in this inline assembly\\n            // block because it will not return to Solidity code. We overwrite the\\n            // Solidity scratch pad at memory position 0.\\n            calldatacopy(0, 0, calldatasize())\\n\\n            // Call the implementation.\\n            // out and outsize are 0 because we don't know the size yet.\\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\\n\\n            // Copy the returned data.\\n            returndatacopy(0, 0, returndatasize())\\n\\n            switch result\\n            // delegatecall returns 0 on error.\\n            case 0 {\\n                revert(0, returndatasize())\\n            }\\n            default {\\n                return(0, returndatasize())\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function\\n     * and {_fallback} should delegate.\\n     */\\n    function _implementation() internal view virtual returns (address);\\n\\n    /**\\n     * @dev Delegates the current call to the address returned by `_implementation()`.\\n     *\\n     * This function does not return to its internall call site, it will return directly to the external caller.\\n     */\\n    function _fallback() internal virtual {\\n        _beforeFallback();\\n        _delegate(_implementation());\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\\n     * function in the contract matches the call data.\\n     */\\n    fallback() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\\n     * is empty.\\n     */\\n    receive() external payable virtual {\\n        _fallback();\\n    }\\n\\n    /**\\n     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\\n     * call, or as part of the Solidity `fallback` or `receive` functions.\\n     *\\n     * If overriden should call `super._beforeFallback()`.\\n     */\\n    function _beforeFallback() internal virtual {}\\n}\\n\",\"keccak256\":\"0xd5d1fd16e9faff7fcb3a52e02a8d49156f42a38a03f07b5f1810c21c2149a8ab\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\\n */\\ninterface IBeacon {\\n    /**\\n     * @dev Must return an address that can be used as a delegate call target.\\n     *\\n     * {BeaconProxy} will check that this address is a contract.\\n     */\\n    function implementation() external view returns (address);\\n}\\n\",\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts (last updated v4.5.0-rc.0) (utils/Address.sol)\\n\\npragma solidity ^0.8.1;\\n\\n/**\\n * @dev Collection of functions related to the address type\\n */\\nlibrary Address {\\n    /**\\n     * @dev Returns true if `account` is a contract.\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * It is unsafe to assume that an address for which this function returns\\n     * false is an externally-owned account (EOA) and not a contract.\\n     *\\n     * Among others, `isContract` will return false for the following\\n     * types of addresses:\\n     *\\n     *  - an externally-owned account\\n     *  - a contract in construction\\n     *  - an address where a contract will be created\\n     *  - an address where a contract lived, but was destroyed\\n     * ====\\n     *\\n     * [IMPORTANT]\\n     * ====\\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\\n     *\\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\\n     * constructor.\\n     * ====\\n     */\\n    function isContract(address account) internal view returns (bool) {\\n        // This method relies on extcodesize/address.code.length, which returns 0\\n        // for contracts in construction, since the code is only stored at the end\\n        // of the constructor execution.\\n\\n        return account.code.length > 0;\\n    }\\n\\n    /**\\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\\n     * `recipient`, forwarding all available gas and reverting on errors.\\n     *\\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\\n     * imposed by `transfer`, making them unable to receive funds via\\n     * `transfer`. {sendValue} removes this limitation.\\n     *\\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\\n     *\\n     * IMPORTANT: because control is transferred to `recipient`, care must be\\n     * taken to not create reentrancy vulnerabilities. Consider using\\n     * {ReentrancyGuard} or the\\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\\n     */\\n    function sendValue(address payable recipient, uint256 amount) internal {\\n        require(address(this).balance >= amount, \\\"Address: insufficient balance\\\");\\n\\n        (bool success, ) = recipient.call{value: amount}(\\\"\\\");\\n        require(success, \\\"Address: unable to send value, recipient may have reverted\\\");\\n    }\\n\\n    /**\\n     * @dev Performs a Solidity function call using a low level `call`. A\\n     * plain `call` is an unsafe replacement for a function call: use this\\n     * function instead.\\n     *\\n     * If `target` reverts with a revert reason, it is bubbled up by this\\n     * function (like regular Solidity function calls).\\n     *\\n     * Returns the raw returned data. To convert to the expected return value,\\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\\n     *\\n     * Requirements:\\n     *\\n     * - `target` must be a contract.\\n     * - calling `target` with `data` must not revert.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionCall(target, data, \\\"Address: low-level call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\\n     * `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, 0, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but also transferring `value` wei to `target`.\\n     *\\n     * Requirements:\\n     *\\n     * - the calling contract must have an ETH balance of at least `value`.\\n     * - the called Solidity function must be `payable`.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value\\n    ) internal returns (bytes memory) {\\n        return functionCallWithValue(target, data, value, \\\"Address: low-level call with value failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\\n     *\\n     * _Available since v3.1._\\n     */\\n    function functionCallWithValue(\\n        address target,\\n        bytes memory data,\\n        uint256 value,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(address(this).balance >= value, \\\"Address: insufficient balance for call\\\");\\n        require(isContract(target), \\\"Address: call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\\n        return functionStaticCall(target, data, \\\"Address: low-level static call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a static call.\\n     *\\n     * _Available since v3.3._\\n     */\\n    function functionStaticCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal view returns (bytes memory) {\\n        require(isContract(target), \\\"Address: static call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.staticcall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\\n        return functionDelegateCall(target, data, \\\"Address: low-level delegate call failed\\\");\\n    }\\n\\n    /**\\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\\n     * but performing a delegate call.\\n     *\\n     * _Available since v3.4._\\n     */\\n    function functionDelegateCall(\\n        address target,\\n        bytes memory data,\\n        string memory errorMessage\\n    ) internal returns (bytes memory) {\\n        require(isContract(target), \\\"Address: delegate call to non-contract\\\");\\n\\n        (bool success, bytes memory returndata) = target.delegatecall(data);\\n        return verifyCallResult(success, returndata, errorMessage);\\n    }\\n\\n    /**\\n     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\\n     * revert reason using the provided one.\\n     *\\n     * _Available since v4.3._\\n     */\\n    function verifyCallResult(\\n        bool success,\\n        bytes memory returndata,\\n        string memory errorMessage\\n    ) internal pure returns (bytes memory) {\\n        if (success) {\\n            return returndata;\\n        } else {\\n            // Look for revert reason and bubble it up if present\\n            if (returndata.length > 0) {\\n                // The easiest way to bubble the revert reason is using memory via assembly\\n\\n                assembly {\\n                    let returndata_size := mload(returndata)\\n                    revert(add(32, returndata), returndata_size)\\n                }\\n            } else {\\n                revert(errorMessage);\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x3777e696b62134e6177440dbe6e6601c0c156a443f57167194b67e75527439de\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)\\n\\npragma solidity ^0.8.0;\\n\\n/**\\n * @dev Library for reading and writing primitive types to specific storage slots.\\n *\\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\\n * This library helps with reading and writing to such slots without the need for inline assembly.\\n *\\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\\n *\\n * Example usage to set ERC1967 implementation slot:\\n * ```\\n * contract ERC1967 {\\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\\n *\\n *     function _getImplementation() internal view returns (address) {\\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\\n *     }\\n *\\n *     function _setImplementation(address newImplementation) internal {\\n *         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");\\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\\n *     }\\n * }\\n * ```\\n *\\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\\n */\\nlibrary StorageSlot {\\n    struct AddressSlot {\\n        address value;\\n    }\\n\\n    struct BooleanSlot {\\n        bool value;\\n    }\\n\\n    struct Bytes32Slot {\\n        bytes32 value;\\n    }\\n\\n    struct Uint256Slot {\\n        uint256 value;\\n    }\\n\\n    /**\\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\\n     */\\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\\n     */\\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\\n     */\\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\\n     */\\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\\n        assembly {\\n            r.slot := slot\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfe1b7a9aa2a530a9e705b220e26cd584e2fbdc9602a3a1066032b12816b46aca\",\"license\":\"MIT\"},\"hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n// OpenZeppelin Contracts v4.4.1 (proxy/transparent/TransparentUpgradeableProxy.sol)\\n\\npragma solidity ^0.8.0;\\n\\nimport \\\"../openzeppelin/proxy/ERC1967/ERC1967Proxy.sol\\\";\\n\\n/**\\n * @dev This contract implements a proxy that is upgradeable by an admin.\\n *\\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\\n * clashing], which can potentially be used in an attack, this contract uses the\\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\\n * things that go hand in hand:\\n *\\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\\n * that call matches one of the admin functions exposed by the proxy itself.\\n * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\\n * implementation. If the admin tries to call a function on the implementation it will fail with an error that says\\n * \\\"admin cannot fallback to proxy target\\\".\\n *\\n * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\\n * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\\n * to sudden errors when trying to call a function from the proxy implementation.\\n *\\n * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\\n * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\\n */\\ncontract OptimizedTransparentUpgradeableProxy is ERC1967Proxy {\\n    address internal immutable _ADMIN;\\n\\n    /**\\n     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\\n     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\\n     */\\n    constructor(\\n        address _logic,\\n        address admin_,\\n        bytes memory _data\\n    ) payable ERC1967Proxy(_logic, _data) {\\n        assert(_ADMIN_SLOT == bytes32(uint256(keccak256(\\\"eip1967.proxy.admin\\\")) - 1));\\n        _ADMIN = admin_;\\n\\n        // still store it to work with EIP-1967\\n        bytes32 slot = _ADMIN_SLOT;\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly {\\n            sstore(slot, admin_)\\n        }\\n        emit AdminChanged(address(0), admin_);\\n    }\\n\\n    /**\\n     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.\\n     */\\n    modifier ifAdmin() {\\n        if (msg.sender == _getAdmin()) {\\n            _;\\n        } else {\\n            _fallback();\\n        }\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\\n     */\\n    function admin() external ifAdmin returns (address admin_) {\\n        admin_ = _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Returns the current implementation.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\\n     *\\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\\n     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\\n     */\\n    function implementation() external ifAdmin returns (address implementation_) {\\n        implementation_ = _implementation();\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\\n     */\\n    function upgradeTo(address newImplementation) external ifAdmin {\\n        _upgradeToAndCall(newImplementation, bytes(\\\"\\\"), false);\\n    }\\n\\n    /**\\n     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\\n     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\\n     * proxied contract.\\n     *\\n     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\\n     */\\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {\\n        _upgradeToAndCall(newImplementation, data, true);\\n    }\\n\\n    /**\\n     * @dev Returns the current admin.\\n     */\\n    function _admin() internal view virtual returns (address) {\\n        return _getAdmin();\\n    }\\n\\n    /**\\n     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.\\n     */\\n    function _beforeFallback() internal virtual override {\\n        require(msg.sender != _getAdmin(), \\\"TransparentUpgradeableProxy: admin cannot fallback to proxy target\\\");\\n        super._beforeFallback();\\n    }\\n\\n    function _getAdmin() internal view virtual override returns (address) {\\n        return _ADMIN;\\n    }\\n}\\n\",\"keccak256\":\"0xa30117644e27fa5b49e162aae2f62b36c1aca02f801b8c594d46e2024963a534\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}}}}}